一种AES密钥编排方法

allin2023-04-08  141


一种aes密钥编排方法
技术领域
1.本发明涉及信息安全技术领域,具体为一种aes密钥编排方法。


背景技术:

2.无线局域网在给用户带来便捷的同时,也令人们关注到它的安全性,然而,由于无线网络传输媒介固有的开放性、无线终端资源的受限性、无线终端的移动性以及网络拓扑结构的动态性,因此,安全问题作为无线网络发展中面临的最大挑战,一直是学术界和工业界的研究重点。
3.高级加密标准是在数据加密标准被攻破后,由美国国家标准与技术研究所(nist)发布的一项确定一个非保密性质的、可以公开技术细节并全球免费使用的分组密码算法高级加密标准计划中产生的,自高级加密标准公布之日起,便作为一种核心加密算法应用于各类安全协议之中,因其具有实现速度快,易于实现和高安全性的优点,成为全球大范围使用的一种高级加密标准。同时,在无线信道协议中无论是wifi协议、蓝牙协议还是zigbee协议都采用高级加密标准作为协议内置的加密算法,且现有的轻量级分组加密算法也都以高级加密标准作为参照或者作为高级加密标准的变体,一个好的密码算法应该同时满足效率和安全性,随着物联网和无线传感器网络的快速发展,传统的加密算法已经无法完成当前无线网络环境中对于算法的功耗、效率和安全性能的要求,因此设计了一种aes密钥编排方法增强aes加密过程的安全性。
4.本方案基于802.11协议中krak攻击漏洞所引起的具体攻击方式原理来展开,分析现有密钥扩展方案中存在的漏洞,并结合已知攻击对密钥编排方案进行弥补。


技术实现要素:

5.为实现上述增强aes算法安全性目的,本发明提供如下技术方案:一种aes密钥编排方法,包括二进制整型混沌序列生成模块,其特征在于:所述二进制整型混沌序列生成模块连接有轮函数模块和密钥扩展模块,所述轮函数模块连接有密钥扩展模块,所述密钥扩展模块连接有轮常量表模块。
6.作为优化,所述二进制整型混沌序列生成模块,混沌映射模型采用虫口映射模型,即logistic混沌方程,其映射函数为:x
n+1
=μxn(1-xn),其中xn表示迭代第n次的结果,x
n+1
表示迭代第n+1次的结果,当μ取值范围为(3.57,4],xn∈(0,1)时,此时方程具备混沌特点;将上述混沌映射的值域做整型化处理,得到整数型混沌映射序列:首先将上述混沌映射作等价代换为:λ∈[0,2],xn∈[-1,1],两边左乘a2(a≠0),令zn=axn+a并代入原式化简,令λ=2,压缩z
n+1
的取值空间为[1,2a-1],即可得到如下整数型logistic混沌映射方程:zn∈[1,2a-1],a=2
l-1
,其中l为机器字长比特数,在本算法中l取值为32,令zn取值为整数,则一次迭代产生的值包含32比特的二进制串,使用该二进制串随机序列生成128bit的随机数rand和上述密钥扩展函数的轮常量rcon[i]后3个字节。
[0007]
作为优化,所述二进制整型混沌序列生成模块,加密时选择两个初始密钥k0、k'0,一个是由随机序列生成,一个是获得的;k0作为aes算法的初始密钥,k'0作为aes算法的初始化加密密钥;先将获得的初始密钥k0作为“明文”,将一个128比特的随机数rand作为k'0,将k'0作为aes算法的初始化加密密钥对“明文”k0进行3轮初始化加密操作得到密文k0,将k0作为密钥扩展函数的主密钥k0。
[0008]
作为优化,所述轮函数模块,使用k0采用上述密钥扩展方案生成aes算法的10轮密钥k1,k2,k3,k4,k5,k6,k7,k8,k9,k
10

