第 4 章 有 限體

34
1 第 4 第 第第

Upload: darva

Post on 09-Jan-2016

91 views

Category:

Documents


2 download

DESCRIPTION

第 4 章 有 限體. 簡介. 有限體在密碼學日漸益重要 許多密碼學演算法,都很依賴有限體的特性,尤其是進階加密標準( AES )和橢圓曲線密碼學 群 (groups) 、環 (rings) 、和體 (fields) 是抽象代數或現代代數的基本要素 在抽象代數中,我們關心的是哪些集合元素可以代數運算. 群. 請問 {N, +} 是群嗎?. 「群」(有時表示成 {G, ‧ } )是內含二元運算的元素集合 對 G 裡的每組元素( a , b )來說,( a ‧ b )也是 G 裡的元素 ( 即符合封閉性 closure) 還必須遵守: - PowerPoint PPT Presentation

TRANSCRIPT

1

第 4 章 有限體

2

簡介 有限體在密碼學日漸益重要 許多密碼學演算法,都很依賴有限體的特

性,尤其是進階加密標準( AES )和橢圓曲線密碼學

群 (groups) 、環 (rings) 、和體 (fields) 是抽象代數或現代代數的基本要素

在抽象代數中,我們關心的是哪些集合元素可以代數運算

3

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

算的元素集合 對 G 裡的每組元素( a, b )來說,( a‧b )

也是 G 裡的元素 ( 即符合封閉性 closure) 還必須遵守:

結合性: (a.b).c = a.(b.c) 單位元素: e: e.a = a.e = a 反元素: a.a’= e

若 a.b = b.a 即為交換群 (abelian group)

請問 {N, +}是群嗎?

4

循環群 Cyclic Group 將群的重複運算定義為群的指數運算:a3 = a.a.a

此外也定義: e=a0 和 a-n = (a’)n

假如 G 裡的每個元素都是某固定元素 a 的指數 ( 可以為負 ) , G 就是循環群 a: generator ( 產生器 )

循環群必為交換群,而且可能是有限群或無限群

請舉出一個循環群和其生成子!

5

環 (ring) 含兩個二元運算(加法和乘法)的數值 加法交換群:

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

若滿足乘法交換性,即為交換環 整數域 (integral domain)

乘法單位元素 0 不可為除數

{Z, +, } 是否為 ring?

{Z, +, } 是否為 integral domain?

6

體 Field 「體」(有時表示成 {F, + , ×} )是具有

兩個二元運算的元素集合 「體」是可以計算加法、減法、乘法、除

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

複數

7

群、環、體

8

模數運算 若 a 為整數、 n 為正整數

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

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

11 mod 7 = ? -11 mod 7 = ?

9

除數 若 b ≠ 0 而 a 、 b 、 m 皆為整數,且某個

數值 m 能讓a = mb 表示 b 能整除 a 也就是 b 除以 a 不會有餘數 通常以 b | a 表示 b 能整除 a 而 b 也就是 a 的因數 (divisor)

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

10

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

11

模數算術 Zn 是小於 n 的非負整數集合:Zn = {0, 1, … , n-1}

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

一般運算所沒有的兩項特性: 若 (a+b)=(a+c) mod n,則 b=c mod n 但 a、 n 互為質數,且若 (a.b)=(a.c) mod n ,則 b=c mod n

12

模數為 8 的模數加法運算+ 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

請畫出 8 的模數乘法運算

13

最大公因數( GCD ) 數論的共同問題 若 a 、 b 、 m 為整數,對 m 來說,如果 a = mb ,

非零的 b 就是 a 的因數 GCD(a, b) 表示 a 和 b 的最大公因數;正整數 c

若符合以下兩點,就是 a 、 b 的最大公因數: c 是 a 、 b 的因數 a 、 b 的任何因數也是 c 的因數 例如 GCD(60,24) = 12

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

14

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

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

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

15

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

16

有限體 (Finite Fields,Galois Fields)

