小面积高性能的SHA-1/SHA-256/SM3 IP复用电路的设计*

2015-09-22 06:19郑朝霞
计算机工程与科学 2015年8期
关键词:流水线寄存器时钟

郑朝霞,田 园,蔚 然,高 峻

(华中科技大学光学与电子信息学院,湖北 武汉 430074)

小面积高性能的SHA-1/SHA-256/SM3 IP复用电路的设计*

郑朝霞,田 园,蔚 然,高 峻

(华中科技大学光学与电子信息学院,湖北 武汉 430074)

Hash算法的快速发展导致了两个问题,一个是旧算法与新算法在应用于产品时更新换代的问题,另一个是基于应用环境的安全性选择不同算法时的复用问题。为解决这两个问题,实现了SHA-1/ SHA-256/SM3算法的IP复用电路,电路采用循环展开方式,并加入流水线的设计,在支持多种算法的同时,还具有小面积高性能的优势。首先,基于Xilinx Virtex-6 FPGA对电路设计进行性能分析,电路共占用776 Slice单元,最大吞吐率可以达到0.964 Gbps。然后,采用SMIC 0.13μm CMOS工艺实现了该设计,最后电路的面积是30.6k门,比单独实现三种算法的电路面积总和减小了41.7%,工作频率是177.62 M Hz,最大吞吐率达到1.34 Gbps。

Hash算法;SHA-1;SHA-256;SM3;IP复用

1 引言

随着电子、通信、移动支付等行业的飞速发展,密码学进步的脚步也一刻没有停滞。Hash算法是数字签名方案和消息验证码的核心部分。为了提高安全性,Hash算法飞速发展,这导致了两个问题,一个是旧算法与新算法在应用于产品时的更新换代问题,另外一个是基于应用环境的安全性选择不同算法时的复用问题。目前这两个问题的主要解决方法是同时实现若干种 Hash算法,付出的代价是芯片面积的成倍增大和产品生产成本的提高。本文提出一种复用IP的SHA-1算法、SHA-256算法和SM3算法的电路实现,在同时支持多种算法的同时,具有小面积高性能的优势。

SHA-1是20世纪90年代初NIST向全球发布的一种新的信息摘要算法,取代 MD5,成为使用最广泛的 Hash算法,目前 许多应用仍在使用SHA-1。为了增强安全性,NIST发布了第二代Hash算法SHA-2系列。SM3杂凑算法是国家密码管理局公布的,安全要求适用于我国的商用密码产品。SHA-1/SHA-256/SM3的IP复用电路能够同时支持SHA-1算法、SHA-256算法以及国家密码管理局的SM3算法,而且具有小面积高性能的优势,可以广泛应用于现存的通信产品和密码产品中,如数据加密机、加密芯片卡、USB-KEY、安全路由等,在使用时可以根据具体需求选择不同的算法。

2 Hash算法原理

SHA-1算法[1]、SHA-2算法系列[1]以及国家密码管理局的SM3算法[2]都是基于Merkle-Damgård结构,在算法过程中有许多相同之处,它们之间的区别主要在于输入最大长度、分组长度、操作字长、迭代函数及其轮次、迭代常量、哈希值的输出长度等[3]。三种算法的核心部分都是对消息分组进行压缩迭代的过程,可以分成四个部分:操作字扩展、工作变量的初始化、压缩函数以及Hash值输出。

首先,对于经填充预处理并分为N块m bit (m为512或1 024)的消息,即将其分解成了、、…、。对于每一分块消息,按 照操作字的长度又分成了,各算法都按一定的方法将其再次扩展,用于压缩函数的每一轮。根据算法不同,工作变量的个数也不相同,工作变量的个数等于输出 Hash值的长度除以操作字长度。对于各算法,在处理消息分组前,将工作变量初始化为处理结束后得到的Hash值,即。压缩函数是 Hash算法最核心的部分,将每一消息分组通过压缩运算后进行输出。所有的压缩运算完成后,将工作变量“a‖b‖c‖d‖e ‖f‖g”(其中‖表示位连接)与上一轮(第i—1轮)的Hash值进行模或模加法。SM3算法则是工作变量与上一轮的Hash值按位异或,得到第i轮的 Hash值。当所有的消息分组处理完成后,得到的Hash值,就是整个消息M的Hash值,即消息摘要[4,5]。

3 Hash算法的IP复用电路的硬件设计