[0009]
作为优化,所述轮函数模块,加密时,aes算法的初始密钥仍为k0参与第一轮的轮密钥加,后10轮的轮密钥使用k0作为主密钥生成的10个轮密钥参与运算,k'0不参与运算。
[0010]
作为优化,所述轮函数模块,改变列混淆输入,对行移位后的矩阵进行转置运算后再进行一次行移位运算,作为列混淆的输入:mixcolumns(
·
)=mixcolumns(shitrows(shitrows(a)
t
))
[0011]
作为优化,所述密钥扩展模块的第一种扩展方法中,密钥扩展算法在生成密钥时,每轮密钥的第一个字和原有的扩展算法生成方式相同,都是先将上轮密钥的最后一个字作循环位移和字节替换后与第一个字做异或运算并与对应的轮常量异或得到。为了减少轮密钥的相关性,打乱了原有的密钥扩展算法的轮密钥生成方式,每轮密钥的第二个字为上一轮密钥中间两个字生成,第三个字由本轮密钥的第一个字和上轮密钥的第三个字生成,第四个字则由本轮密钥的中间两个字生成。
[0012]
作为优化,所述密钥扩展模块的第二种扩展方法中,改进的轮密钥生成函数通过初始密钥w0(w[0],w[1],w[2],w[3])生成第一轮的密钥w1(w[4],w[5],w[6],w[7]):第一个字的生成方式与方案一密钥扩展函数的生成方式相同,前两个字均由初始密钥计算得到,第三个字由前两个字获得并加入一个新的rcon[i]常量值进行异或操作,第四个字在生成时也增加了一个新的rcon[i]常量值,并与前一个字和初始密钥的第四个字异或得到;第二轮的轮密钥w2(w[8],w[9],w[10],w[11])由前两轮的轮密钥共同生成:w[8]由w[0]和w[5]和轮常量rcon[i]通过异或、字节替换和循环位移操作生成,w[9]选择由w[3]和w[4]生成,并加入了字节替换和循环位移操作,w[10]由本轮密钥的前两个字生成,w[11]由w[1]和w[7]生成;从第三轮开始,轮密钥wi(w[4i],w[4i+1],w[4i+2],w[4i+3])由相邻的前两轮轮密钥共同运算得到:w[4i]由第i-2轮轮密钥的第一个字和第i-1轮轮密钥的第四个字计算产生,运算方式与方案一的算法相同,w[4i+1]由第i-2轮轮密钥的第二个字和第i-1轮轮密钥的第三个字进行异或运算得到,w[4i+2]由第i-2轮轮密钥的第三个字和第i-1轮轮密钥的第二个字做异或运算产生,w[4i+3]由第i-2轮轮密钥第四个字和第i-1轮轮密钥第一个字做异或运算产生。
[0013]
作为优化,所述轮常量表模块通过上述方式生成了一个新的rcon[i]常量值,该常量值会根据初始密钥的不同而发送变化,且rcon[i]中的后三位不在为空,后三个字是根据前两轮的rcon[i]作循环位移并与第一轮的rcon[i]的值异或得到,通过这种生成方法最大限度的将初始密钥序列的随机性特征混合到字rcon[i]中,使得后续对轮密钥进行猜测攻击时,即使破解一个rcon[i]所需的密钥穷尽搜索次数也达到2
32
次,与暴力破解一轮密钥中的一个字所需代价相同,与原密钥扩展算法相比,能够增加每轮的轮密钥被破解的难度,且每轮密钥生成函数所需要使用的rc[i]不在是按照以往的轮数来确定对应的rc[i]的值,而
是通过初始密钥关联并经过一系列运算才能够确定rc[i]及rcon[i]值所对应的常量值,即使攻击者获得其中的相关密钥信息,想要获得全部的信息必须要获得前两轮的rc[i]的值。
[0014]
作为优化,所述轮常量表模块可以通过采用不同的生成方式达到不同的安全效果,适用于不同的应用场景,同时加密时根据加密分组块的数量可以采用不同的密钥扩展次数生成轮密钥,并结合轮常量表模块的数量可以达到流加密效果。
[0015]
本发明的有益效果是:该一种aes密钥编排方法,通过生成新的轮常量表对第一轮密钥进行异或运算增加轮密钥的安全性,同时改变原有的密钥字的关联关系,使得第一轮轮密钥的密钥字不再由前一个字和上一轮的最后一个字组成,将第一轮的密钥字中的一个由本轮密钥的两个字组成,其余两个字由上一轮密钥和轮常量表生成,剩余一个字由本轮和上一轮的密钥字共同构成,通过加入异或操作打乱原有的密钥字的信息并单独生成第一轮和第二轮的密钥字,从第三轮开始每轮密钥均由前两轮生成,降低了轮密钥之间的相关性,通过引入混沌方程具有良好的密码学特性来增加算法的混淆和扩散性能,并结合原始轮函数本身具备的优点将混沌序列和轮函数相结合用于轮密钥的产生,并通过改变轮函数本身的运算和引入初始化加密的概念来抵御针对算法已知的攻击,在经过设计后的算法能够使得在攻击者可以获得初始密钥的情况下也无法破解密文。
附图说明
[0016]
图1为本发明加密流程示意图;
[0017]
图2为本发明密钥扩展方案一示意图;
[0018]
图3为本发明密钥扩展方案二示意图
[0019]
图4为本发明密钥扩展方案二示意图
[0020]
图5为本发明密钥扩展方案二示意图
具体实施方式
[0021]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]
请参阅图1,一种aes-128密钥编排方法,在对敏感数据集使用aes-128加密时,使用软件或硬件实现本发明,通过二进制整型混沌序列生成模块生成随机序列rand,所述二进制整型混沌序列生成模块连接有轮函数模块和密钥扩展模块,所述轮函数模块连接有密钥扩展模块,所述密钥扩展模块连接有轮常量表模块,10轮加密过程为字节替换、行移位、列混淆、轮密钥加操作。
[0023]
所述二进制整型混沌序列生成模块,混沌映射模型采用虫口映射模型,即logistic混沌方程,将上述混沌映射的值域做整型化处理,得到整数型混沌映射序列;使用该二进制串随机序列生成128bit的随机数rand和上述密钥扩展函数的轮常量的后3个字节。
[0024]
所述轮函数模块,其特征在于:加密时选择两个初始密钥,一个是由随机序列生成,一个是获得的;获得的作为aes-128算法的初始密钥,随机序列生成的rand作为aes-128
算法的初始化加密密钥;将获得的作为aes-128算法的初始化加密“明文”,使用初始化加密密钥进行3轮初始化加密操作得到密文,将密文作为密钥扩展函数的主密钥;加密时,aes-128算法的初始密钥仍参与第一轮的轮密钥加,后10轮的轮密钥使用主密钥生成的10个轮密钥参与运算,主密钥不参与轮密钥加操作;改变轮函数的列混淆输入,对行移位后的矩阵进行转置运算后再进行一次行移位运算,作为列混淆的输入。
[0025]
请参阅图2,所述的一种aes-128密钥编排方法,其特征在于:密钥扩展模块中,采用如下方式生成10轮轮密钥:对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:第i轮的轮密钥生成方式:
[0026]
请参阅图3、4、5,所述的一种aes-128密钥编排方法,其特征在于:密钥扩展模块中,采用如下方式生成10轮轮密钥:首先初始密钥为w0(w[0],w[1],w[2],w[3]),通过下列方式生成第一轮的轮密钥w1(w[4],w[5],w[6],w[7]):(w[4],w[5],w[6],w[7]):(w[4],w[5],w[6],w[7]):(w[4],w[5],w[6],w[7]):第二轮的轮密钥(w[8],w[9],w[10],w[11]):第二轮的轮密钥(w[8],w[9],w[10],w[11]):第二轮的轮密钥(w[8],w[9],w[10],w[11]):第二轮的轮密钥(w[8],w[9],w[10],w[11]):第i轮的轮密钥生成方式如下:
[0027]
所述轮常量表模块,其特征在于:所述轮常量表模块产生新的轮常量表,详细过程如下:保持原有的aes-128密钥扩展算法中字节替换不变;对字节循环移位的输出进行矩阵的转置操作,对rcon[i]常量值进行合适的改变,其中主密钥w0为w[0],w[1],w[2],w[3]。步骤1.对主密钥w0(w[0],w[1],w[2],w[3])进行字节替换和循环移位,得到对应新的字为z[0],z[1],z[2],z[3],另步骤2.轮常量rcon[i]中,对值rc[i]进行循环位移,即rotword(rc[i]),得到r'con[i];步骤3.将第二步的轮常量r'con[i]与y[0]进行异或,得到r”con[1],后续的r”con[i]由前一个轮常量作循环位移并与第二步对应的轮常量异或产生,即得到第三步的轮常量r”con[i],计算方法如下:con[i],计算方法如下:步骤4.已知i为轮数,总轮数为s,则对第三部的轮常量r”con[i]生成新的rc[i],有r”c[i]=(b0b1b2b3b4b5b6b7),设r”c[i]前三位b0b1b2表示的十进制数为m,r”c[i-1]后三位b5b6b7表示的十进制数为n,则有:
[0028]
所述轮常量表模块,其特征在于:所述轮常量表模块产生新的轮常量表,通过两种生成方式产生轮常量表:1)aes-128在加密进行密钥扩展10轮轮密钥时,在密钥扩展之前产生3张新轮常量表;2)aes-128在加密进行密钥扩展10轮轮密钥时,后7轮或后8轮或多轮,在每轮扩展之中都产生3张新轮常量表。
[0029]
所述轮常量表模块,其特征在于:所述轮函数模块在进行密钥扩展时通过两种方式实现密钥扩展:1)每次加密一个128比特分组时,使用一次密钥扩展函数生成10轮轮密钥;2)加密所有的128比特分组时共使用一次或多次密钥扩展函数生成10轮轮密钥。
[0030]
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

