一种aes加密电路设计方法
技术领域
1.本发明涉及加密电路领域,特别涉及一种aes加密电路设计方法。
背景技术:
2.aes密码算法是目前应用最广的分组迭代型对称密码算法,广泛应用于各种计算机网络、通信网络和传感器网络中,用于保证信息安全,成为各种安全协议中首选的对称密码算法,本专利内容为实现aes密码算法的加解密电路的设计方法。
技术实现要素:
3.本发明的目的在于提供一种aes加密电路设计方法,以解决上述背景技术中提出的问题。
4.为实现上述目的,本发明提供如下技术方案:一种aes加密电路设计方法,包括aes加密电路总体结构,所述aes加密电路总体结构由密钥扩展模块、加密/解密模块和控制模块组成。
5.优选的,所述密钥扩展模块包括3个128位寄存器、4个8*8s盒、1个128位的4选1选通器、1个32位的2选1选通器、1个轮常数产生模块和多个异或运算模块。
6.优选的,所述加密/解密模块包括16个8*8s盒、16个8*8逆s盒、16个{02}{03}乘字节模块、16个{09}{0b}{0d}{0e}乘字节模块、1个128位寄存器、1个128位的2选1选通器、16个8位的4选1选通器、32个8位的2选1选通器和多个异或运算模块。
7.优选的,3个所述128位寄存器分别用来保存种子密钥、每一轮的加密或解密密钥和第10轮加密密钥,4个所述8*8s盒用来实现密钥扩展中的s盒变换,多个所述异或运算模块用于实现密钥扩展中的异或运算。
8.优选的,1个所述轮常数产生模块用于产生密钥扩展中的轮常数,1个所述128位的4选1选通器用于从4个来源中选择1个写入轮密钥寄存器作为下一个周期要使用的轮密钥,1个所述32位的2选1选通器用于从2个来源中选择1个作为s盒变换的输入。
9.优选的,16个所述8*8s盒用于实现加密过程中的s盒变换,16个所述8*8逆s盒用于实现解密过程中的逆s盒变换。
10.优选的,16个所述{02}{03}乘字节模块用于实现加密过程中的{02}乘字节运算和{03}乘字节运算,16个所述{09}{0b}{0d}{0e}乘字节模块用于实现解密过程中的{09}乘字节运算、{0b}乘字节运算、{0d}乘字节运算和{0e}乘字节运算。
11.优选的,多个所述异或运算模块用于实现加密或解密过程中的异或运算,1个所述128位寄存器用于保存每一轮加密或解密变换的结果和最终结果,所述选通器用于从多个数据来源中选择一个输出。
12.优选的,从所述密钥扩展模块和加密/解密模块中选择某一电路模块,某一所述电路模块设置多个。
13.优选的,多个所述某一电路模块用于提高加解密速度。
14.本发明的技术效果和优点:
15.(1)本发明通过设置的密钥扩展模块、加密/解密模块和控制模块,可实现aes密码算法的加解密,用于对计算机网络、通信网络和传感器网络中的敏感信息进行加密保护,以免敏感信息在存储和传输过程中泄露,保证信息安全;
16.(2)本发明通过采用多种技术,在满足算法本身并行性的基础上,节省了大量的电路资源,大大减少了电路的规模,降低了电路的成本;
17.(3)本发明通过在加密或解密过程中,控制模块产生密钥扩展模块和加密/解密模块所需要的全部控制信号,以保证密钥扩展模块和加密/解密模块能够协调配合,正确完成加密或解密功能。
附图说明
18.图1为本发明aes加密电路总体结构示意图。
19.图2为本发明aes加密电路外部信号说明示意图。
20.图3为本发明aes密钥扩展模块电路示意图。
21.图4为本发明aes加密/解密模块电路示意图。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.本发明提供了如图1
‑
4所示的一种aes加密电路设计方法,包括aes加密电路总体结构,aes加密电路总体结构由密钥扩展模块、加密/解密模块和控制模块组成,密钥扩展模块包括3个128位寄存器、4个8*8s盒、1个128位的4选1选通器、1个32位的2选1选通器、1个轮常数产生模块和多个异或运算模块,加密/解密模块包括16个8*8s盒、16个8*8逆s盒、16个{02}{03}乘字节模块、16个{09}{0b}{0d}{0e}乘字节模块、1个128位寄存器、1个128位的2选1选通器、16个8位的4选1选通器、32个8位的2选1选通器和多个异或运算模块,控制模块包括1个加密状态机和1个解密状态机,aes加密电路外部信号说明参见图2;
24.3个128位寄存器分别用来保存种子密钥、每一轮的加密或解密密钥和第10轮加密密钥(也是第0轮解密密钥),4个8*8s盒用来实现密钥扩展中的s盒变换,多个异或运算模块用于实现密钥扩展中的异或运算,1个轮常数产生模块用于产生密钥扩展中的轮常数,1个128位的4选1选通器用于从4个来源中选择1个写入轮密钥寄存器作为下一个周期要使用的轮密钥,1个32位的2选1选通器用于从2个来源中选择1个作为s盒变换的输入,aes密钥扩展模块的电路结构参见图3,同时参见图2的aes加密电路外部信号说明示意图,密钥扩展模块的功能实现,是先在外部密钥装载使能信号loadkey的控制下,将128位种子密钥从外部输入总线din串行输入到密钥扩展模块中的128位密钥寄存器shiftreg_128中保存,然后在控制模块的控制下实时产生每一轮加密或解密所需要的128位轮密钥,并保存在轮密钥寄存器reg_128_0中,供相应加密或解密轮变换使用,需要注意的是,在保存第10轮加密密钥的时候,除将其保存在轮密钥寄存器reg_128_0之外,还要将其保存在reg_128_1中,作为产生
解密轮密钥的种子密钥;
25.16个8*8s盒用于实现加密过程中的s盒变换,16个8*8逆s盒用于实现解密过程中的逆s盒变换,16个{02}{03}乘字节模块用于实现加密过程中的{02}乘字节运算和{03}乘字节运算,16个{09}{0b}{0d}{0e}乘字节模块用于实现解密过程中的{09}乘字节运算、{0b}乘字节运算、{0d}乘字节运算和{0e}乘字节运算,多个异或运算模块用于实现加密或解密过程中的异或运算,1个128位寄存器用于保存每一轮加密或解密变换的结果和最终结果,选通器用于从多个数据来源中选择一个输出,aes加密解密模块的电路结构参见图4,同时参见图2的aes加密电路外部信号说明示意图,加密/解密模块中的加密功能实现,是先在外部明文装载使能信号load_shift的控制下,将128位明文从外部输入总线din串行输入到加密/解密模块中的128位寄存器reg_128中保存,然后通过外部信号staenc启动加密状态机,在加密状态机的控制下,自动实现第0
‑
11轮加密变换,并将得到的128位加密结果(密文)保存在寄存器reg_128中,然后在外部结果移位输出使能信号load_shift的控制下,将128位密文从外部输出总线dout串行输出,加密/解密模块中的解密功能实现,是先在外部密文装载使能信号load_shift的控制下,将128位密文从外部输入总线din串行输入到加密/解密模块中的128位寄存器reg_128中保存,然后通过外部信号stadec启动解密状态机,在解密状态机的控制下,自动实现第0
‑
11轮解密变换,并将得到的128位解密结果(明文)保存在寄存器reg_128中,然后在外部结果移位输出使能信号load_shift的控制下,将128位密文从外部输出总线dout串行输出;
26.从密钥扩展模块和加密/解密模块中选择某一电路模块,某一电路模块设置多个,多个某一电路模块用于提高加解密速度,为了最大限度的开发算法本身具有的并行性,采用将某一种电路模块同时设置多个的方法,用以提高加解密速度,如同时设置16个8*8s盒、16个8*8逆s盒、16个{02}{03}乘字节模块和16个{09}{0b}{0d}{0e}乘字节模块等;
27.同时,在满足算法本身并行性的基础上为尽可能减少电路的规模,以降低电路的成本,采取了多种技术,如技术一:加密、解密共享同一套电路,如技术二:只设置实现一轮加密变换和解密变换所需要的电路,通过分时复用这一轮电路完成11轮加密过程和11轮解密过程,如技术三:密钥扩展采用实时在线产生每一轮子密钥,用后即丢弃,不需要保存11个128位的子密钥,只需要保存第一个子密钥和最后一个子密钥即可,通过采取多种技术,节省了大量的电路资源,减少了电路的规模,降低了电路的成本。
28.本发明工作原理:首先密钥扩展模块的可以将128位的种子密钥扩展为11个128位的子密钥,作为aes加密/解密模块中使用的工作子密钥,进一步的加密/解密模块可以实现加密和解密,加密是将128位明文经过一系列加密变换转换为128位密文,解密是将128位密文经过一系列解密变换转换为明文,其中控制模块可控制加密和解密过程的自动、正确执行,即在加密或解密过程中,控制模块产生密钥扩展模块和加密/解密模块所需要的全部控制信号,以保证密钥扩展模块和加密/解密模块能够协调配合,正确完成加密或解密功能。
29.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
转载请注明原文地址:https://doc.8miu.com/read-1350246.html