轮变换复用电路及AES解密电路转让专利

申请号 : CN201810597055.3

文献号 : CN108809627B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张肖强郑辛星梁广俊王新航王磊孙忠先

申请人 : 安徽工程大学

摘要 :

本发明涉及密码电路技术领域,提供了一种轮变换复用电路及AES加密电路,本发明提供的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵与合成矩阵从而缩短AES解密电路的关键路径,同时降低AES解密电路实现面积。

权利要求 :

1.一种轮变换复用电路,其特征在于,所述轮变换复用电路包括:合成矩阵乘法运算单元1、常数加运算单元、复合域乘法逆运算单元、选择器S1、合成矩阵乘法运算单元2、及选择器S2,其中,合成矩阵乘法运算单元1的输入端与反馈数据输入端口连接,输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与选择器S1的一输入端连接,选择器S1的另一输入端与密文数据输入端口连接,选择器S1的输出端及密钥输入端口均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的两输出端分别与选择器S2的两个输入端连接,第三个输出端与明文数据输出端口连接;

合成矩阵乘法运算单元1,将合成矩阵 与从反馈数据输入端口输入的列向量进行乘法运算,将运算结果 输出到常数加运算单元,合成矩阵的表达式具体如下所示:

常数加运算单元,将向量 与常数向量即Ωλ=[ωλ,ωλ,ωλ,ωλ]T相加运算,将运算结果 输出到复合域乘法逆运算单元中依次表示列向量 的四个元素,常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积,即ωλ=δ×τ'×ω,常数矩阵 为常数矩阵δ和常数矩阵τ′的乘积,即常数ω为逆S盒运算中逆仿射运算所指定的字节常数,常数矩阵τ′为逆S盒运算中逆仿射运算所指定的常数矩阵,常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上;

复合域乘法逆运算单元,将向量 中的每个字节进行复合域乘法逆运算,将运算结果 输出到选择器S1;

在进行首轮变换时,选择器S1选择将从密文数据输入端口输入的数据输出到合成矩阵乘法运算单元2,在进行普通轮变换及末轮变换时,选择器S1选择将复合域乘法逆运算结果 输出到合成矩阵乘法运算单元2;

合成矩阵乘法运算单元2,将选择器S1输出的数据向量 和密钥向量组合成一个列向量 密钥向量 与

加密过程中的密钥向量Kv相同,将合成矩阵 与列向量 进行乘法运算,合成矩阵 的表达式具体如下所示:常数矩阵 为常数矩阵 和常数矩阵δ'的乘积,即 常数矩阵 为常数矩阵和常数矩阵δ'的乘积,即 常数矩阵 为常数矩阵 和常数矩阵δ'的乘积,即常数矩阵 为常数矩阵 和常数矩阵δ'的乘积,即 常数矩阵分别为GF(28)域上乘常数×{01}16、×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式;常数矩阵δ′为映射矩阵;

将运算结果的第一行至第四行组成的向量 和第五行至第八行组成的向量 分别输出到选择器S2,运算结果第九行至第十二行组成的向量 从明文数据输出端口中输出;

在进行首轮变换时,选择器S2选择将向量 反馈至反馈数据输入端口,在进行普通轮变换时,选择器S2选择将向量 反馈到反馈数据输出端口。

2.一种基于如权利要求1所述轮变换复用电路的AES解密电路,其特征在于,所述AES解密电路包括:一个复用轮变换电路,寄存器1及寄存器2,轮变换复用电路的反馈数据输出端口与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与轮变换复用电路的反馈数据输入端口连接;

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

3.一种基于如权利要求1所述轮变换复用电路的AES解密电路,其特征在于,所述AES解密电路包括:两个复用轮变换电路,寄存器1及寄存器2,两个轮变换复用电路的反馈数据输出端口与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与两个轮变换复用电路的反馈数据输入端口连接;

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

