摘 要:GIFT算法作為PRESENT算法的改進(jìn)版本,結(jié)構(gòu)上更加簡潔高效,在FPGA上運(yùn)行時(shí),性能仍然存在提升空間。對(duì)此提出了一種新的實(shí)現(xiàn)方案,通過將算法的40輪迭代計(jì)算優(yōu)化為20輪迭,并將加解密與輪密鑰生成操作并行執(zhí)行。在xc6slx16 FPGA平臺(tái)綜合后,頻率可達(dá)194 MHz,吞吐量可達(dá)1.2 Gbps,消耗時(shí)鐘周期21個(gè),結(jié)果表明,所提方法相比現(xiàn)有工作具有更好的性能表現(xiàn)和更少的時(shí)鐘周期消耗,實(shí)現(xiàn)在FPGA上高速運(yùn)行是切實(shí)可行的。
關(guān)鍵詞:GIFT;雙級(jí)聯(lián);FPGA;輕量級(jí)分組密碼
中圖分類號(hào):TP309.7 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2023)06-036-1825-04
doi:10.19734/j.issn.1001-3695.2022.10.0627
Implementation of GIFT block cipher algorithm based on FPGA
Ma Xujiana,Liu Shua,Gao Mingzea,Dong Xiuzeb
(a.Dept.of Cyberspace Security,b.Dept.of Electronic amp; Communication Engineering,Beijing Electronics Science amp; Technology Institute,Beijing 100070,China)
Abstract:GIFT algorithm as an improved version of PRESENT algorithm,the structure is more concise and efficient,when it running on FPGA,the performance still has room for improvement.This paper proposed a new implementation scheme,by implemented the algorithm from a 40-round iterative computation to a 20-round iteration,and executed the encryption/decryption in parallel with the round key generation operations.After the proposed scheme used in xc6slx16 FPGA platform,frequency up to 194 MHz,throughput up to 1.2 Gbps,and it consumes 21 clock cycles.The results show that the proposed method has better performance and less clock cycle consumption compared to the existing work.It is practical to perform at high speed on FPGA.
Key words:GIFT;dual-cascade;field programmable gate array(FPGA);lightweight block ciphers
0 引言
近年來,隨著物聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,資源受限的設(shè)備部署日益廣泛,傳統(tǒng)密碼標(biāo)準(zhǔn)在資源受限的設(shè)備上運(yùn)行時(shí)大多都會(huì)面臨很多困難,甚至不能順利運(yùn)行,即使勉強(qiáng)運(yùn)行,運(yùn)行效率也會(huì)差強(qiáng)人意[1]。如何使算法占用盡可能少的面積,同時(shí)又能保證算法的加密性能成為了一個(gè)研究熱點(diǎn)[2]。因此,輕量級(jí)分組密碼的概念應(yīng)運(yùn)而生。事實(shí)上,已經(jīng)由很多分組密碼被用于輕量級(jí)硬件實(shí)現(xiàn),例如mCrypton[3]、HIGHT[3]、DESL/DESXL[3]、PRESENT[4]和PRINTcipher[5]。這些算法的結(jié)構(gòu)一般可以分為SPN結(jié)構(gòu)和Feistel結(jié)構(gòu)兩類。
SPN結(jié)構(gòu)是目前美國加密標(biāo)準(zhǔn)AES基本結(jié)構(gòu),輪函數(shù)主要由非線性層S盒(substitution)和線性層P置換(permutation)交替執(zhí)行,并在每一輪中介入輪密鑰。而Feistel結(jié)構(gòu)是以前美國加密標(biāo)準(zhǔn)DES為標(biāo)準(zhǔn)的基本結(jié)構(gòu),目前也有很多基于Feistel結(jié)構(gòu)的輕量級(jí)分組密碼算法發(fā)布,但是與基于SPN結(jié)構(gòu)的設(shè)計(jì)相比,大多都存在安全問題。HIGHT就是專門為資源受限的設(shè)備設(shè)計(jì)的基于Feistel結(jié)構(gòu)的算法,雖然其十分的“輕”,但其理論上已經(jīng)被一種相關(guān)密鑰差分攻擊破解[6]。
GIFT算法[7]是Banik等人在PRESENT算法發(fā)表十周年之際,在PRESENT算法的基礎(chǔ)上做了一定的改進(jìn),采用低消耗并增加安全性的方法,在低面積實(shí)現(xiàn)的基礎(chǔ)上,盡可能地去增加其安全性。最終的結(jié)果是在安全和性能方面都要優(yōu)于PRESENT算法。非常適合在資源受限的設(shè)備上運(yùn)行。其輪函數(shù)就如同打包“禮物”,首先把禮物放進(jìn)禮盒(S盒),然后將絲帶綁在盒子上(P置換),最后將絲帶打結(jié)(輪密鑰加)。該算法共有64 bit和128 bit兩個(gè)版本,是當(dāng)前世界上運(yùn)行功耗最低、速度最快的輕量級(jí)分組密碼算法之一[8]。
分組密碼在硬件平臺(tái)上的實(shí)現(xiàn)已經(jīng)被研究了很多年,對(duì)于DES、AES和PRESENT,Ernita等人[9]通過將DES的16輪流水線實(shí)現(xiàn)優(yōu)化為8輪流水線實(shí)現(xiàn),得到的結(jié)果說明8輪流水線實(shí)現(xiàn)相比16輪流水線實(shí)現(xiàn),資源消耗可由16輪消耗21%降低為消耗9%,實(shí)現(xiàn)了資源的節(jié)約。文獻(xiàn)[10]對(duì)AES的S盒進(jìn)行了結(jié)構(gòu)上的優(yōu)化后,吞吐率可達(dá)14 383 Mbps,文獻(xiàn)[4]設(shè)計(jì)的PRESENT算法硬件結(jié)構(gòu),速度能達(dá)到123.86 Mbps,對(duì)于GIFT算法,文獻(xiàn)[11]設(shè)計(jì)的循環(huán)型硬件架構(gòu)在xc6slx16-3csg324 FPGA平臺(tái)上實(shí)現(xiàn),共消耗208個(gè)時(shí)鐘周期(LAT),頻率為217.63 MHz,吞吐量可達(dá)133.92 Mbps,Jati等人[12]基于ASIC平臺(tái)設(shè)計(jì)的GIFT算法的二階門限實(shí)現(xiàn)方案,在TSMC 65 nm Low Power Standard Cell Library(TCBN65LP)工藝庫下,消耗13 349個(gè)GE,80個(gè)時(shí)鐘周期,在373 MHz的頻率,吞吐量可達(dá)562 Mbps。隨后,蔣宏然等人[13]在文獻(xiàn)[12]的基礎(chǔ)上,利用GIFT算法的數(shù)學(xué)結(jié)構(gòu),構(gòu)造了新的二階門限實(shí)現(xiàn)方案,在NanGate 45 nm open library工藝庫下,分別實(shí)現(xiàn)了串行方案和并行方案,并行方案面積消耗為12 043個(gè)GE,串行方案面積消耗為6 373個(gè)GE,消耗的面積都要比文獻(xiàn)[12]中的要少,且串行方案的面積消耗要遠(yuǎn)遠(yuǎn)小于文獻(xiàn)[12]。通過分析上述實(shí)現(xiàn)方案,可以發(fā)現(xiàn)前人提高密碼算法性能的主要方案是多并行處理和流水線實(shí)現(xiàn),這種提升性能的方案會(huì)帶來顯著的資源消耗增加,并且在處理單組數(shù)據(jù)時(shí),所需的時(shí)鐘周期數(shù)也不能減少,會(huì)帶來很大的資源浪費(fèi)。GIFT算法作為PRESNENT算法的改進(jìn)版本,具有安全性強(qiáng),效率高,易于在資源受限的設(shè)備上運(yùn)行的特點(diǎn),在輕量級(jí)密碼的研究中受到了廣大關(guān)注,但是在資源受限設(shè)備的部署上,GIFT算法依然還有很大的提升空間。本文在面向速度優(yōu)化方面,設(shè)計(jì)了一種新的基于雙級(jí)聯(lián)架構(gòu)(DUAL-CASCADE)[14]的硬件實(shí)現(xiàn)方案,該方案首先將輪密鑰更新與數(shù)據(jù)加密模塊并行執(zhí)行,將新鮮產(chǎn)生的輪密鑰直接參與到數(shù)據(jù)加密過程中,無須等待。對(duì)于加密過程的40輪迭代,本文采用雙級(jí)聯(lián)結(jié)構(gòu),在處理單組數(shù)據(jù)時(shí),可以將40輪迭代壓縮為20輪迭代,時(shí)鐘消耗減半,運(yùn)算性能大大提高。
1 GIFT算法簡介
GIFT算法是一種典型的基于SPN結(jié)構(gòu)的輕量級(jí)分組密碼算法,根據(jù)明文長度的不同,共有兩種形式,分別記為GIFT-64-128和GIFT-128-128,其詳細(xì)信息如表1所示。本文主要對(duì)GIFT-128-128進(jìn)行FPGA的高速實(shí)現(xiàn)。
1.1 S盒
1.2 P置換
1.3 輪密鑰加
1.4 輪密鑰更新和輪常量更新
2 GIFT算法的硬件實(shí)現(xiàn)
在以往分組密碼算法的實(shí)現(xiàn)中,可以發(fā)現(xiàn)兩個(gè)現(xiàn)象:a)主流的密碼優(yōu)化實(shí)施方案大多都是基于并行和流水線方案實(shí)現(xiàn)的;b)對(duì)于模塊復(fù)用,若將密鑰更新與輪密鑰加密操作分離,在數(shù)據(jù)加密前,需等待40輪密鑰更新迭代,會(huì)增加時(shí)鐘周期消耗。考慮上述兩個(gè)問題,在GIFT算法的FPGA實(shí)現(xiàn)上本文采取了以下兩個(gè)措施,首先,由于GIFT算法的輪密鑰更新操作只涉及到移位變換,并行時(shí)產(chǎn)生的延時(shí)很低。所以本文考慮將算法的輪密鑰生成與數(shù)據(jù)加密操作并行執(zhí)行。其次,對(duì)于數(shù)據(jù)加密操作,本文引入了一種雙級(jí)聯(lián)結(jié)構(gòu)。使GIFT算法在一個(gè)時(shí)鐘周期內(nèi)能夠完成兩輪函數(shù)的迭代,算法性能得到了大幅提升。具體詳見2.2節(jié)。
2.1 輪密鑰更新和輪常量更新
對(duì)于輪常量,算法設(shè)計(jì)者使用的是6 bit的LFSR,而不是常見的十進(jìn)制計(jì)數(shù)器,這樣每次更新時(shí)就只需要一個(gè)XNOR門,最大限度地降低所需的硬件面積。通過每一次的異或來破壞6 bit常量的對(duì)稱性,另外,在異或時(shí)還引入了常量1作為MSB來提高輪常量更新的混亂性。在本文方案中,為提高算法性能,便預(yù)先將輪常量直接存儲(chǔ)在FPGA的寄存器中,以供數(shù)據(jù)加密模塊運(yùn)行時(shí)直接調(diào)用。輪常量的LFSR如圖2所示。
2.2 雙級(jí)聯(lián)結(jié)構(gòu)
在GIFT算法中,最耗時(shí)的步驟便是輪函數(shù)的40輪迭代。在輪函數(shù)主流的設(shè)計(jì)方案中,輪函數(shù)功能在FPGA上主要是由時(shí)序邏輯電路或組合邏輯電路組成。前者將輪函數(shù)以一個(gè)狀態(tài)一個(gè)操作的形式分解為多個(gè)循環(huán),所需的資源會(huì)很少,但是會(huì)造成大量的時(shí)鐘消耗。后者可以在一個(gè)時(shí)鐘周期內(nèi)完成一整輪的函數(shù)迭代。節(jié)省大量時(shí)鐘周期,但是消耗的資源會(huì)有所增加。站在減少延時(shí)和時(shí)鐘消耗的角度上,本文選擇了由時(shí)序電路有限狀態(tài)機(jī)來控制算法的迭代次數(shù),由組合邏輯電路來實(shí)現(xiàn)算法的函數(shù)迭代,并完成了單級(jí)聯(lián)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)。
單級(jí)聯(lián)架構(gòu)有限狀態(tài)機(jī)如圖3所示,IDLE為空閑狀態(tài),當(dāng)算法運(yùn)行信號(hào)InRdy來臨時(shí),算法開始運(yùn)行,ST0為加密控制狀態(tài),控制函數(shù)的迭代次數(shù),當(dāng)count等于39時(shí),加密完成,跳轉(zhuǎn)到ST1狀態(tài),完成數(shù)據(jù)的輸出,待算法運(yùn)行結(jié)束后,再次跳轉(zhuǎn)回空閑狀態(tài)。
GIFT算法的單級(jí)聯(lián)架構(gòu)如圖4所示,在該結(jié)構(gòu)中,加密模塊和密鑰更新模塊都由組合邏輯電路實(shí)現(xiàn),當(dāng)輸入信號(hào)穩(wěn)定時(shí),可以同時(shí)產(chǎn)生有效的輸出信號(hào)。該架構(gòu)的輪函數(shù)如圖5所示。單級(jí)聯(lián)架構(gòu)在一個(gè)時(shí)鐘周期內(nèi)完成一輪循環(huán)迭代,所以第一輪迭代需要一個(gè)時(shí)鐘周期完成,第二輪迭代需要一個(gè)時(shí)鐘周期完成,第三輪需要一個(gè)時(shí)鐘周期完成。為便于理解,本文以第一輪迭代舉例說明實(shí)現(xiàn)過程。當(dāng)時(shí)鐘上升沿來臨時(shí),明文和密鑰輸入第一輪函數(shù),由組合電路的特點(diǎn)可知,在下一個(gè)時(shí)鐘上升沿來臨時(shí)就可以得到要輸入下一輪的中間數(shù)據(jù),最終經(jīng)過40個(gè)時(shí)鐘周期的迭代,得到密文。
在單級(jí)聯(lián)架構(gòu)的實(shí)現(xiàn)中,雖然組合邏輯電路的輸入輸出信號(hào)雖然在理論上是同時(shí)改變的,但是在實(shí)際的電路實(shí)現(xiàn)中,不僅程序和器件會(huì)帶來一定的延時(shí),電路從接收到有效的輸入信號(hào)到產(chǎn)生穩(wěn)定的輸出信號(hào)也會(huì)產(chǎn)生延時(shí),但是由于GIFT算法本身的輕量級(jí)設(shè)計(jì)所帶來的輪函數(shù)運(yùn)算的快速以及組合電路本身的低延時(shí)。FPGA上的一個(gè)時(shí)鐘周期要比這些延時(shí)長的多。此外,對(duì)于一些功能模塊數(shù)量很多的復(fù)雜系統(tǒng)設(shè)計(jì),其系統(tǒng)時(shí)鐘執(zhí)行操作的頻率一般都比較低,而一個(gè)時(shí)鐘周期所需的時(shí)間又比較長,而在得到下一輪的中間數(shù)據(jù)和下一個(gè)時(shí)鐘上升沿來臨之間,可能會(huì)存在會(huì)有很大的時(shí)鐘空閑。綜上所述,單級(jí)聯(lián)架構(gòu)處理一個(gè)明文分組所需要的40個(gè)時(shí)鐘周期中,每一個(gè)時(shí)鐘周期可能都會(huì)存在一定的時(shí)鐘空閑,那么40個(gè)周期后就會(huì)產(chǎn)生很大的時(shí)鐘浪費(fèi)。在這種情況下,如果一個(gè)時(shí)鐘周期只完成一輪操作,F(xiàn)PGA內(nèi)部可能就會(huì)存在一定的時(shí)鐘冗余,不利于算法的高速運(yùn)行。于是本文便提出設(shè)想,在基于節(jié)約時(shí)鐘周期的思想上,在單級(jí)聯(lián)架構(gòu)每周期實(shí)現(xiàn)一輪迭代的基礎(chǔ)上,能否在對(duì)時(shí)鐘周期消耗再度進(jìn)行壓縮,減少FPGA內(nèi)部的時(shí)鐘冗余,同時(shí)帶來少的資源增加以及較少的頻率降低。以找到某個(gè)算法頻率和資源的平衡,帶來算法在性能上的提升。
為此,為了提高GIFT算法的運(yùn)算性能,本文引入了雙級(jí)聯(lián)架構(gòu),該結(jié)構(gòu)可以在一個(gè)周期內(nèi)完成兩次輪函數(shù)的迭代。進(jìn)而消耗的時(shí)鐘周期減半,同時(shí)也不會(huì)因此而帶來算法頻率的明顯降低。該架構(gòu)有限狀態(tài)機(jī)如圖6所示。與單級(jí)聯(lián)相比,在ST0狀態(tài)由當(dāng)count等于39時(shí)完成加密跳轉(zhuǎn)到ST1變?yōu)楫?dāng)count等于19時(shí)完成加密,跳轉(zhuǎn)到ST1狀態(tài),狀態(tài)機(jī)的其他部分則與單級(jí)聯(lián)架構(gòu)相同。圖7展示了雙級(jí)聯(lián)架構(gòu)。在該架構(gòu)中,明密文依然為128 bit,輪函數(shù)由單級(jí)聯(lián)架構(gòu)中一個(gè)時(shí)鐘周期內(nèi)只完成一次輪函數(shù)迭代變?yōu)橐粋€(gè)時(shí)鐘周期內(nèi)完成兩次輪函數(shù)的迭代,為在一個(gè)時(shí)鐘周期內(nèi)完成兩次輪函數(shù)的迭代,雙級(jí)聯(lián)架構(gòu)的輪函數(shù)依然由組合邏輯電路實(shí)現(xiàn)。具體實(shí)現(xiàn)方案如圖8所示。在第一個(gè)周期內(nèi)完成單級(jí)聯(lián)結(jié)構(gòu)第一和二輪函數(shù)迭代,在第二個(gè)周期完成單級(jí)聯(lián)結(jié)構(gòu)的第三和四輪迭代,在第三個(gè)周期內(nèi)完成單級(jí)聯(lián)結(jié)構(gòu)的第五和六輪函數(shù)迭代,依此類推,能夠在20個(gè)時(shí)鐘周期內(nèi)完成算法的40輪迭代。為便于理解,本文以第一輪迭代舉例說明實(shí)現(xiàn)過程。當(dāng)時(shí)鐘上升沿來臨時(shí),明文和密鑰輸入round0,完成運(yùn)算后,生成的中間數(shù)據(jù),無須操作,直接輸入round2,待輸入信號(hào)穩(wěn)定后,生成的第二輪中間數(shù)據(jù)輸入到寄存器中,至此,完成雙級(jí)聯(lián)結(jié)構(gòu)第一個(gè)時(shí)鐘周期內(nèi)的所有操作。經(jīng)過20個(gè)時(shí)鐘周期的循環(huán)后,完成算法的40輪迭代。生成密文,經(jīng)實(shí)驗(yàn)驗(yàn)證,與單級(jí)聯(lián)架構(gòu)需要消耗40個(gè)時(shí)鐘周期相比,雙級(jí)聯(lián)結(jié)構(gòu)時(shí)鐘周期消耗數(shù)減少一倍,雖然最后頻率有所降低,但是運(yùn)算性能可以得到大幅提升。證明了方案設(shè)計(jì)時(shí)的猜想,可以通過提高系統(tǒng)資源利用率,壓縮時(shí)鐘周期的消耗來達(dá)到優(yōu)化算法的目的。具體性能分析比較見第3章。
3 實(shí)驗(yàn)與性能分析對(duì)比
本章對(duì)GIFT算法單級(jí)聯(lián)架構(gòu)及雙級(jí)聯(lián)結(jié)構(gòu)在xc6slx16-wuxu3csg324 FPGA上進(jìn)行了綜合仿真測試,并總結(jié)和分析了兩種結(jié)構(gòu)的硬件實(shí)現(xiàn)結(jié)果。硬件實(shí)現(xiàn)結(jié)果包括以下性能指標(biāo):面積、頻率、時(shí)鐘消耗以及吞吐量。
3.1 GIFT仿真測試
為了驗(yàn)證本文方案GIFT算法的優(yōu)化思想及硬件架構(gòu)的正確性,本文分別選取明文128′h00000000000000000000000 000000000和密鑰128′h00000000000000000000000000000000作為本次實(shí)驗(yàn)的測試向量,如圖9和10所示,當(dāng)輸入明文和密鑰均為0時(shí),單級(jí)聯(lián)架構(gòu)和雙級(jí)聯(lián)架構(gòu)的密文輸出均為128′h cd 0b d7 38 38 8a d3 f6 68 b1 5a 36 ce b6 ff 92。與文獻(xiàn)[10]的加密結(jié)果相同,因此本文提出的優(yōu)化方案及硬件體系結(jié)構(gòu)是正確的。
3.2 性能分析對(duì)比
針對(duì)GIFT算法設(shè)計(jì)的面向性能優(yōu)化的雙級(jí)聯(lián)架構(gòu),以很小的資源消耗代價(jià)實(shí)現(xiàn)了時(shí)鐘周期消耗減半,吞吐量得到大幅提升。GIFT算法的吞吐量可以由式(6)計(jì)算。
throughput=B×f/N (6)
其中:throughput代表吞吐量;B代表GIFT中一個(gè)數(shù)據(jù)分組的大小;f代表系統(tǒng)運(yùn)行頻率;N代表時(shí)鐘周期的消耗個(gè)數(shù)。由此可知,當(dāng)B和f不變時(shí),吞吐量和N成反比,所以當(dāng)N由40降低為20時(shí),GIFT的吞吐量理論上應(yīng)為原來的2倍。但在本文方案中,由于每個(gè)時(shí)鐘周期處理的工作內(nèi)容增加會(huì)帶來一定的延時(shí),所以系統(tǒng)的最小時(shí)鐘周期也會(huì)隨之延長,這就會(huì)導(dǎo)致系統(tǒng)的最大運(yùn)行頻率會(huì)有一定的降低。當(dāng)N由40降為20時(shí),若系統(tǒng)時(shí)鐘周期的時(shí)間延長一倍,則意味著本文所提出的雙級(jí)聯(lián)架構(gòu)對(duì)于GIFT算法的性能優(yōu)化是沒有意義的。但經(jīng)過綜合后的結(jié)果顯示,單級(jí)聯(lián)架構(gòu)的最小時(shí)鐘周期為2.916 ns,雙級(jí)聯(lián)架構(gòu)的最小時(shí)鐘周期為3.178 ns,只延長了0.262 ns,在這種影響下,雙級(jí)聯(lián)架構(gòu)頻率的降低是非常有限的,根據(jù)綜合結(jié)果顯示,單級(jí)聯(lián)架構(gòu)的頻率為217.63 MHz,而雙級(jí)聯(lián)架構(gòu)的頻率也達(dá)到了194.182 MHz(見表3),并未有明顯降低。可見,當(dāng)N由40降為20時(shí),N減半,B不變,f會(huì)有微小的降低,根據(jù)式(6),性能會(huì)帶來大幅提升。
本文為針對(duì)GIFT 算法設(shè)計(jì)的單級(jí)聯(lián)架構(gòu)(本文1)和雙級(jí)聯(lián)架構(gòu)(本文2)在ISE Design Suite 14.2上使用與文獻(xiàn)[10]相同的xc6slx16-3FPGA進(jìn)行綜合后,其資源消耗與性能表現(xiàn)如表3所示。
如表3所示,本文1(單級(jí)聯(lián)結(jié)構(gòu))與本文2(雙級(jí)聯(lián)結(jié)構(gòu))方案的性能均優(yōu)于文獻(xiàn)[10],尤其是本文2方案,在本文1方案的基礎(chǔ)上,引入全新的雙級(jí)聯(lián)結(jié)構(gòu),該架構(gòu)在一個(gè)時(shí)鐘周期內(nèi)可以完成兩輪迭代操作,并且只增加有限的資源消耗,在這種情況下,時(shí)鐘周期消耗數(shù)減少,雖然每個(gè)時(shí)鐘周期內(nèi)需要處理的任務(wù)增加,時(shí)鐘周期隨之延長,進(jìn)而導(dǎo)致頻率的下降,但是與性能得到的大幅提升相比,降低的頻率是可以忽略的,時(shí)鐘周期消耗由單級(jí)聯(lián)架構(gòu)的40個(gè)降為20個(gè),減少了一倍,約是文獻(xiàn)[10]的十分之一,同時(shí)性能在194 MHz的頻率下,吞吐率可達(dá)1.18 GBps,大約為單級(jí)聯(lián)結(jié)構(gòu)的兩倍,是文獻(xiàn)[10]的10倍。即使是與在ASIC上實(shí)現(xiàn)的文獻(xiàn)[8,9]相比,性能也具有很大的優(yōu)勢。
4 結(jié)束語
針對(duì)GIFT算法的不同應(yīng)用場景,本文提出了一種基于FPGA平臺(tái)的高性能實(shí)現(xiàn)方案,在原本的單級(jí)聯(lián)方案中,輪密鑰擴(kuò)展操作與數(shù)據(jù)加密過程并行執(zhí)行,不需要預(yù)先寄存輪密鑰,減少面積消耗。在此基礎(chǔ)上,對(duì)GIFT算法的加密模塊引入全新的雙級(jí)聯(lián)結(jié)構(gòu),可以在一個(gè)時(shí)鐘周期內(nèi)完成算法的兩輪迭代運(yùn)算,這樣操作雖然會(huì)帶來頻率的降低和資源的增加,但也減少了FPGA內(nèi)部的時(shí)鐘冗余,同時(shí)時(shí)鐘周期數(shù)也減少了一倍,由原來需要消耗40個(gè)時(shí)鐘周期,變?yōu)橄?0個(gè)時(shí)鐘周期。算法的運(yùn)算性能得到了大幅提升。與本文單級(jí)聯(lián)架構(gòu)和其他文獻(xiàn)的工作相比,本文方案大大提高了算法處理單組數(shù)據(jù)時(shí)的吞吐量,實(shí)現(xiàn)了算法在FPGA上的高速運(yùn)行。由此可見,針對(duì)GIFT算法的硬件優(yōu)化實(shí)現(xiàn),本文提出的雙級(jí)聯(lián)結(jié)構(gòu)是切實(shí)有效并可行的。由于時(shí)間和工作量的限制,本文只對(duì)雙級(jí)聯(lián)架構(gòu)即一個(gè)周期完成兩輪函數(shù)迭代的方案進(jìn)行了研究與分析,并未對(duì)周期內(nèi)完成多次函數(shù)迭代與頻率降低及性能提升的關(guān)系進(jìn)行進(jìn)一步的探究,尚未確定GIFT算法在FPGA運(yùn)行時(shí)是否存在一個(gè)周期內(nèi)更合適的迭代次數(shù),以實(shí)現(xiàn)更高的資源利用率和更少的時(shí)鐘消耗。為此,下一步研究方向?qū)⑥D(zhuǎn)向找到更為合適的級(jí)聯(lián)結(jié)構(gòu)即探究周期內(nèi)最合適的迭代次數(shù),明確雙級(jí)聯(lián)架構(gòu)是否即為GIFT合適的方案或者是否存在更為合適的周期內(nèi)迭代次數(shù),以實(shí)現(xiàn)GIFT算法性能的進(jìn)一步提升。
參考文獻(xiàn):
[1]Guan Zhenyu,Li Yunhao,Shang Tao,et al.Implementation of SM4 on FPGA:trade-off analysis between area and speed[C]//Proc of IEEE International Conference on Intelligence and Safety for Robotics.Piscataway,NJ:IEEE Press,2018:192-197.
[2]何詩洋,李暉,李鳳華.SM4算法的FPGA優(yōu)化實(shí)現(xiàn)方法[J].西安電子科技大學(xué)學(xué)報(bào),2021,48(3):155-162.(He Shiyang,Li Hui,Li Fenghua.Optimization and implementation of the SM4 on FPGA[J].Journal of Xidian University,2021,48(3):155-162.)
[3]Li Ning,Ali Y,Hu Ke,et al.A hybrid MCDM approach of selecting lightweight cryptographic cipher based on ISO and NIST lightweight cryptography security requirements for Internet of Health Things[J].IEEE Access,2020,8(1):220165-220187.
[4]Lara-Nino C A,Diaz-Perez A,Morales-Sandoval M.Lightweight hardware architectures for the present cipher in FPGA[J].IEEE Trans on Circuits and Systems,2017,64(9):2544-2555.
[5]Knudsen L,Leander G,Poschmann A,et al.PRINTcipher:a block cipher for IC-printing[C]//Proc of Cryptographic Hardware and Embedded Systems.Berlin:Springer,2010:16-32.
[6]范偉杰,吳文玲,張蕾.HIGHT算法的差分故障攻擊[J].中國科學(xué)院研究生院學(xué)報(bào),2012,29(2):271-276.(Fan Weijie,Wu Wenling,Zhang Lei.Differential fault analysis on HIGHT[J].Journal of the Graduate School of the Academy of Sciences,2012,29(2):271-276.)
[7]Banik S,Pandey S K,Peyrin T,et al.GIFT:a small present[M]//Fischer W,Homma N.Cryptographic Hardware and Embedded System.Cham:Springer International Publishing,2017:321-345.
[8]趙靜遠(yuǎn),徐松艷,張子劍,等.輕量級(jí)分組密碼算法 GIFT 的差分分析[J].密碼學(xué)報(bào),2018,5(4):335-343.(Zhao Jingyuan,Xu Song-yan,Zhang Zijian et al.Differential analysis of lightweight block cipher GIFT[J].Journal of Cryptologic Research,2018,5(4):335-343.)
[9]Ernita K V,Prasetyo W E,Pertiwi A,et al.Finding an efficient FPGA implementation of the DES algorithm to support the processor chip on smartcard[C]//Proc of the 2nd East Indonesia Conference on Computer and Information Technology.2018:208-211.
[10]Murugan C A,Karthigaikumar P,Priya S S.FPGA implementation of hardware architecture with AES encryptor using sub-pipelined S-box techniques for compact applications[J].Automatika,2020,61(4),682-693.
[11]Lara-Nino C A,Diaz-Perez A,Morales-Sandoval M.FPGA-based assessment of Midori and GIFT lightweight block ciphers[C]//Proc of Information and Communications Security.Cham:Springer,2018:745-755.
[12]Jati A,Gupta N,Chattopadhyay A,et al.Threshold implementations of GIFT:a trade-off analysis[J].IEEE Trans on Information Forensics and Security,2020,15:2110-2120.
[13]蔣宏然,韋永壯,史佳利,等.GIFT密碼算法的二階門限實(shí)現(xiàn)及其安全性評(píng)估[J].計(jì)算機(jī)應(yīng)用研究,2020,37(8):2455-2459.(Jiang Hongran,Wei Yongzhuang,Shi Jiali,et al.Second-order threshold implementation of GIFT cryptography algorithm and its security evaluation[J].Application Research of Computers,2020,37(8):2455-2459.)
[14]Zhao Jun,Guo Zhichuan,Zeng Xuewen.High throughput implementation of SMS4 on FPGA[J].IEEE Access,2019,7:88836-88844.