1.一种AES加密运算单元,其特征在于,所述AES加密运算单元包括:
二选一选择器S1、合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2,其中,选择器的两输入端分别与明文数据输入端及反馈数据输入端连接,选择器的输出端及密钥输入端与合成矩阵乘法运算单元1的输入端连接,合成矩阵乘法运算单元1的输出端与复合域乘法逆运算单元的输入端连接,复合域乘法逆运算单元的输出端及密钥输入端均与合成矩阵乘法运算单元2的输入端连接,合成矩阵乘法运算单元2的两输出端分别与常数加运算单元1及常数加运算单元2的输入端连接,常数加运算子1的输出端与反馈数据输出端连接,常数加运算单元2的输出端与密文数据输出端连接;
在进行第一轮普通轮变换运算时,二选一选择器S1将从明文数据输入端口输入明文数据向量Df=[df0,df1,df2,df3]T输出到合成矩阵乘法运算单元1,在第二轮至第(Nr-1)轮普通轮变换运算及末轮变换运算时,二选一选择器S1将从反馈数据输入端口输入数据向量Dn=[dn0,dn1,dn2,dn3]T输出到合成矩阵乘法运算单元1;
合成矩阵乘法运算单元1,将从数据输入端输入的列向量Dv=[d0,d1,d2,d3]T和密钥输入端输入的密钥向量Kn=[kn0,kn1,kn2,kn3]T组合成一个列向量Pv=[d0,d1,d2,d3,kn0,kn1,kn2,kn3]T,将合成矩阵Δ与列向量Pv进行乘法运算,乘法运算结果Lv=[l0,l1,l2,l3]T输出到复合域乘法逆运算单元,所述合成矩阵Δ表达如下:其中,合成矩阵Δ由八个常数矩阵δ组合而成,常数矩阵δ为将GF(28)域上的元素映射到复合域的映射矩阵;
T
复合域乘法逆运算单元,将向量Lv=[l0,l1,l2,l3] 中的每个字节进行复合域乘法逆运算,运算结果Iv=[i0,i1,i2,i3]T输出到合成矩阵乘法运算单元2,所述复合域为任意与GF(28)域同构的复合域;
合成矩阵乘法运算单元2,将数据向量Iv=[i0,i1,i2,i3]T和密钥向量Ki=[ki0,ki1,ki2,T T
ki3]组合成一个列向量Ov=[i0,i1,i2,i3,ki0,ki1,ki2,ki3] ,将合成矩阵Λ与列向量Ov进行乘法运算,乘法运算结果第一行至第四行组成的向量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的矩阵形式;常数矩阵τ为AES S盒中仿射运算所指定的常数矩阵;常数矩阵δ′为将复合域上的元素映射到GF(28)域的映射矩阵;
T T
常数加运算单元1,将列向量Qn=[qn0,qn1,qn2,qn3] 与常数向量Ωv=[ω,ω,ω,ω] 相加运算,其中常数ω为AES S盒中仿射运算所指定的字节常数,将运算结果Rn=[rn0,rn1,rn2,rn3]T通过反馈数据输出端反馈至反馈数据输出入端;
常数加运算单元2,将列向量Ql=[ql0,ql1,ql2,ql3]T与常数向量Ωv=[ω,ω,ω,ω]T相T
加运算,运算结果Rn=[rn0,rn1,rn2,rn3] 通过密文数据输出端口输出,取第Nr次运算结果作为密文;
所述合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2的数据位宽均为4字节。
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(Nr-1)次运算构成(Nr-1)轮普通轮变换,在前4次运算中,选择器S1将从明文数据输入端输入的数据输出到合成矩阵乘法运算单元1,在第5~4(Nr-1)次运算中,选择器S2将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元
1及常数加运算单元2的运算,常数加运算单元1的运算结果输入寄存器1中,每循环4次,即完成一轮完整的普通轮变换运算后,寄存器1将存储的数据输入到寄存器2中,寄存器2每次将4字节的数据通过反馈数据输入端输入选择器S1,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S2、AES加密电路的第(4Nr-3)~4Nr次运算构成末轮变换,在末轮变换运算中,寄存器2每次将4字节的数据通过反馈数据输入端输入选择器S1,选择器将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2运算,常数加运算单元2的运算结果从密文数据输出端口输出,第(4Nr-3)~4Nr次从密文数据输出端输出的数据即构成密文。
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的运算,常数加运算单元1的运算结果输入寄存器1中,每循环2次,即完成一轮完整(16字节)的普通轮变换运算后,寄存器1将存储的数据输入到寄存器2中,寄存器2每次将两组4字节的数据通过两反馈数据输入端分别输入两AES加密运算单元的选择器,进行下一轮普通轮变换运算,共进行Nr-1轮普通轮变换运算;
S2、AES加密电路的第(2Nr-1)~2Nr次循环构成末轮变换,两个AES加密运算单元同时进行末轮变换运算,在末轮变换运算中,寄存器将两组4字节的数据通过两反馈数据输入端分别输入两AES加密运算单元的选择器,选择器将反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2运算,常数加运算单元2的运算结果从密文数据输出端口输出,第(2Nr-1)~2Nr次从密文数据输出端输出的数据即构成密文。
7.一种基于权利要求4所述的AES加密电路的AES加密方法,其特征在于,所述方法包括如下步骤:
S1、AES加密电路的前(Nr-1)次运算构成(Nr-1)轮普通轮变换,四个AES加密运算单元同时进行普通轮变换运算,在普通轮变换运算中,在第一次运算中,选择器将从明文数据输入端输入的数据输出至合成矩阵乘法运算单元1,在第2~(Nr-1)次运算中,选择器将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2的运算,常数加运算单元1的运算结果输入寄存器中,每循环一次,即完成一轮完整的普通轮变换运算后,寄存器1将存储的数据输出至寄存器2,寄存器将四组4字节的数据通过四反馈数据输入端分别输入四AES加密运算单元的选择器,进行下一轮普通轮变换,共进行Nr-1轮普通轮变换运算;
S2、AES加密电路的第Nr次循环构成末轮变换,四个AES加密运算单元同时进行末轮变换运算,在末轮变换运算中,寄存器2将四组4字节的数据通过四反馈数据输入端分别输入四AES加密运算单元的选择器,选择器将从反馈数据输入端输入的数据输出至合成矩阵乘法运算单元1,依次经合成矩阵乘法运算单元1、复合域乘法逆运算单元、合成矩阵乘法运算单元2、常数加运算单元1及常数加运算单元2运算,常数加运算单元2的运算结果从密文数据输出端口输出,第Nr次从密文数据输出端输出的数据即构成密文。