3.1 IP复用电路的硬件架构

SHA-1算法、SHA-2算法系列以及国家密码管理局SM3算法有共同之处,因此它们的电路整体架构比较相似。为了实现SHA-1/SHA-256/ SM3算法IP复用电路,本文在基于通用架构的基础上,对通用电路架构的七个部分都进行了一定程度的复用,IP复用的电路架构如图1所示。三种算法的IP复用电路通过一个输入选择信号mod_ sel选择要使用的Hash算法,对输入消息进行哈希。电路架构主要包括七个部分,分别为接口控制电路、round控制电路、Hash值寄存器、Wt产生电路、迭代常量Kt产生电路、压缩运算电路以及工作变量寄存器堆。

Figure 1 IP multiplexing circuit of SHA-1/SHA-256/SM3图1 SHA-1/SHA-256/SM3 IP复用电路

接口控制电路主要用于控制消息输入输出、Hash值的初始化、Hash算法的轮次等,IP复用电路架构的接口控制电路,在通用架构接口控制电路的基础上,加入了模式选择信号mod_sel,主要用于选择将要进行的 Hash算法,并用于所选择的Hash算法的相应round控制电路、Hash值寄存器、Wt产生电路、迭代常量Kt产生电路等。round控制电路主要用于轮次的产生,并提供给其它电路。架构中的Hash值寄存器电路,通过接口控制电路的iv_control选择寄存初始化值或当前消息分组处理后得到的 Hash值的基础上,通过mod_sel信号,对所寄存的初始化值的归属进行选择。工作变量寄存器堆主要用于存放当前的工作变量和操作字,工作变量寄存器堆的复用设计是IP复用对面积减小的关键。本设计中,三种 Hash算法使用共用的工作变量寄存器堆和操作字寄存器。通过复用,有效地控制了同时实现三种算法的面积增长。

3.2 循环展开方式的压缩运算电路设计

压缩运算电路的设计是SHA-1算法、SHA-256算法以及SM3算法硬件电路设计的核心。对硬件Hash算法的实现进行加速,常使用基本迭代方式的压缩运算电路多实例化的并行处理方法。但是,这种结构对需要被散列一个长的消息并不适用。因此,本文将采用一种新的压缩运算电路,即循 环展开 方 式 的 电路[6,7]。

图2是压缩电路的基本迭代运算方式,图3为压缩电路的循环展开方式。从图中的对比可以看出,与基本迭代方式不同,循环展开方式的压缩运算电路在一个时间周期进行了k轮的基本迭代运算。因此,压缩运算的总时钟周期数减少80/k个时钟周期,同时循环展开方式的电路关键路径延时并不会增长为迭代运算方式关键路径延时的k倍。利用Hash算法中压缩运算的这种特性,运用循环展开的方式来构造Hash算法中压缩运算的电路,可以显著地提高电路的吞吐率。

Figure 3 Loop unrolling method for compression circuit图3 压缩电路的循环展开方式

下面以SHA-1算法为例,分析压缩运算电路的构造方式。如图4所示为SHA-1的k=2的循

环展开方式。其中,a、b、c、d、e为工作变量,每i轮迭代运算从工作变量寄存器a、b、c、d、e开始,经过组合逻辑,即迭代运算电路,在下一个时钟上升沿将本轮(即第i轮)迭代运算的结果寄存至a、b、c、d、e,并作为下一轮(第i+1轮)迭代运算的初始值。其中ROTL(x)表示循环左移x位。

Figure 4 Compression arithmetic circuit of loop unrolling method(k=2)图4 SHA-1循环展开方式(k=2)压缩运算电路

其关键路径如下所示。关键路径的延时显著减小,主要源于第一级中]的预计算。

本文对SHA-1算法、SHA-256算法以及SM3算法,都采用循环展开的方式。k级循环展开方式的优势在于,在将压缩运算的时钟周期减少k倍的同时,关键路径的延时不会增大到迭代方式的k倍。因此,循环展开方式有更大的吞吐率。

3.3 流水线的电路设计

为了提高电路性能,在电路实现的过程中插入轮间流水,这样对提高电路的吞吐率非常有效。根据各算法压缩运算的轮次的不同,所能插入轮间流水线的级数也不完全相同。由于插入流水线会提高电路资源的消耗,流水线的级数要根据电路资源和性能进行具体选择。本文根据各算法压缩运算电路的不同方式,分别实现了它们的流水线方式电路设计。

