预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利(10)授权公告号(10)授权公告号CNCN102664730102664730B(45)授权公告日2014.11.12(21)申请号201210132558.6审查员王怡轩(22)申请日2012.05.02(73)专利权人西安电子科技大学地址710071陕西省西安市太白南路2号(72)发明人郝跃赵哲斐史江一邸志雄李康赵彦尚张译(74)专利代理机构陕西电子工业专利中心61205代理人王品华朱红星(51)Int.Cl.H04L9/06(2006.01)(56)对比文件CN101626289A,2010.01.13,全文.CN1445681A,2003.10.01,全文.权权利要求书4页利要求书4页说明书8页说明书8页附图3页附图3页(54)发明名称基于高级加密标准AES的128比特位密钥扩展方法(57)摘要本发明公开了一种基于高级加密标准AES的128比特位密钥扩展系统及方法,主要解决现有AES加密算法中的128比特密钥扩展过程的低效率和高功耗问题。其实现过程是:在密钥扩展的第一轮对初始密钥进行存储,作为该轮的轮密钥,对轮密钥进行字循环、字节替换、按位异或操作并将所得轮密钥同时存储在本地寄存器和外部存储单元中,供加密流程读取使用;之后每轮都对前一轮所得轮密钥重复上述操作,直到得到所有10个轮密钥,则结束密钥扩展。本发明能保证密钥扩展的实时性以及轮密钥的可重用性,实现密钥扩展的高效率和低功耗,可用于AES加密算法的128比特密钥扩展过程。CN102664730BCN1026473BCN102664730B权利要求书1/4页1.一种基于高级加密标准AES的128比特位密钥扩展系统,包括:轮号计数器单元(1),用于对轮号n进行加一操作,并将轮号n输出,其中轮号n的初始值归零;寄存器堆(2),由位宽均为32比特的44个寄存器构成,用于暂存初始密钥和轮密钥,保证密钥扩展进程能够即时取用;轮密钥存储单元(3),采用位宽为32比特位,深度为44的双口SDRAM,用于存储初始密钥和轮密钥,使得加密流程能够在密钥扩展进行的同时取得已存储的轮密钥,并保证后续数据加密时无需密钥扩展即可直接读取已存储轮密钥;循环寄存器(4),用于存储供字循环单元(5)读取使用的32比特位的值,将初始密钥从高位到低位分为4个32比特位的值,再按此顺序同时将这4个32比特位的数据存入地址为0,1,2,3的寄存器和一个专门用于存储轮密钥的双口SDRAM中;根据轮号n确定寄存器地址a,若轮号n为0-9之外的值,则寄存器地址a的值保持不变,否则按以下规律确定地址:若轮号n为0,则寄存器地址a为3;轮号n每增加1,寄存器地址a的值就增加4,从寄存器地址a所对应的寄存器中取值赋给循环寄存器;字循环单元(5),用于对循环寄存器(4)中的值进行循环左移1个字节的操作,并将结果输出给替换寄存器(6);替换寄存器(6),用于存储供字节替换单元(7)读取使用的32比特位的值;字节替换单元(7),用于将替换寄存器(6)中的值作为地址分为从第31位到第24位、从第23位到第16位、从第15位到第8位和从第7位到第0位这4个字节发送给S盒单元(8),并将S盒单元(8)的返回值按照发送地址时的顺序从高到低组合后输出给按位异或单元(11);S盒单元(8),采用4个预存有S盒的ROM,用于将字节替换单元(7)发送的4个地址在S盒中所对应的4个8比特位的值返回给字节替换单元(7);轮常数选择单元(9),用于根据轮号n,从11个16进制的候选值:0,1,2,4,8,10,20,40,80,1b,36中选出一个值输出给按位异或单元(11);当轮号n为0-9时,对应的轮常数值输出依次为1,2,4,8,10,20,40,80,1b,36,否则,轮常数值输出为0;异或寄存单元(10),包括位宽均为32比特位的0号寄存器、1号寄存器、2号寄存器和3号寄存器,用于存储按位异或单元(11)所要使用的32比特位的值;根据轮号n确定寄存器地址b0,b1,b2和b3,若轮号n为0-9之外的值,则寄存器地址b0,b1,b2和b3中的值均保持不变,否则按以下规律确定地址:若轮号n为0,则寄存器地址b0,b1,b2和b3依次被赋值0,1,2,3;轮号n每增加1,则寄存器地址b0,b1,b2和b3的值均增加4;从寄存器地址b0,b1,b2和b3所对应的寄存器中取值,并分别赋给0号寄存器、1号寄存器、2号寄存器和3号寄存器;按位异或单元(11),包括0号按位异或子单元、1号按位异或子单元、2号按位异或子单元和3号按位异或子单元,用于进行按位异或操作,并将所得结果作为轮密钥输出给寄存器堆(2);其中:对0号寄存器中的值和字节替换操作的输出执行按位异或操作,用此结果再与轮常数值输出进行按位