复用轮变换电路、AES加密电路及加密方法技术

技术编号:19827812 阅读:26 留言:0更新日期:2018-12-19 16:50
本发明专利技术适用于加密技术领域,提供了一种复用轮变换电路、AES加密电路及加密方法,本发明专利技术提出的AES加密轮变换复用电路通过常数矩阵的合并与合成运算,将AES密码算法中的所有线性变换运算组合成两个合成矩阵,合成矩阵Δ与合成矩阵Λ,从而缩短AES加密轮变换电路的关键路径,同时降低电路实现面积,并通过复用合成矩阵乘法运算单元1、复合域乘法逆运算单元及合成矩阵乘法运算单元2实现普通轮变换及末轮变换,从而节省大量电路资源。

【技术实现步骤摘要】
复用轮变换电路、AES加密电路及加密方法
本专利技术属于加密
,提供了一种复用轮变换电路、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加密电路,旨在解决现有的基于合并运算的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,其中常数ω为AESS盒中仿射运算所指定的字节常数,;常数加运算单元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轮本文档来自技高网
...

【技术保护点】
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)域上的元素映射到复合域上的映射矩阵,其中,合成矩阵Δ的表达式如下:...

【技术特征摘要】
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的矩阵形式,常数矩阵τ为AESS盒中仿射运算所指定的常数矩阵,常数矩阵δ′为将复合域上的元素映射到GF(28)域上的映射矩阵,合成矩阵Λ表达式如下:常数加运算单元1,将合成矩阵乘法运算单元2输出的向量Qn=[qn0,qn1,qn2,qn3]T与常数向量Ωv=[ω0,ω1,ω2,ω3]T相加运算,运算后的矩阵Rn=[rn0,rn1,rn2,rn3]T输出到二选一选择器2,其中常数ω为AESS盒中仿射运算所指定的字节常数,;常数加运算单元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个...

【专利技术属性】
技术研发人员:张肖强郑辛星梁广俊刘宇畅王维王广亮王宸宇
申请(专利权)人:安徽工程大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1