应用密码学中的抽象代数基础

image
首先,一切的一切都是从群的概念引入的。群是一个最基本的代数结构,包括一个集合和一个运算\(\circ\),记作\((G,\circ)\)。这个运算要满足四个性质:运算封闭性、满足结合律、具有单位元、具有逆元。群的一个典型的例子就是整数集合上的加法群,单位元为0,对于每个整数a其逆元就是-a。

如果在群G中选取一些元素,在G的运算下仍够成一个群,那么这个群就是G的子群。有了子群,就可以引入陪集的概念了。设H是群G的一个子群,选择一个元素\(a\in G\),集合\(H\circ a={\{h\circ a|h\in H\}}\)称为H在G中的一个右陪集,简写为Ha;\(a\circ H={\{a\circ h|h\in H\}}\)称为H在G中的一个左陪集,简写为aH。若对于所有\(a\in G\),都有\(aH=Ha\),则称H是G的一个正规子群。

首先,我们可以将群划分为互不相交的子群,然后对H进行程度为a的平移得到陪集,对于不同的程度就可以得到一系列等价类,也就是说如果x和y属于同一个陪集,那么它们就具有等价关系。如果我们结合数论中的同余关系,将能够更好地理解陪集。比如我们选定一个子集\(H=\{6n|n\in Z\}\),运算为加法,那么a=1时,陪集\(a+H=\{...,-11,-5,1,7,13,...\}\),这个陪集中的元素模6的结果均为1,它们具有同余关系,也就具有了等价关系。

接下来引入商群的概念。若H是G的一个正规子群,则用\(G/H\)表示H在G中的所有陪集组成的集合\(\{aH|a\in G\}\),并定义乘法,称为G关于H的商群,那么为什么叫商群呢?首先我们观察集合\(\{aH|a\in G\}=\{aH,bH,...\}\),在这个集合的集合上可以定义一种陪集的乘法运算,\((aH)(bH)=a(Hb)H=a(bH)H=(ab)HH=(ab)H\),可以看到陪集的乘法满足封闭性,因此这是一个群。其次,当我们选定子群\(H=6Z=\{6n|n\in Z\}\)后,a=0,1,2,3,4,5这5种取值自然地将群G划分成6个不相交的等价类\(\{6n\},\{6n+1\},\{6n+2\},\{6n+3\},\{6n+4\},\{6n+5\}\),这也就是商群\(G/H\)的6个组成元素,如果“约去”了正规子群H(就好像做了商),就可以得到商群的代表元集\(\{0,1,2,3,4,5\}\)。从字面意义看代表元集更应该称为“商集”,但是由于商集用途更广泛,并且商群是同构于代表元集的,所以就这样命名了。

接着,我们开始讨论环和理想。环有加法和乘法两种运算,记作\((R,+,\cdot)\)。环是群的一个拓展,这么说是因为环关于加法是一个加法群,而关于乘法只需满足封闭性、交换律和分配律即可。一个重要的环是多项式环。设R是一个数环,\(R[x]\)表示系数属于R的所有x的多项式构成的集合,则R[x]关于多项式的乘法和加法构成一个环,称为R上未知量x的多项式环。

环有一种特殊的子环称为理想:设\(I\)是环R的一个子环,如果R中任意元素与I内元素相乘都属于I,即\(r\in R,x\in I \Rightarrow rx\in I,xr\in I\),则称\(I\)是R的一个理想。举个例子,子环\(6Z\)就是整数环\(Z\)的一个理想,因为任何数乘6的倍数仍然是6的倍数。一种特别的理想称为主理想:设\(J\)是R的一个理想,如果存在\(a\in R\)使得\(J=(a)\),那么(a)称为由a生成的主理想,也就是说主理想里面的所有元素都是a的倍数。

我们可以像商群一样定义商环的概念。商环\(R/I\):设R是一个环,\(I\)是R的理想。现在只关注加法,R是一个群,又因为理想的定义,所以I是R的一个正规子群,那么I在R中所有陪集\(r_i+I\)组成的\(R/I\)是一个商群(因为是关于加法的,所以称为加法商群)。在其之上定义乘法\((a+I)(b+I)=ab+I\)后,\(R/I\)是一个环,称为\(R\)关于理想\(I\)的商环。

我们会自然地想把商环的概念用到同余关系上,这样就可以对于同余关系利用商环的性质了,而这需要先定义剩余类环。首先介绍剩余类:设I是R的一个理想,定义R中元素的等价关系\(a\sim b\Leftrightarrow a-b\in I\),这种等价关系将R分成了若干互不相交的等价类的并,每个等价类叫做模\(I\)的剩余类,剩余类\([a]\)中的元素都有形式\(a+c,c\in I\)。剩余类环:商集\(Z_m=\{[0],[1],...,[m-1]\}\)关于加法运算\([a]+[b]=[a+b]\)和乘法运算\([a][b]=[ab]\)构成一个环,称为模m的剩余类环。在同余关系中,\([a]\)相当于所有模c为a的元素的集合,这些元素之间只差c的倍数,而\(I\)是c的倍数的集合。那么陪集\(r_i+I\)就是模c为\(r_i\)的元素的集合,也就是\([r_i]\),所以陪集们组成的集合\(R/I\)正是剩余类环。因此,在定义加法\((a+I)+(b+I)=(a+b)+I\)和乘法\((a+I)(b+I)=ab+I\)后,环R关于子环I的商环就等于剩余类环。

下面介绍更严格的环——域。域在环的基础上,还要求乘法满足交换律、有单位元、有逆元、无零因子,也就是说域关于加法和乘法都是交换群,乘法逆元这个条件使得域对于四则运算都是封闭的,有理数、实数、复数集合都属于域(当然整数集合只是环不是域,因为相除会得到分数)。域的一个重要的属性是域的特征:如果存在正整数p使得\(p\cdot 1=0\)(1是乘法单位元),那么把最小的p称为域的特征。域的特征p一定是0或素数,假设\(p=hk\),那么\(0=p\cdot 1=(h\cdot 1)(k\cdot 1)\),所以\(h\cdot 1=0\)或者\(k\cdot 1=0\),这与p最小矛盾。进一步,特征为p且有素数p个元素,形如\(\{0,e,2e,...,(p-1)e\}\)的域就称为素域。

元素数量有限的域称为有限域,也叫做伽罗华域(Galois Field,GF),有限域是一种在密码学中应用广泛的代数结构,所以我们主要对它进行研究。有限域由素域经过扩张而来,我们想象一个n维的向量空间,每个坐标轴都有p个刻度,那么总共形成的向量个数就是\(p^n\)个,这些向量就构成了一个阶数为\(p^n\)的有限域,这也是为什么有限域的阶一定是一个素数的幂次。

让我们放眼上面的数学概念于实际应用中。AES分组加密算法的的列混合变换中需要进行模一个8次多项式的操作,\(F_2[x]\)就是系数属于\(\{0,1\}\)的多项式的集合构成的环,设m(x)是\(F_2\)上的一个8次不可约多项式,(m(x))即m(x)生成的主理想,那么我们将商环\(F_2[x]/(m(x))\)类比上面简单的例子,就可以理解这个商环的意义:所有的二元系数多项式按照m(x)划分出的互不相交的集合,也就是从模一个数a转变为模一个多项式m(x)。由于m(x)是8次的,所以模m(x)得到的结果一定是小于8次的多项式,这些多项式和有限域\(GF(2^8)\)同构,这就有了:\(GF(2^8)\cong F_2[x]/(m(x))\)

posted @ 2023-02-11 11:45  Nemuzuki  阅读(265)  评论(0编辑  收藏  举报