CN113505400A - 一种aes加密电路设计方法 - Google Patents
一种aes加密电路设计方法 Download PDFInfo
- Publication number
- CN113505400A CN113505400A CN202110863506.5A CN202110863506A CN113505400A CN 113505400 A CN113505400 A CN 113505400A CN 202110863506 A CN202110863506 A CN 202110863506A CN 113505400 A CN113505400 A CN 113505400A
- Authority
- CN
- China
- Prior art keywords
- encryption
- byte
- module
- decryption
- bit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Abstract
本发明公开了一种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选通器和异或运算模块。本发明设置的密钥扩展模块、加密/解密模块和控制模块,可实现AES密码算法加解密,对计算机网络、通信网络和传感器网络中敏感信息加密保护,以免敏感信息在存储传输过程中泄露,保证信息安全。
Description
技术领域
本发明涉及加密电路领域,特别涉及一种AES加密电路设计方法。
背景技术
AES密码算法是目前应用最广的分组迭代型对称密码算法,广泛应用于各种计算机网络、通信网络和传感器网络中,用于保证信息安全,成为各种安全协议中首选的对称密码算法,本专利内容为实现AES密码算法的加解密电路的设计方法。
发明内容
本发明的目的在于提供一种AES加密电路设计方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种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选通器和多个异或运算模块。
优选的,3个所述128位寄存器分别用来保存种子密钥、每一轮的加密或解密密钥和第10轮加密密钥,4个所述8*8S盒用来实现密钥扩展中的S盒变换,多个所述异或运算模块用于实现密钥扩展中的异或运算。
优选的,1个所述轮常数产生模块用于产生密钥扩展中的轮常数,1个所述128位的4选1选通器用于从4个来源中选择1个写入轮密钥寄存器作为下一个周期要使用的轮密钥,1个所述32位的2选1选通器用于从2个来源中选择1个作为S盒变换的输入。
优选的,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位寄存器用于保存每一轮加密或解密变换的结果和最终结果,所述选通器用于从多个数据来源中选择一个输出。
优选的,从所述密钥扩展模块和加密/解密模块中选择某一电路模块,某一所述电路模块设置多个。
优选的,多个所述某一电路模块用于提高加解密速度。
本发明的技术效果和优点:
(1)本发明通过设置的密钥扩展模块、加密/解密模块和控制模块,可实现AES密码算法的加解密,用于对计算机网络、通信网络和传感器网络中的敏感信息进行加密保护,以免敏感信息在存储和传输过程中泄露,保证信息安全;
(2)本发明通过采用多种技术,在满足算法本身并行性的基础上,节省了大量的电路资源,大大减少了电路的规模,降低了电路的成本;
(3)本发明通过在加密或解密过程中,控制模块产生密钥扩展模块和加密/解密模块所需要的全部控制信号,以保证密钥扩展模块和加密/解密模块能够协调配合,正确完成加密或解密功能。
附图说明
图1为本发明AES加密电路总体结构示意图。
图2为本发明AES加密电路外部信号说明示意图。
图3为本发明AES密钥扩展模块电路示意图。
图4为本发明AES加密/解密模块电路示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了如图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;
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中,作为产生解密轮密钥的种子密钥;
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串行输出;
从密钥扩展模块和加密/解密模块中选择某一电路模块,某一电路模块设置多个,多个某一电路模块用于提高加解密速度,为了最大限度的开发算法本身具有的并行性,采用将某一种电路模块同时设置多个的方法,用以提高加解密速度,如同时设置16个8*8S盒、16个8*8逆S盒、16个{02}{03}乘字节模块和16个{09}{0b}{0d}{0e}乘字节模块等;
同时,在满足算法本身并行性的基础上为尽可能减少电路的规模,以降低电路的成本,采取了多种技术,如技术一:加密、解密共享同一套电路,如技术二:只设置实现一轮加密变换和解密变换所需要的电路,通过分时复用这一轮电路完成11轮加密过程和11轮解密过程,如技术三:密钥扩展采用实时在线产生每一轮子密钥,用后即丢弃,不需要保存11个128位的子密钥,只需要保存第一个子密钥和最后一个子密钥即可,通过采取多种技术,节省了大量的电路资源,减少了电路的规模,降低了电路的成本。
本发明工作原理:首先密钥扩展模块的可以将128位的种子密钥扩展为11个128位的子密钥,作为AES加密/解密模块中使用的工作子密钥,进一步的加密/解密模块可以实现加密和解密,加密是将128位明文经过一系列加密变换转换为128位密文,解密是将128位密文经过一系列解密变换转换为明文,其中控制模块可控制加密和解密过程的自动、正确执行,即在加密或解密过程中,控制模块产生密钥扩展模块和加密/解密模块所需要的全部控制信号,以保证密钥扩展模块和加密/解密模块能够协调配合,正确完成加密或解密功能。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种AES加密电路设计方法,包括AES加密电路总体结构,其特征在于,所述AES加密电路总体结构由密钥扩展模块、加密/解密模块和控制模块组成。
2.根据权利要求1所述的一种AES加密电路设计方法,其特征在于,所述密钥扩展模块包括3个128位寄存器、4个8*8S盒、1个128位的4选1选通器、1个32位的2选1选通器、1个轮常数产生模块和多个异或运算模块。
3.根据权利要求1所述的一种AES加密电路设计方法,其特征在于,所述加密/解密模块包括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选通器和多个异或运算模块。
4.根据权利要求2所述的一种AES加密电路设计方法,其特征在于,3个所述128位寄存器分别用来保存种子密钥、每一轮的加密或解密密钥和第10轮加密密钥,4个所述8*8S盒用来实现密钥扩展中的S盒变换,多个所述异或运算模块用于实现密钥扩展中的异或运算。
5.根据权利要求4所述的一种AES加密电路设计方法,其特征在于,1个所述轮常数产生模块用于产生密钥扩展中的轮常数,1个所述128位的4选1选通器用于从4个来源中选择1个写入轮密钥寄存器作为下一个周期要使用的轮密钥,1个所述32位的2选1选通器用于从2个来源中选择1个作为S盒变换的输入。
6.根据权利要求3所述的一种AES加密电路设计方法,其特征在于,16个所述8*8S盒用于实现加密过程中的S盒变换,16个所述8*8逆S盒用于实现解密过程中的逆S盒变换。
7.根据权利要求6所述的一种AES加密电路设计方法,其特征在于,16个所述{02}{03}乘字节模块用于实现加密过程中的{02}乘字节运算和{03}乘字节运算,16个所述{09}{0b}{0d}{0e}乘字节模块用于实现解密过程中的{09}乘字节运算、{0b}乘字节运算、{0d}乘字节运算和{0e}乘字节运算。
8.根据权利要求7所述的一种AES加密电路设计方法,其特征在于,多个所述异或运算模块用于实现加密或解密过程中的异或运算,1个所述128位寄存器用于保存每一轮加密或解密变换的结果和最终结果,所述选通器用于从多个数据来源中选择一个输出。
9.根据权利要求1所述的一种AES加密电路设计方法,其特征在于,从所述密钥扩展模块和加密/解密模块中选择某一电路模块,某一所述电路模块设置多个。
10.根据权利要求9所述的一种AES加密电路设计方法,其特征在于,多个所述某一电路模块用于提高加解密速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110863506.5A CN113505400A (zh) | 2021-07-29 | 2021-07-29 | 一种aes加密电路设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110863506.5A CN113505400A (zh) | 2021-07-29 | 2021-07-29 | 一种aes加密电路设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113505400A true CN113505400A (zh) | 2021-10-15 |
Family
ID=78015135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110863506.5A Withdrawn CN113505400A (zh) | 2021-07-29 | 2021-07-29 | 一种aes加密电路设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505400A (zh) |
-
2021
- 2021-07-29 CN CN202110863506.5A patent/CN113505400A/zh not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7978851B2 (en) | Keystream encryption device, method, and program | |
Mathur et al. | AES based text encryption using 12 rounds with dynamic key selection | |
TWI402675B (zh) | 低等待時間的區塊密碼術 | |
US10176121B2 (en) | Apparatus and method for memory address encryption | |
US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
JPS5925411B2 (ja) | 暗号処理装置 | |
US20050169463A1 (en) | Hardware cryptographic engine and hardware cryptographic method using an efficient S-BOX implementation | |
WO2012132621A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Buell | Modern symmetric ciphers—Des and Aes | |
CN113505400A (zh) | 一种aes加密电路设计方法 | |
US20240097880A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
Bajaj et al. | AES algorithm for encryption | |
JP4515716B2 (ja) | 拡大鍵生成装置、暗号化装置および暗号化システム | |
EP1629626B1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
CN107437990A (zh) | 加密方法、解密方法、加密装置和解密装置 | |
KR100350207B1 (ko) | 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법 | |
Shepherd | A high speed software implementation of the Data Encryption Standard | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR100494560B1 (ko) | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 | |
US10678709B2 (en) | Apparatus and method for memory address encryption | |
US11750369B2 (en) | Circuit module of single round advanced encryption standard | |
CN114598470B (zh) | 加密方法、解密方法、设备及计算机可读存储介质 | |
EP1514174B1 (en) | Aes mixcolumn transform | |
JPH10153954A (ja) | 暗号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211015 |
|
WW01 | Invention patent application withdrawn after publication |