38
代代代代 代代代代 劉劉劉 劉劉劉

代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

  • View
    282

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

代數概論代數概論

劉兆樑劉兆樑

Page 2: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

簡介簡介 群群 (Group)(Group) 、環、環 (Ring)(Ring) 、和體、和體 (Field)(Field) 是抽是抽象代數或現代代數的基本要素。象代數或現代代數的基本要素。

代數在近代密碼學上的扮演極為重要的角代數在近代密碼學上的扮演極為重要的角色。例如色。例如 :: RSA: RSA: 環。環。 ElGamal: GF(ElGamal: GF(pp)) 。。 進階加密標準(進階加密標準( AES): GF(2AES): GF(288) ) 。。 橢圓曲線密碼學橢圓曲線密碼學 (Elliptic Curve Cryptosystem (Elliptic Curve Cryptosystem

ECC): ECECC): EC 加法群。加法群。

Page 3: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

在抽象代數中,我們關心的是哪些集合元在抽象代數中,我們關心的是哪些集合元素可以進行代數運算,透過這些運算呈現素可以進行代數運算,透過這些運算呈現這些集合元素間的特殊結構性。這些集合元素間的特殊結構性。

代數學除了研究這些結構外,更進一步研代數學除了研究這些結構外,更進一步研究這些結構間的相互關係。究這些結構間的相互關係。

因此我們先介紹其中最重要的代數結構因此我們先介紹其中最重要的代數結構群、環、體。群、環、體。

Page 4: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

群群 「群」(有時表示成「群」(有時表示成 {G, }‧{G, }‧ )是內含二元運算的元)是內含二元運算的元

素集合。素集合。 對對 GG 裡的每組元素裡的每組元素 ((aa, , b)b) 來說,來說, aa‧‧bb = = cc, , cc in G ( in G (cc

也是也是 GG 裡的元素裡的元素 )) 。。 封閉性,這是最基本要求,如果違反則ㄧ切免談封閉性,這是最基本要求,如果違反則ㄧ切免談

必須遵守:必須遵守: 結合性:結合性: ((aa‧‧bb) ) ‧‧cc = = aa‧‧ ( (bb‧‧cc) ) 半群半群 單位元素單位元素 ee :: ee‧‧aa = = aa‧‧ee = = aa 單群單群 反元素: 反元素: aa‧‧aa’= ’= e e 群群

(N, +), (Z, +), (Z, (N, +), (Z, +), (Z, ××), (Q, +), (Q, ), (Q, +), (Q, ××), …), … 若滿足若滿足 aa‧‧bb = = bb‧‧aa

即為交換群即為交換群

Page 5: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples {N, +}: {N, +}: 並不是群 ,但是我們卻希望透過某些轉並不是群 ,但是我們卻希望透過某些轉

換可以展現出群的特性,這個轉換就是我們所知換可以展現出群的特性,這個轉換就是我們所知道的等價關係,透過建立出的等價關係可以將道的等價關係,透過建立出的等價關係可以將 NN切割成許多大小相同的等價類切割成許多大小相同的等價類 (( 集合集合 )) ,而這些等,而這些等價類所形成的集合價類所形成的集合 (( 集合的集合集合的集合 )) 可形成群。可形成群。

例如例如 : : 我們利用等價關係我們利用等價關係 mod 6mod 6 反身性反身性 : a : a ≡≡ a mod 6 a mod 6 對稱性對稱性 : a : a ≡≡ b b mod 6 mod 6 bb ≡≡ a mod 6 a mod 6 遞移性遞移性 : a : a ≡≡ b b mod 6, b mod 6, b ≡≡ c mod 6 c mod 6 a a ≡≡ c mod 6c mod 6

N = NN = N00 ∪ ∪ NN11 N∪ N∪ 22 N∪ N∪ 33 N∪ N∪ 44 ∪ ∪ NN55 NN00 = {0, 6, 12, 18, …} = {0, 6, 12, 18, …} NN11 = {1, 7, 13, 19, …} = {1, 7, 13, 19, …}

