有限域算術
有限體運算是抽象代數中的一個概念,尤指在有限體之中進行的運算。其中有限體是一種體,所以包含的元素數量是有限的。作為比較,無限體運算則指在有無限多元素的體(如有理數)中的運算。
不同的有限體有無限多種,它們的勢(英語:Cardinality)皆以 的形式表示,其中 是一個質數; 為自然數。兩個元素數量相同的有限體稱做同構的。 同時代表此有限體的特徵數,而 則是此有限體的維度。
有限體有許多不同的應用,包含編碼理論與線性區塊碼(例如BCH碼和里德-所羅門碼)以及在密碼學中的演算法(例如進階加密標準)等不同領域的應用。
有效多項式表示
[編輯]伽羅瓦體
[編輯]有個元素的有限體可以表示成,其中 GF 為伽羅瓦體(英語:Galois field)的縮寫。伽羅瓦體即為有限體的別稱,以紀念現代群論的重要奠基者——埃瓦里斯特·伽羅瓦[1]。
一個簡單的例子是(也能可表示成 或 ),其中是一個質數。是將正整數作以為模的模運算後所得的結構。換言之,我們可以對整數進行加法、減法、乘法的運算,接著再以模運算將結果簡化。因此其實也是一種環。
以為例
[編輯]在中, 而不會等於,這是因為。而除法能理解為對其乘法反元素作乘法,並可以使用擴充版的輾轉相除法來計算。
以為例
[編輯]的加法為XOR,而乘法是AND。由於唯一具有倒數的元素是數字1,除法則是恆等函數。
GF(pn)的元素可表示為,在GF(p)之上嚴格小於n次數的多項式。運算則實行在先模除R,而R是一則在GF(p)之上,擁有n次數的不可約多項式,例如運用多項式長除法。兩則多項式P和Q則按常規運算;乘法則按如下進行:先按常規計算W = P⋅Q,然後計算模除R之後的餘項(存在有更方便方法)。
當素數是2時,一般按常規可以把GF(pn)的元素表示為二進制數,按對應元素的二進制表示,多項式的每一項表示為一比特的,相對應元素的二進制數位,並且括號( "{"和"}" )或類似的分隔符也普遍附加於這些二進制數,或對應它們的十六進制的同等數,以表明數值確確是域內的一則元素。例如,下列數都在具有2的特徵下持有相同的數值。
- 多項式: x6 + x4 + x + 1
- 二進制: {01010011}
- 十六進制: {53}
加法和減法
[編輯]加法和減法可實施在加與減這兩則多項式,再而使用模除其特徵值以簡化。
在一則特徵值為2的有限域之中,加法模2,減法模2,如同使用XOR,因此:
- 多項式:(x6 + x4 + x + 1) + (x7 + x6 + x3 + x) = x7 + x4 + x3 + 1
- 二進制: {01010011} + {11001010} = {10011001}
- 十六進制:{53} + {CA} = {99}
在常規的無限域的多項式的加法下,計算之和需要包含單項 2x6,但在有限域的加法下,0x6則被去掉,因為其計算結果被模2所消除。
下列是一則包含有對於一些多項式的,常規代數計算和與特徵值為2的有限域的計算和,一同列出的圖表。
p1 | p2 | p1 + p2 (normal algebra) | p1 + p2 in GF(2n) |
---|---|---|---|
x3 + x + 1 | x3 + x2 | 2x3 + x2 + x + 1 | x2 + x + 1 |
x4 + x2 | x6 + x2 | x6 + x4 + 2x2 | x6 + x4 |
x + 1 | x2 + 1 | x2 + x + 2 | x2 + x |
x3 + x | x2 + 1 | x3 + x2 + x + 1 | x3 + x2 + x + 1 |
x2 + x | x2 + x | 2x2 + 2x | 0 |
在計算機科學的諸多應用程序之中,特徵值為2的有限域運算被簡單化,稱之為GF(2n) 伽羅瓦域,使的這些領域在應用程序中,體現出一種特別大眾化的選擇。
乘法
[編輯]乘法是在有限域之內,把乘積模除於,一則用來表示有限域的,簡約過的不可約多項式。 (換句話說, 乘法再跟上使用,簡約了的多項式充當除數的除法,然後餘數則是它們的乘積。) 符號 "•" 可以用作於在有限域之內的乘法。
Rijndael有限域
[編輯]Rijndael(Rijndael的發音近於"Rhine doll")使用包含256個元素的持有特徵值是2的有限域, 同時可被稱之為伽羅瓦域GF(28)。在乘法上它依賴下列簡約多項式:
- x8 + x4 + x3 + x + 1
例如:{53} • {CA} = {01},因為在Rijndael域中:
- (x6 + x4 + x + 1)(x7 + x6 + x3 + x)
- = (x13 + x12 + x9 + x7) + (x11 + x10 + x7 + x5) + (x8 + x7 + x4 + x2) + (x7 + x6 + x3 + x)
- = x13 + x12 + x9 + x11 + x10 + x5 + x8 + x4 + x2 + x6 + x3 + x
- = x13 + x12 + x11 + x10 + x9 + x8 + x6 + x5 + x4 + x3 + x2 + x
與
- x13 + x12 + x11 + x10 + x9 + x8 + x6 + x5 + x4 + x3 + x2 + x 模除 x8 + x4 + x3 + x1 + 1 = (11111101111110 模 100011011) = {3F7E mod 11B} = {01} = 1 (十進制),同時可被長除法所表示,(使用二進制注釋。注意 XOR在例題中的應用,而不是常規運算中的減法。):
11111101111110 (mod) 100011011 ^100011011 1110000011110 ^100011011 110110101110 ^100011011 10101110110 ^100011011 0100011010 ^00000000 100011010 ^100011011 00000001
(十六進制數字{53}和{CA}相互是乘法逆元,由於它們的乘積是1。)
- ^ C., Bruno, Leonard. Math and mathematicians : the history of math discoveries around the world. Baker, Lawrence W. Detroit, Mich.: U X L. c. 2003: 171 [1999]. ISBN 978-0787638139. OCLC 41497065.