异或: 相同则为0, 不同则为1
与: 有一个为0, 结果为0
以下符号说明
•表示一种运算
+ 表示加法运算,
* 表示乘法运算
这里的加法和乘法都是一种运算, 并不是特指整数中的加法和乘法
设G是一个非空集合, 且存在一种运算"•".如果它满足:
(1)结合律: ( a • b ) • c = a • ( b • c )
(2)存在恒等元e: e • a = a • e = a
(3)存在逆元素: a • b = b • a = e
则称G为群, 如果•为加法, 则称为加法群
举例,
对于整数中的加法运算来说,
e=0, 很显然满足以下条件
( a + b ) + c = a + ( b + c)
0 + a = a + 0 = a
a + (-a) = (-a) + a = 0
对于实数中的乘法法运算来说,
e = 1
( a * b ) * c = a * ( b * c )
1 * a = a * 1 = a
a * 1/a = 1/a * a = 1
整数, 是一个加法群, 但不是乘法群, 因为没有乘法逆元
设R有两种运算操作,分别为+, *, 即加法操作和乘法操作, 并且是一个加法群, 且满足以下条件
则称R为环
显然, 整数, 实数, 复数都是环
如果环
还满足以下条件
a * b = b * a
则称为交换环
如果交换环
还满足以下条件
(1)存在e元素: e • a = a • e = a
(2)存在逆元素: a • b = b • a = e
那就称为域
整数不是一个域
如果果域中的元素是有限的, 则称为有限域
, 设它的元素的个数为n
特性:
以同余运算为例, 设a mod p, b mod p, c mod p分别为a, b, c对p的取模
它的加法规则如下
( a mod p ) + ( b mod p ) = ( a + b ) mod p
显然, 加法操作满足域的定义
它的乘法规则如下
( a mod p ) * ( b mod p ) = (a * b ) mod p
显然, 乘法操作满足交换律
以下用%代替mod符号
加法恒等元为0%p
乘法恒等元为1%p
取一个质数, 假设为11, 那么这样的一个数集(取p=11)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
先看看它满足哪些特性, 以下用%代替mod
再看一个极端的例子, 取p=2
{0, 1}
看加法的性质
1%2 + 1%2 = 0%2
0%2 + 0%2 = 0%2
1%2 + 0%2 = 1%2
加法规律是: 相同为0, 不同为1, 计算机上称这个运算为异或
运算
再看乘法的性质
1%2 * 1%2 = 1%2
0%2 * 0%2 = 0%2
1%2 * 0%2 = 0%2
乘法规律是: 其中一个元素为0, 则结果为0, 计算机上称这个运算为与
运算
GF(q)的定义:
异或
运算, 然后再对一个n次多项式M取模举例说明
设p=2, n=3, 那么{1, x1, x2} 进行各种组合之后, 再加上零0, 得到一个GF(8)
{0, 1, x, x+1, x2, x2 + 1, x2 + x, x2 + x + 1}
M = x3 + x + 1 . (这是别人已经找好的)
加法运算规则举例
现在验证加法运算(其实是异或
运算)
x + x = 0 (系数相同, 值为0), 逆运算就 0 - x = x , 即-x=x, 也就是说, GF(q)中元素的加法逆元就是它本身
x + x + 1 = 1
x + x2 = x2 + x
x + x2 + x = x2
乘法运算规则举例
x * ( x2 + 1 ) % M = (x3 + x) %M = ( (x3 + x + 1) + 1 ) %M = 1
( x + 1 ) * ( x2 + x ) % M = ( x3 + x2 + x2 + x ) %M = (x3 +x ) %M = ( x3 + x + 1 + 1) %M = 1
同理有
x2 * ( x2 + x + 1 ) %M = 1
可以看出, 每个非零元素都有乘法逆元
用计算机中的bit来表示
x2 + x1 + x0 表示为 111
x2 表示为 100
x1 表示为 010
那么GF(8)可以写成
{000, 001, 011, 100, 101, 110, 111}
M = 1011
010 * 101 = 001
011 * 110 = 001
100 * 111 = 001
1个字节8bit, 可以生成GF(28)域
它的本原多项式为x8 + x4 + x3 + x + 1
https://en.wikipedia.org/wiki/Finite_field_arithmetic#Rijndael.27s_finite_field