1.一种AES加密运算单元,其特征在于,所述AES加密运算单元包括:
选择器S1、合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元
2、常数加运算单元1、常数加运算单元2及选择器S2,其中,选择器S1的两输入端分别与反馈数据输入端及明文数据输入端连接,选择器S1的输出端及密钥输入端与合成矩阵乘法运算单元1的输入端连接,合成矩阵乘法运算单元1的一输出端与复合域乘法逆运算单元的输入端连接,另一输出端与密文数据输出端连接,复合域乘法逆运算单元的输出端与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的两输出端分别与常数加运算单元
1及常数加运算单元2的输入端连接,常数加运算单元1及常数加运算单元2的输出端分别与选择器S2的两输入端连接,选择器S2的输出端与反馈数据输出端连接;
在进行第一轮普通轮变换运算时,选择器S1选择将从明文数据输入端口输入明文数据向量Df=[df0,df1,df2,df3]T输出到合成矩阵乘法运算单元1,在进行第二轮至第(Nr-1)轮普通轮变换运算、末轮变换运算及密钥加运算时,选择器S1选择将从反馈数据输入端口输入数据向量Dn=[dn0,dn1,dn2,dn3]T输出到合成矩阵乘法运算单元1;
合成矩阵乘法运算单元1,将选择器S1输出的数据向量Dv=[d0,d1,d2,d3]T及从密钥输入端输入的密钥向量kv=[k0,k1,k2,k3]T组合成一个列向量Pv=[d0,d1,d2,d3,k0,k1,k2,k3]T,将合成矩阵Δ与列向量Pv进行乘法运算,将乘法运算结果的第一行至第四行组成的向量Lv=[l0,l1,l2,l3]T输出到复合域逆乘法子运算单元,乘法运算结果的第五行至第八行组成的向量Cv=[c0,c1,c2,c3]T输出到密文数据输出端口,所述合成矩阵Δ的具体表达形式为:其中,合成矩阵Δ由常数矩阵δ、 组合而成,常数矩阵 分别为GF(28)域上乘常数×{01}16的矩阵形式,常数矩阵δ为将GF(28)域上的元素映射到复合域的映射矩阵;
复合域乘法逆运算单元,将Lv=[l0,l1,l2,l3]T中每个字节进行复合域乘法逆运算,并将运算结果Iv=[i0,i1,i2,i3]T输出到合成矩阵乘法子运算单元2,所述复合域为任意与GF(28)域同构的复合域;
合成矩阵乘法运算单元2,将合成矩阵Λ与数据向量Iv=[i0,i1,i2,i3]T进行乘法运算,将乘法运算结果的第一行至第四行组成的向量Qn=[qn0,qn1,qn2,qn3]T及第五行至第八行组成的向量Ql=[ql0,ql1,ql2,ql3]T分别输出到常数加运算单元1及常数加运算单元2,所述合成矩阵Λ具体表达如下:其中,合成矩阵Λ由常数矩阵γ3、γ2、γ1组合而成,常数矩阵γ3为常数矩阵δ和常数矩阵 的乘积,即 常数矩阵γ2为常数矩阵δ和常数矩阵 的乘积,即 常数矩阵γ1为常数矩阵δ和常数矩阵 的乘积,即 常数矩阵 分别为GF
(28)域上乘常数×{03}16、×{02}16、×{01}16的矩阵形式,常数矩阵δ为将GF(28)域上的元素映射到复合域的映射矩阵;
常数加运算单元1,将向量Qn=[qn0,qn1,qn2,qn3]T与常数向量Ωv=[ω,ω,ω,ω]T相加运算,其中,常数ω为AES S盒中仿射运算所指定的字节常数,将运算结果Rn=[rn0,rn1,rn2,rn3]T输出到选择器S2中;
常数加运算单元2将向量Ql=[ql0,ql1,ql2,ql3]T与常数向量Ωv=[ω,ω,ω,ω]T相加运算,将运算结果Rl=[rl0,rl1,rl2,rl3]T输出到选择器S2中;
T
在进行普通轮变换运算时,选择器S2将运算结果Rn=[rn0,rn1,rn2,rn3]通过反馈数据输出端反馈至反馈数据输入端,在进行末轮变换运算时,选择器S2将运算结果Rl=[rl0,rl1,rl2,rl3]T通过反馈数据输出端反馈至反馈数据输入端;
所述合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2的数据位宽均为4字节。
2.一种AES加密电路,其特征在于,所述AES加密电路包括:
一个如权利要求1所述的AES加密运算单元,以及寄存器1和寄存器2,其中,寄存器1的输入端与AES加密运算单元的反馈数据输出端连接,输出端与寄存器2的输入端相连接,寄存器2输出端与AES加密运算单元的反馈数据输入端连接;
所述寄存器1及所述寄存器2的数据位宽为16字节。
3.一种AES加密电路,其特征在于,所述加密电路包括:
两个如权利要求1所述AES加密运算单元,以及寄存器1和寄存器2,其中,寄存器1的输入端与两个AES加密运算单元的反馈数据输出端连接,输出端与寄存器2的输入端相连接,寄存器2输出端与两个AES加密运算单元的反馈数据输入端连接;
寄存器1及寄存器2的数据位宽为16字节。
4.一种AES加密电路,其特征在于,所述AES加密电路包括:
四个如权利要求1所述AES加密运算单元,以及寄存器,寄存器的输入端与四个AES加密运算单元的反馈数据输出端连接,输出端与四个AES加密运算单元的反馈数据输入端连接;
寄存器的数据位宽为16字节。
5.一种基于权利要求2所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前4(Nr-1)次运算构成(Nr-1)轮普通轮变换,在前4次运算中,选择器S1选择将从明文数据输入端输入的数据输出至合成矩阵乘法运算单元1,在第5~4(Nr-1)次运算中,选择器S1选择将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,之后依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2的运算,选择器S2选择将常数加运算单元1的运算结果输出至寄存器1中,每循环4次后,即完成一轮完整的普通轮变换运算后,寄存器1将存储的数据输出到寄存器2中,寄存器2每次将4字节的数据通过反馈数据输入端输入选择器S1,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S2、AES加密电路的第(4Nr-3)~(4Nr)次循环构成末轮变换,在末轮变换运算中,寄存器
2每次将4字节的数据通过反馈数据输入端输入选择器S1,选择器S1选择将反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2运算,选择器S2选择常数加运算单元2的运算结果输入寄存器1中,经过4次运算完成末轮变换后,寄存器
1将存储的数据输出至寄存器2中;
S3、AES加密电路的第(4Nr+1)~(4Nr+4)次循环为密钥加运算,寄存器2每次将4字节的数据通过反馈数据输入端输入选择器S1,选择器S1选择将反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1进行运算,从密文数据输出端口输出数据Cv即构成密文。
6.一种基于权利要求3所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前2(Nr-1)次运算构成(Nr-1)轮普通轮变换,两个AES加密运算单元同时进行普通轮变换运算,在普通轮变换运算中,在前2次运算,选择器S1选择将从明文数据输入端输入的数据输出至合成矩阵乘法运算单元1,在第3~2(Nr-1)次运算中,选择器S1选择将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2的运算,选择器S2选择常数加运算单元1的运算结果输入寄存器1中,每循环2次,即完成一轮完整的普通轮变换运算后,寄存器1将存储的数据输出到寄存器2中,寄存器
2每次将两组4字节的数据通过两反馈数据输入端输入两AES加密运算单元的选择器S1,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S2、AES加密电路的第2Nr-1~2Nr次循环构成末轮变换,两个AES加密运算单元同时进行末轮变换运算,在末轮变换运算中,寄存器2每次将两组4字节的数据通过两反馈数据输入端输入两AES加密运算单元的选择器S1,选择器S1选择将反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2运算,选择器S2选择常数加运算单元2的运算结果输入寄存器1中,经过2次运算完成末轮变换后,寄存器1将存储的数据输入到寄存器2中;
S3、AES加密电路的第(2Nr+1)~(2Nr+2)次循环为密钥加运算,两个AES加密运算单元同时进行密钥加运算,在密钥加运算中,寄存器2每次将两组4字节的数据通过两反馈数据输入端输入两AES加密运算单元的选择器S1,选择器S1选择将反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1进行运算,从密文数据输出端口输出数据Cv即构成密文。
7.一种基于权利要求4所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前(Nr-1)次运算构成(Nr-1)轮普通轮变换,四个AES加密运算单元同时进行普通轮变换运算,在普通轮变换运算中,在第一次运算中,选择器S1选择明将从文数据输入端输入的数据输出至合成矩阵乘法运算单元1,在第2~(Nr-1)次运算中,选择器S1选择将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2的运算,选择器S2选择将常数加运算单元1的运算结果输出到寄存器中,每循环一次,即完成一组12字节的普通轮变换运算后,寄存器将四组4字节的数据通过四反馈数据输出端输出至四个AES加密运算单元的选择器S1,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S2、AES加密电路的第Nr次循环构成末轮变换,在末轮变换运算中,存器将四组4字节的数据通过四反馈数据输出端输出至四个AES加密运算单元的选择器S1,选择器S1选择将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2运算,选择器S2选择将常数加运算单元2的运算结果输出至寄存器中,即完成末轮变换;
S3、AES加密电路的第Nr+1次循环为密钥加运算,存器将四组4字节的数据通过四反馈数据输出端输出至四个AES加密运算单元的选择器S1,选择器S1选择将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1进行运算,从密文数据输出端口输出数据Cv即构成密文。