AES算法的安全性研究
2014-09-24夏宇翔
夏宇翔
摘 要:为了防止信息丢失和非法用户的监听,信息量的安全性尤为重要。而AES算法可对通信过程中的数据进行加解密,具有高性能的安全性。文章主要介绍了AES算法的基本运算,给出了其加/解密流程,并对其安全性进行了分析研究。
关键词: 安全性;AES算法;加密;解密
中图分类号:TP309 文献识别码:A 文章编号:2095-1302(2014)07-0061-02
0引言
无线通信系统中的信息量远超过以前,为了防止信息丢失和非法用户的监听,通常要采取一系列的安全措施。尤其是在LTE/4G时代,高速信息率的大信息量,安全性尤为重要。在LTE系统中,主要采用AES算法对通信过程中的数据进行加解密,AES算法是一种高效率的对称加密算法,具备很强的扩散性能,最后形成具有很高随机性的密码,从而使信息得到有效的保护[1]。
1AES算法概述
AES算法是一种比DES算法安全性更高的分组加密算法,是美国国家标准和技术研究所(NIST)发布征集的新加密算法。它的明文分组长度和密钥长度都可以被指定为128位、192位和256位[2]。在AES计算中,有一个4×4 B的数组State,可通过多轮操作来修改。AES算法的主循环对State执行4个不同的运算:字节替换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、轮密钥加(AddRoundKey)。
2AES算法的基本运算
AES算法的基本运算是字节替换(SubBytes),也就是对State中的每个字节经过S-BOX查表转换。其具体的操作为对于4×4状态矩阵中每个16进制的字节,前4 b标示为x,后4 b标示为y,坐标(x,y)所确定的数即为字节替换的结果。图1所示是AES算法的字节替换图。
图 1字节替换
行移位(ShiftRows)是字节替换的基本步骤,就是对图1中1字节替换中生成的新矩阵(4行4列),以字节为单位进行循环左移操作,即第1行:不执行循环左移操作;第2行:循环左移1个字节;第3行:循环左移2个字节;第4行:循环左移3个字节。
图 2行移位
列混淆(MixColumns)则是对State的列进行复杂的转换,每一列的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)是在操作中,用轮密钥矩阵和状态矩阵进行简单的按位的异或运算。这里的轮密钥就是下文要提到的密钥编排所生成的轮密钥。其轮密钥加示意图如图4所示。
Rijndael有11轮密钥,标号为0~10,那些轮密钥每个都是4×4的矩阵字节。那些轮密钥通过下面所描述的密钥安排由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的初始状态矩阵与4×4的初始密钥矩阵按位执行异或运算,然后执行九轮迭代轮变换,每一轮的变换由字节替换、行移位、列混淆、轮密钥加组成,终结轮变换不包含列混淆。作为Rijindael算法的最终输出结果,密文比特流从经过加密处理的状态矩阵中由左至右按列输出。
4AES的解密算法
AES的解密只需要直接利用字节替换、行移位、列混淆、轮密钥加操作的逆并倒置其次序就可以完成。当然与加密算法存在有不同的地方,第一是四种基本运算用它们相应的逆运算代替,第二是轮密钥颠倒顺序使用。
高级加密标准AES(Rijindael)算法在各个行业得到了广泛的应用,成为VPN(虚拟专用网)、SONET(同步光网络)、RAS(远程访问服务器)、移动通信、卫星通信、电子金融业务等的加密算法,并已经逐渐取代DES。
图 5加密流程
5结语
AES加密在选择过程中经受了大量的考验,并延续至今。目前为止,还没有已知的密码分析攻击可以解密AES密文。本文主要介绍了AES的应用范围,分析了AES的基本运算,描述了AES的加/解密过程。能让读者更好的了解此算法及其安全性。
参 考 文 献
[1]邓元庆,龚晶,石会.密码学简明教程[M].北京:清华大学出版社,2011.
[2]曹晓丽,王爱强.AES算法研究[J].洛阳师范学院学报,2011(8):74-76.
[3]吴云梅,李小文,刘丹丹.LTE中的Rjindael算法研究[J].电视技术,2010(12):84-86.
[4]杨春德,靳杰.LTE网络S1切换中E-RAB管理的策略研究[J]. 数字通信,2013(4):33-37.
[5]蔡清茂.基于LTE网络的防窃听算法的研究与实现[D].西安:西安电子科技大学,2013.
————————————————
收稿日期:2014-04-10
摘 要:为了防止信息丢失和非法用户的监听,信息量的安全性尤为重要。而AES算法可对通信过程中的数据进行加解密,具有高性能的安全性。文章主要介绍了AES算法的基本运算,给出了其加/解密流程,并对其安全性进行了分析研究。
关键词: 安全性;AES算法;加密;解密
中图分类号:TP309 文献识别码:A 文章编号:2095-1302(2014)07-0061-02
0引言
无线通信系统中的信息量远超过以前,为了防止信息丢失和非法用户的监听,通常要采取一系列的安全措施。尤其是在LTE/4G时代,高速信息率的大信息量,安全性尤为重要。在LTE系统中,主要采用AES算法对通信过程中的数据进行加解密,AES算法是一种高效率的对称加密算法,具备很强的扩散性能,最后形成具有很高随机性的密码,从而使信息得到有效的保护[1]。
1AES算法概述
AES算法是一种比DES算法安全性更高的分组加密算法,是美国国家标准和技术研究所(NIST)发布征集的新加密算法。它的明文分组长度和密钥长度都可以被指定为128位、192位和256位[2]。在AES计算中,有一个4×4 B的数组State,可通过多轮操作来修改。AES算法的主循环对State执行4个不同的运算:字节替换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、轮密钥加(AddRoundKey)。
2AES算法的基本运算
AES算法的基本运算是字节替换(SubBytes),也就是对State中的每个字节经过S-BOX查表转换。其具体的操作为对于4×4状态矩阵中每个16进制的字节,前4 b标示为x,后4 b标示为y,坐标(x,y)所确定的数即为字节替换的结果。图1所示是AES算法的字节替换图。
图 1字节替换
行移位(ShiftRows)是字节替换的基本步骤,就是对图1中1字节替换中生成的新矩阵(4行4列),以字节为单位进行循环左移操作,即第1行:不执行循环左移操作;第2行:循环左移1个字节;第3行:循环左移2个字节;第4行:循环左移3个字节。
图 2行移位
列混淆(MixColumns)则是对State的列进行复杂的转换,每一列的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)是在操作中,用轮密钥矩阵和状态矩阵进行简单的按位的异或运算。这里的轮密钥就是下文要提到的密钥编排所生成的轮密钥。其轮密钥加示意图如图4所示。
Rijndael有11轮密钥,标号为0~10,那些轮密钥每个都是4×4的矩阵字节。那些轮密钥通过下面所描述的密钥安排由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的初始状态矩阵与4×4的初始密钥矩阵按位执行异或运算,然后执行九轮迭代轮变换,每一轮的变换由字节替换、行移位、列混淆、轮密钥加组成,终结轮变换不包含列混淆。作为Rijindael算法的最终输出结果,密文比特流从经过加密处理的状态矩阵中由左至右按列输出。
4AES的解密算法
AES的解密只需要直接利用字节替换、行移位、列混淆、轮密钥加操作的逆并倒置其次序就可以完成。当然与加密算法存在有不同的地方,第一是四种基本运算用它们相应的逆运算代替,第二是轮密钥颠倒顺序使用。
高级加密标准AES(Rijindael)算法在各个行业得到了广泛的应用,成为VPN(虚拟专用网)、SONET(同步光网络)、RAS(远程访问服务器)、移动通信、卫星通信、电子金融业务等的加密算法,并已经逐渐取代DES。
图 5加密流程
5结语
AES加密在选择过程中经受了大量的考验,并延续至今。目前为止,还没有已知的密码分析攻击可以解密AES密文。本文主要介绍了AES的应用范围,分析了AES的基本运算,描述了AES的加/解密过程。能让读者更好的了解此算法及其安全性。
参 考 文 献
[1]邓元庆,龚晶,石会.密码学简明教程[M].北京:清华大学出版社,2011.
[2]曹晓丽,王爱强.AES算法研究[J].洛阳师范学院学报,2011(8):74-76.
[3]吴云梅,李小文,刘丹丹.LTE中的Rjindael算法研究[J].电视技术,2010(12):84-86.
[4]杨春德,靳杰.LTE网络S1切换中E-RAB管理的策略研究[J]. 数字通信,2013(4):33-37.
[5]蔡清茂.基于LTE网络的防窃听算法的研究与实现[D].西安:西安电子科技大学,2013.
————————————————
收稿日期:2014-04-10
摘 要:为了防止信息丢失和非法用户的监听,信息量的安全性尤为重要。而AES算法可对通信过程中的数据进行加解密,具有高性能的安全性。文章主要介绍了AES算法的基本运算,给出了其加/解密流程,并对其安全性进行了分析研究。
关键词: 安全性;AES算法;加密;解密
中图分类号:TP309 文献识别码:A 文章编号:2095-1302(2014)07-0061-02
0引言
无线通信系统中的信息量远超过以前,为了防止信息丢失和非法用户的监听,通常要采取一系列的安全措施。尤其是在LTE/4G时代,高速信息率的大信息量,安全性尤为重要。在LTE系统中,主要采用AES算法对通信过程中的数据进行加解密,AES算法是一种高效率的对称加密算法,具备很强的扩散性能,最后形成具有很高随机性的密码,从而使信息得到有效的保护[1]。
1AES算法概述
AES算法是一种比DES算法安全性更高的分组加密算法,是美国国家标准和技术研究所(NIST)发布征集的新加密算法。它的明文分组长度和密钥长度都可以被指定为128位、192位和256位[2]。在AES计算中,有一个4×4 B的数组State,可通过多轮操作来修改。AES算法的主循环对State执行4个不同的运算:字节替换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)、轮密钥加(AddRoundKey)。
2AES算法的基本运算
AES算法的基本运算是字节替换(SubBytes),也就是对State中的每个字节经过S-BOX查表转换。其具体的操作为对于4×4状态矩阵中每个16进制的字节,前4 b标示为x,后4 b标示为y,坐标(x,y)所确定的数即为字节替换的结果。图1所示是AES算法的字节替换图。
图 1字节替换
行移位(ShiftRows)是字节替换的基本步骤,就是对图1中1字节替换中生成的新矩阵(4行4列),以字节为单位进行循环左移操作,即第1行:不执行循环左移操作;第2行:循环左移1个字节;第3行:循环左移2个字节;第4行:循环左移3个字节。
图 2行移位
列混淆(MixColumns)则是对State的列进行复杂的转换,每一列的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)是在操作中,用轮密钥矩阵和状态矩阵进行简单的按位的异或运算。这里的轮密钥就是下文要提到的密钥编排所生成的轮密钥。其轮密钥加示意图如图4所示。
Rijndael有11轮密钥,标号为0~10,那些轮密钥每个都是4×4的矩阵字节。那些轮密钥通过下面所描述的密钥安排由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的初始状态矩阵与4×4的初始密钥矩阵按位执行异或运算,然后执行九轮迭代轮变换,每一轮的变换由字节替换、行移位、列混淆、轮密钥加组成,终结轮变换不包含列混淆。作为Rijindael算法的最终输出结果,密文比特流从经过加密处理的状态矩阵中由左至右按列输出。
4AES的解密算法
AES的解密只需要直接利用字节替换、行移位、列混淆、轮密钥加操作的逆并倒置其次序就可以完成。当然与加密算法存在有不同的地方,第一是四种基本运算用它们相应的逆运算代替,第二是轮密钥颠倒顺序使用。
高级加密标准AES(Rijindael)算法在各个行业得到了广泛的应用,成为VPN(虚拟专用网)、SONET(同步光网络)、RAS(远程访问服务器)、移动通信、卫星通信、电子金融业务等的加密算法,并已经逐渐取代DES。
图 5加密流程
5结语
AES加密在选择过程中经受了大量的考验,并延续至今。目前为止,还没有已知的密码分析攻击可以解密AES密文。本文主要介绍了AES的应用范围,分析了AES的基本运算,描述了AES的加/解密过程。能让读者更好的了解此算法及其安全性。
参 考 文 献
[1]邓元庆,龚晶,石会.密码学简明教程[M].北京:清华大学出版社,2011.
[2]曹晓丽,王爱强.AES算法研究[J].洛阳师范学院学报,2011(8):74-76.
[3]吴云梅,李小文,刘丹丹.LTE中的Rjindael算法研究[J].电视技术,2010(12):84-86.
[4]杨春德,靳杰.LTE网络S1切换中E-RAB管理的策略研究[J]. 数字通信,2013(4):33-37.
[5]蔡清茂.基于LTE网络的防窃听算法的研究与实现[D].西安:西安电子科技大学,2013.
————————————————
收稿日期:2014-04-10