黃 凱,金孝飛,修思文,唐從學,嚴曉浪
(1.浙江大學超大規模集成電路研究所,杭州310027;2.中國計量學院光學與電子科技學院,杭州310018;3.杭州朔天科技有限公司,杭州310012)
21世紀是信息的時代,信息成為一種重要的戰略資源,信息安全對國家安全、社會穩定都有極為重要的作用,因此,必須采取有效的措施確保信息安全。近年來,信息安全領域的理論和技術發展十分迅速,已經取得了許多重要成果[1]。對稱密鑰算法指加密和解密使用相同密鑰,或者加密和解密密鑰可以互相推算的算法,有時又稱為傳統密碼算法[2]。對稱密鑰算法具有算法公開、計算量小、加密速度快、加密效率高等特點,因此,SM4(原SMS4無線局域網算法標準)、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、RC6[3-6](Ronald L.Rivest 6)等對稱密鑰算法已經被廣泛應用于各類加密通信系統中,用以保證信息安全。由于AES、RC6的密鑰長度、數據長度是可選的,本文選定AES-128、RC6-32/20/128作為研究對象。
目前,對于對稱密鑰的重點研究方向為新型密碼的設計、密碼體制的軟件優化、硬件實現(包括FPGA實現和專用密碼芯片)等[1]。雖然軟件實現比較靈活,但是運算速率較慢,無法滿足高性能的需求;在硬件實現方面,文獻[7-8]對AES單個算法進行了FPGA上架構設計實現,并采用單元陣列重構的方式減小電路面積開銷;文獻[9]對SM4、AES兩種對稱密鑰算法進行可重構的架構設計,其設計思路是將AES的S盒(S盒的功能就是一種“代換”操作,一個n輸入、m輸出的S盒所實現的是從二元域F2上的n維向量空間到二元域F2上的m維向量空間的映射[2])與逆S盒用邏輯方式[10]構造在同一模塊中,然后簡單地將SM4算法加入到架構設計中,但其并沒有很好地復用 AES中的運算單元;文獻[11-12]對部分對稱密鑰算法SM4,AES,DES和非對稱密鑰算法RSA,ECC進行可重構架構設計,其主要設計思路是:SM4,AES的S盒采用查找表[10]的方式用RAM實現,同時RSA,ECC需要的大量中間運算結果也存放在RAM中,可以有效減小電路面積。但其缺點是:對于作為S盒的RAM,每次使用都需要被配置,并且使用的RAM越小,為滿足算法描述的多個字節變換需要的訪問次數越多,嚴重影響了數據吞吐率。
近年來云計算在信息行業中的使用越來越廣泛,其中的信息安全保障往往需要多種對稱密鑰算法的結合使用[13],已有文獻中的設計架構中對稱密鑰算法只有1~2種,無法滿足這種需求。為此,本文設計一種高效可配的對稱密鑰算法硬件架構,應用基礎運算單元可重構的方法,集成多種對稱密鑰算法,提供一種簡單的接口,便于密碼用戶選取某個(些)密碼算法便利、高效地開發加密應用。
筆者分析了多種對稱密鑰算法的加解密過程所需要的運算邏輯,最終選取 SM4,AES,DES,RC6作為設計對象,因為這些算法不僅應用廣泛,而且具有各自不同的設計特點:對于SM4和AES,都是基于整數域上的運算提出的,被稱為同構類型的算法;DES,RC6則與其完全不同,被稱為異構類型的算法。這樣選取的多個算法能夠很好地說明本文架構設計的普遍適用性和良好的可擴展性。各算法使用的運算邏輯如表1所示。

表1 各算法使用的運算邏輯
進一步,將這些粗粒度的運算邏輯細分成基礎運算邏輯。對于SM4算法,其定義的每一輪運算需要經過 S盒的代換操作[3],而這個 S盒是定義在整數域GF(28)上的乘法和求逆運算:S(x)=A1(A1x+C1)-1+C1,其中,A1和 C1是矩陣變量:

文獻[14]提出了一種基于復合域求逆方法的SM4的S盒硬件構造方法,本文參考其設計思想,對SM4選取特征向量 v1、映射矩陣 T1、映射逆矩陣

同時,選取GF(24)域上的模約化等式m(x)=x4+x+1(*),利用整數域上的同構變換,將GF(28)域上的求逆變換轉換為同構域GF((24)2)上的求逆變換矢量:

該等式右邊的求逆運算可以用組合邏輯簡化實現:

從而實現對SM4算法S盒的邏輯方式構造。對于AES算法,其定義的每一輪運算需要經過S盒的代換操作,而解密時的每一輪運算則需要經過逆S盒的代換操作[4],這個S盒及逆S盒是定義在整數域上的乘法和求逆運算:S(x)=A2x-1+C2,S-1(x)=(A2'x+C2')-1,其中,A2,C2是矩陣變量:

AES的每一輪運算還需要列混合操作,這是定義在整數域GF(28)上的矩陣乘法:

文獻[15]提出了一種適合AES算法ASIC設計的S盒構造方法,該方法通過整數域上的計算方法將加/解密需要的S盒可重構的設計在一個模塊上,同時基于復合域上的求逆的方法進一步減少了電路面積開銷。本文參考其設計方法,選取特征向量v2,映射矩陣T2,逆映射矩陣T2:

同樣選取(*)式描述的GF(24)域上的模約化等式,將 GF(28)域上的求逆變換轉換為同構域GF((24)2)上的求逆變換,從而實現對AES算法S盒及逆S盒邏輯方式的構造。至此,SM4、AES算法的運算簡化為整數域上的乘法和與、或運算,而整數域上的乘法可以轉化為移位和異或操作。
對于DES算法,置換運算是固定的位擴展和選擇,硬件實現非常簡單,同時DES需要隨機的S盒查找表(LUT,區別于SM4,AES的S盒),必須獨立實現。對于RC6算法,其核心運算是模232的加法、減法和乘法操作,而這些運算最終都可以轉化為移位和加法操作。最終,得到如表2所示的個算法使用的基礎運算邏輯。

表2 各算法使用的基礎運算邏輯
按照高效可配的設計需求和一般功能IP核的設計方法,本文給出了密碼算法的頂層架構設計,如圖1所示。圖中的總線接口模塊用于連接片上系統(System on Chip,SoC)中的總線,接收密碼用戶的配置信息、獲取密碼明文、密文和種子密鑰,提供密/明文。寄存器模塊用于存儲用戶的配置信息、模塊的狀態信息。控制邏輯根據用戶的配置信息靈活的生成控制信息,控制加/解密核心選擇對應算法的數據通路進行加/解密運算,得到正確的密/明文。加/解密核心模塊實現了各個密碼算法的運算邏輯。由于SM4、AES的S盒組合邏輯實現方法關鍵路徑延時較大,為改善電路性能,引入了流水線結構,使得密鑰擴展部分在密碼算法部分前一個時鐘周期計算輪密鑰,這樣密碼算法和密鑰擴展可以在經過S盒的路徑延時不會疊加,具體的流水線結構如圖1中stage0和stage1所示,圖中各個流水線級由粗線劃分。關于S盒的實現細節將在下文介紹。

圖1 頂層架構設計框圖
圖2是密碼算法模塊的數據通路示意圖,密鑰擴展模塊架構與之類似,且設計方法完全一致。圖中各個算法的數據通路均會經過可以共用的基礎運算單元,而無法共用的部分則通過多路選擇器分開,從左到右依次是 DES,RC6,SM4,AES的數據通路。其中,S盒被簡化描述為整數域上的乘法和求逆運算。

圖2 密碼算法模塊
對于同構類型的SM4,AES算法,本文按照整數域上的邏輯運算實現了S盒,如圖3所示。其中,?指整數域上的乘法;^2指整數域上的乘方;⊕指異或操作;“-1”是前面所述組合邏輯實現的求逆運算。模塊在控制信號作用下選擇前文描述的具體的矩陣進行整數域上的乘法,以及所需的求逆運算,得到對應的“代換”值,實現 S盒的功能。其中,整數域GF(28)上的求逆運算已經按照前文的描述映射的GF(24)上實現。特別的,為了提高電路的最高主頻,對電路進行靜態時序分析,找出關鍵路徑即S盒中的路徑,對其進行進一步的優化設計,引入如圖3所示的流水結構。

