CN109660333A - Aes解密复用轮变换运算单元结构 - Google Patents
Aes解密复用轮变换运算单元结构 Download PDFInfo
- Publication number
- CN109660333A CN109660333A CN201910070855.4A CN201910070855A CN109660333A CN 109660333 A CN109660333 A CN 109660333A CN 201910070855 A CN201910070855 A CN 201910070855A CN 109660333 A CN109660333 A CN 109660333A
- Authority
- CN
- China
- Prior art keywords
- constant
- selector
- arithmetic element
- round transformation
- constant matrices
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开AES解密复用轮变换运算单元结构,包括依次相连接的以下部件:第一合成矩阵乘法运算单元、第一选择器、常数加运算单元、复合域乘法逆运算单元、第二选择器、第二合成矩阵乘法运算单元和第三选择器;其中,所述第一合成矩阵乘法运算单元的输入端设置为数据输入端口,所述第二合成矩阵乘法运算单元的输入端设置为密钥输入端口;所述第一选择器、第二选择器和第三选择器还设置有选择信号输入端口;所述第三选择器的输出端设置为数据输出端口。该AES解密复用轮变换运算单元结构降低电路实现面积,在循环结构AES密码电路实现时节省大量电路资源。
Description
技术领域
本发明涉及密码电路实现技术领域,具体地,涉及AES解密复用轮变换运算单元结构。
背景技术
AES(Advanced Encryption Standard,高级加密标准)是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的DES(Data EncryptionStandard,数据加密标准)。目前,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轮普通轮变换,在每个普通轮变换中按顺序进行字节替换、行移位、列混合和密钥加四个子运算;最后经过一轮末轮变换,末轮变换按顺序进行字节替换、行移位和密钥加三个子运算。AES解密流程是与加密过程相反的一个过程,如图2所示,输入的密文数据首先进行一轮首轮变换,首轮变换为加密流程中末轮变换的逆运算,包括密钥加、逆行移位、逆字节替换三个子运算;然后进行Nr-1轮普通轮变换,普通轮变换为加密流程中普通轮变换的逆运算,包括密钥加、逆列混合、逆行移位和逆字节替换;最后进行一个密钥加运算。逆列混合、逆行移位和逆字节替换分别为加密流程中列混合、行移位和字节替换的逆运算。
全展开结构和循环结构是AES密码电路实现的两种基本结构,附图3为这两种电路结构的示意图。如图3所示,在全展开结构AES密码电路中,需要Nr个轮变换单元依次对输入的明文数据进行处理。全展开结构AES密码电路通过采用流水线技术可以大大提高电路处理速度,因此适用于高速数据处理电路中。在循环结构AES密码电路中,只采用一个轮变换单元完成所有的AES加密运算,因此适用于电路面积受限的应用场合。如图1所示的轮变换运算中,由于末轮变换不需要列混合运算,因此,在循环结构AES密码电路,轮变换电路需要设计成可重构电路,同时支持普通轮变换运算功能和末轮变换运算功能。
在已有的公开文献中,所提出的基于合并运算的AES轮变换电路,都是以增加电路面积为代价对关键路径长度进行了优化。
发明内容
本发明的目的是提供一种AES解密复用轮变换运算单元结构,该AES解密复用轮变换运算单元结构降低电路实现面积,在循环结构AES密码电路实现时节省大量电路资源。
为了实现上述目的,本发明提供了一种AES解密复用轮变换运算单元结构,该AES解密复用轮变换运算单元结构包括依次相连接的以下部件:
第一合成矩阵乘法运算单元、第一选择器、常数加运算单元、复合域乘法逆运算单元、第二选择器、第二合成矩阵乘法运算单元和第三选择器;其中,所述第一合成矩阵乘法运算单元的输入端设置为数据输入端口,所述第二合成矩阵乘法运算单元的输入端设置为密钥输入端口;所述第一选择器、第二选择器和第三选择器还设置有选择信号输入端口;所述第三选择器的输出端设置为数据输出端口。
优选地,所述第一合成矩阵乘法运算单元的输入端和两个输出端都为四个字节,且所述第一合成矩阵乘法运算单元的两个输出端都连接于所述第一选择器的输入端。
优选地,所述常数加运算单元的输入端和输出端都为四个字节,所述常数加运算单元的输入端连接于所述第一选择器的输出端。
优选地,所述第二合成矩阵乘法运算单元的两个输入端和两个输出端都为四个字节,且所述第二合成矩阵乘法运算单元的两个输出端都连接于所述第三选择器的输入端,所述第二合成矩阵乘法运算单元的一个输入端连接于所述第二选择器的输出端,另一个输入端设置为密钥输入端口。
优选地,所述第一合成矩阵乘法运算单元将输入的由四个字节数据组成的一组列向量与合成矩阵进行乘法运算;合成矩阵由常数矩阵 组合而成;常数矩阵为常数矩阵δ和常数矩阵τ′的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上;常数矩阵τ′为逆S盒运算中逆仿射运算所指定的常数矩阵;常数矩阵和分别为GF(28)域上乘常数×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式。
优选地,所述第一二选一选择器从合成矩阵乘法运算单元输出的两个输出数据中选择一个输出数据送入常数加运算单元中。
优选地,所述常数加运算单元实现输入的四个字节数据的加常数ωλ运算;常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积;常数ω为逆S盒运算中逆仿射运算所指定的字节常数。
优选地,所述复合域乘法逆运算单元实现输入的四个字节数据在复合域上的乘法逆运算;该复合域为任意与GF(28)域同构的复合域。
优选地,所述第二合成矩阵乘法运算单元将输入的四个字节数据和四个字节密钥组成的一组列向量与合成矩阵进行乘法运算;合成矩阵由常数矩阵δ'和常数矩阵组合而成;常数矩阵δ′为映射矩阵,其作用是将复合域上的运算结果映射回GF(28)域上;常数矩阵分别为GF(28)域上乘常数×{01}16的矩阵形式。
本发明提出的AES解密复用轮变换运算单元可以实现密钥加/首轮变换/普通变换可重构运算,基于上述的AES解密复用轮变换运算单元结构,本发明还提供一种AES解密方法,该方法的解密步骤包括:
步骤1,进行一个密钥加运算;
步骤2,进行一轮首轮变换;
步骤3,进行Nr–1轮普通轮变换。
优选地,在步骤2中,所述首轮变换先后进行以下运算:移位运算、逆字节替换运算和密钥加运算。
优选地,在步骤3中,所述普通轮变换先后进行以下运算:逆列混合运算、逆行移位运算、逆字节替换运算和密钥加运算。
根据上述技术方案,本发明合成矩阵与合成矩阵将AES解密算法中的复合域映射运算、仿射运算、列混合运算与密钥加运算进行合并,在硬件实现时,可以大大减少电路的关键路径长度。公共项消除算法是线性运算单元最有效的电路优化方法,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1为AES密码算法加密流程;
图2为AES密码算法解密流程;
图3为AES密码电路基本实现结构:(a)全展开结构,(b)循环结构;
图4为本发明提出的AES解密轮变换构建方法;
图5为本发明提出的AES解密复用解密复用轮变换运算单元运算单元结构;
图6为基于本发明提出的AES解密复用轮变换运算单元解密复用轮变换运算单元的32bit位宽循环结构AES解密电路;
图7为基于本发明提出的AES解密复用轮变换运算单元解密复用轮变换运算单元的64bit位宽循环结构AES解密电路;
图8为基于本发明提出的AES解密复用轮变换运算单元解密复用轮变换运算单元的128bit位宽循环结构AES解密电路。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明提供一种AES解密复用轮变换运算单元结构,该AES解密复用轮变换运算单元结构包括依次相连接的以下部件:
第一合成矩阵乘法运算单元、第一选择器、常数加运算单元、复合域乘法逆运算单元、第二选择器、第二合成矩阵乘法运算单元和第三选择器;其中,所述第一合成矩阵乘法运算单元的输入端设置为数据输入端口,所述第二合成矩阵乘法运算单元的输入端设置为密钥输入端口;所述第一选择器、第二选择器和第三选择器还设置有选择信号输入端口;所述第三选择器的输出端设置为数据输出端口。
如图4所示,在本发明提出的解密轮变换构建方法中,AES解密流程首先进行一个密钥加运算,然后进行一轮首轮变换,最后进行Nr–1轮普通轮变换。首轮变换依次完成逆行移位运算、逆字节替换运算和密钥加运算,普通轮变换依次完成逆列混合运算、逆行移位运算、逆字节替换运算和密钥加运算,上述运算单元的运算公式具体如下:
AES轮变换是以矩阵形式进行变换操作的,解密算法将输入的128比特分组数据视为4×4字节矩阵,每个矩阵的元素为1个字节。轮变换的中间结果称之为状态矩阵为4×4字节矩阵。假设普通轮变换输入的状态矩阵为:
AES解密过程中的各个运算详细介绍如下:
1.逆列混合运算
逆列混合运算为列混合的逆运算,同样可以视为状态矩阵中每一列与一个常数多项式在环R上的乘积。假设经过逆列混合运算后的状态矩阵为:
逆列混合运算的表达式为:
其中矩阵为列混合常数矩阵,常数矩阵中的分别为GF(28)域上乘常数×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式,本发明中{}16表示常数的十六进制形式。
2.逆行移位运算
逆行移位运算是行移位的逆运算,即状态矩阵的第一行不变换,第二,三,四行分别向右移位一个字节,二个字节,和三个字节。假设经过逆行移位运算后的状态矩阵为:
逆行移位之后的状态矩阵可以表达为:
逆行移位运算在硬件实现中也不需要消耗任何逻辑电路资源,只需调整总线位置即可。
3.逆字节替换运算
逆字节替换运算为字节替换的逆运算,也称为逆S盒运算。逆S盒运算同样是将状态矩阵中的每个字节根据字节替换表进行逆替换操作。假设经过逆S盒运算后的状态矩阵为:
则逆S盒运算可以表达为:
其中为逆S盒运算函数。逆S盒运算是轮变换四个运算中唯一的非线性运算,也是运算复杂度最高的运算,因此逆S盒运算电路占据了整个AES解密电路的绝大部分电路面积和功耗。
在逆S盒运算中,输入字节首先进行一个逆仿射运算,逆仿射运算为加密S盒仿射运算的逆运算,然后进行一个有限域GF(28)域上乘法逆运算,其表达式为:
其中x为输入字节,ω为字节常数,τ′为8×8bit常数矩阵,是加密S盒中常数矩阵τ的逆矩阵,τ′和ω用于完成逆仿射运算,()A -1为GF(28)域上的乘法逆运算。本发明所涉及的GF(28)域为AES密码算法中所指定的GF(28)域,其不可约多项式为
f(x)=x8+x4+x3+x+1
在众多S盒实现方式中,基于复合域的S盒实现具有最小的电路面积。复合域S盒通过数学变换将S盒中的主要运算单元—GF(28)域乘法逆运算单元映射到复合域中实现。复合域乘法逆运算的计算复杂度要远远小于GF(28)域乘法逆的计算复杂度,因而可以大大减少S盒电路实现的硬件复杂度。
基于复合域的逆S盒运算表达式为:
其中()C -1为复合域上的乘法逆运算,复合域为任意与GF(28)域同构的复合域,δ为8×8bit映射矩阵,其作用是将输入字节x从GF(28)域映射到复合域,δ'为δ逆矩阵,其作用是将复合域乘法逆运算结果从复合域映射回到GF(28)域。
在有限域中,加法运算为位异或逻辑运算。根据x⊕y⊕1=x⊕y=x⊙y,因此,常数加运算+ω在硬件实现时,加0运算可以直接省略掉,加1运算可以用两种方法代替异或逻辑运算:1.任意两个变量的异或逻辑采用同或逻辑代替;2.任意两个变量的采用异或逻辑+取反逻辑实现。由于同或逻辑门与异或逻辑门的电路面积和延时几乎相同,同时相比于异或逻辑门,反向逻辑门的电路面积和延时可以忽略,因此,在逆S盒硬件实现时,常数加运算+ω电路面积和延时可以忽略不计。
4.密钥加运算
密钥加运算与加密流程中的密钥加运算相同。假设经过密钥加运算后的状态矩阵为:
密钥加运算表达式为:
其中矩阵为子密钥矩阵,由密钥扩展算法产生,子密钥矩阵的使用顺序与加密流程中子密钥矩阵的使用顺序相反。
5.普通轮变换公式
轮变换中的四个运算单元可以单独实现,也可以将相邻的几个运算单元合并成一个运算单元进行实现。运算单元单独实现的轮变换电路不仅浪费电路资源,且关键路径较长。本发明根据普通轮变换公式,通过常数矩阵的合并与合成运算,对普通轮变换中的线性运算进行合并。如图4所示,普通轮变换依次进行逆列混合、逆行移位、逆字节替换和密钥加等运算,根据上述中轮变换中的各个子运算公式,可以得出普通轮变换公式为:
其中为常数矩阵中的行向量,和分别为数据矩阵和密钥矩阵中的列向量,即:
将上述公式中具有相同输入的输出变量rx,y划分一组,共可以划分成四个分组。这四个分组具有相同运算操作,并在硬件实现时具有相同的电路运算单元。每一分组输出变量都可以表达为线性方程形式:
上式中的输入变量和输出变量在每一分组中对应的变量为:
组I:组II:
组III:组IV:
为了减少电路实现面积,本发明进一步将逆S盒中的GF(28)乘法逆映射到复合域中,映射后的普通轮变换分组公式为:
6.首轮变换公式
如图4所示,首轮变换依次进行逆行移位、逆字节替换和密钥加等运算,根据上述各个子运算公式,同样可以得出首轮变换公式为:
同样将首轮变换公式也可以分成四个分组,首轮变换分组公式为:
上式中的输入变量和输出变量在每一分组中对应的变量与普通轮变换相同。将首轮变换中的逆S盒运算映射到复合域中,则首轮变换分组公式为:
本发明提供了一种AES解密复用轮变换运算单元结构解密复用轮变换运算单元,可以实现图4中的密钥加/首轮变换/普通轮变换等三种运算的可重构功能。发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵与合成矩阵从而缩短AES解密电路的关键路径,降低AES解密电路实现面积。
图5为本发明具体实施方式的AES解密复用轮变换运算单元解密复用轮变换运算单元结构示意图。本具体实施方式提供的AES解密复用轮变换运算单元解密复用轮变换运算单元结构,包括:第一合成矩阵乘法运算单元、第一选择器、常数加运算单元、复合域乘法逆运算单元、第二选择器、第二合成矩阵乘法运算单元和第三选择器,还包括:反馈数据输入端口、明文输入端口、密钥输入端口、选择信号输入端口和数据输出端口。反馈数据输入端口、明文输入端口、密钥输入端口和数据输出端口的数据位宽都为四个字节。
第一合成矩阵乘法运算单元包括一个输入端和两个输出端,输入端和两个输出端的数据位宽都为四个字节,输入端与反馈数据输入端口相连接,两个输出端与第一选择器的两个输入端相连接。第一选择器包括三个输入端和一个输出端,其中两个输入端用于输入数据,数据位宽为四个字节,分别与合成矩阵乘法运算单元1的两个输出端相连接,一个输入端用于输入选择信号,与选择信号s1输入端口相连接,输出端数据位宽为四个字节,与常数加运算单元的输入端。常数加运算单元包括一个输入端和一个输出端,输入端和输出端的数据位宽都为四个字节,输入端与二选一选择器的输出端相连接,输出端与复合域乘法逆运算单元的输入端相连接。复合域乘法逆运算单元包括一个输入端和一个输出端,输入端和输出端的数据位宽都为四个字节,输入端与常数加运算单元输出端相连接,输出端与第二选择器一个输入端相连接。第二选择器包括三个输入端和一个输出端,其中两个输入端用于输入数据,数据位宽为四个字节,分别与复合域乘法逆输出端、明文输入端口相连接,一个输入端用于输入选择信号,与选择信号s2输入端口相连接,输出端数据位宽为四个字节,与合成矩阵乘法运算单元2的一个输入端相连接。第二合成矩阵乘法运算单元包括两个输入端和两个输出端,两个输入端和两个输出端的数据位宽都为四个字节,一个输入端用于输入数据,与第二选择器输出端相连接,另一个输入端用于输入密钥,与密钥输入端口相连接,两个输出端分别与第三选择器的两个输入端相连接。第三选择器包括三个输入端和一个输出端,其中两个输入端用于输入数据,数据位宽为四个字节,分别与第二合成矩阵乘法运算单元的两个输出端口相连接,一个输入端用于输入选择信号,与选择信号s3输入端口相连接,输出端数据位宽为四个字节,与数据输出端口相连接。
在本发明的一种具体实施方式中,所述第一合成矩阵乘法运算单元的输入端和两个输出端都为四个字节,且所述第一合成矩阵乘法运算单元的两个输出端都连接于所述第一选择器的输入端。
在本发明的一种具体实施方式中,所述常数加运算单元的输入端和输出端都为四个字节,所述常数加运算单元的输入端连接于所述第一选择器的输出端。
在本发明的一种具体实施方式中,所述第二合成矩阵乘法运算单元的两个输入端和两个输出端都为四个字节,且所述第二合成矩阵乘法运算单元的两个输出端都连接于所述第三选择器的输入端,所述第二合成矩阵乘法运算单元的一个输入端连接于所述第二选择器的输出端,另一个输入端设置为密钥输入端口。
图5中的各个运算单元的运算过程如下:
所述的合成矩阵乘法运算单元1,将合成矩阵与列向量 进行乘法运算,是从反馈数据输入端口输入的列向量,合成矩阵由常数矩阵组合而成:
其中常数矩阵为常数矩阵δ和常数矩阵τ′的乘积,即常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积,即常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积,即常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积,即常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积,即常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上。常数矩阵τ′为逆S盒运算中逆仿射运算所指定的常数矩阵。常数矩阵 分别为GF(28)域上乘常数×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式。合成矩阵乘法运算单元1可以用具体公式进行表达为:
运算结果的第一行至第四行组成列向量第五行至第八行组成列向量 和进一步输出到选择器1。
所述选择器1,在进行首轮变换运算时,根据选择信号s1=0选择将向量送入数据输出端口。在进行普通轮变换运算时,根据选择信号s1=1,选择将向量送入数据输出端口。选择器1的具体表达形式为:
选择器1输出结果进一步输出到常数加运算单元中。
所述常数加运算单元实现向量与常数向量Ωλ相加运算。常数向量Ωλ由四个常数ωλ组合而成,即Ωλ=[ωλ,ωλ,ωλ,ωλ]T,其中常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积,即ωλ=δ×τ'×ω,常数ω为逆S盒运算中逆仿射运算所指定的字节常数。常数加运算单元的具体表达形式为:
运算结果进一步输出到复合域乘法逆运算单元中。
所述复合域乘法逆运算单元将进行复合域乘法逆运算。这里的复合域为任意与GF(28)域同构的复合域。复合域乘法逆运算单元的具体表达形式为:
其中为复合域乘法逆运算。运算结果进一步输出到选择器2的一个数据输入端。
所述选择器2的一个数据输入端输入复合域乘法逆运算结果 另一个数据输入端输入明文输入数据选择器2根据选择信号s2从两组输出数据和中选择一组送入反馈数据输出端口。当复用轮变换单元进行密钥加运算时,选择信号s2=1,选择器2将列向量送入合成矩阵乘法运算单元2。当复用轮变换单元进行首轮变换运算或普通轮变换运算时,选择信号为s2=0,选择器2将送入合成矩阵乘法运算单元2。选择器2的具体表达形式为:
选择器输出结果进一步输出到合成矩阵乘法运算单元2中。
所述在合成矩阵乘法运算单元2中,数据向量和密钥向量进一步组合成一个列向量并与合成矩阵进行乘法运算。是从密钥输入端口输入的列向量,合成矩阵由常数矩阵δ′、组合而成:
其中常数矩阵分别为GF(28)域上乘常数×{01}16的矩阵形式;常数矩阵δ′为映射矩阵,其作用是将复合域上的元素映射到GF(28)域上。合成矩阵乘法运算单元2可以用具体公式进行表达为:
运算结果的第一行至第四行组成列向量运算结果的第五行至第八行组成列向量 和进一步输出到选择器3中。
所述选择器3,根据选择信号s3从两组输出数据和中选择一组送入反馈数据输出端口。当复用轮变换单元进行密钥加运算时,选择信号s3=0,选择器3将送入数据输出端口。当复用轮变换单元进行首轮变换运算或普通轮变换运算时,选择信号为s3=1,选择器3将送入数据输出端口。选择器3的具体表达形式为:
选择器输出结果进一步输出到数据输出端口。
本发明提出的解密复用轮变换运算单元通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵与合成矩阵从而缩短AES解密电路的关键路径,同时降低AES解密电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少AES解密电路实现面积;并通过常数加运算单元和复合域乘法逆运算单元来构建密钥加/首轮变换/普通轮变换复用单元,节省大量电路资源。
循环结构是AES解密电路实现的基本结构,基于所提出的解密复用轮变换运算单元采用分时复用处理方式或者是分时复用与并行处理相结合的方式来构成循环结构的AES解密电路。
图6为本发明实施例一提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
该AES解密电路包括:
一个复用轮变换电路,寄存器1及寄存器2,寄存器1及寄存器2的数据位宽为16字节,解密复用轮变换运算单元的数据输出端口与寄存器1的输入端以及明文数据输出端口相连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与解密复用轮变换运算单元的反馈数据输入端连接;
实施例一提供的AES解密电路的解密方法包括如下步骤:
S1、前4次运算构成密钥加运算,密钥加运算是指四组四字节的密文数据先后从密文数据输入端口输入到解密复用轮变换单元中,选择器2将输入的密文数据送至合成矩阵乘法运算单元2,选择器3将合成矩阵乘法运算单元2运算结果的第一行至第四行组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器1,经过四次运算之后,寄存器1将储存的16字节输至寄存器2中;
S2、复用轮变换电路的第5~8次运算构成首轮通轮变换,寄存器2每次输出4字节的数据至解密复用轮变换单元的反馈数据输入端,经合成矩阵乘法运算单元1的运算,选择器1将运算结果的第一行至第四行向量组成的向量输出至常数加运算单元,选择器2将复合域乘法逆运算单元的运算结果输出至合成矩阵乘法运算单元2,而选择器3将合成矩阵乘法运算单元2运算结果的第四行至第八行向量组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器1,经过四次运算之后,寄存器1将储存的16字节输至寄存器2中;
S3、复用轮变换电路的第9~4(Nr+1)次运算构成普通轮变换运算,寄存器2每次输出4字节的数据至解密复用轮变换单元的反馈数据输入端,经合成矩阵乘法运算单元1的运算,选择器1将运算结果的第五行至第八行向量组成的向量输出至常数加运算单元,选择器2将复合域乘法逆运算单元的运算结果输出至合成矩阵乘法运算单元2,而选择器3将合成矩阵乘法运算单元2运算结果的第四行至第八行向量组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器1,每四次运算之后,寄存器1将储存的16字节输至寄存器2中,其中第(4Nr+1)~4(Nr+1)运算结果作为最终运算结果从明文数据输出端口输出。
图7为本发明实施例二提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
该AES解密电路包括:
两个复用轮变换运算单元,寄存器1及寄存器2,寄存器1及寄存器2的数据位宽为16字节,两个解密复用轮变换单元的数据输出端口与寄存器1的输入端以及明文数据输出端口相连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与两个解密复用轮变换单元的反馈数据输入端连接。
实施例二提供的AES解密电路的解密方法包括如下步骤:
S1、前2次运算构成密钥加运算,密钥加运算是指四组四字节的密文数据先后分两次从密文数据输入端口输入到两个解密复用轮变换单元中,两个解密复用轮变换单元采用并行处理方式,每个解密复用轮变换单元每次输入四个字节,解密复用轮变换单元中的选择器2将输入的密文数据送至合成矩阵乘法运算单元2,选择器3将合成矩阵乘法运算单元2运算结果的第一行至第四行组成的向量输出数据输出端口,并通过反馈数据回路送至寄存器1,经过两个解密复用轮变换单元两次运算之后,寄存器1将储存的16字节输至寄存器2中;
S2、复用轮变换电路的第3~4次运算构成首轮通轮变换,寄存器2每次输出8字节的数据至两个解密复用轮变换单元的反馈数据输入端,两个解密复用轮变换单元采用并行处理方式,每个解密复用轮变换单元输入4个字节,在解密复用轮变换单元中,输入数据经合成矩阵乘法运算单元1的运算,选择器1将运算结果的第一行至第四行向量组成的向量输出至常数加运算单元,选择器2将复合域乘法逆运算单元的运算结果输出至合成矩阵乘法运算单元2,而选择器3将合成矩阵乘法运算单元2运算结果的第四行至第八行向量组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器1,经过两个解密复用轮变换单元两次运算之后,寄存器1将储存的16字节输至寄存器2中;
S3、复用轮变换电路的第5~2(Nr+1)次运算构成普通轮变换运算,寄存器2每次输出8字节的数据至两个解密复用轮变换单元的反馈数据输入端,两个解密复用轮变换单元采用并行处理方式,每个解密复用轮变换单元输入4个字节,在解密复用轮变换单元中,输入数据经合成矩阵乘法运算单元1的运算,选择器1将运算结果的第五行至第八行向量组成的向量输出至常数加运算单元,选择器2将复合域乘法逆运算单元的运算结果输出至合成矩阵乘法运算单元2,而选择器3将合成矩阵乘法运算单元2运算结果的第四行至第八行向量组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器1,两个解密复用轮变换单元每两次运算之后,寄存器1将储存的16字节输至寄存器2中,其中第(2Nr+1)~2(Nr+1)运算结果作为最终运算结果从明文数据输出端口输出。
图8为本发明实施例三提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
该AES解密电路包括:
四个复用轮变换电路及寄存器,寄存器的数据位宽为16字节,四个解密复用轮变换运算单元的数据输出端口与寄存器的输入端以及明文数据输出端口连接,寄存器的输出端与四个解密复用轮变换运算单元的反馈数据输入端连接。
实施例三提供的AES解密电路的解密方法包括如下步骤:
S1、第一次运算构成密钥加运算,密钥加运算是指四组四字节的密文数据分别从密文数据输入端口输入四个解密复用轮变换运算单元,四个解密复用轮变换单元采用并行处理方式,每个解密复用轮变换单元输入四个字节,解密复用轮变换单元中的选择器2将输入的密文数据送至合成矩阵乘法运算单元2,选择器3将合成矩阵乘法运算单元2运算结果的第一行至第四行组成的向量输出数据输出端口,并通过反馈数据回路送至寄存器中;
S2、复用轮变换电路的第2次运算构成首轮轮变换,寄存器每次输出4字节的数据至四个解密复用轮变换单元的反馈数据输入端,四个解密复用轮变换单元采用并行处理方式,每个解密复用轮变换单元输入4个字节,在解密复用轮变换单元中,输入数据经合成矩阵乘法运算单元1的运算,选择器1将运算结果的第一行至第四行向量组成的向量输出至常数加运算单元,选择器2将复合域乘法逆运算单元的运算结果输出至合成矩阵乘法运算单元2,而选择器3将合成矩阵乘法运算单元2运算结果的第四行至第八行向量组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器;
S3、复用轮变换电路的第3~(Nr+1)次运算构成普通轮变换运算,寄存器每次输出8字节的数据至四个解密复用轮变换单元的反馈数据输入端,四个解密复用轮变换单元采用并行处理方式,每个解密复用轮变换单元输入4个字节,在解密复用轮变换单元中,输入数据经合成矩阵乘法运算单元1的运算,选择器1将运算结果的第五行至第八行向量组成的向量输出至常数加运算单元,选择器2将复合域乘法逆运算单元的运算结果输出至合成矩阵乘法运算单元2,而选择器3将合成矩阵乘法运算单元2运算结果的第四行至第八行向量组成的向量输出至数据输出端口,并通过反馈数据回路送至寄存器,其中第Nr+1运算结果作为最终运算结果从明文数据输出端口输出。
循环结构的AES解密电路通过复用密钥加运算、首轮变换运算和普通变换运算中的相同运算单元,电路面积大大减小,因此适用于面积受限的数据处理电路中。
本发明提出的AES解密电路是基于解密复用轮变换运算单元构成的,解密复用轮变换运算单元通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵与合成矩阵从而缩短AES解密电路的关键路径,降低AES解密电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积;
并通过复用合成矩阵乘法运算单元1、常数加运算单元、复合域乘法逆运算单元及合成矩阵乘法运算单元2来构建密钥加、首轮变换、普通轮变换等运算的解密复用轮变换运算单元,节省大量电路资源。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
解密复用轮变换运算单元解密复用轮变换运算单元解密复用轮变换运算单元解密复用轮变换运算单元解密复用轮变换运算单元解密复用轮变换运算单元解密复用轮变换运算单元解密复用轮变换运算单元。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (10)
1.一种AES解密复用轮变换运算单元结构,其特征在于,该AES解密复用轮变换运算单元结构包括依次相连接的以下部件:
第一合成矩阵乘法运算单元、第一选择器、常数加运算单元、复合域乘法逆运算单元、第二选择器、第二合成矩阵乘法运算单元和第三选择器;其中,所述第一合成矩阵乘法运算单元的输入端设置为数据输入端口,所述第二合成矩阵乘法运算单元的输入端设置为密钥输入端口;所述第一选择器、第二选择器和第三选择器还设置有选择信号输入端口;所述第三选择器的输出端设置为数据输出端口。
2.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述第一合成矩阵乘法运算单元的输入端和两个输出端都为四个字节,且所述第一合成矩阵乘法运算单元的两个输出端都连接于所述第一选择器的输入端。
3.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述常数加运算单元的输入端和输出端都为四个字节,所述常数加运算单元的输入端连接于所述第一选择器的输出端。
4.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述第二合成矩阵乘法运算单元的两个输入端和两个输出端都为四个字节,且所述第二合成矩阵乘法运算单元的两个输出端都连接于所述第三选择器的输入端,所述第二合成矩阵乘法运算单元的一个输入端连接于所述第二选择器的输出端,另一个输入端设置为密钥输入端口。
5.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述第一合成矩阵乘法运算单元将输入的由四个字节数据组成的一组列向量与合成矩阵进行乘法运算;合成矩阵由常数矩阵组合而成;常数矩阵为常数矩阵δ和常数矩阵τ′的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵为常数矩阵δ、常数矩阵τ′和常数矩阵的乘积;常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上;常数矩阵τ′为逆S盒运算中逆仿射运算所指定的常数矩阵;常数矩阵 和分别为GF(28)域上乘常数×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式,矩阵具体表达为:
6.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述第一二选一选择器从合成矩阵乘法运算单元输出的两个输出数据中选择一个输出数据送入常数加运算单元中。
7.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述常数加运算单元实现输入的四个字节数据的加常数ωλ运算;常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积;常数ω为逆S盒运算中逆仿射运算所指定的字节常数。
8.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述复合域乘法逆运算单元实现输入的四个字节数据在复合域上的乘法逆运算;该复合域为任意与GF(28)域同构的复合域。
9.根据权利要求1所述的AES解密复用轮变换运算单元结构,其特征在于,所述第二合成矩阵乘法运算单元将输入的四个字节数据和四个字节密钥组成的一组列向量与合成矩阵进行乘法运算;合成矩阵由常数矩阵δ'和常数矩阵组合而成;常数矩阵δ′为映射矩阵,其作用是将复合域上的运算结果映射回GF(28)域上;常数矩阵分别为GF(28)域上乘常数×{01}16的矩阵形式,矩阵具体表达为:
10.一种AES解密方法,其特征在于,该方法使用权利要求1-9中任意一项权利要求所述的AES解密复用轮变换运算单元结构进行解密,解密步骤包括:
步骤1,进行一个密钥加运算;
步骤2,进行一轮首轮变换;
步骤3,进行Nr–1轮普通轮变换;
在步骤2中,所述首轮变换包括:移位运算、逆字节替换运算和密钥加运算。
在步骤3中,所述普通轮变换包括:逆列混合运算、逆行移位运算、逆字节替换运算和密钥加运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910070855.4A CN109660333A (zh) | 2019-01-25 | 2019-01-25 | Aes解密复用轮变换运算单元结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910070855.4A CN109660333A (zh) | 2019-01-25 | 2019-01-25 | Aes解密复用轮变换运算单元结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109660333A true CN109660333A (zh) | 2019-04-19 |
Family
ID=66121583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910070855.4A Pending CN109660333A (zh) | 2019-01-25 | 2019-01-25 | Aes解密复用轮变换运算单元结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660333A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809627A (zh) * | 2018-06-11 | 2018-11-13 | 安徽工程大学 | 轮变换复用电路及aes解密电路 |
CN108933652A (zh) * | 2018-06-11 | 2018-12-04 | 安徽工程大学 | 一种普通轮变换运算单元、普通轮变换电路及aes解密电路 |
CN108964875A (zh) * | 2018-06-11 | 2018-12-07 | 安徽工程大学 | 普通轮变换运算单元、普通轮变换电路及aes解密电路 |
CN109033023A (zh) * | 2018-06-11 | 2018-12-18 | 安徽工程大学 | 一种普通轮变换运算单元、普通轮变换电路及aes加密电路 |
CN109033892A (zh) * | 2018-06-11 | 2018-12-18 | 安徽工程大学 | 基于合成矩阵的轮变换复用电路及aes解密电路 |
CN109150495A (zh) * | 2018-06-11 | 2019-01-04 | 安徽工程大学 | 一种轮变换复用电路及其aes解密电路 |
-
2019
- 2019-01-25 CN CN201910070855.4A patent/CN109660333A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809627A (zh) * | 2018-06-11 | 2018-11-13 | 安徽工程大学 | 轮变换复用电路及aes解密电路 |
CN108933652A (zh) * | 2018-06-11 | 2018-12-04 | 安徽工程大学 | 一种普通轮变换运算单元、普通轮变换电路及aes解密电路 |
CN108964875A (zh) * | 2018-06-11 | 2018-12-07 | 安徽工程大学 | 普通轮变换运算单元、普通轮变换电路及aes解密电路 |
CN109033023A (zh) * | 2018-06-11 | 2018-12-18 | 安徽工程大学 | 一种普通轮变换运算单元、普通轮变换电路及aes加密电路 |
CN109033892A (zh) * | 2018-06-11 | 2018-12-18 | 安徽工程大学 | 基于合成矩阵的轮变换复用电路及aes解密电路 |
CN109150495A (zh) * | 2018-06-11 | 2019-01-04 | 安徽工程大学 | 一种轮变换复用电路及其aes解密电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1921382B (zh) | 一种基于aes算法的加解密方法及加解密器 | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
Moldovyan et al. | A cipher based on data-dependent permutations | |
CN106921487A (zh) | 可重构s盒电路结构 | |
CN109033892B (zh) | 基于合成矩阵的轮变换复用电路及aes解密电路 | |
CN103684749B (zh) | 一种基于面积与性能平衡优化的klein加密实现方法 | |
CN109150495B (zh) | 一种轮变换复用电路及其aes解密电路 | |
CN108933652B (zh) | 一种普通轮变换运算单元、普通轮变换电路及aes解密电路 | |
CN109039583B (zh) | 复用轮变换电路、aes加密电路及加密方法 | |
CN108809627B (zh) | 轮变换复用电路及aes解密电路 | |
CN109033847B (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
CN109639408A (zh) | 一种aes解密复用轮变换电路结构 | |
CN109033893A (zh) | 基于合成矩阵的aes加密单元、aes加密电路及其加密方法 | |
CN108566271B (zh) | 复用轮变换电路、aes加密电路及其加密方法 | |
CN109660333A (zh) | Aes解密复用轮变换运算单元结构 | |
CN102857334B (zh) | 一种实现aes加解密的方法及装置 | |
CN108964875B (zh) | 普通轮变换运算单元、普通轮变换电路及aes解密电路 | |
CN108989018A (zh) | 一种aes加密单元、aes加密电路及加密方法 | |
CN109033023B (zh) | 一种普通轮变换运算单元、普通轮变换电路及aes加密电路 | |
CN109936440A (zh) | Aes解密电路中的复用轮变换运算单元结构和构建方法 | |
CN109936439A (zh) | Aes解密普通轮变换电路结构及轮变换构建方法 | |
CN109150496A (zh) | Aes加密运算单元、aes加密电路及加密方法 | |
Thirer | A pipelined FPGA implementation of an encryption algorithm based on genetic algorithm | |
Miroshnik | Implementation of cryptographic algorithms on FPGA-based digital distributed systems | |
CN109033894A (zh) | 普通轮变换运算单元、普通轮变换电路及其aes加密电路 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |