鄭朝霞,田 園,蔚 然,高 峻
(華中科技大學光學與電子信息學院,湖北 武漢 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復用
隨著電子、通信、移動支付等行業的飛速發展,密碼學進步的腳步也一刻沒有停滯。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、安全路由等,在使用時可以根據具體需求選擇不同的算法。
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.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.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實現的資源及其性能
本文提出了一種小面積高性能的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