数论和有限域的基本概念

写着一部分的时候我是抗拒的,不想看数学,不想看数学,不想看数学!!!!!但是,我和小伙伴说看到这不想看的时候,他说,这是精华啊,快看!!!!!呜呜呜呜呜,浅看一下吧。菜鸟进击-------------------------------------------------------------------

1、整除性和除法

1.1.1 整除性

 设a,b,m是整数,如果 a = mb,我们说非零整数b整除a。用 b | a表示b整除a,此时b是a的因子。如:6 | 24,13 |182, -5 | 20, -3 | 33

接下来看整数整除的性质:

  • 如果 a | 1,则 a = ± 1
  • 如果 a | b 且 b | a,则 a = ± b
  • 任意非零整数b整除0
  • 如果 a | b,b | c,则 a | c  比如 11 | 66,66 | 198 = 11 | 198
  • 如果 b | g,b | h,则对任意的整数m和n,有 b | ( mg + nh )

1.1.2 除法

给定任意正整数n和任意非负整数a,如果用n除a,我们得到一个整数商q和一个整数余数r,可写成

                                                  a = qn + r         0 ≤ r < n;q = (a/n)下取整

余数r经常被称为剩余数。

 

2、欧几里得算法Euclid:求两个正整数的最大公因子

2.1 最大公因子

我们用gcd( a , b )表示a和b的最大公因子,即能够同时整除a和b的最大整数。定义特殊点gcd( 0, 0 ) = 0。假设c是a和b的最大公因子,则有以下性质:

c是a和b的因子

a和b的任何因子都是c的因子

公式定义为gcd( a, b ) = max [ k, k | a 且 k | b]

 因为我们所求的最大公因子是正数,所以gcd( a, b ) = gcd( a, -b ) = gcd( -a, b ) = gcd( -a, -b ) 。如gcd( 60, -24 ) = 12。特殊的gcd( a, 0 ) = |a|

如果gcd( a, b ) = 1,那么我们称a和b互素。

 

2.2 求最大公因子

辗转求余法知道d = gcd ( rn, 0 ) = rn

 

3、模运算

3.1 模

如果a是整数,n是正整数,则定义a模n是a除以n所得的余数。整数n称为模数。因此,对于任意整数a,总有 a = qn + r    0 ≤  r < n;q = (a/n)向下取整

                                                                       11 mod 7 = 4; -11 mod 7 = 3

如果( a mod n ) = ( b mod n ),则称整数a和b是模n同余的。可以表示为a ≡ b ( mod n )。如果 a ≡ 0 ( mod n ),则 n | a。

3.2 同余的性质

  • 如果 n | (a - b),那么 a ≡ b ( mod n )
  • a ≡ b ( mod n ),隐含b ≡ a ( mod n )
  • a ≡ b ( mod n ),b ≡ c ( mod n ),那么a ≡ c ( mod n )

3.3 模算术运算

根据定义可知,运算 mod n将所有的整数映射到集合{ 0,1,2,……,n - 1 }

模算术有以下性质

  • [ ( a mod n ) + ( b mod n ) ] mod n = ( a + b ) mod n 
  • [ ( a mod n ) - ( b mod n ) ] mod n = ( a - b ) mod n 
  • [ ( a mod n ) * ( b mod n ) ] mod n = ( a * b ) mod n

3.4 模运算的性质

定义比n小的非负整数集合为Zn:Zn = { 0,1,2,……,n - 1 },这个集合被称为剩余类集,或模n的剩余类。准确地说,Zn中每一个整数都代表一个剩余类。我们可以将模n的剩余类表示为[0] [1] [2] …… [n - 1],其中[r] = {a:a是一个整数,a ≡ r ( mod n )}

举个栗子吧,这里需要一个栗子

  • 模4的剩余类:
  • [0] = { …… -16   -12   -8    -4    0    4    8     12    16 ……}
  • [1] = { …… -15   -11    -7    -3    1    5    9     13    17 ……}
  • [2] = { …… -14   -10    -6    -2    2    6   10    14    18 ……}
  • [3] = { …… -13     -9     -5    -1    3    7   11    15    19 ……}

