复用轮变换电路、AES加密电路及其加密方法与流程

文档序号:15497394发布日期:2018-09-21 22:00阅读:238来源:国知局

本发明属于加密技术领域,提供了一种复用轮变换电路、aes加密电路及其加密方法。



背景技术:

aes(advancedencryptionstandard,高级加密标准)是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的des(dataencryptionstandard,数据加密标准)。目前,aes密码算法已经被多个国际标准组织所采用,是目前使用最广泛的分组密码算法。

aes密码算法的数据分组长度为128比特,密钥长度有128,192和256比特三种,分别称为aes-128,aes-192,aes-256,aes算法是一个迭代算法,每一个迭代可以称为轮变换,密钥长度不同,轮变换数量也不同,aes-128,aes-192,aes-256的轮变换数量nr分别为10,12,14。aes加密流程如附图1所示,输入的明文数据首先进行密钥加运算;然后经过nr-1轮普通轮变换,在每个普通轮变换中按顺序进行字节替换、行移位、列混合和密钥加四个子运算;最后经过一轮末轮变换,末轮变换按顺序进行字节替换、行移位和密钥加三个子运算,依次单独运算的普通轮变换电路或末轮变换不仅浪费电路资源,且关键路径较长,因此,通过合成矩阵将相邻的几个运算单元合并成一个运算单元进行实现。

t盒实现方式是目前轮变换电路实现中最常用的运算单元合并实现方式,t盒实现通过预计算方式将s盒、行移位和列混合等运算的运算结果预存一个存储运算单元中,以查询表的方式实现s盒、行移位和列混合合并运算功能。t盒实现减少了整个轮变换电路的关键路径,因此t盒实现方式主要应用在高速aes电路设计中。t盒实现方式虽然可以加快数据处理速度,但也大大增加了电路面积,rach等人将基于复合域s盒/逆s盒中最后一级gf(24)乘法器、映射矩阵/逆映射运算、仿射/逆仿射运算、列混合/逆列混合运算和密钥加运算等五个运算合并成一个运算单元,合并运算单元缩短了电路关键路径,但同时也大大增加了电路面积,在已有的公开文献中提出的运算单元的合并都是以增加电路面积为代价对关键路径长度进行了优化。



技术实现要素:

本发明实施例提供一种aes加密复用轮变换电路,旨在解决现有轮变换电路运算单元的合并都是以增加电路面积为代价对关键路径长度进行优化的问题。

本发明是这样实现的,一种用于aes加密的复用轮变换电路,所述复用轮变换电路用于普通轮变换运算及末轮变换运算,所述复用轮变换电路包括:

输入端与数据输入端口连接的合成矩阵乘法运算单元1;输入端与合成矩阵乘法运算单元1输出端连接的复合域乘法逆运算单元;输入端与复合域乘法逆运算单元输出端、及密钥输入端口连接的合成矩阵乘法运算单元2;输入端与合成矩阵乘法运算单元2的两输出端连接的常数加运算单元1及常数加运算单元2,常数加运算单元1输出端及常数加运算单元2输出端分别与反馈数据输出端口及密文数据输出端口相连接,其中,

合成矩阵乘法运算单元1,将合成矩阵δ与列向量dv=[d0,d1,d2,d3]t进行乘法运算,将乘法运算后的矩阵lv=[l0,l1,l2,l3]t输入复合域乘法逆运算单元,dv为从复用轮变换电路输入端输入的列向量,其中,合成矩阵δ的表达式如下:

复合域乘法逆运算单元,将矩阵lv=[l0,l1,l2,l3]t中的每个字节进行复合域乘法逆运算,并将运算后的矩阵iv=[i0,i1,i2,i3]t输出到合成矩阵乘法运算单元2;

合成矩阵乘法运算单元2,将数据矩阵iv=[i0,i1,i2,i3]t和密钥向量kv=[k0,k1,k2,k3]t组合成一个列向量pv=[i0,i1,i2,i3,k1,k2,k3,k4]t,并将合成矩阵λ与列向量pv进行乘法运算,将乘法运算后的矩阵qn=[qn0,qn1,qn2,qn3,]t和矩阵ql=[ql0,ql1,ql2,ql3,]t分别输出到常数加运算单元1及常数加运算单元2,其中,合成矩阵λ表达式如下:

