《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于LUT的高速低硬件開銷SHA-3算法設(shè)計(jì)
基于LUT的高速低硬件開銷SHA-3算法設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第4期
張躍軍,廖澴桓,丁代魯
寧波大學(xué) 電路與系統(tǒng)研究所,浙江 寧波315211
摘要: 通過對(duì)SHA-3算法和查找表(Look-Up-Table,LUT)方法的研究,提出一種高速低硬件開銷SHA-3算法設(shè)計(jì)方案。首先,該方案利用狀態(tài)機(jī)實(shí)現(xiàn)SHA-3算法核心置換函數(shù)的輪運(yùn)算,并結(jié)合LUT方法處理每輪運(yùn)算的數(shù)據(jù)交換和數(shù)據(jù)存儲(chǔ);然后,采用硬件模塊并行處理和存儲(chǔ)單元共用的方式,提高SHA-3算法的速度、降低硬件開銷。最后,在SMIC 65 nm CMOS工藝下設(shè)計(jì)SHA-3算法,DC綜合后電路面積為65 833 μm2,在1.2 V電壓下最高工作頻率可達(dá)到150 MHz,功耗為2.5 mW。
中圖分類號(hào): TP331
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.04.011
中文引用格式: 張躍軍,廖澴桓,丁代魯. 基于LUT的高速低硬件開銷SHA-3算法設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(4):43-46.
英文引用格式: Zhang Yuejun,Liao Huanhuan,Ding Dailu. A high speed and low hardware cost SHA-3 algorithm based on LUT method[J].Application of Electronic Technique,2017,43(4):43-46.
A high speed and low hardware cost SHA-3 algorithm based on LUT method
Zhang Yuejun,Liao Huanhuan,Ding Dailu
Institute of Circuits and Systems,Ningbo University,Ningbo 315211,China
Abstract: By studying the SHA-3 algorithm and Look-Up-Table(LUT) method, a high speed and low hardware cost circuit scheme has been proposed. Firstly, the state machine is used to implement the round operation, which is the core replacement function of SHA-3 algorithm. The data exchange and data storage of each round operation are processed by LUT method. Then, the hardware module parallel processing and storage unit sharing techniques are used to improve operation frequency and to reduce the hardware cost. Finally, the SHA-3 algorithm is designed using SMIC 65 nm CMOS process. DC synthesis shows that the area of circuit is 65 833 μm2. The maximum operating frequency is 150 MHz and power consumption is 2.5 mW at 1.2 V.
Key words : SHA-3;LUT method;high speed;low cost;CMOS circuit

0 引言

    集成電路和信息技術(shù)的日益發(fā)展,支付寶、淘寶、網(wǎng)銀以及微信等互聯(lián)網(wǎng)應(yīng)用的迅速普及,為人們?nèi)粘I睢W(xué)習(xí)和工作帶來極大便利。大量的信息共享帶來方便的同時(shí),也出現(xiàn)信息泄露與被篡改的威脅,如網(wǎng)上銀行賬戶被盜、個(gè)人隱私泄露以及棱鏡門事件等。因此如何保證數(shù)據(jù)信息的安全在密碼學(xué)中顯得尤為突出。Hash函數(shù)又稱哈希函數(shù)或者雜湊函數(shù),是現(xiàn)代密碼學(xué)中最基本的模塊之一,以任意長度的消息值作為輸入,生成固定長度的輸出數(shù)據(jù)。Hash函數(shù)在數(shù)字簽名、文件校驗(yàn)、鑒權(quán)協(xié)議以及流密鑰產(chǎn)生、偽隨機(jī)序列生成、流密碼等方面有著廣泛的應(yīng)用。自從2004年密碼學(xué)家王小云教授宣布攻破常用的MD5雜湊算法以來,網(wǎng)絡(luò)信息安全問題進(jìn)一步凸顯。美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)于2007年宣布一項(xiàng)公開征集雜湊函數(shù)新標(biāo)準(zhǔn)(SHA-3算法)的活動(dòng),于2012年10月2日Keccak雜湊算法憑借著其新穎的Sponge結(jié)構(gòu)迭代設(shè)計(jì)方法、較強(qiáng)的安全性能以及良好的實(shí)現(xiàn)方法成為新一代雜湊函數(shù)標(biāo)準(zhǔn)。

    作為當(dāng)前雜湊算法標(biāo)準(zhǔn)的SHA-3算法,與以往哈希算法相比呈現(xiàn)出良好的安全性和工作效率,但其物理實(shí)現(xiàn)還不太成熟。首先,算法的電路實(shí)現(xiàn)所占用的硬件資源仍相對(duì)較多;其次,算法實(shí)現(xiàn)所能達(dá)到的處理速度雖已較快,但實(shí)際應(yīng)用空間仍有限;最后,隨著攻擊方式的進(jìn)化,SHA-3算法被攻擊的輪數(shù)會(huì)越來越多,其安全性也可能隨之降低。因此,SHA-3算法本身存在一定的優(yōu)化空間。本文在研究查找表(Look-Up-Table,LUT)方法的基礎(chǔ)上,針對(duì)算法在實(shí)際應(yīng)用中速度慢與占用資源大的問題進(jìn)行改進(jìn),提出一種基于LUT的高速低硬件開銷SHA-3算法。將其運(yùn)行的中間結(jié)果先寫入RAM中,每輪運(yùn)算只需輸入地址信息就能實(shí)現(xiàn)具體邏輯運(yùn)算,同時(shí)利用硬件共用的方式提高硬件利用率。改進(jìn)后的算法進(jìn)一步提高SHA-3算法的適用性,具有廣闊的應(yīng)用前景。