Page 6: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples

{G, +} = {0, 1, 2, 3, 4, 5} = Z{G, +} = {0, 1, 2, 3, 4, 5} = Z66

mod 6mod 6 封閉性 封閉性 OKOK 結合性 結合性 OKOK 單位元單位元 : 0 : 0 OKOK 反元素反元素 : : OKOK

0 + 0 = 00 + 0 = 0

1 + 5 = 01 + 5 = 0

2 + 4 = 02 + 4 = 0

3 + 3 = 03 + 3 = 0

4 + 2 = 04 + 2 = 0

5 + 1 = 05 + 1 = 0

++ 00 11 22 33 44 5 5

00 00 11 22 33 44 55

11 11 22 33 44 55 00

22 22 33 44 55 00 11

33 33 44 55 00 11 22

44 44 55 00 11 22 33

55 55 00 11 22 33 44

Page 7: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples {G, ×} = {0, 1, 2, 3, 4, 5}{G, ×} = {0, 1, 2, 3, 4, 5}

mod 6mod 6 封閉性 封閉性 OKOK 結合性 結合性 OKOK 單位元單位元 : 1 : 1 OK OK 反元素反元素 : : XX 0 0 ×× ? = 1 ? = 1 1 1 ×× ? = 1 ? = 1 2 2 ×× ? = 1 ? = 1

3 3 ×× ? = 1 ? = 14 4 ×× ? = 1 ? = 15 5 ×× ? = 1 ? = 1

×× 00 11 22 33 44 5 5

00 00 00 00 00 00 00

11 00 11 22 33 44 55

22 00 22 44 00 22 44

33 00 33 00 33 00 33

44 00 44 22 00 44 22

55 00 55 44 33 22 11

Page 8: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples {G*, ×} = {1, 2, 3, 4, 5}{G*, ×} = {1, 2, 3, 4, 5}

mod 6mod 6 封閉性 封閉性 XX 結合性 結合性 OKOK 單位元單位元 : 1 : 1 OK OK 反元素反元素 : : XX

1 1 ×× 1 = 1 1 = 1

2 2 ×× ? = 1 ? = 1

3 3 ×× ? = 1 ? = 1

4 4 ×× ? = 1 ? = 1

5 5 ×× 5 = 1 5 = 1

×× 11 22 33 44 5 5

11 11 22 33 44 55

22 22 44 00 22 44

33 33 00 33 00 33

44 44 22 00 44 22

55 55 44 33 22 11

Page 9: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples {G*, ×} = {1, 2, 3, 4, 5, 6}{G*, ×} = {1, 2, 3, 4, 5, 6}

mod 7mod 7 封閉性 封閉性 OKOK 結合性 結合性 OKOK 單位元單位元 : 1 : 1 OK OK 反元素反元素 : : OKOK 1 1 ×× 1 = 1 1 = 1 2 2 ×× 4 = 1 4 = 1

3 3 ×× 5 = 1 5 = 14 4 ×× 2 = 1 2 = 15 5 ×× 3 = 1 3 = 1

6 6 ×× 6 = 1 6 = 1

×× 11 22 33 44 5 5 66

11 11 22 33 44 55 66

22 22 44 66 11 33 55

33 33 66 22 55 11 44

44 44 11 55 22 66 33

55 55 33 11 66 44 22

66 66 55 44 33 22 11

Page 10: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples 1111 = = 11, 1, 122 = 1, … order(1) = 1 = 1, … order(1) = 1 2211 = 2, 2 = 2, 222 = 4, 2 = 4, 233 = = 11, ,

2244 = 2, 2 = 2, 255 = 4, 2 = 4, 266 = = 11 … …

order(2) =3.order(2) =3. 3311 = 3, 3 = 3, 322 = 2, 3 = 2, 333 = 6, 3 = 6, 344 = 4, 3 = 4, 355 = 5, 3 = 5, 366 = = 11, ,

