CN109039583A - 复用轮变换电路、aes加密电路及加密方法 - Google Patents
复用轮变换电路、aes加密电路及加密方法 Download PDFInfo
- Publication number
- CN109039583A CN109039583A CN201810619542.5A CN201810619542A CN109039583A CN 109039583 A CN109039583 A CN 109039583A CN 201810619542 A CN201810619542 A CN 201810619542A CN 109039583 A CN109039583 A CN 109039583A
- Authority
- CN
- China
- Prior art keywords
- round transformation
- register
- circuit
- constant
- transformation
- 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.)
- Granted
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本发明适用于加密技术领域,提供了一种复用轮变换电路、AES加密电路及加密方法,本发明提出的AES加密轮变换复用电路通过常数矩阵的合并与合成运算,将AES密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵Δ与合成矩阵Λ,从而缩短AES加密轮变换电路的关键路径,同时降低电路实现面积,并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元及合成矩阵乘法运算单元2实现普通轮变换及末轮变换,从而节省大量电路资源。
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轮普通轮变换,在每个普通轮变换中按顺序进行字节替换、行移位、列混合和密钥加四个子运算;最后经过一轮末轮变换,末轮变换按顺序进行字节替换、行移位和密钥加三个子运算。
T盒实现方式是目前轮变换电路实现中最常用的运算单元合并实现方式。T 盒实现通过预计算方式将S盒、行移位和列混合等运算的运算结果预存一个存储运算单元中,以查询表的方式实现S盒、行移位和列混合合并运算功能。T 盒实现减少了整个轮变换电路的关键路径,因此T盒实现方式主要应用在高速 AES电路设计中。T盒实现方式虽然可以加快数据处理速度,但也大大增加了电路面积,Rach等人将基于复合域S盒/逆S盒中最后一级GF(24)乘法器、映射矩阵/逆映射运算、仿射/逆仿射运算、列混合/逆列混合运算和密钥加运算等五个运算合并成一个运算单元,合并运算单元缩短了电路关键路径,但同时也大大增加了电路面积。在已有的公开文献中,所提出的基于合并运算的AES轮变换电路,都是以增加电路面积为代价对关键路径长度进行了优化。
发明内容
本发明实施例提供一种AES加密电路,旨在解决现有的基于合并运算的 AES轮变换电路,都是以增加电路面积为代价对关键路径长度进行优化的问题。
本发明是这样实现的,一种复用轮变换电路,所述复用轮变换电路用于实现首轮变换、普通轮变换或末轮变换,所述复用轮变换电路包括:
合成矩阵乘法运算单元1、复合域乘法逆运算单元、二选一选择器1、合成矩阵乘法运算单元2、常数加运算单元1、常数加运算单元2及二选一选择器2;
合成矩阵乘法运算单元1的输入端与反馈数据输入端连接的,输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与选择器 1的一输入端连接,选择器1的另一输入端与初始数据输入端口连接,选择器1 的输出端及密钥输入端均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的三个输出端分别与选择器2、常数加运算单元1及常数加运算单元2的输入端连接,常数加运算单元1的输出端与选择器2的另一输入端连接,常数加运算单元2的输出端与密文数据输出端连接,选择器2的输出端与反馈数据输出端连接;
其中,合成矩阵乘法运算单元1,将合成矩阵Δ与从反馈数据输入端输入的列向量Dv=[d0,d1,d2,d3]T进行乘法运算,将运算后的矩阵Lv=[l0,l1,l2,l3]T输出到复合域乘法逆运算单元,其中,合成矩阵Δ的表达式如下:
复合域乘法逆运算单元,将数据向量Lv=[l0,l1,l2,l3]T中的每个节进行复合域乘法逆运算,并将运算后的矩阵Iv=[i0,i1,i2,i3]T输出到选择器1;
在进行首轮变换运算时,选择器1将从明文数据输入端输入的列向量 Tv=[t0,t1,t2,t3]T输出到合成矩阵乘法运算单元2,在进行普通轮变换运算及末轮变换运算时,选择器1将从复合域乘法逆运算单元输出的列向量号Iv=[i0,i1,i2,i3]T输出到合成矩阵乘法运算单元2;
合成矩阵乘法运算单元2,将选择器1输出的数据矩阵Nv=[n0,n1,n2,n3]T和密钥向量Kv=[k0,k1,k2,k3]T组合成一个列向量Pv=[n0,n1,n2,n3,k1,k2,k3,k4]T,并将合成矩阵Λ与列向量Pv进行乘法运算,将乘法运算结果的第一行至第四行组成的向量 Qf=[qf0,qf1,qf2,qf3,]T输出到选择器2;乘法运算结果的第五行至第八行组成的向量Qn=[qn0,qn1,qn2,qn3,]T输出至常数加运算单元1,乘法运算结果第九行至第十二行组成的向量Ql=[ql0,ql1,ql2,ql3,]T输出常数加运算单元2,合成矩阵Λ表达式如下:
常数加运算单元1,将合成矩阵乘法运算单元2输出的向量 Qn=[qn0,qn1,qn2,qn3]T与常数向量Ωv=[ω0,ω1,ω2,ω3]T相加运算,运算后的矩阵 Rn=[rn0,rn1,rn2,rn3]T输出到二选一选择器2,其中常数ω为AES S盒中仿射运算所指定的字节常数,;
常数加运算单元2,将合成矩阵乘法运算单元2输出的向量 Ql=[ql0,ql1,ql2,ql3]T与常数向量Ωv=[ω0,ω1,ω2,ω3]T相加运算,运算后的矩阵 Rl=[rl0,rl1,rl2,rl3]T从密文数据输出端口输出;
二选一选择器2,在进行第一轮运算时,将合成矩阵乘法运算单元2输出的向量Qf=[qf0,qf1,qf2,qf3]T通过反馈数据输出端反馈至反馈数据输入端,在进行第二轮至Nr轮运算时,选择器2将常数加运算单元1输出的向量 Rn=[rn0,rn1,rn2,rn3]T通过反馈数据输出端反馈至反馈数据输入端。
本发明还提供一种AES加密电路,所述AES加密电路包括:
一个复用轮变换电路,寄存器1及寄存器2,寄存器1的输入端与复用轮变换电路的反馈数据输出端连接,输入端与寄存器2的输入端连接,寄存器2 的输出端与复用轮变换电路的反馈数据输入端连接;
寄存器1及寄存器2的数据位宽均为16字节。
本发明还提供一种AES加密电路,所述AES加密电路包括:
两个复用轮变换电路,寄存器1及寄存器2,其中,寄存器1的输入端与两个复用轮变换电路的反馈数据输出端连接,输入端与寄存器2的输入端连接,寄存器2的输出端与两个复用轮变换电路的反馈数据输入端连接;
寄存器1及寄存器2的数据位宽均为16字节。
本发明还提供一种AES加密电路,所述AES加密电路包括:
四个复用轮变换电路及寄存器,其中,寄存器的输入端分别与四个复用轮变换电路的反馈数据输出端连接,输出端分别与四个复用轮变换电路的反馈数据输入端连接;
寄存器的数据位宽均为16字节。
本发明还提供一种基于AES加密电路的AES加密方法,所述方法包括如下步骤:
S1、AES加密电路的前4循环进行首轮变换,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器1,复用轮变换电路运算四次后,寄存器1将存储的数据输入寄存器2,即完成首轮变换;
S2、AES加密电路的第5~4Nr次循环进行普通轮变换,普通轮变换是指寄存器2将一组4字节的数据经反馈数据输入端输入复用轮变换电路,经复用轮变换电路的运算,将运算结果Rn输出至寄存器1,复用轮变换电路每循环四次,寄存器1将存储的数据输入寄存器2,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第(4Nr+1)~4(Nr+1)次循环进行末轮变换,寄存器2每次将一组4字节的数据经反馈数据输入端输入复用轮变换电路,经复用轮变换电路的4次运算,从密文数据输出端输出的数据向量Rl即为密文。
本发明还提供一种基于AES加密电路的AES加密方法,方法包括如下步骤:
S1、AES加密电路的前2循环进行首轮变换,两个复用轮变换电路同时进行首轮变换运算,在首轮变换运算中,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器1,两个复用轮变换电路在运算两次后,寄存器1将存储的数据输入寄存器2,即完成首轮变换;
S2、AES加密电路的第3~2Nr次循环进行普通轮变换,两个复用轮变换电路同时进行普通轮变换运算,在普通轮变换运算中,寄存器2每次将两组4字节的数据经两反馈数据输入端分别输入两个复用轮变换电路,经两个复用轮变换电路的运算,将运算结果Rn输出至寄存器1,两个复用轮变换电路在循环两次后,寄存器1将存储的数据输入寄存器2,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第(2Nr+1)~2(Nr+1)次循环进行末轮变换,四个复用轮变换电路同时进行末轮变换运算,在末轮变换运算中,寄存器2每次将两组4 字节的数据经两反馈数据输入端分别输入两个复用轮变换电路,两个复用轮变换电路在运算2次后,从密文数据输出端输出的数据向量Rl即为密文。
本发明还提供一种基于AES加密电路的AES加密方法,所述方法包括如下步骤:
S1、AES加密电路的第一次运算进行首轮变换,四个复用轮变换电路同时进行首轮变换运算,在首轮变换运算中,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器;
S2、AES加密电路的第2~Nr次循环进行普通轮变换,四个复用轮变换电路同时进行普通轮变换运算,在普通轮变换运算中,寄存器将四组4字节的数据经四反馈数据输入端分别输入四个复用轮变换电路,经四个复用轮变换电路的运算,将运算结果Rn输出至寄存器,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第Nr+1次循环进行末轮变换,四个复用轮变换电路同时进行末轮变换运算,在末轮变换运算中,寄存器2每次四组将4字节的数据经反馈数据输入端分别输入四个复用轮变换电路,四个复用轮变换电路在运算完毕后,从密文数据输出端输出的数据向量Rl即为密文。
本发明提出的AES加密轮变换复用电路通过常数矩阵的合并与合成运算,将AES密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵Δ与合成矩阵Λ,从而缩短AES加密轮变换电路的关键路径,同时降低电路实现面积,并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元及合成矩阵乘法运算单元2实现首轮变换、普通轮变换及末轮变换,从而节省大量电路资源。
附图说明
图1为本发明实施例提供的标准AES加密流程图;
图2为本发明实施例提供的复用轮变换电路的结构示意图;
图3为本发明实施例一提供AES加密电路的结构示意图;
图4为本发明实施例二提供AES加密电路的结构示意图;
图5为本发明实施例三提供AES加密电路的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有的运算单元包括:字节替换运算单元、行移位运算单元、列混合运算单元和密钥加运算单元,上述运算单元的运算公式具体如下
假设轮变换运算的输入状态矩阵为:
1.字节替换运算单元
字节替换运算单元进行字节替换运算,通常称为S盒运算,S盒运算是将状态矩阵中的每个字节根据字节替换表进行替换操作。假设经过S盒运算后的状态矩阵为:
则S盒运算可以表达为:
其中S()为S盒运算函数。S盒运算是轮变换四个运算中唯一的非线性运算,也是运算复杂度最高的运算,因此S盒电路占据了整个AES电路的绝大部分面积和功耗。
AES S盒运算中,输入字节首先进行一个有限域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盒电路实现的硬件复杂度。
基于复合域的AES S盒运算表达式为:
其中()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盒运算映射到复合域中,则末轮变换分组公式为:
首轮变换只有一个密钥加运算,因此首轮变换的表达式为:
首轮变换同样可以分成四个分组,分组与普通轮变换、末轮变换略有不同:
组I:组II:
组III:组IV:
与普通轮变换/末轮变换分组相比,轮变换的数据输入状态矩阵D的分组有所不同,数据输出状态矩阵R和密钥输入状态矩阵K的分组相同。首轮变换分组公式为:
图2为本发明实施例提供的复用轮变换电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。
该复用轮变换电路包括:
合成矩阵乘法运算单元1、复合域乘法逆运算单元、二选一选择器1、合成矩阵乘法运算单元2、常数加运算单元1、常数加运算单元2及二选一选择器2;
合成矩阵乘法运算单元1的输入端与反馈数据输入端连接的,输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与选择器 1的一输入端连接,选择器1的另一输入端与初始数据输入端口连接,选择器1 的输出端及密钥输入端均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的三个输出端分别与选择器2、常数加运算单元1及常数加运算单元2的输入端连接,常数加运算单元1的输出端与选择器2的另一输入端连接,常数加运算单元2的输出端与密文数据输出端连接,选择器2的输出端与反馈数据输出端连接。
合成矩阵乘法运算单元1,其数据位宽为4字节,将合成矩阵Δ与列向量Dv进行乘法运算,列向量Dv是从反馈数据输入端输入的,合成矩阵Δ由四个常数矩阵δ组合而成,常数矩阵δ为映射矩阵,其作用是将GF(28)域上的元素映射到复合域上,本发明实施例中的GF(28)域为AES密码算法中指定的GF(28)域,合成矩阵Δ的表达式如下:
合成矩阵乘法运算单元1表达式为:
将运算结果Lv=[l0,l1,l2,l3]T进一步输出到复合域乘法逆运算单元;
复合域乘法逆运算单元,其数据位宽为4字节,对数据向量Lv=[l0,l1,l2,l3]T中的每个字节进行复合域上的乘法逆运算,这里的复合域为任意与GF(28)域同构的复合域,复合域乘法逆运算单元的具体表达形式为:
运算结果Iv=[i0,i1,i2,i3]T进一步输出到选择器1;
二选一选择器1,在进行首轮变换运算时,选择器1将从明文数据输入端输入的列向量Tv=[t0,t1,t2,t3]T输出到合成矩阵乘法运算单元2,在进行普通轮变换运算及末轮变换运算时,选择器1将从复合域乘法逆运算单元输出的列向量号 Iv=[i0,i1,i2,i3]T输出到合成矩阵乘法运算单元2,二选一选择器1的输出信号为 Nv=[n0,n1,n2,n3]T,二选一选择器1的具体表达形式为:
合成矩阵乘法运算单元2,其数据位宽为4字节,将数据向量 Nv=[n0,n1,n2,n3]T和密钥向量Kv=[k0,k1,k2,k3]T组合成一个列向量 Pv=[n0,n1,n2,n3,k1,k2,k3,k4]T,并将合成矩阵Λ与列向量Pv进行乘法运算,合成矩阵Λ由常数矩阵λ3、λ2、λ1、组合而成,其中常数矩阵λ3为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵λ2为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵λ1为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵分别为GF(28)域上乘常数×{03}16、×{02}16、×{01}16的矩阵形式;常数矩阵τ为AES S盒中仿射运算所指定的常数矩阵;常数矩阵δ′为映射矩阵,其作用是将复合域上的元素映射到GF(28)域上,合成矩阵Λ的表达式具体如下:
合成矩阵乘法运算单元2可以用具体公式进行表达为:
将乘法运算结果的第一行至第四行组成的向量Qf=[qf0,qf1,qf2,qf3,]T输出到选择器2;乘法运算结果的第五行至第八行组成的向量Qn=[qn0,qn1,qn2,qn3,]T输出至常数加运算单元1,乘法运算结果第九行至第十二行组成的向量 Ql=[ql0,ql1,ql2,ql3,]T输出常数加运算单元2。
常数加运算单元1,其数据位宽为4字节,将合成矩阵乘法运算单元2输出的向量Qn=[qn0,qn1,qn2,qn3,]T与常数向量Ωv=[ω,ω,ω,ω]T相加运算,其中常数ω为 AES S盒中仿射运算所指定的字节常数,常数加运算单元1的具体表达形式为:
运算结果Rn=[rn0,rn1,rn2,rn3,]T输出到二选一选择器2中;
常数加运算单元2,其数据位宽为4字节,常数加运算单元2将合成矩阵乘法运算单元2输出的向量Ql=[ql0,ql1,ql2,ql3,]T与常数向量Ωv=[ω,ω,ω,ω]T相加运算,其中常数ω为AES S盒中仿射运算所指定的字节常数,常数加运算单元2 的具体表达形式为:
运算结果Rl=[rl0,rl1,rl2,rl3,]T从密文数据输出端口输出;
二选一选择器2,在进行首轮变换运算时,将合成矩阵乘法运算单元2输出的向量Qf=[qf0,qf1,qf2,qf3]T通过反馈数据输出端反馈至反馈数据输入端,在进行普通轮变换运算时,选择器2将常数加运算单元1输出的向量 Rn=[rn0,rn1,rn2,rn3]T通过反馈数据输出端反馈至反馈数据输入端,选择器2输出信号为Fv=[f0,f1,f2,f3]T,二选一选择器2的具体表达形式为:
本发明提出的AES加密轮变换复用电路通过常数矩阵的合并与合成运算,将AES密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵Δ与合成矩阵Λ,从而缩短AES加密轮变换电路的关键路径,同时降低电路实现面积,并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元及合成矩阵乘法运算单元2实现首轮变换、普通轮变换及末轮变换,从而节省大量电路资源。
图3为本发明实施例一提供AES加密电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。
该AES加密电路包括:一个复用轮变换电路,寄存器1及寄存器2,寄存器1的输入端与复用轮变换电路的反馈数据输出端连接,输入端与寄存器2的输入端连接,寄存器2的输出端与复用轮变换电路的反馈数据输入端连接,其中,寄存器1及寄存器2的数据位宽均为16字节;
基于实施例一提供的AES加密电路的加密方法包括如下步骤:
S1、AES加密电路的前4循环进行首轮变换,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器1,复用轮变换电路运算四次后,寄存器1将存储的数据输入寄存器2,即完成首轮变换;
S2、AES加密电路的第5~4Nr次循环进行普通轮变换,普通轮变换是指寄存器2将一组4字节的数据经反馈数据输入端输入复用轮变换电路,经复用轮变换电路的运算,将运算结果Rn输出至寄存器1,复用轮变换电路每循环四次,寄存器1将存储的数据输入寄存器2,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第(4Nr+1)~4(Nr+1)次循环进行末轮变换,寄存器2每次将一组4字节的数据经反馈数据输入端输入复用轮变换电路,经复用轮变换电路的4次运算,从密文数据输出端输出的数据向量Rl即为密文。
图4为本发明实施例二提供AES加密电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。
该AES加密电路包括:
两个复用轮变换电路,寄存器1及寄存器2,寄存器1的输入端与两个复用轮变换电路的反馈数据输出端连接,输入端与寄存器2的输入端连接,寄存器2的输出端与两个复用轮变换电路的反馈数据输入端连接,其中,寄存器1 及寄存器2的数据位宽均为16字节;
基于实施例二提供的AES加密电路的加密方法包括如下步骤:
S1、AES加密电路的前2循环进行首轮变换,两个复用轮变换电路同时进行首轮变换运算,在首轮变换运算中,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器1,两个复用轮变换电路在运算两次后,寄存器1将存储的数据输入寄存器2,即完成首轮变换;
S2、AES加密电路的第3~2Nr次循环进行普通轮变换,两个复用轮变换电路同时进行普通轮变换运算,在普通轮变换运算中,寄存器2每次将两组4字节的数据经两反馈数据输入端分别输入两个复用轮变换电路,经两个复用轮变换电路的运算,将运算结果Rn输出至寄存器1,两个复用轮变换电路在循环两次后,寄存器1将存储的数据输入寄存器2,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第(2Nr+1)~2(Nr+1)次循环进行末轮变换,四个复用轮变换电路同时进行末轮变换运算,在末轮变换运算中,寄存器2每次将两组4 字节的数据经两反馈数据输入端分别输入两个复用轮变换电路,两个复用轮变换电路在运算2次后,从密文数据输出端输出的数据向量Rl即为密文。
图5为本发明实施例三提供AES加密电路的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。
该AES加密电路包括:
四个复用轮变换电路及寄存器,其中,寄存器的输入端分别与四个复用轮变换电路的反馈数据输出端连接,输出端分别与四个复用轮变换电路的反馈数据输入端连接,其中,寄存器的数据位宽均为16字节;
基于实施例三提供的AES加密电路的加密方法包括如下步骤:
S1、AES加密电路的第一次运算进行首轮变换,四个复用轮变换电路同时进行首轮变换运算,在首轮变换运算中,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器;
S2、AES加密电路的第2~Nr次循环进行普通轮变换,四个复用轮变换电路同时进行普通轮变换运算,在普通轮变换运算中,寄存器将四组4字节的数据经四反馈数据输入端分别输入四个复用轮变换电路,经四个复用轮变换电路的运算,将运算结果Rn输出至寄存器,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第Nr+1次循环进行末轮变换,四个复用轮变换电路同时进行末轮变换运算,在末轮变换运算中,寄存器2每次四组将4字节的数据经反馈数据输入端分别输入四个复用轮变换电路,四个复用轮变换电路在运算完毕后,从密文数据输出端输出的数据向量Rl即为密文。
本发明实施例一、实施例二及实施例三提供的AES加密电路通过矩阵合并与合成运算将复合域映射运算、仿射运算、列混合运算与密钥加运算合并成两个合成矩阵,矩阵Δ与矩阵Λ,基于两合成矩阵的AES加密电路大大减少AES 加密电路的关键路径长度。公共项消除算法是线性运算单元最有效的电路优化方法,研究表明电路规模越大,电路效率越高,因此本发明提供的AES加密电路通过矩阵合并与合成将若干小规模线性运算单元组合成大规模的线性运算,有利于电路优化效率的提高,减少AES加密电路的实现面积。
此外,本发明实施例一、实施例二及实施例三提供的AES加密电路是对复用轮变换电路进行循环来实现首轮变换、普通轮变换或末轮变换,这种循环结构的ASE加密电路进一步节省大量的电路资源;此外,通过对合成矩阵乘法运算单元1、复合域乘法逆运算单元及合成矩阵乘法运算单元2的复用,来构建首轮变换/普通轮变换/末轮变换的复用轮变换运算单元,因此可以进一步节省电路面积和电路资源。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种复用轮变换电路,所述复用轮变换电路用于实现首轮变换、普通轮变换或末轮变换,其特征在于,所述复用轮变换电路包括:
合成矩阵乘法运算单元1、复合域乘法逆运算单元、二选一选择器1、合成矩阵乘法运算单元2、常数加运算单元1、常数加运算单元2及二选一选择器2;
合成矩阵乘法运算单元1的输入端与反馈数据输入端连接的,输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端与选择器1的一输入端连接,选择器1的另一输入端与初始数据输入端口连接,选择器1的输出端及密钥输入端均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的三个输出端分别与选择器2、常数加运算单元1及常数加运算单元2的输入端连接,常数加运算单元1的输出端与选择器2的另一输入端连接,常数加运算单元2的输出端与密文数据输出端连接,选择器2的输出端与反馈数据输出端连接;
其中,合成矩阵乘法运算单元1,将合成矩阵Δ与从反馈数据输入端输入的列向量Dv=[d0,d1,d2,d3]T进行乘法运算,将运算后的矩阵Lv=[l0,l1,l2,l3]T输出到复合域乘法逆运算单元,合成矩阵Δ由四个常数矩阵δ组合而成,常数矩阵δ为将GF(28)域上的元素映射到复合域上的映射矩阵,其中,合成矩阵Δ的表达式如下:
复合域乘法逆运算单元,将数据向量Lv=[l0,l1,l2,l3]T中的每个节进行复合域乘法逆运算,复合域为任意与GF(28)域同构的复合域,并将运算后的矩阵Iv=[i0,i1,i2,i3]T输出到选择器1;
二选一选择器1,在进行首轮变换运算时,选择器1将从明文数据输入端输入的列向量Tv=[t0,t1,t2,t3]T输出到合成矩阵乘法运算单元2,在进行普通轮变换运算及末轮变换运算时,选择器1将从复合域乘法逆运算单元输出的列向量号Iv=[i0,i1,i2,i3]T输出到合成矩阵乘法运算单元2,二选一选择器1的输出信号为Nv=[n0,n1,n2,n3]T;
合成矩阵乘法运算单元2,将数据矩阵Nv=[n0,n1,n2,n3]T和密钥向量Kv=[k0,k1,k2,k3]T组合成一个列向量Pv=[n0,n1,n2,n3,k1,k2,k3,k4]T,并将合成矩阵Λ与列向量Pv进行乘法运算,将乘法运算结果的第一行至第四行组成的向量Qf=[qf0,qf1,qf2,qf3,]T输出到选择器2;乘法运算结果的第五行至第八行组成的向量Qn=[qn0,qn1,qn2,qn3,]T输出至常数加运算单元1,乘法运算结果第九行至第十二行组成的向量Ql=[ql0,ql1,ql2,ql3,]T输出常数加运算单元2,其中,合成矩阵Λ由常数矩阵λ3、λ2、λ1、组合而成,其中,常数矩阵λ3为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵λ2为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵λ1为常数矩阵常数矩阵τ和常数矩阵δ′的乘积,即常数矩阵分别为GF(28)域上乘常数×{03}16、×{02}16、×{01}16的矩阵形式,常数矩阵τ为AES S盒中仿射运算所指定的常数矩阵,常数矩阵δ′为将复合域上的元素映射到GF(28)域上的映射矩阵,合成矩阵Λ表达式如下:
常数加运算单元1,将合成矩阵乘法运算单元2输出的向量Qn=[qn0,qn1,qn2,qn3]T与常数向量Ωv=[ω0,ω1,ω2,ω3]T相加运算,运算后的矩阵Rn=[rn0,rn1,rn2,rn3]T输出到二选一选择器2,其中常数ω为AES S盒中仿射运算所指定的字节常数,;
常数加运算单元2,将合成矩阵乘法运算单元2输出的向量Ql=[ql0,ql1,ql2,ql3]T与常数向量Ωv=[ω0,ω1,ω2,ω3]T相加运算,运算后的矩阵Rl=[rl0,rl1,rl2,rl3]T从密文数据输出端口输出;
二选一选择器2,在进行首轮变换运算时,将合成矩阵乘法运算单元2输出的向量Qf=[qf0,qf1,qf2,qf3]T通过反馈数据输出端反馈至反馈数据输入端,在进行普通轮变换运算时,选择器2将常数加运算单元1输出的向量Rn=[rn0,rn1,rn2,rn3]T通过反馈数据输出端反馈至反馈数据输入端;
合成矩阵乘法运算单元1、复合域乘法逆运算单元、二选一选择器1、合成矩阵乘法运算单元2、常数加运算单元1、常数加运算单元2、及二选一选择器2的数据输入端及数据输出端的数据位宽均为4个字节。
2.一种AES加密电路,其特征在于,所述AES加密电路包括:
一个如权利要求1所述复用轮变换电路,寄存器1及寄存器2,寄存器1的输入端与复用轮变换电路的反馈数据输出端连接,输入端与寄存器2的输入端连接,寄存器2的输出端与复用轮变换电路的反馈数据输入端连接;
寄存器1及寄存器2的数据位宽均为16字节。
3.根据权利要求1所述的AES加密电路,其特征在于,所述AES加密电路包括:
两个如权利要求1所述复用轮变换电路,寄存器1及寄存器2,其中,寄存器1的输入端与两个复用轮变换电路的反馈数据输出端连接,输入端与寄存器2的输入端连接,寄存器2的输出端与两个复用轮变换电路的反馈数据输入端连接;
寄存器1及寄存器2的数据位宽均为16字节。
4.根据权利要求3所述的AES加密电路,其特征在于,所述AES加密电路包括:
四个如权利要求1所述复用轮变换电路及寄存器,其中,寄存器的输入端分别与四个复用轮变换电路的反馈数据输出端连接,输出端分别与四个复用轮变换电路的反馈数据输入端连接;
寄存器的数据位宽均为16字节。
5.一种基于权利要求2所述AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前4循环进行首轮变换,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器1,复用轮变换电路运算四次后,寄存器1将存储的数据输入寄存器2,即完成首轮变换;
S2、AES加密电路的第5~4Nr次循环进行普通轮变换,普通轮变换是指寄存器2将一组4字节的数据经反馈数据输入端输入复用轮变换电路,经复用轮变换电路的运算,将运算结果Rn输出至寄存器1,复用轮变换电路每循环四次,寄存器1将存储的数据输入寄存器2,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第(4Nr+1)~4(Nr+1)次循环进行末轮变换,寄存器2每次将一组4字节的数据经反馈数据输入端输入复用轮变换电路,经复用轮变换电路的4次运算,从密文数据输出端输出的数据向量Rl即为密文。
6.一种基于权利要求3所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前2循环进行首轮变换,两个复用轮变换电路同时进行首轮变换运算,在首轮变换运算中,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器1,两个复用轮变换电路在运算两次后,寄存器1将存储的数据输入寄存器2,即完成首轮变换;
S2、AES加密电路的第3~2Nr次循环进行普通轮变换,两个复用轮变换电路同时进行普通轮变换运算,在普通轮变换运算中,寄存器2每次将两组4字节的数据经两反馈数据输入端分别输入两个复用轮变换电路,经两个复用轮变换电路的运算,将运算结果Rn输出至寄存器1,两个复用轮变换电路在循环两次后,寄存器1将存储的数据输入寄存器2,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第(2Nr+1)~2(Nr+1)次循环进行末轮变换,四个复用轮变换电路同时进行末轮变换运算,在末轮变换运算中,寄存器2每次将两组4字节的数据经两反馈数据输入端分别输入两个复用轮变换电路,两个复用轮变换电路在运算2次后,从密文数据输出端输出的数据向量Rl即为密文。
7.一种基于权利要求4所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的第一次运算进行首轮变换,四个复用轮变换电路同时进行首轮变换运算,在首轮变换运算中,数据从明文数据输入端口输入,经复用轮变换电路的运算,将运算结果Qf输出至寄存器;
S2、AES加密电路的第2~Nr次循环进行普通轮变换,四个复用轮变换电路同时进行普通轮变换运算,在普通轮变换运算中,寄存器将四组4字节的数据经四反馈数据输入端分别输入四个复用轮变换电路,经四个复用轮变换电路的运算,将运算结果Rn输出至寄存器,即完成一轮普通轮变换,进行下轮普通轮变换,直至完成Nr-1轮普通轮变换;
S3、AES加密电路的第Nr+1次循环进行末轮变换,四个复用轮变换电路同时进行末轮变换运算,在末轮变换运算中,寄存器2每次四组将4字节的数据经反馈数据输入端分别输入四个复用轮变换电路,四个复用轮变换电路在运算完毕后,从密文数据输出端输出的数据向量Rl即为密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810619542.5A CN109039583B (zh) | 2018-06-11 | 2018-06-11 | 复用轮变换电路、aes加密电路及加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810619542.5A CN109039583B (zh) | 2018-06-11 | 2018-06-11 | 复用轮变换电路、aes加密电路及加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039583A true CN109039583A (zh) | 2018-12-18 |
CN109039583B CN109039583B (zh) | 2021-04-02 |
Family
ID=64609441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810619542.5A Active CN109039583B (zh) | 2018-06-11 | 2018-06-11 | 复用轮变换电路、aes加密电路及加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039583B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936440A (zh) * | 2019-01-25 | 2019-06-25 | 芜湖职业技术学院 | Aes解密电路中的复用轮变换运算单元结构和构建方法 |
CN111600867A (zh) * | 2020-05-12 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 一种数据加密方法和相关设备 |
CN111901115A (zh) * | 2020-07-27 | 2020-11-06 | 合肥工业大学 | 一种多配置模式的simon算法加密电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170195116A1 (en) * | 2007-12-28 | 2017-07-06 | Intel Corporation | Method and apparatus for efficiently implementing the advanced encryption standard |
CN106992852A (zh) * | 2017-05-08 | 2017-07-28 | 芜湖职业技术学院 | 应用于AES与Camellia密码算法的可重构S盒电路结构 |
CN207010694U (zh) * | 2017-05-08 | 2018-02-13 | 芜湖职业技术学院 | 应用于AES与Camellia密码算法的可重构S盒电路结构 |
CN207184503U (zh) * | 2017-05-22 | 2018-04-03 | 芜湖职业技术学院 | 可重构s盒电路结构 |
-
2018
- 2018-06-11 CN CN201810619542.5A patent/CN109039583B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170195116A1 (en) * | 2007-12-28 | 2017-07-06 | Intel Corporation | Method and apparatus for efficiently implementing the advanced encryption standard |
CN106992852A (zh) * | 2017-05-08 | 2017-07-28 | 芜湖职业技术学院 | 应用于AES与Camellia密码算法的可重构S盒电路结构 |
CN207010694U (zh) * | 2017-05-08 | 2018-02-13 | 芜湖职业技术学院 | 应用于AES与Camellia密码算法的可重构S盒电路结构 |
CN207184503U (zh) * | 2017-05-22 | 2018-04-03 | 芜湖职业技术学院 | 可重构s盒电路结构 |
Non-Patent Citations (1)
Title |
---|
赵国生 等: "基于多维动态S盒和LFSR的分组密码算法", 《华中科技大学学报(自然科学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936440A (zh) * | 2019-01-25 | 2019-06-25 | 芜湖职业技术学院 | Aes解密电路中的复用轮变换运算单元结构和构建方法 |
CN109936440B (zh) * | 2019-01-25 | 2022-06-07 | 芜湖职业技术学院 | Aes解密电路中的复用轮变换运算单元和构建方法 |
CN111600867A (zh) * | 2020-05-12 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 一种数据加密方法和相关设备 |
CN111901115A (zh) * | 2020-07-27 | 2020-11-06 | 合肥工业大学 | 一种多配置模式的simon算法加密电路 |
Also Published As
Publication number | Publication date |
---|---|
CN109039583B (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039583A (zh) | 复用轮变换电路、aes加密电路及加密方法 | |
CN109033892A (zh) | 基于合成矩阵的轮变换复用电路及aes解密电路 | |
CN101848081A (zh) | 一种s盒构造方法及s盒 | |
CN114615069B (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN109150495A (zh) | 一种轮变换复用电路及其aes解密电路 | |
Caforio et al. | Melting SNOW-V: improved lightweight architectures | |
CN108933652B (zh) | 一种普通轮变换运算单元、普通轮变换电路及aes解密电路 | |
Crenne et al. | Efficient key-dependent message authentication in reconfigurable hardware | |
CN109033847A (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
CN109033893A (zh) | 基于合成矩阵的aes加密单元、aes加密电路及其加密方法 | |
CN108566271A (zh) | 复用轮变换电路、aes加密电路及其加密方法 | |
CN108809627B (zh) | 轮变换复用电路及aes解密电路 | |
CN108989018A (zh) | 一种aes加密单元、aes加密电路及加密方法 | |
CN109033023A (zh) | 一种普通轮变换运算单元、普通轮变换电路及aes加密电路 | |
CN108964875B (zh) | 普通轮变换运算单元、普通轮变换电路及aes解密电路 | |
CN109639408A (zh) | 一种aes解密复用轮变换电路结构 | |
CN109033894A (zh) | 普通轮变换运算单元、普通轮变换电路及其aes加密电路 | |
CN109150496A (zh) | Aes加密运算单元、aes加密电路及加密方法 | |
CN108964876A (zh) | 普通轮变换运算单元、普通轮变换电路及aes加密电路 | |
Chen et al. | Research and implementation of reconfigurable architecture of DES and ZUC | |
Hulle et al. | Compact Reconfigurable Architecture for Sosemanuk Stream Cipher | |
CN109660333A (zh) | Aes解密复用轮变换运算单元结构 | |
Teja et al. | Implementation of Efficient Serial Architecture for Prince Block Cipher with Enhanced Security | |
CN109936440B (zh) | Aes解密电路中的复用轮变换运算单元和构建方法 | |
Swamy et al. | Predominance of Blowfish over Triple Data Encryption Standard Symmetric Key Algorithm for Secure Integrated Circuits using Verilog HDL |
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 |