蔡玉瑩,曲英杰
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島266061)
基于單輪循環(huán)結(jié)構(gòu)的SMS4加密芯片的研究與設(shè)計
蔡玉瑩,曲英杰
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島266061)
文章在分析SMS4原理的基礎(chǔ)上提出了一種基于單輪循環(huán)結(jié)構(gòu)的SMS4加密方案,通過復(fù)用單一的加密單元,經(jīng)過32次循環(huán)迭代完成加密,大大減少了硬件資源的使用。該設(shè)計的開發(fā)平臺是Altera公司的Quartus II 9.0,使用的FPGA(Field-Programmable Gate Array)開發(fā)板是Cyclone II EP2C8Q208C8。運行結(jié)果表明,SMS4加密芯片使用了5 268個邏輯單元和139 264位存儲器資源,系統(tǒng)的時鐘頻率可以達(dá)到51.35 MHz,信息加/解密的峰值速度為3.2Gb/ s,系統(tǒng)功耗為132.30 mW。
SMS4;對稱密碼算法;FPGA;單輪循環(huán)
21世紀(jì)以來,信息技術(shù)在一步步的改變傳統(tǒng)的生產(chǎn)和生活模式,信息工業(yè)已經(jīng)成為新的經(jīng)濟(jì)增長點,并已經(jīng)發(fā)展成當(dāng)今時代的靈魂和核心[1]。因為通信網(wǎng)絡(luò)是開放的、共享的,因此許多敏感的信息可以經(jīng)過網(wǎng)絡(luò)和通信設(shè)備進(jìn)行交換,加解密技術(shù)成為保障國家信息安全的根本支撐,也決定了國際戰(zhàn)略競爭的高度。在這樣的背景下,信息安全工業(yè)得到了最大程度的發(fā)展時機(jī)。它作為安全技術(shù)的實踐者,承擔(dān)著巨大的社會責(zé)任,在國家發(fā)展為網(wǎng)絡(luò)強(qiáng)國的道路上發(fā)揮了極其重要的作用[2]。
SMS4對稱密碼算法在2006年1月25日被國家密碼管理辦公室公布,成為我國官方公布的第一個分組密碼算法。作為一種分組密碼算法,它被廣泛的應(yīng)用到商業(yè)領(lǐng)域中,在數(shù)據(jù)的加解密儲存、加密傳輸?shù)确矫姘l(fā)揮了重要作用。SMS4算法的主要實現(xiàn)結(jié)構(gòu)是非線性代換,經(jīng)過32輪完成密鑰產(chǎn)生和數(shù)據(jù)加密[3]。完成置換功能的模塊主要是S盒,這是一種擁有非常好的密碼學(xué)特點,并且很容易被替換的模塊。正是由于這一系列的優(yōu)點,所以在實現(xiàn)SMS4時可選擇的模塊十分靈活,系統(tǒng)在處理突然性的安全危險時速度和反應(yīng)能力更強(qiáng)。
文中通過對SMS4算法的研究,提出一種基于單輪循環(huán)結(jié)構(gòu)的SMS4加密芯片的設(shè)計方案并進(jìn)行實現(xiàn),本設(shè)計在使用盡量少的硬件資源的情況下,提高了系統(tǒng)的加密速度,實現(xiàn)了性能與面積的雙保障。
1.1置換及變換T
1.1.1合成置換T
SMS4算法以一個字(即32比特)作為處理單元,以非線性代換作為基本結(jié)構(gòu),一次迭代就是一輪變換。假設(shè)(X0,X1,X2,X3)∈()4為明文,rk∈為子密鑰,則我們稱F(X0,X1,X2,X3,rk)=X0⊕T(X1⊕X2⊕X3⊕rk)為輪函數(shù)?!?,T的變換是可逆的[4],它由兩種變換組合而成:一種是非線性的變換τ,另一種是線性的變換L,即T(.)=L(τ(.))。
1.1.2非線性變換τ
τ由4個并行的S盒構(gòu)成。設(shè)輸入為A=(a0,a1,a2,a3)∈,輸出為B=(b0,b1,b2,b3)∈,則(b0,b1,b2,b3)=τ(A)= (Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))[5]。
1.1.3線性變換L
1.1.4S盒
S盒里面存儲的數(shù)據(jù)[7]的形式均為16進(jìn)制。
例如:當(dāng)S盒的輸入為6a時,代表選擇S盒中第6行和第a列的值,查表可知,輸出為7c,即sbox(6a)=7c。
1.2加/解密算法
定義反序變換R為:R(A0,A1,A2,A3)=(A3,A2,A1,A0),其中Ai∈,i=0,1,2,3[8]。假設(shè)明文是(X0,X1,X2,X3)∈()4,對應(yīng)的密文為(Y0,Y1,Y2,Y3)∈()4,子密鑰為rki∈,i= 0,1,2,……,31。則本算法的加密變換為:
表1 sbox模塊數(shù)據(jù)
加密解密運算的變換函數(shù)是一樣的,但子密鑰的應(yīng)用順序相反。加密時輪密鑰的使用順序為:(rk0,rk1,…,rk31)解密時輪密鑰的使用順序為:(rk31,rk30,…,rk0)。
1.3密鑰擴(kuò)展算法
密鑰擴(kuò)展算法的輸入是種子密鑰,輸出是32輪輪密鑰。
種子密鑰MK=(MK0,MK1,MK2,MK3),MKi(i=0,1,2,3)[9];
令 Ki∈,i=0,1,2,……,35,輪密鑰為 rki∈,i= 0,1,2,……,31。則輪密鑰生成方法為:
對i=0,1,2,……,31有rki=Ki+4=K⊕T′(Ki+1⊕Ki+2⊕Ki+3⊕CKi)。其中,T′變換中的線性變換L′改為:L′(B)=B⊕(B<<<13)⊕(B<<<23)[10];其他部分與L相同。FK與CK這兩個系統(tǒng)參數(shù)都是固定數(shù)值,均使用16進(jìn)制表示。
一個完善的FPGA設(shè)計主要包括如下幾步:RTL模型建立、功能仿真、綜合、綜合后仿真、布局布線、時序仿真、實現(xiàn)和板級驗證等[11]。
RTL模型建立是根據(jù)自上而下的設(shè)計方案把要實現(xiàn)的功能通過硬件描述語言進(jìn)行描述,由EDA工具進(jìn)行解析。模型建立好后,下一步驟是功能仿真,這需要使用專門的仿真工具來進(jìn)行,從而判斷電路的功能是否滿足設(shè)計需求。綜合(SYNTHESIZE)是把設(shè)計的輸入轉(zhuǎn)換為存儲器、與、非、或等邏輯電路的組合,并依據(jù)約束要求對生成的網(wǎng)表(netlist)進(jìn)行優(yōu)化,來得到EDF與EDN文件,F(xiàn)PGA工廠的布局布線工具會根據(jù)這種文件完成實現(xiàn)操作[12]。把網(wǎng)表轉(zhuǎn)換為布局(layout)的過程稱為后端(backend)。后端的主要工作是:把網(wǎng)表實現(xiàn)成版圖(APR);驗證得到的版圖是否滿足時序的需求、符合設(shè)計的規(guī)范;提取出版圖的延時信息,在時序仿真時使用。在時序仿真時,版圖的延時信息被添加進(jìn)來,因此時序仿真包括兩種延時信息:線延時、門延時。設(shè)計開發(fā)的最后一步是板級驗證與在線調(diào)試,這需要把產(chǎn)生的配置文件燒寫進(jìn)芯片中。分步驟進(jìn)行設(shè)計開發(fā)的優(yōu)點就是不論哪個步驟發(fā)生問題,都可以通過問題進(jìn)行定位,從而回到相應(yīng)的步驟重新設(shè)計或修改[13]。
3.1算法特點
SMS4對稱密碼算法中的循環(huán)迭代結(jié)構(gòu)主要通過一些基本的組合邏輯實現(xiàn),如異或、移位、置換等,因此算法的數(shù)據(jù)結(jié)構(gòu)非常簡單。該算法實現(xiàn)的重點是32輪迭代運算,每輪運算都是相同的并且都須要一個輪密鑰進(jìn)行異或操作,輪密鑰和種子密鑰之間有一種特定的對應(yīng)關(guān)系,因此輪密鑰能提前產(chǎn)生,提供給輪函數(shù)F使用[14]。
3.2SMS4整體框圖
圖1 SMS4模塊框圖
3.3外部信號說明
表2 SMS4模塊外部信號說明
3.4SMS4系統(tǒng)體系結(jié)構(gòu)
SMS4頂層模塊由密鑰產(chǎn)生、數(shù)據(jù)產(chǎn)生、加解密狀態(tài)機(jī)和顯示模塊這幾個子模塊構(gòu)成。加解密狀態(tài)機(jī)輸出的控制信號來控制數(shù)據(jù)生成模塊和密鑰生成模塊完成相應(yīng)操作,最終經(jīng)過32輪的循環(huán)迭代完成加密。由于數(shù)據(jù)通路的設(shè)計采用了循環(huán)迭代方式,因此32輪加密可以通過復(fù)用由單一的加密單元實現(xiàn),可以大大減少硬件資源的消耗。
4.1密鑰產(chǎn)生模塊
此模塊的作用是生成32輪子密鑰,其硬件結(jié)構(gòu)與數(shù)據(jù)產(chǎn)生模塊大致相同。在控制信號的影響下,32個輪密鑰在數(shù)據(jù)加/解密操作前提前產(chǎn)生,輪密鑰產(chǎn)生后立即使用,不進(jìn)行存儲。其中為節(jié)省LUT資源,sbox使用ROM實現(xiàn)[15]。
圖2 密鑰產(chǎn)生模塊電路結(jié)構(gòu)圖
圖3 功能仿真波形圖
4.2數(shù)據(jù)產(chǎn)生模塊
數(shù)據(jù)產(chǎn)生模塊是利用初始的明文(密文)和輪密鑰進(jìn)行相應(yīng)的操作得到32個數(shù)據(jù)(每個數(shù)據(jù)為32位)。數(shù)據(jù)產(chǎn)生模塊的電路均由組合邏輯實現(xiàn),內(nèi)部結(jié)構(gòu)如圖4所示。
圖4 數(shù)據(jù)產(chǎn)生模塊電路結(jié)構(gòu)圖
圖5 數(shù)據(jù)產(chǎn)生模塊功能仿真波形
4.3加解密狀態(tài)機(jī)
加解密模塊狀態(tài)機(jī)提供密鑰產(chǎn)生模塊和數(shù)據(jù)稀產(chǎn)生模塊的控制信號,加解密狀態(tài)機(jī)是SMS4算法的核心模塊,其中解密時使用控制信號使密鑰逆序給出,實現(xiàn)算法功能。
圖6 加密模塊結(jié)構(gòu)圖
二選一選通器(MUX)的主要功能是根據(jù)控制信號選擇進(jìn)入每一輪迭代操作的是加/解密數(shù)據(jù)還是原始的明(密)文,通過32輪循環(huán)代換后,得到最終的密文(加密操作結(jié)果)或明文(解密操作結(jié)果)。
圖7 加密模塊波形圖
綜合工具采用的是Altera公司FPGA配套的開發(fā)工具QuartusⅡ9.0,SMS4加密芯片的綜合結(jié)果如圖8所示。
圖8 SMS4加密芯片的綜合結(jié)果
仿真是指使計算機(jī)根據(jù)一定的仿真庫和一定的算法,利用EDA工具對設(shè)計進(jìn)行模擬,來檢查設(shè)計的錯誤。時序仿真(后仿真)是FPGA設(shè)計的重要步驟之一,它通常在做完布局布線后進(jìn)行,它與特定的器件相關(guān),并且包含了器件和布線的延時信息,主要驗證程序在目標(biāo)器件中的時序關(guān)系[16]。后仿真文件里包括器件的硬件特征參數(shù),與功能仿真相比,后仿真的仿真精度更高。本設(shè)計經(jīng)過QuartusII 9.0進(jìn)行編譯后,用產(chǎn)生的延時文件和網(wǎng)表文件進(jìn)行時序仿真。
圖9 時序仿真結(jié)果
圖10 加密數(shù)據(jù)顯示
該加密(解密)芯片采用具有高性能與高容量的Cyclone板卡為硬件平臺,軟件設(shè)計采用模塊化設(shè)計思想,提高了系統(tǒng)的準(zhǔn)確性與安全性。該芯片已用于某可移動的電腦加密機(jī),通過USB接口實現(xiàn)FPGA與電腦的通信,實際應(yīng)用表明該加密(解密)芯片具有測試準(zhǔn)確、穩(wěn)定可靠、加解密速度快、資源消耗少等優(yōu)點,達(dá)到了設(shè)計要求。
[1]馬秉琪.淺談知識經(jīng)濟(jì)社會中的信息化 [J].經(jīng)濟(jì)問題,2001,1(12):18-19.
[2]袁勝.網(wǎng)絡(luò)強(qiáng)國戰(zhàn)略激活安全產(chǎn)業(yè) [J].中國信息安全,2005,4(3):62-63.
[3]趙旭鑫.密碼算法SMS4的硬件實現(xiàn)研究[D].浙江:浙江大學(xué), 2006.
[4]國家密碼管理局公告.無線局域網(wǎng)產(chǎn)品使用的SMS4密碼算法 [EB/OL].(2006-01-6).http://download.csdn.net/detail/ yusan47831858642.
[5]李浪,李仁發(fā),李靜等.一種SMS4加密算法差分功耗攻擊[J].計算機(jī)科學(xué),2010,6(7):39-41.
[6]蔣繼婭,劉彤,胡祥義.動態(tài)SMS4算法的研究與實現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2008,4(9):92-93.
[7]陳良.一種優(yōu)化DES算法[J].計算機(jī)工程與應(yīng)用,2004,17(6): 74-76.
[8]鄭秀林,金麗娜.SMS4算法在DSP中的實現(xiàn)研究[J].北京電子科技學(xué)院學(xué)報,2006,8(4):34-37.
[9]魏軍,楊秀芝.基于FPGA的IDEA加解密算法的研究與實現(xiàn)[J].通信技術(shù)及應(yīng)用,2009,2(11):34-39.
[10]劉文華,杜現(xiàn)朝,耿喬科.一種提高SMS4安全性的算法[J].自動化與儀器儀表,2009,5(3):96-98.
[11]薛宇艷.開放式運動控制系統(tǒng)中的可編程邏輯設(shè)計與實現(xiàn)[D].天津:南開大學(xué),2005.
[12]胡軍.基于FPGA的無人機(jī)大氣數(shù)據(jù)測試系統(tǒng)[D].西安:西北工業(yè)大學(xué),2005.
[13]周屹.基于ARM7指令集的嵌入式CPU設(shè)計[D].北京:北京工業(yè)大學(xué),2005.
[14]曲英杰.可重構(gòu)密碼協(xié)處理器的概念及其設(shè)計原理[J].計算機(jī)工程與應(yīng)用,2003,25(4):30-34.
[15]馬云.基于可重組體系結(jié)構(gòu)的密碼芯片設(shè)計及其FPGA實現(xiàn)[D].長沙:國防科技大學(xué),2002.
[16]戚新宇.基于FPGA設(shè)計的功能仿真和時序仿真[J].航空電子技術(shù),2005,26(3):51-54.
Research and design of SMS4 cryptographic chip based on full iteration architecture
CAI Yu-ying,QU Ying-jie
(College of Information Science and Technology,Qingdao University of Science and Technology,Qingdao 266061,China)
Based on analyzing the principle of SMS4,the paper puts forward a scheme of SMS4 cryptographic chip based on full iteration architecture.By multiplexing a single encryption unit,the design completes encryption after loop iteration 32 rounds,thus it greatly reduces the consumption of resources.This design's development platform is the Quartus II 9.0 of Altera company,the FPGA(Field-Programmable Gate Array)development board is the Cyclone II EP2C8Q208C8.The results shows: this design only uses 5 268 logic elements and 139 264 memory bits,the highest clock frequency is up to 51.35 MHz,the encryption speed is up to 3.2 Gb/s,and the power of the system is 132.30 mW.
SMS4;symmetric cryptography algorithm;FPGA;full iteration
TN918
A
1674-6236(2016)22-0039-04
2015-12-28稿件編號:201512275
山東省科技計劃項目(2013YD 01038)
蔡玉瑩(1991—),女,山東日照人,碩士研究生。研究方向:集成電路設(shè)計。