引言
無(wú)線通信系統(tǒng)中的信息量遠(yuǎn)超過(guò)以前,為了防止信息丟失和非法用戶的監(jiān)聽(tīng),通常要采取一系列的安全措施。尤其是在LTE/4G時(shí)代,高速信息率的大信息量,安全性尤為重要。在LTE系統(tǒng)中,主要采用AES算法對(duì)通信過(guò)程中的數(shù)據(jù)進(jìn)行加解密,AES算法是一種高效率的對(duì)稱加密算法,具備很強(qiáng)的擴(kuò)散性能,最后形成具有很高隨機(jī)性的密碼,從而使信息得到有效的保護(hù)。
AES算法概述
AES算法是一種比DES算法安全性更高的分組加密算法,是美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)發(fā)布征集的新加密算法。它的明文分組長(zhǎng)度和密鑰長(zhǎng)度都可以被指定為128位、192位和256位。在AES計(jì)算中,有一個(gè)4X4B的數(shù)組State,可通過(guò)多輪操作來(lái)修改。AES算法的主循環(huán)對(duì)State執(zhí)行4個(gè)不同的運(yùn)算:字節(jié)替換(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、輪密鑰加(AddRoundKey)。
AES算法的基本運(yùn)算
AES算法的基本運(yùn)算是字節(jié)替換(SubBytes),也就是對(duì)State中的每個(gè)字節(jié)經(jīng)過(guò)S-BOX查表轉(zhuǎn)換。其具體的操作為對(duì)于4X4狀態(tài)矩陣中每個(gè)16進(jìn)制的字節(jié),前4b標(biāo)示為x,后4b標(biāo)示為y,坐標(biāo)(X,)所確定的數(shù)即為字節(jié)替換的結(jié)果。圖1所示是AES算法的字節(jié)替換圖。
行移位(ShiftRows)是字節(jié)替換的基本步驟,就是對(duì)圖1中1字節(jié)替換中生成的新矩陣(4行4列),以字節(jié)為單位進(jìn)行循環(huán)左移操作,即第1行:不執(zhí)行循環(huán)左移操作;第2行:循環(huán)左移1個(gè)字節(jié);第3行:循環(huán)左移2個(gè)字節(jié);第4行:循環(huán)左移3個(gè)字節(jié)。
列混淆(MixColumns)則是對(duì) State 的列進(jìn)行復(fù)雜的轉(zhuǎn)換,每一列的4個(gè)元素與一個(gè)多項(xiàng)式相乘,并將這一列的每一個(gè)元素?cái)U(kuò)散到這一列的全部4個(gè)元素,具體的運(yùn)算如下:
S'0,C =({02} · S0,C)5({03} · S1,C)5 S2,C 5 S3,C
S'1,C = S0,C 5({02} · S1,C)5({03} · S2,C)5 S3,C
S'2,C = S0,C 5 S1,C 5({02} · S2,C)5({03} · S3,C)
S'3,C =({03} · S0,C)5 S1,C 5 S2,C 5({02} · S3,C)
這里要注意的是:如果 Si,C < 128,上述公式中的 {02}·Si,C =2* Si,C;如果 Si,C ≥ 128,{02}·Si,C =(2* Si,C)5 283,{03}·Si,C ={{02} · Si,C} 5 Si,C。圖 3 所示是其列混淆示意圖。
輪密鑰加(AddRoundKey)是在操作中,用輪密鑰矩陣和狀態(tài)矩陣進(jìn)行簡(jiǎn)單的按位的異或運(yùn)算。這里的輪密鑰就是下文要提到的密鑰編排所生成的輪密鑰。其輪密鑰加示意圖如圖4所示。
Rijndael有11輪密鑰,標(biāo)號(hào)為0?10,那些輪密鑰每個(gè)都是4X4的矩陣字節(jié)。那些輪密鑰通過(guò)下面所描述的密鑰安排由CipherKey所生成。初始輪密鑰(被看做是第0個(gè)輪密鑰)是直接由CipherKey組成。第0個(gè)輪密鑰不做改變的用于初始密鑰加叫剩余的輪密鑰被用于其余十輪中。每一個(gè)新的輪密鑰都是從上一個(gè)輪密鑰中生成的。具體如表 1 所列。
rkr,i,j 是第 r 個(gè)輪密鑰矩陣中位置為(i,j)的值(第 i 行第j 列),ki,j 是 4×4 Cipher Key。其他輪密鑰(r=1 ~ 10)可利用如下方法由前一個(gè)輪密鑰計(jì)算得出。第 0 列的組成方式如下:
rkr,0,0=rkr-1,0,0 5 S-box[rkr-1,1,3] 5 round_const[r] ;
rkr,1,0 = rkr-1,1,0 5 S-box[rkr-1,2,3] ;
rkr,2,0 = rkr-1,2,0 5 S-box[rkr-1,3,3] ;
rkr,3,0 = rkr-1,3,0 5 S-box[rkr-1,0,3] ;
rou nd _con st[1]=1,rou nd _con st[r]= T2(rou nd _ const[r-1])。
3 Rijindael 算法加密流程
加密算法流程如圖 5 所示,首先是 4×4 的初始狀態(tài)矩陣與 4×4 的初始密鑰矩陣按位執(zhí)行異或運(yùn)算,然后執(zhí)行九輪迭代輪變換,每一輪的變換由字節(jié)替換、行移位、列混淆、輪密鑰加組成,終結(jié)輪變換不包含列混淆。作為 Rijindael 算法的最終輸出結(jié)果,密文比特流從經(jīng)過(guò)加密處理的狀態(tài)矩陣中由左至右按列輸出。
4 AES 的解密算法
AES 的解密只需要直接利用字節(jié)替換、行移位、列混淆、輪密鑰加操作的逆并倒置其次序就可以完成。當(dāng)然與加密算法存在有不同的地方,第一是四種基本運(yùn)算用它們相應(yīng)的逆運(yùn)算代替,第二是輪密鑰顛倒順序使用。高級(jí)加密標(biāo)準(zhǔn) AES(Rijindael)算法在各個(gè)行業(yè)得到了廣泛的應(yīng)用,成為 VPN(虛擬專用網(wǎng))、SONET(同步光網(wǎng)絡(luò))、RAS(遠(yuǎn)程訪問(wèn)服務(wù)器)、移動(dòng)通信、衛(wèi)星通信、電子金融業(yè)務(wù)等的加密算法,并已經(jīng)逐漸取代 DES。
5 結(jié) 語(yǔ)
AES 加密在選擇過(guò)程中經(jīng)受了大量的考驗(yàn),并延續(xù)至今。目前為止,還沒(méi)有已知的密碼分析攻擊可以解密 AES 密文。本文主要介紹了AES 的應(yīng)用范圍,分析了AES 的基本運(yùn)算,描述了AES 的加 / 解密過(guò)程。能讓讀者更好的了解此算法及其安全性。
20211124_619e4a5e81f33__AES算法的安全性研究