密码编码学与网络安全--原理与实现--(第八版)第5章 ------有限域
目錄
5.1群
5.1.1 群的性質
5.1.2 交換群
5.1.3 循環群
5.2 環
5.3 域
5.4 有限域GF(p)
5.4.1 階為p的有限域
5.4.2 在有限域GF(p)中求乘法逆元
5.4.3 小結
5.5 多項式運算
5.5.1 普通多項式運算
5.5.2 系數在Zp中的多項式運算
5.5.3 求最大公因式
5.5.4 小結
5.6 有限域GF(2^n)
5.6.1 動機
?5.6.2 多項式模運算
?5.6.3 求乘法逆元
?5.6.4 計算上的考慮
?5.6.5 使用生成元
5.6.6 小結
學習目標
- 區分群、環和域。
- 理解有限域GF(p)的定義。
- 區分普通多項式運算、系數在中的多項式運算和有限域GF()中的多項式運算。
- 理解有限域GF()的定義。
- 解釋模運算符的兩種不同的用法。
有限域在密碼學中的地位越來越重要。許多密碼算法都依賴于有限域的性質,特別是高級加密標準(AES)和橢圓曲線加密算法。其他例子包括消息認證碼(CMAC)和認證加密方案(GCM)。
本章介紹有關有限域概念的背景知識,以便讀者理解AES及其他使用有限域知識的密碼算法的設計。
5.1群
群、環和域都是數學理論中的分支——抽象代數或近世代數的基本元素。在抽象代數中,我們關心的是其元素能夠進行代數運算的集合,也就是說,可以通過多種方法使得集合上的兩個元素運算后得到集合中的第三個元素。這些運算方法都遵守特殊的規則,而這些規則又能確定集合的性質。根據約定,集合上元素的兩種主要運算符號與普通數字的加法和乘法所用的符號相同。但要指出的是,在抽象代數中并不只限于普通的算術運算,詳見后面的介紹。
5.1.1 群的性質
群G,有時記為,是定義了一個二元運算的集合,這個二元運算可表示為??? ,G中的每個序偶(a,b)通過運算生成中的元素,并且滿足以下公理。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(A1)?封閉性? 若a和b都屬于G,則也屬于G。(這里a和一個意思不加區分,后文也一樣)? ? ? ? ?(A2)?結合律? 對于G中的任意元素a,b,c,都有。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(A3)?單位元? G中存在一個元素e,對于G中的任意元素a,都有。? ? ? ? ? ? ? ? ? ? ? ? ?(A4)?逆元? 對于G中的任意元素a,G中都存在一個元素,使得。
---------------------------------------------------------------------------------------------------------------------------------書本這里舉了一個置換群的例子,詳細請看書
---------------------------------------------------------------------------------------------------------------------------------
若一個群的元素是有限的,則該群稱為有限群,并且群的階等于群中元素的個數。否則,稱該群為無限群。
5.1.2 交換群
一個群若滿足以下的條件,則稱為交換群。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(A5). 交換律? 對于G中的任意元素a,b,都有。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?加法運算下的整數集(包括正整數、負整數和零)是一個交換群。乘法運算下的非零實數集是一個交換群。前列中的集合(置換群)是一個群,但是對于,他不是交換群。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?群眾的運算是加法時,其單位元是0;a的逆元是-a;且減法用以下規則定義:a-b=a+(-b)。
5.1.3 循環群
我們在群中將求冪運算定義為重復運用群中的運算,如。此外,我們定義為單位元,并且,其中是a在群內的逆元素。若群G中的每個元素都是一個固定元素的冪(k為整數),則稱群G是循環群。我們認為元素a生成了群G,或者說a是群G的生成元。循環群總是交換群,他可能是有限群或無限群。
e.g. 整數的加群是一個無限循環群,它由1生成。在這種情況下,冪被解釋為是用加法合成的,因此n是1的第n次冪。
5.2 環
環R,有時記為,是有兩個二元運算的集合,這兩個二元運算分別稱為加法和乘法,且對于R中的任意元素a,b,c,滿足以下公理。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(A1~A5)R關于加法是一個交換群;也就是說,R滿足從1到5的所有原則。對于此種情況下的加法群,我們用0表示其單位元,用-a表示a的逆元。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (M1)? 乘法封閉性? 若a和b都屬于R,則ab也屬于R。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (M2)? 乘法結合律? 對于R中的任意元素a,b,c,有。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (M3)? 分配律? 對于R中的任意元素a,b,c,總有,。
環本質上是一個集合,可在其上進行加法、減法[a-b=a+(-b)]和乘法而不脫離該集合。
環若還滿足以下條件,則被稱為交換環。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (M4)? 乘法交換律? 對于R中的任意元素a,b,有ab=ba。
下面定義整環,它是滿足以下公理的交換環。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (M5)? 乘法單位元? 在R中存在元素1,使得對R中的任意元素a,有a1=1a=a。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (M6)? 無零因子? 若有R中的元素a,b,且ab=0,則必有a=0或b=0.
---------------------------------------------------------------------------------------------------------------------------------后面我會專門出一篇文章來學習環,多項式環,分圓多項式環,等。對于一些密碼學方案來說是一種基本的結構
---------------------------------------------------------------------------------------------------------------------------------
5.3 域
域F,有時記為,是有兩個二元運算的集合,這兩個二元運算分別稱為加法和乘法,且對于F中的任意元素a,b,c,滿足以下公理。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(A1~M6)? F是一個整環;也就是說,F滿足從A1到A5及從M1到M6的所有原則。? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(M7)? 乘法逆元? 對F中的任意元素a(除0外),F中存在一個元素使得。
域本質上是一個集合,可以在其上進行加法、減法、乘法和除法而不脫離該集合。除法又按規則來定義。
深入理解這些內容后,下面這些可以替代的描述可能是有用的。域是一個集合,定義了兩個二元運算——加法和乘法,滿足下面的條件。
5.4 有限域GF(p)
有限域的階(元素的個數)必須是一個素數的冪,其中n為正整數。階為的有限域一般記為GF(),GF代表Galois域,它以第一位研究有限域的數學家的名字命名。在此要關注兩種特殊的情形:n=1時的有限域GF(p),它和n>1時的有限域有著不同的結構,本節將對它進行研究。對有限域GF()來說,有限域GF()具有特別重要的密碼學意義,詳見5.6節。
5.4.1 階為p的有限域
給定一個素數p,元素個數為p的有限域GF(p)被定義為整數的集合,其運算為模p的算數運算。
整數的集合,在模n的算術運算下構成一個交換環。進一步發現:中的任一整數有乘法逆元當且僅當該整數與n互素。若n為素數,則中的所有非零整數都與n互素,中所有非零整數都有乘法逆元。
因為w與p互素,若用w乘以的所有元素,則得出的剩余類時中所有元素的另一種排列。因此,恰好只有一個剩余類值為1。于是,中存在這樣的整數:當它乘以w,得余數1。這個整數就是w得乘法逆元,記為,所以其實是一個有限域。
5.4.2 在有限域GF(p)中求乘法逆元
當p值較小時,求有限域GF(p)中元素得乘法逆元很容易:只需構造一個乘法表,所要結果直接從表中讀出。但是,當p值較大時,這種方法時不切實際的。
若a和b互素,則b有模a的乘法逆元。也就是說,若gcd(a,b)=1,則b有模a的乘法逆元。即對于正整數b<a,存在使得。若a時素數且,則a和b顯然互素,且其最大公因式為1。運用擴展歐幾里得算法容易計算。
再次重復(2.7),我們證明過該式可以用擴展歐幾里得算法求解:
現在,若,則有。運用2.3節定義的模算術的基本公式,有
然而,若,則。因此,若,則通過對式(2.7)運用擴展歐幾里得算法可以獲得b的乘法逆元。
更一般地,對任意n,擴展歐幾里得算法可用于求內的乘法逆元。若對方程應用擴展歐幾里得算法,并且得到,則在內有。
5.4.3 小結
本節介紹了如何構建階為p的有限域,其中p為素數。特別地,我們用以下性質定義有限域GF(p)。
我們已經證明了有限域GF(p)中的元素是集合{0,1,...,p-1}中的元素,其算術運算是模p的加法和乘法。
5.5 多項式運算
?在繼續討論有限域之前,需要介紹一個有趣的問題——多項式算術。這里只討論單變元多項式,并且將多項式運算分為三種。
- 使用代數基本規則的普通多項式運算。
- 系數運算是模p運算的多項式運算,即系數在有限域GF(p)中。
- 系數在有限域GF(p)中,且多項式被定義為模一個n次多項式m(x)的多項式運算。
本節討論前兩種多項式運算,下一節討論最后一種多項式運算。
5.5.1 普通多項式運算
一個n次多項式()的表達形式為
式中,是某個指定數集S中的元素,稱該數集為系數集,且。稱是定義在系數集S上的多項式。零次多項式被稱為常數多項式,它只是系數集中的一個元素。若,則對應的n次多項式就被稱為首一多項式。
在抽象代數中,一般不給多項式中的x賦一個特定值。為了強調這一點,變元x有時被稱為不定元。
多項式運算包含加法、減法和乘法,這些運算是把變量x當成集合S中一個元素來定義的。除法也以類似的方式定義,但這時要求S是域。域包括實數域、有理數域、和素數域。注意整數并不是域,它也不支持多項式除法運算。
加法、減法的運算規則是把相應的系數相加減。因此,若
則加法運算定義為
乘法運算定義為
式中,。在后一個公式中,當時令,當時,令。注意結果的次數等于兩個多項式的次數之和。
5.5.2 系數在Zp中的多項式運算
現在考慮系數是域F中的元素的多項式,這種多項式被稱為域F上的多項式。在這種情況下,容易看出這樣的多項式結合是一個環,稱為多項式環。也就是說,如果把每個不同的多項式視為集合中的元素,那么這個結合就是一個環。
對有限域中的多項式進行多項式運算時,除法運算是可能的。注意,這并不是說能進行整除。下面說明兩者的區別。在一個域中,給定兩個元素a和b,a除以b的商也是這個域中的一個元素。然而,在非域的環R中,普通除法將得到一個商式和一個余式,這并不是整除。
現在,如果試圖在非域系數集上進行多項式除法,那么除法運算并不總是有定義的。
然而,如所見的那樣,即使系數集是一個域,多項式除法也不一定是整除。一般來說,除法會產生一個商式和一個余式。對于有限域中的多項式,式(2.1)的除法可以重述如下:給定n次多項式f(x)和m次多項式g(x)(),若用g(x)除f(x),則得到一個商式q(x)和一個余式r(x),它們滿足? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5.2)
各個多項式的次數為
? ??
若允許有余數,則我們說有限域中的多項式除法是可能的。與整數的長除法相同,長除法也適用于多項式除法。后面會給出一些例子。
與整數運算相似,我們可以把余式r(x)寫成f(x) mod g(x),即。若這里沒有余式,則說g(x)整除f(x),并寫為;等價地,可以說g(x)是f(x)的一個因式或除式。
有限域GF(2)中的多項式對我們而言式有意義的。在有限域GF(2)中加法等價于異或(XOR)運算,乘法等價于邏輯與(AND)運算。
域F中的多項式f(x)被稱為不可約的(即約的),當且僅當f(x)不能表示為兩個多項式的積(兩個多項式都在F上,次數都低于f(x)的次數)。與整數相似,一個不可約多項式也被稱為素多項式。
5.5.3 求最大公因式
通過定義最大公因式,可以擴展有限域中多項式運算和整數運算之間的相似性。如果:
那么多項式c(x)為a(x)和b(x)的最大公因式。下面是一個等價的定義:gcd[a(x),b(x)]是能同時整除a(x)和b(x)的多項式中次數最高的一個。
? ? ? ? ? ? ? ? ? ? ? ? ?(5.3)
上式假設a(x)的次數大于b(x)的次數,可以重復使用(5.3)來求最大公因式。將下列方案和用于整數的歐幾里得算法的定義進行比較。
每個循環中都有,直至最后?。因此,通過重復應用除法,我們得到了兩個多項式的最大公因式。這就是用于多項式的歐幾里得算法。
5.5.4 小結
本節首先討論了一般多項式的算術運算。在一般多項式算術運算中,變量不被計算,即不給多項式的變量賦值。相反,運用代數的一般規則對多項式進行算術運算(加、減、乘、除)。除非系數是域的元素,否則多項式的除法是不允許的。
接著討論了有限域GF(p)中的多項式算術運算:加、減、乘、除。然而,除法不是整除,即除法的結果通常是商和余數。
最后,本節說明了使用歐幾里得算法可以求有限域中的兩個多項式的最大公因式。
本節論述的知識為下一節的學習奠定了基礎。下一節中將用多項式來構建階為的有限域。
5.6 有限域GF(2^n)
前幾節中提到過有限域的元素個數必須為,其中p為素數,n為正整數。5.4節中討論了元素個數為p的有限域這一特殊情況。我們發現在使用上的模運算時,它滿足域的所有條件。當n>1時,上的多項式在模運算時并不能產生一個域。本節介紹在一個具有個元素的集合中,什么樣的結構滿足域的所有條件,并集中討論有限域GF()。
5.6.1 動機
實際上所有的加密算法(包括對稱密鑰和公開密鑰算法)都涉及整數集上的算術運算。如果某種算法使用的運算之一是除法,那么就使用定義在有限域中的運算。為了方便使用和提高效率,我們希望這個整數集中的數與給定的二進制位數所能表達的信息一一對應而不應出現浪費。也就是說,我們希望這個整數集的范圍是從0到,以便正好對應一個n位的字。?
?
?5.6.2 多項式模運算
設集合S由域上次數小于等于n-1的所有多項式組成。每個多項式的形式如下:
?式中,在集合{0,1,....,p-1}上取值。S中共有個不同的多項式。
如果定義了合適的運算,那么每個這樣的集合S就是一個有限域。定義由如下幾條組成。
?5.6.3 求乘法逆元
如歐幾里得算法可以用來求兩個多項式的最大公因式那樣,擴展歐幾里得算法可以用來求一個多項式的乘法逆元。若多項式b(x)的次數小于a(x)的次數且,則該算法能求出b(x)以a(x)為模的乘法逆元。若a(x)為即約多項式,即除了本身與1外沒有其他因式,則始終有gcd[a(x),b(x)]=1。算法的描述方式和整數情形的擴展歐幾里得算法一樣。給定兩個多項式a(x)和b(x),其中a(x)的次數大于b(x)的次數。我們希望解如下方程得到v(x)、w(x)和d(x),其中d(x) = gcd[a(x),b(x)]:
如果d(x)=1,那么w(x)是b(x)模a(x)的乘法逆元。計算過程如下:
?5.6.4 計算上的考慮
有限域GF()中的多項式
可以由它的n個二進制系數唯一地表示。因此,有限域GF()中的每個多項式都可以表示一個n位的二進制數。
加法? ? ?我們發現這里的多項式加法是對應系數分別相加,而對于上的多項式,加法其實就是異或(XOR)運算。所以,有限域?GF()中的兩個多項式的加法等同于按位異或運算。
乘法? ? ?簡單的異或運算不能完成有限域?GF()中的乘法,但是可以使用一種相當直觀且容易實現的技巧。以為多項式的有限域?GF()是AES中使用到的有限域,我們將參照該域來討論這個技巧。這個技巧容易推廣到有限域?GF()。
這個技巧基于下面的等式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5.4)
稍作思考就不難證明式(5.4)是正確的。如果不確定,可以除一下。一般來說,在有限域?GF()中對n次多項式p(x),有。
?5.6.5 使用生成元
定義有限域GF()的另一種等價方式有時更方便,它使用相同的不可約多項式。首先,需要兩個定義:階位q的有限域F的生成元是一個元素,記為g,該元素的前q-1個冪構成了F的所有非零元素,即域F的元素是0,。
回顧第2章的討論可知,若a是n的一個本原根,則其冪是不同的(mod p)。且他們與n是互素的。特別地,對于素數p,若a是p的一個本原根,則其冪是不同的(mod p)。考慮由多項式f(x)定義的域F,若F內的一個元素b滿足,則稱b為多項式f(x)的根。包含于F的元素b稱為多項式的一個根,前提是。
首一多項式f(x)是有限域GF(p)上的n次本原多項式,當且僅當其根是有限域GF()的非零元素的生成元。特別地,可以證明,f(x)滿足
此外,上述方程為真時的最小正整數是。也就是說,不存在整數使得f(x)整除。
所有本原多項式都是不可約的,反之則不成立。對于不是本原多項式的不可約多項式i,我們可以找到一個正整數。
最后,可以證明一個不可約多項式的根g是這個不可約多項式定義的有限域的生成元。
?通常,對于由不可約多項式f(x)生成的有限域GF(),有。計算到的值。域的元素對應g的冪:到,另外再加上零元素。域元素的乘法用公式實現,其中k為任意整數。
5.6.6 小結
本節說明了如何構建階為的有限域。特別地,定義了具有如下性質的有限域GF()。
有限域?GF()的元素可由二元有限域中所有次數不大于n-1的多項式集合定義。每個多項式可由唯一的n位數來表示。有限域中的算術是模某個次數為n的不可約多項式算術。還介紹了有限域?GF()的一種等價定義,該定義利用了生成元,其運算用生成元的冪進行。
總結
以上是生活随笔為你收集整理的密码编码学与网络安全--原理与实现--(第八版)第5章 ------有限域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: partial 分部类-庞大类的瘦身计划
- 下一篇: Vijos——T 1629 八