1.一种AES加密单元,其特征在于,所述AES加密单元包括
合成矩阵乘法运算单元1、合成矩阵乘法运算单元2、选择器、复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元;
合成矩阵乘法运算单元1的输入端与明文数据输入端及密钥输入端连接,输出端与选择器的一输入端连接;合成矩阵乘法运算单元2的输入端与密钥输入端及反馈数据输入端连接,两个输出端分别与选择器的另一输入端及密文数据输出端连接;选择器的输出端与复合域乘法逆运算单元的输入端连接;复合域乘法逆运算单元的输出端与合成矩阵乘法运算单元3的输入端连接;合成矩阵乘法运算单元3的输出端与常数加运算单元的输入端连接,常数加运算单元的输出端与反馈数据输出端连接;
合成矩阵乘法运算单元1,将从明文数据输入端输入的数据向量Df=[df0,df1,df2,df3]T及从密钥输入端输入的密钥向量Kv=[k0,k1,k2,k3]T组成的一组列向量Pv=[df0,df1,df2,Tdf3,k0,k1,k2,k3] ,将合成矩阵Δf与列向量Pv进行乘法运算,即Lf=Δf×Pv,将乘法运算结果Lf=[lf0,lf1,lf2,lf3]T输出到选择器,合成矩阵Δf的表达式如下:其中,合成矩阵Δf由八个常数矩阵δ组合而成,常数矩阵δ为将GF(28)域上的元素映射到复合域上的映射矩阵;
合成矩阵乘法运算单元2,将从反馈数据输入端输入的数据向量Dn=[dn0,dn1,dn2,dn3]T和密钥向量Kv=[k0,k1,k2,k3]T组合成一个列向量Ov=[dn0,dn1,dn2,dn3,k0,k1,k2,k3]T,将合成矩阵Δn与列向量Ov进行乘法运算,将运算结果Ln=[ln0,ln1,ln2,ln3]T及Cv=[c0,c1,c2,c3]T分别输出到选择器和密文数据输出端其中,Ln和Cv分别为合成矩阵Δn与列向量Ov乘法运算结果的第一行至第四行、第五行至第八行组成的列向量,合成矩阵Δn的表达式表示如下:其中,合成矩阵Δn由γ3、γ2、γ1、δ、 组合而成,常数矩阵γ3为常数矩阵δ和常数矩阵的乘积,即 常数矩阵γ2为常数矩阵δ和常数矩阵 的乘积,即 常数矩阵γ1为常数矩阵δ和常数矩阵 的乘积,即 常数矩阵 分别为GF
(28)域上乘常数×{03}16、×{02}16、×{01}16的矩阵形式,常数矩阵δ为将GF(28)域上的元素映射到复合域上的映射矩阵;
选择器将两组数据Lf和Ln中选择一组送入复合域乘法逆运算单元中,当进行首轮变换运算时,将数据Lf送入复合域乘法逆运算单元中,当进行普通轮变换运算时,将数据Ln送入复合域乘法逆运算单元中;
复合域乘法逆运算单元,对选择器输出的数据Lf或数据Ln中的每个字节进行复合域乘法逆运算,将复合域乘法逆运算结果Iv=[i0,i1,i2,i3]T输出到合成矩阵乘法运算单元3,所述复合域为任意与GF(28)域同构的复合域;
T
合成矩阵乘法运算单元3,将合成矩阵Λ与数据向量Iv=[i0,i1,i2,i3]进行乘法运算,即Qv=Λ×Iv,并将运算结果Qv=[q0,q1,q2,q3]T输出到常数加运算单元,合成矩阵Λ的表达式表示如下:其中,合成矩阵Λ由四个常数矩阵λ组合而成,常数矩阵λ为常数矩阵τ和常数矩阵δ′的乘积,即λ=τ×δ′,常数矩阵τ为AES S盒中仿射运算所指定的常数矩阵,常数矩阵δ′为将复8
合域上的元素映射到GF(2)域上的映射矩阵;
常数加运算单元,将向量Qv=[q0,q1,q2,q3]T与常数向量Ωv=[ω,ω,ω,ω]T相加运算,即Rv=Qv+Ωv,运算结果Rv=[r0,r1,r2,r3]T通过反馈数据输出端反馈至反馈数据输入端,其中,常数ω为AES S盒中仿射运算所指定的字节常数;
合成矩阵乘法运算单元1、合成矩阵乘法运算单元2、选择器、复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元的数据输入端及数据输出端的数据位宽均为四个字节,密钥输入端的数据位宽四个字节。
2.一种AES加密电路,其特征在于,所述AES述加密电路包括:
一个如权利要求1所述的AES加密单元,以及寄存器1和寄存器2,其中,所述寄存器1的输入端与所述AES加密单元的反馈数据输出端连接,输出端与寄存器2的输入端相连接,寄存器2输出端与所述AES加密单元的反馈数据输入端连接;
所述寄存器1及寄存器2的数据位宽为16字节。
3.一种AES加密电路,其特征在于,所述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轮运算构成首轮变换,在首轮变换运算中,将从明文数据输入端输入的数据输入合成矩阵乘法运算单元1,经合成矩阵乘法运算单元1的运算,将运算结果Lf输入选择器,选择器选择将数据向量Lf输出到复合域乘法逆运算单元,依次经复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元的运算,将运算结果输出到寄存器1中,AES加密电路每轮进行4个字节的数据运算,经过4轮运算后,寄存器1将存储的数据输出到寄存器2中;
S2、AES加密电路的第5~4Nr轮运算构成普通轮变换,在普通轮变运算中,寄存器2将4字节的数据通过反馈数据输入端输入合成矩阵乘法运算单元2,经合成矩阵乘法运算单元2的运算,将运算结果Ln输入选择器,将运算结果Cv从密文数据输出端口输出,选择器选择将数据向量Ln输出到复合域乘法逆运算单元,依次经复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元运算,将运算结果输出到寄存器1中,每循环4轮,即完成一组16字节的数据运算后,寄存器1存储的数据输出到寄存器2中,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S3、AES加密电路的第(4Nr+1)~(4Nr+4)轮运算为末轮变换,寄存器2将4字节的数据通过反馈数据输入端输入合成矩阵乘法运算单元2,经合成矩阵乘法运算单元2的运算,运算结果Cv从密文数据输出端输出,经4轮循环运算后,从密文数据输出端输出的数据即为密文。
6.一种基于权利要求3所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前2轮运算构成首轮变换,两AES加密单元同时进行首轮变换运算,在首轮变换运算中,从明文数据输入端输入的数据输出至合成矩阵乘法运算单元1,经合成矩阵乘法运算单元1的运算,将运算结果Lf输入选择器,选择器选择将数据向量Lf输出到复合域乘法逆运算单元,依次经复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元的运算,将运算结果输出到寄存器1中,AES加密电路每轮进行8个字节的数据运算,经过2轮运算后,寄存器1将存储的数据输出到寄存器2中;
S2、AES加密电路的第3~2Nr轮运算构成普通轮变换,寄存器2将两组4字节的数据通过两反馈数据输入端分别输入两AES加密单元的合成矩阵乘法运算单元2,两个AES加密单元同时进行普通轮变换运算,经合成矩阵乘法运算单元2的运算,将运算结果Ln输出至选择器,将运算结果Cv从密文数据输出端输出,选择器选择将数据向量Ln输出到复合域乘法逆运算单元,依次经复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元运算,将运算结果输出到寄存器1中,每循环2轮,即完成一组16字节的数据运算后,寄存器1存储的数据输出到寄存器2中,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S3、AES加密电路的第(2Nr+1)~(2Nr+2)轮运算为末轮变换,寄存器2将两组4字节的数据通过两反馈数据输入端分别输入两AES加密单元的合成矩阵乘法运算单元2,两个AES加密单元同时进行末轮变换运算,经合成矩阵乘法运算单元2的运算,运算结果Cv从密文数据输出端输出,经2轮循环运算后,从密文数据输出端输出的数据即为密文。
7.一种基于权利要求4所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的第一轮运算构成首轮变换,四个AES加密单元同时进行首轮变换运算,在首轮变换运算中,明文数据均从明文数据输入端输入至合成矩阵乘法运算单元1,经合成矩阵乘法运算单元1的运算,将运算结果Lf输入选择器,选择器选择将数据向量Lf输出到复合域乘法逆运算单元,依次经复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元的运算,将运算结果输出到寄存器1中,AES加密电路每轮进行16字节的数据运算,经过一轮运算后,寄存器1将存储的数据输出到寄存器2中;
S2、AES加密电路的第2~Nr轮运算构成普通轮变换,寄存器2将四组4字节的数据通过四反馈数据输入端分别输入四个AES加密单元的合成矩阵乘法运算单元2,四个AES加密单元同时进行普通轮变换运算,即经合成矩阵乘法运算单元2的运算,将运算结果Ln输出至选择器,将运算结果Cv从密文数据输出端输出,选择器选择将数据向量Ln输出到复合域乘法逆运算单元,依次经复合域乘法逆运算单元、合成矩阵乘法运算单元3、及常数加运算单元运算,将运算结果输出到寄存器1中,每循环一轮,即完成一组16字节的数据运算后,寄存器1存储的数据输出到寄存器2中,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S3、AES加密电路的第Nr+1轮运算为末轮变换,寄存器2将四组字节的数据通过四个反馈数据输入端分别输入四个AES加密单元的合成矩阵乘法运算单元2,四个AES加密单元同时进行末轮变换运算,即经合成矩阵乘法运算单元2的运算,运算结果Cv从密文数据输出端输出,经一轮循环运算后,从密文数据输出端输出的数据即为密文。