3377 = 3, 3 = 3, 388 = 2, 3 = 2, 399 = 6, 3 = 6, 31010 = 4, 3 = 4, 31111 = 5, 3 = 5, 31212 = = 11 … …

order(3) = 6.order(3) = 6. 4411 = 4, 4 = 4, 422 = 2, 4 = 2, 433 = = 11, ,

4444 = 2, 4 = 2, 455 = 4, 4 = 4, 466 = = 11 … …

order(4) =3.order(4) =3.

Page 11: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

ExamplesExamples 5511 = 5, 5 = 5, 522 = 4, 5 = 4, 533 = 6, 5 = 6, 544 = 2, 5 = 2, 555 = 3, 5 = 3, 566 = = 11, , 5577 = 5, 5 = 5, 588 = 4, 5 = 4, 599 = 6, 5 = 6, 51010 = 2,5 = 2,51111 =3,5 =3,51212 = =11 … …

order(5) = 6.order(5) = 6. 6611 = 6, 6 = 6, 622 = = 11, 6, 633 = 6, 6 = 6, 644 = = 11, order(6) =2., order(6) =2. order = 6 =order = 6 =φ(7) φ(7) 所有元素個數所有元素個數 )) 者稱為原根。者稱為原根。上例中生成子有上例中生成子有 33 與與 55 兩個 兩個

2 = 2 = φ(φ(7)φ(φ(7) ) ) Note: Note: 知道一個原根則可找出所有的原根,例知道一個原根則可找出所有的原根,例如上題知道如上題知道 33 為原根則為原根則 335 5 = 5= 5 亦為原根。即亦為原根。即取與取與 φ(7)φ(7) 互質之整數次方互質之整數次方。。 (1, 5)(1, 5)

Page 12: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

循環群循環群 將群的重複運算定義為群的指數運算:將群的重複運算定義為群的指數運算:

aa33 = a.a.a = a.a.a 此外也定義:此外也定義: e=e=aa00

假如假如 GG 裡的每個元素都是固定元素的指數,裡的每個元素都是固定元素的指數,GG 就是循環群,此固定元素又稱為生成子。就是循環群,此固定元素又稱為生成子。

(Z, +)(Z, +) 生成子為生成子為 ?? 循環群必為交換群,而且可能是有限群或循環群必為交換群,而且可能是有限群或無限群無限群

Page 13: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

環環 一群內含兩個二元運算(加法和乘法)的數值一群內含兩個二元運算(加法和乘法)的數值 加法交換群,並滿足:加法交換群,並滿足:

乘法封閉性乘法封閉性 乘法結合性乘法結合性 分配律:分配律: a(b+c) = ab + aca(b+c) = ab + ac

若滿足乘法交換性,即為交換環若滿足乘法交換性,即為交換環 整數域整數域

乘法單位元素乘法單位元素 (1, (1, 加法單位元加法單位元 0)0) 00 不可為除數 不可為除數 (( 不具有零除元,亦即不具有零除元,亦即 aa×b=0×b=0 但是但是 a≠0, b a≠0, b

≠0≠0)) 體體 : : 乘法反元素,乘法交換性。乘法反元素,乘法交換性。

乘法半群

Page 14: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

體體 「體」(有時表示成「體」(有時表示成 {F, {F, ++ , ×}, ×} )是具有)是具有兩個二元運算的元素集合兩個二元運算的元素集合

「體」是可以計算加法、減法、乘法、除「體」是可以計算加法、減法、乘法、除法的集合法的集合

除法規則的定義是除法規則的定義是 a/b = a( ba/b = a( b-1-1)) 「體」常見的例子包括了有理數、實數、「體」常見的例子包括了有理數、實數、複數複數

Page 15: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

群、環、體群、環、體

Page 16: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

有限體有限體 有限體在加解密演算法中扮演關鍵的角色有限體在加解密演算法中扮演關鍵的角色 有限體的元素個數必須是質數的乘冪,也有限體的元素個數必須是質數的乘冪,也就是就是 ppnn (( nn 為正整數)為正整數)