从栗子中可以看出,在剩余类的所有整数中,通常用最小的非负整数代表这个剩余类。寻找与k是同余的最小非负整数的过程,称为模n的k约化。

3.5  修改的欧几里得算法

对于任意非负整数a和任意正整数b gcd ( a,b ) = gcd ( b,a mod b ) 

if ( b = 0 ) then return a;

else return Euclid ( b, a mod b);

3.6 扩展欧几里得算法

                                                                   d = gcd ( a,b ) = ax + by

对于给定的整数a和b,ax+by的最小正整数等于 gcd ( a,b )

对于给定的a和b,扩展欧几里得计算( x, y, d )。

 

4、群 环 域

4.1 群

代数结构 - 吉吉的奥利奥 - 博客园 (cnblogs.com) 这里有过介绍

设<G,*>是一个代数系统,其中G是非空集合,*是G上一个二元运算,G中的每一个序偶( a,b )通过计算生成G中的元素 ( a*b ),并满足以下公理

(1)运算*是封闭的:如果a和b都属于G,则a*b也属于G

(2)运算*是可结合的:对于G中任意元素a、b、c,都有a * ( b * c ) = ( a * b ) *c

(3)存在幺元e:G中存在一个元素e,对于G中任意元素a,都有a*e = e*a = a成立

(4)对于每一个元素x∈G,存在着他的逆元x-1,使得x * x-1 = x-1 * x = e

则称<G,*>是一个

在此,如果对于G中任意元素a和b,都有a * b = b * a成立,则<G,*>是一个交换群(阿贝尔群)

 

循环群:

 定义a0 = e 作为单位元,如果群中每一个元素都是一个固定元素a的幂ak,则称群G为循环群。我们认为元素a生成了群G,或者说a是群G的生成元。循环群总是交换群,有可能是有限群,也有可能是无限群。

 

4.2 环

环R是一个有两个二元运算的集合,这两个二元运算分别称为加法和乘法,对于R中任何元素abc满足以下公理:

(1)R关于加法是一个交换群

(2)如果a和b都属于R,则ab也属于R

(3)对于R中任意元素abc,有a(bc) = (ab)c

(4)对于R中任意元素abc,都有a ( b + c ) = ab + ac; ( a + b )c = ac + bc

本质上环就是一个集合,我们可以在上面进行加减乘法而不脱离该集合。

实数上所有n阶方阵的集合关于加法和乘法构成一个

在此,对于R中任意元素a、b,有ab=ba,则R是一个交换环。Zn就构成一个交换环

基于交换环,满足乘法单位元1使得a1=1a=a;无零因子若ab=0,则必有a=0或者b=0,我们称为整环

 

4.3 域

域F是一个有两个二元运算的集合,这两个二元运算分别称为加法和乘法,对于R中任何元素abc满足以下公理:

(1)F是一个整环

(2)F中任意元素a(除0),F都存在一个元素a-1使得aa-1=a-1a=1成立

本质上域就是一个集合,我们可以在上面进行加减乘法而不脱离该集合。除法可以定义为a/b=a*b-1

 

5、有限域GF(p)

阶为pn的有限域一般记为GF(pn),GF代表Galois域,以一位研究有限域的数学家名字命名。

5.1 阶为p的有限域

给定一个素数p,元素个数为p的有限域GF(p)被定义为整数{0,1,2,……,p - 1 }的集合Zp,其运算为模p的算术运算。比如Z7就是一个有限域,每个元素都有a + b = 0 mod 7,a * b = 1 mod 7。

5.2 求GF(p)中乘法逆元

根据扩展欧几里得算法得知,如果 by mod a = 1,则y = b-1

 

6、多项式运算

6.1 普通多项式运算

 一个n次多项式可以写为 f(x) = anxn + an-1xn-1 + …… + a1x + a0 = Σi=0 n aixi,其中ai是指某个系数集S中的元素,且an ≠ 0。我们称f(x)是定义在系数集S上的多项式。

