一种高吞吐率国密SM3硬件IP核的设计与实现*

2017-06-01 12:19陈冬云李元金
电子器件 2017年3期
关键词:流水线延时时钟

陈冬云,李元金

(1.贵阳学院电子与通信工程学院,贵阳 550005;2.安全互联实验室,江苏 苏州 215000)

一种高吞吐率国密SM3硬件IP核的设计与实现*

陈冬云1*,李元金2

(1.贵阳学院电子与通信工程学院,贵阳 550005;2.安全互联实验室,江苏 苏州 215000)

为满足网络安全认证的需求,提出了一种高吞吐率的国密SM3的硬件IP核的设计方法。该方法用3级流水线缩短了每轮运算的关键路径,提升了系统时钟,并将64轮运算全部展开,实现轮间64级流水线,总共192级的全流水线设计,能够同时实现192组消息的SM3运算。基于SMIC 0.18 μm的工艺,实现了该IP核,时钟频率达到了200 MHz,吞吐率达到了102.4 Gbit/s,比现有的研究成果提升39.3%。

信息安全;国密SM3;流水线;吞吐率;IP核

网络安全认证的问题越来越突出,Hash算法能够将一串数据计算出一个固定长度的值与之对应,从而根据该值实现这串数据的完整性验证,因而广泛应用于网络安全认证。为了适应互联网的快速发展,国家密码管理局于2010年发布了中国自己的Hash算法—国密SM3[1]。近些年来,围绕如何实现SM3的快速运算,文献[2-5]从不同侧面分别加以研究和实现。文献[2]通过采用CSA加法器优化关键路径,并提出了双路并行结构的加法器,实现了比较高的吞吐率;文献[3]强调与ARM处理器的系统结合方面提升吞吐率;文献[4]展开了64轮计算以使吞吐率获得一个较大的提升;文献[5]通过轮计算的合并和CSA加法器的优化来实现整体吞吐率的提升。从已取得的吞吐率来看,还有继续提升的空间,以满足日益复杂的网络安全需求。

本文在参考文献[6-7]的基础上,提出了一种高吞吐率的SM3硬件IP核的设计方案。通过分析轮内计算的关键路径,本文采用3级流水线,极大的缩短了关键路径,提升了系统主频,同时展开64轮计算过程,从而获得一个192级流水线结构的IP。并基于SMIC 0.18 μm工艺实现了系统主频达200 MHz,总吞吐率高达102.4 Gbit/s。

1 国密SM3算法流程介绍

国密SM3能够对任何一个比特长度小于264的消息生成唯一对应的256 bit长度的杂凑值,其算法流程图如图1所示。首先进行消息填充,以满足512 bit为一块的分块要求,其实现方式为:按式(消息的长度l+1 bit的’1’+kbit的’0’)%512=448填充数据,然后将取模余下的448 bit数据加上最后64 bit的消息,刚好凑成N个512 bit大小的块。接着对填充后的消息进行分组、扩展和64轮的迭代压缩;在每一块压缩结束后,和上一块的结果做异或,作为下一块迭代压缩的输入。所有块都依次做完运算之后,就得到最终的杂凑值。

图1 国密SM3算法流程图

图2 轮内三级流水线计算架构图

图1中,消息填充和消息分组常采用软件方式实现[8],消息扩展和迭代压缩是SM3算法的核心运算部分,其运算耗时费力,需要设计专门的加速硬件。本文工作的重点就是进行64轮迭代压缩的设计以提速SM3算法。

2 SM3硬件IP核流水线架构设计

2.1 轮内3级流水线设计

国家密码管理局给出的国密SM3压缩函数的计算过程如式(1)所示,其关键路径在于计算下一轮A和E的过程。计算下一轮的A,首先得先计算SS1,而SS1需要计算2次加法获得,由SS1到TT1的求解过程,又有3次加法计算,所以计算下一轮的A需要有5次加法,及与或非和移位等运算。同样,计算下一轮E的过程也需要5次的加法。由于加法是整个链路中延时最关键的部分,所以如何化分加法的层次就成为关键路径优化的关键。

基于文献[7]MD5的高速计算模型,本文提出了三级流水线的方式来优化关键路径,如图2所示。首先将Ej+Tj、Dj+W1j和Hj+Wj放到第一层加法运算中,在这一层中,同时计算FFj和GGj函数,其次在第二层中计算SS1、SS2、FFj0+Dj0和GGj0+Hj0,最后在第三层计算TT1、TT2和下一轮的输出。

通过以上三个层级的划分,使得每一层只有一次加法运算延时,这样大大减少了关键路径的延时,使系统的时钟频率能够得到极大的提高。最终的关键路径如图2所标示,从SS11到Ej+1的计算过程,其延时由一个加法器延时和2级异或逻辑延时构成。

在图2中Aj~Hj、W1j、Wj、Tj代表第j轮的输入,Aj+1~Hj+1代表第j轮的输出和第j+1轮的输入。Aj0~Hj0表示第一个层级的输出结果,Aj1~Hj1表示第二个层级的输出结果。其中,除了Aj+1和Ej+1的计算过程复杂之外,Bj+1~Dj+1、Fj+1~Gj+1仅仅是寄存器赋值或寄存器移位赋值,移位过程在实现过程中其实是连线的顺序问题,其路径延时只是线延时,能够快速实现。

由此实现了每一轮运算的三级流水线处理,依次先后处理三组消息的同一轮运算。

ABCDEFGH←V(i)

FORj=0 TO 63