Figure 5 Hash algorithm architecture of the pipelining method图5 流水线方式的Hash算法电路架构

Hash流水线的Hash算法电路架构如图5所示,图中仅给出了部分电路架构,压缩运算电路,Kt、Wt产生 电 路等 并 未体 现 。流 水 线的 实 现上,在第i级流水线中加入了valid_i信号、busy_i信号以及round_i信号,以控制流水线的轮次。valid_i信号在第i—1级流水线上的压缩运算完成时产生,以开始第i级流水线上的压缩运算;busy_i信号同样在第i—1级流水线上的压缩运算完成时产生,并在第i级流水线上的压缩运算完成时清零,busy_i信号主要用于通知控制单元本级流水线的工作情况,以防止流水线被打乱;round_i信号在第i级流水线上的压缩运算开始时开始计数,并在第i级流水线上的压缩运算结束时清零,以控制第i级流水线的压缩运算轮数。

4 电路的实现结果和性能分析

4.1 实现结果

本设计使用Verilog语言完成了RTL级电路设计,并用ModelSim仿真工具进行Hash算法的安全功能测试,测试数据全部基于 NIST网站[8]和国家密码管理局网站[2]给出的相关算法的测试数据,在功能正确的同时,充分保证所设计电路的安全性。IP复用电路中各算法的压缩运算均采用迭代方式,完成一组512 bit消息运算,使用SHA-1算法需要81个时钟周期,使用SHA-256算法和SM3算法需要65个时钟周期。

FPGA实现方面,基于Xilinx公司Virtex-6 FPGA,用Xilinx FPGA的Slice单元进行统计。为了进一步准确地评估硬件电路的实现性能以及完成最终的ASIC实现。使用Synopsys公司的DC工具,采用SMIC的0.13μm的CMOS工艺进行综合,DC综合之后,用Cadence公司的encounter工具进行布局布线,得到最后的版图,目前芯片已经完成流片。同时,本文对电路的面积、功耗、最高工作频率进行了分析。

4.2 性能分析

4.2.1 FPGA实现的资源及其性能

FPGA板级验证是电路设计流程中非常重要的一部分,板级验证真正将设计转换为实质电路,对设计进行验证。本文基于Xilinx公司Virtex-6 FPGA,芯片型号为XC6 VLX130T,采用45 nm工艺,实现工具采用Xilinx公司ISE硬件设计工具。将电路的Verilog HDL逻辑代码,经过翻译(Translate)、映射(Map),然后布局布线(Place& Route)并生成二进制配置文件,最后通过Xilinx 的IMPACT工具对电路进行烧写。FPGA的资源评估是使用Xilinx FPGA的Slice单元进行统计。IP复用电路FPGA实现的资源以及性能如表1所示。共占用1 372 Slice register,3 027 Slice LUT,共776 Slice单元,最高时钟频率可达到121.86 MHz,完成一个512 bit分组运算最少需要65个时钟周期,数据吞吐率最大可达到959.90 Mbps。

从表1可以看到,IP复用电路占用776 Slice单元,而SHA-1、SHA-256、SM3分别占用307 Slice、517 Slice和397 Slice,总和是1 221 Slice单元,通过计算(1221—776)/1221,得到IP复用电路的面积比SHA-1、SHA-256、SM3分别实现的资源总和减少了36.4%。而IP复用电路的吞吐率是959.90 Mbps,SHA-1、SHA-256、SM3的吞吐率分别是964.15 Mbps、1 144.40 Mbps、1 180.95 Mbps,通过分别计算(964.15—959.90)/964.15、(1144.40—959.90)/1144.40和(1180.95—959. 90)/1180.95,可以得到吞吐率仅比SHA-1算法迭代方式的吞吐率小0.45%,比SHA-256算法迭代方式的吞吐率小16.1%,比SM3算法迭代方式的吞吐率小18.7%。因此,IP复用电路的优势十分明显,以较低的面积开销换取了三种算法的同时实现,并且保持了较高的吞吐率。

4.2.2 相关文献数据对比

表2中,文献[9]基于Altera Stratix II FPGA实现MD5/SHA-1/SHA-2算法复用电路[9],其中所实现SHA-2算法为SHA-256算法;文献[10]基于Xilinx Virtex-2 FPGA实现MD5/SHA-1算法复用电路;文献[11]基于Xilinx Viretex-2 FPGA实现SHA-256/384/512算法复用电路;文献[12]基于Xilinx Virtex2 FPGA实现SHA-2和SHA-3算法;文献[13]基于Xilinx Virtex4 FPGA实现了

