[发明专利]基于AES的192比特位密钥扩展系统及方法有效
申请号: | 201210132394.7 | 申请日: | 2012-05-02 |
公开(公告)号: | CN102624520A | 公开(公告)日: | 2012-08-01 |
发明(设计)人: | 史江一;赵哲斐;郝跃;邸志雄;李康;赵彦尚 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;朱红星 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 aes 192 比特 密钥 扩展 系统 方法 | ||
技术领域
本发明属于安全技术领域,涉及数据加密,特别涉及高级加密标准AES中的密钥扩展方法,可用于网络通信。
背景技术
2001年11月美国商务部国家标准技术局NIST公开的高级加密标准AES是用于无密级加密的一种算法。自公开以来,AES算法被广泛的应用于加密协议、通信终端以及服务器等高端产品中。
AES算法采用了Rijnddel对称密钥算法的子集,支持长度为128比特位的分组和长度为128、192和256比特位的密钥。该算法通过对初始密钥进行密钥扩展得到轮密钥,并用轮密钥对128位的数据块进行加密和解密。
在AES算法中,根据初始密钥的长度不同,加密的轮数r有所不同;在初始密钥长度为128比特位、192比特位和256比特位的情况下,相应的轮数r分别为10、12和14。由于每一轮加密都需要不同的128比特位的轮密钥与数据块进行按位异或操作,而初始密钥长度只能为128比特位、192比特位或256比特位,无法为每轮加密提供不同的轮密钥,故该算法包含了密钥扩展算法,用于把初始密钥扩展成长度为1280比特位、1536比特位或1792比特位的数据串,从而生成加密所需要的所有轮密钥。
目前广泛应用的密钥扩展方法有两种:一种是《A Rijndael Cryptoprocessor Using Shared On-the-fly Key Scheduler》所使用的实时密钥扩展方法,即密钥扩展单元在进行密钥扩展的同时为加密进程提供轮密钥;这种方法的缺点在于轮密钥无法重用,因而对于数据量大、需要连续使用轮密钥的场合,持续执行密钥扩展操作所带来的功耗较大;另一种是《AES算法的一种优化的FPGA实现方法》所使用的预密钥扩展方法,即先进行密钥扩展生成所有的轮密钥并存储到内存中,再进行加密;在该方法中,由于加密流程要等待密钥扩展完成之后才能进行,从而增加了加密所需要的时间,降低了整个加密过程的效率。
发明内容
本发明的目的在于针对上述传统方法的不足,提出一种基于AES的192比特位密钥扩展系统及方法,以兼顾密钥扩展的实时性以及轮密钥的可重用性,实现密钥扩展的高效率和低功耗。
为实现上述目的,本发明基于高级加密标准AES的192比特位密钥扩展系统,包括:
扩展计数单元,用于对序号n进行加1操作,并将序号n输出;
暂存单元,由位宽均为32比特的52个寄存器构成,用于暂存初始密钥和轮密钥,保证密钥扩展进程能够即时取用;
轮密钥存储单元,采用位宽为32比特位,深度为52的双口SDRDM,用于存储初始密钥和轮密钥,保证在密钥扩展进行的同时能够为加密流程实时的提供轮密钥,并保证对后续数据块进行加密时无需密钥扩展即可直接读取已存储轮密钥;
循环寄存器,用于存储供字循环单元读取使用的32比特位的值;
字循环单元,用于对循环寄存器中的值进行循环左移1个字节的操作,并将结果输出给替换寄存器;
替换寄存器,用于存储供字节替换单元读取使用的32比特位的值;
字节替换单元,用于将替换寄存器中的值作为地址分为从第31位到第24位、从第23位到第16位、从第15位到第8位和从第7位到第0位这4个字节发送给S盒单元,并将S盒单元的返回值按照发送地址时的顺序从高到低组合后输出给按位异或单元;
S盒单元,采用四个预存有S盒的ROM,用于将字节替换单元发送的四个地址在S盒中所对应的四个8比特位的值返回给字节替换单元;
轮常数选择单元,用于根据序号n,从9个16进制的候选值:0,1,2,4,8,10,20,40,80中选出一个值输出给异或单元;
异或寄存单元,包括位宽均为32比特位的0号寄存器、1号寄存器、2号寄存器、3号寄存器、4号寄存器和5号寄存器,用于存储异或单元所要使用的32比特位的值;
异或单元,包括0号异或子单元、1号异或子单元、2号异或子单元、3号异或子单元、4号异或子单元和5号异或子单元,用于进行按位异或操作,并将所得结果作为轮密钥输出给暂存单元;
循环控制单元,用于根据序号n决定下一步是停止还是继续进行密钥扩展进程,若序号n为8,则结束密钥扩展进程,若轮号为0-7范围内的值,则继续执行密钥扩展进程。
为实现上述目的,本发明基于高级加密标准AES中192比特位初始密钥的扩展方法,包括如下步骤:
1)将对密钥扩展进程进行计数的变量定义为序号n,其取值范围分为0-7以外的整数域和0-7之间的整数域这两种情况;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210132394.7/2.html,转载请声明来源钻瓜专利网。