摘 要:設(shè)計了一種高吞吐率低成本的AES協(xié)處理器。在加解密過程中采用共享技術(shù),S盒采用復(fù)合域算法,減少了面積的需求;在輪內(nèi)設(shè)計四級流水結(jié)構(gòu),有效地縮短關(guān)鍵路徑,從而提高了處理器的數(shù)據(jù)吞吐率;同時在密鑰擴展模塊內(nèi)插入寄存器,保證了輪密鑰與輪循環(huán)的同步?;赩irtex II Pro FPGA 芯片(90 nm工藝技術(shù))實現(xiàn)該結(jié)構(gòu),消耗面積僅約2 118 slices;在最高工作頻率189 MHz下,128位加密的數(shù)據(jù)吞吐率達到1.8 Gbps。與同類設(shè)計相比,該處理器吞吐率/資源消耗比值較高。
關(guān)鍵詞:高級加密標(biāo)準(zhǔn); 低成本; 吞吐率; 密鑰擴展
中圖分類號:TN402文獻標(biāo)志碼:A
文章編號:1001-3695(2009)06-2136-02
doi:10.3969/j.issn.1001-3695.2009.06.041
High throughput and low lost AES coprocessor implementation
YI Li-hua, ZOU Xue-cheng, LIU Zheng-lin, DAN Yong-ping
(Dept. of Electronic Science Technology, Huazhong University of Science Technology, Wuhan 430074, China)
Abstract:This paper presented a high throughput and low lost AES coprocessor.Reduced area by employing sharing between the encryption and decryption processes , employing composite field Sbox for the SubByte.Improved data throughput by four-stage pipeline in round inner.Inserted registers in key expansion module, assuring synchronization between round and round-key.With an implementation of the this architecture with Virtex II Pro FPGA(90 nm process technology),this area optimized consumes 2 118 slices. The speed of this implementation is 1.8 Gbps. Compared to previous similar implementations,the design achieve high the ratio of throughput/area.
Key words:AES(advanced encryption standard); low cost; throughput; key expansion
IEEE 802.15.4/ZigBee協(xié)議使用MAC層的安全機制,來保證MAC命令幀、信標(biāo)幀和響應(yīng)幀的安全性。IEEE 802.15.4的MAC層使用高級加密標(biāo)準(zhǔn)(AES)的算法進行加密。AES[1,2]是NIST(National Institute of Standard and Technologies)于2001年11月26日發(fā)布的新的對稱數(shù)據(jù)加密算法,采用Rijndael算法,廣泛應(yīng)用在IPSec、SSL、WLAN、ATM 等領(lǐng)域。AES 算法在設(shè)計上考慮了密碼的基于數(shù)學(xué)特性的攻擊,因此具有良好的抗線性和差分攻擊特性,具有密鑰建立時間極短、靈敏性良好、抗攻擊性強等特點。對AES的性能分析和實現(xiàn)方法已有較多的研究[3~5]。
1 S盒設(shè)計
AES實現(xiàn)的效率如面積、吞吐量和功耗等,主要由列混合變換和S盒的實現(xiàn)決定。S盒單元的實現(xiàn)成為設(shè)
計的重點,它的硬件實現(xiàn)在很大程度上決定著整個芯片的面積大小。本文采用有限域分解方法實現(xiàn)S盒。
盡管相同階數(shù)的有限域是同構(gòu)的,有限域運算的復(fù)雜性很大程度上依賴于該域元素的多少。使用復(fù)合域算法可以減少硬件的復(fù)雜性。稱兩個域{GF(2n),Q(Y)=yn+n-1i=0qiyi},qi∈GF(2)和{GF((2n)m},P(x)=xm+m-1i=0pixi},pi∈GF(2n)為一個復(fù)合域,如果有限域GF(2n)來自域GF(2)構(gòu)造通過式Q(y);有限域GF((2n)m)來自域GF(2n)構(gòu)造通過式P(x)。
復(fù)合域用GF((2n)m)表示,稱復(fù)合域GF((2n)m)與GF(2k)(k=nm)是同構(gòu)的;另外,復(fù)合域能由低階子域迭代地構(gòu)造。例如復(fù)合域GF(28)可以由域GF(2)構(gòu)建,通過下列不可約的多項式[6]
GF(2)GF(22):GF(22)GF((22)2):
GF((22)2)GF(((22)2)2):
P0=x2+x+1;P1=x2+x+;P2=x2+x+λ(1)
其中:={10}2,λ={1100}2。同構(gòu)映射函數(shù)f(x)=δ×x和它的乘逆使有限域GF(28)的元素映射到復(fù)合域。8×8二進制矩陣δ由有限域GF(28)的多項式和它的復(fù)合域決定,可通過窮搜索算法找到。與多項式P(x)=x8+x4+x2+x+1和有限域多項式相對應(yīng)的矩陣δ如下:
本文設(shè)計的S盒結(jié)構(gòu)如圖1所示。在加解密過程中字節(jié)替換和逆字節(jié)替換共用乘逆模塊GF(24)。模塊A0通過矩陣δ執(zhí)行從GF(28)到GF((24)2)同構(gòu)映射,模塊A2矩陣δ-1執(zhí)行從GF((24)2)到GF(28)同構(gòu)映射。GF(28)的逆采用復(fù)合域分解的方法由GF((24)2)實現(xiàn),同樣地,GF(24)上的乘法可以分解GF(22),GF(22)的乘法可以分解到GF(2)。在乘逆模塊中主要利用了一些乘法單元和平方單元。在S盒變換實現(xiàn)過程中,對復(fù)合域優(yōu)化構(gòu)造方案能減少電路的總門數(shù)。
另外,本文還對查找表、PPRM(positive polarity reed-muller)、DSE (decoder-switch-encoder)結(jié)構(gòu)S盒進行了研究,分別用硬件描述語言(HDL)進行描述。經(jīng)ModelSim功能仿真正確后,采用UMC 0.25 μm,1.8 V工藝庫,用SynopsysDesign Compiler工具進行綜合,得到了各種結(jié)構(gòu)S盒的等效門數(shù)和關(guān)鍵路徑延時,結(jié)果如表1所示。 從表中可以看到,有限域分解實現(xiàn)方法取得了最小的面積934門,但電路的延遲較大。
表1 不同結(jié)構(gòu)的S盒面積、延遲的比較
實現(xiàn)方法等效門數(shù)/gate邏輯延遲/ns功耗/mW
直接查表2 5624.440.21
有限域分解93414.930.99
DSE結(jié)構(gòu)2 9014.80.14
PPRM結(jié)構(gòu)2 3206.70.42
2 AES結(jié)構(gòu)
基于有限域分解S盒延遲較大的考慮,本文在該S盒內(nèi)插入了寄存器,使S盒分為三部分,實現(xiàn)流水結(jié)構(gòu)。在整個AES輪內(nèi)實現(xiàn)四級流水結(jié)構(gòu),如圖2所示。每輪需要4個時鐘周期,但基于這樣的機構(gòu),可同時加密或解密4組數(shù)據(jù),首先依次輸入4組數(shù)據(jù);經(jīng)過10輪的運算,4組密文或明文依次輸出。
在AES算法中,密鑰擴展(key expansion)模塊也是極為重要的。進行密鑰擴展設(shè)計時,大部分采用一次性密鑰擴展,把一個分組進行10輪加密所需的輪密鑰一次性全部計算出來,保存在RAM 中,但對動態(tài)密鑰不可取,也會消耗芯片資源。本設(shè)計在密鑰擴展模塊內(nèi)插入了4組寄存器,保持輪密鑰與輪循環(huán)的同步。在分組進行第k輪(k<10)運算時,并行計算第k+l輪所需的輪密鑰,具體結(jié)構(gòu)如圖3所示。在密鑰擴展啟動4×i個時鐘后擴展出了第i輪的輪密鑰roundkey(i)。這樣就降低了對存儲器的需求,提高了系統(tǒng)的速度。
3 性能比較
本設(shè)計采用Verilog編寫了結(jié)構(gòu)代碼,采用Synplify Pro 8.1綜合,Xilinx ISE 6.1i布局布線,目標(biāo)器件為XCV2600E(0.13 μm 和90 nm工藝技術(shù))時,資源消耗為2 118 slice。在189 MHz工作頻率下,128位加密的數(shù)據(jù)吞吐率達到1.8 Gbps。類似AES結(jié)構(gòu)的性能比較如表2所示。文獻[7~9]工作頻率分別為135.7、31.8、93.9 MHz,吞吐率分別為1.57、1.9、1.2 Gbps,資源消耗分別為2 052、10 995、2 000 slice。與同類設(shè)計相比,該處理器吞吐率/資源消耗比值較高。
4 結(jié)束語
本文設(shè)計了一種高吞吐率低成本的AES協(xié)處理器,充分考慮了AES算法硬件實現(xiàn)的特殊性,對算法的運算結(jié)構(gòu)進行了優(yōu)化和改進。S盒采用有限域算法,在輪內(nèi)實現(xiàn)四級流水結(jié)構(gòu)。FPGA實現(xiàn)結(jié)果表明,本文設(shè)計的AES協(xié)處理器在速度與成本方面都具有較好的綜合指標(biāo),非常易于集成到加密應(yīng)用領(lǐng)域的系統(tǒng)芯片中。
參考文獻:
[1]DAEMEN J,RIJMEN V.高級加密標(biāo)準(zhǔn)(AES)算法—Rijndael的設(shè)計[M].谷大武,徐勝波,譯.北京:清華大學(xué)出版社,2003.
[2]STALLINGS W.Cryptography and network security[M].New Jersey:Prentice Hall,2003.
[3]MANGARD S,AIGNER M,DOMINIKUS S.A highly regular and scalable AES hardware architecture[J].
IEEE Trans on Computers,2003,52(4):483-491.
[4]McLOONE M,McCANNY J V.High performance single-chip FPGA Rijndael algorithm implementation[C]//Proc of the 3rd International Workshop on Cryptographic Hardware and Embeded Systems.Berlin:Springer,2001:65-76.
[5]ELBIRT A J,YIP W,CHETWYND B,et al.An FPGA-based perfor-mance evaluation of the AES block cipher candidate algorithm finalists[J].IEEE Trans on SI Systems,2001,4(9):545-557.
[6]SATOH A,MORIOKA S,TAKANO K,et al.A compact Rijndael hardware architecture with S-Box optimization[C]//Proc of ASIACRYPT 2001.Berlin:Springer,2000:239-254.
[7]LI Hua,LI Jian-zhou.A high performance sub-pinpelined architecture for AES[C]//Proc of International Conference on Computer Design.Washington DC:IEEE Computer Society,2005:491-496.
[8]ELBIRT A J,YIP W,CHETWYND B,et al.An FPGA implementation and performance evaluation of the AES block cipher candidate algorithm finalist[C]//Proc of the 3rd Advanced Encryption Standard (AES) Candidate Conference.New York: National Institute of Stan-dards and Technology,2000:28-39.
[9]McLOONE M,McCANNY J V.Rijndael FPGA implementation utilizing look-up tables[C]//Proc of IEEE Workshop on Signal Proces-sing Systems.Piscataway,NJ:IEEE Press,2001:349-360.