G(2^8)有限域

来源:互联网 发布:arm编程工具 编辑:程序博客网 时间:2024/06/04 13:17

仅含有限多个元素的域。它首先由E.伽罗瓦所发现,因而又称为伽罗瓦域。

G(2^8)有限域上的运算:

本原多项式P(x) = x8+x4+x3+x2+1        [1 0001 1101]

定义 P(x) = 0 则 x8 = x4+x3+x2+1    [0 0001 1101]

区间[0,255]可以表示成各种多项式。例如:

0 = 00000000 = 0

1 = 00000001 = x^0 = 1

2 = 00000010 = x^1 

129 = 1000001 = x^7+1

加法:按位异或

乘法

3*7 = (x+1)*(x^2+x+1)

      = x*x^2+x*x+x+x^2+x+1

      = x^3+1

      9

129*5 = (x^7+1)*(x^2+1)

         = x^9+x^7+x^2+1

 = x^5+x^4+x^3+x+x^7+x^2+1 (因为:x^9 = x^5+x^4+x^3+x)

 = 10111111

 = 191

x的指数运算:可以得出x^1(i=0,1,2.....),用于乘法运算:

x^8 = x^4+x^3+x^2+1

x^9 = x*x^8


  1. 用0x01的乘法:是特殊的,它相当于普通算法中用1做乘法,并且结果也一样——任何值乘0x01等于其自身;
  2. 用0x02做乘法:和加法的情况类似,理论是深奥的,单最终结果十分简单。只要被乘的值小于0x80,这时乘法的结果就是该值左移1bit位。如果被乘的值大于或等于0x80,这时乘法的结果就是左移1bit位再用0x1b异或。它防止了“域溢出”并保持乘法的乘积在范围以内。一旦建立了0x02的加法和乘法,就可以用任意常量去定义乘法。


0 0
原创粉丝点击