技术特征:
1.一种aes密钥编排方法,包括二进制整型混沌序列生成模块,其特征在于:所述二进制整型混沌序列生成模块连接有轮函数模块和密钥扩展模块,所述轮函数模块连接有密钥扩展模块,所述密钥扩展模块连接有轮常量表模块。2.根据权利要求1所述的一种aes密钥编排方法,其特征在于:所述二进制整型混沌序列生成模块,混沌映射模型采用虫口映射模型,即logistic混沌方程,将上述混沌映射的值域做整型化处理,得到整数型混沌映射序列;使用该二进制串随机序列生成128bit的随机数rand和上述密钥扩展函数的轮常量的后3个字节。3.根据权利要求1所述的一种aes密钥编排方法,其特征在于:加密时选择两个初始密钥,一个是由随机序列生成,一个是获得的;获得的作为aes算法的初始密钥,随机序列生成的rand作为aes算法的初始化加密密钥;将获得的作为aes算法的初始化加密“明文”,使用初始化加密密钥进行3轮初始化加密操作得到密文,将密文作为密钥扩展函数的主密钥;加密时,aes算法的初始密钥仍参与第一轮的轮密钥加,后10轮的轮密钥使用主密钥生成的10个轮密钥参与运算;改变轮函数的列混淆输入,对行移位后的矩阵进行转置运算后再进行一次行移位运算,作为列混淆的输入。4.根据权利要求1所述的一种aes密钥编排方法,其特征在于:密钥扩展模块中,采用如下两种方式生成10轮轮密钥:第一种方式中,对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:第一种方式中,对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:第一种方式中,对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:第一种方式中,对初始密钥为w[0],w[1],w[2],w[3],生成第一轮密钥的方法如下:第i轮的轮密钥生成方式:第二种方式中,首先初始密钥为w0(w[0],w[1],w[2],w[3]),通过下列方式生成第一轮的轮密钥w1(w[4],w[5],w[6],w[7]):(w[4],w[5],w[6],w[7]):(w[4],w[5],w[6],w[7]):(w[4],w[5],w[6],w[7]):第二轮的轮密钥(w[8],w[9],w[10],w[11]):
第i轮的轮密钥生成方式如下:5.根据权利要求1所述的一种aes密钥编排方法,其特征在于:所述轮常量表模块产生新的轮常量表,详细过程如下:保持原有的aes密钥扩展算法中字节替换不变;对字节循环移位的输出进行矩阵的转置操作,对rcon[i]常量值进行合适的改变,其中主密钥w0为w[0],w[1],w[2],w[3]。步骤1.对主密钥w0(w[0],w[1],w[2],w[3])进行字节替换和循环移位,得到对应新的字为z[0],z[1],z[2],z[3],另步骤2.轮常量rcon[i]中,对值rc[i]进行循环位移,即rotword(rc[i]),得到r'con[i];步骤3.将第二步的轮常量r'con[i]与y[0]进行异或,得到r”con[1],后续的r”con[i]由前一个轮常量作循环位移并与第二步对应的轮常量异或产生,即得到第三步的轮常量r”con[i],计算方法如下:con[i],计算方法如下:步骤4.已知i为轮数,总轮数为s,则对第三部的轮常量r”con[i]生成新的rc[i],有r”c[i]=(b0b1b2b3b4b5b6b7),设r”c[i]前三位b0b1b2表示的十进制数为m,r”c[i-1]后三位b5b6b7表示的十进制数为n,则有:6.根据权利要求1所述的一种aes密钥编排方法,其特征在于:所述所述轮常量表模块产生新的轮常量表,通过两种生成方式产生轮常量表:1)密钥扩展10轮密钥时,共产生3张新轮常量表;2)密钥扩展10轮密钥时,后7轮或后8轮或多轮,每轮扩展都产生3张新轮常量表。7.根据权利要求1所述的一种aes密钥编排方法,其特征在于:所述轮函数模块在进行密钥扩展时通过两种方式实现密钥扩展:1)每次加密一个分组时,使用一次密钥扩展函数生成10轮轮密钥;2)加密所有分组时共使用一次或多次密钥扩展函数生成10轮轮密钥。

技术总结
本发明涉及一种AES密钥编排方法。本发明首先使用混沌方程具有良好的密码学特性来增加算法的混淆和扩散性能,结合原始轮函数本身具备的优点将混沌序列和轮函数相结合用于轮密钥的产生,通过改变轮函数本身的运算和引入初始化加密的概念来抵御针对算法已知的攻击,然后设计了新的轮常量表和两种密钥编排方案,降低了轮密钥之间的相关性,使得轮密钥在第二轮时就可达到暴力破解强度,同时,使用本发明的算法能够实现对分组的流加密,在每次加密明文分组时使用相同的初始密钥时也能产生不同的轮密钥,可以抵抗针对无线信道协议的KRAK攻击,极大的提高了原算法的安全性能。极大的提高了原算法的安全性能。极大的提高了原算法的安全性能。


技术研发人员:朱巍伟 仇化平 李子祺
受保护的技术使用者:哈尔滨理工大学
技术研发日:2022.04.20
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-9588.html

最新回复(0)