王艷紅 付世沖
摘 要:隨著現(xiàn)代信息技術(shù)的快速發(fā)展,信息安全已經(jīng)成為信息化社會(huì)最重要、最關(guān)鍵的問題之一。SMS4密碼算法是我國(guó)自主研發(fā)的商用密碼,是我國(guó)官方公布的第一個(gè)商用加密算法,使用軟件對(duì)傳輸?shù)男畔⑦M(jìn)行加密,容易給攻擊者采用分析程序、跟蹤、反編譯等手段進(jìn)行攻擊,而硬件加密算法比軟件實(shí)現(xiàn)更快捷、更安全,文章提出了一種利用FPGA實(shí)現(xiàn)分組加密算法SMS4的硬件實(shí)現(xiàn)方法,通過(guò)ISE仿真驗(yàn)證了其正確性。
關(guān)鍵詞:SMS4;FPGA;硬件加密
引言
SMS4[1]密碼算法是國(guó)內(nèi)公布的第一個(gè)用于無(wú)線局域網(wǎng)產(chǎn)品的商用密碼算法,無(wú)線局域網(wǎng)具有工作效率高、輕巧靈活、安裝成本低等特點(diǎn),但是無(wú)線局域網(wǎng)是開放性的,其安全性令人擔(dān)憂。
文章通過(guò)分析SMS4[2]密碼算法的過(guò)程,采用C語(yǔ)言和Verilog HDL語(yǔ)言編程,使用VC6.0和ISE 14.2仿真,將其結(jié)果進(jìn)行對(duì)比驗(yàn)證。證明硬件加密具有較高的加解密速度、將密碼算法固化在硬件中,算法不容易被修改,提高了系統(tǒng)的安全性等特點(diǎn)。
1 SMS4加密算法
SMS4[3]是國(guó)家密碼管理辦公室2006年公布的應(yīng)用于無(wú)線局域網(wǎng)產(chǎn)品的分組密碼算法、分組長(zhǎng)度為128比特,密鑰長(zhǎng)度為128比特、是使用典型的Feistel網(wǎng)絡(luò)結(jié)構(gòu)的分組密碼算法,密碼算法主要包含輪密鑰算法、加密算法和解密算法[3]。
Feistel網(wǎng)絡(luò)在1973年首次踏上歷史舞臺(tái),F(xiàn)eistel網(wǎng)絡(luò)結(jié)構(gòu)中,加密算法輸入的數(shù)據(jù)是一個(gè)長(zhǎng)度為2?棕比特的明文分組和秘鑰K,明文被分成L0和R0。L0和R0經(jīng)過(guò)n輪的處理后組合起來(lái)產(chǎn)生密文。Feistel網(wǎng)絡(luò)結(jié)構(gòu)對(duì)左邊一半進(jìn)行替換操作,即對(duì)數(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個(gè)操作數(shù)決定;與運(yùn)算模塊是將128位的數(shù)據(jù)分割為4個(gè)32位的數(shù)據(jù);移位運(yùn)算模塊在SMS4算法中使用頻率較高,其將輸入的128位數(shù)據(jù)向左循環(huán)移動(dòng)i位。
1.3 解密算法
當(dāng)對(duì)方接收到經(jīng)過(guò)加密運(yùn)算的密文時(shí),需要進(jìn)行32輪迭代的解密運(yùn)算。解密運(yùn)算和加密運(yùn)算的結(jié)構(gòu)相同,只是密鑰的使用順序相反。
2 SMS4加解密算法的實(shí)現(xiàn)
2.1 C語(yǔ)言實(shí)現(xiàn)SMS4密碼算法
軟件實(shí)現(xiàn)加解密算法產(chǎn)生密鑰很麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,難以做到一次一密,而且SMS4加密算法的安全性依賴于密碼算法本身,當(dāng)攻擊者竊取到密鑰和密文后,通過(guò)計(jì)算就能得到實(shí)際傳輸?shù)男畔ⅰ?/p>
2.2 Verilog HDL實(shí)現(xiàn)密碼算法
FPGA 繼承了ASIC的大規(guī)模、高集成度、高可靠性等優(yōu)點(diǎn),同時(shí)又避免了設(shè)計(jì)周期長(zhǎng)、投資大、靈活性差等缺點(diǎn)。完整的FPGA設(shè)計(jì)包含輸入、功能仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真和下載調(diào)試等步驟。文章采用Verilog HDL編寫代碼、Xilinx公司的ISE 14.2平臺(tái)輸入代碼,自帶的仿真器ISim進(jìn)行仿真。
3 結(jié)束語(yǔ)
分析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.
作者簡(jiǎn)介:王艷紅(1988-),女,貴州大學(xué)電子信息學(xué)院碩士研究生,主要研究方向:電路系統(tǒng)設(shè)計(jì)自動(dòng)化。