級數級數 PPnn 的有限體通常以的有限體通常以 GF(GF(PPnn)) 表示表示 經常使用:經常使用:

GF(p), GF(pGF(p), GF(pnn)) GF(2GF(2nn))

Page 17: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

GF(p)GF(p)

對質數對質數 pp 而言,級數而言,級數 pp 的有限體的有限體 GF(GF(pp)) 定義定義成整數集合成整數集合 ZZpp {0, 1, …, {0, 1, …, p p-1}-1} ,以及算術運算,以及算術運算模數模數 pp

因為因為 w w 與與 p p 互質,所以若將互質,所以若將 ZZpp 的所有元素的所有元素乘上乘上 w w ,產生的餘數將會是所有,產生的餘數將會是所有 ZZpp 元素的元素的重排,因此其中某個餘數必為重排,因此其中某個餘數必為 11

ZZpp 裡的某些整數乘上裡的某些整數乘上 w w 之後的餘數為之後的餘數為 11 。。這種整數是這種整數是 w w 的乘法反元素,稱為的乘法反元素,稱為 ww-1-1 ,因,因此此 ZZpp 實際上就是有限體實際上就是有限體

Page 18: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

同餘運算同餘運算若若 a a 為整數、為整數、 n n 為正整數為正整數

將將 a mod n a mod n 的值定義為的值定義為 a a 除除 n n 的餘數的餘數 整數整數 nn 稱為模數稱為模數

若(若( a mod n ) =( b mod n ) a mod n ) =( b mod n ) 整數整數 aa 、、 bb 是是 nn 的的同餘同餘 寫成寫成 a ≡ b (mod n)a ≡ b (mod n) bb 是是 a mod na mod n 的餘數的餘數

Page 19: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

因數因數 若若 b ≠ 0b ≠ 0 而而 a a 、、 b b 、、 m m 皆為整數,且某個皆為整數,且某個數值數值 mm 能讓能讓a = mba = mb 表示表示 b b 能整除能整除 aa 也就是也就是 b b 除以除以 a a 不會有餘數不會有餘數 通常以通常以 bb || aa 表示表示 b b 能整除能整除 aa 而而 bb 也就是也就是 aa 的的因數因數

例如例如 1,2,3,4,6,8,12,241,2,3,4,6,8,12,24 都可以整除都可以整除 24 24

Page 20: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

模數算術模數算術 若若 nn || (a - b)(a - b) ,, a ≡ b (mod n)a ≡ b (mod n) 若若 a ≡ b (mod n)a ≡ b (mod n) ,, b ≡a (mod n)b ≡a (mod n) 若若 a ≡ b (mod n)a ≡ b (mod n) 且且 b ≡ c (mod n)b ≡ c (mod n) ,, a ≡ c (mod n)a ≡ c (mod n)

Page 21: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

模數算術模數算術

ZnZn 是小於是小於 nn 的非負整數集合:的非負整數集合:ZZnn = {0, 1, … , n-1} = {0, 1, … , n-1}

這是模數這是模數 nn 的餘數集合或餘數類別;的餘數集合或餘數類別;ZnZn 裡的每個整數都是餘數類別 裡的每個整數都是餘數類別

一般運算所沒有的兩項特性:一般運算所沒有的兩項特性: 若若 (a+b) (a+b) = (a+c) mod n= (a+c) mod n ,則,則 b = c mod n (bb = c mod n (b 未必未必

=c)=c) 若若 a, na, n 互質,且互質,且 (a(a××b)b)=(a=(a××c) mod nc) mod n ,則,則 b = c b = c

mod nmod n

Page 22: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

66××3 mod 83 mod 8 66××7 mod 87 mod 8

Page 23: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

模模 88 下的模數加法運算下的模數加法運算+ 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7 0

2 2 3 4 5 6 7 0 1

3 3 4 5 6 7 0 1 2

4 4 5 6 7 0 1 2 3

5 5 6 7 0 1 2 3 4

6 6 7 0 1 2 3 4 5

7 7 0 1 2 3 4 5 6

Page 24: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

