zoukankan      html  css  js  c++  java
  • AES的数学基础

    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)中的不可约多项式

             

     

  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/beautiful7/p/12845786.html
Copyright © 2011-2022 走看看