CN103051443B - Aes密钥扩展的方法 - Google Patents
Aes密钥扩展的方法 Download PDFInfo
- Publication number
- CN103051443B CN103051443B CN201210557912.XA CN201210557912A CN103051443B CN 103051443 B CN103051443 B CN 103051443B CN 201210557912 A CN201210557912 A CN 201210557912A CN 103051443 B CN103051443 B CN 103051443B
- Authority
- CN
- China
- Prior art keywords
- key
- aes
- computing
- wheel
- expansion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种AES密钥扩展的方法,不再是基于前一轮密钥的简单迭代,而是通过密钥间的运算,在通过一定的迭代实现,降低了单一密钥迭代对前轮输入的关联性,增加了破译难度,同时由于前后关联性减小,使得整个电路的时序得到了有效地改善。
Description
技术领域
本发明涉及一种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[0]到W[7],在图1所示的结构中,需要配置10个输入,也就是每一轮需要对应有10个密钥,电路比较复杂,电路面积比较大。
进一步地,参见说明书附图1,已有的AES密码扩展方法具有以下特点:
已有AES128密钥扩展方法
已有AES192密钥扩展方法
已有AES256密钥扩展方法
以已有AES256密钥扩展方法为例,其他的两种长度的密钥具有也就会理解。
其中SubWord()为S盒变换,即对输入数据进行非线性变换,也就是采用已生成的对应关系,将输入数据通过查表的方法得到非线性变化后的结果,并输出。
RotWord()为移位操作,即将输入数据(4Byte,即:32比特)进行移位操作,将第4个Byte数据移至第一个Byte位置,第1~第3Byte数据依次移到第2~第4Byte位置。
Rcon为偏移常量,即将得到的结果与其相加,使原有结果产生一定偏移。
“+”为异或运算。
W[0]~W[7]为初始密钥或前一轮密钥,W[8]~W[15]为生成当前轮密钥。
对于长度为128比特的密钥,或者说AES128只需要实用前四条电路,即图1中所示的W[0]到W[3],其中输入的W[0]经过移位操作,然后进行S盒变换(S_box())的结构进行结果偏移,产生W[4],逻辑上非常简单,此后则进行迭代操作,产生其他的输出密钥。可知,各次运算与前次的运算关联性比较强,是没测得到的扩展运算结果与前次的关联性比较强,破译难度相对不是很高。
另一方面,从以上结构可以看出,由于前后运算的关联性比较强,已有算法每次运算均需要前次的结果作为输入,特别是AES256情况,需要经过两次SubWord()运算,导致关键路径长,电路时序差。
附图2则是改进之后的电路结构,匹配不同长度的AES其具有以下特点:
256比特密钥扩展方法:
W[0]~W[7]为初始密钥或前一轮密钥,W[8]~W[15]为生成当前轮密钥。从以上的结构可以看出,后四个密钥复用前四个密钥的电路,关键路径最长只是用一次SubWord(),电路时序性更强。在未增加电路面积的情况下,电路的并行部分有效增加,运算速度进一步加快,从而,提高运算的效率。
关于偏移的位数n可以采用随机数产生器产生,提高破译的难度。
192比特密钥扩展方法:
W[0]~W[5]为初始密钥或前一轮密钥,W[6]~W[11]为生成当前轮密钥。从以上结构并参考附图2可以看出,关键路径最长也只是用一次SubWord()。
128比特密钥扩展方法:
W[0]~W[3]为初始密钥或前一轮密钥,W[4]~W[7]为生成当前轮密钥。
从AES所支持的三种密钥长度可知,调整生成当前轮密钥的方法,改变迭代方式,从而减小各次运算与前次的关联性,使每次得到的扩展运算结果与前次的关联减小,增加破译难度;同时由于前后关联性的减小,整个电路的时序得到有效改善,在110nm200MHz条件下,改进后的密钥扩展电路工作耗时是为改进的一半,因为根据已有方法产生的电路在AES256情况下需要经过两次SubWord(),关键路径长,在一个时钟周期内无法完成一次扩展操作,改进后的电路扩展中的各次运算均只有一次SubWord(),同时,由于前后关联小,独立性增强,在未增加电路面积的条件下,电路的并行部分有效增加,运算速度进一步加快,效率大幅度提高。
上述内容中关于术语的未尽事宜,可以参考国家标准GB/T 17964—2008。
应知,即便是有意的AES,其破解难度也是非常大的,本文旨在进一步提高其破解难度。诸如异或运算一可以采用其他的逻辑(布尔)运算,以产生所需要的目标值,而对于所说的变换,可以采用AES标准中的运算,也可以独立开发其他的运算。
Claims (6)
1.一种AES密钥扩展的方法,输入密钥经过预定轮数的扩展生成输出密钥,其特征在于,当前轮输入密钥的第零密钥经过第一变换后与第一密钥运算直接生成当前轮的第零输出密钥,当前轮输入密钥的第二密钥与第三密钥运算生成当前轮的第一输出密钥;
第零输出密钥与第一输出密钥运算产生第二输出密钥;第一输出密钥经过第三变换后与所述第二输出密钥运算产生第三输出密钥;
当密钥长度为192比特时,当前轮输入的第四密钥与所述第三输出密钥运算产生第四输出密钥,当前轮输入的第五密钥与所述第四输出密钥运算产生第五输出密钥;
而当密码长度为256比特时,当前轮的后四密钥复用前四密钥的处理电路。
2.根据权利要求1所述的AES密钥扩展的方法,其特征在于,所述第一变换和第三变换至少包括SubWord()变换。
3.根据权利要求2所述的AES密钥扩展的方法,其特征在于,在SubWord()变换前还包括RotWord()。
4.根据权利要求1至3任一所述的AES密钥扩展的方法,其特征在于,所述第三变换为Rcon[n]操作,其中n为偏移的位数。
5.根据权利要求4所述的AES密钥扩展的方法,其特征在于,偏移的位数为随机产生。
6.根据权利要求1所述的AES密钥扩展的方法,其特征在于,所述运算为异或运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210557912.XA CN103051443B (zh) | 2012-12-20 | 2012-12-20 | Aes密钥扩展的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210557912.XA CN103051443B (zh) | 2012-12-20 | 2012-12-20 | Aes密钥扩展的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103051443A CN103051443A (zh) | 2013-04-17 |
CN103051443B true CN103051443B (zh) | 2015-05-13 |
Family
ID=48063952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210557912.XA Expired - Fee Related CN103051443B (zh) | 2012-12-20 | 2012-12-20 | Aes密钥扩展的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103051443B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959648B (zh) * | 2016-06-23 | 2019-04-09 | 浙江宇视科技有限公司 | 一种加密方法、装置及视频监控系统 |
CN111400730B (zh) * | 2020-03-11 | 2022-03-08 | 西南石油大学 | 一种基于弱关联性的aes密钥扩展方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2096786A2 (en) * | 2008-02-29 | 2009-09-02 | Intel Corporation | Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation |
CN101588233A (zh) * | 2008-05-19 | 2009-11-25 | 北京大学深圳研究生院 | 无线传感器网络节点应用中aes协处理器系统与架构 |
EP2200215A1 (en) * | 2008-12-16 | 2010-06-23 | Itt Manufacturing Enterprises, Inc. | Method and apparatus for key expansion to encode data |
-
2012
- 2012-12-20 CN CN201210557912.XA patent/CN103051443B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2096786A2 (en) * | 2008-02-29 | 2009-09-02 | Intel Corporation | Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation |
CN101588233A (zh) * | 2008-05-19 | 2009-11-25 | 北京大学深圳研究生院 | 无线传感器网络节点应用中aes协处理器系统与架构 |
EP2200215A1 (en) * | 2008-12-16 | 2010-06-23 | Itt Manufacturing Enterprises, Inc. | Method and apparatus for key expansion to encode data |
Also Published As
Publication number | Publication date |
---|---|
CN103051443A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105490802B (zh) | 基于gpu的改进sm4并行加解密通信方法 | |
US11546135B2 (en) | Key sequence generation for cryptographic operations | |
Jun et al. | FPGA-based design and implementation of reduced AES algorithm | |
CN103051443B (zh) | Aes密钥扩展的方法 | |
CN106230580A (zh) | 一种可变密钥多重加密方法 | |
CN104219045A (zh) | Rc4 流密码生成器 | |
Kaur et al. | FPGA implementation of efficient hardware for the advanced encryption standard | |
Mukesh et al. | Enhancing AES algorithm with arithmetic coding | |
Gupta | Implementation of optimized des encryption algorithm upto 4 round on spartan 3 | |
Mohan et al. | Revised aes and its modes of operation | |
CN104579693A (zh) | 基于高次二阶logistic映射的嵌入式加密方法及装置 | |
RU2738321C1 (ru) | Способ криптографического преобразования и устройство для его осуществления | |
CN109033023B (zh) | 一种普通轮变换运算单元、普通轮变换电路及aes加密电路 | |
CN112737767A (zh) | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 | |
Al-hazaimeh et al. | Analytical Approach for Data Encryption Standard Algorithm. | |
Thirer | A pipelined FPGA implementation of an encryption algorithm based on genetic algorithm | |
Aatheeswaran et al. | FPGA can be implemented by using Advanced Encryption Standard Algorithm | |
Sangwan et al. | VLSI Implementation of Advanced Encryption Standard | |
CN109150496B (zh) | Aes加密运算单元、aes加密电路及加密方法 | |
Navneet et al. | AES Algorithm with Dynamic Shift Rows and Bit Permuted Mix Column | |
Gayathri et al. | High-Throughput Hardware Implementation of Three Fish Block Cipher Encryption and Decryption on FPGA | |
Lee et al. | A Light-Weight AES Design using LFSR-based S-Box for IoT Applications | |
Sadashiva et al. | Data Encryption and Transition by AES Algorithm with UART | |
Loban | A VHDL Implemetation of the Advanced Encryption Standard | |
Chandu et al. | Implementation of AES Algorithm using Dynamic S-box on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150513 Termination date: 20211220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |