Aes密钥扩展的方法

文档序号:7869457阅读:14915来源:国知局
专利名称:Aes密钥扩展的方法
技术领域
本发明涉及一种AES密钥扩展方法,其中AES为Advanced Encryption Standard的缩略语,即高级加密标准,參见GB / T 17964 — 2008。
背景技术
AES是密码学中的高级加密标准,是美国联邦政府采用的一种区块加密标准。这个标准用来替代较早的DES(Data Encryption Standard,数据加密标准),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意ー个(如果数据块及密钥长度不足时,会补齐)。AES加密有很多轮的重复和变换。大致步骤如下1、密钥扩展(KeyExpansion),2、初始轮(Initial Round),3、重复轮(Rounds),姆一轮又包括SubBytes、ShiftRows、MixColumns、AddRoundKey, 4、最终轮(Final Round),最终轮没有 MixColumns。AES密钥扩展是将初始密钥值按照ー种算法进行迭代运算,获得每轮加密时所需的密钥。其中每轮需要的密钥均为128比特,而扩展过程和初始密钥则是根据加密位数的不同而不同,128比特AES的初始密钥和毎次扩展得到的生成密钥都是128比特,相应可以知道192和256对应的初始密 钥和每次扩展得到的生成密钥为192比特和256比特。已有AES密钥扩展算法是通过将前ー组的密钥进行运算的到新的密钥,如此迭代,这样,前后密钥之间相关性很大,表现为AES密钥扩展具有直接高效并且快速的优点,但也因此通过其中任何一轮子密钥即可破解全部密钥。进ー步地,可以通过分析其中某一轮子密钥得到前几轮的全部密钥。也可以通过得到某ー轮子密钥使用固定的算法推导出最后ー轮所有的密钥。从以上内容可知,既有的AES扩展算法基于任意ー轮子密钥的获得即可破解初始密钥。另外,在硬件实现过程中既有的AES扩展算法由于采用了迭代算法,每完成一次扩展需要的时间很长,各次运算为串行关系,不利于并行实现。

发明内容
有鉴于此,本发明的目的在于提供一种新的AES密钥扩展方法,提高密钥的破解难度。本发明采用以下技术方案
ー种AES密钥扩展的方法,输入密钥经过预定轮数的扩展生成输出密钥,当前轮输入密钥的第零密钥经过第一变换后与第一密钥运算直接生成或者经过第二变换后生成当前轮的第零输出密钥,当前轮输入密钥的第二密钥与第三密钥运算生成当前轮的第一输出密钥;
第零输出密钥与第一输出密钥运算产生第二输出密钥;第一输出密钥经过第三变换后与所述第二输出密钥运算产生第三输出密钥;
当密钥长度为192比特时,当前轮输入的第四密钥与所述第三输出密钥运算产生第四输出密钥,当前轮输入的第五密钥与所述第四输出密钥运算产生第五输出密钥;
而当密码长度为256比特时,当前轮的后四密钥复用前四密钥的处理电路。从上述技术方案可以看出,依据本发明,不再是基于前ー轮密钥的简单迭代,而是通过密钥间的运算,在通过一定的迭代实现,降低了単一密钥迭代对前轮输入的关联性,增加了破译难度,同时由于前后关联性减小,使得整个电路的时序得到了有效地改善。上述AES密钥扩展的方法,所述第一变换和第三变换至少包括SubWord ()变换。上述AES密钥扩展的方法,在SubWord ()变换前还包括RotWord ()。上述AES密钥扩展的方法,所述第三变换为Rcon[n]操作,其中n为偏移的位数。上述AES密钥扩展的方法,偏移的位数为随机产生。上述AES密钥扩展的方法,所述运算为异或运算。结合附图考虑一下更详细的说明,本发明的上述及其他目的和优点将更加显而易见。


图1为已有的ー种AES密钥扩展的方法的原理图。图2为依据本发明的ー种AES密钥扩展的方法的原理图。
具体实施例方式未更清楚的表明相应的原理,首先对已有的ー种AES密钥扩展的方法进行说明。需要说明的是,当前AES支持的密码长度有三种,分别为128、192和256比特(bit),从而,密钥都是取4Byte,也就是32比特,那么128对应有4个密钥,192对应于6个密钥,而256对应于8个密钥。參照说明书附图1所示的电路结构,每ー轮最多有8个密钥,分别对应于W
到W[7],在图1所示的结构中,需要配置10个输入,也就是每ー轮需要对应有10个密钥,电路比较复杂,电路面积比较大。进ー步地,參见说明书附图1,已有的AES密码扩展方法具有以下特点
已有AES128密钥扩展方法
Sub Word (Roi Word (ff[4])) + P^on{n] + W
= fT[4] r[l] + r[4] = 15]
W[2] + m5] = Wi6]
W[3] + W[6] = W[1]
已有AES192密钥扩展方法
权利要求
1.一种AES密钥扩展的方法,输入密钥经过预定轮数的扩展生成输出密钥,其特征在于,当前轮输入密钥的第零密钥经过第一变换后与第一密钥运算直接生成或者经过第二变换后生成当前轮的第零输出密钥,当前轮输入密钥的第二密钥与第三密钥运算生成当前轮的第一输出密钥;第零输出密钥与第一输出密钥运算产生第二输出密钥;第一输出密钥经过第三变换后与所述第二输出密钥运算产生第三输出密钥;当密钥长度为192比特时,当前轮输入的第四密钥与所述第三输出密钥运算产生第四输出密钥,当前轮输入的第五密钥与所述第四输出密钥运算产生第五输出密钥;而当密码长度为256比特时,当前轮的后四密钥复用前四密钥的处理电路。
2.根据权利要求1所述的AES密钥扩展的方法,其特征在于,所述第一变换和第三变换至少包括SubWord ()变换。
3.根据权利要求2所述的AES密钥扩展的方法,其特征在于,在SubWord()变换前还包括 RotWord ()。
4.根据权利要求1至3任一所述的AES密钥扩展的方法,其特征在于,所述第三变换为 Rcon [η]操作,其中η为偏移的位数。
5.根据权利要求4所述的AES密钥扩展的方法,其特征在于,偏移的位数为随机产生。
6.根据权利要求1所述的AES密钥扩展的方法,其特征在于,所述运算为异或运算。
全文摘要
本发明公开了一种AES密钥扩展的方法,不再是基于前一轮密钥的简单迭代,而是通过密钥间的运算,在通过一定的迭代实现,降低了单一密钥迭代对前轮输入的关联性,增加了破译难度,同时由于前后关联性减小,使得整个电路的时序得到了有效地改善。
文档编号H04L9/06GK103051443SQ20121055791
公开日2013年4月17日 申请日期2012年12月20日 优先权日2012年12月20日
发明者刘大铕, 高美洲, 孙晓宁, 李杨, 张洪柳, 周思远 申请人:山东华芯半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1