有限域的加减乘除运算
序言
在本人的其它博文中,介紹了主流的三種公鑰加密算法:RSA、離散對數(shù)加密和橢圓曲線加密。出于可讀性上的考慮,文章中盡量減少了代數(shù)相關的描述。實際上,他們或多或少都跟有限域扯上了關系,如果能從抽象代數(shù)角度去解釋,會更簡潔。
抽象代數(shù)基礎
抽象代數(shù),其實就是對我們?nèi)粘J褂玫拇鷶?shù)運算進行了抽象,將其泛化到更一般的領域。小學的時候我們學習加法和乘法,里面有說它們滿足結(jié)合律、交換律、分配律。這么多年我們一直把這些性質(zhì)當成自然而然的東西,但是在抽象代數(shù)中,定義某些運算時,他們未必就像在普通加法乘法里那么顯然。
集合
這是高中數(shù)學就有的內(nèi)容。集合具有三個性質(zhì):
比較常見的集合有:整數(shù)集(Z?Z )、有理數(shù)集(Q?Q )、實數(shù)集(R?R )等。
半群
在一個集合S中定義了某種運算(記作加法“+”,但這個加法指代廣泛意義上的運算,并不是指日常使用的加法),那么在這個集合上,如果這種運算滿足以下性質(zhì),那么他和集合S共同組成一個半群,記作(S, +):
例子:如果集合S是全體實數(shù)(記作“R”),而運算是實數(shù)加法,那么它們共同形成了一個半群,記作(R, +)
幺半群
如果一個半群(S, +)中存在一個元素e,使得S中所有的元素a都滿足:
?
a+e=e+a=a?a+e=e+a=a
?
那么這個半群被稱為幺半群,元素e被稱為單位元或者幺元。
例子:(R, +)中,實數(shù)0符合這一要求,所以(R, +)是幺半群,0是它的單位元。
群
如果一個幺半群(S, +)中的每一個元素a都有唯一一個元素b與之對應且滿足以下性質(zhì):
?
a+b=b+a=e,其中e是單位元?a+b=b+a=e,其中e是單位元
?
那么這個幺半群就是一個群。群中元素a和元素b互為逆元,記作a = -b或者b = -a。逆元存在,也就定義了群上的減法。a減去b,其實就是a加上b的逆元。也就是
a?b=a+(?b)?a?b=a+(?b)
?
例子:(R, +)中,每一個正數(shù)都和一個負數(shù)一一對應,他們的和為0。0取負是它自身。所以(R, +)是一個群。
交換群
如果一個群(S, +)符合交換律,即對于集合中任意元素a和b,滿足:
?
a+b=b+a?a+b=b+a
?
那么這個群被稱為交換群,又叫阿貝爾群。
例子:兩個實數(shù)相加誰先誰后對結(jié)果沒影響,滿足交換律,所以(R, +)是一個交換群。
環(huán)
在一個交換群(S, +)上, 再定義另外一種運算(記作乘法“?”,同樣地這個乘法也不是指日常使用的乘法),得到(S, +, ?)。如果(S, +, ?)滿足以下性質(zhì):
那么那么(S, +, ?)形成一個環(huán)。此時群(S, +)的單位元被稱為環(huán)(S, +, ?)的零元。
例子:實數(shù)集R和實數(shù)乘法形成一個幺半群(R, ?),單位元是實數(shù)1,而且和實數(shù)加法滿足分配律,所以(R, +, ?)是一個環(huán)。
除環(huán)
如果幺半群(S, ?)里除了零元以外的所有元素都有逆元,那么(S, +, ?)被稱為除環(huán)。
為了避免和(S, +)里的逆元混淆,(S, +)里的逆元稱為加法逆元,(S, ?)里的則是乘法逆元。
(S, +, ?)中乘法逆元存在,也就定義了除法,元素a除以元素b實際上就是a乘以b的乘法逆元。也就是
?
a÷b=ab??1??a÷b=ab?1
?
例子:(R, ?)中,除了實數(shù)0((R, +)的單位元)以外所有數(shù)都有倒數(shù),一個數(shù)和他的倒數(shù)之積為1(單位元),也就是一個實數(shù)的倒數(shù)就是它的乘法逆元。所以(R, +, ?)是一個除環(huán)。但是如果把其中的實數(shù)集改為整數(shù)集,就不滿足這個性質(zhì)了,因為大于1的整數(shù)倒數(shù)不在整數(shù)集中,因此沒有乘法逆元。
交換環(huán)
如果環(huán)(S, +, ?)中,(S, ?)滿足交換律,那么(S, +, ?)被稱為交換環(huán)。
例子:實數(shù)乘法滿足交換律,所以(R, +, ?)是一個交換環(huán)。
域
如果一個環(huán)(S, +, ?),既是除環(huán)又是交換環(huán),那么它是一個域。
例子:(R, +, ?)既是除環(huán)又是交換環(huán),所以它是一個域,稱為實數(shù)域。
有限域
實數(shù)有無限多個,所以實數(shù)域是一個無限域。而如果一個域的元素是有限的,那么他就是一個有限域,又叫伽(ga1)羅瓦域(就是那個為愛死于決斗的數(shù)學家)。
有限域中元素的個數(shù)被稱為有限域的階(order)。有限域的階一定是某個素數(shù)p的k次冪(k是正整數(shù))。
模p有限域GF(p)
最常見的有限域莫過于模素數(shù)p有限域GF(p)。
GF(p)是定義在整數(shù)集合{0, 1, … , p-1}上的域。GF(p)上的加法和乘法分別是模加法和模乘法。
加法和乘法
模加法模乘法和普通的整數(shù)加法乘法類似,唯一不同的是,當運算的結(jié)果超出范圍時,要將運算結(jié)果對素數(shù)p取模。比如GF(7)定義在{0, 1, 2, 3, 4, 5, 6}上,它的加法和乘法是這樣的:
?
1+2=3mod75+6=11mod71?2=2mod74?5=20mod7?=3=4=2=6??1+2=3mod7=35+6=11mod7=41?2=2mod7=24?5=20mod7=6
?
減法
a減去b,其實就是a加上b的加法逆元,關鍵是找到b的加法逆元。
?
1?2=1+(?2)=1+5=6mod71?2=?1mod7?=6?又或者=6??1?2=1+(?2)=1+5=6mod7=6?又或者1?2=?1mod7=6
?
除法
到了除法,就沒那么直觀了。
a除以b,需要找到b的乘法逆元(在這里又被稱為數(shù)論倒數(shù))。即滿足以下式子的整數(shù)x:
?
bx=1mod7?bx=1mod7
也就是解下面的方程:
?
bx=1+7k,其中k∈Z?+??bx=1+7k,其中k∈Z+
這個方程的求解需要用到擴展歐幾里得算法,在本人的另一篇博文中有詳細介紹,這里不再贅述。下面直接給出結(jié)果:
?
3÷4=3?(4??1?)=3?2=6mod7=6?3÷4=3?(4?1)=3?2=6mod7=6
?
有限域GF(2^m)
除了GF(p)外,常見的有限域還有GF(2^m)。它在里德-所羅門編碼(二維碼使用的編碼)以及橢圓曲線加密中都有使用。
GF(2^m)正如他的名稱,包含2^m個元素。為什么是2的m次方而不是3的m次方或者5的m次方呢?
因為計算機是二進制的,2^m個元素恰好跟長度為m的二進制數(shù)(0~2?m??1?0~2m?1 )一一對應。比如GF(2^8),剛好跟計算機中8個二進制位,也就是一個字節(jié)(0~255)對應。所以它在計算機或者專用硬件上可以有很高的運算效率。
為了方便,我們把GF(2^m)中的元素表示成長度為m的二進制形式。下面以m=3為例
加法和減法
GF(2^m)上的加法和減法都是異或運算。加法單位元是0。
010和110都是GF(2^3)的元素。那么
?
010+110=010⊕110010?110=010⊕110?=100=100??010+110=010⊕110=100010?110=010⊕110=100
因為長度為m的二進制數(shù)異或結(jié)果還是長度為m的二進制數(shù),所以不需要考慮結(jié)果超出范圍的情況。
?
乘法
乘法其實就是移位加上異或。乘法單位元是1。
舉個栗子,111乘以101,基于乘法分配律,可以得到:
?
111?101?=111?100+111?00+111?1=11100+0000+111=11100⊕111=11011??111?101=111?100+111?00+111?1=11100+0000+111=11100⊕111=11011
如果直接相乘得到的結(jié)果長度不大于m,這就是最終結(jié)果。但是這里得到的結(jié)果是11011,長度超過了3,那么就要想辦法對它進行處理。怎么處理呢?還是對一個“素數(shù)”取模。
需要注意,這里的“素數(shù)”并不是普通的素數(shù),而是基于上述乘法,無法由兩個數(shù)相乘得到的數(shù)。這樣的“素數(shù)”可能有多個,不同的選擇會有不同的結(jié)果。
?
對于GF(2^3),1011就是其中一個“素數(shù)”。11011對1011取模,過程如下:
?
11011mod1011?=11011?1011?10mod1011=11011⊕10110mod1011=1101mod1011=1101?1011?1=1101⊕1011=110??11011mod1011=11011?1011?10mod1011=11011⊕10110mod1011=1101mod1011=1101?1011?1=1101⊕1011=110
?
實際上這個計算過程類似于除法的豎式運算。
除法
除法依然是乘以一個倒數(shù),使用的方法同GF(p)一樣是擴展歐幾里得算法,這里不作介紹。
總結(jié)
以上是生活随笔為你收集整理的有限域的加减乘除运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AA级与AAA级台灯 重要指标对比
- 下一篇: 消费类电子认证测试资料清单