常数加运算单元1,将向量qn=[qn0,qn1,qn2,qn3,]t与常数向量ωv=[ω,ω,ω,ω]t相加运算,相加运算后的矩阵rn=[rn0,rn1,rn2,rn3,]t从反馈数据输出端口输出,其中,qn为合成矩阵λ与列向量pv乘法运算所得列向量的前四行,常数ω为aess盒中仿射运算所指定的字节常数;

常数加运算单元2,将向量ql=[ql0,ql1,ql2,ql3,]t与常数向量ωv=[ω,ω,ω,ω]t相加运算,相加运算后的矩阵rl=[rl0,rl1,rl2,rl3,]t从密文数据输出端口输出,其中,ql为合成矩阵λ与列向量pv乘法运算所得列向量的后四行,常数ω为aess盒中仿射运算所指定的字节常数。

本发明还提供一种aes加密电路,该aes加密电路包括:首轮变换电路,一个复用轮变换电路,及用于循环4nr次所述复用轮变换电路的循环反馈电路,其中,

所述循环反馈电路由选择器、寄存器1及寄存器2组成,所述寄存器1的输入端与选择器的输出端连接,输出端与寄存器2的输入端连接,寄存器2的输出端与所述复用轮变换电路的输入端连接,选择器的一输入端与常数加运算单元1的反馈数据输出端连接,另一输入端与首轮变换电路的输出端连接;

所述寄存器1及寄存器2的数据位宽为16字节。

本发明是这样实现的,一种aes加密电路,所述aes加密电路包括:首轮变换电路,一个复用轮变换单元,及用于循环2nr次所述复用轮变换单元的循环反馈电路,所述复用轮变换单元由两个复用轮变换电路并联组成,其中,

所述循环反馈电路由选择器、寄存器1及寄存器2组成,寄存器1的输入端与选择器的输出端连接,输出端与寄存器2的输入端连接,寄存器2的输出端与所述复用轮变换单元的输入端连接,选择器的一输入端与复用轮变换单元的反馈数据输出端连接,另一输入端与首轮变换电路的输出端连接;

所述寄存器1及寄存器2的数据位宽为16字节。

本发明是这样实现的,一种aes加密电路,所述aes加密电路包括:首轮变换电路,一个复用轮变换单元,及用于循环nr次所述复用轮变换单元的循环反馈电路,所述复用轮变换单元由四个复用轮变换电路并联组成,其中,

所述循环反馈电路由选择器及寄存器组成,所述寄存器的输出端与所述复用轮变换单元的输入端连接,寄存器的输入端与选择器的输出端连接,选择器的一输入端与复用轮变换单元的反馈数据输出端连接,另一输入端与首轮变换电路的输出端连接;

所述寄存器的数据位宽为16字节。

本发明是这样实现的,一种基于aes加密电路的aes加密方法,所述方法包括如下步骤:

s1、进行首轮变换,明文数据向量及密钥向量分别从数据输入端口、密钥输入端口输入首轮变换电路进行首轮变换运算,首轮变换运算结果经选择器的控制进入寄存器1,当完成了16字节的首轮变换后,寄存器1的数据输入到寄存器2中;

s2、复用轮变换电路的前4×(nr-1)次循环为普通轮变换运算,普通轮变换运算过程中,寄存器2输出4字节的数据至复用轮变换电路,经复用轮变换电路的运算,运算结果从反馈数据输出端n输出至选择器,经选择器的控制器输出到寄存器1中,每循环4次,即完成一组16字节的普通轮变换运算后,寄存器1的数据输入到寄存器2中,进行下一轮普通轮变换运算,共进行(nr-1)轮普通轮变换运算;

s3、复用轮变换电路的第(4nr-3)~(4nr)次循环为末轮变换,末轮变换过程中,寄存器2每次输出4字节的数据至复用轮变换电路,经过复用轮变换电路运算后,运算结果均从密文数据输出端口输出,密文数据输出端口输出的16字节数据即构成密文。