6.2 系数在Zp中的多项式

 假如系数集S是域F的元素,我们称其为域F上的多项式。这种情况下,系数集S是一个环,称为多项式环。

对我们而言GF(2)上的多项式最有意义。他的加法等价于异或运算,乘法等价于逻辑与运算。模2的加减法是等价的。

域F上的多项式f(x)被称为不可约的/既约的。当且仅当f(x)不能表示为两个多项式的积。一个不可约多项式也成为素多项式。

 

7、有限域GF(2n)

7.1 动机

我们要寻找一个包含2n个元素的集合,其上定义了加法和乘法使之成为一个域。给集合的每一个元素赋值为0到2n-1之间唯一的整数。我们不会使用模算术,因为那样不能构成域。我们使用多项式算术来构造需要的域。

7.2 多项式模运算

                                                                                               f(x) = an-1xn-1 + …… + a1x + a0 = Σi=0 n-1 aixi        ai在集合{0,1,……,p - 1}

如果乘法运算的结果是次数大于n-1的多项式,那么必须将其除以某个次数为n的既约多项式m(x)取其余式r(x),即r(x) = f(x) mod m(x)

设m(x)为n次多项式,则模m(x)剩余类集合有pn个元素,其中每个元素都可以表示成一个m次多项式(m<n)。

以m(x)为模的剩余类[x+1]由所有满足a(x)≡(x+1) mod m(x)的多项式a(x)组成。就是说,剩余类[x+1]中的所有多项式a(x)满足等式a(x) mod m(x) ≡ (x+1) 。

由此可知,以n次既约多项式m(x)为模的所有多项式组成的集合满足域的所有公理,形成一个有限域。任意具有相同的阶的有限域具有相同的结构,但是元素的表示和标记可能不同。构造一个有限域GF(23),需要选择一个3次既约多项式,使得不同函数的加乘模上既约多项式之后都在该有限域内。

7.3 求乘法逆元

 可以由扩展欧几里得算的

7.4 多项式的特性

                                                                                                 f(x) = an-1xn-1 + …… + a1x + a0 = Σi=0 n-1 aixi 

可以由n个二进制系数(an-1,an-2,……,a1,a0)系数表达法唯一的表达。因此,多项式可以表示成一个n位的二进制整数。

加法可以由异或得到,乘法一般的,在GF(2n)上的对于n次多项式p(x),有 xn mod p(x) = p(x) - xn

7.5 生成元

1、阶为q的有限域F的生成元是一个元素g,即域F的元素为0,g0,g1,g2,……,gq-2。考虑到由多项式f(x)定义的域F,如果F内的一个元素b满足f(b)=0,则称b为多项式f(x)的跟。

一个不可约多项式的根g是这个不可约多项式定义的有限域的生成元。

举个栗子,这里还蛮难理解的。

构造一个有限域GF(23),需要选择一个3次既约多项式,x+ x + 1。设生成元为g,则g满足f(g) = g3 + g + 1 = 0。因此,方程解满足 g3  = -g - 1 = g + 1。

g4 = g * g3 = g ( g + 1 ) = g2 + g

g5 = g * g4 = g ( g2 + g ) = g3 + g2 = g2 + g + 1

g6 = g * g5 = g ( g2 + g + 1 ) = g3 + g2 + g = g2 + g + g + 1 = g2 + 1

g7 = g * g6 = g ( g2 + 1 ) = g3 + g = g + g + 1 = g0

g的幂产生了GF(23)所有的非0多项式。同样的,对所有k,有gk = gk mod 7

幂表示 多项式表示 二进制表示 十六进制表示
0 0 000 0
g0 1 001 1
g g 010 2
g2 g2 100 4
 g3 g + 1 011 3
g4 g2 + g 110 6
g5 g2 + g + 1 111 7
g6 g2 + 1 101 5
posted @ 2022-03-28 22:33  吉吉的奥利奥  阅读(1048)  评论(0编辑  收藏  举报