高级加密标准AES算法的分析与优化改进
发布时间:2021-04-15 10:18
2000年10月2日,美国国家标准和技术研究所(NIST)正式确定Rijndael算法作为高级加密标准AES(Advanced Encryption Standard),AES算法的出现是为了替代不再安全的数据加密标准DES(Data Encryption Standard)。AES算法被广泛应用于保密通信以及商业加密,可以说是信息安全领域中最具代表性的一种加密算法。本文主要研究了AES算法的安全性和实现性,在深入剖析了AES算法的代数性质以及抗攻击能力的基础上,提出优化改进AES算法S盒以及密钥扩展算法。通过MATLAB仿真实验,验证了改进算法中各个模块功能的正确性。从理论和实践两部分证明了本文提出的改进算法相比于AES算法具有更好的性质。本文的主要工作和创新点如下:首先,详细介绍了AES算法的数学基础和算法结构,包括有限域G F(28)上字和字节的运算、加密和解密算法、密钥扩展算法、等价的列混合变换以及等价的解密算法。分析了目前针对密码算法常见的攻击方式,包括强力攻击、差分密码分析、线性密码分析、Square攻击、代数攻击以及功耗分析。通过上述研究,找出了AE...
【文章来源】:西华师范大学四川省
【文章页数】:100 页
【学位级别】:硕士
【部分图文】:
SPN结构
第2章AES算法的数学基础及理论研究16表2-1AES算法密钥长度与分组关系Table2-1KeylengthandgroupingrelationshipofAESalgorithm分组AES-128AES-192AES-256密钥长度Nk(字/字节/位)4/16/1286/24/1928/32/256明文分组长度Nb(字/字节/位)4/16/1284/16/1284/16/128迭代轮数Nr101214每轮的密钥长度(字/字节/位)4/16/1284/16/1284/16/128AES算法的设计准则是以字节为单位进行运算,在执行AES算法时,所有预处理后的数据被分成4行N列的字节矩阵,字节矩阵又称为状态(state)矩阵或中间变量。AES-128算法运算时通常是将明文/密文以44的矩阵形式输入到轮变换中,经过加密和解密变换后数据就转换为输出矩阵。矩阵中的每一个元素都是一个字节。AES-128算法采用的44状态矩阵如图2-2所示:图2-2AES-128状态矩阵Fig.2-2AES-128statematrix状态矩阵中每一列的四个字节构成一个32比特的字,可将状态矩阵视为一个包含四个字的数组0123w,w,w,w,每个字的定义如下:00,01,02,03,010,11,12,13,120,21,22,23,230,31,32,33,3,,,;,,,,,,;,,,waaaawaaaawaaaawaaaaAES-128算法会对明文/密文分组执行十轮的轮变换,除了最后一轮没有列混合变换外,其余九轮都包含相同的4个运算步骤,它们分别存在于S层、P层和密钥加层。AES算法设计者证明了省略最后一轮的列混合变换,不会以任何方式提高或降低密码的安全性,主要是为了在加密和解密结构上更加对称。AES算法加密和解密结构如图2-3所示:非线性层S层包含:(1)字节代替(SubBytes):将状态矩阵中的每个字节通过非线性的S盒替换成对应的字节。S层完成了香农(Shannon)提出的混淆原则。线性混合层P层包含:(2)行移位(ShiftRows):将完成字节代替后的状态矩阵中每一行进行不同
第2章AES算法的数学基础及理论研究17位数的循环移位;(3)列混合(MixColumns):将完成行移位后的状态矩阵中每一列与一个固定的矩阵相乘。P层完成了香农(Shannon)提出的扩散原则。密钥加层包含:(4)轮密钥加(AddRoundKey):将每轮输入的状态矩阵与轮密钥进行按位异或运算,密钥扩展算法将生成每轮运算时的轮密钥。图2-3AES算法加密和解密结构Fig.2-3AESalgorithmencryptionanddecryptionstructure从图2-3中可以看出,AES-128算法结构非常简单,解密过程也就是加密的逆运算,只是顺序上有所改变。由于加密和解密运算顺序不同,导致了在软/硬件上实现AES算法需要两套不同结构的组件,不利于算法的快速实现,针对这一问题采用了等价的解密算法。以AES-128为例,加密和解密算法在开始和结束时都有一个轮密钥加过程,这样的设计能够防止攻击者不用破解密钥就能攻击算法轮变换其他步骤。下面将按照加密和解密轮变换过程中的4个运算步骤,分别叙述其原理和作用。
【参考文献】:
期刊论文
[1]基于改进AES的一次一密加密算法的实现[J]. 刘海峰,陶建萍. 科学技术与工程. 2019(13)
[2]基于严格雪崩距离准则计算的S盒改进[J]. 申笑晨,韩萌. 微电子学与计算机. 2018(06)
[3]AES密钥扩展算法的研究[J]. 何丰,王耀灯. 微电子学与计算机. 2017(10)
[4]基于复合混沌序列的动态密钥AES加密算法[J]. 闫乐乐,李辉. 计算机科学. 2017(06)
[5]AES算法的研究与其密钥扩展算法改进[J]. 刘艳萍,李秋慧. 现代电子技术. 2016(10)
[6]AES密码算法的性能研究与实现[J]. 陈黎震. 现代计算机(专业版). 2012(25)
[7]AES密钥扩展新方法[J]. 杨小东,王毅. 微电子学与计算机. 2012(01)
[8]单向性策略与AES密钥生成算法的改进[J]. 胡亮,袁巍,于孟涛,初剑峰,刘方. 吉林大学学报(工学版). 2009(01)
[9]Rijndael算法的结构归纳与攻击分析[J]. 袁巍,张云英,胡亮,李宏图,王程明. 吉林大学学报(信息科学版). 2008(05)
[10]AES的S盒和逆S盒的代数表达式[J]. 马虹博,刘连浩. 计算机工程. 2006(18)
博士论文
[1]高级加密标准及短分组加密技术应用研究[D]. 刘连浩.中南大学 2006
[2]高级加密标准AES中若干问题的研究[D]. 韦宝典.西安电子科技大学 2003
硕士论文
[1]基于椭圆曲线密码体制和AES的混合加密技术研究[D]. 刘恒壮.哈尔滨工程大学 2019
[2]基于改进的AES算法加密跳频图案研究[D]. 吴星.南昌航空大学 2017
[3]基于遗传算法及其混合算法的S盒设计研究[D]. 张凯.四川师范大学 2016
[4]融合混沌序列和AES的电话语音安全算法研究[D]. 曹宏.湖南师范大学 2015
[5]基于混沌理论的AES动态加密算法研究[D]. 魏宇峰.哈尔滨工程大学 2015
[6]算法的改进及其fpga实现[D]. 张丽红.华侨大学 2012
[7]基于动态思想的SMS4算法研究[D]. 周术洋.湖南大学 2011
[8]基于不可推导性的AES密钥生成算法[D]. 刘博超.吉林大学 2011
[9]高级加密标准AES中MixColumns()函数的改进[D]. 王颖.陕西师范大学 2011
[10]基于AES加密算法的改进及其MATLAB实现[D]. 孙爱娟.哈尔滨理工大学 2009
本文编号:3139147
【文章来源】:西华师范大学四川省
【文章页数】:100 页
【学位级别】:硕士
【部分图文】:
SPN结构
第2章AES算法的数学基础及理论研究16表2-1AES算法密钥长度与分组关系Table2-1KeylengthandgroupingrelationshipofAESalgorithm分组AES-128AES-192AES-256密钥长度Nk(字/字节/位)4/16/1286/24/1928/32/256明文分组长度Nb(字/字节/位)4/16/1284/16/1284/16/128迭代轮数Nr101214每轮的密钥长度(字/字节/位)4/16/1284/16/1284/16/128AES算法的设计准则是以字节为单位进行运算,在执行AES算法时,所有预处理后的数据被分成4行N列的字节矩阵,字节矩阵又称为状态(state)矩阵或中间变量。AES-128算法运算时通常是将明文/密文以44的矩阵形式输入到轮变换中,经过加密和解密变换后数据就转换为输出矩阵。矩阵中的每一个元素都是一个字节。AES-128算法采用的44状态矩阵如图2-2所示:图2-2AES-128状态矩阵Fig.2-2AES-128statematrix状态矩阵中每一列的四个字节构成一个32比特的字,可将状态矩阵视为一个包含四个字的数组0123w,w,w,w,每个字的定义如下:00,01,02,03,010,11,12,13,120,21,22,23,230,31,32,33,3,,,;,,,,,,;,,,waaaawaaaawaaaawaaaaAES-128算法会对明文/密文分组执行十轮的轮变换,除了最后一轮没有列混合变换外,其余九轮都包含相同的4个运算步骤,它们分别存在于S层、P层和密钥加层。AES算法设计者证明了省略最后一轮的列混合变换,不会以任何方式提高或降低密码的安全性,主要是为了在加密和解密结构上更加对称。AES算法加密和解密结构如图2-3所示:非线性层S层包含:(1)字节代替(SubBytes):将状态矩阵中的每个字节通过非线性的S盒替换成对应的字节。S层完成了香农(Shannon)提出的混淆原则。线性混合层P层包含:(2)行移位(ShiftRows):将完成字节代替后的状态矩阵中每一行进行不同
第2章AES算法的数学基础及理论研究17位数的循环移位;(3)列混合(MixColumns):将完成行移位后的状态矩阵中每一列与一个固定的矩阵相乘。P层完成了香农(Shannon)提出的扩散原则。密钥加层包含:(4)轮密钥加(AddRoundKey):将每轮输入的状态矩阵与轮密钥进行按位异或运算,密钥扩展算法将生成每轮运算时的轮密钥。图2-3AES算法加密和解密结构Fig.2-3AESalgorithmencryptionanddecryptionstructure从图2-3中可以看出,AES-128算法结构非常简单,解密过程也就是加密的逆运算,只是顺序上有所改变。由于加密和解密运算顺序不同,导致了在软/硬件上实现AES算法需要两套不同结构的组件,不利于算法的快速实现,针对这一问题采用了等价的解密算法。以AES-128为例,加密和解密算法在开始和结束时都有一个轮密钥加过程,这样的设计能够防止攻击者不用破解密钥就能攻击算法轮变换其他步骤。下面将按照加密和解密轮变换过程中的4个运算步骤,分别叙述其原理和作用。
【参考文献】:
期刊论文
[1]基于改进AES的一次一密加密算法的实现[J]. 刘海峰,陶建萍. 科学技术与工程. 2019(13)
[2]基于严格雪崩距离准则计算的S盒改进[J]. 申笑晨,韩萌. 微电子学与计算机. 2018(06)
[3]AES密钥扩展算法的研究[J]. 何丰,王耀灯. 微电子学与计算机. 2017(10)
[4]基于复合混沌序列的动态密钥AES加密算法[J]. 闫乐乐,李辉. 计算机科学. 2017(06)
[5]AES算法的研究与其密钥扩展算法改进[J]. 刘艳萍,李秋慧. 现代电子技术. 2016(10)
[6]AES密码算法的性能研究与实现[J]. 陈黎震. 现代计算机(专业版). 2012(25)
[7]AES密钥扩展新方法[J]. 杨小东,王毅. 微电子学与计算机. 2012(01)
[8]单向性策略与AES密钥生成算法的改进[J]. 胡亮,袁巍,于孟涛,初剑峰,刘方. 吉林大学学报(工学版). 2009(01)
[9]Rijndael算法的结构归纳与攻击分析[J]. 袁巍,张云英,胡亮,李宏图,王程明. 吉林大学学报(信息科学版). 2008(05)
[10]AES的S盒和逆S盒的代数表达式[J]. 马虹博,刘连浩. 计算机工程. 2006(18)
博士论文
[1]高级加密标准及短分组加密技术应用研究[D]. 刘连浩.中南大学 2006
[2]高级加密标准AES中若干问题的研究[D]. 韦宝典.西安电子科技大学 2003
硕士论文
[1]基于椭圆曲线密码体制和AES的混合加密技术研究[D]. 刘恒壮.哈尔滨工程大学 2019
[2]基于改进的AES算法加密跳频图案研究[D]. 吴星.南昌航空大学 2017
[3]基于遗传算法及其混合算法的S盒设计研究[D]. 张凯.四川师范大学 2016
[4]融合混沌序列和AES的电话语音安全算法研究[D]. 曹宏.湖南师范大学 2015
[5]基于混沌理论的AES动态加密算法研究[D]. 魏宇峰.哈尔滨工程大学 2015
[6]算法的改进及其fpga实现[D]. 张丽红.华侨大学 2012
[7]基于动态思想的SMS4算法研究[D]. 周术洋.湖南大学 2011
[8]基于不可推导性的AES密钥生成算法[D]. 刘博超.吉林大学 2011
[9]高级加密标准AES中MixColumns()函数的改进[D]. 王颖.陕西师范大学 2011
[10]基于AES加密算法的改进及其MATLAB实现[D]. 孙爱娟.哈尔滨理工大学 2009
本文编号:3139147
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3139147.html