4.一种基于如权利要求1所述轮变换复用电路的AES解密电路,其特征在于,所述AES解密电路包括:四个复用轮变换电路及寄存器,四个轮变换复用电路的反馈数据输出端口与寄存器的输入端连接,寄存器的输出端与四个轮变换复用电路的反馈数据输入端口连接;

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

说明书 :

轮变换复用电路及AES解密电路

技术领域

[0001] 本发明涉及密码电路技术领域,尤其涉及一种轮变换复用电路及AES解密电路。

背景技术

[0002] AES(Advanced Encryption Standard,高级加密标准)是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的DES(Data Encryption Standard,数据加密标准)。目前,AES密码算法已经被多个国际标准组织所采用,是目前使用最广泛的分组密码算法。
[0003] 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轮普通轮变换及末轮变换,首轮变换依次进行密钥加运算及字节替换运算;普通轮变换按顺序进行行移位、列混合和密钥加及字节替换四个运算;首轮变换按顺序进行行移位及密钥加运算。AES解密流程是与加密过程相反的一个过程,如图2所示,也是依次进行首轮变换、Nr-1轮普通轮变换及末轮变换,首轮变换为加密流程中末轮变换的逆运算,依次进行密钥加及逆行移位运算,普通轮变换为加密流程中普通轮变换的逆运算,包括逆字节替换、密钥加、逆列混合、逆行移位运算,末轮变化为加密流程中首轮变换的逆运算,依次进行逆字节替换及密钥加运算,其中,逆列混合、逆行移位和逆字节替换分别为加密流程中列混合、行移位和字节替换的逆运算。
[0004] 依次单独运行解密过程中的各运算,不仅浪费电路资源,且关键路径较长,因此,通过合成矩阵将相邻的几个运算单元合并成一个运算单元进行实现。T盒实现方式是目前轮变换电路实现中最常用的运算单元合并实现方式,T盒实现通过预计算方式将S盒、行移位和列混合等运算的运算结果预存一个存储运算单元中,以查询表的方式实现S盒、行移位和列混合合并运算功能。T盒实现减少了整个普通轮变换电路的关键路径,因此T盒实现方式主要应用在高速AES电路设计中,T盒实现方式虽然可以加快数据处理速度,但也大大增加了电路面积,如Rach等人将基于复合域S盒/逆S盒中最后一级GF(24)乘法器、映射矩阵/逆映射运算、仿射/逆仿射运算、列混合/逆列混合运算和密钥加运算等五个运算合并成一个运算单元,合并运算单元缩短了关键路径,但同时也大大增加了电路面积,现有的基于合并运算的轮变换电路,都是以增加电路面积为代价对关键路径长度进行了优化。

发明内容