SHA-1/SHA-2复用电路。

通过与表2中其他相关文献的数据对比可以得知,本文有效性为1.24,即吞吐率和面积的比值为1.24,而文献[9]的有效性为0.43,文献[11]的有效性为1.056,文献[12]的有效性为0.12,文献[13]的有效性为0.02,相比而言,本设计有小面积高性能的优势。因此,本文的设计不但实现三种不同系列的Hash算法,充分考虑到当前新旧Hash算法的问题,并且面积开销比其它 Hash复用电路小很多,吞吐率也更大,性能较好。

4.2.3 ASIC实现的资源及其性能分析

本文将所设计的SHA-1/SHA-256/SM3 IP复用电路进行ASIC后端流程设计,主要包括综合、优化,通过tcl脚本语言对环境命名规则、标准单元库建立、RTL代码读入、约束设计等信息进行编写,使用Design Compiler进行综合/优化,通过静态时序分析,穷尽所有路径,对设计的建立时间和保持时间进行分析,确保所有的路径没有时序违

例,最后通过版图规划、电源环建立、时钟树插入、布局布线之后完成最终设计版图。

IP复用电路ASIC实现的资源以及性能如表3所示。共占用30.6k等效逻辑门,最高时钟频率可达到177.62 MHz,完成一个512 bit分组运算最少需要65个时钟周期,数据吞吐率最小可达到1 399.10 Mbps。

由IP复用电路的ASIC实现资源及性能结果与FPGA实现结果一致,IP复用电路的面积比三者分别实现的资源总和减少了41.7%,而吞吐率则比SHA-1算法迭代方式的吞吐率小2.7%,比SHA-256算法迭代方式的吞吐率小13.9%,比SM3算法迭代方式的吞吐率小0.3%,IP复用电路以较低的面积开销换取了三种算法的同时实现,并且保持了较高的吞吐率。与文献[14]数据进行比较,本文的复用电路结构在吞吐率上有很大的优势。

Table 1 Resources and performance of the IP multiplexing circuit realized through FPGA表1 IP复用电路FPGA实现的资源及其性能

5 结束语

本文提出了一种小面积高性能的SHA-1/ SHA-256/SM3 IP复用电路的硬件结构,基于这种结构,SHA-1、SHA-256、SM3这三种算法能够灵活地选用。实验结果表明,IP复用电路在实现三种算法的同时,保持了小面积和高吞吐率的优势,最小吞吐率达1 399.10 Mbps,能够很好地应用于加密卡、SIM卡、安全路由、认证系统等。

[1] National Institute of Standards and Technology.FIPS PUB 180-4,secure Hash standard(SHS)[S].Gaithersburg:NIST,2012.

[2] The state encryption administration.SM3 cryptographic Hash algorithm[S].Beijing,2010.(in Chinese)

[3] Jeon J-C,Seo K-J,Kim K-W.Hardware complexity of SHA-1 and SHA-256 based on area and time analysis[C]∥Proc of 2012 International Conference on Information Network (ICOIN 2012),2012:557-561.

[4] Madhavi V C,Rao K H,Malyadri P,et al.New techniques for hardware implementations of SH A[J].Global Journal of Researches in Engineering Electrical and Electronics Engineering,2012,127(1):112-117.

[5] Shen Yan-zhao.Cryptanalysis of SM3 cryptographic Hash algorithm[D].Shanghai:Donghua University,2013.(in Chinese)

[6] Lien R,Grembowski T,Gaj K.A 1 Gbit/s partially unrolled architecture of Hash functions SHA-1 and SHA-512[C]∥Proc of CT-RSA'04,2004:324-338.

[7] McEvoy R P,Crowe F M,Murphy C C,et al.Optimization of the SH A-2 family of Hash functions on FPGAs[C]∥Proc of IEEE Computer Society Annual Symposium on Emerging VLSI Technologies and Architectures,2006:6-11.

[8] Bassham L E,Hall T A.The secure Hash algorithm validation system(SH AVS)[EB/OL].[2012-07-01].http:∥csrc. nist.gov/.

