大家好,欢迎来到IT知识分享网。
模运算
除法定理
Z = { ⋯ , − 1 , 0 , 1 , ⋯ } \mathbb{Z}=\{\cdots,-1,0,1,\cdots\} Z={
⋯,−1,0,1,⋯}为整数集,对任何整数a和任何正整数n存在唯一整数q和r,满足 { r : 0 ≤ r < n , r ∈ Z } \{r:0\le r<n,r\in \mathbb{Z}\} {
r:0≤r<n,r∈Z},且 a = q n + r a=qn+r a=qn+r。称 q = ⌊ a / n ⌋ q=\left \lfloor a/n \right \rfloor q=⌊a/n⌋为除法的商, ⌊ ⌋ \lfloor \rfloor ⌊⌋表示向下取整, r ≡ a m o d n r\equiv a \mod n r≡amodn为除法的余数。
简单例子
19 m o d 11 ≡ 8 m o d 11 19\mod 11\equiv 8\mod11 19mod11≡8mod11
− 7 m o d 11 ≡ 4 m o d 11 -7 \mod 11\equiv 4\mod11 −7mod11≡4mod11
模运算的好处:一些程序进行线性运算的时候,由于存储空间大小是固定的,可能存在结果溢出的情况,模运算可以将 x x x结果始终确定在一个范围即 { x : 0 ≤ x < n , x ∈ Z } \{x:0\le x<n,x\in \mathbb{Z}\} {
x:0≤x<n,x∈Z}内,从而避免溢出。
有限群
群 ( S , ⊕ ) (S,\oplus ) (S,⊕)是集合 S S S和二元运算符 ⊕ \oplus ⊕组成,顾名思义群中的元素个数是有限的。对于该运算应该满足以下性质:
- 封闭性:对于任意 a , b ∈ S a,b\in S a,b∈S,有 a ⊕ b ∈ S a\oplus b \in S a⊕b∈S。
- 单位元:存在一个元素 e ∈ S e \in S e∈S,称 e e e为单位元,对所有 a ∈ S a\in S a∈S,满足 e ⊕ a = a ⊕ e = a e \oplus a=a\oplus e = a e⊕a=a⊕e=a。
- 结合律:对任意 a , b , c ∈ S a,b,c\in S a,b,c∈S,有 ( a ⊕ b ) ⊕ c = a ⊕ ( b ⊕ c ) (a\oplus b)\oplus c=a\oplus(b\oplus c) (a⊕b)⊕c=a⊕(b⊕c)。
- 逆元:对任意 a ∈ S a\in S a∈S,存在 b ∈ S b\in S b∈S,满足 a ⊕ b = b ⊕ a = e a\oplus b=b\oplus a=e a⊕b=b⊕a=e。
模n加法群
定义群 ( Z n , + n ) (\mathbb{Z}_n,+_n) (Zn,+n),其中 Z n = { x ∣ 0 ≤ x < n , x ∈ Z } \mathbb{Z}_n=\{x|0\le x<n,x\in\mathbb{Z}\} Zn={
x∣0≤x<n,x∈Z}, + n +_n +n指在模n上的加法,即 a + n b = a + b m o d n a+_n b = a+b\mod n a+nb=a+bmodn,群 ( Z 5 , + 5 ) (\mathbb{Z}_5,+_5) (Z5,+5)的运算表为
+ 5 +_5 +5 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
0 | 0 | 1 | 2 | 3 | 4 |
1 | 1 | 2 | 3 | 4 | 0 |
2 | 2 | 3 | 4 | 0 | 1 |
3 | 3 | 4 | 0 | 1 | 2 |
4 | 4 | 0 | 1 | 2 | 3 |
在该群中单位元为0,0的逆元为0,1的逆元为4。
模n乘法群
定义群 ( Z n ∗ , ⋅ n ) (\mathbb{Z}_n^*,\cdot_n) (Zn∗,⋅n),其中 Z n ∗ = { x ∈ Z n ∣ g c d ( a , n ) = 1 } \mathbb{Z}^*_n=\{x\in \mathbb{Z}_n|gcd(a,n)=1\} Zn∗={
x∈Zn∣gcd(a,n)=1}, g c d ( a , n ) gcd(a,n) gcd(a,n)表示求a和n的最大公因数,若两数的最大公因数为1则两个数互素, ⋅ n \cdot_n ⋅n指在模n上的乘法,即 a ⋅ n b = a ⋅ b m o d n a \cdot_nb=a\cdot b \mod n a⋅nb=a⋅bmodn,群 ( Z 8 ∗ , ⋅ 8 ) (\mathbb{Z}_8^*,\cdot_8) (Z8∗,⋅8)的运算表为
⋅ 8 \cdot_8 ⋅8 | 1 | 3 | 5 | 7 |
---|---|---|---|---|
1 | 1 | 3 | 5 | 7 |
3 | 3 | 1 | 7 | 5 |
5 | 5 | 7 | 1 | 3 |
7 | 7 | 5 | 3 | 1 |
注意 Z 8 ∗ = { 1 , 3 , 5 , 7 } ≠ { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } \mathbb{Z}_8^*=\{1,3,5,7\}\ne\{0,1,2,3,4,5,6,7\} Z8∗={
1,3,5,7}={
0,1,2,3,4,5,6,7},因为0,2,4,6和8并不互素。
构造 ( Z 8 , ⋅ 8 ) (\mathbb{Z}_8,\cdot_8) (Z8,⋅8)的运算表如下
⋅ 8 \cdot_8 ⋅8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
2 | 0 | 2 | 4 | 6 | 0 | 2 | 4 | 6 |
3 | 0 | 3 | 6 | 1 | 4 | 7 | 2 | 5 |
4 | 0 | 4 | 0 | 4 | 0 | 4 | 0 | 4 |
5 | 0 | 5 | 2 | 7 | 4 | 1 | 6 | 3 |
6 | 0 | 6 | 4 | 2 | 0 | 6 | 4 | 2 |
7 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
该运算并不存在逆元,因而不能构成群。
当 n n n取素数时, Z n ∗ = { 1 , 2 , … , n − 1 } \mathbb{Z}^*_n=\{1,2,\dots,n-1\} Zn∗={
1,2,…,n−1},因为n必然与比其小的所有数互素。
⋅ 5 \cdot_5 ⋅5 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
1 | 1 | 2 | 3 | 4 |
2 | 2 | 4 | 1 | 3 |
3 | 3 | 1 | 4 | 2 |
4 | 4 | 3 | 2 | 1 |
异或群
定义群 ( Z n , ⊕ ) (\mathbb{Z}_n,\oplus) (Zn,⊕),其中 Z n = { x ∣ 0 ≤ x < n , x ∈ Z } \mathbb{Z}_n=\{x|0\le x<n,x\in\mathbb{Z}\} Zn={
x∣0≤x<n,x∈Z}, ⊕ \oplus ⊕指异或运算,群 ( Z 4 , ⊕ ) (\mathbb{Z}_4,\oplus) (Z4,⊕)的运算表为
⊕ \oplus ⊕ | 0 | 1 | 2 | 3 |
---|---|---|---|---|
0 | 0 | 1 | 2 | 3 |
1 | 1 | 0 | 3 | 2 |
2 | 2 | 3 | 0 | 1 |
3 | 3 | 2 | 1 | 0 |
显然此时,单位元为0,任何元素的逆元为其自身。
伽罗华域
伽罗华域也称为有限域,域 ( R , + , − , ⋅ , ÷ ) (R,+,-,\cdot,\div) (R,+,−,⋅,÷)由运算元素集合和四则运算组成,由于减法、除法分别和加法、乘法是逆运算关系,只需要关注加法和乘法即可。对于加法来说,每个元素要求有对应的加法逆元;对于乘法来说,除0以外的每个元素要求要有对应的乘法逆元。关于群、环、域的概念进一步了解可阅读这篇博客。
伽罗华域 G F ( q ) GF(q) GF(q)表示
q q q指有限域的阶,在有限域中阶等于元素个数,有限域的阶通常是素数 P P P或是素数幂 P W P^W PW,即 q = P 或 P W q = P 或P^W q=P或PW。
有限域 G F ( P ) GF(P) GF(P)
G F ( P ) GF(P) GF(P)被称为P阶素数域, P P P为素数。运算元素的集合为 Z p \mathbb{Z}_p Zp,加法和乘法运算要在模p上进行,即此时的加法和乘法运算分别为 + p , ⋅ p +_p,\cdot _p +p,⋅p。在 G F ( P ) GF(P) GF(P)上 a ≡ b m o d P a\equiv b \mod P a≡bmodP与a=b相同,这意味着 a = b → a = k n + b , k ∈ Z a = b \to a=kn+b,k \in \mathbb{Z} a=b→a=kn+b,k∈Z。当 P P P为素数时,显然所有大于0小于p的整数和是互素的,根据上面介绍的模n乘法群的概念,显然除去0以外,每个元素都能找到其逆元。
对于 G F ( 2 ) GF(2) GF(2),仅包含了元素0和1,加法表为
+ | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 ( 1 + 1 = 2 m o d 2 ≡ 0 m o d 2 ) 0 \ (1+1 =2 \mod 2\equiv 0 \mod 2) 0 (1+1=2mod2≡0mod2) |
乘法表为
⋅ \cdot ⋅ | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
有限域 G F ( P w ) GF(P^w) GF(Pw)
当 n > 1 n>1 n>1时, G F ( P w ) GF(P^w) GF(Pw)可以表示为系数属于 G F ( P ) GF(P) GF(P)域上的多项式, w w w表示多项式不能超过的阶。举个栗子,对于 G F ( 3 4 ) GF(3^4) GF(34),来说其包含了多项式 0 , 1 , 2 , x + 1 , x + 2 , 2 x , 2 x + 1 , 2 x + 2 , x 2 + x , x 2 + x + 1 , ⋯ , 2 x 3 + 2 x 2 + 2 x + 2 0,1,2,x+1,x+2,2x,2x+1,2x+2,x^2+x, x^2+x+1,\cdots,2x^3+2x^2+2x+2 0,1,2,x+1,x+2,2x,2x+1,2x+2,x2+x,x2+x+1,⋯,2x3+2x2+2x+2,即多项式系数为0,1,2,此时 w = 4 w=4 w=4,多项式阶数不能超过4,符合这两个条件的多项式个数为 P w P^w Pw,注意这里的有限域的集合中的元素可以看成多项式,即加法和乘法是指多项式的加法和乘法,特殊之处在于对于计算后的各项系数需要取模 P P P,同时对整体还需要取模 f ( x ) f(x) f(x)。参考 G F ( P ) GF(P) GF(P)的取模方法,这里取的模 f ( x ) f(x) f(x)也应该是多项式,关于多项式的运算规则可以查看这篇博客。接下来我会举出大量栗子帮助理解。
对于 G F ( 2 3 ) GF(2^3) GF(23),其包含了元素有8个分别为 0 , 1 , x , x + 1 , x 2 , x 2 + 1 , x 2 + x , x 2 + x + 1 0,1,x,x+1,x^2,x^2+1,x^2+x,x^2+x+1 0,1,x,x+1,x2,x2+1,x2+x,x2+x+1, 一些文章中多项式会用二进制进行表示,即8个元素也可以对应表示为000,001,010,011,100,101,110,111。
其可取的模为 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1, x 3 + x + 1 x^3+x+1 x3+x+1,模同样也可用二进制表示1101,1011.
在有限域 G F ( 2 w ) GF(2^w) GF(2w)中,需要对多项式各项系数取模2
( x + 1 ) 2 = x 2 + 2 x + 1 ≡ x 2 + 1 (x+1)^2= x^2+2x+1\equiv x^2+1 (x+1)2=x2+2x+1≡x2+1,这里对 2 x 2x 2x的系数取模, 2 ≡ 0 m o d 2 2 \equiv 0 \mod 2 2≡0mod2
3 x 2 − x − 1 ≡ x 2 + x + 1 3x^2-x-1\equiv x^2+x+1 3x2−x−1≡x2+x+1,这里对 3 x 2 3x^2 3x2的系数取模, 3 ≡ 1 m o d 2 3 \equiv 1 \mod 2 3≡1mod2
( x + 1 ) 3 = x 3 + 3 x 2 + 3 x + 1 ≡ x 3 + x 2 + x + 1 (x+1)^3=x^3+3x^2+3x+1\equiv x^3+x^2+x+1 (x+1)3=x3+3x2+3x+1≡x3+x2+x+1
在有限域 G F ( 3 w ) GF(3^w) GF(3w)中,需要对多项式各项系数取模3
( x + 1 ) 2 = x 2 + 2 x + 1 ≡ x 2 + 2 x + 1 (x+1)^2=x^2+2x+1\equiv x^2+2x+1 (x+1)2=x2+2x+1≡x2+2x+1
3 x 2 − x − 1 ≡ 2 x + 2 3x^2-x-1\equiv 2x+2 3x2−x−1≡2x+2
( x + 1 ) 3 = x 3 + 3 x 2 + 3 x + 1 ≡ x 3 + 1 (x+1)^3=x^3+3x^2+3x+1 \equiv x^3+1 (x+1)3=x3+3x2+3x+1≡x3+1
接下来需要进行取模,模为 f ( x ) f(x) f(x),这个模等同于不可约多项式或是本原多项式,本原多项式是不可约多项式的特例,即在不可约多项式中除去最高阶的项,剩余项的阶最小那个多项式定义为本原多项式。希望对不可约多项式和本原多项式有更多了解的,可以参考这篇博客。对于 G F ( 2 3 ) GF(2^3) GF(23),模可以取 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1或 x 3 + x + 1 x^3+x+1 x3+x+1,这两个多项式也就是阶为3的不可约多项式。
再列举几个计算案例
在 G F ( 2 3 ) GF(2^3) GF(23),模取 x 3 + x + 1 x^3+x+1 x3+x+1 ,计算 4 x 5 + 3 x 3 + 1 m o d x 3 + x + 1 4x^5+3x^3+1 \mod x^3+x+1 4x5+3x3+1modx3+x+1
回想整数除法 11 / 5 = 2 余 1 11/5=2余1 11/5=2余1, 11 ≡ 1 m o d 5 11\equiv 1\mod 5 11≡1mod5
( 4 x 5 + 3 x 3 + 1 ) x 3 + x + 1 = 4 x 2 − 1 + − 4 x 2 + x + 2 x 3 + x + 1 \frac{\left(4x^5+3x^3+1\right)}{x^3+x+1}=4x^2-1+\frac{-4x^2+x+2}{x^3+x+1} x3+x+1(4x5+3x3+1)=4x2−1+x3+x+1−4x2+x+2
那这里余项为 − 4 x 2 + x + 2 -4x^2+x+2 −4x2+x+2,即 4 x 5 + 3 x 3 + 1 m o d x 3 + x + 1 ≡ − 4 x 2 + x + 2 m o d x 3 + x + 1 (注意这里是对各项系数取模 2 ,与多项式的模无关) ≡ x m o d x 3 + x + 1 4x^5+3x^3+1 \mod x^3+x+1 \equiv-4x^2+x+2\mod x^3+x+1(注意这里是对各项系数取模2,与多项式的模无关)\equiv x \mod x^3+x+1 4x5+3x3+1modx3+x+1≡−4x2+x+2modx3+x+1(注意这里是对各项系数取模2,与多项式的模无关)≡xmodx3+x+1
或者先对 4 x 5 + 3 x 3 + 1 4x^5+3x^3+1 4x5+3x3+1系数先取模2,即 4 x 5 + 3 x 3 + 1 = x 3 + 1 4x^5+3x^3+1=x^3+1 4x5+3x3+1=x3+1
x 3 + 1 x 3 + x + 1 = 1 + − x x 3 + x + 1 \frac{x^3+1}{x^3+x+1}=1+\frac{-x}{x^3+x+1} x3+x+1x3+1=1+x3+x+1−x,对余项 − x -x −x的系数 − 1 -1 −1取模2,结果为 x x x。
再举一个例子
( 1 + 2 m ) x 2 + ( 1 + 2 n ) x ≡ x 2 + x m o d x 3 + x + 1 (1+2m)x^2+(1+2n)x\equiv x^2+x \mod x^3+x+1 (1+2m)x2+(1+2n)x≡x2+xmodx3+x+1,其中 m , n ∈ Z m,n\in \mathbb{Z} m,n∈Z
幂 | 多项式表示(模为 x 3 + x 2 + 1 ) x^3+x^2+1) x3+x2+1) | 二进制表示(模为 x 3 + x 2 + 1 ) x^3+x^2+1) x3+x2+1) | 多项式表示(模为 x 3 + x + 1 ) x^3+x+1) x3+x+1) | 二进制(模为 x 3 + x + 1 x^3+x+1 x3+x+1) |
---|---|---|---|---|
0 | 0 | 000 | 0 | 000 |
x 0 x^0 x0 | 1 | 001 | 1 | 001 |
x 1 x^1 x1 | x x x | 010 | x x x | 010 |
x 2 x^2 x2 | x 2 x^2 x2 | 100 | x 2 x^2 x2 | 100 |
x 3 x^3 x3 | x 2 + 1 x^2+1 x2+1 | 101 | x + 1 x+1 x+1 | 011 |
x 4 x^4 x4 | x 2 x^2 x2 | 100 | x 2 + x x^2+x x2+x | 110 |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133942.html