• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    無線網(wǎng)絡(luò)安全中AES加密算法的研究

    2014-07-14 02:15:36陳小明
    中國科技縱橫 2014年6期
    關(guān)鍵詞:加密算法無線網(wǎng)絡(luò)

    陳小明

    【摘 要】 隨著智能手機(jī),平板的大力推廣,對無線網(wǎng)絡(luò)的應(yīng)用也越來越廣泛,無線網(wǎng)絡(luò)安全中的加密算法也變得愈發(fā)重要,本文從AES算法的加密原理出發(fā),闡述了該算法在無線網(wǎng)絡(luò)安全中的應(yīng)用、研究以及從子密鑰生成算法的角度,優(yōu)化AES算法加密解密的過程,從而提升了AES加密算法的性能。

    【關(guān)鍵詞】 AES 加密算法 無線網(wǎng)絡(luò)

    【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

    隨著智能手機(jī)的普及以及無線網(wǎng)絡(luò)的不斷發(fā)展,無線網(wǎng)絡(luò)使用越來越廣泛,信息安全正在變的越來越重要,無線網(wǎng)絡(luò)的安全問題正在不斷受到廣泛的關(guān)注,而加密技術(shù)在信息安全、網(wǎng)絡(luò)傳輸中屬于最基礎(chǔ)的技術(shù),而密碼算法則自然而然變的更加重要。AES(The Advanced Encryption Standard)是美國國家標(biāo)準(zhǔn)與技術(shù)研究所用于加密電子數(shù)據(jù)的規(guī)范。它是目前所公認(rèn)的加密金融、電信和政府?dāng)?shù)字信息等各個領(lǐng)域的方法。AES加密算法是標(biāo)準(zhǔn)對稱加密算法,所以該算法使用的是相同的密鑰,去加密和解密數(shù)據(jù)。通過分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。其中加密時使用的是迭代加密的方法,即使用循環(huán)的方法,在此循環(huán)中,重復(fù)置換和替換原始輸入數(shù)據(jù)[1]。AES加密算法是DES加密算法的改進(jìn)和升級,密鑰長度支持128位、192位以及256位共三種,使用對稱分組密碼體制,故本算法非常方便用各種硬件及軟件實(shí)現(xiàn)。

    1 AES算法的工作原理

    1.1 AES算法描述

    AES是以輪為基礎(chǔ)的對稱加密算法,是一個密鑰迭代型分組密碼,它包含了輪變換對狀態(tài)的重復(fù)作用,密鑰長度為128bits,192bits,256bits。對應(yīng)的加密輪數(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構(gòu)造為函數(shù)g和一個可逆仿射變換f的序列。首先對字節(jié)求有限域GF(28)上的乘法逆,用函數(shù)表示為g(b)。然后對g(b)進(jìn)行可逆仿射變換f,用函數(shù)表示為。仿射變換是一個矩陣乘法和加法的混合,表示如下:

    (1)

    其中:表示異或;Ci=。

    (2)行位移(ShiftRows):是加密算法中的線性運(yùn)算。它將狀態(tài)第0行移動C0字節(jié)數(shù),第1行移動C1字節(jié)數(shù),第2行移動C2字節(jié)數(shù),第3行移動C3字節(jié)數(shù)。

    (3)列混合(MixColumns):采用GF(28)下的多項(xiàng)式與固定多項(xiàng)式相乘,使得到的結(jié)果取模。

    (4)密鑰加法(AddRoundKey):在這個變換中,狀態(tài)的調(diào)整通過與輪密鑰進(jìn)行逐位異或而得到。輪密鑰的長度和分組長度相等。

    第i輪的上述四種變換可以表示為如下的數(shù)學(xué)表達(dá)式:

    (2)

    其中:a是輪變換開始輸入;j是狀態(tài)矩陣的列數(shù);k是第i輪的密鑰;移位變換偏移量C0、C1、C2、C3分別為0,1,2,3;表示異或操作。

    2 AES算法在無線網(wǎng)絡(luò)中的應(yīng)用

    2.1 無線網(wǎng)絡(luò)協(xié)議

    隨著人們對無線網(wǎng)絡(luò)安全性的深入研究,終于在2006年3月13日,國際標(biāo)準(zhǔn)組織(ISO/IEC)批準(zhǔn)IEEE802.11i為更安全無線協(xié)議的基礎(chǔ)。802.11i在數(shù)據(jù)加密方面定義了TKIP、CCMP和WRAP 三種加密機(jī)制。CCMP是基于AES加密算法和CCM認(rèn)證機(jī)制的加密機(jī)制,可以大大提高無線網(wǎng)絡(luò)的安全程度。WPA(Wi-Fi Protected Access)保護(hù)無線電腦網(wǎng)絡(luò)安全系統(tǒng)是一種基于標(biāo)準(zhǔn)的可互操作的WLAN安全性增強(qiáng)解決方案,可大大增強(qiáng)現(xiàn)有以及未來無線局域網(wǎng)系統(tǒng)的數(shù)據(jù)保護(hù)和訪問控制水平。WPA源于正在制定中的IEEE 802.11i標(biāo)準(zhǔn)并將與之保持前向兼容。如果我們合理安排,WPA可以使無線網(wǎng)絡(luò)用戶的數(shù)據(jù)得到保護(hù),并且只有被授權(quán)的一些網(wǎng)絡(luò)用戶才可以訪問該無線網(wǎng)絡(luò)。由于WEP業(yè)已證明的不安全性,在802.11i協(xié)議完善前,采用WPA為用戶提供一個臨時性的解決方案。該標(biāo)準(zhǔn)的數(shù)據(jù)加密采用TKIP協(xié)議(Temporary Key Integrity Protocol),認(rèn)證有兩種模式可供選擇,一種是使用802.1x協(xié)議進(jìn)行認(rèn)證;一種是稱為預(yù)先共享密鑰PSK(Pre-Shared Key)模式。它是IEEE802.11i的一個子集,核心是IEEE802.1x和TKIP,可用以下公式表示幾者之間的關(guān)系:WPA=802.1x+EPA+TKIP+MIC其中MIC(信息完整性檢查碼)是CCMP(Counter mode/CBC-MAC Protocol)加密技術(shù)中的一個重要組成部分:CCMP首先用CBC-MAC數(shù)據(jù)源認(rèn)證模式對消息中的明文頭、明文頭長度和負(fù)載計(jì)算出一個MIC,然后使用計(jì)數(shù)模式對負(fù)載(Payload)和MIC進(jìn)行加密,產(chǎn)生128比特的密匙,其中計(jì)數(shù)模式的核心算法就是AES(高級加密標(biāo)準(zhǔn))。endprint

    2.2 無線健壯安全認(rèn)證協(xié)議中的AES算法

    無線健壯安全認(rèn)證協(xié)議(WRAP),是基于128位的AES-OCB模式的加密算法[1]。AES算法所采用的操作模式OCB(Offset Codebook)是使用AES算法進(jìn)行塊加密,該方法首先將要加密的明文分成x個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度是128bit,將這x個數(shù)據(jù)塊使用AES加密運(yùn)算,這時可以生成x個加密數(shù)據(jù)塊, 拼接起這x個加密數(shù)據(jù)塊,與MIC、重放計(jì)數(shù)器(Replay Counter)三者一起作為加密數(shù)據(jù)負(fù)載,從而完成對明文數(shù)據(jù)的加密過程。在WRAP中,AES的主要是在WRAP的數(shù)據(jù)封裝過程的數(shù)據(jù)處理的各個階段中,其中產(chǎn)生密鑰的過程是先通過802.1X協(xié)議建立鏈接,從而構(gòu)建臨時密鑰,媒體訪問控制(MAC)是通過連接請求應(yīng)答以及臨時密鑰這三者一起通過密鑰產(chǎn)生算法生成加密密鑰[3]。此后媒體訪問控使用WRAP數(shù)據(jù)封裝算法,利用加密密鑰對所有即將發(fā)送的單MAC服務(wù)數(shù)據(jù)單元(MSDU,MAC Service Data Unit)進(jìn)行保護(hù),而在數(shù)據(jù)加密之前,傳輸端根據(jù)所要發(fā)送的MSDU來選擇合適的封裝方式。再之后傳輸端對MSDU分組個數(shù)(其中AES分組長度為128bit)進(jìn)行檢驗(yàn),如此即可選擇適合的重放計(jì)數(shù)器[4]。之后設(shè)備使用WRAP臨時加密密鑰和Nonce對明文MSDU數(shù)據(jù)進(jìn)行加密[5]。

    3 AES算法密鑰擴(kuò)展及優(yōu)化改進(jìn)

    3.1 AES算法優(yōu)化方法

    從以上AES算法的加密和解密工作原理中,我們可以發(fā)現(xiàn),在這些過程中存在著非常多的移位,而這些操作指令都非常耗時,并且也無法和其余指令結(jié)合組成流水線,這種情況非常嚴(yán)重地影響了算法的執(zhí)行效率。再者,輪加密采用循環(huán)變換的方法,循環(huán)變換有一定機(jī)率會造成指令流水線的阻斷和指令預(yù)取的作廢[4]。

    3.2 輪函數(shù)的優(yōu)化

    在AES算法的實(shí)現(xiàn)過程中中,輪函數(shù)有4種變換方式,我們可以通過改進(jìn)和優(yōu)化每個變換從而提高加密速度。如在實(shí)現(xiàn)ByteSub變換、MixColumn 02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。如在實(shí)現(xiàn)ByteSub變換、MixColumn02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。這樣可以部分提高算法性能。如果在AES輪函數(shù)的操作中,將這4個操作統(tǒng)一采用一次查表的方法實(shí)現(xiàn),如此即可大大提高算法的速度。首先設(shè)X是密鑰數(shù)組,用xi,j表示X中第i行第j列的元素,xj表示X的j列 。

    3.3 優(yōu)化字節(jié)與字之間的相互轉(zhuǎn)換

    在AES算法中,密鑰擴(kuò)展以及加密和解密時主要是以字為單位進(jìn)行處理的。所以通過優(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;

    }

    改進(jìn)后的的字節(jié)轉(zhuǎn)換代碼為:

    void get_word(uint8*b,uint32*m)

    //b指向四個字節(jié)的最低位

    { *m=*((uint32*)b)//m指向轉(zhuǎn)換后的字

    }

    同理,改進(jì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盒變換實(shí)現(xiàn)了加密密鑰的優(yōu)化和改變,與此相對,解密密鑰亦可用同等方法進(jìn)行研究與改進(jìn)。設(shè)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表實(shí)現(xiàn)。

    4 測試與性能比較

    AES算法支128位、192位、256位的密鑰長度,這里使用FIP(Sfederal Information Processing Standards)出版的FIPS-PUB 197所給出的例子來進(jìn)行測試。在當(dāng)前測試環(huán)境下,因?yàn)槊恳粋€分組用AES算法加密的時間是10-6秒數(shù)量級,所以采用重復(fù)加密N次的方法來測試加密時間。以下是測試結(jié)果比較。

    從以上兩表對比可以看出,本文所做的改進(jìn)和優(yōu)化在一定程序上實(shí)現(xiàn)了對現(xiàn)在AES算法的基本功能,而且速度也提高了1.3522-1.6521倍左右。

    5 結(jié)語

    文章對深入的分析了AES算法在無線網(wǎng)絡(luò)中使用的方法和過程,并且優(yōu)化和改進(jìn)了算法的性能和效率。對AES算法的改進(jìn)策略主要包括用一次查表的方法改進(jìn)AES輪函數(shù);通過指針類型轉(zhuǎn)換來優(yōu)化字節(jié)與字之間的轉(zhuǎn)換以及加密解密函數(shù)中的移位操作,通過查表的方法進(jìn)一步改進(jìn)解密密鑰生成函數(shù)。通過測試證明,本例所優(yōu)化改進(jìn)的AES算法既實(shí)現(xiàn)了AES算法的基本功能,又使得加密速度比原來提高了大約1.3522-1.6521倍左右。

    AES加密算法作為國際通用的數(shù)據(jù)安全加密標(biāo)準(zhǔn),有著高效率、高安全性、高性能、方便和優(yōu)雅一系列優(yōu)點(diǎn),在應(yīng)用到無線網(wǎng)絡(luò)的過程中,為無線網(wǎng)絡(luò)的安全直到了很好防護(hù)作用。隨著智能手機(jī)和平板的不斷發(fā)展,無線網(wǎng)絡(luò)普及程度越來越高,AES加密算法在加密領(lǐng)域應(yīng)用會不斷優(yōu)化,無線網(wǎng)絡(luò)的應(yīng)用會更加安全。

    參考文獻(xiàn):

    [1]楊改貞.AES加密算法在無線網(wǎng)絡(luò)安全中的應(yīng)用[J].長沙通信職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(3):62-64.

    [2]王瑩,何大軍.AES加密算法的改進(jìn)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2010(17):84-86.

    [3]吳小博.AES加密算法分析與C++編程實(shí)現(xiàn)[J].計(jì)算機(jī)安全,2007(12):45-46.

    [4]韓笑峰.AES加密算法在無線網(wǎng)絡(luò)安全中的應(yīng)用[J].科技信息(科學(xué)教研),2007(22):339,348.

    [5]賈旭.AES算法的安全性分析及其優(yōu)化改進(jìn)[D].吉林大學(xué),2010.endprint

    2.2 無線健壯安全認(rèn)證協(xié)議中的AES算法

    無線健壯安全認(rèn)證協(xié)議(WRAP),是基于128位的AES-OCB模式的加密算法[1]。AES算法所采用的操作模式OCB(Offset Codebook)是使用AES算法進(jìn)行塊加密,該方法首先將要加密的明文分成x個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度是128bit,將這x個數(shù)據(jù)塊使用AES加密運(yùn)算,這時可以生成x個加密數(shù)據(jù)塊, 拼接起這x個加密數(shù)據(jù)塊,與MIC、重放計(jì)數(shù)器(Replay Counter)三者一起作為加密數(shù)據(jù)負(fù)載,從而完成對明文數(shù)據(jù)的加密過程。在WRAP中,AES的主要是在WRAP的數(shù)據(jù)封裝過程的數(shù)據(jù)處理的各個階段中,其中產(chǎn)生密鑰的過程是先通過802.1X協(xié)議建立鏈接,從而構(gòu)建臨時密鑰,媒體訪問控制(MAC)是通過連接請求應(yīng)答以及臨時密鑰這三者一起通過密鑰產(chǎn)生算法生成加密密鑰[3]。此后媒體訪問控使用WRAP數(shù)據(jù)封裝算法,利用加密密鑰對所有即將發(fā)送的單MAC服務(wù)數(shù)據(jù)單元(MSDU,MAC Service Data Unit)進(jìn)行保護(hù),而在數(shù)據(jù)加密之前,傳輸端根據(jù)所要發(fā)送的MSDU來選擇合適的封裝方式。再之后傳輸端對MSDU分組個數(shù)(其中AES分組長度為128bit)進(jìn)行檢驗(yàn),如此即可選擇適合的重放計(jì)數(shù)器[4]。之后設(shè)備使用WRAP臨時加密密鑰和Nonce對明文MSDU數(shù)據(jù)進(jìn)行加密[5]。

    3 AES算法密鑰擴(kuò)展及優(yōu)化改進(jìn)

    3.1 AES算法優(yōu)化方法

    從以上AES算法的加密和解密工作原理中,我們可以發(fā)現(xiàn),在這些過程中存在著非常多的移位,而這些操作指令都非常耗時,并且也無法和其余指令結(jié)合組成流水線,這種情況非常嚴(yán)重地影響了算法的執(zhí)行效率。再者,輪加密采用循環(huán)變換的方法,循環(huán)變換有一定機(jī)率會造成指令流水線的阻斷和指令預(yù)取的作廢[4]。

    3.2 輪函數(shù)的優(yōu)化

    在AES算法的實(shí)現(xiàn)過程中中,輪函數(shù)有4種變換方式,我們可以通過改進(jìn)和優(yōu)化每個變換從而提高加密速度。如在實(shí)現(xiàn)ByteSub變換、MixColumn 02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。如在實(shí)現(xiàn)ByteSub變換、MixColumn02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。這樣可以部分提高算法性能。如果在AES輪函數(shù)的操作中,將這4個操作統(tǒng)一采用一次查表的方法實(shí)現(xiàn),如此即可大大提高算法的速度。首先設(shè)X是密鑰數(shù)組,用xi,j表示X中第i行第j列的元素,xj表示X的j列 。

    3.3 優(yōu)化字節(jié)與字之間的相互轉(zhuǎn)換

    在AES算法中,密鑰擴(kuò)展以及加密和解密時主要是以字為單位進(jìn)行處理的。所以通過優(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;

    }

    改進(jìn)后的的字節(jié)轉(zhuǎn)換代碼為:

    void get_word(uint8*b,uint32*m)

    //b指向四個字節(jié)的最低位

    { *m=*((uint32*)b)//m指向轉(zhuǎn)換后的字

    }

    同理,改進(jì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盒變換實(shí)現(xiàn)了加密密鑰的優(yōu)化和改變,與此相對,解密密鑰亦可用同等方法進(jìn)行研究與改進(jìn)。設(shè)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表實(shí)現(xiàn)。

    4 測試與性能比較

    AES算法支128位、192位、256位的密鑰長度,這里使用FIP(Sfederal Information Processing Standards)出版的FIPS-PUB 197所給出的例子來進(jìn)行測試。在當(dāng)前測試環(huán)境下,因?yàn)槊恳粋€分組用AES算法加密的時間是10-6秒數(shù)量級,所以采用重復(fù)加密N次的方法來測試加密時間。以下是測試結(jié)果比較。

    從以上兩表對比可以看出,本文所做的改進(jìn)和優(yōu)化在一定程序上實(shí)現(xiàn)了對現(xiàn)在AES算法的基本功能,而且速度也提高了1.3522-1.6521倍左右。

    5 結(jié)語

    文章對深入的分析了AES算法在無線網(wǎng)絡(luò)中使用的方法和過程,并且優(yōu)化和改進(jìn)了算法的性能和效率。對AES算法的改進(jìn)策略主要包括用一次查表的方法改進(jìn)AES輪函數(shù);通過指針類型轉(zhuǎn)換來優(yōu)化字節(jié)與字之間的轉(zhuǎn)換以及加密解密函數(shù)中的移位操作,通過查表的方法進(jìn)一步改進(jìn)解密密鑰生成函數(shù)。通過測試證明,本例所優(yōu)化改進(jìn)的AES算法既實(shí)現(xiàn)了AES算法的基本功能,又使得加密速度比原來提高了大約1.3522-1.6521倍左右。

    AES加密算法作為國際通用的數(shù)據(jù)安全加密標(biāo)準(zhǔn),有著高效率、高安全性、高性能、方便和優(yōu)雅一系列優(yōu)點(diǎn),在應(yīng)用到無線網(wǎng)絡(luò)的過程中,為無線網(wǎng)絡(luò)的安全直到了很好防護(hù)作用。隨著智能手機(jī)和平板的不斷發(fā)展,無線網(wǎng)絡(luò)普及程度越來越高,AES加密算法在加密領(lǐng)域應(yīng)用會不斷優(yōu)化,無線網(wǎng)絡(luò)的應(yīng)用會更加安全。

    參考文獻(xiàn):

    [1]楊改貞.AES加密算法在無線網(wǎng)絡(luò)安全中的應(yīng)用[J].長沙通信職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(3):62-64.

    [2]王瑩,何大軍.AES加密算法的改進(jìn)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2010(17):84-86.

    [3]吳小博.AES加密算法分析與C++編程實(shí)現(xiàn)[J].計(jì)算機(jī)安全,2007(12):45-46.

    [4]韓笑峰.AES加密算法在無線網(wǎng)絡(luò)安全中的應(yīng)用[J].科技信息(科學(xué)教研),2007(22):339,348.

    [5]賈旭.AES算法的安全性分析及其優(yōu)化改進(jìn)[D].吉林大學(xué),2010.endprint

    2.2 無線健壯安全認(rèn)證協(xié)議中的AES算法

    無線健壯安全認(rèn)證協(xié)議(WRAP),是基于128位的AES-OCB模式的加密算法[1]。AES算法所采用的操作模式OCB(Offset Codebook)是使用AES算法進(jìn)行塊加密,該方法首先將要加密的明文分成x個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度是128bit,將這x個數(shù)據(jù)塊使用AES加密運(yùn)算,這時可以生成x個加密數(shù)據(jù)塊, 拼接起這x個加密數(shù)據(jù)塊,與MIC、重放計(jì)數(shù)器(Replay Counter)三者一起作為加密數(shù)據(jù)負(fù)載,從而完成對明文數(shù)據(jù)的加密過程。在WRAP中,AES的主要是在WRAP的數(shù)據(jù)封裝過程的數(shù)據(jù)處理的各個階段中,其中產(chǎn)生密鑰的過程是先通過802.1X協(xié)議建立鏈接,從而構(gòu)建臨時密鑰,媒體訪問控制(MAC)是通過連接請求應(yīng)答以及臨時密鑰這三者一起通過密鑰產(chǎn)生算法生成加密密鑰[3]。此后媒體訪問控使用WRAP數(shù)據(jù)封裝算法,利用加密密鑰對所有即將發(fā)送的單MAC服務(wù)數(shù)據(jù)單元(MSDU,MAC Service Data Unit)進(jìn)行保護(hù),而在數(shù)據(jù)加密之前,傳輸端根據(jù)所要發(fā)送的MSDU來選擇合適的封裝方式。再之后傳輸端對MSDU分組個數(shù)(其中AES分組長度為128bit)進(jìn)行檢驗(yàn),如此即可選擇適合的重放計(jì)數(shù)器[4]。之后設(shè)備使用WRAP臨時加密密鑰和Nonce對明文MSDU數(shù)據(jù)進(jìn)行加密[5]。

    3 AES算法密鑰擴(kuò)展及優(yōu)化改進(jìn)

    3.1 AES算法優(yōu)化方法

    從以上AES算法的加密和解密工作原理中,我們可以發(fā)現(xiàn),在這些過程中存在著非常多的移位,而這些操作指令都非常耗時,并且也無法和其余指令結(jié)合組成流水線,這種情況非常嚴(yán)重地影響了算法的執(zhí)行效率。再者,輪加密采用循環(huán)變換的方法,循環(huán)變換有一定機(jī)率會造成指令流水線的阻斷和指令預(yù)取的作廢[4]。

    3.2 輪函數(shù)的優(yōu)化

    在AES算法的實(shí)現(xiàn)過程中中,輪函數(shù)有4種變換方式,我們可以通過改進(jìn)和優(yōu)化每個變換從而提高加密速度。如在實(shí)現(xiàn)ByteSub變換、MixColumn 02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。如在實(shí)現(xiàn)ByteSub變換、MixColumn02乘03乘、InvByteSub和InvMixColumn中的09,0D,0B,0E乘等使用查表的方法。這樣可以部分提高算法性能。如果在AES輪函數(shù)的操作中,將這4個操作統(tǒng)一采用一次查表的方法實(shí)現(xiàn),如此即可大大提高算法的速度。首先設(shè)X是密鑰數(shù)組,用xi,j表示X中第i行第j列的元素,xj表示X的j列 。

    3.3 優(yōu)化字節(jié)與字之間的相互轉(zhuǎn)換

    在AES算法中,密鑰擴(kuò)展以及加密和解密時主要是以字為單位進(jìn)行處理的。所以通過優(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;

    }

    改進(jìn)后的的字節(jié)轉(zhuǎn)換代碼為:

    void get_word(uint8*b,uint32*m)

    //b指向四個字節(jié)的最低位

    { *m=*((uint32*)b)//m指向轉(zhuǎn)換后的字

    }

    同理,改進(jì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盒變換實(shí)現(xiàn)了加密密鑰的優(yōu)化和改變,與此相對,解密密鑰亦可用同等方法進(jìn)行研究與改進(jìn)。設(shè)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表實(shí)現(xiàn)。

    4 測試與性能比較

    AES算法支128位、192位、256位的密鑰長度,這里使用FIP(Sfederal Information Processing Standards)出版的FIPS-PUB 197所給出的例子來進(jìn)行測試。在當(dāng)前測試環(huán)境下,因?yàn)槊恳粋€分組用AES算法加密的時間是10-6秒數(shù)量級,所以采用重復(fù)加密N次的方法來測試加密時間。以下是測試結(jié)果比較。

    從以上兩表對比可以看出,本文所做的改進(jìn)和優(yōu)化在一定程序上實(shí)現(xiàn)了對現(xiàn)在AES算法的基本功能,而且速度也提高了1.3522-1.6521倍左右。

    5 結(jié)語

    文章對深入的分析了AES算法在無線網(wǎng)絡(luò)中使用的方法和過程,并且優(yōu)化和改進(jìn)了算法的性能和效率。對AES算法的改進(jìn)策略主要包括用一次查表的方法改進(jìn)AES輪函數(shù);通過指針類型轉(zhuǎn)換來優(yōu)化字節(jié)與字之間的轉(zhuǎn)換以及加密解密函數(shù)中的移位操作,通過查表的方法進(jìn)一步改進(jìn)解密密鑰生成函數(shù)。通過測試證明,本例所優(yōu)化改進(jìn)的AES算法既實(shí)現(xiàn)了AES算法的基本功能,又使得加密速度比原來提高了大約1.3522-1.6521倍左右。

    AES加密算法作為國際通用的數(shù)據(jù)安全加密標(biāo)準(zhǔn),有著高效率、高安全性、高性能、方便和優(yōu)雅一系列優(yōu)點(diǎn),在應(yīng)用到無線網(wǎng)絡(luò)的過程中,為無線網(wǎng)絡(luò)的安全直到了很好防護(hù)作用。隨著智能手機(jī)和平板的不斷發(fā)展,無線網(wǎng)絡(luò)普及程度越來越高,AES加密算法在加密領(lǐng)域應(yīng)用會不斷優(yōu)化,無線網(wǎng)絡(luò)的應(yīng)用會更加安全。

    參考文獻(xiàn):

    [1]楊改貞.AES加密算法在無線網(wǎng)絡(luò)安全中的應(yīng)用[J].長沙通信職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(3):62-64.

    [2]王瑩,何大軍.AES加密算法的改進(jìn)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2010(17):84-86.

    [3]吳小博.AES加密算法分析與C++編程實(shí)現(xiàn)[J].計(jì)算機(jī)安全,2007(12):45-46.

    [4]韓笑峰.AES加密算法在無線網(wǎng)絡(luò)安全中的應(yīng)用[J].科技信息(科學(xué)教研),2007(22):339,348.

    [5]賈旭.AES算法的安全性分析及其優(yōu)化改進(jìn)[D].吉林大學(xué),2010.endprint

    猜你喜歡
    加密算法無線網(wǎng)絡(luò)
    無線網(wǎng)絡(luò)船舶遠(yuǎn)程快速通信系統(tǒng)
    濾波器對無線網(wǎng)絡(luò)中干擾問題的作用探討
    無線網(wǎng)絡(luò)的中間人攻擊研究
    HES:一種更小公鑰的同態(tài)加密算法
    基于小波變換和混沌映射的圖像加密算法
    TD-LTE無線網(wǎng)絡(luò)高層建筑覆蓋技術(shù)研究與應(yīng)用
    移動通信(2015年17期)2015-08-24 08:13:12
    Hill加密算法的改進(jìn)
    對稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
    基于混沌映射和DNA編碼的圖像加密算法
    實(shí)驗(yàn)室中無線網(wǎng)絡(luò)的組建與設(shè)計(jì)
    济南市| 西乌| 即墨市| 井冈山市| 营口市| 高雄县| 渝中区| 通江县| 阳春市| 凌海市| 伊川县| 女性| 滕州市| 河曲县| 潼关县| 安康市| 多伦县| 昌都县| 乌鲁木齐县| 黄骅市| 盐亭县| 北宁市| 洪泽县| 泊头市| 临桂县| 千阳县| 修水县| 长阳| 缙云县| 林芝县| 鹿邑县| 稻城县| 沛县| 德江县| 沙雅县| 阿巴嘎旗| 澎湖县| 嫩江县| 南投市| 错那县| 松溪县|