有限體是加密的關鍵角色 我們可以證明有限體的級數(元素數目)

必須是質數的乘冪,也就是 pn ( n 為正整數)

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

GF(p) GF(2n)

17

GF(p) 對質數 p 而言,級數 p 的有限體 GF(p) 定義

成整數集合 Zp {0, 1, …, p-1} ,以及算術運算模數 p ,會形成有限體 因為每個 0 以外的元素都含有乘法反元素!

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

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

18

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

19

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

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

return A3 = gcd(m, b); no inverse3. if B3 = 1

return B3 = gcd(m, b); B2 = b–1 mod m4. Q = A3 div B35. (T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q

B3)6. (A1, A2, A3)=(B1, B2, B3)7. (B1, B2, B3)=(T1, T2, T3)8. goto 2

20

GF(1759) 裡的 550 乘法反元素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

21

多項式運算 n 階多項式( polynomial )可表示為(整

數 n 0≧ ):f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi

多項式運算分成三種不同類型: 使用代數基本規則的一般多項式運算 將係數取 p 同餘的多項式運算 係數是在 GF(p) 裡、而且定義成多項式 m(x) 同

餘的多項式運算( m(x) 的最高次方為整數 n )

22

一般多項式運算 這類多項式是以係數集合定義 多項式的加法和減法是以係數處理 例如 f(x) = x3 + x2 + 2 且 g(x) = x2 – x + 1 ,

那麼:f(x) + g(x) = x3 + 2x2 – x + 3f(x) – g(x) = x3 + x + 1f(x) x g(x) = x5 + 3x2 – 2x + 2

23

係數在 Zp 的多項式運算 係數可以是「體」 F 的元素 這種情況的多項式所形成的集合會是環,

因此稱為多項式環 ( 將每個多項式視為元素 )

大多對 mod 2 最感興趣 也就是所有係數皆為 0 或 1 例如 f(x) = x3 + x2 且 g(x) = x2 + x + 1 ,那麼:

f(x) + g(x) = x3 + x + 1f(x) x g(x) = x5 + x2

其加法單位元素為何?

24

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

f(x) = q(x) g(x) + r(x) 可解釋 r(x) 是為餘數 r(x) = f(x) mod g(x)

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

如果 g(x) 除了 1 和本身以外,沒有其他的因數多項式,稱為不可分解或質數多項式

GF(2)中的 x4+1可分解嗎?

GF(2)中的 x3+x+1可分解嗎?

25

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

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

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

26

建立 GF(2n) 模數多項式算術

係數為取 2 同餘 維度大於 n 之多項式取 m(x) 之同餘多項式,

其中 m(x) 為某一最高維度為 n 之質數多項式 在 GF(23) 中, m(x) = x3+x2+1 OR m(x) = x3+x+1

由此種算術形成有限體 每個元素有在其乘法反元素

27

範例 GF(23) 的 (x2+1) 是 1012 , (x2+x+1) 是 1112

加法運算 (x2+1) + (x2+x+1) = x 101 XOR 111 = 0102

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

= x3+x+x2+1 = x3+x2+x+1 011.101 = (101)<<1 XOR (101)<<0 =

1010 XOR 101 = 11112 (get q(x) & r(x))

(x3+x2+x+1 ) mod (x3+x+1) = 1.(x3+x+1) + (x2) = x2

1111 mod 1011 = 1111 XOR 1011 = 01002

28

範例 GF(23)

29

找出乘法反元素的演算法

30

求 x7+x+1 在GF(28)之乘法反元素範例

31

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

限體 級數為 q 的有限體 F 產生器 g 是一個元素,這個

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

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

有限體的產生器

32

GF(23)之 generator m(x): x3+x+1 f(g) = g3 + g + 1 = 0 g3 = g + 1 g4 = g(g3) = g(g + 1) = g2 + g g5 = g(g4) = g(g2 + g) = g3 + g2 = g2 + g + 1 ….

33

34

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