本发明是这样实现的,一种基于aes加密电路的aes加密方法,所述方法包括如下步骤:

s1、进行首轮变换,明文数据向量及密钥向量分别从数据输入端口、密钥输入端口输入首轮变换电路进行首轮变换运算,首轮变换运算结果经选择器的控制进入寄存器1,当完成16字节的首轮变换后寄存器1的数据输入到寄存器2中;

s2、复用轮变换单元的前2×(nr-1)次循环为普通轮变换运算,普通轮变换运算过程中,寄存器2将8字节的数据分别输出至复用轮变换单元的两复用轮变换电路,经过两复用轮变换电路的运算,运算结果均通过复用轮变换单元的反馈数据输出端输出至选择器,经选择器的选择输出至寄存器1中,每循环2次,即完成一组16字节的普通轮变换运算后,寄存器1的数据输入到寄存器2中,进行下一轮普通轮变换运算,共进行(nr-1)轮普通轮变换运算;

s3、复用轮变换单元的(2nr-1)~(2nr)循环为末轮变换,末轮变换过程中,寄存器2每次将8字节的数据分别输出至复用轮变换单元的两复用轮变换电路,经过两复用轮变换电路运算后,运算结果均从密文数据输出端输出,密文数据输出端输出的16字节数据即构成密文。

本发明是这样实现的,一种aes加密电路的aes加密方法,所述方法包括如下步骤:

s1、进行首轮变换,明文数据向量及密钥向量分别从数据输入端口、密钥输入端口输入首轮变换电路进行首轮变换运算,16字节的首轮变换运算结果经选择器的控制进入寄存器;

s2、复用轮变换单元的前(nr-1)次循环构成普通轮变换,普通轮变换是指寄存器将16字节的数据分别输出至复用轮变换电单元的四复用轮变换电路,经四复用轮变换电路的运算,运算结果均从复用轮变换电单元的反馈数据输出端输出至选择器,经选择器的控制进入寄存器,进行下一轮普通轮变换运算,共进行(nr-1)轮普通轮变换运算;

s3、复用轮变换单元的第nr次循环为末轮变换,末轮变换是指从寄存器输出16字节的数据至复用轮变换单元的四复用轮变换电路,经过四复用轮变换电路的运算,运算结果均从复用轮变换单元的密文数据输出端输出,密文数据输出端输出的16字节数据即构成密文。

本发明提出的用于aes加密的复用轮变换电路通过常数矩阵的合并与合成运算,将aes密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵δ及合成矩阵λ,从而缩短基于复用轮变换电路构成的aes加密电路的关键路径,降低aes加密电路的实现面积,且通过复用合成矩阵乘法运算单元1和复合域乘法逆运算单元来实现普通轮变换及末复用轮变换,从而节省大量电路资源。

附图说明

图1为本发明实施例提供的标准aes加密流程图;

图2为本发明实施例提供的变换复用电路示意图;

图3为本发明实施例一提供的aes加密电路的结构示意图;

图4为本发明实施例二提供的aes加密电路的结构示意图;

图5为本发明实施例三提供的aes加密电路的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现有的运算单元通常包括:字节替换运算单元、行移位运算单元、列混合运算单元和密钥加运算单元,上述运算单元的运算公式具体如下

1.字节替换运算单元

字节替换运算单元进行字节替换运算,通常称为s盒运算,s盒运算是将状态矩阵中的每个字节根据字节替换表进行替换操作。假设经过s盒运算后的状态矩阵为:

则s盒运算可以表达为:

其中s()为s盒运算函数。s盒运算是轮变换四个运算中唯一的非线性运算,也是运算复杂度最高的运算,因此s盒电路占据了整个aes电路的绝大部分面积和功耗。

aess盒运算中,输入字节首先进行一个有限域gf(28)域上乘法逆运算,然后进行一个仿射运算,其表达式为:

其中x为输入字节,()a-1为gf(28)域上的乘法逆运算,τ为8×8bit常数矩阵,ω为字节常数,τ和ω用于完成s盒中的仿射运算。

本发明所涉及的gf(28)域为aes密码算法中所指定的gf(28)域,不可约多项式为