[9] Ducloyer S,Vaslin R,Gogniat G,et al.Hardware implementation of a multi-mode Hash architecture for MD5,SHA-1 and SHA-2[C]∥Proc of the Design and Architectures for Signal and Image Processing Workshop(DASIP'07),2007:15-19.

[10] Liu Zheng-lin,Dong Xin,Li Dong-fang.On the hardware implementations of the SHA-2(256,384,512)Hash function[J].Microelectronics&Computer,2012,29(1):51-54. (in Chinese)

[11] He J,Chen H,Huang H.A compatible SHA series design based on FPGA[C]∥Proc of 2010 IEEE International Conference on Electrical Engineering/Electronics Computer Telecommunications and Information Technology(ECTICON),2010:380-384.

[12] Dong Xin.Hardware implementation of configure SHA-2 series algorithm and SHA-3(BLAKE-32)algorithm[D]. Wuhan:Huazhong University of Science and Technology,2012.(in Chinese)

[13] James D,Albert K.A flexible hardware implementation of SHA-1 and SHA-2 Hash functions[C]∥Proc of 2011 IEEE International Symposium on Circuits and Systems(ISCAS),2011:1932-1935.

[14] Cao D,Han J,Zeng X.A reconfigurable and ultra low-cost VLSI implementation of SHA-1 and MD5 functions[C]∥Proc of the 7th IEEE International Conference on ASIC,2007:862-865.

附中文参考文献:

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

[5] 申延召.SM3密码杂凑算法分析[D].上海:东华大学,2013.

[10] 刘政林,董馨,李东方.SHA-2(256,384,512)系列算法的硬件实现[J].微电子学与计算机,2012,29(1):51-54.

[12] 董馨.可配置SHA-2系列算法和SHA-3(BLAKE-32)算法的硬件实现[D].武汉:华中科技大学,2012.

郑朝霞(1975),女,湖北武汉人,博士,副 教 授,研 究 方 向 为 信 息 安 全。E-mail:zxzheng@hust.edu.cn

ZHENG Zhao-xia,born in 1975,PhD,associate professor,her research interest includes information security.

田园(1991),女,湖北武汉人,硕士,研究方向为信息安全。E-mail:870173525 @qq.com

TIAN Yuan,born in 1991,MS,her research interest includes information security.

蔚然(1989),男,河南洛阳人,硕士,研究方向为信息安全。E-mail:115946873 @qq.com

WEI Ran,born in 1989,MS,his research interest includes information security.

An SHA-1/SHA-256/SM3 IP multiplexing circuit with small area and high performance

ZHENG Zhao-xia,TIAN Yuan,WEI Ran,GAO Jun
(School of Optical and Electronic Information,Huazhong University of Science&Technology,Wuhan 430074,China)

The rapid development of Hash algorithm leads to two problems:one is the replacement of the old algorithms with the new ones when the products are upgraded,and the other is how to choose from different algorithms according to the security of the application environments.To solve the problems mentioned above,we design an SHA-1/SHA-256/SM3 IP multiplexing circuit,which makes use of the loop unfolding technique and adds pipelines to each circuit.The circuit not only supports a variety of hash algorithms,but also features small area and high performance.The design is first implemented on a Xilinx Virtex—6 FPGA.It requires 776 slices and achieves a maximum throughput of 0.964 Gbps. Then we also implement every circuit using the SMIC 0.13μm CMOS technology.The area of the circuit is 30.6k gates,which is reduced by 41.7%than that of the three circuits combined.Besides,the operating frequency of the circuit is 177.62 M Hz,and the maximum throughput reaches 1.34Gbps.

Hash algorithm;SHA-1;SHA-256;SM3;IP multiplexing

TN47

A

10.3969/j.issn.1007-130X.2015.08.001

1007-130X(2015)08-1417-06

2014-08-19;

2014-10-11

国家自然科学基金资助项目(61006020,61376031);中央高校基本科研业务费专项资金资助项目(2014 TS041)

通信地址:430074湖北省武汉市华中科技大学西一楼114

Address:Room 114,1st West Building,Huazhong University of Science&Technology,Wuhan 430074,Hubei,P.R.China

猜你喜欢
流水线寄存器时钟
别样的“时钟”
古代的时钟
Lite寄存器模型的设计与实现
流水线
分簇结构向量寄存器分配策略研究*
有趣的时钟
时钟会开“花”
报废汽车拆解半自动流水线研究
流水线生产杀死艺术
SIMATIC IPC3000 SMART在汽车流水线领域的应用