最大公因數(最大公因數( GCDGCD )) 數論的共同問題數論的共同問題 若若 aa 、、 bb 、、 mm 為整數,對為整數,對 mm 來說,如果來說,如果 aa = = mbmb ,,

若若 bb≠≠0 0 則則 bb 就是就是 aa 的因數的因數 GCD(a, b)GCD(a, b) 爲爲 aa 和和 bb 的的最大公因數最大公因數;正整數;正整數 cc 若符若符

合以下兩點,就是合以下兩點,就是 aa 、、 bb 的最大公因數:的最大公因數: cc 是是 aa 、、 bb 的因數的因數 aa 、、 bb 的任何因數也是的任何因數也是 cc 的因數的因數 例如例如 GCD(60,24) = 12GCD(60,24) = 12

若兩整數若兩整數 aa 、、 bb只有正公因數只有正公因數 11 ,則,則 aa 、、 bb 互質互質 以等式表示即為 以等式表示即為 GCD(a, b) = 1GCD(a, b) = 1 例如 例如 GCD(8,15) = 1GCD(8,15) = 1 (( 88 、、 1515 互質)互質)

Page 25: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

歐幾里德演算法歐幾里德演算法 找出最大公因數的有效方法找出最大公因數的有效方法 對任何非負整數對任何非負整數 aa 和任何正整數和任何正整數 bb 而言:而言:

GCD(a, b) = GCD(b, a mod b) GCD(a, b) = GCD(b, a mod b) 歐幾里德演算法計算最大公因數的方式:歐幾里德演算法計算最大公因數的方式:

EUCLID(a,b)EUCLID(a,b)1. A 1. A = = a; B a; B = = b b 2. if B = 0 return A = gcd(a, b) 2. if B = 0 return A = gcd(a, b) 3. R = A mod B 3. R = A mod B 4. A = B 4. A = B 5. B 5. B = = R R 6. goto 26. goto 2

Page 26: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

範例:範例: GCD(1970,1066)GCD(1970,1066)

1970 = 1 x 1066 + 904 1970 = 1 x 1066 + 904 gcd(1066, 904)gcd(1066, 904)1066 = 1 x 904 + 162 1066 = 1 x 904 + 162 gcd(904, 162)gcd(904, 162)904 = 5 x 162 + 94 904 = 5 x 162 + 94 gcd(162, 94)gcd(162, 94)162 = 1 x 94 + 68 162 = 1 x 94 + 68 gcd(94, 68)gcd(94, 68)94 = 1 x 68 + 26 94 = 1 x 68 + 26 gcd(68, 26)gcd(68, 26)68 = 2 x 26 + 16 68 = 2 x 26 + 16 gcd(26, 16)gcd(26, 16)26 = 1 x 16 + 10 26 = 1 x 16 + 10 gcd(16, 10)gcd(16, 10)16 = 1 x 10 + 6 16 = 1 x 10 + 6 gcd(10, 6)gcd(10, 6)10 = 1 x 6 + 4 10 = 1 x 6 + 4 gcd(6, 4) gcd(6, 4)6 = 1 x 4 + 2 6 = 1 x 4 + 2 gcd(4, 2)gcd(4, 2)4 = 2 x 2 + 0 4 = 2 x 2 + 0 gcd(2, 0)gcd(2, 0)

Page 27: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

GF(7) GF(7) 乘法範例乘法範例 0 1 2 3 4 5 6

0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6

2 0 2 4 6 1 3 5

3 0 3 6 2 5 1 4

4 0 4 1 5 2 6 3

5 0 5 3 1 6 4 2

6 0 6 5 4 3 2 1

Page 28: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

找出乘法反元素找出乘法反元素EXTENDED EUCLID(EXTENDED EUCLID(mm, , bb))1.1. (A1, A2, A3)=(1, 0, (A1, A2, A3)=(1, 0, mm); );

(B1, B2, B3)=(0, 1, (B1, B2, B3)=(0, 1, bb))2. if 2. if B3 = 0B3 = 0

