繆昌照++徐俊武
摘 要:AES(高級加密標準)具有簡潔和高效等優(yōu)點,是當前公認的對稱加密算法數(shù)據(jù)加密標準。在分析現(xiàn)有數(shù)據(jù)加密算法的基礎上,提出一種將AES算法和ECC(橢圓加密算法)相結合的混合加密算法,以解決密碼體制中速度和安全性不能兼顧的問題。使用AES和ECC加密算法對網(wǎng)絡信息進行認證和加密。實驗結果表明,該混合算法成本和功耗低,性能良好、穩(wěn)定。
關鍵詞關鍵詞:信息安全密碼體制;信息加密;AES算法;橢圓加密算法;混合數(shù)據(jù)加密算法
DOIDOI:10.11907/rjdk.162431
中圖分類號:TP312
文獻標識碼:A 文章編號文章編號:16727800(2016)011006302
0 引言
隨著網(wǎng)絡及通信技術的飛速發(fā)展,網(wǎng)絡敏感信息經(jīng)常通過公共通信設備或計算機網(wǎng)絡進行交換傳輸,越來越多的信息需要嚴格加密[1]。網(wǎng)絡攻擊的手段很多,如攻擊方偷取網(wǎng)絡信息(用戶口令、數(shù)據(jù)庫信息等)或者偽造用戶身份標識、否認自己的簽名等都會對互聯(lián)網(wǎng)安全構成重大威脅。
1 基于AES與ECC的混合密碼體制
對稱加密具有運算開銷少、速度快、方便實現(xiàn)等特點,但密鑰容易泄露。此外,密鑰管理分發(fā)較困難,如果網(wǎng)上有x個用戶要相互傳輸加密數(shù)據(jù),則需要x(x-1)/2個密鑰[2]。
1.1 AES的設計策略
大多數(shù)AES設計通常用簡單的循環(huán)實現(xiàn),它是一種對稱密鑰迭代分組密碼算法,分組和密鑰的長度都可以變化,可以單獨指定為128、192比特,然后將明文的數(shù)據(jù)包看成是狀態(tài)矩陣(二維矩陣)。如圖1所示,該AES密鑰長度為128比特,它將明文分組映射為4行4列的矩陣,然后進行迭代(每次迭代稱為一輪)將明文打亂并擴散,從而實現(xiàn)加密[3]。過程如下:
初始輪:進行密鑰加變換。
AES中部分變換過程如下:
字節(jié)替換:先把每個字節(jié)(8byte)表示成一個系數(shù)在{0,1}上的多項式,然后在有限域(GF域,大小為28)中選出相對應的多項式m(x)=x8+x4+x3+x+1,該多項式稱為乘法逆[4],最后使用式(1)仿射變換。
1.2 ECC算法描述
定義1韋爾斯特拉斯(Weierstrass)方程:
由該方程確立平面曲線。假設F為域,ai∈F(i=1, 2,…,60),F(xiàn)域上橢圓曲線E上的點滿足式(3)。F域可能為有理數(shù)域或者復數(shù)域,也有可能為理數(shù)城或有限域GF(p)。此外,E曲線上還要加上一個點O,該點為無窮遠點[5],這些點集和運算則共同構成了一個域,它們是橢圓曲線加密算法的基礎。在該域中可以進行基本運算,如模加(減)、模乘和求逆等。運算并不復雜,但是運算過程中有限域的階很大,所以計算非常耗時。
2 基于AES與ECC的混合密碼體制實現(xiàn)流程
對稱加密由于只有一個密鑰用于加密和解密,耗時少。因此,AES方法用于小額支付等系統(tǒng)效率更高。非對稱加密加密算法具有密鑰分發(fā)與管理簡單等特點,所以常用于小數(shù)據(jù)傳輸,如傳輸密鑰、數(shù)字簽名等。ECC算法相對于其它非對稱加密算法速度和安全性更高[6]。結合二者特點,首先對數(shù)據(jù)用AES算法進行加密,用AES密鑰加解密,然后用ECC加密算法的公鑰對AES算法的密鑰進行管理。例如在數(shù)字簽名認證時,用ECC加密算法的公鑰作為輸入密鑰,能夠迅速完成簽名和認證。這樣不僅實現(xiàn)了數(shù)據(jù)的安全傳輸,同時也保證數(shù)據(jù)完整性,傳輸速度較快。
混合加密過程中,大多迭代密碼的第一輪、中間輪和最后輪分析方法均不同,所以AES算法作了特殊處理,第一輪前加了前期變換,最后一輪則去掉了Mixcolumn函數(shù),理論上它可以抵抗差分和線性密碼攻擊。MixColumn是列變換中最為復雜的一個,涉及到有限域GF的乘法和加法,所以在實現(xiàn)中可以看作位移和加法的結合變換,一般用xtime函數(shù)來實現(xiàn)。在ECC算法中,曲線選取直接關系到系統(tǒng)安全性,由于自定義橢圓函數(shù)不易驗證參數(shù)對系統(tǒng)安全的影響,所以本文采用NIST(美國國家標準與技術研究院)定義的橢圓曲線。數(shù)字簽名加密實現(xiàn)流程如圖2所示。
接收方A:①AES算法對消息m進行加密,密鑰為KA,得到密文c;②用ECC對KA進行加密得到AES密鑰塊;③ECC對消息m進行簽名得到簽名塊;④將密文c, AES密鑰塊、簽名塊一同傳送給接受方B。
接收方B:①ECC解密AES密鑰塊得到KA;②KA對密文c進行解密得到明文消息m,認證簽名。
3 數(shù)據(jù)加密與解密實現(xiàn)
數(shù)據(jù)加密與解密系統(tǒng)由以下4個部分組成:
(1)密鑰生成模塊。系統(tǒng)調用ECC算法產(chǎn)生私鑰和公鑰,私鑰和公鑰一一對應。
(2)文件加(解)密模塊。系統(tǒng)調用AES算法,對文件夾進行加密或解密處理。圖3為文件加密后的打開界面。
(3)密鑰加密模塊。對密鑰進行加密,輸入發(fā)送方的AES密鑰并選擇接收方,從而獲取公鑰,然后調用ECC加密算法對密鑰進行加密,從而產(chǎn)生密文并顯示在文本框中。
(4) 密鑰解密模塊。用ECC加密算法對AES密鑰進行加密,防止AES密鑰被非法使用。
4 結語
對稱加密算法速度快,適合大塊數(shù)據(jù)加密處理,但密鑰分配和管理較困難;而非對稱加密算法不同,其密鑰分發(fā)與管理簡單,但速度慢,一般用于少量數(shù)據(jù)加密。本文用AES算法對大塊數(shù)據(jù)加密,用ECC算法管理保護AES密鑰,提出結合兩類加密算法優(yōu)點的混合加密算法,能有效兼顧密碼體制中的速度和安全性。
參考文獻:
[1] 庹朝永,郭穩(wěn)濤. 基于RFID的高速公路不停車收費系統(tǒng)的研究與設計[J].物聯(lián)網(wǎng)技術,2011,01:8285.
[2] 張學軍. RFID系統(tǒng)防碰撞與安全技術研究[D].南京:南京郵電大學,2012.
[3] 王??? 不停車收費系統(tǒng)網(wǎng)絡信息加密技術的研究與實現(xiàn)[D].鄭州:鄭州大學,2006.
[4] 秦志光. 密碼算法的現(xiàn)狀和發(fā)展研究[J]. 計算機應用,2004(2):14.
[5] 袁巍. AES算法的設計原則與其密鑰擴展算法的改進[D].長春:吉林大學,2010.
[6] 張龍華. 郵件加密算法PGP的應用研究[D].長春:遼寧工程技術大學,2008.
[7] 唐四云. RSA和橢圓曲線密碼算法的研究[D].長沙:湖南大學,2006.
(責任編輯:陳福時)