- 0
- 0
- 约7.82千字
- 约 33页
- 2024-04-23 发布于广东
- 举报
*************************有限域计算在AES中应用有限域GF(28)由不可约多项式定义m(x)=x8+x4+x3+x+187654321010001101111Bx6+x4+x2+x+157x7+x+183+x7+x6+x4+x2D4二进制位异或x7+x6+1C1×a(x)×b(x)modm(x)这里选的M(x)所有次数为8的不可约多项式列表中的第一个如果a(x)×b(x)modm(x)=1那么称b(x)为a(x)的逆元第21页,共33页,2024年2月25日,星期天*有限环运算环和域的区别在于,域可以进行除法运算而环不可以;加法定义为简单的比特位异或;两个系数为GF(28)上的多项式a(x)=a3x3+a2x2+a1x1+a0b(x)=b3x3+b2x2+b1x1+b0×c(x)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x1+c0c6=a3*b3c5=a3*b2⊕a2b3c4=a3*b1⊕a2b2⊕a1b3c3=a3*b0⊕a2b1⊕a1b2⊕a0b3c2=a2*b0⊕a1b1⊕a0b2c1=a1*b0⊕a0b1c0=a0*b0d3=a3*b0⊕a2b1⊕a1b2⊕a0b3d2=a2*b0⊕a1b1⊕a0b2⊕a3b3d1=a1*b0⊕a0b1⊕a3b2⊕a2b3d0=a0*b0⊕a3b1⊕a2b2⊕a1b3因xqmodx4+1=xqmod4因此a(x)×b(x)=d(x)其中d(x)=d3x3+d2x2+d1x1+d0第22页,共33页,2024年2月25日,星期天*AES算法框架流程PlainTextInitialRoundAddRoundKeyStandardRoundByteSubShiftRowMixColumnAddRoundKeyFinalRoundByteSubShiftRowAddRoundKeyCipherTextNr-1RoundsCipherKeyExpansionExpandedKeySelectionRoundKey1RoundKey2…RoundKeyNr-1RoundKeyNr第23页,共33页,2024年2月25日,星期天*128位AES算法流程第24页,共33页,2024年2月25日,星期天*AES轮函数AES的轮函数每一轮迭代的结构都一样,由下述4个不同的变换构成,只是最后一轮省略了列混合变换。字节替换(ByteSub):对数据的每一字节应用一个非线性变换。行移位(ShiftRow):对每一行的字节循环重新排序。列混合(MixColumn):对矩阵的列应用一个线性变换。轮密钥加(AddRoundKey):把轮密钥混合到中间数据。第25页,共33页,2024年2月25日,星期天*S-BOX替换盒把数据块分成字的形式,每个字包含4个字节,每个字节8bit;字节变换ByteSub是一种非线性字节变换,定义入右图所示,其中ai,j代表了一个字节,而ai,j-1则是ai,j在GF(28)中的乘法逆;在具体实现中,S-BOX使用查表法实现来提供效率;替代表是一个16×16的矩阵。表中纵向的x取自状态矩阵中的高4比特,横向的y取自低取自状态矩阵中的4比特。替代的过程如下表,x行和y列的数据就用来替代的数据=+第26页,共33页,2024年2月25日,星期天*AES字节变换替换表第27页,共33页,2024年2月25日,星期天*AES行位移变换行移位运算(ShiftRow):这是状态中字节的循环移位运算。这个运算可以表示成为Bi,j=Ai,(i+j)mod4第28页,共33页,2024年2月25日,星期天*AES列混合变换列混合变换:将状态每一列都视为环GF(28)上多项式s(x),然后乘以固定多项式a(x),并模除x4+1其中a(x)={03}x3+{01}x2+{01}x+{02},定义变换公式根据环GF(28)的相关理论有:第29页,共33页,2024年2月25日,星期天*AES轮密钥加密过程对状态和每轮的子密钥进行简单的异或操作。每轮子密钥是通过密钥调度算法从主密钥中产生,子密钥长度等于分组长度。轮密钥加运算需要用到4个导出的32比特子密钥。第3
原创力文档

文档评论(0)