夏宇翔
摘 要:為了防止信息丟失和非法用戶的監(jiān)聽,信息量的安全性尤為重要。而AES算法可對通信過程中的數(shù)據(jù)進行加解密,具有高性能的安全性。文章主要介紹了AES算法的基本運算,給出了其加/解密流程,并對其安全性進行了分析研究。
關(guān)鍵詞: 安全性;AES算法;加密;解密
中圖分類號:TP309 文獻識別碼:A 文章編號:2095-1302(2014)07-0061-02
0引言
無線通信系統(tǒng)中的信息量遠超過以前,為了防止信息丟失和非法用戶的監(jiān)聽,通常要采取一系列的安全措施。尤其是在LTE/4G時代,高速信息率的大信息量,安全性尤為重要。在LTE系統(tǒng)中,主要采用AES算法對通信過程中的數(shù)據(jù)進行加解密,AES算法是一種高效率的對稱加密算法,具備很強的擴散性能,最后形成具有很高隨機性的密碼,從而使信息得到有效的保護[1]。
1AES算法概述
AES算法是一種比DES算法安全性更高的分組加密算法,是美國國家標準和技術(shù)研究所(NIST)發(fā)布征集的新加密算法。它的明文分組長度和密鑰長度都可以被指定為128位、192位和256位[2]。在AES計算中,有一個4×4 B的數(shù)組State,可通過多輪操作來修改。AES算法的主循環(huán)對State執(zhí)行4個不同的運算:字節(jié)替換(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、輪密鑰加(AddRoundKey)。
2AES算法的基本運算
AES算法的基本運算是字節(jié)替換(SubBytes),也就是對State中的每個字節(jié)經(jīng)過S-BOX查表轉(zhuǎn)換。其具體的操作為對于4×4狀態(tài)矩陣中每個16進制的字節(jié),前4 b標示為x,后4 b標示為y,坐標(x,y)所確定的數(shù)即為字節(jié)替換的結(jié)果。圖1所示是AES算法的字節(jié)替換圖。
圖 1字節(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é)。
圖 2行移位
列混淆(MixColumns)則是對State的列進行復雜的轉(zhuǎn)換,每一列的4個元素與一個多項式相乘,并將這一列的每一個元素擴散到這一列的全部4個元素,具體的運算如下:
S'0,C = ({02}·S0,C) ({03}·S1,C) S2,CS3,C
S'1,C = S0,C({02}·S1,C) ({03}·S2,C) S3,C
S'2,C = S0,C S1,C ({02}·S2,C) ({03}·S3,C)
S'3,C = ({03}·S0,C)S1,CS2,C({02}·S3,C)
這里要注意的是:如果Si,C<128,上述公式中的{02}·Si,C =2* Si,C;如果Si,C≥128,{02}·Si,C =(2* Si,C)283,{03}·Si,C ={{02}·Si,C} Si,C。圖3所示是其列混淆示意圖。
輪密鑰加(AddRoundKey)是在操作中,用輪密鑰矩陣和狀態(tài)矩陣進行簡單的按位的異或運算。這里的輪密鑰就是下文要提到的密鑰編排所生成的輪密鑰。其輪密鑰加示意圖如圖4所示。
Rijndael有11輪密鑰,標號為0~10,那些輪密鑰每個都是4×4的矩陣字節(jié)。那些輪密鑰通過下面所描述的密鑰安排由Cipher Key所生成。初始輪密鑰 (被看做是第0個輪密鑰)是直接由Cipher Key組成。第0個輪密鑰不做改變的用于初始密鑰加[3]。剩余的輪密鑰被用于其余十輪中。每一個新的輪密鑰都是從上一個輪密鑰中生成的。具體如表1所列。
圖 3列混淆
圖 4輪密鑰加
表1輪密鑰生成表K0 K4 K8 K12
K1 K5 K9 K13
K2 K6 K10 K14
K3 K7 K11 K15
rkr,i,j是第r個輪密鑰矩陣中位置為 (i,j)的值(第i行第j列),ki,j是4×4 Cipher Key。其他輪密鑰(r=1~10)可利用如下方法由前一個輪密鑰計算得出。第0列的組成方式如下:
rkr,0,0=rkr-1,0,0S-box[rkr-1,1,3]round_const[r];
rkr,1,0 = rkr-1,1,0 S-box[rkr-1,2,3];
rkr,2,0 = rkr-1,2,0 S-box[rkr-1,3,3];
rkr,3,0 = rkr-1,3,0 S-box[rkr-1,0,3];
round_const[1]=1,round_const[r]= T2(round_const[r-1])。
3Rijindael算法加密流程
加密算法流程如圖5所示,首先是4×4的初始狀態(tài)矩陣與4×4的初始密鑰矩陣按位執(zhí)行異或運算,然后執(zhí)行九輪迭代輪變換,每一輪的變換由字節(jié)替換、行移位、列混淆、輪密鑰加組成,終結(jié)輪變換不包含列混淆。作為Rijindael算法的最終輸出結(jié)果,密文比特流從經(jīng)過加密處理的狀態(tài)矩陣中由左至右按列輸出。
4AES的解密算法
AES的解密只需要直接利用字節(jié)替換、行移位、列混淆、輪密鑰加操作的逆并倒置其次序就可以完成。當然與加密算法存在有不同的地方,第一是四種基本運算用它們相應的逆運算代替,第二是輪密鑰顛倒順序使用。
高級加密標準AES(Rijindael)算法在各個行業(yè)得到了廣泛的應用,成為VPN(虛擬專用網(wǎng))、SONET(同步光網(wǎng)絡(luò))、RAS(遠程訪問服務(wù)器)、移動通信、衛(wèi)星通信、電子金融業(yè)務(wù)等的加密算法,并已經(jīng)逐漸取代DES。
圖 5加密流程
5結(jié)語
AES加密在選擇過程中經(jīng)受了大量的考驗,并延續(xù)至今。目前為止,還沒有已知的密碼分析攻擊可以解密AES密文。本文主要介紹了AES的應用范圍,分析了AES的基本運算,描述了AES的加/解密過程。能讓讀者更好的了解此算法及其安全性。
參 考 文 獻
[1]鄧元慶,龔晶,石會.密碼學簡明教程[M].北京:清華大學出版社,2011.
[2]曹曉麗,王愛強.AES算法研究[J].洛陽師范學院學報,2011(8):74-76.
[3]吳云梅,李小文,劉丹丹.LTE中的Rjindael算法研究[J].電視技術(shù),2010(12):84-86.
[4]楊春德,靳杰.LTE網(wǎng)絡(luò)S1切換中E-RAB管理的策略研究[J]. 數(shù)字通信,2013(4):33-37.
[5]蔡清茂.基于LTE網(wǎng)絡(luò)的防竊聽算法的研究與實現(xiàn)[D].西安:西安電子科技大學,2013.
————————————————
收稿日期:2014-04-10
摘 要:為了防止信息丟失和非法用戶的監(jiān)聽,信息量的安全性尤為重要。而AES算法可對通信過程中的數(shù)據(jù)進行加解密,具有高性能的安全性。文章主要介紹了AES算法的基本運算,給出了其加/解密流程,并對其安全性進行了分析研究。
關(guān)鍵詞: 安全性;AES算法;加密;解密
中圖分類號:TP309 文獻識別碼:A 文章編號:2095-1302(2014)07-0061-02
0引言
無線通信系統(tǒng)中的信息量遠超過以前,為了防止信息丟失和非法用戶的監(jiān)聽,通常要采取一系列的安全措施。尤其是在LTE/4G時代,高速信息率的大信息量,安全性尤為重要。在LTE系統(tǒng)中,主要采用AES算法對通信過程中的數(shù)據(jù)進行加解密,AES算法是一種高效率的對稱加密算法,具備很強的擴散性能,最后形成具有很高隨機性的密碼,從而使信息得到有效的保護[1]。
1AES算法概述
AES算法是一種比DES算法安全性更高的分組加密算法,是美國國家標準和技術(shù)研究所(NIST)發(fā)布征集的新加密算法。它的明文分組長度和密鑰長度都可以被指定為128位、192位和256位[2]。在AES計算中,有一個4×4 B的數(shù)組State,可通過多輪操作來修改。AES算法的主循環(huán)對State執(zhí)行4個不同的運算:字節(jié)替換(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、輪密鑰加(AddRoundKey)。
2AES算法的基本運算
AES算法的基本運算是字節(jié)替換(SubBytes),也就是對State中的每個字節(jié)經(jīng)過S-BOX查表轉(zhuǎn)換。其具體的操作為對于4×4狀態(tài)矩陣中每個16進制的字節(jié),前4 b標示為x,后4 b標示為y,坐標(x,y)所確定的數(shù)即為字節(jié)替換的結(jié)果。圖1所示是AES算法的字節(jié)替換圖。
圖 1字節(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é)。
圖 2行移位
列混淆(MixColumns)則是對State的列進行復雜的轉(zhuǎn)換,每一列的4個元素與一個多項式相乘,并將這一列的每一個元素擴散到這一列的全部4個元素,具體的運算如下:
S'0,C = ({02}·S0,C) ({03}·S1,C) S2,CS3,C
S'1,C = S0,C({02}·S1,C) ({03}·S2,C) S3,C
S'2,C = S0,C S1,C ({02}·S2,C) ({03}·S3,C)
S'3,C = ({03}·S0,C)S1,CS2,C({02}·S3,C)
這里要注意的是:如果Si,C<128,上述公式中的{02}·Si,C =2* Si,C;如果Si,C≥128,{02}·Si,C =(2* Si,C)283,{03}·Si,C ={{02}·Si,C} Si,C。圖3所示是其列混淆示意圖。
輪密鑰加(AddRoundKey)是在操作中,用輪密鑰矩陣和狀態(tài)矩陣進行簡單的按位的異或運算。這里的輪密鑰就是下文要提到的密鑰編排所生成的輪密鑰。其輪密鑰加示意圖如圖4所示。
Rijndael有11輪密鑰,標號為0~10,那些輪密鑰每個都是4×4的矩陣字節(jié)。那些輪密鑰通過下面所描述的密鑰安排由Cipher Key所生成。初始輪密鑰 (被看做是第0個輪密鑰)是直接由Cipher Key組成。第0個輪密鑰不做改變的用于初始密鑰加[3]。剩余的輪密鑰被用于其余十輪中。每一個新的輪密鑰都是從上一個輪密鑰中生成的。具體如表1所列。
圖 3列混淆
圖 4輪密鑰加
表1輪密鑰生成表K0 K4 K8 K12
K1 K5 K9 K13
K2 K6 K10 K14
K3 K7 K11 K15
rkr,i,j是第r個輪密鑰矩陣中位置為 (i,j)的值(第i行第j列),ki,j是4×4 Cipher Key。其他輪密鑰(r=1~10)可利用如下方法由前一個輪密鑰計算得出。第0列的組成方式如下:
rkr,0,0=rkr-1,0,0S-box[rkr-1,1,3]round_const[r];
rkr,1,0 = rkr-1,1,0 S-box[rkr-1,2,3];
rkr,2,0 = rkr-1,2,0 S-box[rkr-1,3,3];
rkr,3,0 = rkr-1,3,0 S-box[rkr-1,0,3];
round_const[1]=1,round_const[r]= T2(round_const[r-1])。
3Rijindael算法加密流程
加密算法流程如圖5所示,首先是4×4的初始狀態(tài)矩陣與4×4的初始密鑰矩陣按位執(zhí)行異或運算,然后執(zhí)行九輪迭代輪變換,每一輪的變換由字節(jié)替換、行移位、列混淆、輪密鑰加組成,終結(jié)輪變換不包含列混淆。作為Rijindael算法的最終輸出結(jié)果,密文比特流從經(jīng)過加密處理的狀態(tài)矩陣中由左至右按列輸出。
4AES的解密算法
AES的解密只需要直接利用字節(jié)替換、行移位、列混淆、輪密鑰加操作的逆并倒置其次序就可以完成。當然與加密算法存在有不同的地方,第一是四種基本運算用它們相應的逆運算代替,第二是輪密鑰顛倒順序使用。
高級加密標準AES(Rijindael)算法在各個行業(yè)得到了廣泛的應用,成為VPN(虛擬專用網(wǎng))、SONET(同步光網(wǎng)絡(luò))、RAS(遠程訪問服務(wù)器)、移動通信、衛(wèi)星通信、電子金融業(yè)務(wù)等的加密算法,并已經(jīng)逐漸取代DES。
圖 5加密流程
5結(jié)語
AES加密在選擇過程中經(jīng)受了大量的考驗,并延續(xù)至今。目前為止,還沒有已知的密碼分析攻擊可以解密AES密文。本文主要介紹了AES的應用范圍,分析了AES的基本運算,描述了AES的加/解密過程。能讓讀者更好的了解此算法及其安全性。
參 考 文 獻
[1]鄧元慶,龔晶,石會.密碼學簡明教程[M].北京:清華大學出版社,2011.
[2]曹曉麗,王愛強.AES算法研究[J].洛陽師范學院學報,2011(8):74-76.
[3]吳云梅,李小文,劉丹丹.LTE中的Rjindael算法研究[J].電視技術(shù),2010(12):84-86.
[4]楊春德,靳杰.LTE網(wǎng)絡(luò)S1切換中E-RAB管理的策略研究[J]. 數(shù)字通信,2013(4):33-37.
[5]蔡清茂.基于LTE網(wǎng)絡(luò)的防竊聽算法的研究與實現(xiàn)[D].西安:西安電子科技大學,2013.
————————————————
收稿日期:2014-04-10
摘 要:為了防止信息丟失和非法用戶的監(jiān)聽,信息量的安全性尤為重要。而AES算法可對通信過程中的數(shù)據(jù)進行加解密,具有高性能的安全性。文章主要介紹了AES算法的基本運算,給出了其加/解密流程,并對其安全性進行了分析研究。
關(guān)鍵詞: 安全性;AES算法;加密;解密
中圖分類號:TP309 文獻識別碼:A 文章編號:2095-1302(2014)07-0061-02
0引言
無線通信系統(tǒng)中的信息量遠超過以前,為了防止信息丟失和非法用戶的監(jiān)聽,通常要采取一系列的安全措施。尤其是在LTE/4G時代,高速信息率的大信息量,安全性尤為重要。在LTE系統(tǒng)中,主要采用AES算法對通信過程中的數(shù)據(jù)進行加解密,AES算法是一種高效率的對稱加密算法,具備很強的擴散性能,最后形成具有很高隨機性的密碼,從而使信息得到有效的保護[1]。
1AES算法概述
AES算法是一種比DES算法安全性更高的分組加密算法,是美國國家標準和技術(shù)研究所(NIST)發(fā)布征集的新加密算法。它的明文分組長度和密鑰長度都可以被指定為128位、192位和256位[2]。在AES計算中,有一個4×4 B的數(shù)組State,可通過多輪操作來修改。AES算法的主循環(huán)對State執(zhí)行4個不同的運算:字節(jié)替換(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、輪密鑰加(AddRoundKey)。
2AES算法的基本運算
AES算法的基本運算是字節(jié)替換(SubBytes),也就是對State中的每個字節(jié)經(jīng)過S-BOX查表轉(zhuǎn)換。其具體的操作為對于4×4狀態(tài)矩陣中每個16進制的字節(jié),前4 b標示為x,后4 b標示為y,坐標(x,y)所確定的數(shù)即為字節(jié)替換的結(jié)果。圖1所示是AES算法的字節(jié)替換圖。
圖 1字節(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é)。
圖 2行移位
列混淆(MixColumns)則是對State的列進行復雜的轉(zhuǎn)換,每一列的4個元素與一個多項式相乘,并將這一列的每一個元素擴散到這一列的全部4個元素,具體的運算如下:
S'0,C = ({02}·S0,C) ({03}·S1,C) S2,CS3,C
S'1,C = S0,C({02}·S1,C) ({03}·S2,C) S3,C
S'2,C = S0,C S1,C ({02}·S2,C) ({03}·S3,C)
S'3,C = ({03}·S0,C)S1,CS2,C({02}·S3,C)
這里要注意的是:如果Si,C<128,上述公式中的{02}·Si,C =2* Si,C;如果Si,C≥128,{02}·Si,C =(2* Si,C)283,{03}·Si,C ={{02}·Si,C} Si,C。圖3所示是其列混淆示意圖。
輪密鑰加(AddRoundKey)是在操作中,用輪密鑰矩陣和狀態(tài)矩陣進行簡單的按位的異或運算。這里的輪密鑰就是下文要提到的密鑰編排所生成的輪密鑰。其輪密鑰加示意圖如圖4所示。
Rijndael有11輪密鑰,標號為0~10,那些輪密鑰每個都是4×4的矩陣字節(jié)。那些輪密鑰通過下面所描述的密鑰安排由Cipher Key所生成。初始輪密鑰 (被看做是第0個輪密鑰)是直接由Cipher Key組成。第0個輪密鑰不做改變的用于初始密鑰加[3]。剩余的輪密鑰被用于其余十輪中。每一個新的輪密鑰都是從上一個輪密鑰中生成的。具體如表1所列。
圖 3列混淆
圖 4輪密鑰加
表1輪密鑰生成表K0 K4 K8 K12
K1 K5 K9 K13
K2 K6 K10 K14
K3 K7 K11 K15
rkr,i,j是第r個輪密鑰矩陣中位置為 (i,j)的值(第i行第j列),ki,j是4×4 Cipher Key。其他輪密鑰(r=1~10)可利用如下方法由前一個輪密鑰計算得出。第0列的組成方式如下:
rkr,0,0=rkr-1,0,0S-box[rkr-1,1,3]round_const[r];
rkr,1,0 = rkr-1,1,0 S-box[rkr-1,2,3];
rkr,2,0 = rkr-1,2,0 S-box[rkr-1,3,3];
rkr,3,0 = rkr-1,3,0 S-box[rkr-1,0,3];
round_const[1]=1,round_const[r]= T2(round_const[r-1])。
3Rijindael算法加密流程
加密算法流程如圖5所示,首先是4×4的初始狀態(tài)矩陣與4×4的初始密鑰矩陣按位執(zhí)行異或運算,然后執(zhí)行九輪迭代輪變換,每一輪的變換由字節(jié)替換、行移位、列混淆、輪密鑰加組成,終結(jié)輪變換不包含列混淆。作為Rijindael算法的最終輸出結(jié)果,密文比特流從經(jīng)過加密處理的狀態(tài)矩陣中由左至右按列輸出。
4AES的解密算法
AES的解密只需要直接利用字節(jié)替換、行移位、列混淆、輪密鑰加操作的逆并倒置其次序就可以完成。當然與加密算法存在有不同的地方,第一是四種基本運算用它們相應的逆運算代替,第二是輪密鑰顛倒順序使用。
高級加密標準AES(Rijindael)算法在各個行業(yè)得到了廣泛的應用,成為VPN(虛擬專用網(wǎng))、SONET(同步光網(wǎng)絡(luò))、RAS(遠程訪問服務(wù)器)、移動通信、衛(wèi)星通信、電子金融業(yè)務(wù)等的加密算法,并已經(jīng)逐漸取代DES。
圖 5加密流程
5結(jié)語
AES加密在選擇過程中經(jīng)受了大量的考驗,并延續(xù)至今。目前為止,還沒有已知的密碼分析攻擊可以解密AES密文。本文主要介紹了AES的應用范圍,分析了AES的基本運算,描述了AES的加/解密過程。能讓讀者更好的了解此算法及其安全性。
參 考 文 獻
[1]鄧元慶,龔晶,石會.密碼學簡明教程[M].北京:清華大學出版社,2011.
[2]曹曉麗,王愛強.AES算法研究[J].洛陽師范學院學報,2011(8):74-76.
[3]吳云梅,李小文,劉丹丹.LTE中的Rjindael算法研究[J].電視技術(shù),2010(12):84-86.
[4]楊春德,靳杰.LTE網(wǎng)絡(luò)S1切換中E-RAB管理的策略研究[J]. 數(shù)字通信,2013(4):33-37.
[5]蔡清茂.基于LTE網(wǎng)絡(luò)的防竊聽算法的研究與實現(xiàn)[D].西安:西安電子科技大學,2013.
————————————————
收稿日期:2014-04-10