首页 > 其他 > 详细

AES的数学基础

时间:2020-05-07 22:22:03      阅读:137      评论:0      收藏:0      [点我收藏+]

1.有限域GF(2的8次方)

  1.AES中的许多运算是按byte定义,一个byte=8个bit,还有是按字,一个4个字节的字=32bit

  2.将字节看成有限域的一个元素,一个4个字节的字看程GF(28)中并且次数小于4的多项式

  3.有限域的元素在本算法中采用传统的多项式表达式,GF(28)中的所有元素的系数为GF(2)中,且次数小于8的多项式

  4.将 b7b6b5b4b3b2b1b0构成的一个字节看成多项式 

    b7x七次方+b6x六次方+。。。+b1x+b0,其中bi∈GF(2),0≤i≤7

  5.例如:十六进制数‘57‘对应的二进制数为01010111,看成一个字节,对应的多项式为x6+x4+x2+x+1。采用的运算又加法,乘法和X乘运算

  加法运算:

    有限域GF(28)中的两个元素相加,结果是一个次数不超过7的多项式,其系数等于两个元素对应系数的模2加(比特异或)

    有限域GF(28)中的两个元素加法与两个字节的按位模2加是一致的。

    例如: 十六进制数表示:‘57‘+‘83‘=‘D4‘ 多项式表示为:(x6+x4+x2+x+1)=(x7+x+1)=x7+x6+x4+x2 二进制数表示为:01010111+10000011=11010100

  

  乘法运算:

    要计算有限域GF(28)上的乘法,必须先确定GF(2)上的八次不可约多项式

    GF(28)上两个元素的乘积就是这两个多项式模乘(以此8此不可约多项式为模)。如果一个多项式除了1和自身没有其它因子,则就是不可约的。

    对于AES,这个八次不可约多项式确定为m(x)=x8+x4+x3+x+1,十六进制表示为011b,二进制表示为0000000100011011

    例如, 十六进制数表示‘57‘⊗‘83‘ = ‘C1‘ , 多项式表示 (x6+x4+x2+x+1)(x7+x+1) =x13+x11+x9+x8+x7+x7+x5+x3+x2+x+x6+x4+x2+x+1 =x13+x11+x9+x8+x6+x5+x4+x3+1 (x13+x11+x9+x8+x6+x5+x4+x3+1)modm(x) =x7+x6+1

    对于任何系数在二元域GF(2)中并且次数小于8的多项式b(x),可用推广的欧几里得算法得出    b(x)*a(x)+m(x)*c(x) = 1

       即 a(x)b(x) = 1 mod m(x)

  X乘运算:

    (b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0)?x=b7x8+b6x7+b5x6+b4x5+b3x4+b2x3+b1x2+b0x 将上面的结果模m(x)求余得到x?b(x)。

    1.如果b7=0,则结果就是xb(x)

    2.如果b7=1,则乘积结果先减去m(x),结果也为xb(x)

    用x乘以一个多项式简称x乘

    x(十六进制数表示为02)乘可以用字节内左移一位和紧接着一个1b的按位模2加来实现,该运算几位xtime运算。

 

2.系数在GF(28)上的多项式

  多项式的系数可以定义为GF(28)中的元素,通过这个方法,四个字节构成的字可以表示为系数在GF(28)上的次数小于4的多项式,多项式的加法就是对应系数相加。GF(28)中的加法为按模2加,因此两个字节的加法就是按模2加。

  乘法比较复杂,规定多项式的乘法运算必须要取模M(x)=x4+1,这样使得次数小于4的多项式的乘积仍然是一个次数小于4的多项式,将多项式的模乘运算计为?

  例如:

  设a(x)=a3x3+a2x2+a1x+a0和b(x)=b3x3+b2x2+b1x+b0为GF(28)上的两个多项式,

  有 c(x)=a(x)?b(x)=c3x3+c2x2+c1x+c0 则 c0=a0?b0?a3?b1?a2?b2?a1?b3                 c1=a1?b0?a0?b1?a3?b2?a2?b3

           c2=a2?b0?a1?b1?a0?b2?a3?b3

           c3=a3?b0?a2?b1?a1?b2?a0?b3

    技术分享图片

 

         M(x)不是GF(28)中的不可约多项式

技术分享图片

 

 

技术分享图片

 

         

 技术分享图片

 

AES的数学基础

原文:https://www.cnblogs.com/beautiful7/p/12845786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!