SS1←[(A<<<12)+E+(Tj<<

SS2←SS1⊕(A<<<12)

TT2←GGj(E,F,G)+H+SS1+Wj

D←C

C←B<<<9

B←A

A←TT1

H←G

G←F<<<19

F←E

E←P0(TT2)

ENDFOR

V(i+1)←ABCDEFGH⊕V(i)

式中:X,Y,Z为字。

式(1) 国密SM3迭代压缩函数[1]

2.2 轮间64级流水线设计

为了进一步提高SM3的吞吐率,借鉴文献[4]的64轮全展开和文献[6]中对MD5的高速实现方法,本文提出了基于3级流水线的64轮全展开的实现方法,如图3所示。每一轮都由上面介绍的三级流水线处理结构组成,在每一轮能同时处理3组消息的3块数据。其中,M1~M192代表192个消息的编号,[1]和[2]分别代表消息的第[1]个512 bit块和第[2]个512 bit块。

由图3可见,该结构能够同时处理192个消息的1块数据,每个消息块的处理延时为192个系统时钟周期。以192级的流水线方式处理,相当于每个系统时钟周期处理一块512 bit的数据,因此其吞吐率为:

吞吐率=512×Fclk bit/s

式中:Fclk是系统时钟频率。采用该结构的不足是需要缓存每一级的数据,使存储的空间比较大。

图3 轮间64级流水线架构图

3 SM3硬件IP核的实现

基于SMIC 0.18 μm的工艺,采用verilog语言对图4的64轮共192级流水线数据处理架构进行描述,并设计成一个独立的IP核。然后采用NC-verilog进行仿真验证,数据来源于文献[1]给出的示例和大量随机数据。仿真结果与以C语言描述的SM3算法结果进行比对,比对结果全部通过,验证了该IP核的正确性。最后采用Design Compiler进行综合,IC compiler进行布局布线和prime time进行静态时序分析,得到的数据如表1所示。

表1 本文设计IP核数据表

该IP核的布局布线并且时序收敛后的版图如图4所示,由图可见该IP核采用正方形布局,长宽均约为3 mm,最终得到9 mm2的面积,而标准单元的面积为6.6 mm2,利用率大约为73.3%。此版图只是一种示例,具体可根据实际应用需求,集成到SoC芯片里面,并且根据工艺节点的不同,所需面积可进一步的缩小。

图4 布局布线后的版图

本文研究成果与已经发表的研究成果进行对比,如表2所示。

表2 结果对比

由此可以看出本文的研究成果在吞吐率方面具有明显的优势。如果采用更加先进的工艺,可以进一步的提高时钟频率,提升吞吐率,同时缩小面积。

4 结论

本文提出了一种国密SM3高吞吐率实现的方法,采用verilog语言设计了一个独立的IP核,并基于SMIC 0.18 μm的工艺进行了实现。该方法通过三级流水线的方式缩短了每轮运算的关键路径,并对64轮运算全展开,以192级流水线的方式实现了192组消息同时进行SM3计算,实现高吞吐率的目标。最终的静态时序分析表明该IP的时钟可达200 MHz,从而整体实现102.4 Gbit/s的吞吐率,比现有的最佳成果高出39.3%,将极大的满足大数据时代网络安全认证的需求。

[1] 国家密码管理局. SM3密码杂凑算法[S]. 北京:国家密码管理局,2010.

[2] 于永鹏,严迎建,李伟. SM3算法高速ASIC设计及实现[J]. 微电子学与计算机,2016,33(4):21-26.

[3] 周威,王博,张卫东. SM3算法硬件实现研究与应用[J]. 电子测量技术,2015,38(12):67-71.

[4] 蔡冰清,白国强. SM3杂凑算法的流水线结构硬件实现[J]. 微电子学与计算机,2015,32(1):16-18.

[5] 张倩,李树国. SM3杂凑算法的ASIC设计和实现[J]. 微电子学与计算机,2014,31(9):143-146.

[6] 韩津生,林家俊,叶建武. 基于FPGA的MD5高速处理模型设计[J]. 北京理工大学学报,2012,32(12):1258-1261.

[7] 王臣,袁焱. 超高吞吐量MD5算法的FPGA实现[J]. 信息技术,2011(9):55-58.

[8] 杨先伟,康红娟. SM3杂凑算法的软件快速实现研究[J]. 智能系统学报,2015,10(6):954-959.

A High Throughput Rate SM3 IP Design and Implementation*

CHENDongyun1*,LIYuanjin2

(1.School of Electronic and Communication Engineering,Guiyang Colleage,Guiyang 550005,China;2.SSI-LAB,Suzhou Jiangsu 215000,China)

In order to meet the need of internet security authentication,a high throughput rate SM3 IP design method is proposed. This method adopts 3-stage pipeline in the SM3 round calculation and shorts the critical path and thus increases the system clock frequency,and expands the 64 rounds calculation with 64-stage inter-round pipeline,which gets a total 192-stage pipeline,and makes it possible for 192 messages do the SM3 at the same time. This IP has been implemented on the SMIC 0.18 μm process,and got the result with a 102.4 Gbit/s throughput rate when the clock is 200 MHz,which is 39.3% faster than other research result.

information security;SM3;pipe-line;throughput rate;IP

项目来源:国家自然科学基金青年项目(11605030);贵州省联合基金项目(黔科合J字LKG[2013]40号);贵州省联合基金项目(黔科合J字LKG[2013]41号)

2016-11-17 修改日期:2017-01-05

TP309.7

A

1005-9490(2017)03-0622-04

C:6150P

10.3969/j.issn.1005-9490.2017.03.021

猜你喜欢
流水线延时时钟
别样的“时钟”
基于级联步进延时的顺序等效采样方法及实现
古代的时钟
流水线
有趣的时钟
时钟会开“花”
报废汽车拆解半自动流水线研究
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
流水线生产杀死艺术
SIMATIC IPC3000 SMART在汽车流水线领域的应用