伽罗华域(有限域)及其运算规则(包含大量例子)
模运算
除法定理
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=qn+ra=qn+ra=qn+r。称q=⌊a/n⌋q=\left \lfloor a/n \right \rfloorq=⌊a/n⌋为除法的商,⌊⌋\lfloor \rfloor⌊⌋表示向下取整, r≡amodnr\equiv a \mod nr≡amodn为除法的余数。
简单例子
19mod11≡8mod1119\mod 11\equiv 8\mod1119mod11≡8mod11
−7mod11≡4mod11-7 \mod 11\equiv 4\mod11−7mod11≡4mod11
模运算的好处:一些程序进行线性运算的时候,由于存储空间大小是固定的,可能存在结果溢出的情况,模运算可以将xxx结果始终确定在一个范围即{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,⊕)是集合SSS和二元运算符⊕\oplus⊕组成,顾名思义群中的元素个数是有限的。对于该运算应该满足以下性质:
- 封闭性:对于任意a,b∈Sa,b\in Sa,b∈S,有a⊕b∈Sa\oplus b \in Sa⊕b∈S。
- 单位元:存在一个元素e∈Se \in Se∈S,称eee为单位元,对所有a∈Sa\in Sa∈S,满足e⊕a=a⊕e=ae \oplus a=a\oplus e = ae⊕a=a⊕e=a。
- 结合律:对任意a,b,c∈Sa,b,c\in Sa,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∈Sa\in Sa∈S,存在b∈Sb\in Sb∈S,满足a⊕b=b⊕a=ea\oplus b=b\oplus a=ea⊕b=b⊕a=e。
模n加法群
定义群(Zn,+n)(\mathbb{Z}_n,+_n)(Zn,+n),其中Zn={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+nb=a+bmodna+_n b = a+b\mod na+nb=a+bmodn,群(Z5,+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乘法群
定义群(Zn∗,⋅n)(\mathbb{Z}_n^*,\cdot_n)(Zn∗,⋅n),其中Zn∗={x∈Zn∣gcd(a,n)=1}\mathbb{Z}^*_n=\{x\in \mathbb{Z}_n|gcd(a,n)=1\}Zn∗={x∈Zn∣gcd(a,n)=1},gcd(a,n)gcd(a,n)gcd(a,n)表示求a和n的最大公因数,若两数的最大公因数为1则两个数互素,⋅n\cdot_n⋅n指在模n上的乘法,即a⋅nb=a⋅bmodna \cdot_nb=a\cdot b \mod na⋅nb=a⋅bmodn,群(Z8∗,⋅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 |
注意Z8∗={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并不互素。
构造(Z8,⋅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 |
该运算并不存在逆元,因而不能构成群。
当nnn取素数时,Zn∗={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 |
异或群
定义群(Zn,⊕)(\mathbb{Z}_n,\oplus)(Zn,⊕),其中Zn={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⊕指异或运算,群(Z4,⊕)(\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以外的每个元素要求要有对应的乘法逆元。关于群、环、域的概念进一步了解可阅读这篇博客。
伽罗华域GF(q)GF(q)GF(q)表示
qqq指有限域的阶,在有限域中阶等于元素个数,有限域的阶通常是素数PPP或是素数幂PWP^WPW,即q=P或PWq = P 或P^Wq=P或PW。
有限域GF(P)GF(P)GF(P)
GF(P)GF(P)GF(P)被称为P阶素数域,PPP为素数。运算元素的集合为Zp\mathbb{Z}_pZp,加法和乘法运算要在模p上进行,即此时的加法和乘法运算分别为+p,⋅p+_p,\cdot _p+p,⋅p。在GF(P)GF(P)GF(P)上a≡bmodPa\equiv b \mod Pa≡bmodP与a=b相同,这意味着a=b→a=kn+b,k∈Za = b \to a=kn+b,k \in \mathbb{Z}a=b→a=kn+b,k∈Z。当PPP为素数时,显然所有大于0小于p的整数和是互素的,根据上面介绍的模n乘法群的概念,显然除去0以外,每个元素都能找到其逆元。
对于GF(2)GF(2)GF(2),仅包含了元素0和1,加法表为
+ | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0(1+1=2mod2≡0mod2)0 \ (1+1 =2 \mod 2\equiv 0 \mod 2)0 (1+1=2mod2≡0mod2) |
乘法表为
⋅\cdot⋅ | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
有限域GF(Pw)GF(P^w)GF(Pw)
当n>1n>1n>1时,GF(Pw)GF(P^w)GF(Pw)可以表示为系数属于GF(P)GF(P)GF(P)等价域上的多项式,www表示多项式不能超过的阶。举个栗子,对于GF(34)GF(3^4)GF(34),来说其包含了多项式0,1,2,x+1,x+2,2x,2x+1,2x+2,x2+x,x2+x+1,⋯,2x3+2x2+2x+20,1,2,x+1,x+2,2x,2x+1,2x+2,x^2+x, x^2+x+1,\cdots,2x^3+2x^2+2x+20,1,2,x+1,x+2,2x,2x+1,2x+2,x2+x,x2+x+1,⋯,2x3+2x2+2x+2,即多项式系数为0,1,2,此时w=4w=4w=4,多项式阶数不能超过4,符合这两个条件的多项式个数为PwP^wPw,注意这里的有限域的集合中的元素可以看成多项式,即加法和乘法是指多项式的加法和乘法,特殊之处在于对于计算后的各项系数需要取模PPP,同时对整体还需要取模f(x)f(x)f(x)。参考GF(P)GF(P)GF(P)的取模方法,这里取的模f(x)f(x)f(x)也应该是多项式,关于多项式的运算规则可以查看这篇博客。接下来我会举出大量栗子帮助理解。
对于GF(23)GF(2^3)GF(23),其包含了元素有8个分别为0,1,x,x+1,x2,x2+1,x2+x,x2+x+10,1,x,x+1,x^2,x^2+1,x^2+x,x^2+x+10,1,x,x+1,x2,x2+1,x2+x,x2+x+1
其可取的模为x3+x2+1x^3+x^2+1x3+x2+1,x3+x+1x^3+x+1x3+x+1
在有限域GF(2w)GF(2^w)GF(2w)中,需要对多项式各项系数取模2
(x+1)2=x2+2x+1≡x2+1(x+1)^2=x^2+2x+1\equiv x^2+1(x+1)2=x2+2x+1≡x2+1
3x2−x−1≡x2+x+13x^2-x-1\equiv x^2+x+13x2−x−1≡x2+x+1
(x+1)3=x3+3x2+3x+1≡x3+x2+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
在有限域GF(3w)GF(3^w)GF(3w)中,需要对多项式各项系数取模3
(x+1)2≡x2+2x+1(x+1)^2\equiv x^2+2x+1(x+1)2≡x2+2x+1
3x2−x−1≡2x+23x^2-x-1\equiv 2x+23x2−x−1≡2x+2
(x+1)3≡x3+1(x+1)^3\equiv x^3+1(x+1)3≡x3+1
接下来需要进行取模,模为f(x)f(x)f(x),这个模等同于不可约多项式或是本原多项式,本原多项式是不可约多项式的特例,即在不可约多项式中除去最高阶的项,剩余项的阶最小那个多项式定义为本原多项式。希望对不可约多项式和本原多项式有更多了解的,可以参考这篇博客。对于GF(23)GF(2^3)GF(23),模可以取x3+x2+1x^3+x^2+1x3+x2+1或x3+x+1x^3+x+1x3+x+1,这两个多项式也就是阶为3的不可约多项式。
再列举几个计算案例
在GF(23)GF(2^3)GF(23),模取x3+x+1x^3+x+1x3+x+1 ,计算4x5+3x3+1modx3+x+14x^5+3x^3+1 \mod x^3+x+14x5+3x3+1modx3+x+1
回想整数除法11/5=2余111/5=2余111/5=2余1,11≡1mod511\equiv 1\mod 511≡1mod5
(4x5+3x3+1)x3+x+1=4x2−1+−4x2+x+2x3+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
那这里余项为−4x2+x+2-4x^2+x+2−4x2+x+2,即4x5+3x3+1modx3+x+1≡−4x2+x+2modx3+x+1(注意这里是对各项系数取模2,与多项式的模无关)≡xmodx3+x+14x^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+14x5+3x3+1modx3+x+1≡−4x2+x+2modx3+x+1(注意这里是对各项系数取模2,与多项式的模无关)≡xmodx3+x+1
或者先对4x5+3x3+14x^5+3x^3+14x5+3x3+1系数先取模2,即4x5+3x3+1=x3+14x^5+3x^3+1=x^3+14x5+3x3+1=x3+1
x3+1x3+x+1=1+−xx3+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,结果为xxx。
再举一个例子
(1+2m)x2+(1+2n)x≡x2+xmodx3+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∈Zm,n\in \mathbb{Z}m,n∈Z
幂 | 多项式 模为x3+x2+1x^3+x^2+1x3+x2+1 | 二进制 模为x3+x2+1x^3+x^2+1x3+x2+1 | 多项式 模为x3+x+1x^3+x+1x3+x+1 | 二进制 模为x3+x+1x^3+x+1x3+x+1 |
---|---|---|---|---|
0 | 0 | 000 | 0 | 000 |
x0x^0x0 | 1 | 001 | 0 | 001 |
x1x^1x1 | xxx | 010 | 2 | 010 |
x2x^2x2 | x2x^2x2 | 100 | x2x^2x2 | 100 |
x3x^3x3 | x2+1x^2+1x2+1 | 101 | x+1x+1x+1 | 011 |
x4x^4x4 | x2x^2x2 | 100 | x2+xx^2+xx2+x | 110 |
伽罗华域(有限域)及其运算规则(包含大量例子)相关推荐
- 伽罗华域(Galois Field)有限域元素生成和运算原理
存储编码,矩阵等之间的运算都是在伽罗华域(Galois Field,GF,有限域)上进行的,所以要实现底层的运算库,必须了解 GF 上的运算规则. 域: 一组元素的集合,以及在集合上的四则运算,构成一 ...
- 有限域(Galois Field,GF,伽罗华域)的乘法原理
今天在打AES的代码,打到列混合变换的时候对有限域的乘法不是很熟悉,但是查了很多资料结合书本最后算是弄会了,分享一下自己的心得 这里是引用在密码学中经常用到有限域的乘法,一般在AES中用到的是GF(2 ...
- 伽罗华域(Galois Field,GF,有限域)
原文见链接DataMatrix 编码生成和译码原理即方法 原文见链接存储系统中的纠删码(Erasure Codes)-XOR 码和RS 码 原文见链接(讲的很好)Galois 域上的运算(规则) 原文 ...
- 伽罗华域(Galois Field, GF, 有限域)的四则运算
有限域的构造之常见本原多项式 伽罗华域(Galois Field,GF,有限域)乘法运算 伽罗华域(Galois Field)理解.基于伽罗华域的四则运算(附详细python代码)
- 伽罗华域(伽罗瓦域,Galois Field,GF,有限域)
原文见链接DataMatrix 编码生成和译码原理即方法 原文见链接存储系统中的纠删码(Erasure Codes)-XOR 码和RS 码 原文见链接(讲的很好)Galois 域上的运算(规则) 原文 ...
- 伽罗华域GF,GF(256)来源
Galois Field 1. 域 2. 域中单位元和逆元 3. 有限域GF(p)(p)(p) 4. 有限域GF(2p)(2^p)(2p) 4.1 有限域GF(2p)(2^p)(2p)的生成 4.2 ...
- c语言实现伽罗华域乘法器,伽罗华域运算及C语言实现
伽罗华域(Galois Field)简介 在数学中,有限域(或称伽罗华域)是一个包含有限元素的域.与其他域一样,有限域是进行加减乘除运算都有定义并且满足特定规则的集合.其中加法和乘法必须满足交换.结合 ...
- 伽罗华域上(Galois Field)上的四则运算-笔记
原网页:https://blog.csdn.net/shelldon/article/details/54729687 单位元:a∗e=e∗a=aa*e=e*a=aa∗e=e∗a=a 本原多项式:域中 ...
- 伽罗华域下的伪随机序列图像编码(一)
最近看了一篇TPAMI文章Determining Both Surface Position and Orientation in Structured-Light-Based Sensing ,是用 ...
- 伽罗华域(Galois Field)理解、基于伽罗华域的四则运算(附详细python代码)
参考链接:https://blog.csdn.net/luotuo44/article/details/41645597 参考链接:https://blog.csdn.net/shelldon/art ...
最新文章
- WF4.0 基础篇 (三) 流程实例WorkflowApplication与设计WF程序的基本原则
- web网站无法启动报错
- 江西理工大学c语言程序设计竞赛怎么备考,2015年江西理工大学C语言程序设计竞赛(高级组)...
- [BUUCTF-pwn]——others_shellcode
- linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
- 《AI技术人才成长路线图》:完整版PPT及要点解读
- OpenLDAP 2.4.44 安装 + phpLDAPadmin 安装
- 【机器学习】Andrew Ng——05Octave
- ORA-00704 ORA-00604 ORA-00942----惜分飞
- 数值积分方法的c语言实现,编程实现数值积分的几种--方法 c语言.doc
- 主题等.ppt及活动内容.ppt文档规范要求
- 2、Kmeans算法处理出租车数据
- idea调代码时返回到上一步的快捷键
- shell脚本中shift的用法
- 计算机指令定时关机,电脑使用命令设置定时关机
- 《我的眼睛--图灵识别》第四章:基础:图片识别
- 自定义android控件EditText边框背景
- Java新手入门200例122之通过Java反射操作成员变量,set 和 get
- 读完这本书打通了“数据化运营”的任督二脉
- 微信小程序制作简单的商品列表页,实现价格求和