一种适用于有限IO资源的FPGA的AES加解密方法及电路技术

技术编号:13323183 阅读:74 留言:0更新日期:2016-07-11 09:47
本发明专利技术涉及一种适用于有限IO资源的FPGA的AES加解密方法,包括以下步骤:1)数据处理模块接收输入数据并缓存到输入缓存区中;2)FPGA芯片通过控制命令将输入缓存区中的数据送入加密单元或解密单元中;3)FPGA芯片通过控制命令将加密或解密完成的数据送到输出缓存区;4)FPGA芯片通过控制命令将输出缓存中的数据读出;5)通过状态管理器和命令模块发送系统状态信号。与现有技术相比,本发明专利技术具有节省IO资源、程序可移植性强等优点。

【技术实现步骤摘要】


本专利技术涉及通信领域,尤其是涉及一种适用于有限IO资源的FPGA的AES加解密方法及电路

技术介绍

随着物联网的发展,射频通信逐渐成为一种常见的信息交换方式。伴随着现代化的发展,这种信息交换方式的安全性越为越受到各方面的威胁,因此有必要对物联网框架下的射频通信方式进行信息加密保护。信息加密技术是保障信息安全的核心技术。在物联网通信链路系统中主要采用的是传输加密。信息加密算法有很多种,目前在数据通信使用最普遍的算法有AES算法。AES加密算法即密码学中的高级加密标准(AdvancedEncryptionStandard,AES),又称Rijindael加密法,是美国联邦政府采用的一种区块加密标准。
AES加密过程是在一个4X4的字节矩阵上运行,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是区块中的一个Byte)。加密时,各轮AES加循环(除最后一轮处)均包含四个步骤:AddRoundKey,SubBytes,ShiftRows,MixColums。
AddRoundKey:此步骤中,回合密钥将与原矩阵合并。在每次的加密循环中,都会产生一把回合密钥(通过Rijndael密钥生成方案产生),这把密钥大小会跟原矩阵一样,以与原矩阵中每个对应字节异或加法,在初始化的第一个回合中,State每个状态中的字节与对应CipherKey的字节做异或(⊕)运算,生成的结果做为新的State,在后续的回合中State只与该回合中的RoundKey做异或运算。
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)=3x3+x2+x+2在modulox4+1下相乘。
在现有技术条件下使用FPGA实现AES加密和解密的过程中,需要使用大量的IO引脚资源,一方面会使器件成本大大提高,另一方面当FPGA的数据引脚有限时,因AES加密和解密所需的引脚数目很多,不能满足AES加密和解密的需求。

技术实现思路

本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种节省IO资源、程序可移植性强的适用于有限IO资源的FPGA的AES加解密方法及电路。
本专利技术的目的可以通过以下技术方案来实现:
一种适用于有限IO资源的FPGA的AES加解密方法,包括以下步骤:
1)数据处理模块接收输入数据并缓存到输入缓存区中;
2)FPGA芯片通过控制命令将输入缓存区中的数据送入加密单元或解密单元中;
3)FPGA芯片通过控制命令将加密或解密完成的数据送到输出缓存区;
4)FPGA芯片通过控制命令将输出缓存中的数据读出;
5)通过状态管理器和命令模块发送系统状态信号。
所述的步骤1)具体包括以下步骤:
11)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤11);若否,进行步骤12);
12)判断写地址初始化信号a1是否为1,若是,输入缓存写地址指针复位,返回步骤11);若否,则进行步骤13);
13)判断输入缓存使能信号E_i是否处于下降沿,若是,将接收到的数据写入输入缓存器,地址指针自加1;若否,返回步骤11)。
所述的步骤2)具体包括以下步骤:
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)具体包括以下步骤:
31)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤31);若否,进行步骤32);
32)判断数据信号v3是否为1,若是,进行步骤33);若否,回到步骤31);
33)判断读地址初始化信号a3是否为1,若是,复位输出缓存写地址指针,返回步骤31);若否,则进行步骤34);
34)判断输入缓存使能信号E_o是否处于下降沿,若是,将接收到的数据写入输出缓存器,地址指针自加1;若否,返回步骤31)。
所述的步骤4)具体包括以下步骤:
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)。
一种适用于有限IO资源的FPGA的AES加解密电路,包括FPGA芯片、数据管理模块和数据处理模块,所述的数据处理模块包括输入缓冲区、加密单元、解密单元和输出缓冲区和命令处理单元,所述的加密单元和解密单元分别与输入缓冲区和输出缓冲区连接,所述的输入缓冲区、输出缓冲区和命令处理单元分别与FPGA芯片的数据引脚连接,所述的数据管理模块与FPGA芯片连接,用以控制数据处理模块中数据的读写、控制数据的输入输出以及地址的选择。
所述的数据管理模块包括数据类型管理器和状态管理器,所述的数据类型管理器输入端与FPGA芯片的地址引脚连接,第一输出端分别通过与FPGA芯片的读、写使能信号相与取反后,再分别与输入缓冲区和输出缓冲区连接,第二输出端分别与FPGA芯片的读、写使能信号相与取反后,再本文档来自技高网
...

