CN109033892B - 基于合成矩阵的轮变换复用电路及aes解密电路 - Google Patents

基于合成矩阵的轮变换复用电路及aes解密电路 Download PDF

Info

Publication number
CN109033892B
CN109033892B CN201810596797.4A CN201810596797A CN109033892B CN 109033892 B CN109033892 B CN 109033892B CN 201810596797 A CN201810596797 A CN 201810596797A CN 109033892 B CN109033892 B CN 109033892B
Authority
CN
China
Prior art keywords
register
data
selector
input end
circuit
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
Application number
CN201810596797.4A
Other languages
English (en)
Other versions
CN109033892A (zh
Inventor
张肖强
郑辛星
辛建芳
王磊
孙忠先
王新航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Polytechnic University
Original Assignee
Anhui Polytechnic University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui Polytechnic University filed Critical Anhui Polytechnic University
Priority to CN201810596797.4A priority Critical patent/CN109033892B/zh
Publication of CN109033892A publication Critical patent/CN109033892A/zh
Application granted granted Critical
Publication of CN109033892B publication Critical patent/CN109033892B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及密码电路技术领域,提供了一种基于合成矩阵的轮变换复用电路及AES加密电路,本发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵
Figure DDA0001691879180000011
与合成矩阵
Figure DDA0001691879180000012
从而缩短实现电路的关键路径,降低电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积。

Description

基于合成矩阵的轮变换复用电路及AES解密电路
技术领域
本发明涉及密码电路技术领域,尤其涉及一种基于合成矩阵的轮变换复用电路及AES加密电路。
背景技术
AES(Advanced Encryption Standard,高级加密标准)密码算法是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的DES(DataEncryption Standard,数据加密标准)。目前,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轮普通轮变换及一轮末轮变换,首轮变换为加密流程中末轮变换的逆运算,包括密钥加、逆行移位、逆字节替换三个运算,普通轮变换为加密流程中普通轮变换的逆运算,包括密钥加、逆列混合、逆行移位和逆字节替换,末轮变换为加密过程中首轮变换的逆运算,包括密钥加,其中,逆列混合、逆行移位和逆字节替换分别为加密流程中列混合、行移位和字节替换的逆运算,依次单独运算的普通轮变换电路或末轮变换不仅浪费电路资源,且关键路径较长,因此,通过合成矩阵将相邻的几个运算单元合并成一个运算单元进行实现。
T盒实现方式是目前轮变换电路实现中最常用的运算单元合并实现方式,T盒实现通过预计算方式将S盒、行移位和列混合等运算的运算结果预存一个存储运算单元中,以查询表的方式实现S盒、行移位和列混合合并运算功能。T盒实现减少了整个普通轮变换电路的关键路径,因此T盒实现方式主要应用在高速AES电路设计中,T盒实现方式虽然可以加快数据处理速度,但也大大增加了电路面积,如Rach等人将基于复合域S盒/逆S盒中最后一级GF(24)乘法器、映射矩阵/逆映射运算、仿射/逆仿射运算、列混合/逆列混合运算和密钥加运算等五个运算合并成一个运算单元,合并运算单元缩短了关键路径,但同时也大大增加了电路面积,现有的基于合并运算的轮变换电路,都是以增加电路面积为代价对关键路径长度进行了优化。
发明内容
本发明实施例提供一种AES解密电路,旨在解决现有基于合并运算的轮变换电路,均是以增加电路面积为代价来对关键路径长度进行优化的问题。
本发明是这样实现的,基于合成矩阵的轮变换复用电路,用于AES解密,其特征在于,所述电路包括:
合成矩阵乘法运算单元1、二选一选择器S1、常数加运算单元、复合域乘法逆运算单元、合成矩阵乘法运算单元2,其中,合成矩阵乘法运算单元1的输入端分别与数据输入端、密钥输入端连接,两个输出端分别与选择器S1的两个输入端连接,第三个输出端与明文数据输出端口连接,选择器S1的输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的输出端与反馈数据输入端连接;
合成矩阵乘法运算单元1,将从数据输入端口输入的数据向量
Figure BDA0001691879160000031
Figure BDA0001691879160000032
及从密钥输入端口输入密钥向量
Figure BDA0001691879160000033
组合成一个列向量
Figure BDA0001691879160000034
Figure BDA0001691879160000035
并将合成矩阵
Figure BDA0001691879160000036
与列向量
Figure BDA0001691879160000037
进行乘法运算,将运算结果第一行至第四行组成的列向量
Figure BDA0001691879160000038
及第五行至第八行组成的列向量
Figure BDA0001691879160000039
分别输出到二选一选择器,运算结果的第九行至第十二行组成的列向量
Figure BDA00016918791600000310
则输出到明文数据输出端口,其中,合成矩阵
Figure BDA00016918791600000311
表示如下:
Figure BDA00016918791600000312
选择器S1从两组数据
Figure BDA00016918791600000313
Figure BDA00016918791600000314
中选择一组送入常数加运算单元中,当进行首轮变换运算时,选择器S1将
Figure BDA00016918791600000315
送入常数加运算单元中;当进行普通轮变换运算时,选择器S1将
Figure BDA00016918791600000316
送入常数加运算单元中;
常数加运算单元,将选择器输出的数据向量
Figure BDA0001691879160000041
与常数向量Ωλ=[ωλλλλ]T相加运算,将运算结果
Figure BDA0001691879160000042
输出到复合域乘法逆运算单元中;
复合域乘法逆运算单元,将数据向量
Figure BDA0001691879160000043
中的每个字节进行复合域乘法逆运算,并将运算结果
Figure BDA0001691879160000044
输出到合成矩阵乘法运算单元2;
合成矩阵乘法运算单元2,将合成矩阵
Figure BDA0001691879160000045
与列向量
Figure BDA0001691879160000046
进行乘法运算,运算结果
Figure BDA0001691879160000047
输出到反馈数据输出端口,其中合成矩阵
Figure BDA0001691879160000048
的表达式具体如下:
Figure BDA0001691879160000049
合成矩阵乘法运算单元1、选择器S1、常数加运算单元、复合域乘法逆运算单元、合成矩阵乘法运算单元2的数据输入端及数据输出端的数据位宽均为4个字节。
本发明是这样实现的,一种AES解密电路,所述AES解密电路包括:
二选一选择器S2、寄存器1、寄存器2及一个复用轮变换电路,寄存器1及寄存器2的数据位宽为16字节,其中,选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与轮变换复用电路的数据输入端连接,复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接。
本发明是这样实现的,一种AES解密电路,所述AES解密电路包括:
二选一选择器S2、寄存器1、寄存器2及两个复用轮变换电路,寄存器1及寄存器2的数据位宽为16字节,其中,选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端分别与两个轮变换复用电路的数据输入端连接,两个复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接。
本发明是这样实现的,一种AES解密电路,所述AES解密电路包括:
二选一选择器S2、寄存器及四个复用轮变换电路,寄存器的数据位宽为16字节;
选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器的输入端连接,寄存器的输出端分别与四个轮变换复用电路的数据输入端连接,四个复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接。
本发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵
Figure BDA0001691879160000051
与合成矩阵
Figure BDA0001691879160000052
从而缩短实现电路的关键路径,降低电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积。
附图说明
图1为本发明实施例提供的标准AES加密流程图;
图2为本发明实施例提供的标准AES解密流程图;
图3为本发明实施例提供的用于AES解密的轮变换复用电路结构示意图;
图4为本发明实施例一提供的AES解密电路结构示意图;
图5为本发明实施例二提供的AES解密电路结构示意图;
图6为本发明实施例三提供的AES解密电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有的运算单元通常包括:逆字节替换运算单元、逆行移位运算单元、逆列混合运算单元和密钥加运算单元,上述运算单元的运算公式具体如下:
AES轮变换是以矩阵形式进行变换操作的,加密算法将输入的128比特分组数据视为4×4字节矩阵,每个矩阵的元素为1个字节。轮变换的中间结果称之为状态矩阵为4×4字节矩阵。假设轮变换输入的状态矩阵为:
Figure BDA0001691879160000061
AES解密过程中的各个运算详细介绍如下:
1.密钥加运算单元
密钥加运算单元用于进行密钥加运算,密钥加运算与加密流程中的密钥加运算相同。假设经过密钥加运算后的状态矩阵为:
Figure BDA0001691879160000062
密钥加运算表达式为:
Figure BDA0001691879160000063
其中矩阵
Figure BDA0001691879160000071
为子密钥矩阵,由密钥扩展算法产生,子密钥矩阵的使用顺序与加密流程中子密钥矩阵的使用顺序相反。
2.逆列混合运算单元
逆列混合运算单元进行逆列混合运算,逆列混合运算为列混合的逆运算,同样可以视为状态矩阵中每一列与一个常数多项式在环
Figure BDA0001691879160000078
上的乘积。假设经过逆列混合运算后的状态矩阵为:
Figure BDA0001691879160000072
逆列混合运算的表达式为:
Figure BDA0001691879160000073
其中矩阵
Figure BDA0001691879160000074
为列混合常数矩阵,常数矩阵
Figure BDA0001691879160000075
中的
Figure BDA0001691879160000076
分别为GF(28)域上乘常数×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式,本发明中{}16表示常数的十六进制形式。
3.逆行移位运算单元
逆行移位运算单元进行逆行移位运算,逆行移位运算是行移位的逆运算,即状态矩阵的第一行不变换,第二,三,四行分别向右移位一个字节,二个字节,和三个字节。假设经过逆行移位运算后的状态矩阵为:
Figure BDA0001691879160000077
逆行移位之后的状态矩阵可以表达为:
Figure BDA0001691879160000081
逆行移位运算在硬件实现中也不需要消耗任何逻辑电路资源,只需调整总线位置即可。
4.逆字节替换运算
逆字节替换运算为字节替换的逆运算,也称为逆S盒运算。逆S盒运算同样是将状态矩阵中的每个字节根据字节替换表进行逆替换操作。假设经过逆S盒运算后的状态矩阵为:
Figure BDA0001691879160000082
则逆S盒运算可以表达为:
Figure BDA0001691879160000083
其中
Figure BDA0001691879160000084
为逆S盒运算函数。逆S盒运算是轮变换四个运算中唯一的非线性运算,也是运算复杂度最高的运算,因此逆S盒运算电路占据了整个AES解密电路的绝大部分电路面积和功耗。
在逆S盒运算中,输入字节首先进行一个逆仿射运算,逆仿射运算为加密S盒仿射运算的逆运算,然后进行一个有限域GF(28)域上乘法逆运算,其表达式为:
Figure BDA0001691879160000091
其中x为输入字节,ω为字节常数,τ′为8×8bit常数矩阵,是加密S盒中常数矩阵τ的逆矩阵,τ′和ω用于完成逆仿射运算,()A -1为GF(28)域上的乘法逆运算。
在众多S盒实现方式中,基于复合域的S盒实现具有最小的电路面积。复合域S盒通过数学变换将S盒中的主要运算单元—GF(28)域乘法逆运算单元映射到复合域中实现。复合域乘法逆运算的计算复杂度要远远小于GF(28)域乘法逆的计算复杂度,因而可以大大减少S盒电路实现的硬件复杂度。
基于复合域的逆S盒运算表达式为:
Figure BDA0001691879160000092
其中()C -1为复合域上的乘法逆运算,复合域为任意与GF(28)域同构的复合域,δ为8×8bit映射矩阵,其作用是将输入字节x从GF(28)域映射到复合域,δ'为δ逆矩阵,其作用是将复合域乘法逆运算结果从复合域映射回到GF(28)域。本发明所涉及的GF(28)域为AES密码算法中所指定的GF(28)域,其不可约多项式为
f(x)=x8+x4+x3+x+1
在有限域中,加法运算为位异或逻辑运算。根据
Figure BDA0001691879160000093
Figure BDA0001691879160000094
因此,常数加运算+ω在硬件实现时,加0运算可以直接省略掉,加1运算可以用两种方法代替异或逻辑运算:1.任意两个变量的异或逻辑采用同或逻辑代替;2.任意两个变量的采用异或逻辑+取反逻辑实现。由于同或逻辑门与异或逻辑门的电路面积和延时几乎相同,同时相比于异或逻辑门,反向逻辑门的电路面积和延时可以忽略,因此,在逆S盒硬件实现时,常数加运算+ω电路面积和延时可以忽略不计。
5.普通轮变换公式
轮变换中的四个运算单元可以单独实现,也可以将相邻的几个运算单元合并成一个运算单元进行实现。运算单元单独实现的轮变换电路不仅浪费电路资源,且关键路径较长。本发明根据解密轮变换公式,通过常数矩阵的合并与合成运算,对解密轮变换中的线性运算进行合并。根据上述中轮变换中的各个子运算公式,可以得出解密轮变换中的普通轮变换公式为:
Figure BDA0001691879160000101
其中
Figure BDA0001691879160000102
为常数矩阵
Figure BDA0001691879160000103
中的行向量,
Figure BDA0001691879160000104
Figure BDA0001691879160000105
分别为输入的数据矩阵
Figure BDA0001691879160000106
和密钥矩阵
Figure BDA0001691879160000107
中的列向量,即:
Figure BDA0001691879160000108
Figure BDA0001691879160000109
将上述公式中具有相同输入的输出变量rx,y划分一组,共可以划分成四个分组。这四个分组具有相同运算操作,并在硬件实现时具有相同的电路运算单元。每一分组输出变量都可以表达为线性方程形式:
Figure BDA0001691879160000111
上式中的输入变量和输出变量在每一分组中对应的变量为:
组I:
Figure BDA0001691879160000112
组II:
Figure BDA0001691879160000113
组III:
Figure BDA0001691879160000114
组IV:
Figure BDA0001691879160000115
为了减少电路实现面积,本发明进一步将逆S盒中的GF(28)乘法逆映射到复合域中,映射后的普通轮变换分组公式为:
Figure BDA0001691879160000116
6.首轮变换公式
根据上述各个子运算公式,同样可以得出首轮变换公式为:
Figure BDA0001691879160000117
按照普通轮变换分组,将上述首轮变换公式也可以分成四个分组,首轮变换分组公式为:
Figure BDA0001691879160000121
分组公式中的输入变量和输出变量在每一分组中对应的变量与普通轮变换相同。将首轮变换中的逆S盒运算映射到复合域中,则首轮变换分组公式为:
Figure BDA0001691879160000122
7.密钥加运算
AES加密流程的最后进行一个密钥加运算,密钥加运算也进行分组,分组如下:
组I:
Figure BDA0001691879160000123
组II:
Figure BDA0001691879160000124
组III:
Figure BDA0001691879160000125
组IV:
Figure BDA0001691879160000126
与普通轮变换/末轮变换分组相比,密钥加分组的数据输出状态矩阵R的分组有所不同,数据输入状态矩阵D和密钥输入状态矩阵K的分组相同。密钥加分组公式为:
Figure BDA0001691879160000127
本发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵
Figure BDA0001691879160000128
与合成矩阵
Figure BDA0001691879160000131
从而缩短AES解密轮变换复用电路的关键路径,降低电路实现面积。
图3为本发明实施例提供的基于合成矩阵的轮变换复用电路结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。
合成矩阵的轮变换复用电路包括:
合成矩阵乘法运算单元1、二选一选择器S1、常数加运算单元、复合域乘法逆运算单元、合成矩阵乘法运算单元2,其中,合成矩阵乘法运算单元1的输入端分别与数据输入端及密钥输入端连接,两个输出端分别与选择器S1的两个输入端连接,第三个输出端与明文数据输出端口连接,选择器S1的输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的输出端与反馈数据输入端连接;
合成矩阵乘法运算单元1,其输入端和输出端的数据位宽均为4个字节,将从数据输入端口输入的数据向量
Figure BDA0001691879160000132
及从密钥输入端口输入密钥向量
Figure BDA0001691879160000133
组合成一个列向量
Figure BDA0001691879160000134
密钥向量
Figure BDA0001691879160000135
与加密运算中的密钥向量Kv相同,并将合成矩阵
Figure BDA0001691879160000136
与列向量
Figure BDA0001691879160000137
进行乘法运算,合成矩阵
Figure BDA0001691879160000138
由常数矩阵
Figure BDA0001691879160000139
组合而成:
Figure BDA0001691879160000141
其中,常数矩阵
Figure BDA0001691879160000142
为常数矩阵δ和常数矩阵τ'的乘积,常数矩阵
Figure BDA0001691879160000143
为常数矩阵δ、常数矩阵τ'和常数矩阵
Figure BDA0001691879160000144
的乘积,常数矩阵
Figure BDA0001691879160000145
为常数矩阵δ、常数矩阵τ'和常数矩阵
Figure BDA0001691879160000146
的乘积,常数矩阵
Figure BDA0001691879160000147
为常数矩阵δ、常数矩阵τ'和常数矩阵
Figure BDA0001691879160000148
的乘积,常数矩阵
Figure BDA0001691879160000149
为常数矩阵δ、常数矩阵τ'和常数矩阵
Figure BDA00016918791600001410
的乘积,常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积。常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上,常数矩阵τ′为逆S盒运算中逆仿射运算所指定的常数矩阵,常数矩阵
Figure BDA00016918791600001411
为GF(28)域上乘常数×{01}16、×{09}16、×{0b}16、×{0d}16、×{0e}16的矩阵形式。
合成矩阵乘法运算单元1可以用具体公式进行表达为:
Figure BDA0001691879160000151
运算结果第一行至第四行组成的列向量
Figure BDA0001691879160000152
及运算结果的第五行至第八行组成的列向量
Figure BDA0001691879160000153
分别输出到二选一选择器,运算结果的第九行至第十二行组成的列向量
Figure BDA0001691879160000154
则输出到明文数据输出端口。
选择器S1根据选择信号s从两组数据
Figure BDA0001691879160000155
Figure BDA0001691879160000156
中选择一组送入常数加运算单元中,当进行首轮变换运算时,基于选择信号s=0,选择器S1将
Figure BDA0001691879160000157
送入常数加运算单元中;当进行普通轮变换运算时,基于选择信号s=1,选择器S1将
Figure BDA0001691879160000158
送入常数加运算单元中。二选一选择器S1的具体表达形式为:
Figure BDA0001691879160000159
选择器S1将选择结果
Figure BDA00016918791600001510
输出到常数加运算单元。
常数加运算单元,其输入端及输出端的数据位宽均为4个字节,将数据向量
Figure BDA00016918791600001511
与常数向量Ωλ=[ωλλλλ]T相加运算,常数向量Ωλ由四个常数ωλ组合而成,其中,常数ωλ为常数矩阵δ、常数矩阵τ'和常数ω的乘积,即ωλ=δ×τ'×ω。常数ω为逆S盒运算中逆仿射运算所指定的字节常数。常数加运算单元的具体表达形式为:
Figure BDA0001691879160000161
将运算结果
Figure BDA0001691879160000162
输出到复合域乘法逆运算单元中。
复合域乘法逆运算单元,其输入端及输出端的数据位宽均为4个字节,将数据向量
Figure BDA0001691879160000163
中的每个字节进行复合域乘法逆运算,这里的复合域为任意与GF(28)域同构的复合域。复合域乘法逆运算单元的具体表达形式为:
Figure BDA0001691879160000164
将运算结果
Figure BDA0001691879160000165
输出到合成矩阵乘法运算单元2。
合成矩阵乘法运算单元2,其输入端及输出端的数据位宽均为4个字节,将合成矩阵
Figure BDA0001691879160000166
与列向量
Figure BDA0001691879160000167
进行乘法运算,合成矩阵
Figure BDA0001691879160000168
由四个常数矩阵δ′组合而成:
Figure BDA0001691879160000169
其中常数矩阵δ′为映射矩阵,其作用是将复合域上的运算结果映射回到GF(28)域上。则合成矩阵乘法运算单元2可以用具体公式进行表达为:
Figure BDA00016918791600001610
运算结果
Figure BDA00016918791600001611
进一步输出到反馈数据输出端口。
本发明提出的轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵
Figure BDA0001691879160000171
与合成矩阵
Figure BDA0001691879160000172
从而缩短轮变换复用电路的关键路径,降低电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积;并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2及常数加运算单元来构建首轮变换/普通轮变换/末轮变换复用电路,节省大量电路资源。
串行结构和循环结构是AES解密电路实现的两种基本结构,基于所提出的轮变换复用电路采用并行处理方式构成串行结构的AES解密电路,采用分时复用处理方式或者是分时复用与并行处理相结合的方式来构成循环结构的AES解密电路。
图4为本发明实施例一提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
该AES解密电路包括:
二选一选择器S2、寄存器1、寄存器2及一个复用轮变换电路,寄存器1及寄存器2的数据位宽为16字节;
选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与轮变换复用电路的数据输入端连接,复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接;
基于AES加密电路的加密方法包括如下步骤:
S1、轮变换复用电路的前四次运算构成首轮变换,密文数据从密文数据输入端口输入,经选择器S2进入寄存器1,当寄存器1内存储16字节的数据后,将存储数据传送至寄存器2,寄存器2每次输出4字节的数据传输至轮变换复用电路的数据输入端,经轮变换复用电路的运算,运算结果经反馈数据输出端、及选择器S2输入寄存器1,轮变换复用电路进行四次运算后,寄存器1将存储的数据存储至寄存器2中;
S2、轮变换复用电路的第5~4Nr次运算构成普通轮变换,寄存器2每次输出4字节的数据至轮变换复用电路的数据输入端,经轮变换复用电路的运算,运算结果经反馈数据输出端、及选择器S2输入寄存器1,轮变换复用电路,每四次运算后,寄存器1将存储的数据存储至寄存器2中,进行下一轮普通轮变换,共进行(Nr-1)轮普通轮变换;
S3、轮变换复用电路的第(4Nr+1)~(4Nr+4)次运算构成末轮变换,寄存器2每次输出4字节的数据输出至轮变换复用电路的数据输入端,经合成矩阵乘法运算单元1的运算,从明文数据端口输出的数据即构成明文。
图5为本发明实施例二提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
该AES解密电路包括:
二选一选择器S2、寄存器1、寄存器2及两个复用轮变换电路,寄存器1及寄存器2的数据位宽为16字节;
选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端分别与两个轮变换复用电路的数据输入端连接,两个复用轮变换电路的反馈数据输出端均与选择器S2的另一输入端连接;
基于AES加密电路的加密方法包括如下步骤:
S1、轮变换复用电路的前两次运算构成首轮变换,密文数据从密文数据输入端口输入,经选择器S2进入寄存器1,当寄存器1内存储16字节的数据后,将存储数据传送至寄存器2,寄存器2每次将两组4字节的数据分别传输至两个轮变换复用电路的数据输入端,经两个轮变换复用电路的运算,运算结果经反馈数据输出端、及选择器S2输入寄存器1,轮变换复用电路进行两次运算后,寄存器1将存储的数据存储至寄存器2中;
S2、轮变换复用电路的第3~2Nr次运算构成普通轮变换,寄存器2每次两两组4字节的数据分别输出至两个轮变换复用电路的数据输入端,经两个轮变换复用电路的运算,运算结果经反馈数据输出端、及选择器S2输入寄存器1,轮变换复用电路,每两次运算后,寄存器1将存储的数据存储至寄存器2中,进行下一轮普通轮变换,共进行(Nr-1)轮普通轮变换;
S3、轮变换复用电路的第(2Nr+1)~(2Nr+2)次运算构成末轮变换,寄存器2每次将两组4字节的数据分别输出至两个轮变换复用电路的数据输入端,经合成矩阵乘法运算单元1的运算,从明文数据端口输出的数据即构成明文。
图6为本发明实施例三提供的AES解密电路的结构示意图,为了便于说明,仅示出于本发明实施例相关的部分。
该AES解密电路包括:
二选一选择器S2、寄存器及四个复用轮变换电路,寄存器的数据位宽为16字节;
选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器的输入端连接,寄存器的输出端分别与四个轮变换复用电路的数据输入端连接,四个复用轮变换电路的反馈数据输出端均与选择器S2的另一输入端连接;
基于AES加密电路的加密方法包括如下步骤:
S1、轮变换复用电路的第一次运算构成首轮变换,密文数据从密文数据输入端口输入,经选择器S2进入寄存器,当寄存器内存储16字节的数据后,将四组4字节的数据分别传输至四个轮变换复用电路的数据输入端,经四个轮变换复用电路的运算,运算结果经反馈数据输出端、选择器S2输入寄存器;
S2、轮变换复用电路的第2~Nr次运算构成普通轮变换,寄存器每次将四组4字节的数据分别输出至四个轮变换复用电路的数据输入端,经四个轮变换复用电路的运算,运算结果经反馈数据输出端、选择器S2输入寄存器,进行下一轮普通轮变换,共进行(Nr-1)轮普通轮变换;
S3、轮变换复用电路的第Nr+1次运算构成末轮变换,寄存器每次将四组4字节的数据分别输出至四个轮变换复用电路的数据输入端,经合成矩阵乘法运算单元1的运算,从明文数据端口输出的数据即构成明文。
循环结构的AES解密电路相比于串行结构的AES解密电路而言,其电路面积大大减小,因此适用于面积受限的数据处理电路中;但串行结构的AES解密电路采用流水线技术可以大大提高电路处理速度,适用于高速数据处理电路中,因此可根据实际需求设计普通轮变换电路的结构;
本发明提出的AES解密电路是基于轮变换复用电路构成的,轮变换复用电路通过常数矩阵的合并与合成运算,将AES解密算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵
Figure BDA0001691879160000201
与合成矩阵
Figure BDA0001691879160000202
从而缩短AES解密电路的关键路径,降低AES解密电路实现面积,研究表明电路规模越大,电路效率越高,因此本发明通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少电路实现面积;
并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2及常数加运算单元来构建首轮变换/普通轮变换/末轮变换复用电路,节省大量电路资源。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种基于合成矩阵的轮变换复用电路,用于AES解密,其特征在于,所述电路包括:
合成矩阵乘法运算单元1、二选一选择器S1、常数加运算单元、复合域乘法逆运算单元、合成矩阵乘法运算单元2,其中,合成矩阵乘法运算单元1的输入端分别与数据输入端、密钥输入端连接,两个输出端分别与选择器S1的两个输入端连接,第三个输出端与明文数据输出端口连接,选择器S1的输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的输出端与反馈数据输入端连接;
合成矩阵乘法运算单元1,将从数据输入端口输入的数据向量
Figure FDA0001691879150000011
Figure FDA0001691879150000012
及从密钥输入端口输入密钥向量
Figure FDA0001691879150000013
组合成一个列向量
Figure FDA0001691879150000014
Figure FDA0001691879150000015
并将合成矩阵
Figure FDA0001691879150000016
与列向量
Figure FDA0001691879150000017
进行乘法运算,将运算结果第一行至第四行组成的列向量
Figure FDA0001691879150000018
及第五行至第八行组成的列向量
Figure FDA0001691879150000019
分别输出到二选一选择器,运算结果的第九行至第十二行组成的列向量
Figure FDA00016918791500000110
则输出到明文数据输出端口,其中,合成矩阵
Figure FDA00016918791500000111
表示如下:
Figure FDA0001691879150000021
选择器S1从两组数据
Figure FDA0001691879150000022
Figure FDA0001691879150000023
中选择一组送入常数加运算单元中,当进行首轮变换运算时,选择器S1将
Figure FDA0001691879150000024
送入常数加运算单元中;当进行普通轮变换运算时,选择器S1将
Figure FDA0001691879150000025
送入常数加运算单元中;
常数加运算单元,将选择器输出的数据向量
Figure FDA0001691879150000026
与常数向量Ωλ=[ωλλλλ]T相加运算,将运算结果
Figure FDA0001691879150000027
输出到复合域乘法逆运算单元中;
复合域乘法逆运算单元,将数据向量
Figure FDA0001691879150000028
中的每个字节进行复合域乘法逆运算,并将运算结果
Figure FDA0001691879150000029
输出到合成矩阵乘法运算单元2;
合成矩阵乘法运算单元2,将合成矩阵
Figure FDA00016918791500000210
与列向量
Figure FDA00016918791500000211
进行乘法运算,运算结果
Figure FDA00016918791500000212
输出到反馈数据输出端口,其中合成矩阵
Figure FDA00016918791500000213
的表达式具体如下:
Figure FDA00016918791500000214
合成矩阵乘法运算单元1、选择器S1、常数加运算单元、复合域乘法逆运算单元、合成矩阵乘法运算单元2的数据输入端及数据输出端的数据位宽均为4个字节。
2.一种基于权利要求1所述轮变换复用电路的AES解密电路,其特征在于,所述电路包括:
二选一选择器S2、寄存器1、寄存器2及一个复用轮变换电路,寄存器1及寄存器2的数据位宽为16字节,其中,选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端与轮变换复用电路的数据输入端连接,复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接。
3.一种基于权利要求1所述轮变换复用电路的AES解密电路,其特征在于,所述电路包括:
二选一选择器S2、寄存器1、寄存器2及两个复用轮变换电路,寄存器1及寄存器2的数据位宽为16字节,其中,选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器1的输入端连接,寄存器1的输出端与寄存器2的输入端连接,寄存器2的输出端分别与两个轮变换复用电路的数据输入端连接,两个复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接。
4.一种基于权利要求1所述轮变换复用电路的AES解密电路,其特征在于,所述电路包括:
二选一选择器S2、寄存器及四个复用轮变换电路,寄存器的数据位宽为16字节;
选择器S2的一个输入端与密文数据输入端连接,输出端与寄存器的输入端连接,寄存器的输出端分别与四个轮变换复用电路的数据输入端连接,四个复用轮变换电路的反馈数据输出端与选择器S2的另一输入端连接。
CN201810596797.4A 2018-06-11 2018-06-11 基于合成矩阵的轮变换复用电路及aes解密电路 Active CN109033892B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810596797.4A CN109033892B (zh) 2018-06-11 2018-06-11 基于合成矩阵的轮变换复用电路及aes解密电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810596797.4A CN109033892B (zh) 2018-06-11 2018-06-11 基于合成矩阵的轮变换复用电路及aes解密电路

Publications (2)

Publication Number Publication Date
CN109033892A CN109033892A (zh) 2018-12-18
CN109033892B true CN109033892B (zh) 2021-08-31

Family

ID=64612584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810596797.4A Active CN109033892B (zh) 2018-06-11 2018-06-11 基于合成矩阵的轮变换复用电路及aes解密电路

Country Status (1)

Country Link
CN (1) CN109033892B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109033892B (zh) * 2018-06-11 2021-08-31 安徽工程大学 基于合成矩阵的轮变换复用电路及aes解密电路
CN109639408A (zh) * 2019-01-25 2019-04-16 芜湖职业技术学院 一种aes解密复用轮变换电路结构
CN109936440B (zh) * 2019-01-25 2022-06-07 芜湖职业技术学院 Aes解密电路中的复用轮变换运算单元和构建方法
CN109660333A (zh) * 2019-01-25 2019-04-19 芜湖职业技术学院 Aes解密复用轮变换运算单元结构

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158651A (zh) * 2014-07-15 2014-11-19 南京航空航天大学 基于数据冗余实时检错机制的全展开结构aes加/解密电路
CN104158650A (zh) * 2014-07-15 2014-11-19 南京航空航天大学 基于数据冗余检错机制的aes加/解密电路
CN104158652A (zh) * 2014-07-15 2014-11-19 南京航空航天大学 基于数据冗余实时检错机制的循环展开结构aes加/解密电路
CN106034021A (zh) * 2015-03-12 2016-10-19 中国科学院上海高等研究院 轻量级双模兼容aes加解密模块及其方法
CN106992852A (zh) * 2017-05-08 2017-07-28 芜湖职业技术学院 应用于AES与Camellia密码算法的可重构S盒电路结构
CN106998249A (zh) * 2017-05-08 2017-08-01 芜湖职业技术学院 应用于SM4与Camellia密码算法的可重构S盒电路结构
CN107181586A (zh) * 2017-05-22 2017-09-19 芜湖职业技术学院 可重构s盒电路结构
CN207184503U (zh) * 2017-05-22 2018-04-03 芜湖职业技术学院 可重构s盒电路结构
CN109033892A (zh) * 2018-06-11 2018-12-18 安徽工程大学 基于合成矩阵的轮变换复用电路及aes解密电路

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158651A (zh) * 2014-07-15 2014-11-19 南京航空航天大学 基于数据冗余实时检错机制的全展开结构aes加/解密电路
CN104158650A (zh) * 2014-07-15 2014-11-19 南京航空航天大学 基于数据冗余检错机制的aes加/解密电路
CN104158652A (zh) * 2014-07-15 2014-11-19 南京航空航天大学 基于数据冗余实时检错机制的循环展开结构aes加/解密电路
CN106034021A (zh) * 2015-03-12 2016-10-19 中国科学院上海高等研究院 轻量级双模兼容aes加解密模块及其方法
CN106992852A (zh) * 2017-05-08 2017-07-28 芜湖职业技术学院 应用于AES与Camellia密码算法的可重构S盒电路结构
CN106998249A (zh) * 2017-05-08 2017-08-01 芜湖职业技术学院 应用于SM4与Camellia密码算法的可重构S盒电路结构
CN107181586A (zh) * 2017-05-22 2017-09-19 芜湖职业技术学院 可重构s盒电路结构
CN207184503U (zh) * 2017-05-22 2018-04-03 芜湖职业技术学院 可重构s盒电路结构
CN109033892A (zh) * 2018-06-11 2018-12-18 安徽工程大学 基于合成矩阵的轮变换复用电路及aes解密电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多因子CSE算法的AES S-盒电路优化设计;曾纯 等;《电子学报》;20140630(第6期);第1238-1243页 *

Also Published As

Publication number Publication date
CN109033892A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109033892B (zh) 基于合成矩阵的轮变换复用电路及aes解密电路
CN106921487B (zh) 可重构s盒电路结构
US20070291935A1 (en) Apparatus for supporting advanced encryption standard encryption and decryption
CN107181586B (zh) 可重构s盒电路结构
CN109150495B (zh) 一种轮变换复用电路及其aes解密电路
CN108933652B (zh) 一种普通轮变换运算单元、普通轮变换电路及aes解密电路
CN109039583B (zh) 复用轮变换电路、aes加密电路及加密方法
CN103684749B (zh) 一种基于面积与性能平衡优化的klein加密实现方法
CN108809627B (zh) 轮变换复用电路及aes解密电路
Jing et al. Reconfigurable system for high-speed and diversified AES using FPGA
CN109033893B (zh) 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
CN109033847B (zh) Aes加密运算单元、aes加密电路及其加密方法
CN108566271B (zh) 复用轮变换电路、aes加密电路及其加密方法
Arrag et al. Design and Implementation A different Architectures of mixcolumn in FPGA
CN108964875B (zh) 普通轮变换运算单元、普通轮变换电路及aes解密电路
CN108989018B (zh) 一种aes加密单元、aes加密电路及加密方法
CN109033023B (zh) 一种普通轮变换运算单元、普通轮变换电路及aes加密电路
Rais et al. A novel FPGA implementation of AES-128 using reduced residue of prime numbers based S-Box
CN109936440B (zh) Aes解密电路中的复用轮变换运算单元和构建方法
CN109150496B (zh) Aes加密运算单元、aes加密电路及加密方法
CN108964876B (zh) 普通轮变换运算单元、普通轮变换电路及aes加密电路
CN109639408A (zh) 一种aes解密复用轮变换电路结构
CN109033894B (zh) 普通轮变换运算单元、普通轮变换电路及其aes加密电路
Shylashree et al. FPGA implementations of advanced encryption standard: A survey
Bittencourt et al. CLEFIA implementation with full key expansion

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
GR01 Patent grant
GR01 Patent grant