f(x)=x8+x4+x3+x+1

常数矩阵τ和字节常数ω分别为:

在众多s盒实现方式中,基于复合域的s盒实现具有最小的电路面积。复合域s盒通过数学变换将s盒中的主要运算单元—gf(28)域乘法逆运算单元映射到复合域中实现。复合域乘法逆运算的计算复杂度要远远小于gf(28)域乘法逆的计算复杂度,因而可以大大减少s盒电路实现的硬件复杂度。

基于复合域的aess盒运算表达式为:

其中()c-1为复合域上的乘法逆运算,复合域为任意与gf(28)域同构的复合域,δ为8×8bit映射矩阵,其作用是将输入字节x从gf(28)域映射到复合域,δ′为δ逆矩阵,其作用是将复合域乘法逆运算结果从复合域映射回到gf(28)域。

在有限域中,加法运算为位异或逻辑运算。根据因此,常数加运算+ω在硬件实现时,加0运算可以直接省略掉,加1运算可以用两种方法代替异或逻辑运算:1.任意两个变量的异或逻辑采用同或逻辑代替;2.任意两个变量的采用异或逻辑+取反逻辑实现。由于同或逻辑门与异或逻辑门的电路面积和延时几乎相同,同时相比于异或逻辑门,反向逻辑门的电路面积和延时可以忽略,因此,在s盒硬件实现时,常数加运算+ω电路面积和延时可以忽略不计。

2.行移位运算单元

行移位运算单元进行行移位运算,行移位运算是一个简单的运算,在这个运算中,状态矩阵的第一行不变换,第二,三,四行分别向左移位一个字节,二个字节,和三个字节。假设经过行移位运算后的状态矩阵为:

行移位之后的状态矩阵可以表达为:

在硬件实现中,行移位运算不需要消耗任何逻辑电路资源,只需调整总线位置即可实现行移位运算。

3.列混合运算单元

列混合运算单元进行混合列运算,在列混合运算中,状态矩阵的每一列可以视为环r上的一个三次多项式,则列混合运算定义为状态矩阵的各个列多项式与一个常数多项式在环r上的乘积。假设经过列混合运算后的状态矩阵为:

列混合运算的表达式为:

其中矩阵φ为列混合常数矩阵,常数矩阵φ中的分别为gf(28)域上乘常数×{03}16、×{02}16、×{01}16的矩阵形式,本发明中{}16表示常数的十六进制形式。

4.密钥加运算单元

密钥加运算单元进行密钥加运算,密钥加运算也是一个很简单的运算,密钥加运算定义为状态矩阵加上子密钥矩阵,这里的加法运算为gf(2)域加法运算,即位异或运算。假设经过密钥加运算后的状态矩阵为:

密钥加运算表达式为:

其中矩阵k为子密钥矩阵,子密钥矩阵由输入的原始密钥通过密钥扩展算法产生,子密钥矩阵也为4×4字节矩阵。

普轮变换中的四个运算单元可以单独实现,也可以将相邻的几个运算单元合并成一个运算单元进行实现。运算单元单独实现的轮变换电路不仅浪费电路资源,且关键路径较长。本发明根据轮变换公式,通过常数矩阵的合并与合成运算,对轮变换中的线性运算进行合并。根据上述中轮变换中的各个子运算公式,可以得出轮变换中的普通轮变换公式为:

将上述公式中具有相同输入的输出变量rx,y划分一组,则每一列输出变量可以组成一组,上述公式共可以划分成四个分组。这四个分组具有相同运算操作,并在硬件实现时具有相同的电路运算单元。每一分组输出变量都可以表达为线性方程形式:

上式中的输入变量和输出变量在每一分组中对应的变量为:

组i:组ii:

组iii:组iv:

为了减少电路实现面积,本发明进一步将s盒中的gf(28)乘法逆映射到复合域中,映射后的普通轮变换分组公式为:

根据上述各个运算公式,同样可以得出末轮变换公式为:

按照普通轮变换分组,将上述末轮变换公式也可以分成四个分组,末轮变换分组公式为:

分组公式中的输入变量和输出变量在每一分组中对应的变量与普通轮变换相同。将末轮变换中的s盒运算映射到复合域中,则末轮变换分组公式为:

本发明提出的用于aes加密的复用轮变换电路通过常数矩阵的合并与合成运算,将aes密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵δ及合成矩阵λ,从而缩短基于复用轮变换电路构成的aes加密电路的关键路径,降低aes加密电路的实现面积,且通过复用合成矩阵乘法运算单元1和复合域乘法逆运算单元来实现普通轮变换及末复用轮变换,从而节省大量电路资源。

图2为本发明实施例提供的复用轮变换电路的示意图,为了便于说明,仅示出与本发明实施例相关的部分。

该复用轮变换电路,用于实现aes加密中的普通轮变换及末轮变换,包括:

合成矩阵乘法运算单元1,其输入端及输出端的数据位宽为4个字节,将合成矩阵δ与列向量dv进行乘法运算,dv为从复用轮变换电路的数据输入端输入的列向量,合成矩阵δ由四个常数矩阵δ组合而成,常数矩阵δ为映射矩阵,其作用是将gf(28)域上的元素映射到复合域上,本发明实施例中的gf(28)域为aes密码算法中指定的gf(28)域,合成矩阵δ的表达式如下:

合成矩阵乘法运算单元1表达式为:

运算结果lv=[l0,l1,l2,l3]t进一步输出到复合域乘法逆运算单元;

输入端与矩阵乘法运算单元1输出端连接的复合域乘法逆运算单元,其输入端及输出端的数据位宽均为4个字节,对合成矩阵乘法运算单元1输出的数据进行复合域上的乘法逆运算,这里的复合域为任意与gf(28)域同构的复合域,即复合域乘法逆运算单元将lv=[l0,l1,l2,l3]t中的每个字节进行复合域乘法逆运算,复合域乘法逆运算单元的具体表达形式为:

运算结果iv=[i0,i1,i2,i3]t进一步输出到合成矩阵乘法运算单元2;

输入端与复合域乘法逆运算单元输出端连接、密钥输入端连接的合成矩阵乘法运算单元2;

针对合成矩阵乘法运算单元2,其输入端和输出端的数据位宽均为4个字节,将数据向量iv=[i0,i1,i2,i3]t和密钥向量kv=[k0,k1,k2,k3]t组合成一个列向量pv=[i0,i1,i2,i3,k1,k2,k3,k4]t,并将合成矩阵λ与列向量pv进行乘法运算,合成矩阵λ由常数矩阵λ3、λ2、λ1、组合而成,其中常数矩阵λ3为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵λ2为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵λ1为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵分别为gf(28)域上乘常数×{03}16、×{02}16、×{01}16的矩阵形式;常数矩阵τ为aess盒中仿射运算所指定的常数矩阵;常数矩阵δ′为映射矩阵,其作用是将复合域上的元素映射到gf(28)域上,合成矩阵λ的表达式具体如下:

合成矩阵乘法运算单元2的具体公式进行表达为:

运算结果qn=[qn0,qn1,qn2,qn3,]t和ql=[ql0,ql1,ql2,ql3,]t分别输出到常数加运算单元1及常数加运算单元2,

输入端分别与合成矩阵乘法运算单元2的两输出端连接的常数加运算单元1及常数加运算单元2,常数加运算单元1的输出端与反馈数据输出端口连接,数加运算单元2的输出端与密文数据输出端口连接;

常数加运算单元1、及常数加运算单元2的输入端及输出端的数据位宽均为4个字节,常数加运算单元1将合成矩阵乘法运算单元2输出的向量qn=[qn0,qn1,qn2,qn3,]t与常数向量ωv=[ω,ω,ω,ω]t相加运算,常数加运算单元2将合成矩阵乘法运算单元2输出的向量ql=[ql0,ql1,ql2,ql3,]t与常数向量ωv=[ω,ω,ω,ω]t相加运算,其中常数ω为aess盒中仿射运算所指定的字节常数,常数加运算单元的具体表达形式为:

运算结果rn=[rn0,rn1,rn2,rn3,]t和rl=[rl0,rl1,rl2,rl3,]t分别从常数加运算单元1的反馈数据输出端口输出、常数加运算单元2的密文数据输出端口输出;

本发明提供的复用轮变换电路通过常数矩阵的合并与合成运算,将aes加密算法中的所有线性变换运算(复合域映射运算、仿射运算、列混合运算与密钥加运算)组合成两个合成矩阵,合成矩阵δ及合成矩阵λ,从而缩短了实现普通轮变换及末复用轮变换运算电路的关键路径,同时还降低了电路的实现面积,此外,通过复用合成矩阵乘法运算单元1和复合域乘法逆运算单元来实现普通轮变换运算及末复用轮变换运算,进一步降低了电路的实现面积,同时节省了大量电路资源。

图3为本发明实施例一提供aes加密电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。

该aes加密电路包括:

首轮变换电路,一个复用轮变换电路,及用于循环4nr次复用轮变换电路的循环反馈电路,其中,循环反馈电路包括:

循环反馈电路由二选一选择器、寄存器1及寄存器2组成,寄存器1及寄存器2的数据位宽为16字节,寄存器1的输入端与选择器的输出端连接,输出端与寄存器2的输入端连接,寄存器2的输出端与复用轮变换电路的数据输入端连接,选择器的一输入端与常数加运算单元1的反馈数据输出端连接,另一输入端与首轮变换电路的输出端连接;其中,首轮变换电路采用现有的电路结构,其输入端及输出端的数据位宽为4个字节;

复用轮变换电路每次完成4个字节的普通轮变换运算或末轮变换运算,复用轮变换电路每循环4次完成一轮完整的普通轮变换运算或末轮变换运算,因此,前4(nr-1)次循环构成nr-1普通轮变换,最后4次循环构成末轮变换。

基于上述aes加密电路的aes加密方法,包括如下步骤:

s1、进行首轮变换,明文数据向量及密钥向量分别从数据输入端口、密钥输入端口输入首轮变换电路进行首轮变换运算,首轮变换运算结果经选择器的控制进入寄存器1,当完成了16字节的首轮变换后,寄存器1的数据输入到寄存器2中;

s2、复用轮变换电路的前4×(nr-1)次循环为普通轮变换运算,普通轮变换运算过程中,寄存器2输出4字节的数据至复用轮变换电路,经复用轮变换电路的运算,运算结果从反馈数据输出端n输出至选择器,经选择器的控制器输出到寄存器1中,每循环4次,即完成一组16字节的普通轮变换运算后,寄存器1的数据输入到寄存器2中,进行下一轮普通轮变换运算,共进行(nr-1)轮普通轮变换运算;

s3、复用轮变换电路的第(4nr-3)~(4nr)次循环为末轮变换,末轮变换过程中,寄存器2每次输出4字节的数据至复用轮变换电路,经过复用轮变换电路运算后,运算结果均从密文数据输出端口输出,密文数据输出端口输出的16字节数据即构成密文。

图4为本发明实施例二提供aes加密电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。

该aes加密电路包括:

首轮变换电路,一个复用轮变换单元,及用于循环2nr次复用轮变换单元的循环反馈电路,所述复用轮变换单元由两个复用轮变换电路并联组成,其中,

循环反馈电路由二选一选择器、寄存器1及寄存器2组成,寄存器1及寄存器2的数据位宽为16字节,寄存器1的输入端与选择器的输出端连接,输出端与寄存器2的输入端连接,寄存器2的输出端与复用轮变换单元的输入端连接,选择器的一输入端与复用轮变换单元的反馈数据输出端连接,另一输入端与首轮变换电路的输出端连接,复用轮变换单元的反馈数据输出端与两复用轮变换电路的反馈数据输出端连接,复用轮变换单元的输入端与两复用轮变换电路的数据输入端连接。

复用轮变换单元每次完成8个字节的普通轮变换运算或末轮变换运算,通过循环反馈电路循环两次,复用轮变换单元完成一轮完整(即16字节)的普通轮变换运算或末轮变换运算,因此,前2(nr-1)次循环构成nr-1普通轮变换,最后2次循环构成末轮变换。

基于上述aes加密电路的aes加密方法,包括如下步骤:

