陳小明
【摘 要】 隨著智能手機,平板的大力推廣,對無線網(wǎng)絡的應用也越來越廣泛,無線網(wǎng)絡安全中的加密算法也變得愈發(fā)重要,本文從AES算法的加密原理出發(fā),闡述了該算法在無線網(wǎng)絡安全中的應用、研究以及從子密鑰生成算法的角度,優(yōu)化AES算法加密解密的過程,從而提升了AES加密算法的性能。
【關鍵詞】 AES 加密算法 無線網(wǎng)絡
【Abstract】 With the intelligent mobile phone,flat vigorously promotion,for the application of wireless network is becoming more and more widely,the wireless network security of encryption algorithm is also becoming increasingly important,this article from the AES algorithm encryption principle,this paper discusses the algorithm in wireless network security and the application research and key generation algorithm from the point of view of the son,optimizing the AES algorithm encryption decryption process,so as to enhance the performance of the AES encryption algorithm.
【Key words】 AES encryption algorithm wireless network
隨著智能手機的普及以及無線網(wǎng)絡的不斷發(fā)展,無線網(wǎng)絡使用越來越廣泛,信息安全正在變的越來越重要,無線網(wǎng)絡的安全問題正在不斷受到廣泛的關注,而加密技術在信息安全、網(wǎng)絡傳輸中屬于最基礎的技術,而密碼算法則自然而然變的更加重要。AES(The Advanced Encryption Standard)是美國國家標準與技術研究所用于加密電子數(shù)據(jù)的規(guī)范。它是目前所公認的加密金融、電信和政府數(shù)字信息等各個領域的方法。AES加密算法是標準對稱加密算法,所以該算法使用的是相同的密鑰,去加密和解密數(shù)據(jù)。通過分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。其中加密時使用的是迭代加密的方法,即使用循環(huán)的方法,在此循環(huán)中,重復置換和替換原始輸入數(shù)據(jù)[1]。AES加密算法是DES加密算法的改進和升級,密鑰長度支持128位、192位以及256位共三種,使用對稱分組密碼體制,故本算法非常方便用各種硬件及軟件實現(xiàn)。
1 AES算法的工作原理
1.1 AES算法描述
AES是以輪為基礎的對稱加密算法,是一個密鑰迭代型分組密碼,它包含了輪變換對狀態(tài)的重復作用,密鑰長度為128bits,192bits,256bits。對應的加密輪數(shù)為10,12,14,用Nr表示輪數(shù)[4]。明文經(jīng)過AddRoundKey以及Nr輪組合函數(shù)變換,生成密文。其中Round1,Round2到Round(Nr-1)都是由字節(jié)代替變換、行位移變換、列混合變換、密鑰加法變換4種函數(shù)組成。RoundNr由字節(jié)代替變換、行位移變換、密鑰加法變換3種函數(shù)組成。
1.2 加密變換函數(shù)解析
(1)字節(jié)替換(SubBytes):是一種非線性的字節(jié)置換變換。將S-盒SRD構造為函數(shù)g和一個可逆仿射變換f的序列。首先對字節(jié)求有限域GF(28)上的乘法逆,用函數(shù)表示為g(b)。然后對g(b)進行可逆仿射變換f,用函數(shù)表示為。仿射變換是一個矩陣乘法和加法的混合,表示如下:
(1)
其中:表示異或;Ci=。
(2)行位移(ShiftRows):是加密算法中的線性運算。它將狀態(tài)第0行移動C0字節(jié)數(shù),第1行移動C1字節(jié)數(shù),第2行移動C2字節(jié)數(shù),第3行移動C3字節(jié)數(shù)。
(3)列混合(MixColumns):采用GF(28)下的多項式與固定多項式相乘,使得到的結(jié)果取模。
(4)密鑰加法(AddRoundKey):在這個變換中,狀態(tài)的調(diào)整通過與輪密鑰進行逐位異或而得到。輪密鑰的長度和分組長度相等。
第i輪的上述四種變換可以表示為如下的數(shù)學表達式:
(2)
其中:a是輪變換開始輸入;j是狀態(tài)矩陣的列數(shù);k是第i輪的密鑰;移位變換偏移量C0、C1、C2、C3分別為0,1,2,3;表示異或操作。
2 AES算法在無線網(wǎng)絡中的應用
2.1 無線網(wǎng)絡協(xié)議
隨著人們對無線網(wǎng)絡安全性的深入研究,終于在2006年3月13日,國際標準組織(ISO/IEC)批準IEEE802.11i為更安全無線協(xié)議的基礎。802.11i在數(shù)據(jù)加密方面定義了TKIP、CCMP和WRAP 三種加密機制。CCMP是基于AES加密算法和CCM認證機制的加密機制,可以大大提高無線網(wǎng)絡的安全程度。WPA(Wi-Fi Protected Access)保護無線電腦網(wǎng)絡安全系統(tǒng)是一種基于標準的可互操作的WLAN安全性增強解決方案,可大大增強現(xiàn)有以及未來無線局域網(wǎng)系統(tǒng)的數(shù)據(jù)保護和訪問控制水平。WPA源于正在制定中的IEEE 802.11i標準并將與之保持前向兼容。如果我們合理安排,WPA可以使無線網(wǎng)絡用戶的數(shù)據(jù)得到保護,并且只有被授權的一些網(wǎng)絡用戶才可以訪問該無線網(wǎng)絡。由于WEP業(yè)已證明的不安全性,在802.11i協(xié)議完善前,采用WPA為用戶提供一個臨時性的解決方案。該標準的數(shù)據(jù)加密采用TKIP協(xié)議(Temporary Key Integrity Protocol),認證有兩種模式可供選擇,一種是使用802.1x協(xié)議進行認證;一種是稱為預先共享密鑰PSK(Pre-Shared Key)模式。它是IEEE802.11i的一個子集,核心是IEEE802.1x和TKIP,可用以下公式表示幾者之間的關系:WPA=802.1x+EPA+TKIP+MIC其中MIC(信息完整性檢查碼)是CCMP(Counter mode/CBC-MAC Protocol)加密技術中的一個重要組成部分:CCMP首先用CBC-MAC數(shù)據(jù)源認證模式對消息中的明文頭、明文頭長度和負載計算出一個MIC,然后使用計數(shù)模式對負載(Payload)和MIC進行加密,產(chǎn)生128比特的密匙,其中計數(shù)模式的核心算法就是AES(高級加密標準)。endprint
2.2 無線健壯安全認證協(xié)議中的AES算法
無線健壯安全認證協(xié)議(WRAP),是基于128位的AES-OCB模式的加密算法[1]。AES算法所采用的操作模式OCB(Offset Codebook)是使用AES算法進行塊加密,該方法首先將要加密的明文分成x個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度是128bit,將這x個數(shù)據(jù)塊使用AES加密運算,這時可以生成x個加密數(shù)據(jù)塊, 拼接起這x個加密數(shù)據(jù)塊,與MIC、重放計數(shù)器(Replay Counter)三者一起作為加密數(shù)據(jù)負載,從而完成對明文數(shù)據(jù)的加密過程。在WRAP中,AES的主要是在WRAP的數(shù)據(jù)封裝過程的數(shù)據(jù)處理的各個階段中,其中產(chǎn)生密鑰的過程是先通過802.1X協(xié)議建立鏈接,從而構建臨時密鑰,媒體訪問控制(MAC)是通過連接請求應答以及臨時密鑰這三者一起通過密鑰產(chǎn)生算法生成加密密鑰[3]。此后媒體訪問控使用WRAP數(shù)據(jù)封裝算法,利用加密密鑰對所有即將發(fā)送的單MAC服務數(shù)據(jù)單元(MSDU,MAC Service Data Unit)進行保護,而在數(shù)據(jù)加密之前,傳輸端根據(jù)所要發(fā)送的MSDU來選擇合適的封裝方式。再之后傳輸端對MSDU分組個數(shù)(其中AES分組長度為128bit)進行檢驗,如此即可選擇適合的重放計數(shù)器[4]。之后設備使用WRAP臨時加密密鑰和Nonce對明文MSDU數(shù)據(jù)進行加密[5]。
3 AES算法密鑰擴展及優(yōu)化改進
3.1 AES算法優(yōu)化方法
從以上AES算法的加密和解密工作原理中,我們可以發(fā)現(xiàn),在這些過程中存在著非常多的移位,而這些操作指令都非常耗時,并且也無法和其余指令結(jié)合組成流水線,這種情況非常嚴重地影響了算法的執(zhí)行效率。再者,輪加密采用循環(huán)變換的方法,循環(huán)變換有一定機率會造成指令流水線的阻斷和指令預取的作廢[4]。
3.2 輪函數(shù)的優(yōu)化
在AES算法的實現(xiàn)過程中中,輪函數(shù)有4種變換方式,我們可以通過改進和優(yōu)化每個變換從而提高加密速度。如在實現(xiàn)ByteSub變換、MixColumn 02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。如在實現(xiàn)ByteSub變換、MixColumn02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。這樣可以部分提高算法性能。如果在AES輪函數(shù)的操作中,將這4個操作統(tǒng)一采用一次查表的方法實現(xiàn),如此即可大大提高算法的速度。首先設X是密鑰數(shù)組,用xi,j表示X中第i行第j列的元素,xj表示X的j列 。
3.3 優(yōu)化字節(jié)與字之間的相互轉(zhuǎn)換
在AES算法中,密鑰擴展以及加密和解密時主要是以字為單位進行處理的。所以通過優(yōu)化這一部分可以得到性能上的提高。
字節(jié)到字的轉(zhuǎn)換代碼:
uint32 get_word(pt)
//pt 指向待轉(zhuǎn)換字節(jié)的最高位字節(jié)
{ m=((uint32)(pt)[0]<<24)
((uint32)(pt)[1]<<16)
((uint32)(pt)[2]<<8)
((uint32)(pt)[3])
return m;
}
改進后的的字節(jié)轉(zhuǎn)換代碼為:
void get_word(uint8*b,uint32*m)
//b指向四個字節(jié)的最低位
{ *m=*((uint32*)b)//m指向轉(zhuǎn)換后的字
}
同理,改進后的字到字節(jié)的轉(zhuǎn)換代碼:
void put_word(uint32*m,uint8*b)
//將1個字轉(zhuǎn)換成4個字節(jié)
{ uint8*b=(uint8*)(m);
//b指向轉(zhuǎn)換后的字節(jié)的最低位字節(jié)
*(b+1)=*(p+1);
*(b+2)=*(p+2);
*(b+3)=*(p+3);
}
3.4 AES算法解密密鑰生成
字節(jié)移位和S盒變換實現(xiàn)了加密密鑰的優(yōu)化和改變,與此相對,解密密鑰亦可用同等方法進行研究與改進。設a0,a1,a2,a3為一個字的4個字節(jié),b0,b1,b2,b3為a0,a1,a2,a3經(jīng)過InvMixColumn變換的結(jié)果。該變換可表示為InvMixColumn(x)=T-1(S[x])綜合上述式子可得如下結(jié)論:
InvRoundKey[i]=InvMixColumn(RoundKey[N-i])=T-1(S[RoundKey[N-i]])(i=0,i=N除外)即解密密鑰可以利用加密密鑰、T-1表和S表實現(xiàn)。
4 測試與性能比較
AES算法支128位、192位、256位的密鑰長度,這里使用FIP(Sfederal Information Processing Standards)出版的FIPS-PUB 197所給出的例子來進行測試。在當前測試環(huán)境下,因為每一個分組用AES算法加密的時間是10-6秒數(shù)量級,所以采用重復加密N次的方法來測試加密時間。以下是測試結(jié)果比較。
從以上兩表對比可以看出,本文所做的改進和優(yōu)化在一定程序上實現(xiàn)了對現(xiàn)在AES算法的基本功能,而且速度也提高了1.3522-1.6521倍左右。
5 結(jié)語
文章對深入的分析了AES算法在無線網(wǎng)絡中使用的方法和過程,并且優(yōu)化和改進了算法的性能和效率。對AES算法的改進策略主要包括用一次查表的方法改進AES輪函數(shù);通過指針類型轉(zhuǎn)換來優(yōu)化字節(jié)與字之間的轉(zhuǎn)換以及加密解密函數(shù)中的移位操作,通過查表的方法進一步改進解密密鑰生成函數(shù)。通過測試證明,本例所優(yōu)化改進的AES算法既實現(xiàn)了AES算法的基本功能,又使得加密速度比原來提高了大約1.3522-1.6521倍左右。
AES加密算法作為國際通用的數(shù)據(jù)安全加密標準,有著高效率、高安全性、高性能、方便和優(yōu)雅一系列優(yōu)點,在應用到無線網(wǎng)絡的過程中,為無線網(wǎng)絡的安全直到了很好防護作用。隨著智能手機和平板的不斷發(fā)展,無線網(wǎng)絡普及程度越來越高,AES加密算法在加密領域應用會不斷優(yōu)化,無線網(wǎng)絡的應用會更加安全。
參考文獻:
[1]楊改貞.AES加密算法在無線網(wǎng)絡安全中的應用[J].長沙通信職業(yè)技術學院學報,2006(3):62-64.
[2]王瑩,何大軍.AES加密算法的改進與實現(xiàn)[J].電腦編程技巧與維護,2010(17):84-86.
[3]吳小博.AES加密算法分析與C++編程實現(xiàn)[J].計算機安全,2007(12):45-46.
[4]韓笑峰.AES加密算法在無線網(wǎng)絡安全中的應用[J].科技信息(科學教研),2007(22):339,348.
[5]賈旭.AES算法的安全性分析及其優(yōu)化改進[D].吉林大學,2010.endprint
2.2 無線健壯安全認證協(xié)議中的AES算法
無線健壯安全認證協(xié)議(WRAP),是基于128位的AES-OCB模式的加密算法[1]。AES算法所采用的操作模式OCB(Offset Codebook)是使用AES算法進行塊加密,該方法首先將要加密的明文分成x個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度是128bit,將這x個數(shù)據(jù)塊使用AES加密運算,這時可以生成x個加密數(shù)據(jù)塊, 拼接起這x個加密數(shù)據(jù)塊,與MIC、重放計數(shù)器(Replay Counter)三者一起作為加密數(shù)據(jù)負載,從而完成對明文數(shù)據(jù)的加密過程。在WRAP中,AES的主要是在WRAP的數(shù)據(jù)封裝過程的數(shù)據(jù)處理的各個階段中,其中產(chǎn)生密鑰的過程是先通過802.1X協(xié)議建立鏈接,從而構建臨時密鑰,媒體訪問控制(MAC)是通過連接請求應答以及臨時密鑰這三者一起通過密鑰產(chǎn)生算法生成加密密鑰[3]。此后媒體訪問控使用WRAP數(shù)據(jù)封裝算法,利用加密密鑰對所有即將發(fā)送的單MAC服務數(shù)據(jù)單元(MSDU,MAC Service Data Unit)進行保護,而在數(shù)據(jù)加密之前,傳輸端根據(jù)所要發(fā)送的MSDU來選擇合適的封裝方式。再之后傳輸端對MSDU分組個數(shù)(其中AES分組長度為128bit)進行檢驗,如此即可選擇適合的重放計數(shù)器[4]。之后設備使用WRAP臨時加密密鑰和Nonce對明文MSDU數(shù)據(jù)進行加密[5]。
3 AES算法密鑰擴展及優(yōu)化改進
3.1 AES算法優(yōu)化方法
從以上AES算法的加密和解密工作原理中,我們可以發(fā)現(xiàn),在這些過程中存在著非常多的移位,而這些操作指令都非常耗時,并且也無法和其余指令結(jié)合組成流水線,這種情況非常嚴重地影響了算法的執(zhí)行效率。再者,輪加密采用循環(huán)變換的方法,循環(huán)變換有一定機率會造成指令流水線的阻斷和指令預取的作廢[4]。
3.2 輪函數(shù)的優(yōu)化
在AES算法的實現(xiàn)過程中中,輪函數(shù)有4種變換方式,我們可以通過改進和優(yōu)化每個變換從而提高加密速度。如在實現(xiàn)ByteSub變換、MixColumn 02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。如在實現(xiàn)ByteSub變換、MixColumn02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。這樣可以部分提高算法性能。如果在AES輪函數(shù)的操作中,將這4個操作統(tǒng)一采用一次查表的方法實現(xiàn),如此即可大大提高算法的速度。首先設X是密鑰數(shù)組,用xi,j表示X中第i行第j列的元素,xj表示X的j列 。
3.3 優(yōu)化字節(jié)與字之間的相互轉(zhuǎn)換
在AES算法中,密鑰擴展以及加密和解密時主要是以字為單位進行處理的。所以通過優(yōu)化這一部分可以得到性能上的提高。
字節(jié)到字的轉(zhuǎn)換代碼:
uint32 get_word(pt)
//pt 指向待轉(zhuǎn)換字節(jié)的最高位字節(jié)
{ m=((uint32)(pt)[0]<<24)
((uint32)(pt)[1]<<16)
((uint32)(pt)[2]<<8)
((uint32)(pt)[3])
return m;
}
改進后的的字節(jié)轉(zhuǎn)換代碼為:
void get_word(uint8*b,uint32*m)
//b指向四個字節(jié)的最低位
{ *m=*((uint32*)b)//m指向轉(zhuǎn)換后的字
}
同理,改進后的字到字節(jié)的轉(zhuǎn)換代碼:
void put_word(uint32*m,uint8*b)
//將1個字轉(zhuǎn)換成4個字節(jié)
{ uint8*b=(uint8*)(m);
//b指向轉(zhuǎn)換后的字節(jié)的最低位字節(jié)
*(b+1)=*(p+1);
*(b+2)=*(p+2);
*(b+3)=*(p+3);
}
3.4 AES算法解密密鑰生成
字節(jié)移位和S盒變換實現(xiàn)了加密密鑰的優(yōu)化和改變,與此相對,解密密鑰亦可用同等方法進行研究與改進。設a0,a1,a2,a3為一個字的4個字節(jié),b0,b1,b2,b3為a0,a1,a2,a3經(jīng)過InvMixColumn變換的結(jié)果。該變換可表示為InvMixColumn(x)=T-1(S[x])綜合上述式子可得如下結(jié)論:
InvRoundKey[i]=InvMixColumn(RoundKey[N-i])=T-1(S[RoundKey[N-i]])(i=0,i=N除外)即解密密鑰可以利用加密密鑰、T-1表和S表實現(xiàn)。
4 測試與性能比較
AES算法支128位、192位、256位的密鑰長度,這里使用FIP(Sfederal Information Processing Standards)出版的FIPS-PUB 197所給出的例子來進行測試。在當前測試環(huán)境下,因為每一個分組用AES算法加密的時間是10-6秒數(shù)量級,所以采用重復加密N次的方法來測試加密時間。以下是測試結(jié)果比較。
從以上兩表對比可以看出,本文所做的改進和優(yōu)化在一定程序上實現(xiàn)了對現(xiàn)在AES算法的基本功能,而且速度也提高了1.3522-1.6521倍左右。
5 結(jié)語
文章對深入的分析了AES算法在無線網(wǎng)絡中使用的方法和過程,并且優(yōu)化和改進了算法的性能和效率。對AES算法的改進策略主要包括用一次查表的方法改進AES輪函數(shù);通過指針類型轉(zhuǎn)換來優(yōu)化字節(jié)與字之間的轉(zhuǎn)換以及加密解密函數(shù)中的移位操作,通過查表的方法進一步改進解密密鑰生成函數(shù)。通過測試證明,本例所優(yōu)化改進的AES算法既實現(xiàn)了AES算法的基本功能,又使得加密速度比原來提高了大約1.3522-1.6521倍左右。
AES加密算法作為國際通用的數(shù)據(jù)安全加密標準,有著高效率、高安全性、高性能、方便和優(yōu)雅一系列優(yōu)點,在應用到無線網(wǎng)絡的過程中,為無線網(wǎng)絡的安全直到了很好防護作用。隨著智能手機和平板的不斷發(fā)展,無線網(wǎng)絡普及程度越來越高,AES加密算法在加密領域應用會不斷優(yōu)化,無線網(wǎng)絡的應用會更加安全。
參考文獻:
[1]楊改貞.AES加密算法在無線網(wǎng)絡安全中的應用[J].長沙通信職業(yè)技術學院學報,2006(3):62-64.
[2]王瑩,何大軍.AES加密算法的改進與實現(xiàn)[J].電腦編程技巧與維護,2010(17):84-86.
[3]吳小博.AES加密算法分析與C++編程實現(xiàn)[J].計算機安全,2007(12):45-46.
[4]韓笑峰.AES加密算法在無線網(wǎng)絡安全中的應用[J].科技信息(科學教研),2007(22):339,348.
[5]賈旭.AES算法的安全性分析及其優(yōu)化改進[D].吉林大學,2010.endprint
2.2 無線健壯安全認證協(xié)議中的AES算法
無線健壯安全認證協(xié)議(WRAP),是基于128位的AES-OCB模式的加密算法[1]。AES算法所采用的操作模式OCB(Offset Codebook)是使用AES算法進行塊加密,該方法首先將要加密的明文分成x個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度是128bit,將這x個數(shù)據(jù)塊使用AES加密運算,這時可以生成x個加密數(shù)據(jù)塊, 拼接起這x個加密數(shù)據(jù)塊,與MIC、重放計數(shù)器(Replay Counter)三者一起作為加密數(shù)據(jù)負載,從而完成對明文數(shù)據(jù)的加密過程。在WRAP中,AES的主要是在WRAP的數(shù)據(jù)封裝過程的數(shù)據(jù)處理的各個階段中,其中產(chǎn)生密鑰的過程是先通過802.1X協(xié)議建立鏈接,從而構建臨時密鑰,媒體訪問控制(MAC)是通過連接請求應答以及臨時密鑰這三者一起通過密鑰產(chǎn)生算法生成加密密鑰[3]。此后媒體訪問控使用WRAP數(shù)據(jù)封裝算法,利用加密密鑰對所有即將發(fā)送的單MAC服務數(shù)據(jù)單元(MSDU,MAC Service Data Unit)進行保護,而在數(shù)據(jù)加密之前,傳輸端根據(jù)所要發(fā)送的MSDU來選擇合適的封裝方式。再之后傳輸端對MSDU分組個數(shù)(其中AES分組長度為128bit)進行檢驗,如此即可選擇適合的重放計數(shù)器[4]。之后設備使用WRAP臨時加密密鑰和Nonce對明文MSDU數(shù)據(jù)進行加密[5]。
3 AES算法密鑰擴展及優(yōu)化改進
3.1 AES算法優(yōu)化方法
從以上AES算法的加密和解密工作原理中,我們可以發(fā)現(xiàn),在這些過程中存在著非常多的移位,而這些操作指令都非常耗時,并且也無法和其余指令結(jié)合組成流水線,這種情況非常嚴重地影響了算法的執(zhí)行效率。再者,輪加密采用循環(huán)變換的方法,循環(huán)變換有一定機率會造成指令流水線的阻斷和指令預取的作廢[4]。
3.2 輪函數(shù)的優(yōu)化
在AES算法的實現(xiàn)過程中中,輪函數(shù)有4種變換方式,我們可以通過改進和優(yōu)化每個變換從而提高加密速度。如在實現(xiàn)ByteSub變換、MixColumn 02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。如在實現(xiàn)ByteSub變換、MixColumn02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。這樣可以部分提高算法性能。如果在AES輪函數(shù)的操作中,將這4個操作統(tǒng)一采用一次查表的方法實現(xiàn),如此即可大大提高算法的速度。首先設X是密鑰數(shù)組,用xi,j表示X中第i行第j列的元素,xj表示X的j列 。
3.3 優(yōu)化字節(jié)與字之間的相互轉(zhuǎn)換
在AES算法中,密鑰擴展以及加密和解密時主要是以字為單位進行處理的。所以通過優(yōu)化這一部分可以得到性能上的提高。
字節(jié)到字的轉(zhuǎn)換代碼:
uint32 get_word(pt)
//pt 指向待轉(zhuǎn)換字節(jié)的最高位字節(jié)
{ m=((uint32)(pt)[0]<<24)
((uint32)(pt)[1]<<16)
((uint32)(pt)[2]<<8)
((uint32)(pt)[3])
return m;
}
改進后的的字節(jié)轉(zhuǎn)換代碼為:
void get_word(uint8*b,uint32*m)
//b指向四個字節(jié)的最低位
{ *m=*((uint32*)b)//m指向轉(zhuǎn)換后的字
}
同理,改進后的字到字節(jié)的轉(zhuǎn)換代碼:
void put_word(uint32*m,uint8*b)
//將1個字轉(zhuǎn)換成4個字節(jié)
{ uint8*b=(uint8*)(m);
//b指向轉(zhuǎn)換后的字節(jié)的最低位字節(jié)
*(b+1)=*(p+1);
*(b+2)=*(p+2);
*(b+3)=*(p+3);
}
3.4 AES算法解密密鑰生成
字節(jié)移位和S盒變換實現(xiàn)了加密密鑰的優(yōu)化和改變,與此相對,解密密鑰亦可用同等方法進行研究與改進。設a0,a1,a2,a3為一個字的4個字節(jié),b0,b1,b2,b3為a0,a1,a2,a3經(jīng)過InvMixColumn變換的結(jié)果。該變換可表示為InvMixColumn(x)=T-1(S[x])綜合上述式子可得如下結(jié)論:
InvRoundKey[i]=InvMixColumn(RoundKey[N-i])=T-1(S[RoundKey[N-i]])(i=0,i=N除外)即解密密鑰可以利用加密密鑰、T-1表和S表實現(xiàn)。
4 測試與性能比較
AES算法支128位、192位、256位的密鑰長度,這里使用FIP(Sfederal Information Processing Standards)出版的FIPS-PUB 197所給出的例子來進行測試。在當前測試環(huán)境下,因為每一個分組用AES算法加密的時間是10-6秒數(shù)量級,所以采用重復加密N次的方法來測試加密時間。以下是測試結(jié)果比較。
從以上兩表對比可以看出,本文所做的改進和優(yōu)化在一定程序上實現(xiàn)了對現(xiàn)在AES算法的基本功能,而且速度也提高了1.3522-1.6521倍左右。
5 結(jié)語
文章對深入的分析了AES算法在無線網(wǎng)絡中使用的方法和過程,并且優(yōu)化和改進了算法的性能和效率。對AES算法的改進策略主要包括用一次查表的方法改進AES輪函數(shù);通過指針類型轉(zhuǎn)換來優(yōu)化字節(jié)與字之間的轉(zhuǎn)換以及加密解密函數(shù)中的移位操作,通過查表的方法進一步改進解密密鑰生成函數(shù)。通過測試證明,本例所優(yōu)化改進的AES算法既實現(xiàn)了AES算法的基本功能,又使得加密速度比原來提高了大約1.3522-1.6521倍左右。
AES加密算法作為國際通用的數(shù)據(jù)安全加密標準,有著高效率、高安全性、高性能、方便和優(yōu)雅一系列優(yōu)點,在應用到無線網(wǎng)絡的過程中,為無線網(wǎng)絡的安全直到了很好防護作用。隨著智能手機和平板的不斷發(fā)展,無線網(wǎng)絡普及程度越來越高,AES加密算法在加密領域應用會不斷優(yōu)化,無線網(wǎng)絡的應用會更加安全。
參考文獻:
[1]楊改貞.AES加密算法在無線網(wǎng)絡安全中的應用[J].長沙通信職業(yè)技術學院學報,2006(3):62-64.
[2]王瑩,何大軍.AES加密算法的改進與實現(xiàn)[J].電腦編程技巧與維護,2010(17):84-86.
[3]吳小博.AES加密算法分析與C++編程實現(xiàn)[J].計算機安全,2007(12):45-46.
[4]韓笑峰.AES加密算法在無線網(wǎng)絡安全中的應用[J].科技信息(科學教研),2007(22):339,348.
[5]賈旭.AES算法的安全性分析及其優(yōu)化改進[D].吉林大學,2010.endprint