圖3 SM4和AES的S盒架構框圖
以上各個架構中所有的乘法、整數域上的乘法和求逆運算均以基礎運算移位、加法及異或的方式實現,與第2.1節中算法分析的結果對應,在此過程中,不同算法的數據通路將進一步得到重用,最終得到本文提出的基于基礎運算單元可重構的對稱密鑰算法硬件架構。
本節對上文所述使用基礎運算單元級可重構方法設計的高效可配的對稱密鑰算法硬件架構進行了性能測試實驗。本文所采用的SoC實驗平臺結構如圖4所示,集成了32位嵌入式處理器 CK803[16]、AHB總線(包括數據總線、地址總線和系統總線)、SRAM(包括指令SRAM和數據SRAM)以及本文設計的對稱密鑰算法模塊。為了簡化實驗,在進行吞吐率測試時,本文的驗證平臺不考慮處理器和總線實際的極限頻率,均在算法模塊可以達到的200 MHz下進行仿真。測試程序通過配置寄存器輸入密碼明/密文數據以及所需密鑰,選取相應的算法進行加解密測試。為了更好地與參考文獻中提供的性能指標進行對比,對于同時實現本文算法和其他算法的,本文按照文獻中提出的設計方法,相應的重現了其相同算法部分的電路架構;由于不同文獻中對電路的實現存在工藝上的差別,本文對各種架構均作了等效電路門數(與非門)的轉化;對于數據吞吐率也在100 MHz下做了歸一化處理。

圖4 SoC實驗平臺結構
表3列出了參考文獻中各種架構設計的性能指標,包括實現的算法、工藝、電路面積開銷、數據吞吐率和電路最高主頻,同時最后給出了按照本文架構設計所對應的實驗數據。

表3 現有密碼算法架構的性能指標
實驗使用綜合工具Design Compiler基于SMIC 0.13 μm 邏輯工藝,時序約束 200 MHz,采用“compile_ultra-scan”參數,根據實驗對象所實現的具體算法,對所設計的對稱密鑰算法模塊的RTL代碼進行綜合,統計相應的電路面積和電路最高主頻。圖5的結果顯示,電路面積開銷方面,本文構在實現單一算法和實現2種~3種算法時都有3%以上的優勢。其原因在于:實現單個AES算法時,本文采用組合邏輯方式實現S盒,相較于文獻[7]采用的查找表方式面積有明顯的優勢;在實現多個算法時,不僅S盒的面積體現優勢,基礎運算單元可重構方法使得整體電路結構更加緊湊,有效縮減了電路面積。

圖5 各架構的電路面積比較
圖6的結果顯示本文架構的電路最高主頻僅低于文獻[7]架構,而與其他架構持平或有9%以上的優勢,并且200 MHz的主頻能夠符合廣泛的設計需求。本文架構設計在考慮面積優勢的情況下,為滿足200MHz的時序要求,對于AES和SM4算法的密鑰擴展和加密算法在連續的不同時鐘周期進行S盒的替換操作,有效縮減組合邏輯路徑延時,達到設計需求;同時,為了進一步提升電路最高主頻,增強電路性能,對S盒的設計增加了流水線結構。

圖6 各架構的最高主頻
實驗使用仿真工具VCS在200 MHz頻率下對加解密測試程序進行仿真,統計數據吞吐率絕對值,并計算吞吐率與電路面積的比值作為性能指標。圖7是本文架構設計中各算法的單位面積吞吐率。由于不同算法和相同算法的加解密部分定義形式不同,需要的加/解密輪數不同,因此各算法之間以及相同算法的加解密之間數據吞吐率存在一定的差異。

圖7 應用本文架構實現各算法的單位面積吞吐率
圖8是本文與其他架構在實現不同算法時的情況對比,圖8(a)顯示實現單一算法時(AES),本文架構有12%以上的優勢;圖8(b)和圖8(c)分別顯示在實現2種算法:AES+DES以及SM4+AES時,本文架構均有明顯的優勢。圖8(d)顯示在實現SM4+AES+DES 3種算法時,本文架構有24%以上的優勢。

