对aes加密算法的理解

1.aes加密算法的输入通常是128位的数据,即16字节的数据。

2.加密的循环次数与密钥的位数有关。16字节密钥对应10轮,24字节密钥对应12轮,32字节对应14轮。

3.列混合运算伪代码

def    f(a)
if a&0x80:
    result=(2*a^0x1b)&0xff;
else:
    result=(2*a)
return result

for i in range(4):
    t0=a[3+i*4]^a[2+i*4]^a[1+i*4]^f(a[1+i*4])^f(a[0+i*4])
    t1=a[3+i*4]^a[0+i*4]^a[2+i*4]^f(a[1+i*4])^f(a[2+i*4])
    t2=a[3+i*4]^a[0+i*4]^a[1+i*4]^f(a[2+i*4])^f(a[3+i*4])
    t3=a[0+i*4]^a[2+i*4]^a[1+i*4]^f(a[3+i*4])^f(a[0+i*4])
    a[0+i*4]=t0
    a[1+i*4]=t1
    a[2+i*4]=t2
    a[3+i*4]=t3

 

posted @ 2020-11-26 20:23  mio_yy  阅读(216)  评论(0)    收藏  举报