


摘要:隨著集成電路的迅猛發展,為使數據通信安全性滿足大數據時代的需要,文章詳細研究SMS4算法,提出一種用雙端口隨機存取存儲器(Random Access Memory,RAM)代替S盒的多路算法并行處理大數據的結構,并基于現場可編程門陣列(Field Programmable Gate Array,FPGA)實現這一算法。經仿真驗證,所設計的結構都能正確處理大數據,其處理速度遠超單個算法電路的處理速度。該算法與其他設計結構相比,其處理速度也占據相當優勢。
關鍵詞:FPGA;SMS4;加解密;輪密鑰;高速數據處理
中圖分類號:TP309文獻標志碼:A
0 引言
以“大量”“多樣”“高速”為特征的大數據時代的到來使得通信中的數據保密安全問題成為信息安全領域中人們關注的焦點。確保重要敏感信息不被竊取窺探的常用方法是數據加密[1]。SMS4密碼算法是國家密碼管理局公布的第一個用于無線局域網產品的商用分組對稱密碼算法[2],是數字時代安全建設公眾信息的基石。數字加密系統或設備通常具有數據處理速度快的需求,依據該特點,本文以速度優先為首要前提,提出一種基于FPGA的SMS4高速數據處理算法設計。
1 SMS4密碼算法介紹
SMS4算法從性質上劃分,屬于分組密碼算法[3];從結構上歸類,屬于典型的Feistel網絡結構。其使用的分組、密鑰長度均為16 Bit,且采用的加解密、輪密鑰擴展算法也都是非線性迭代結構[4]。
基于S盒(記為Sbox(.))的SMS4算法本質上屬于分組對稱密碼算法[5],其將1組比特數據進行加解密運算。原始輸入分組內部記為X,輪密鑰記為rki(i=0,1,2,…,31),結果輸出分組內部記為Y,用字母Z的下標表示進制類型,用字母Z的上標表示比特長度時,則X、Y、rki都是二進制32比特數,記做X、Y、rki∈Z322 [6]。算法中迭代生成的Xi+4是關于Xi、Xi+1、Xi+2、Xi+3、rki的輪函數(i=0,1,…,31),即Xi+1、Xi+2、Xi+3、rki的可逆變換結果再與Xi異或后的最終輸出。將第32輪迭代運算結果逆序后得到輸出結果為(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)。可逆變換(記做Td)既含有線性變換(記做Ld)又含有非線性變換(記做τ),歸屬于合成置換,表示為Td(.)=Ld(τ(.))。固定8 Bit輸入8 Bit輸出稱為Sbox變換,而4個并行的Sbox構成非線性變換τ。當非線性變換輸入用(a4,a3,a2,a1)表示,異或運算用⊕表示,循環左移i位用<<<i表示時,非線性變換輸出H=(Sbox(a4), Sbox(a3), Sbox(a2), Sbox(a1)),則線性變換Ld=(H<<<24)⊕(H<<<18)⊕(H<<<10)⊕(H<<<2)⊕H[7]。當操作輪密鑰順序相反時,加解密運算互為變化,即加密時操作輪密鑰順序為rk0,rk1,…,rk31,則解密時操作輪密鑰順序必為rk31,rk30,…,rk0。算法流程如圖1所示。
經過32次非線性迭代運算后生成32個輪密鑰的輪密鑰擴展算法與加解密算法的基本結構相同[8]。當原始密鑰分組內部記為M,輪密鑰記為rki(i=0,1,2,…,31)時,則M、rki都是二進制32比特數,記做M、rki∈Z322。初始密鑰(K0,K1,K2,K3)為原始密鑰(M0,M1,M2,M3)與十六進制系統參數(A3B1BAC6,56AA3350,677D9197,B27022DC)異或的結果,迭代而成的Ki+4(i=0,1,…,31)是Ki+1、Ki+2、Ki+3、cki的可逆變換結果再與Ki異或后的最終輸出。其中ck稱為固定參數,其選取方法為:設cki, j為cki的第j字節(i=0,1,…,31;j=0,1,2,3),即cki=(cki,0,cki,1,cki,2,cki,3)∈Z322,cki, j=(4i+j)×7(mod256) [9]。可逆變換(記做Tk)既含有線性變換(記做Lk)又含有非線性變換(記做τ),表示為Tk(.)=Lk(τ(.))。當非線性變換輸出用P表示時,則線性變換Lk=(P<<<23)⊕(P<<<13)⊕P。
2 SMS4 算法的高速實現
SMS4屬于分組對稱密碼算法,每次僅對單數據組進行加/解密,前后數據在加解密時無相關性[10]。因此,通過并行處理結構可以增加系統輸出性能。該設計就是用16路單個SMS4算法電路并行工作實現的。
2.1 實現結構
16路單個SMS4算法電路并行工作的結構如圖2所示。16路算法電路并行組成高速數據處理模塊,輪密鑰的提前生成、存儲、分配等功能由輪密鑰生成及算法控制模塊實現。單個算法電路和輪密鑰生成電路內部都是用2個8 Bit輸入8 Bit輸出的雙端口RAM功能替換4個并行S盒。輪密鑰生成及算法控制模塊內含1個計算輪數的計數器,同時存儲經32輪非線性迭代后提前生成的輪密鑰。算法控制電路結合加解密模式和輪數取出提前存儲的相應輪密鑰,并把它們和輪數一起傳遞給高速數據處理模塊。高速數據處理模塊得到輪數及相應輪密鑰信息后,再把它們和相應輸入數據經過異或、合成置換、異或3步運算,上述步驟經過32次循環后,再將輸出數據逆序處理,最終輸出結果數據。
高速數據處理模塊每輸入16組待運算數據經過32個時鐘周期后便產生一個算法完成標志信號(done),done信號持續一個時鐘周期。因此,每33個時鐘周期高速數據處理模塊就會對外輸出16組運算后的數據,此時新的16組輸入數據又開始進行加解密運算,接著便循環以上過程。
2.2 仿真及算法設計結果比較
在ALTERA公司EP4CGX50CF23C6芯片實驗板下,當輸入明文(密文)32個時鐘周期后,第34個時鐘周期輸出16組結果數據,此時用FPGA自帶調試工具采集的驗證結果不僅與仿真結果相同而且與國家密碼局公布的數據也相同。
用1組固定密鑰對1組固定明文反復加密106次,每次結果都正確,而且耗時較短,實踐證明該模塊高效地完成了SMS4的高速加密解密。經Altera系列EP4CGX50CF23C6芯片板級驗證,邏輯處理時鐘最高頻率可達113.92 MHz,峰值處理速率7.07 GBit/s,遠超常規設計峰值處理速率(455.7 MBit/s)[10]。
表1為已有算法設計與本文算法設計的結果對比。通過比較分析可知:在相同時鐘頻率下本設計的處理速度近似為半流水(8輪)的2倍,同時相比傳統流水線也節省了大量的資源。
3 結語
在大數據時代,為適應海量數據安全性,研究SMS4高速數據處理算法設計具有重要意義。依據算法原理,本文不僅設計出各運算單元的高效合理方案,而且針對算法具體使用場景,還提出了一種基于FPGA的多路并行處理結構,并在仿真驗證中驗證了所提算法的有效性。
參考文獻
[1]張利華,吳松,蔣騰飛,等.基于FPGA的SMS4算法實現及在線驗證[J].華東交通大學學報,2018(5):111-116.
[2]李瑋,汪夢林,谷大武,等.SMS4密碼算法的唯密文故障分析[J].計算機學報,2022(8):1814-1826.
[3]蔡玉瑩,曲英杰.基于單輪循環結構的SMS4加密芯片的研究與設計[J].電子設計工程,2016(22):39-42.
[4]鄭朝霞,資義純,吳旭峰,等.SMS4算法串行化設計及其輕量級電路實現[J].華中科技大學學報(自然科學版),2016(2):61-64.
[5]王艷紅.硬件實現SMS4密碼算法的研究[J].自動化與儀器儀表,2015(6):133-134.
[6]朱勇,崔強強.基于SMS4的加密通信可編程片上系統設計實現[J].電子科技,2014(4):138-142.
[7]江依妹,曲英杰.SMS4密碼的集成電路實現方法[J].青島科技大學學報(自然科學版),2013(6):622-627.
[8]李瑞林,熊海,李超.基于循環移位和異或運算的對合線性變換研究[J].國防科技大學學報,2012(2):46-50.
[9]劉佳.對稱密碼算法S盒安全性分析[J].南京信息工程大學學報(自然科學版),2013(4):352-357.
[10]程海,丁群,杜輝,等.基于FPGA實現的SMS4算法研究[J].儀器儀表學報,2011(12):2845-2850.
High-speed data processing design of SMS4 algorithm based on FPGA
Abstract: With the rapid development of integrated circuits, in order to meet the security needs of data communication at the era of big data, after detailed study of the SMS4 algorithm, a structure of multi-channel algorithm parallel processing large data is proposed using dual-port RAM instead of S-box, and this algorithm is realized based on FPGA. Through simulation and verification, this structure can correctly handle large data, and its processing speed is more quickly than the processing speed of a single arithmetic circuits. Compared with other structures of the algorithm, its processing speed also occupies considerable advantage.
Key words: FPGA; SMS4; encryption; rotate cipher key; high-speed data processing