首页 理论教育 深入了解AES加密算法的数学基础

深入了解AES加密算法的数学基础

时间:2023-07-02 理论教育 版权反馈
【摘要】:AES中的运算是按字节或4字节的字定义的,并把1字节看成是系数在GF上的次数小于8的多项式,即把1字节看成是有限域GF中的一个元素,把一个4字节的字看成是系数在GF上,且次数小于4的多项式。对于AES这一8次不可约多项式为m=x8+x4+x3+x+1 计算23·64。由于所以即=x7+x4+x3 00100011·01100100=10011000 23·64=98 3.x乘法把b7b6b5b4b3b2b1b0构成的1字节看成是系数在(0,1)中取值的多项式用x乘以多项式B如果b7=0,则xB=b6x7+b5x6+b4x5+b3x4+b2x3+b1x2+b0x构成的字节为。如果b7=1,则则构成的字节为⊕。

深入了解AES加密算法的数学基础

AES中的运算是按字节或4字节的字定义的,并把1字节看成是系数在GF(2)上的次数小于8的多项式,即把1字节看成是有限域GF(28)中的一个元素,把一个4字节的字看成是系数在GF(28)上,且次数小于4的多项式。

在有限域GF(28)上的字节运算中,把b7b6b5b4b3b2b1b0构成的1字节看成是系数在(0,1)中取值的多项式

例如把十六进制数23对应的二进制数00100011看成1字节,对应的多项式为x5+x+1。

1.多项式加法

在多项式表示中,两个元素的和是一个多项式,其系数是两个元素的对应系数的模2加。

【例4-11】 求23与64的模2加。

【解析】

采用二进制记法: 23→00100011 64→01100100

00100011⊕01100100=01000111→47

或者采用其多项式记法:00100011→x5+x+1

01100100→x6+x5+x2

x5+x+1)+(x6+x5+x2)=x6+x2+x+1→01000111→47

因此,23⊕64=47

显然,该多项式加法与简单地以字节为单位的比特异或是一致的。

2.多项式乘法

有限域GF(28)中两个元素的乘法为模2元域GF(2)上的一个8次不可约多项式的多项式乘法。对于AES这一8次不可约多项式为

mx)=x8+x4+x3+x+1

【例4-12】 计算23·64。

由于(www.xing528.com)

所以

x5+x+1)(x6+x5+x2)=x7+x4+x3 (多项式表示)

00100011·01100100=10011000 (二进制表示)

23·64=98 (十六进制表示)

3.x乘法

b7b6b5b4b3b2b1b0构成的1字节看成是系数在(0,1)中取值的多项式

x乘以多项式Bx

如果b7=0,则

xBx)=b6x7+b5x6+b4x5+b3x4+b2x3+b1x2+b0x

构成的字节为(b6b5b4b3b2b1b00)。

如果b7=1,则

则构成的字节为(00011011)⊕(b6b5b4b3b2b1b00)。

归纳之

对应字节为(000b7b70b7b7)⊕(b6b5b4b3b2b1b00)

则构成的字节为

(000b7b70b7b7)⊕(b6b5b4b3b2b1b00)⊕(b7b6b5b4b3b2b1b0

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