圖8 不同架構的單位面積吞吐率對比
其原因在于,一方面本文利用基礎運算單元可重構的方法設計的電路面積很小;另一方面本文按照各個密碼算法的定義每一輪變只消耗一個時鐘周期(除了SM4和AES算法的加密部分引入流水線結構需要額外的多消耗一個時鐘周期)使得完成一次加解密操作需要的時鐘周期數最少,數據吞吐率絕對值高。因此,本文架構的單位面積吞吐率較高。
本文利用基礎運算單元可重構的方法,設計并實現了高效可配的對稱密鑰算法硬件架構,在滿足各類技術指標(包括電路面積開銷、最高頻率、數據吞吐率等)的情況下,提供一種簡單的用戶接口,使得選取某個(些)密碼算法開發通信系統變得便利、高效,同時根據這種方法設計的硬件架構具有很好的擴展性。該架構電路面積小、數據吞吐率(包括單位面積吞吐率)高,電路最高主頻滿足實際應用需求。此外,由于本文使用基礎運算單元級的重構方法,新的對稱密鑰算法將很容易地集成設計到新的架構上,具有較好的擴展性,能進一步滿足多種對稱密鑰算法的應用設計需求。
由于本文沒有特別考慮密碼攻擊的情況,所設計架構對于對差分能量攻擊[17]等能量攻擊方法的抵抗能力可能存在缺陷,因此下一步將研究在保證當前架構設計性能的情況下增加相應的抗攻擊能力。
[1] 沈昌祥,張煥國,馮登國,等.信息安全綜述[J].中國科學 E 輯:技術科學,2007,37(2):1-22.
[2] Stinson D R.Cryptography Theory and Practice[M].[S.l.]:CRC Press,2006:58-66.
[3] Liu Fen,Wen Ji,Hu Lei,et al.Analysis of the SMS4 Block Cipher[C]//Proceedings of the 4th Australasian Conference on Information Security and Privacy.Berlin,Germany:Springer,2007:158-170.
[4] Joan D,VincentR.Advanced Encryption Standard(AES)[Z].National Institute of Standards and Technology,2001.
[5] Coppersmith D,Holloway C,Matyas S,et al.The Data Encryption Standard[J].Information Security Technical Report,1997,2(2):22-24.
[6] Rivest R,Robaw M,Sidney R,et al.The RC6 Block Cipher V1.1[Z].National Institute of Standards and Technology,1998
[7] Banu R,Vladimirova T.Fault-tolerantEncryption for Space Applications[J].IEEE Transactions on Aerospace and Electronic Systems,2009,45(1):266-279.
[8] Li Hongge,DingJinpeng,Pan Yongjun.CellArray Reconfigurable Architecture forHigh-efficiency AES System[J].Microelectronics Reliability,2012,52(11):2829-2836.
[9] Yan Weiwei,YouKaidi,Han Jun,etal.Low-cost Reconfigurable VLSI Implementation of the SMS4 and AES Algorithms[C]//Proceedings of the 8th IEEE International Conference on ASIC.Washington D.C.,USA:IEEE Press,2009:135-138.
[10] Morioka S,Satoh A.An Optimized S-Box Circuit Architecture for Low Power AES Design[C]//Proceedings of the Workshop on Cryptographic Hardware and Embedded Systems.San Francisco,USA:[s.n.],2002:172-186.
[11] Li Chao,Zhou Jun,Jiang Yuan,et al.Reconfigurable and Scalable Architecture for Security Coprocessor[C]//Proceedings of the 5th IEEE Conference on Industrial Electronics and Applications.Washington D.C.,USA:IEEE Press,2010:1826-1831.
[12] Eslami Y,Sheikholeslami A,Gulak P G,et al.Areaefficient Universal Cryptography Processor for Smart Card[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2006,14(1):43-56.
[13] Mohamed E,Abdelkader H,El-Etriby S.Enhanced Data Security Model for Cloud Computing[C]//Proceedings of the 8th International Conference on Informatics and Systems.Washington D.C.,USA:IEEE Press,2012:12-17.
[14] 徐艷華,白雪飛,郭 立.適合SMS4算法硬件實現的S盒構造新方法[J].中國科學技術大學學報,2009,39(11):1164-1170.
[15] Johannes W,Elisabeth O,Mario L.An ASIC Implementa-tion of the AES SBoxes[C]//Proceedings of CT-RSA’02.Berlin,Germany:Springer,2002:67-78.
[16] 潘 赟.CK-CPU嵌入式系統開發教程[M].北京:科學出版社,2011.
[17] Stefan M,Elisabeth O,Thomas P.Power Analysis Attacks[M].Berlin,Germany:Springer-Verlag,2007:97-128.