[0005] 本发明实施例提供一种AES解密电路,旨在解决现有基于合并运算的轮变换电路,均是以增加电路面积为代价来对关键路径长度进行优化的问题。
[0006] 本发明是这样实现的,一种轮变换复用电路,所述轮变换复用电路包括:
[0007] 合成矩阵乘法运算单元1、常数加运算单元、复合域乘法逆运算单元、选择器S1、合成矩阵乘法运算单元2、及选择器S2,其中,合成矩阵乘法运算单元1的输入端与反馈数据输入端口连接,输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与选择器S1的一输入端连接,选择器S1的另一输入端与密文数据输入端口连接,选择器S1的输出端及密钥输入端口均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的两输出端分别与选择器S2的两个输入端连接,第三个输出端与明文数据输出端口连接;
[0008] 合成矩阵乘法运算单元1,将合成矩阵 与从反馈数据输入端输入的列向量进行乘法运算,将运算结果 输出到常数加运算单元,合成矩阵的表达式具体如下所示:
[0009]
[0010] 常数加运算单元,将向量 与常数向量即Ωλ=[ωλ,ωλ,ωλ,ωλ]T相加运算,将运算结果 输出到复合域乘法逆运算单元中;
[0011] 复合域乘法逆运算单元,将向量 中的每个字节进行复合域乘法逆运算,将运算结果 输出到合成矩阵乘法运算单元2;
[0012] 在进行首轮变换时,选择器S1选择将从密文输入端口输入的数据输出到合成矩阵乘法运算单元2,在进行普通轮变换及末轮变换时,选择器S1选择将复合域乘法逆运算结果 输出到合成矩阵乘法运算单元2;
[0013] 合成矩阵乘法运算单元2,将选择器S1输出的数据向量 和密钥向量 组合成一个列向量 密钥向量
与加密过程中的密钥向量Kv相同,将合成矩阵 与列向量 进行乘法运算,合成矩阵的表达式具体如下所示:
[0014]
[0015] 将运算结果的第一行至第四行组成的向量 和第五行至把行组成的向量 分别输出到选择器S2,运算结果第九行至第十二行组
成的向量 从明文输出端口中输出;
[0016] 在进行首轮变换时,选择器S2选择将向量 反馈至反馈数据输入端口,在进行普通轮变换时,选择器S2选择将向量 反馈到反馈
数据输出端口。
[0017] 本发明是这样实现的,一种基于轮变换复用电路的AES解密电路,AES解密电路包括:
[0018] 一个复用轮变换电路,寄存器1及寄存器2,轮变换复用电路的反馈数据输出端口与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与轮变换复用电路的反馈数据输入端连接;
[0019] 寄存器1及寄存器2的数据位宽为16字节。
[0020] 本发明是这样实现的,一种基于轮变换复用电路的AES解密电路,AES解密电路包括:
[0021] 两个复用轮变换电路,寄存器1及寄存器2,两个轮变换复用电路的反馈数据输出端口与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与两个轮变换复用电路的反馈数据输入端连接;
[0022] 寄存器1及寄存器2的数据位宽为16字节。
[0023] 本发明是这样实现的,一种基于轮变换复用电路的AES解密电路,AES解密电路包括:
[0024] 四个复用轮变换电路及寄存器,四个轮变换复用电路的反馈数据输出端口与寄存器的输入端连接,寄存器的输出端与四个轮变换复用电路的反馈数据输入端连接;
[0025] 寄存器的数据位宽为16字节。
[0026] 本发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵 与合成矩阵 从而缩短AES解密电路的关键路径,同时降低AES解密电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少AES解密电路实现面积。

附图说明

[0027] 图1为本发明实施例提供的标准AES加密流程图;
[0028] 图2为本发明实施例提供的标准AES解密流程图;
[0029] 图3为本发明实施例提供的用于AES解密的轮变换复用电路结构示意图;
[0030] 图4为本发明实施例一提供的AES解密电路结构示意图;
[0031] 图5为本发明实施例二提供的AES解密电路结构示意图;
[0032] 图6为本发明实施例三提供的AES解密电路结构示意图。

具体实施方式

