王艷紅 付世沖
摘 要:隨著現(xiàn)代信息技術(shù)的快速發(fā)展,信息安全已經(jīng)成為信息化社會最重要、最關(guān)鍵的問題之一。SMS4密碼算法是我國自主研發(fā)的商用密碼,是我國官方公布的第一個商用加密算法,使用軟件對傳輸?shù)男畔⑦M(jìn)行加密,容易給攻擊者采用分析程序、跟蹤、反編譯等手段進(jìn)行攻擊,而硬件加密算法比軟件實(shí)現(xiàn)更快捷、更安全,文章提出了一種利用FPGA實(shí)現(xiàn)分組加密算法SMS4的硬件實(shí)現(xiàn)方法,通過ISE仿真驗(yàn)證了其正確性。
關(guān)鍵詞:SMS4;FPGA;硬件加密
引言
SMS4[1]密碼算法是國內(nèi)公布的第一個用于無線局域網(wǎng)產(chǎn)品的商用密碼算法,無線局域網(wǎng)具有工作效率高、輕巧靈活、安裝成本低等特點(diǎn),但是無線局域網(wǎng)是開放性的,其安全性令人擔(dān)憂。
文章通過分析SMS4[2]密碼算法的過程,采用C語言和Verilog HDL語言編程,使用VC6.0和ISE 14.2仿真,將其結(jié)果進(jìn)行對比驗(yàn)證。證明硬件加密具有較高的加解密速度、將密碼算法固化在硬件中,算法不容易被修改,提高了系統(tǒng)的安全性等特點(diǎn)。
1 SMS4加密算法
SMS4[3]是國家密碼管理辦公室2006年公布的應(yīng)用于無線局域網(wǎng)產(chǎn)品的分組密碼算法、分組長度為128比特,密鑰長度為128比特、是使用典型的Feistel網(wǎng)絡(luò)結(jié)構(gòu)的分組密碼算法,密碼算法主要包含輪密鑰算法、加密算法和解密算法[3]。
Feistel網(wǎng)絡(luò)在1973年首次踏上歷史舞臺,F(xiàn)eistel網(wǎng)絡(luò)結(jié)構(gòu)中,加密算法輸入的數(shù)據(jù)是一個長度為2?棕比特的明文分組和秘鑰K,明文被分成L0和R0。L0和R0經(jīng)過n輪的處理后組合起來產(chǎn)生密文。Feistel網(wǎng)絡(luò)結(jié)構(gòu)對左邊一半進(jìn)行替換操作,即對數(shù)據(jù)右邊一半應(yīng)用Round函數(shù)F,將此函數(shù)的輸出與左邊一半數(shù)據(jù)進(jìn)行異或。每一輪Round函數(shù)都相同,只是每一輪的子密鑰Ki不相同,(FK0,F(xiàn)K1,F(xiàn)K2,F(xiàn)K3,CKi,sbox中的數(shù)據(jù)都是常數(shù))。
1.1 輪密鑰算法
RKi即為第i輪加密的密鑰。
SMS4密碼算法中主要包括異或、移位、查表等基本的運(yùn)算。異或模塊的運(yùn)算單元都是128位的二進(jìn)制數(shù)值,其運(yùn)算結(jié)果由2個操作數(shù)決定;與運(yùn)算模塊是將128位的數(shù)據(jù)分割為4個32位的數(shù)據(jù);移位運(yùn)算模塊在SMS4算法中使用頻率較高,其將輸入的128位數(shù)據(jù)向左循環(huán)移動i位。
1.3 解密算法
當(dāng)對方接收到經(jīng)過加密運(yùn)算的密文時,需要進(jìn)行32輪迭代的解密運(yùn)算。解密運(yùn)算和加密運(yùn)算的結(jié)構(gòu)相同,只是密鑰的使用順序相反。
2 SMS4加解密算法的實(shí)現(xiàn)
2.1 C語言實(shí)現(xiàn)SMS4密碼算法
軟件實(shí)現(xiàn)加解密算法產(chǎn)生密鑰很麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,難以做到一次一密,而且SMS4加密算法的安全性依賴于密碼算法本身,當(dāng)攻擊者竊取到密鑰和密文后,通過計(jì)算就能得到實(shí)際傳輸?shù)男畔ⅰ?/p>
2.2 Verilog HDL實(shí)現(xiàn)密碼算法
FPGA 繼承了ASIC的大規(guī)模、高集成度、高可靠性等優(yōu)點(diǎn),同時又避免了設(shè)計(jì)周期長、投資大、靈活性差等缺點(diǎn)。完整的FPGA設(shè)計(jì)包含輸入、功能仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真和下載調(diào)試等步驟。文章采用Verilog HDL編寫代碼、Xilinx公司的ISE 14.2平臺輸入代碼,自帶的仿真器ISim進(jìn)行仿真。
3 結(jié)束語
分析SMS4密碼算法的軟件和硬件實(shí)現(xiàn)方法,軟件實(shí)現(xiàn)加解密算法密鑰的管理較復(fù)雜、密鑰分配協(xié)議有缺陷,軟件加密是在用戶的計(jì)算機(jī)內(nèi)部進(jìn)行,攻擊者采用分析程序進(jìn)行跟蹤、反編譯等手段進(jìn)行攻擊。硬件實(shí)現(xiàn)加解密算法具有較高的加解密速度,將密碼算法固化在硬件中,使算法不容易被修改,提高了系統(tǒng)的安全性,加密芯片采用 EDA技術(shù),將密碼算法固化在硬件專用芯片F(xiàn)PGA中,具有防篡改、防泄露等較高的安全性。硬件實(shí)現(xiàn)加解密算法比軟件實(shí)現(xiàn)更快捷、更安全。
參考文獻(xiàn)
[1]Gao X, Lu E, Xian L, et al. FPGA implementation of the SMS4 block cipher in the Chinese WAPI standard[C].Embedded Software and Systems Symposia, 2008. ICESS Symposia'08. International Conference on. IEEE, 2008: 104-106.
[2]Husen W, Shuguo L. High Performance FPGA Implementation for SMS4[M].High Performance Networking, Computing, and Communication Systems. Springer Berlin Heidelberg, 2011: 469-475.
[3]JIN Y ER,SHEN H B,YOU R Q.Implementation of SMS4 block ciper on FPGA[C]. Communications and Networking in China,2006:1-4.
作者簡介:王艷紅(1988-),女,貴州大學(xué)電子信息學(xué)院碩士研究生,主要研究方向:電路系統(tǒng)設(shè)計(jì)自動化。