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