曾繁婧,劉曉東
(1.武漢郵電科學(xué)研究院 湖北 武漢430027;2.武漢虹旭信息技術(shù)有限責(zé)任公司 湖北 武漢430070)
基于無線局域網(wǎng)的AES加密算法研究
曾繁婧1,2,劉曉東1,2
(1.武漢郵電科學(xué)研究院 湖北 武漢430027;2.武漢虹旭信息技術(shù)有限責(zé)任公司 湖北 武漢430070)
針對(duì)無線局域網(wǎng)中AES加密算法對(duì)明文加密的問題,本文分析了其工作原理和結(jié)構(gòu),基于達(dá)到對(duì)明文有更強(qiáng)的加密能力的目的,提出了對(duì)AES的S盒進(jìn)行優(yōu)化和一種混合加密算法將AES與ECC相結(jié)合,由AES密鑰進(jìn)行明文的加密,用ECC實(shí)現(xiàn)數(shù)字簽名和對(duì)AES密鑰的加密的方案,實(shí)現(xiàn)了信息加密,數(shù)字簽名及認(rèn)證一體化,保障了信息安全。
AES;優(yōu)化;ECC;加密
在信息化高速發(fā)展的時(shí)代,網(wǎng)絡(luò)雖然給人們帶來了諸多便利,但是也帶來了信息泄露的問題[1]。數(shù)據(jù)加密技術(shù)在數(shù)據(jù)安全中起著至關(guān)重要的作用,它保護(hù)敏感信息免受來自外界的惡意攻擊,使數(shù)據(jù)不被篡改和盜取[2]。
文中使用AES對(duì)稱加密算法加密明文數(shù)據(jù),ECC非對(duì)稱加密算法加密密鑰并生成數(shù)字簽名,從而既保障了數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的安全性,又完成了數(shù)字簽名。將這兩種加密算法的混合密碼體制可以有效地提高信息傳輸?shù)陌踩院透咝浴?/p>
AES(Advanced Encryption Standard,高級(jí)數(shù)據(jù)加密標(biāo)準(zhǔn))也稱為Rijndael分組加密算法,是一種對(duì)稱密鑰的分組迭代加密算法[3],分組長(zhǎng)度固定為128 bits,使用的密鑰可以分為128bits,192bits或256bits 3種不同的長(zhǎng)度[4],具有安全性高、易于軟硬件實(shí)現(xiàn)、算法設(shè)計(jì)簡(jiǎn)單的特點(diǎn),能抵抗所已知類型的攻擊[5]。
1.1 AES算法結(jié)構(gòu)
AES結(jié)構(gòu)的一個(gè)顯著特征是它不是Feistel結(jié)構(gòu),AES算法是在每一輪都使用代替和混淆將整個(gè)數(shù)據(jù)分組作為一個(gè)單一的矩陣處理[6]。AES加密算法結(jié)構(gòu)由4個(gè)不同的階段組成,包括一個(gè)置換和3個(gè)代替,詳細(xì)過程如圖1所示。1)字節(jié)代替:用S盒完成分組的字節(jié)到字節(jié)的代替;2)行移位:簡(jiǎn)單的置換;3)列混淆:利用域GF(28)上的算術(shù)特征的一個(gè)代替。4)輪密鑰加:當(dāng)前分組和擴(kuò)展密鑰的一部分進(jìn)行按位異或。
加密輪函數(shù)用偽C代碼表示為:
注釋:1)State代表狀態(tài)矩陣,一個(gè)存儲(chǔ)原始數(shù)據(jù)的數(shù)組;2)RoundKey[]代表經(jīng)過擴(kuò)展運(yùn)算后的密鑰;3)ByteSub()代表置換函數(shù),對(duì)狀態(tài)矩陣 State中的數(shù)據(jù)進(jìn)行置換;4)ShiftRow()代表移位函數(shù),對(duì)狀態(tài)矩陣 State中的數(shù)據(jù)進(jìn)行移位運(yùn)算;5)MixColumn()代表列混合運(yùn)算函數(shù),對(duì)狀態(tài)矩陣State中的數(shù)據(jù)進(jìn)行列混合運(yùn)算;6)AddRoundKey() 代表異或運(yùn)算函數(shù), 對(duì)數(shù)組 State和數(shù)組RoundKey進(jìn)行異或運(yùn)算。
1.2 加密輪變換
1.2.1 字節(jié)代替變換(Substitute Bytes)
字節(jié)代替變換是唯一的非線性變換,字節(jié)替換是作用在狀態(tài)中每個(gè)字節(jié)上的一種非線性字節(jié)轉(zhuǎn)換[7],字節(jié)代替變換的步驟為兩個(gè):1)把每一個(gè)字節(jié)的值用它的乘法逆代替,即有限域GF(28)中的乘法逆。2)在GF(28)中進(jìn)行仿射變換。這兩步主要通過從AES算法給定的S盒中進(jìn)行映射,S盒和逆S盒的運(yùn)算如圖2所示。
圖1 AES加密和解密結(jié)構(gòu)圖
圖2 AES算法S盒y行x列處字節(jié)計(jì)算
1.2.2 行移位變換(ShiftRows)
行移位變換是線性變換,和列混淆運(yùn)算相互影響,在多輪變換后,使密碼信息達(dá)到充分的混亂,提高非線性度[8]。行移位變換是在狀態(tài)的每個(gè)行間進(jìn)行,具體就是將每一行進(jìn)行循環(huán)移位,移動(dòng)位數(shù)以字節(jié)為單位,將最位字節(jié)移到高位,高位字節(jié)移到低位,即循環(huán)右移。逆向行移位變換是將狀態(tài)中的后三行執(zhí)行相反方向的移位操作。
1.2.3 列混淆變換(MixColumns)
列混淆變換是對(duì)狀態(tài) (state)列的一種線性變換,如圖3所示,是從狀態(tài)中取出一列,乘以一個(gè)固定的多項(xiàng)式a(x),然后將所得結(jié)果進(jìn)行取模運(yùn)算,模值為x4+1,a(x)的定義如下:
1.2.4 輪密鑰加變換(AddRoundKey)
在輪密鑰加變換中,128位的狀態(tài)按位與128位的輪密鑰XOR。
圖3 列混淆變換
2.1 關(guān)于S盒的優(yōu)化
S盒作為許多分組密碼的唯一非線性模塊,決定了整個(gè)加密算法的安全性強(qiáng)度[9],所以關(guān)于S盒的優(yōu)化是很必要的。
針對(duì)AES算法S盒的短周期現(xiàn)象,在滿足AES仿射變換的前提下,讓GF(28)空間中的所有元只屬于一個(gè)迭代循環(huán),并使其遍歷所有值或是盡可能多的值[10],則得到優(yōu)化方案如下:
1)m(x)=x8+1不變
2)Su,v(ai,j)=u(x)a-1i,j(x)+v(x)modm(x),其中 u(x)=x7+x6+x4+x3+1,v(x)=x6+x4+x3+1
3)將字節(jié)看作GF(28)上的元素,映射到自己的乘法逆,0字節(jié)映射到自身。
4)將字節(jié)做GF(2)上的仿射變換,如圖4所示。
圖4 仿射變換
5)循環(huán)迭代周期為256,屬于一個(gè)迭代軌跡。當(dāng)u(x)=1+x1+x2+x7,v(x)=x3+x5+x7也可以對(duì)每個(gè)元做迭代,對(duì)多種選擇的仿射變換系數(shù)都可以達(dá)到優(yōu)化的效果。
2.2 列混淆變換的優(yōu)化
由于GF(28)有限域中的每一個(gè)元素都能夠?qū)懗?2的不同冪次的和,矩陣乘法轉(zhuǎn)換為與02的乘法和異或運(yùn)算,所以GF(28)域上再定義一個(gè)運(yùn)算,記為xtime(),其中xtime(a)=a(x)·xmodm(x)=a(x)*02,假設(shè)一列的輸入為a,輸出為b,則可以得到:
2.3 AES與ECC加密算法的混合
2.3.1 ECC加密算法
ECC(Elliptic Curve Crypto-system,橢圓曲線密碼體制)是一種在目前所已知的公鑰密碼體制中具有最高的單比特安全性[11]。并且ECC是基于有限域上橢圓曲線離散對(duì)數(shù)問題的難解性而提出的一種公鑰密碼體制,這也決定了ECC加密算法比其他的公鑰密碼更難破解[12]。
橢圓曲線密碼體制具有公鑰密碼體制的所有優(yōu)點(diǎn),安全性高、不易被攻破、可用于密鑰分配[13]。用戶之間建立公共密鑰無需第一者介入,而且便于密鑰管理,保證了密鑰的安全性和密鑰管理系統(tǒng)的穩(wěn)健性[14]。用于任意兩個(gè)用戶之間的數(shù)字簽名,無需事先簽訂協(xié)議、它對(duì)密鑰的需求量小,簡(jiǎn)化了記錄工作,減少了存儲(chǔ)量,便于第三者裁決糾紛。
2.3.2 ECC加密算法的數(shù)字簽名
ECC算法的數(shù)字簽名也稱為橢圓曲線數(shù)字簽名算法 (ECDSA)[15],ECDSA的處理過程主要包括以下4個(gè)基本元素:
1)參與數(shù)字簽名的所有通信方都使用相同的全局域參數(shù),用于定義橢圓曲線以及曲線上的基點(diǎn)。
2)簽名者首先需要生成一對(duì)公鑰和私鑰。簽名者選擇一個(gè)隨機(jī)數(shù)或者偽隨機(jī)數(shù)作為簽名者的私鑰。使用隨機(jī)數(shù)和基點(diǎn),簽名者計(jì)算出橢圓曲線上的另一個(gè)解點(diǎn),作為簽名者的公鑰。
3)對(duì)于代簽名的消息計(jì)算其Hash值。使用私鑰、全局域參數(shù)、Hash值來產(chǎn)生簽名。簽名包括兩個(gè)整數(shù),r和s。
4)如果要對(duì)簽名進(jìn)行驗(yàn)證,驗(yàn)證者使用簽名者的公鑰、全局域參數(shù)、整數(shù)s作為輸入,并將計(jì)算得到的輸出值v與收到的r進(jìn)行比較。如果v=r,則簽名通過驗(yàn)證。
2.3.3 AES與ECC混合加密算法的流程
1)關(guān)于全局域參數(shù)的定義;
s是一個(gè)素?cái)?shù);
a,b是Zp上的整數(shù),由y2=x3+ax+b來定義橢圓曲線;
D是滿足等式的點(diǎn),D=(xd,yd);
k是D點(diǎn)的階,是滿足kD=0這個(gè)等式的最小正整數(shù)。
2)關(guān)于密鑰的產(chǎn)生的定義:
①選一個(gè)整數(shù)i,使i滿足[1,k-1];
②根據(jù)P=iD,得到曲線Ec(a,b)上的解點(diǎn);
③則得到發(fā)送方的公鑰是P,私鑰是i。
3)關(guān)于數(shù)字簽名的產(chǎn)生和認(rèn)證,假設(shè)發(fā)送方對(duì)明文M產(chǎn)生了320字節(jié)的數(shù)字簽名,流程為:
①隨機(jī)在[1,k-1]內(nèi)選擇一個(gè)整數(shù)j;
②根據(jù)C=(x,y)=jD公式得到曲線的解點(diǎn),再計(jì)算r=xmodk的值,其中如果r=0則回到①;
③根據(jù)t=j-1mod k公式計(jì)算出t的值;
④根據(jù)e=H(m)公式計(jì)算出e的值,其中H為 Hash函數(shù)SHA-1,e為所產(chǎn)生的160位Hash值;
⑤根據(jù)s=j-1(e+ir)modk公式計(jì)算出s的值,若s=0則回到①;
⑥得到明文M的數(shù)字簽名塊(s,r)。
接收方驗(yàn)證的流程為:
①查看s和r是不是[1,k-1]上的整數(shù);
②通過SHA-1函數(shù)以及公式e=H(m),得到e的值
③根據(jù)w=s-1mod k公式計(jì)算出w的值;
④根據(jù)公式u1=ew和u2=rw計(jì)算出u1,u2的值;
⑤根據(jù)公式X=u1D+u2P計(jì)算出解點(diǎn)X(x1,y1);
⑥如果X=0則拒絕簽名,否則根據(jù)公式 v= x1mod k計(jì)算出v的值;
⑦如果v=r則接收簽名,否則拒絕。
4)混合算法流程如圖5所示
圖5 AES與ECC混合加密算法的流程圖
文中對(duì)AES算法進(jìn)行了分析,由于S盒作為AES加密算法中唯一的非線性元件,其安全性能的好壞直接決定著整個(gè)分組密碼性能的好壞。指出其S盒循環(huán)迭代輸出周期過短的特性,并且提出一種切實(shí)可行的方案,使得迭代周期擴(kuò)大到256整個(gè)空間,從而提高了算法的安全性。并提出AES和ECC加密算法的混合方案,由對(duì)稱加密算法和非對(duì)稱加密算法相結(jié)合互補(bǔ),更加提高了算法的安全性能。在當(dāng)今高速發(fā)展的信息社會(huì)里,混合密碼體制的研究和應(yīng)用是非常必要的。
[1]馮登國(guó).國(guó)內(nèi)外密碼學(xué)研究現(xiàn)狀及發(fā)展趨勢(shì)[J].通信學(xué)報(bào),2013,23(5):18-26.
[2]ChristofPaar,JanPelzl.深入淺出密碼學(xué):常用加密技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2014.
[3]曹曉麗,王愛強(qiáng).AES算法研究[J].洛陽師范學(xué)院學(xué)報(bào),2013,6(2):56-57.
[4]Liu Y,GuD,LiuZ,et al.New Improved Impossible Differential Attack on Reduced-Round AES-128 [C]//ComputerScience and Convergence-CSA 2011&WCC 2011 Proceedings.2015:453-461.
[5]F.Armknecht,Slucks.Linearity of the AES keyschedule[M].Berlin:Springer,2015.
[6]韋寶典.高級(jí)加密標(biāo)準(zhǔn)AES中若干問題的研究[D].西安:西安電子科技大學(xué),2013.
[7]許金玲.基于RSA與AES混合加密系統(tǒng)的算法研究[D].秦皇島:燕山大學(xué),2014.
[8]Daemen J,Rijmen V.The design of Rijndael:AES-the advanced encryption standard[M].Springer,2012.
[9]張麗紅,凌朝東.基于AES算法中S盒的分析研究與改進(jìn)[J].信號(hào)處理,2013,38(2):339-344.
[10]王衍波.AES的結(jié)構(gòu)及其S-box分析[J].解放軍理工大學(xué)學(xué)報(bào),2013,3(3):13-17.
[11]韓明華,韓曉東.基于橢圓曲線加密的系統(tǒng)安全性分析[J].浙江萬里學(xué)院學(xué)報(bào),2013,8(6):21-24.
[12]白永志.基于橢圓曲線密碼系統(tǒng)的數(shù)字簽名研究與應(yīng)用[D].合肥工業(yè)大學(xué),2013.
[13]張雁,林英,郝林.橢圓曲線公鑰密碼體制的研究熱點(diǎn)綜述[J].計(jì)算機(jī)工程,2014,30(3):127-128.
[14]李殿偉,王正義,趙俊閣.橢圓曲線密碼體制安全性分析[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,22(4):227-230.
[15]AmolDabholkar,KinChoongYow.Eficient implementation of elliptic curvecryptography(ECC)for personal digital assistants(PDAs)[J].Wireless Personal Communications,2014,29(3-4):233-246.
The research of AES algorithm based on the wireless LAN encryption
ZENG Fan-jing1,2,LIU Xiao-dong1,2
(1.Wuhan Research Institute of Posts and Telecommunications,Wuhan 430027,China;2.Wuhan Hongxu Information Technology Co.,LTD.,Wuhan 430070,China)
For wireless LAN AES encryption algorithm to encrypt the plaintext,this paper analyzes the working principle and structure,based on the plaintext to achieve stronger encryption capabilities purposes,presented to the AES S-boxes and a hybrid optimization algorithm for encryption the combination of AES and ECC,conducted by AES key plaintext encryption,digital signature using ECC and AES key encryption scheme,and information encryption,digital signatures and authentication integration,information security safeguards.
AES;optimization;ECC;encryption
TN620.5010
:D
:1674-6236(2017)05-0119-04
2016-03-17稿件編號(hào):201603228
曾繁婧(1992—),女,湖北襄陽人,碩士。研究方向:信號(hào)與信息處理。