CN204334600U - 一种适用于有限io资源的fpga的aes加解密电路 - Google Patents
一种适用于有限io资源的fpga的aes加解密电路 Download PDFInfo
- Publication number
- CN204334600U CN204334600U CN201420761593.9U CN201420761593U CN204334600U CN 204334600 U CN204334600 U CN 204334600U CN 201420761593 U CN201420761593 U CN 201420761593U CN 204334600 U CN204334600 U CN 204334600U
- Authority
- CN
- China
- Prior art keywords
- fpga
- unit
- data
- aes
- applicable
- 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.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本实用新型涉及一种适用于有限IO资源的FPGA的AES加解密电路,包括FPGA芯片、数据管理模块和数据处理模块,所述的数据处理模块包括输入缓冲区、加密单元、解密单元和输出缓冲区和命令处理单元,所述的加密单元和解密单元分别与输入缓冲区和输出缓冲区连接,所述的输入缓冲区、输出缓冲区和命令处理单元分别与FPGA芯片的数据引脚连接,所述的数据管理模块与FPGA芯片连接。与现有技术相比,本实用新型具有节省10资源、程序可移植性强等优点。
Description
技术领域
本实用新型涉及通信领域,尤其是涉及一种适用于有限IO资源的FPGA的AES加解密电路。
背景技术
随着物联网的发展,射频通信逐渐成为一种常见的信息交换方式。伴随着现代化的发展,这种信息交换方式的安全性越为越受到各方面的威胁,因此有必要对物联网框架下的射频通信方式进行信息加密保护。信息加密技术是保障信息安全的核心技术。在物联网通信链路系统中主要采用的是传输加密。信息加密算法有很多种,目前在数据通信使用最普遍的算法有AES算法。AES加密算法即密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijindael加密法,是美国联邦政府采用的一种区块加密标准。
AES加密过程是在一个4X4的字节矩阵上运行,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是区块中的一个Byte)。加密时,各轮AES加循环(除最后一轮处)均包含四个步骤:AddRoundKey,SubBytes,ShiftRows,MixColums。
AddRoundKey:此步骤中,回合密钥将与原矩阵合并。在每次的加密循环中,都会产生一把回合密钥(通过Rijndael密钥生成方案产生),这把密钥大小会跟原矩阵一样,以与原矩阵中每个对应字节异或加法,在初始化的第一个回合中,State每个状态中的字节与对应Cipher Key的字节做异或(⊕)运算,生成的结果做为新的State,在后续的回合中State只与该回合中的Round Key做异或运算。
SubBytes:此步骤中,矩阵中的各个字节通过一个固定的S-BOX按公式2进行转换,即以State中16进制数为脚标去查S-BOX中值,结果替换原State中的值。
ShiftRows:此步骤是对State的每一行进行左循环移位,移位次数与所在行n(0≤n≤3)有关,第n行移位n次。
MixColums:每一个起先的四个字节通过线性变换互相结合。每一直行的四个元素分别当作1,x,x2,x3的系数,合并即为GF(28)中的一个多项式,接着将此多项式和一个固定的多项式c(x)=3x2+x2+x+2在modulox4+1下相乘。
在现有技术条件下使用FPGA实现AES加密和解密的过程中,需要使用大量的IO引脚资源,一方面会使器件成本大大提高,另一方面当FPGA的数据引脚有限时,因AES加密和解密所需的引脚数目很多,不能满足AES加密和解密的需求。
实用新型内容
本实用新型的目的就是为了克服上述现有技术存在的缺陷而提供一种节省IO资源、程序可移植性强的适用于有限IO资源的FPGA的AES加解密电路。
本实用新型的目的可以通过以下技术方案来实现:
一种适用于有限IO资源的FPGA的AES加解密电路,包括FPGA芯片、数据管理模块和数据处理模块,所述的数据处理模块包括输入缓冲区、加密单元、解密单元和输出缓冲区和命令处理单元,所述的加密单元和解密单元分别与输入缓冲区和输出缓冲区连接,所述的输入缓冲区、输出缓冲区和命令处理单元分别与FPGA芯片的数据引脚连接,所述的数据管理模块与FPGA芯片连接。
所述的数据管理模块包括数据类型管理器和状态管理器,所述的数据类型管理器输入端与FPGA芯片的地址引脚连接,第一输出端分别通过与FPGA芯片的读、写使能信号相与取反后,再分别与输入缓冲区和输出缓冲区连接,第二输出端分别与FPGA芯片的读、写使能信号相与取反后,再分别与命令处理单元和状态管理器连接,所述的状态管理器的输出端和命令处理单元的输出端共同输出状态信号到FPGA芯片。
所述的FPGA通过复位引脚分别与输入缓冲区、加密单元、解密单元和输出缓冲区和命令处理单元连接。
所述的FPGA通过时钟引脚和锁相环分别与输入缓冲区、加密单元、解密单元和输出缓冲区和命令处理单元连接。
所述的数据引脚为8位数据引脚。
所述的加密单元内嵌有AES加密算法的逻辑电路,所述的解密单元内嵌有AES解密算法的逻辑电路。
与现有技术相比,本实用新型具有以下优点:
一、节省IO资源,相比于其他的AES加密结构,本实用新型能够节省75%的IO资源,大大提升了IO资源的利用率,复用通道数可自由配置。
二、程序可移植性强,适合大部分FPGA开发平台。
附图说明
图1为本实用新型的系统结构和信号流图。
具体实施方式
下面结合附图和具体实施例对本实用新型进行详细说明。
实施例:
如图1所示,一种适用于有限IO资源的FPGA的AES加解密电路,包括FPGA、数据管理模块和数据处理模块,数据处理模块包括输入缓冲区31、加密单元32、解密单元33和输出缓冲区34和命令处理单元35,加密单元32和解密单元33分别与输入缓冲区31和输出缓冲区34连接,输入缓冲区31、输出缓冲区34和命令处理单元35分别与FPGA的8位数据引脚连接,加密单元内嵌有AES加密算法的逻辑电路,解密单元内嵌有AES解密算法的逻辑电路。数据管理模块与FPGA连接,用以控制数据处理模块中数据的读写、控制数据的输入输出以及地址的选择。
数据管理模块包括数据类型管理器21和状态管理器22,数据类型管理器21输入端与FPGA的地址引脚连接,第一输出端分别通过与FPGA的读、写使能信号相与取反后,再分别与输入缓冲区31和输出缓冲区34连接,第二输出端分别与FPGA的读、写使能信号相与取反后,再分别与命令处理单元35和状态管理器22连接,状态管理器22的输出端和命令处理单元35的输出端共同输出状态信号到FPGA。
FPGA通过复位引脚分别与输入缓冲区31、加密单元32、解密单元33和输出缓冲区34和命令处理单元35连接,并且FPGA还通过时钟引脚和锁相环分别与输入缓冲区31、加密单元32、解密单元33和输出缓冲区34和命令处理单元35连接。
本实用新型提出一种新的设计思路:对加密过程和解密过程中具有类似功能引脚(如加密数据和解密数据,都是8位)或同一个过程中相似功能引脚(如待加密数据和已加密数据,都是8位数据引脚,只是输入输出方向不同)进行管脚复用, 通过命令来控制加、解密过程。
设计思路是将AES加、解密单元封装成一个集成器件,因此必须从四个方面对数据进行管理,一个是数据输入、输出方向,一个是数据的写入、读出,再一个是数据地址管理,最后一个是数据类型管理。
输入、输入:相对于引脚来讲,数据是输入还是输出。输入数据包括待加密的数据、待解密的数据、加密密钥、解密密钥、命令数据、地址数据、读写信号、使能信号;输出数据包括已加密数据、已解密数据。
写入、读出:数据写入、读出指令,控制数据输入、输出。
数据地址管理:因优化后的程序模块中包含三个程序模块,一个是加密单元,一个解密单元,还有一个是命令处理单元,复用后只保留8个数据引脚,因此需要输入的数据应当被送到哪个程序模块中。
数据类型管理:优化后的程序模块中包含两种数据类型,一种是数据,主要是用户输入输出数据,一种是命令,命令数据通过命令处理单元解析,解析后的数据即加密单元和解密单元的控制指令。
本实用新型工作步骤如下:
1)数据处理模块接收输入数据并缓存到输入缓存区中,具体包括以下步骤;
11)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤11);若否,进行步骤12);
12)判断写地址初始化信号a1是否为1,若是,输入缓存写地址指针复位,返回步骤11);若否,则进行步骤13);
13)判断输入缓存使能信号E_i是否处于下降沿,若是,将接收到的数据写入输入缓存器,地址指针自加1;若否,返回步骤11);
2)FPGA芯片通过控制命令将输入缓存区中的数据送入加密单元或解密单元中,具体包括以下步骤;
21)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤21),若否,进行步骤22);
22)判断读地址初始化信号a2是否为1,若是,复位输入缓存写地址指针复位,返回步骤21),若否,则进行步骤23);
23)判断数据有效信号v1是否为1,若是,进行步骤24),若否,进行步骤26);
24)判断时钟信号c是否为下降沿,若是,进行步骤25),若否,回到步骤21);
25)读出缓存器中地址指针指向地址的内容,送往AES加密单元,地址指针自加1,回到步骤21);
26)判断密钥有效信号v2是否为1,若是,进行步骤27),若否,回到步骤21);
27)判断时钟信号c是否为下降沿,若是,进行步骤28),若否,回到步骤21);
28)读出缓存器中地址指针指向地址的内容,送往AES解密单元,地址指针自加1,回到步骤21);
3)FPGA芯片通过控制命令将加密或解密完成的数据送到输出缓存区,具体包括以下步骤;
31)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤31);若否,进行步骤32);
32)判断数据信号v3是否为1,若是,进行步骤33);若否,回到步骤31);
33)判断读地址初始化信号a3是否为1,若是,复位输出缓存写地址指针,返回步骤31);若否,则进行步骤34);
34)判断输入缓存使能信号E_o是否处于下降沿,若是,将接收到的数据写入输出缓存器,地址指针自加1;若否,返回步骤31);
4)FPGA芯片通过控制命令将输出缓存中的数据读出;具体包括以下步骤:
41)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤41),若否,进行步骤42);
42)判断数据数据类型选择信号s是否为1,若是,则读出信号为加密数据,进行步骤43),若否,则读出信号为解密数据,进行步骤46);
43)判断读地址初始化信号a4是否为1,若是,复位读地址指针,回到步骤41),若否,进行步骤44);
44)判断时钟信号c是否为下降沿,若是,进行步骤45),若否,回到步骤41);
45)读出缓存器中地址指针指向地址的内容,送往数据IO端口,地址指针自加1,回到步骤41);
46)判断时钟信号c是否为下降沿,若是,进行步骤47),若否,回到步骤41);
47)读出缓存器中地址指针指向地址的内容,送往数据IO端口,地址指针自加1,回到步骤41);
5)通过状态管理器和命令模块发送系统状态信号,具体包括以下步骤:
51)判断状态使能信号E_s是否为1,若是,则状态管理器被使能工作,b11=b12,b21=b22,k11=k12,k21=k22,若否,回到步骤51);
52)信号经过四个二输入与门得到q1、q2、q3和q4,4个信号再过四输入或门得到状态信号p,并将信号p送到状态输出IO口上,回到步骤51)。
为验证设计正确性,实验采用ModelSim对设计模型进行测试验证。时钟采用50MHz,通过编写相关测试向量,使输入到模型中的16进制数据为AA22113311331155 11661177 21212121,密钥为16进制数据603DEB1015CA71BE 2B73AEF0857D7781。加密后的16进制数据为5A287C9FCDBC6D35 F3D2679C 4CB2F5B0解密后的16进制数据就为02986DF88209EAA2 652E4125 11C98F9F。
上述数据与采用其它方向实现AES计算的工具进行比较,结果完全一致。通过仿真测试设计模型可知,模型设计正确。
Claims (6)
1.一种适用于有限IO资源的FPGA的AES加解密电路,包括FPGA芯片、数据管理模块和数据处理模块,其特征在于,所述的数据处理模块包括输入缓冲区(31)、加密单元(32)、解密单元(33)和输出缓冲区(34)和命令处理单元(35),所述的加密单元(32)和解密单元(33)分别与输入缓冲区(31)和输出缓冲区(34)连接,所述的输入缓冲区(31)、输出缓冲区(34)和命令处理单元(35)分别与FPGA芯片的数据引脚连接,所述的数据管理模块与FPGA芯片连接。
2.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密电路,其特征在于,所述的数据管理模块包括数据类型管理器(21)和状态管理器(22),所述的数据类型管理器(21)输入端与FPGA芯片的地址引脚连接,第一输出端分别通过与FPGA芯片的读、写使能信号相与取反后,再分别与输入缓冲区(31)和输出缓冲区(34)连接,第二输出端分别与FPGA芯片的读、写使能信号相与取反后,再分别与命令处理单元(35)和状态管理器(22)连接,所述的状态管理器(22)的输出端和命令处理单元(35)的输出端共同输出状态信号到FPGA芯片。
3.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密电路,所述的FPGA通过复位引脚分别与输入缓冲区(31)、加密单元(32)、解密单元(33)和输出缓冲区(34)和命令处理单元(35)连接。
4.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密电路,所述的FPGA通过时钟引脚和锁相环分别与输入缓冲区(31)、加密单元(32)、解密单元(33)和输出缓冲区(34)和命令处理单元(35)连接。
5.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密电路,其特征在于,所述的数据引脚为8位数据引脚。
6.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密电路,其特征在于,所述的加密单元(32)内嵌有AES加密算法的逻辑电路,所述的解密单元(33)内嵌有AES解密算法的逻辑电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201420761593.9U CN204334600U (zh) | 2014-12-05 | 2014-12-05 | 一种适用于有限io资源的fpga的aes加解密电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201420761593.9U CN204334600U (zh) | 2014-12-05 | 2014-12-05 | 一种适用于有限io资源的fpga的aes加解密电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN204334600U true CN204334600U (zh) | 2015-05-13 |
Family
ID=53170905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201420761593.9U Active CN204334600U (zh) | 2014-12-05 | 2014-12-05 | 一种适用于有限io资源的fpga的aes加解密电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN204334600U (zh) |
-
2014
- 2014-12-05 CN CN201420761593.9U patent/CN204334600U/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3337082B1 (en) | Method and system for generation of cipher round keys by bit-mixers | |
CN108073353B (zh) | 一种数据处理的方法及装置 | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US9418246B2 (en) | Decryption systems and related methods for on-the-fly decryption within integrated circuits | |
GB2531885A (en) | Address-dependent key generator by XOR tree | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
US11429751B2 (en) | Method and apparatus for encrypting and decrypting data on an integrated circuit | |
CN106533652A (zh) | 一种基于xts-sm4的存储加解密方法及装置 | |
CN103973432A (zh) | 一种基于fpga和usb接口芯片的sm4算法加密设备 | |
CN112329038A (zh) | 一种基于usb接口的数据加密控制系统及芯片 | |
US9602281B2 (en) | Parallelizable cipher construction | |
CN210955077U (zh) | 一种基于国密算法和puf的总线加解密装置 | |
CN103336920B (zh) | 用于无线传感网络soc芯片的安全系统 | |
CN105721139B (zh) | 一种适用于有限io资源的fpga的aes加解密方法及电路 | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN105049203A (zh) | 一种支持多工作模式的可配置3des加解密算法电路 | |
US20120321079A1 (en) | System and method for generating round keys | |
CN204334600U (zh) | 一种适用于有限io资源的fpga的aes加解密电路 | |
CN108763982B (zh) | 一种适用于rfid阅读器的des加密解密装置 | |
CN113158203A (zh) | 一种soc芯片、电路和soc芯片的外部数据读写方法 | |
CN102110038B (zh) | 一种安全类芯片的测试电路 | |
CN107872310A (zh) | 一种计算机可读存储介质和应用该介质的rfid系统 | |
CN109194607B (zh) | 基于本地的数据传输芯片及含有该芯片的电子设备 | |
KR101375670B1 (ko) | 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템 | |
US20240007267A1 (en) | Side-channel resistant bulk aes encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 200082 No. 76, Qigihar Road, Shanghai, Yangpu District Patentee after: Shanghai Aerospace Intelligent Equipment Co.,Ltd. Address before: 200082 No. 76, Qigihar Road, Shanghai, Yangpu District Patentee before: SHANGHAI AEROSPACE COMMUNICATION ELECTRIC Co. |