[0033] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034] 现有的运算单元通常包括:逆字节替换运算单元、逆行移位运算单元、逆列混合运算单元和密钥加运算单元,上述运算单元的运算公式具体如下:
[0035] AES轮变换是以矩阵形式进行变换操作的,解密算法将输入的128比特分组数据视为4×4字节矩阵,每个矩阵的元素为1个字节。轮变换的中间结果称之为状态矩阵为4×4字节矩阵。假设普通轮变换输入的状态矩阵为:
[0036]
[0037] AES解密过程中的各个运算详细介绍如下:
[0038] 1.逆字节替换运算单元
[0039] 逆字节替换运算单元进行逆字节替换运算,逆字节替换运算为字节替换的逆运算,也称为逆S盒运算。逆S盒运算同样是将状态矩阵中的每个字节根据字节替换表进行逆替换操作。假设经过逆S盒运算后的状态矩阵为:
[0040]
[0041] 则逆S盒运算可以表达为:
[0042]
[0043]
[0044] 其中 为逆S盒运算函数。逆S盒运算是普通轮变换四个运算中唯一的非线性运算,也是运算复杂度最高的运算,因此逆S盒运算电路占据了整个AES解密电路的绝大部分电路面积和功耗。
[0045] 在逆S盒运算中,输入字节首先进行一个逆仿射运算,逆仿射运算为加密S盒仿射运算的逆运算,然后进行一个有限域GF(28)域上乘法逆运算,其表达式为:
[0046]
[0047] 其中x为输入字节,ω为字节常数,τ′为8×8bit常数矩阵,是加密S盒中常数矩阵τ的逆矩阵,τ′和ω用于完成逆仿射运算,()A-1为GF(28)域上的乘法逆运算。本发明所涉及的GF(28)域为AES密码算法中所指定的GF(28)域,其不可约多项式为
[0048] f(x)=x8+x4+x3+x+1
[0049] 在众多S盒实现方式中,基于复合域的S盒实现具有最小的电路面积。复合域S盒通8
过数学变换将S盒中的主要运算单元—GF(2)域乘法逆运算单元映射到复合域中实现。复合域乘法逆运算的计算复杂度要远远小于GF(28)域乘法逆的计算复杂度,因而可以大大减少S盒电路实现的硬件复杂度。
[0050] 基于复合域的逆S盒运算表达式为:
[0051]
[0052] 其中()C-1为复合域上的乘法逆运算,复合域为任意与GF(28)域同构的复合域,δ为8×8bit映射矩阵,其作用是将输入字节x从GF(28)域映射到复合域,δ'为δ逆矩阵,其作用是将复合域乘法逆运算结果从复合域映射回到GF(28)域。
[0053] 在有限域中,加法运算为位异或逻辑运算。根据因此,常数加运算+ω在硬件实现时,加0运算可以直接省略掉,加1运算可以用
两种方法代替异或逻辑运算:1.任意两个变量的异或逻辑采用同或逻辑代替;2.任意两个变量的采用异或逻辑+取反逻辑实现。由于同或逻辑门与异或逻辑门的电路面积和延时几乎相同,同时相比于异或逻辑门,反向逻辑门的电路面积和延时可以忽略,因此,在逆S盒硬件实现时,常数加运算+ω电路面积和延时可以忽略不计。
[0054] 2.密钥加运算单元
[0055] 密钥加运算单元进行密钥加运算,密钥加运算与加密流程中的密钥加运算相同。假设经过密钥加运算后的状态矩阵为:
[0056]
[0057] 密钥加运算表达式为:
[0058]
[0059]
[0060] 其中矩阵 为子密钥矩阵,由密钥扩展算法产生,子密钥矩阵的使用顺序与加密流程中子密钥矩阵的使用顺序相反。
[0061] 3.逆列混合运算单元
[0062] 逆列混合运算单元进行逆列混合运算,逆列混合运算为列混合的逆运算,同样可以视为状态矩阵中每一列与一个常数多项式在环 上的乘积。假设经过逆列混合运算后的状态矩阵为:
[0063]
[0064] 逆列混合运算的表达式为:
[0065]
[0066]
[0067] 其中矩阵 为列混合常数矩阵,常数矩阵 中的 分别为GF(28)域上乘常数×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式,本发明中{}16表示常数的十六进制形式。
[0068] 4.逆行移位运算单元
[0069] 逆行移位运算单元进行逆行移位运算,逆行移位运算是行移位的逆运算,即状态矩阵的第一行不变换,第二,三,四行分别向右移位一个字节,二个字节,和三个字节。假设经过逆行移位运算后的状态矩阵为:
[0070]
[0071] 逆行移位之后的状态矩阵可以表达为:
[0072]
[0073]
[0074] 逆行移位运算在硬件实现中也不需要消耗任何逻辑电路资源,只需调整总线位置即可。
[0075] 5.普通轮变换公式
[0076] 普通轮变换中的四个运算单元可以单独实现,也可以将相邻的几个运算单元合并成一个运算单元进行实现。运算单元单独实现的轮变换电路不仅浪费电路资源,且关键路径较长。本发明根据解密普通轮变换公式,通过常数矩阵的合并与合成运算,对解密普通轮变换中的线性运算进行合并。根据上述中轮变换中的各个子运算公式,可以得出解密普通轮变换公式为:
[0077]
[0078]
[0079] 其中 为常数矩阵 中的行向量, 和 分别为输入的数据矩阵和密钥矩阵 中的列向量,即:
[0080]
[0081]
[0082] 将上述公式中具有相同输入的输出变量rx,y划分一组,共可以划分成四个分组。这四个分组具有相同运算操作,并在硬件实现时具有相同的电路运算单元。每一分组输出变量都可以表达为线性方程形式:
[0083]
[0084] 上式中的输入变量和输出变量在每一分组中对应的变量为:
[0085] 组I: 组II:
[0086] 组III: 组IV:
[0087] 为了减少电路实现面积,本发明进一步将逆S盒中的GF(28)乘法逆映射到复合域中,映射后的普通轮变换分组公式为:
[0088]
[0089] 6.首轮变换公式
[0090] 根据上述各个子运算公式,同样可以得出首轮变换公式为:
[0091]
[0092]
[0093] 按照普通轮变换分组,将上述首轮变换公式也可以分成四个分组,首轮变换分组公式为:
[0094]
[0095] 首轮变换分组公式中的输入变量和输出变量在每一分组中对应的变量与普通轮变换相同。
[0096] 7.末轮变换公式
[0097] 根据上述各个子运算公式,同样可以得出末轮变换公式为:
[0098]
[0099]
[0100] 同样将末轮变换公式也可以分成四个分组,末轮变换分组公式为:
[0101]
[0102] 上式中的输入变量和输出变量在每一分组中对应的变量为:
[0103] 组I: 组II:
[0104] 组III: 组IV:
[0105] 上述分组中,输出变量 在每一分组中对应的变量与普通轮变换不同,输入变量 和 在每一分组中对应的变量与普通轮变换相同。将末轮变换中的逆S盒运算映射到复合域中,则末轮变换分组公式为:
[0106]
[0107] 发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵 与合成矩阵 从而缩短AES解密电路的关键路径,降低AES解密电路实现面积。
[0108] 图3为本发明实施例提供的复用轮变换电路结构示意图,为了便于说明,仅示出于本发明实施例先关的部分。
[0109] 该复用轮变换电路,用于实现4字节的AES解密运算,包括:
[0110] 合成矩阵乘法运算单元1、常数加运算单元、复合域乘法逆运算单元、选择器S1、合成矩阵乘法运算单元2、及选择器S2;
[0111] 合成矩阵乘法运算单元1的输入端与反馈数据输入端口连接,输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与选择器S1的一输入端连接,选择器S1的另一输入端与密文数据输入端口连接,选择器S1的输出端及密钥输入端口均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的两输出端分别与选择器S2的两个输入端连接,第三个输出端与明文数据输出端口连接。
[0112] 合成矩阵乘法运算单元1,将合成矩阵 与列向量 进行乘法运算, 是从反馈数据输入端输入的列向量,合成矩阵的表达式具体如下所示:
[0113]
[0114] 其中,合成矩阵 由四个常数矩阵 组合而成,常数矩阵 为常数矩阵δ和常数矩阵τ′的乘积,即 常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上。常数矩阵τ′为逆S盒运算中逆仿射运算所指定的常数矩阵。合成矩阵乘法运算单元1可以用具体公式进行表达为:
[0115]
[0116] 运算结果 进一步输出到常数加运算单元。
[0117] 常数加运算单元,将向量 与常数向量Ωλ相加运算,常数向量ΩλT
由四个常数ωλ组合而成,即Ωλ=[ωλ,ωλ,ωλ,ωλ] ,其中常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积,即ωλ=δ×τ'×ω,常数ω为逆S盒运算中逆仿射运算所指定的字节常数。常数加运算单元的具体表达形式为:
[0118]
[0119] 运算结果 进一步输出到复合域乘法逆运算单元中。
[0120] 复合域乘法逆运算单元,将向量 中的每个字节进行复合域乘法逆运算,这里的复合域为任意与GF(28)域同构的复合域。复合域乘法逆运算单元的具体表达形式为:
[0121]
[0122] 运算结果 进一步输出到选择器S1。
[0123] 选择器S1,在进行首轮变换时,根据选择信号s1=0,选择将从密文输入端口输入的数据 输出到合成矩阵乘法运算单元2,在进行普通轮变换及末轮变换时,根据选择信号s1=1,选择将复合域乘法逆运算结果 输出到合成矩阵乘法
运算单元2,输出信号为 二选一选择器2的具体表达形式为:
[0124]
[0125] 合成矩阵乘法运算单元2,将数据向量 和密钥向量组合成一个列向量 密钥向量 与加密过程
中的密钥向量Kv相同,将合成矩阵 与列向量 进行乘法运算,合成矩阵 的表达式具体如下所示:
[0126]
[0127] 其中,合成矩阵 由常数矩阵 δ'组合而成,常数矩阵 为常数矩阵 和常数矩阵δ'的乘积,即 常数矩阵 为常数矩阵
和常数矩阵δ'的乘积,即 常数矩阵 为常数矩阵 和常数矩阵δ'的乘积,即
常数矩阵 为常数矩阵 和常数矩阵δ'的乘积,即 常数矩阵
分别为GF(28)域上乘常数×{01}16、×{09}16、×{0b}16、×{0d}16、×
{0e}16的矩阵形式;常数矩阵δ′为映射矩阵,其作用是将复合域上的元素映射到GF(28)域上。合成矩阵乘法运算单元2可以用具体公式进行表达为:
[0128]
[0129] 运算结果的第一行至第四行组成的向量 和第五行至八行组成的向量 分别输出到选择器S2,运算结果第九行至第十二行组成
的向量 从明文输出端口中输出。
[0130] 选择器S2,在进行首轮变换时,根据选择信号s2=1,选择将向量反馈至反馈数据输入端口,在进行普通轮变换时,根据选择信号s2=1,选择将向量反馈到反馈数据输出端口,输出信号为 二选一
选择器2的具体表达形式为:
[0131]
[0132] 本发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵 与合成矩阵 从而缩短AES解密电路的关键路径,同时降低AES解密电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少AES解密电路实现面积;并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2及常数加运算单元来构建首轮变换/普通轮变换/末轮变换复用电路,节省大量电路资源。
[0133] 串行结构和循环结构是AES解密电路实现的两种基本结构,基于所提出的轮变换复用电路采用并行处理方式构成串行结构的AES解密电路,采用分时复用处理方式或者是分时复用与并行处理相结合的方式来构成循环结构的AES解密电路。
[0134] 图4为本发明实施例一提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
[0135] 该AES解密电路包括:
[0136] 一个复用轮变换电路,寄存器1及寄存器2,寄存器1及寄存器2的数据位宽为16字节,轮变换复用电路的反馈数据输出端口与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与轮变换复用电路的反馈数据输入端连接;
[0137] 实施例一提供的AES解密电路的解密方法包括如下步骤:
[0138] S1、前4次运算构成首轮变换,首轮变换是指从四组四字节的密文数据分别从密文数据输入端口输入轮变换复用电路,选择器S2将轮变换复用电路运算结果的第一行至第四行组成的向量 输出至寄存器1,当寄存器1内存储有16字节的数据后,将存储的数据传输至寄存器2中;
[0139] S2、复用轮变换电路的第5~4Nr次运算构成(Nr-1)普轮通轮变换,寄存器2每次输出4字节的数据至轮变换复用电路的反馈数据输入端,经轮变换复用电路的运算,选择器S2将运算结果的第五行至第八行向量组成的向量 输出至寄存器1,轮变换复用电路每运算四次后,寄存器1将存储的数据传输至寄存器2,进行下一轮普通轮变换运算,共进行(Nr-1)轮普通轮变换运算;
[0140] S3、复用轮变换电路的第(4Nr+1)~4(Nr+1)次运算构成末轮变换,寄存器2每次输出4字节的数据至轮变换复用电路的反馈数据输入端,经轮变换复用电路的运算,取第(4Nr+1)~4(Nr+1)次从明文数据端口输出的数据作为明文。
[0141] 图5为本发明实施例二提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
[0142] 该AES解密电路包括:
[0143] 两个复用轮变换电路,寄存器1及寄存器2,寄存器1及寄存器2的数据位宽为16字节,两个轮变换复用电路的反馈数据输出端口与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与两个轮变换复用电路的反馈数据输入端连接。
[0144] 实施例二提供的AES解密电路的解密方法包括如下步骤:
[0145] S1、前2次运算构成首轮变换,首轮变换是指四字节的密文数据分别从密文数据输入端口输入两个轮变换复用电路,选择器S2将轮变换复用电路运算结果的第一行至第四行组成的向量 输出至寄存器1,当寄存器1内存储有16字节的数据后,将存储的数据传输至寄存器2中;
[0146] S2、复用轮变换电路的第3~2Nr次运算构成(Nr-1)普轮通轮变换,寄存器2每次输出两组4字节的数据,分别传输至两个轮变换复用电路的反馈数据输入端,经轮变换复用电路的运算,选择器S2将运算结果的第五行至第八行向量组成的向量 输出至寄存器1,轮变换复用电路每运算两次后,寄存器1将存储的数据传输至寄存器2,进行下一轮普通轮变换运算,共进行(Nr-1)轮普通轮变换运算;
[0147] S3、复用轮变换电路的第(2Nr+1)~2(Nr+1)次运算构成末轮变换,寄存器2每次输出两组4字节的数据,分别传输至两个轮变换复用电路的反馈数据输入端,经轮变换复用电路的运算,取第(2Nr+1)~2(Nr+1)次从明文数据端口输出的数据作为明文。
[0148] 图6为本发明实施例三提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
[0149] 该AES解密电路包括:
[0150] 四个复用轮变换电路及寄存器,寄存器的数据位宽为16字节,四个轮变换复用电路的反馈数据输出端口与寄存器的输入端连接,寄存器的输出端与四个轮变换复用电路的反馈数据输入端连接。
[0151] 实施例三提供的AES解密电路的解密方法包括如下步骤:
[0152] S1、第一次运算构成首轮变换,首轮变换是指四组四字节的密文数据分别从密文数据输入端口输入四个轮变换复用电路,选择器S2将轮变换复用电路运算结果的第一行至第四行组成的向量 输出至寄存器;
[0153] S2、复用轮变换电路的第2~Nr次运算构成(Nr-1)普轮通轮变换,寄存器每次输出四组4字节的数据,分别传输至四个轮变换复用电路的反馈数据输入端,经轮变换复用电路的运算,选择器S2将运算结果的第五行至第八行向量组成的向量 输出至寄存器,进行下一轮普通轮变换运算,共进行(Nr-1)轮普通轮变换运算;
[0154] S3、复用轮变换电路的第(Nr+1)次运算构成末轮变换,寄存器每次输出四组4字节的数据,分别传输至四个轮变换复用电路的反馈数据输入端,经轮变换复用电路的运算,取第(Nr+1)次从明文数据端口输出的数据作为明文。
[0155] 循环结构的AES解密电路相比于串行结构的AES解密电路而言,其电路面积大大减小,因此适用于面积受限的数据处理电路中;但串行结构的AES解密电路采用流水线技术可以大大提高电路处理速度,适用于高速数据处理电路中,因此可根据实际需求设计普通轮变换电路的结构;
[0156] 本发明提出的AES解密电路是基于轮变换复用电路构成的,轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵 与合成矩阵 从而缩短AES解密电路的关键路径,降低AES解密电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积;
[0157] 并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2及常数加运算单元来构建首轮变换/普通轮变换/末轮变换复用电路,节省大量电路资源。
[0158] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。