return return A3 = gcd(A3 = gcd(mm, , bb); no inverse); no inverse3. if 3. if B3 = 1 B3 = 1

return return B3 = gcd(B3 = gcd(mm, , bb); B2 = ); B2 = bb–1–1 mod mod mm4. 4. Q = A3 div B3Q = A3 div B35. 5. (T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q B3)(T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q B3)6. 6. (A1, A2, A3)=(B1, B2, B3)(A1, A2, A3)=(B1, B2, B3)7. 7. (B1, B2, B3)=(T1, T2, T3)(B1, B2, B3)=(T1, T2, T3)8. goto 8. goto 22

Page 29: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

GF(1759)GF(1759) 裡的裡的 550550 乘法反元素乘法反元素Q A1 A2 A3 B1 B2 B3

— 1 0 1759 0 1 550

3 0 1 550 1 –3 109

5 1 –3 109 –5 16 5

21 –5 16 5 106 –339 4

1 106 –339 4 –111 355 1

5. 5. (T1, T2, T3) = (A1 – Q B1, A2 – Q B2, A3 – Q B3)(T1, T2, T3) = (A1 – Q B1, A2 – Q B2, A3 – Q B3)6. 6. (A1, A2, A3) = (B1, B2, B3)(A1, A2, A3) = (B1, B2, B3)7. 7. (B1, B2, B3) = (T1, T2, T3)(B1, B2, B3) = (T1, T2, T3)

Page 30: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

多項式運算多項式運算 nn 階階多項式多項式(( polynomialpolynomial )可表示為(整)可表示為(整

數數 nn 0≧ 0≧ ):):ff((xx) = a) = annxxnn + a + an-1n-1xxn-1n-1 + … + a + … + a11x + x + aa00 = ∑ a = ∑ aiixxii

多項式運算分成三種不同類型:多項式運算分成三種不同類型: 使用代數基本規則的一般多項式運算使用代數基本規則的一般多項式運算 將係數取將係數取 pp 同餘的多項式運算同餘的多項式運算 係數是在係數是在 GF(GF(pp)) 裡、而且定義成多項式裡、而且定義成多項式 m(m(xx)) 同同餘的多項式運算(餘的多項式運算( m(m(xx)) 的最高次方為整數的最高次方為整數 nn ))

Page 31: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

一般多項式運算一般多項式運算 這類多項式是以係數集合定義這類多項式是以係數集合定義 多項式的加法和減法是以係數處理多項式的加法和減法是以係數處理 例如例如 ff((xx) = ) = xx33 + + xx22 + 2 + 2 且且 gg((xx) = ) = xx22 – – x x + 1+ 1 ,,那麼:那麼:ff((xx) + ) + gg((xx) = ) = xx33 + 2 + 2xx22 – – x x + 3+ 3ff((xx) – ) – gg((xx) = ) = xx33 + + x x + 1+ 1ff((xx) x ) x gg((xx) = ) = xx55 + 3 + 3xx22 – 2 – 2x x + 2+ 2

Page 32: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

係數在係數在 ZZpp 的多項式運算的多項式運算

係數可以是「體」係數可以是「體」 FF 的元素的元素 這種情況的多項式所形成的集合會是環,這種情況的多項式所形成的集合會是環,因此稱為因此稱為多項式環多項式環

大多對 大多對 mod 2 mod 2 最感興趣最感興趣 也就是所有係數皆為也就是所有係數皆為 00 或或 11 例如例如 ff((xx) = ) = xx33 + + xx22 且且 gg((xx) = ) = xx22 + + x x + 1+ 1 ,那麼:,那麼:

ff((xx) + ) + gg((xx) = ) = xx33 + + x x + 1+ 1ff((xx) x ) x gg((xx) = ) = xx55 + + xx22

Page 33: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

多項式除法多項式除法 任何多項數可寫成:任何多項數可寫成:

ff((xx) = ) = qq((xx) ) gg((xx) + ) + rr((xx)) 可解釋可解釋 rr((xx) ) 是為餘數是為餘數 rr((xx) = ) = ff((xx) mod ) mod gg((xx))