s1、进行首轮变换,明文数据向量及密钥向量分别从数据输入端口、密钥输入端口输入首轮变换电路进行首轮变换运算,首轮变换运算结果经选择器的控制进入寄存器1,当完成16字节的首轮变换后寄存器1的数据输入到寄存器2中;

s2、复用轮变换单元的前2×(nr-1)次循环为普通轮变换运算,普通轮变换运算过程中,寄存器2将8字节的数据分别输出至复用轮变换单元的两复用轮变换电路,经过两复用轮变换电路的运算,运算结果均通过复用轮变换单元的反馈数据输出端输出至选择器,经选择器的选择输出至寄存器1中,每循环2次,即完成一组16字节的普通轮变换运算后,寄存器1的数据输入到寄存器2中,进行下一轮普通轮变换运算,共进行(nr-1)轮普通轮变换运算;

s3、复用轮变换单元的(2nr-1)~(2nr)循环为末轮变换,末轮变换过程中,寄存器2每次将8字节的数据分别输出至复用轮变换单元的两复用轮变换电路,经过两复用轮变换电路运算后,运算结果均从密文数据输出端输出,密文数据输出端输出的16字节数据即构成密文。

图5为本发明实施例三提供aes加密电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。

首轮变换电路,一个复用轮变换单元,及用于循环nr次述复用轮变换单元的循环反馈电路,复用轮变换单元由四个复用轮变换电路并联组成,其中,

循环反馈电路由选择器及寄存器组成,寄存器的数据位宽为16字节,寄存器的输出端与复用轮变换单元的输入端连接,寄存器的输入端与选择器的输出端连接,选择器的一输入端与复用轮变换单元的反馈数据输出端连接,另一输入端与首轮变换电路的输出端连接,复用轮变换单元由四个复用轮变换电路并联组成,复用轮变换单元的反馈数据输出端与四复用轮变换电路的反馈数据输出端连接,复用轮变换单元的输入端与四复用轮变换电路的数据输入端连接。

复用轮变换单元每次完成16个字节的普通轮变换运算或末轮变换运算,通过循环反馈电路循环一次,复用轮变换电路完成一轮完整(即16字节)的普通轮变换运算或末轮变换运算,因此,前(nr-1)次循环构成nr-1普通轮变换,最后一次循环构成末轮变换。

基于上述aes加密电路的aes加密方法,包括如下步骤:

s1、进行首轮变换,明文数据向量及密钥向量分别从数据输入端口、密钥输入端口输入首轮变换电路进行首轮变换运算,16字节的首轮变换运算结果经选择器的控制进入寄存器;

s2、复用轮变换单元的前(nr-1)次循环构成普通轮变换,普通轮变换是指寄存器将16字节的数据分别输出至复用轮变换电单元的四复用轮变换电路,经四复用轮变换电路的运算,运算结果均从复用轮变换电单元的反馈数据输出端输出至选择器,经选择器的控制进入寄存器,进行下一轮普通轮变换运算,共进行(nr-1)轮普通轮变换运算;

s3、复用轮变换单元的第nr次循环为末轮变换,末轮变换是指从寄存器输出16字节的数据至复用轮变换单元的四复用轮变换电路,经过四复用轮变换电路的运算,运算结果均从复用轮变换单元的密文数据输出端输出,密文数据输出端输出的16字节数据即构成密文。

本发明实施例一、实施例二及实施例三提供的aes加密电路通过矩阵合并与合成运算将复合域映射运算、仿射运算、列混合运算与密钥加运算合并成两个合成矩阵,矩阵δ与矩阵λ,基于两合成矩阵的aes加密电路大大减少电路的关键路径长度。公共项消除算法是线性运算单元最有效的电路优化方法,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少aes加密电路的实现面积。

此外,本发明实施例一、实施例二及实施例三提供的aes加密电路是对复用轮变换电路进行循环来实现普通轮变换及末轮变换,这种循环结构的ase加密电路进一步节省大量的电路资源;在实现普通轮变换及末轮变换时,对合成矩阵乘法运算单元1和复合域乘法逆运算单元进行复用,因此可以进一步节省电路面积和电路资源。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1