新概念洋務軟件密碼學FHE之代数基础(一)群环域、多项式
ChrisChenFHE之代数基础(一)群环域、多项式
非原创声明
本篇blog大部分为参考下文所作,其中进阶部分为个人总结。
基础
代数系统
代数是数学的其中一门分支,主要由初等代数和抽象代数组成,初等代数学主要研究方程组,而抽象代数则是研究代数系统上的运算和公理。代数系统主要有两部分组成:
- 成分:运算及其载体,即运算和运算的对象
- 公理:运算性质,即交换律、结合律等算律
举例而言,小学中学习的1+2=3,其中运算就是加法(这里用+表示),加法运算的对象是1、2,由于加法运算需要两个运算对象,因此加法也是一种二元运算。很明显,1+2=2+1,因此运算对象可以交换在运算中的位置,因此满足交换律,这就是加法运算的基本算律。
其中公理是很好理解的,但代数系统的成分容易理解但不好表达,下面从中抽象出一些共性,并用数学语言进行概况有:
- 运算对象:用集合表示运算对象和运算的结果,比如集合A、B、X、Y等
- 运算:用+,−,×,⋅,∘等运算符号表示运算,它们不具有任何一种运算,仅仅是一种符号表示。
因此我们可以给出一些运算的定义:
- n元运算的数学定义:给定集合A1,A2,...,An和集合B,那么映射f:A1×A2×...×An→B即表示一个n元运算。
笛卡尔乘积 上述的A1×A2×...×An称为笛卡尔乘积,其是由基本集合A1,A2,...,An共同构成的集合,该集合中的任意元素是一个n元组(a1,a2,...,an),∀ai∈Ai。典型地,直角坐标系(x,y)就是一个二元组。
根据运算所需的运算对象的个数,运算称为0元运算、一元运算、二元运算等。
集合 |
二元运算 |
一元运算 |
0元运算 |
整数Z,有理数Q,实数 |
+,× |
−(取相反数) |
0,1 |
n阶实数矩阵Mn(R) |
+,× |
AT(取转置矩阵) |
单位矩阵E |
集合组成的集合P(B) |
∪,∩ |
Sc(取补集) |
取空集⊘ |
而讨论最多的就是下面的一种二元运算:
- 集合A上的运算:设A为集合,称二元运算f:A×A→A为集合A上的二元运算。进一步地,若A中任何元素都可参与运算,且结果属于集合A,那么称运算f是封闭的
设+,×是集合A上的二元运算,称为加法和乘法,那么有下面的运算规律和特异元素(指单位元和逆元):
- 交换律:若∀a,b∈A有a+b=b+a,则称有加法交换律,同理有乘法交换律
- 结合律:若∀a,b,c∈A有a+(b+c)=(a+b)+c,则称有加法结合律,同理有乘法结合律
- 消去律:若∀a,b,c∈A有a+b=a+c⇒b=c,则称有加法消去律,同理有乘法消去律
- 乘法对加法的分配律:若∀a,b,c∈A有a×(b+c)=a×b+a×c,则称乘法对加法具有分配律
- 单位元:单位元e满足e∈A,∀a∈A有a+e=e+a=a,则称有加法单位元,同理有乘法单位元
- 逆元:对于x∈A,∃y∈A使得x+y=e,则称有x有加法逆元y(y的加法逆元为x),同理有乘法逆元
值得注意的是,算律、单位元和逆元是针对运算来说的,如果代数结构中有多种运算,那么对于不同的运算可能就有不同的运算规律和单位元和逆元。
加法和乘法 理解文章中提及的加法和乘法不是通常意义上的加减乘除中的加法和乘法,而是一般性的算术符号,用+,×表示只是为了方便,用⋅,∘等符号表示同样没有问题。在近世代数的学习中切忌利用熟知的数学知识来思考群环域的构成,在群环域中的运算符仅仅是一些满足一些算律的符号,而不是特定的算术符号。
下面就基于上述概念介绍群环域等基本概念。
群、环、域基本概念
群
群(Groups)是一种具有一个二元运算的代数系统,通常记作<G,∘>,简记为G,其满足以下条件:
- 封闭性:∀a,b∈G,都有a∘b∈G
- 结合律:∀a,b,c∈G,都有a∘(b∘c)=(a∘b)∘c
- 单位元:∃e∈G使得a∈G,有a∘e=e∘a=a,单位元也称幺元
- 逆元:∀a∈G,a都存在一个逆元a−1使得a∘a−1=e
由于有逆元,因此群也满足消去律。举个例子,整数集合上的加法运算构成的代数系统<Z,+>就是一个群,因为整数和整数相加也是整数,整数加法满足结合律,其单位元为0,任意元素的逆元是其相反数。
进一步地,在群的基础上,如果增加一些条件那么就可以形成具有更多良好性质的群。
- 半群:若<G,∘>只满足封闭性和结合律,那么<G,∘>是一个半群
- 含幺半群:若<G,∘>只满足封闭性、结合律和单位元,那么<G,∘>是一个含幺半群(也称幺半群)
- 有限群和无限群:若一个群的元素是有限的,则该群称为有限群,并且群的阶等于群中元素的个数,否则称该群为无限群。
- 交换群:若对于群中任意运算还满足交换律,那么该群称为交换群
- 循环群:记群中的幂运算an=a∘a∘...∘a(n个a相乘),且有a0=e,a−n=(a−1)n,那么如果群G中的每个元素都是有一个固定元素a∈G的幂,那么称群G是循环群
显然循环群是交换群,但循环群可能是有限群,也可能是无限群。
环
环(Rings)是一个具有两个二元运算(通常称为加法和乘法)的代数系统,常记作<R,+,×>,简记为R,其满足以下条件:
- <R,+>是加法交换群,此时用0表示其加法单位元,−a表示环中元素a的加法逆元
- <R,×>是半群
- 乘法对加法具有分配律:∀a,b,c∈R有a×(b+c)=a×b+a×c
由于加法一定有逆元,因此通过加法可以定义减法:a−b=a+(−b),同时若不会引起歧义,那么环中的乘法a×b也可记为ab。进一步地,如果环还满足其他性质,那么可以形成具有更多性质的环:
(Z,+,⋅)是交换环
域
域(Fields)也是一个具有两个二元运算(通常称为加法和乘法)的代数系统,常记作<F,+,×>,简记为F,其满足以下条件:
- <F,+>是加法交换群,此时用0表示其加法单位元,−a表示环中元素a的加法逆元
- <F∗,×>是乘法交换群,其中F∗包括F中的所有非零元素,F∗=F−{0},此时用1表示乘法单位元,a−1表示元素a(a=0)的乘法逆元
- 乘法对加法具有分配律:∀a,b,c∈R有a×(b+c)=a×b+a×c
有理数集、无理数集以及复数集是我们熟悉的代数系统,它们在普通的加法和乘法两种运算下都构成域。
- 域是有单位元的交换环
- 域一定是整环,整环不一定是域
- 整数环Z不是域
- 具有有限个元素的整环是域
- 具有有限个元素的域称为有限域
小结
可以看到群是最基础的代数结构,而环是由加法交换群和乘法半群构成的,进一步地,域是由加法交换群和乘法交换群(除0以外)构成的。
读者可能会问,群、环和域有什么用?下面举一个简单的例子来说明。假如在研究下表所示的集合S={a,b}上的代数结构,其加法和乘法的定义如下(用算术表表示):
如果在集合S上可不可以用减法,加法和乘法有没有交换律等是需要的回答的问题,那么此时如果发现<S,+,×>是环,那么一切都迎刃而解了。
另外,由于不是所有常见的运算都可以有加、减、乘、除、乘方、开方等运算,那么在遇到一个新的结构时,如果赋予它们一些好的性质是很重要的,比如学习矩阵运算时,加法是需要自己定义的,乘法是自己定义的,由此会发现矩阵加法满足交换律,但是矩阵乘法不满足,实际上会发现n阶实数矩阵对于加法和乘法构成环,那么n阶实数矩阵上的运算就可以利用许多环的运算了。
由此得出一个结论:
- 群环域没有定义哪一种代数结构,而是定义了一类代数结构,数学工作者只需要研究这一类代数结构的共性。当某种特定的代数结构满足群、环、域的条件时,那么该代数结构自然而然地具备群、环、域的良好性质。
下图总结了群、环、域的基本性质,这里是按照群、环、域满足的条件来介绍的。
进阶
环的拓展概念
剩余类(同余类)环
设Zq={0,1,⋯,q−1}是整数模q的同余类集合。
- 加法:模q加法,a+b=a+b
- 乘法:模q乘法,a⋅b=ab
显然,(Zq,+,⋅)是有单位元的交换环,称为整数模q的同余类(或剩余类)环
-
(Zq,+,⋅)构成交换环
-
(Zq,+,⋅)是域的充要条件为q是素数
子环
若S为环R的一个非空子集,且S关于R的运算构成环,则称S为R的一个子环,R为S的一个扩环。
S为R的子环的充要条件为:
∀a,b∈S,a+b∈S,ab∈S
理想
设I为环R的非空子集,若I满足:
- ∀r1,r2∈I,r1+r2∈I
- ∀r∈I,s∈R,sr∈I,rs∈I
则称I为R的一个理想(ideal)
例:
- ∀m∈Z,I={mn∣n∈Z}是Z的理想
- 数环R上的多项式环R[x]中,令I表示一切常数项为0的多项式集合,即I={a1x+a2x2+⋯+anxn∣ai∈R,n∈N},则I为多项式环R[x]的一个理想。
商环
若I是环R的一个理想
记a=a+I={a+x∣x∈I},R/I={a∣a∈R}
则(R/I,+,⋅)是一个环,称其为R关于I的商环,或R模I的同余类环
例:
Z/I={0+I,1+I,2+I,3+I}
环同态
设R和S是两个环,若∃φ:R→S:r↦φ(r),满足:
- ∀r1,r2∈R,φ(r1+r2)=φ(r1)+φ(r2)
- ∀r1,r2∈R,φ(r1r2)=φ(r1)φ(r2)
则称φ是R到S的一个环同态(ring homomorphism)
环同构
若环同态中的φ是一个双射,则称φ是R到S的一个环同构(ring isomorphism),并称两个环是同构的,记为R≅S。
若φ:R→R为同构映射,则称φ是一个R到R的自同构(automorphism)
高级
有限域
若 域中元素个数(称为域的阶) 有限,则称该域为有限域,否则称为无限域
有限域通常记作GF(qn),符号G是为了纪念群论的创立者Galois,符号F是域Fields,因此有限域称为Galois域。
构造
当q为素数时,同余类环<Zq,⊕q,⊗q>,为一个有限域。
-
模q加法:通常用⊕q表示,a⊕qb=(a+b)modq
-
模q乘法:通常用⊗q表示,a⊗qb=(a×b)modq
-
n=1时的有限域GF(q),由上面的讨论可以很容易构造该有限域
-
n>1时的有限域GF(qn),其中GF(2n)在密码学中有重要的应用
多项式环
环上的多项式环
记a0,a1,⋯,an∈R,则称形如f(x)=anxn+an−1xn−1+...+a1x+a0=∑i=0naixi的表达式为R上多项式。环R上所有关于x的多项式构成的集合记为R[x]
此时(R[x],+,⋅)称为环R上的多项式环。
例:在同余类环Z7上定义多项式f(x),g(x):
f(x)f(x)+g(x)f(x)−g(x)f(x)∗g(x)=2x2+3x+4,g(x)=3x2+5x+2=((2+3)mod7)x2+((3+5)mod7)x+((4+2)mod7)=5x2+x+6=((2−3)mod7)x2+((3−5)mod7)x+((4−2)mod7)=6x2+5x+2=(6mod7)x4+(19mod7)x3+(31mod7)x2+(26mod7)x+(8mod7)=6x4+5x3+3x2+5x+1
域上的多项式环
当以上环R为一个域时,称R[x]为域上多项式环,记为F[x]。
我们一般只研究有限域上的多项式环。设有限域GF(q),其上有集合Zq={0,1,2,...,q−1},定义在Zq上的多项式有
f(x)=an−1xn−1+...+a1x+a0=∑i=0naixi∀i∈{0,1,2,...,n−1},ai∈Zq
设集合S是所有定义在Zq上的多项式集合,即
S={f(x)∣f(x)=an−1xn−1+...+a1x+a0=∑i=0naixi∀i∈{0,1,2,...,n−1},ai∈Zq}
可知集合S中共有qn个元素,其包含了所有次数小于n次的多项式。
例:
q=2,n=3则有集合S有23=8个元素
S={0,1,x,x+1,x2,x2+1,x2+x,x2+x+1}
特别地,我们还会研究有限域上的多项式商环:
在有限域GF上的多项式环F(x)中,对∀f(x)∈F[x],有I={g(x)f(x)∣g(x)∈F[x]}为F[x]的理想。
在有限域GF上的多项式环F(x)中,f(x)=an−1xn−1+...+a1x+a0=∑i=0naixi∀i∈{0,1,2,...,n−1}∈F[x],I={f(x)},则F[x]/I=F[x]/f(x)={∑i=0nbixi+I∣b0,b1,⋯,bn−1∈F}
称为有限域上的多项式商环。
多项式的带余除法
对于域F中的n次多项式f(x)和m次多项式g(x)(m≤n),则用g(x)除f(x)会得到一个商式q(x)和一个余式r(x),其满足
f(x)=q(x)g(x)+r(x)∂(f(x))=n,∂(g(x))=m,∂(q(x))=n−m,0≤∂(r(x))≤m−1
其中∂(f(x))=n表示f(x)的最高次数为n(即f(x)中x的最高次幂为n)。
通常将余式r(x)记作r(x)=f(x)modg(x),若余式为0则称g(x)整除f(x)。
例:
f(x)=2x2+3x+4,g(x)=3x2+5x+2
f(x)/g(x)⇒f(x)=q(x)g(x)+r(x)⇒(2x2+3x+4)=3(3x2+5x+2)+(2x+5)
既约多项式
若域F中多项式f(x)不能表示域F上任两个多项式g1(x)和g2(x)的乘积(g1(x)和g2(x)在域F中,且次数都小于f(x)的次数),那么称多项式f(x)为既约多项式,也称不可约多项式、素多项式。
该概念类似整环中素数的概念。
多项式的模运算
针对域上的多项式商环而言。
- 运算中,系数运算以q为模数,即遵循有限域Zq上的运算规则
- 若乘法运算的结果是次数大于n-1的多项式,那么须将其除以某个次数为n的既约多项式m(x)并取余式。对于多项式f(x),这个余数表示为r(x)=f(x) mod m(x)
考虑有限域Z2,在其上定义多项式商环Z2(x)/(x8+x4+x3+x+1)
则m(x)=x8+x4+x3+x+1。考虑多项式f(x)=x6+x4+x2+x+1,g(x)=x7+x+1,则其加法和乘法有:
f(x)+g(x)f(x)×g(x)=(x6+x4+x2+x+1)+(x7+x+1)=x7+x6+x4+x2=(x6+x4+x2+x+1)×(x7+x+1)mod(x8+x4+x3+x+1)=x7+x6+1
良好性质
以Z3[x]/(x3+x+1)为例,其加法和乘法的运算表如图所示。可以发现以下特点:
- 阴影部分的0表示多项式f(x)的加法逆元就是多项式f(x)本身,比如多项式x+1的加法逆元就是x+1
- 阴影部分的1表示任一多项式f(x)都存在乘法逆元,比如x的乘法逆元为x2+1,因为(x×(x2+1))mod(x3+x+1)=1
- 无论是加法运算表,还是乘法运算表,其每一行的结果均不相同、每一列的结果也均不相同,而且每一行的结果组成的集合、每一列的结果组成的集合都等于集合S