如果沒有餘數如果沒有餘數 就表示就表示 g( xg( x )整除)整除 f( x )f( x ) 可以表示成可以表示成 g( x ) / f( x )g( x ) / f( x )

如果如果 gg((xx)) 沒有沒有 11 和本身以外的因數,稱為和本身以外的因數,稱為不可分解不可分解或或質式質式

Page 34: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

找出最大公因數找出最大公因數 找出多項式的最大公因數找出多項式的最大公因數 c(x)c(x) = GCD( = GCD(a(x), b(x)a(x), b(x)))

c( x )c( x ) 能整除能整除 a( x )a( x ) 和和 b( x )b( x ) a( x )a( x ) 和和 b( x )b( x ) 的任何因數也是的任何因數也是 c( x )c( x ) 的因數 的因數

可以改寫歐幾里德演算法來計算:可以改寫歐幾里德演算法來計算:EUCLID[EUCLID[aa((xx)), b, b((xx)])]1. 1. A(A(xx) = ) = aa((xx); B(); B(xx) = ) = bb((xx))2. if 2. if B(B(xx) = 0 ) = 0 return return A(A(xx) = gcd[) = gcd[aa((xx)), b, b((xx)])]3. 3. R(R(xx) = A() = A(xx) mod B() mod B(xx))4. 4. A(A(xx) ¨ B() ¨ B(xx))5. 5. B(B(xx) ¨ R() ¨ R(xx))6. goto 6. goto 22

Page 35: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

範例 範例 GF(2GF(233))3 1x x

Page 36: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

範例範例 GF(2GF(233)) 的的 (x(x22+1) +1) 是是 10110122 ,, (x(x22+x+1) +x+1) 是是 11111122

加法運算加法運算 (x(x22+1) + (x+1) + (x22+x+1) = x +x+1) = x 101 XOR 111 = 010101 XOR 111 = 01022

乘法運算乘法運算 (x+1).(x(x+1).(x22+1) = x.(x+1) = x.(x22+1) + 1.(x+1) + 1.(x22+1) +1)

= x= x33+x+x+x+x22+1 = x+1 = x33+x+x22+x+1 +x+1 011.101 = (101)<<1 XOR (101)<<0 = 011.101 = (101)<<1 XOR (101)<<0 =

1010 XOR 101 = 11111010 XOR 101 = 111122 (get q(x) & r(x))(get q(x) & r(x))

(x(x33+x+x22+x+1 ) mod (x+x+1 ) mod (x33+x+1) = 1.(x+x+1) = 1.(x33+x+1) + (x+x+1) + (x22) = ) = xx22

1111 mod 1011 = 1111 XOR 1011 = 01001111 mod 1011 = 1111 XOR 1011 = 010022

Page 37: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

使用產生器使用產生器 利用相同的不可分解多項式,也能定義利用相同的不可分解多項式,也能定義 GF(2n)GF(2n) 有有

限體限體 級數為級數為 qq 的有限體的有限體 FF產生器產生器 gg 是一個元素,這個是一個元素,這個

元素的第一個元素的第一個 q – 1q – 1 次方能產生次方能產生 FF 所有非零元素所有非零元素 也就是說,這個也就是說,這個 FF 的元素是由的元素是由 0, g0, g00, g, g11, …, g, …, gq-2q-2 組組

成成 如果如果 f(b) = 0f(b) = 0 ,, FF 裡的元素裡的元素 bb 就稱為就稱為根根 不可分解多項式的根不可分解多項式的根 gg ,就是定義在此多項式的,就是定義在此多項式的

有限體的產生器有限體的產生器

Page 38: 代數概論 劉兆樑. 簡介 群 (Group) 、環 (Ring) 、和體 (Field) 是抽象代 數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角

總結總結群、環、體群、環、體整數模數算術整數模數算術歐幾里德演算法歐幾里德演算法 GF(p)GF(p) 有限體有限體 GF(2GF(2nn)) 多項式運算多項式運算