1 SHA-3算法

    2012年10月NIST宣布Keccak算法為SHA-3競(jìng)選的最終獲勝者,該算法方案的提供者主要包括Guido Bertoni,Joan Daemen(AES加密算法的發(fā)明者之一),Michael Peeters以及Gilles Van Assche。所提供標(biāo)準(zhǔn)的Keccak方案整體結(jié)構(gòu)采用海綿結(jié)構(gòu)(sponge construction)。海綿結(jié)構(gòu)的工作過程主要分成兩個(gè)階段:吸收階段和擠壓階段。在吸收階段,在保存內(nèi)部狀態(tài)不變的前提下將輸入信息與輸入狀態(tài)進(jìn)行異或操作,異或的結(jié)果作為吸收階段的輸入數(shù)據(jù);在擠壓階段,根據(jù)輸出數(shù)據(jù)位寬要求,從N輪置換運(yùn)算的結(jié)果中交替取出所需數(shù)據(jù),最后拼接成輸出數(shù)據(jù)。Keccak算法所采用的海綿結(jié)構(gòu)模型。其中,壓縮函數(shù)為Keccak-f[x],x是輪函數(shù)的置換寬度,長度決定迭代函數(shù)的輪數(shù),具體根據(jù)公式x=25×2l進(jìn)行計(jì)算。即nr=12+2l,在壓縮函數(shù)處理時(shí),每一輪置換函數(shù)f作用在一個(gè)三維矩陣的五步迭代置換。

1.1 SHA-3算法的三維置換矩陣

    壓縮函數(shù)Keccak-f[x]的輸入數(shù)據(jù)按照坐標(biāo)軸m、n、p依次填充進(jìn)5×5×64的三維比特?cái)?shù)組a[m][n][p]中,稱作狀態(tài)數(shù)組。最終提交時(shí),b=1 600,即m=5,n=5,p=64(l=6),基本塊置換函數(shù)由12+2l(l=6時(shí)為24)輪迭代5個(gè)子輪,每輪運(yùn)算都各自簡單獨(dú)立。每輪迭代的輪函數(shù)由五步迭代的R運(yùn)算組成,通過對(duì)三維比特?cái)?shù)組進(jìn)行不同方向的變換達(dá)到擴(kuò)散和混淆的作用。其中,變換為非線性變換,下文將會(huì)具體分析SHA-3算法的五步迭代函數(shù)。