【技术保护点】
一种适用于有限IO资源的FPGA的AES加解密方法,其特征在于,包括以下步骤:1)数据处理模块接收输入数据并缓存到输入缓存区中;2)FPGA芯片通过控制命令将输入缓存区中的数据送入加密单元或解密单元中;3)FPGA芯片通过控制命令将加密或解密完成的数据送到输出缓存区;4)FPGA芯片通过控制命令将输出缓存中的数据读出;5)通过状态管理器和命令模块发送系统状态信号。

【技术特征摘要】
1.一种适用于有限IO资源的FPGA的AES加解密方法,其特征在于,包括
以下步骤:
1)数据处理模块接收输入数据并缓存到输入缓存区中;
2)FPGA芯片通过控制命令将输入缓存区中的数据送入加密单元或解密单元
中;
3)FPGA芯片通过控制命令将加密或解密完成的数据送到输出缓存区;
4)FPGA芯片通过控制命令将输出缓存中的数据读出;
5)通过状态管理器和命令模块发送系统状态信号。
2.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密方
法,其特征在于,所述的步骤1)具体包括以下步骤:
11)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤11);若否,
进行步骤12);
12)判断写地址初始化信号a1是否为1,若是,输入缓存写地址指针复位,
返回步骤11);若否,则进行步骤13);
13)判断输入缓存使能信号E_i是否处于下降沿,若是,将接收到的数据写入
输入缓存器,地址指针自加1;若否,返回步骤11)。
3.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密方
法,其特征在于,所述的步骤2)具体包括以下步骤:
21)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤21),若否,
进行步骤22);
22)判断读地址初始化信号a2是否为1,若是,复位输入缓存写地址指针复
位,返回步骤21),若否,则进行步骤23);
23)判断数据有效信号v1是否为1,若是,进行步骤24),若否,进行步骤
26);
24)判断时钟信号c是否为下降沿,若是,进行步骤25),若否,回到步骤
21);
25)读出缓存器中地址指针指向地址的内容,送往AES加密单元,地址指针

\t自加1,回到步骤21);
26)判断密钥有效信号v2是否为1,若是,进行步骤27),若否,回到步骤
21);
27)判断时钟信号c是否为下降沿,若是,进行步骤28),若否,回到步骤
21);
28)读出缓存器中地址指针指向地址的内容,送往AES解密单元,地址指针
自加1,回到步骤21)。
4.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密方
法,其特征在于,所述的步骤3)具体包括以下步骤:
31)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤31);若否,
进行步骤32);
32)判断数据信号v3是否为1,若是,进行步骤33);若否,回到步骤31);
33)判断读地址初始化信号a3是否为1,若是,复位输出缓存写地址指针,
返回步骤31);若否,则进行步骤34);
34)判断输入缓存使能信号E_o是否处于下降沿,若是,将接收到的数据写
入输出缓存器,地址指针自加1;若否,返回步骤31)。
5.根据权利要求1所述的一种适用于有限IO资源的FPGA的AES加解密方
法,其特征在于,所述的步骤4)具体包括以下步骤:
41)判断复位信号r是否为1,若是,复位所有寄存器,回到步骤41),若否,
进行步骤42);
42)判断数据数据...

【专利技术属性】
技术研发人员:廖超陆峰
申请(专利权)人:上海航天有线电厂有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1