1.2 SHA-3算法的五步迭代函數(shù)

    目前SHA-3算法的三維矩陣主要采用l=6,即矩陣大小為5×5×64。在m、n軸進(jìn)行模5運(yùn)算,在p軸進(jìn)行模64運(yùn)算。

     wdz3-gs1.gif

    這一變換是將每比特附近的兩列(column)比特之和迭加到該比特上(m和n的坐標(biāo)都是模5的)具有良好的擴(kuò)散性。

wdz3-gs2.gif

    這一變換作用于z軸上,是針對(duì)每個(gè)p方向的lane的比特循環(huán)移位。

    wdz3-gs3.gif

    這一變換是針對(duì)每個(gè)m-n平面的slice的比特移位,達(dá)到長期擴(kuò)散的效應(yīng)。

    wdz3-gs4.gif

    這是針對(duì)每個(gè)m方向的row的非線性運(yùn)算,等效為5×5的S盒。

    wdz3-gs5.gif

    這一變換是通過在每輪運(yùn)算最后加一個(gè)輪常數(shù)RC,逐比特進(jìn)行,且每輪ir的輪常數(shù)不同,達(dá)到破壞三維數(shù)組原有對(duì)稱性的效應(yīng)。

2 SHA-3面積優(yōu)化算法的VLSI實(shí)現(xiàn)

    SHA-3算法的面積優(yōu)化的主要思路是通過使用LUT方法達(dá)到使用并行加速設(shè)計(jì)算法的效果,利用RAM寄存每次計(jì)算結(jié)果以及一些中間變量,實(shí)現(xiàn)同時(shí)對(duì)一個(gè)分組數(shù)據(jù)進(jìn)行運(yùn)算處理,從而加快SHA-3置換算法處理速度,降低算法執(zhí)行功耗。

2.1 LUT面積優(yōu)化策略

    由于在SHA-3算法中,分組數(shù)據(jù)位寬均為64位,因而若采用并行加速的方式來設(shè)計(jì)算法,開銷太大不能實(shí)現(xiàn)同時(shí)對(duì)一個(gè)分組數(shù)據(jù)進(jìn)行運(yùn)算處理,在運(yùn)算過程中只能對(duì)某一部分?jǐn)?shù)據(jù)進(jìn)行運(yùn)算,其他數(shù)據(jù)資源處于閑置狀態(tài),極大影響利用率和算法執(zhí)行速度。而采用LUT方法,如圖1和圖2所示,暫存中間數(shù)據(jù)來實(shí)現(xiàn)算法,克服內(nèi)存開銷過大的缺點(diǎn)。每次將計(jì)算好的結(jié)果放在RAM中,進(jìn)行加密運(yùn)算時(shí),直接從SRAM中取出運(yùn)算結(jié)果即可。不但加快SHA-3置換算法處理速度,而且極大降低算法設(shè)計(jì)復(fù)雜度,進(jìn)而減少實(shí)際電路資源開銷。

wdz3-t1+t2.gif

2.2 面積優(yōu)化算法流程

    基于SHA-3標(biāo)準(zhǔn)算法和面積優(yōu)化策略,確定SHA-3面積優(yōu)化算法的具體實(shí)現(xiàn)方案,該算法的流程如圖3所示,該算法步驟如下:

wdz3-t3.gif

    步驟1:將算法中輸入的25位64進(jìn)制數(shù)據(jù)形式的輸入數(shù)據(jù)從0地址開始存入64位64進(jìn)制的RAM表中。

    步驟2:通過狀態(tài)機(jī)對(duì)輸入數(shù)據(jù)依次實(shí)現(xiàn)線性變換以及非線性變換,每次運(yùn)算的結(jié)果都存儲(chǔ)在RAM表中,每個(gè)狀態(tài)都會(huì)產(chǎn)生一個(gè)0~63的地址addr、一個(gè)8位2進(jìn)制的命令字command、0~4的控制字counter_plane_to_pe和counter_sheet_to_pe、一個(gè)0~24的輪轉(zhuǎn)數(shù)nr_round以及2個(gè)一位二進(jìn)制讀寫信號(hào)enR和enW,通過地址以及讀寫信號(hào)對(duì)RAM表中對(duì)應(yīng)的數(shù)據(jù)進(jìn)行操作,讀取的數(shù)據(jù)存儲(chǔ)在64位的二進(jìn)制寄存器data_from_mem中,要寫入RAM表中的數(shù)存儲(chǔ)在64位的二進(jìn)制寄存器data_to_mem中。

    每個(gè)狀態(tài)執(zhí)行的變換過程如圖4所示,變換進(jìn)行的運(yùn)算使用了9個(gè)64位的二進(jìn)制寄存器,分別是r1_in、r1_out、r2_in、r2_out、r3_in、r3_out、rho_out、chi_out、iota,初值均為0x0000。變換流程圖如圖3所示,主要分成以下兩個(gè)階段:

wdz3-t4.gif

    階段1:當(dāng)enW=1時(shí),在執(zhí)行線性變換階段,根據(jù)command命令字各個(gè)位的值選擇data_from_mem、r1_out、r2_out、r3_out進(jìn)行對(duì)應(yīng)的與、異或運(yùn)算計(jì)算出r1_in的值,根據(jù)command命令字各個(gè)位的值選擇r1_out或r2_out賦值給r2_in,根據(jù)command命令字各個(gè)位的值選擇r2_out或r3_out賦值給r3_in,將r1_out、r2_out、r3_out進(jìn)行對(duì)應(yīng)的與、異或運(yùn)算計(jì)算出chi_out的值;在執(zhí)行非線性變換階段,根據(jù)counter_plane_to_pe、counter_sheet_to_pe控制字的值將r1_out左移一定位數(shù)后賦值給rho_out,在執(zhí)行變換階段時(shí),根據(jù)輪轉(zhuǎn)數(shù)nr_round生成對(duì)應(yīng)的輪常數(shù)iota。

    階段2:當(dāng)enR=1時(shí),根據(jù)command命令字各個(gè)位的值選擇將r1_out、chi_out、rho_out與iota進(jìn)行異或運(yùn)算后賦值給data_to_mem。當(dāng)時(shí)鐘上升沿到來時(shí),按照五步迭代公式賦值運(yùn)算。將RAM表中地址0~24的數(shù)據(jù)輸出,得到最終SHA-3數(shù)據(jù)。

2.3 面積優(yōu)化算法的硬件結(jié)構(gòu)

    面積優(yōu)化SHA-3算法的具體結(jié)構(gòu)如圖5所示, HA-3算法的主要開銷在輪運(yùn)算過程中,所以處理速度的快慢由24輪運(yùn)算的五步迭代所決定。因此,考慮在硬件實(shí)現(xiàn)過程中,在一個(gè)時(shí)鐘周期內(nèi)采用LUT的方法完成五步迭代,提高算法的效率。同時(shí)采用硬件復(fù)用的方式,進(jìn)行面積優(yōu)化。從時(shí)間的角度,可以提前完成各輪密匙的計(jì)算,雜湊數(shù)據(jù)時(shí)只需要一個(gè)時(shí)鐘周期即可,所以數(shù)據(jù)計(jì)算可以盡量滿足對(duì)實(shí)時(shí)性的要求;從硬件開銷角度看,整套SHA-3算法采用LUT和硬件復(fù)用的方式,節(jié)省大量的存儲(chǔ)和邏輯運(yùn)算單元,降低系統(tǒng)功耗。

wdz3-t5.gif

3 實(shí)驗(yàn)結(jié)果與分析

    采用TSMC 65 nm CMOS工藝,實(shí)現(xiàn)基于LUT方法的SHA-3算法硬件電路。實(shí)驗(yàn)環(huán)境包括Intel Pentium(R) Dual-Core CPU 2.70 GHz、2 G RAM計(jì)算機(jī),DC綜合軟件,NCverilog和Modelsim仿真軟件。采用VHDL語言實(shí)現(xiàn)面積優(yōu)化SHA-3算法,其中表1和表2分別為部分的輸入/輸出數(shù)據(jù),表3為DC綜合的特征總結(jié),工作速度為150 MHz。

wdz3-b1.gif

wdz3-b2.gif

wdz3-b3.gif

4 結(jié)論

    本文通過對(duì)SHA-3算法的五步置換研究,提出一種基于LUT方法的小面積算法設(shè)計(jì)方案,并在VHDL硬件語言下實(shí)現(xiàn)。將生成數(shù)據(jù)與原有的SHA-3算法結(jié)果進(jìn)行比較,驗(yàn)證其正確性。采用利用狀態(tài)機(jī)實(shí)現(xiàn)SHA-3算法核心置換函數(shù)的輪運(yùn)算,結(jié)合LUT方法處理每輪運(yùn)算的數(shù)據(jù)交換和數(shù)據(jù)存儲(chǔ),對(duì)RAM表讀寫數(shù)據(jù)實(shí)現(xiàn)讀取運(yùn)算與覆蓋新的運(yùn)算結(jié)果,在優(yōu)化SHA-3算法效率的同時(shí)有效降低面積開銷。

參考文獻(xiàn)

[1] 王勇,蔡國永.基于隨機(jī)函數(shù)的哈希函數(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2015,34(10):2679-2683.

[2] ZHANG H,HAN W,LAI X,et al.Survey on cyberspace security[J].Science China(Information Sciences),2015,58(11);5-47.

[3] MALIK A,AZIZ A,KUNDI D,et al.Software implementation of standard hash algorithm(SHA-3) Keccak on Intel core-i5 and cavium networks octeon plus embedded platform[C].2nd Mediterranean Conference on Embedded Computing (MECO),2013:79-83.

[4] Hash function[OL].http://en.wikipedia.org/wiki/Hash function.(2015.11.30).

[5] 李倩男,李云強(qiáng),蔣淑靜,等.Keccak類非線性變換的差分性質(zhì)[J].通信學(xué)報(bào),2012,33(9):140-146.

[6] 李建瑞,汪鵬君,張躍軍,等.基于SHA-3算法的圖像密鑰生成方法[J].華東理工大學(xué)學(xué)報(bào),2015,41(5):693-697.



作者信息:

張躍軍,廖澴桓,丁代魯

(寧波大學(xué) 電路與系統(tǒng)研究所,浙江 寧波315211)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲色图在线视频| 欧美jizz19hd性欧美| 最新中文字幕一区二区三区| 午夜精品福利在线| 亚洲欧美日韩在线播放| 一本一道久久综合狠狠老精东影业| 91久久久久久| 亚洲国产精品va在线看黑人| 在线播放日韩| 亚洲大胆av| 亚洲大胆人体在线| 激情成人综合| 在线播放中文一区| 伊人成人在线| 亚洲高清视频中文字幕| 亚洲国产精品123| 亚洲激情婷婷| 日韩小视频在线观看| 日韩亚洲欧美高清| 在线亚洲免费| 亚洲女人天堂成人av在线| 亚洲欧美激情视频在线观看一区二区三区 | 国产精品视频自拍| 国产精品主播| 国产一区二区无遮挡| 一区二区三区在线观看视频| 伊人久久噜噜噜躁狠狠躁| 亚洲国产精品一区| 日韩视频在线一区二区| 一区二区三区免费看| 亚洲欧美经典视频| 亚洲第一页在线| 亚洲美女尤物影院| 亚洲一区二区三区精品在线| 欧美亚洲午夜视频在线观看| 久久久久久一区| 欧美精品一区二区精品网 | 欧美午夜精品一区| 国产精品一区二区视频 | 亚洲激情网站免费观看| 99精品99久久久久久宅男| 亚洲综合色激情五月| 久久久国产91| 欧美另类视频在线| 国产精品自在欧美一区| 在线精品视频在线观看高清| 日韩亚洲精品视频| 欧美主播一区二区三区| 日韩视频免费大全中文字幕| 亚洲欧美另类综合偷拍| 久久网站热最新地址| 欧美日韩国产色视频| 国产九色精品成人porny| 在线观看一区二区视频| 一本久道久久综合中文字幕| 小处雏高清一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆 | 在线精品视频一区二区三四| 一本色道久久综合亚洲精品婷婷| 欧美一区午夜精品| 99re6这里只有精品| 久久国产精品一区二区三区四区| 欧美成人xxx| 国产乱人伦精品一区二区 | 欧美三级电影网| 国产一区二区久久精品| 日韩视频一区二区三区| 久久国产综合精品| 亚洲一区二区三区国产| 蜜臀va亚洲va欧美va天堂| 国产精品视频网站| 亚洲精品乱码久久久久久黑人| 性18欧美另类| 亚洲视频精选在线| 六十路精品视频| 国产精品私拍pans大尺度在线| 亚洲国产一区二区视频| 午夜国产精品影院在线观看| 日韩视频一区二区三区在线播放| 久久久国际精品| 国产精品久久久久久久久久久久 | 日韩一级大片在线| 久久天天狠狠| 国产精品夜夜嗨| 日韩写真在线| 亚洲精品中文字| 久久久亚洲国产天美传媒修理工 | 亚洲精品一区二区三区不| 久久精品女人| 久久xxxx| 国产精品日韩欧美大师| 亚洲精品综合久久中文字幕| 亚洲国产精品久久久久秋霞蜜臀| 久久福利毛片| 国产精品久久看| 99一区二区| 日韩一本二本av| 欧美a一区二区| 国内精品美女av在线播放| 亚洲一区二区三区高清 | 午夜视频久久久久久| 亚洲欧美乱综合| 欧美系列电影免费观看| 亚洲日本在线视频观看| 亚洲日本成人在线观看| 久久综合影视| 黄色在线成人| 亚洲第一页中文字幕| 久久一区二区三区超碰国产精品| 国产区在线观看成人精品| 亚洲一级在线| 午夜亚洲激情| 国产精品久久久久久久久动漫| 99re热这里只有精品视频| 99综合精品| 欧美区一区二| 亚洲免费福利视频| 一区二区三区日韩| 欧美日韩精品一区| 一区二区国产精品| 亚洲午夜电影网| 国产精品sss| 亚洲在线观看| 久久精品91久久久久久再现| 国产精品一二三视频| 亚洲欧美日产图| 久久久精品欧美丰满| 国内成人精品2018免费看| 亚洲成色777777在线观看影院| 鲁鲁狠狠狠7777一区二区| 影音先锋一区| 9l国产精品久久久久麻豆| 欧美精品久久99| 一区二区三区免费观看| 亚洲欧美一区二区在线观看| 国产精品免费视频xxxx| 亚洲欧美精品一区| 久久噜噜亚洲综合| 亚洲国产合集| 亚洲婷婷国产精品电影人久久| 欧美体内she精视频在线观看| 中国日韩欧美久久久久久久久| 亚洲欧美日韩中文播放| 国产日韩免费| 亚洲国产精品一区二区www| 久久在线精品| 亚洲欧洲日夜超级视频| 亚洲主播在线| 国产专区综合网| 99国产精品私拍| 国产精品一区二区视频| 久久精品一区| 欧美日韩精品久久久| 亚洲免费视频成人| 可以看av的网站久久看| 亚洲区免费影片| 欧美一区不卡| 在线观看亚洲| 亚洲欧美日韩国产精品| 国产在线拍揄自揄视频不卡99| 亚洲美女在线视频| 国产精品免费在线| 亚洲高清色综合| 欧美视频一区在线| 久久精品五月| 国产精品hd| 亚洲国产精品一区制服丝袜| 欧美日韩午夜视频在线观看| 午夜精品影院| 欧美激情第3页| 校园春色国产精品| 欧美日韩和欧美的一区二区| 欧美一级淫片播放口| 欧美日本国产| 欧美一区午夜精品| 欧美日韩国产精品一区二区亚洲| 午夜亚洲影视| 欧美日韩国产在线观看| 久久激情网站| 国产精品久久久久久久一区探花 | 欧美一区二区三区免费观看| 欧美理论在线| 欧美在线首页| 国产精品成人观看视频免费| 久久精品视频免费观看| 国产精品久久久久久亚洲毛片 | 99成人精品| 美女精品在线观看| 亚洲在线成人| 欧美日本中文字幕| 久久精品成人| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲精品在线免费| 国产亚洲精品自拍| 亚洲免费中文字幕| 亚洲日产国产精品| 久久在精品线影院精品国产| 亚洲女人天堂成人av在线| 欧美日韩另类在线| 亚洲精品四区|