Download presentation
1
代數概論 劉兆樑
2
簡介 群(Group)、環(Ring)、和體(Field)是抽象代數或現代代數的基本要素。 代數在近代密碼學上的扮演極為重要的角色。例如:
RSA: 環。 ElGamal: GF(p)。 進階加密標準(AES): GF(28) 。 橢圓曲線密碼學(Elliptic Curve Cryptosystem ECC): EC加法群。
3
在抽象代數中,我們關心的是哪些集合元素可以進行代數運算,透過這些運算呈現這些集合元素間的特殊結構性。
代數學除了研究這些結構外,更進一步研究這些結構間的相互關係。 因此我們先介紹其中最重要的代數結構群、環、體。
4
群 「群」(有時表示成{G,‧})是內含二元運算的元素集合。
對G裡的每組元素(a, b)來說,a‧b = c, c in G (c也是G裡的元素)。 封閉性,這是最基本要求,如果違反則ㄧ切免談 必須遵守: 結合性:(a‧b) ‧c = a‧ (b‧c) 半群 單位元素e :e‧a = a‧e = a 單群 反元素: a‧a’= e 群 (N, +), (Z, +), (Z, ×), (Q, +), (Q, ×), … 若滿足a‧b = b‧a 即為交換群
5
Examples {N, +}: 並不是群 ,但是我們卻希望透過某些轉換可以展現出群的特性,這個轉換就是我們所知道的等價關係,透過建立出的等價關係可以將N切割成許多大小相同的等價類(集合),而這些等價類所形成的集合(集合的集合)可形成群。 例如: 我們利用等價關係mod 6 反身性: a ≡ a mod 6 對稱性: a ≡ b mod 6 b ≡ a mod 6 遞移性: a ≡ b mod 6, b ≡ c mod 6 a ≡ c mod 6 N = N0∪ N1 ∪ N2 ∪ N3 ∪ N4 ∪ N5 N0 = {0, 6, 12, 18, …} N1 = {1, 7, 13, 19, …}
6
Examples + 1 2 3 4 5 {G, +} = {0, 1, 2, 3, 4, 5} = Z6 mod 6 封閉性 OK
0 + 0 = 0 1 + 5 = 0 2 + 4 = 0 3 + 3 = 0 4 + 2 = 0 5 + 1 = 0 + 1 2 3 4 5
7
Examples × {G, ×} = {0, 1, 2, 3, 4, 5} 1 2 3 4 5 mod 6 封閉性 OK 結合性 OK
0 × ? = 1 1 × ? = 1 2 × ? = 1 3 × ? = 1 4 × ? = 1 5 × ? = 1 × 1 2 3 4 5
8
Examples × {G*, ×} = {1, 2, 3, 4, 5} 1 2 3 4 5 mod 6 封閉性 X 結合性 OK
1 × 1 = 1 2 × ? = 1 3 × ? = 1 4 × ? = 1 5 × 5 = 1 × 1 2 3 4 5
9
Examples × {G*, ×} = {1, 2, 3, 4, 5, 6} 1 2 3 4 5 6 mod 7 封閉性 OK
1 × 1 = 1 2 × 4 = 1 3 × 5 = 1 4 × 2 = 1 5 × 3 = 1 6 × 6 = 1 × 1 2 3 4 5 6
10
Examples 11 = 1, 12 = 1, … order(1) = 1 21 = 2, 22 = 4, 23 = 1,
24 = 2, 25 = 4, 26 = 1 … order(2) =3. 31 = 3, 32 = 2, 33 = 6, 34 = 4, 35 = 5, 36 = 1, 37 = 3, 38 = 2, 39 = 6, 310 = 4, 311 = 5, 312 = 1 … order(3) = 6. 41 = 4, 42 = 2, 43 = 1, 44 = 2, 45 = 4, 46 = 1 … order(4) =3.
11
Examples 51 = 5, 52 = 4, 53 = 6, 54 = 2, 55 = 3, 56 = 1, 57 = 5, 58 = 4, 59 = 6, 510 = 2,511 =3,512 =1 … order(5) = 6. 61 = 6, 62 = 1, = 6, 64 = 1, order(6) =2. order = 6 =φ(7) 所有元素個數)者稱為原根。上例中生成子有3與5兩個 2 = φ(φ(7) ) Note: 知道一個原根則可找出所有的原根,例如上題知道3為原根則35 = 5亦為原根。即取與φ(7)互質之整數次方。(1, 5)
12
循環群 將群的重複運算定義為群的指數運算: a3 = a.a.a 此外也定義:e=a0
假如G裡的每個元素都是固定元素的指數,G就是循環群,此固定元素又稱為生成子。 (Z, +)生成子為? 循環群必為交換群,而且可能是有限群或無限群
13
環 一群內含兩個二元運算(加法和乘法)的數值 加法交換群,並滿足: 若滿足乘法交換性,即為交換環 整數域 體: 乘法反元素,乘法交換性。
乘法封閉性 乘法結合性 分配律:a(b+c) = ab + ac 若滿足乘法交換性,即為交換環 整數域 乘法單位元素(1, 加法單位元0) 0不可為除數 (不具有零除元,亦即a×b=0但是a≠0, b ≠0) 體: 乘法反元素,乘法交換性。 乘法半群
14
體 「體」(有時表示成{F, +, ×})是具有兩個二元運算的元素集合 「體」是可以計算加法、減法、乘法、除法的集合
除法規則的定義是a/b = a( b-1) 「體」常見的例子包括了有理數、實數、複數
15
群、環、體
16
有限體 有限體在加解密演算法中扮演關鍵的角色 有限體的元素個數必須是質數的乘冪,也就是pn(n為正整數)
級數Pn的有限體通常以GF(Pn)表示 經常使用: GF(p), GF(pn) GF(2n)
17
GF(p) 對質數p而言,級數p的有限體GF(p)定義成整數集合Zp {0, 1, …, p-1},以及算術運算模數p
因為w 與p 互質,所以若將Zp的所有元素乘上w ,產生的餘數將會是所有Zp元素的重排,因此其中某個餘數必為1 Zp 裡的某些整數乘上w 之後的餘數為1。這種整數是w 的乘法反元素,稱為w-1,因此Zp 實際上就是有限體
18
同餘運算 若a 為整數、n 為正整數 將a mod n 的值定義為a 除n 的餘數 整數n稱為模數
若(a mod n ) =( b mod n ) 整數a、b是n的同餘 寫成a ≡ b (mod n) b是a mod n的餘數
19
因數 若b ≠ 0而a 、b 、m 皆為整數,且某個數值m能讓 a = mb 例如1,2,3,4,6,8,12,24都可以整除24
通常以b|a表示b 能整除a 而b也就是a的因數 例如1,2,3,4,6,8,12,24都可以整除24
20
模數算術 若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)
21
模數算術 Zn是小於n的非負整數集合: Zn = {0, 1, … , n-1}
一般運算所沒有的兩項特性: 若(a+b) = (a+c) mod n,則b = c mod n (b未必=c) 若a, n互質,且(a×b)=(a×c) mod n,則b = c mod n
22
6×3 mod 8 6×7 mod 8
23
模8下的模數加法運算 + 1 2 3 4 5 6 7
24
最大公因數(GCD) 數論的共同問題 若a、b、m為整數,對m來說,如果a = mb,若b≠0 則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互質)
25
歐幾里德演算法 找出最大公因數的有效方法 對任何非負整數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
26
範例:GCD(1970,1066) 1970 = 1 x gcd(1066, 904) 1066 = 1 x gcd(904, 162) 904 = 5 x gcd(162, 94) 162 = 1 x gcd(94, 68) 94 = 1 x gcd(68, 26) 68 = 2 x gcd(26, 16) 26 = 1 x gcd(16, 10) 16 = 1 x gcd(10, 6) 10 = 1 x gcd(6, 4) 6 = 1 x gcd(4, 2) 4 = 2 x gcd(2, 0)
27
GF(7) 乘法範例 1 2 3 4 5 6
28
找出乘法反元素 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 inverse 3. if B3 = 1 return B3 = gcd(m, b); B2 = b–1 mod m 4. Q = A3 div B3 5. (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
29
GF(1759)裡的550乘法反元素 Q A1 A2 A3 B1 B2 B3 — 1 1759 550 3 –3 109 5 –5 16
1759 550 3 –3 109 5 –5 16 21 106 –339 4 –111 355 5. (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)
30
多項式運算 n 階多項式(polynomial)可表示為(整數n ≧ 0): 多項式運算分成三種不同類型:
f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi 多項式運算分成三種不同類型: 使用代數基本規則的一般多項式運算 將係數取p 同餘的多項式運算 係數是在GF(p)裡、而且定義成多項式m(x)同餘的多項式運算(m(x)的最高次方為整數n)
31
一般多項式運算 這類多項式是以係數集合定義 多項式的加法和減法是以係數處理
例如 f(x) = x3 + x2 + 2且 g(x) = x2 – x + 1,那麼: f(x) + g(x) = x3 + 2x2 – x + 3 f(x) – g(x) = x3 + x + 1 f(x) x g(x) = x5 + 3x2 – 2x + 2
32
係數在Zp的多項式運算 係數可以是「體」F的元素 這種情況的多項式所形成的集合會是環,因此稱為多項式環 大多對 mod 2 最感興趣
也就是所有係數皆為0或1 例如 f(x) = x3 + x2 且 g(x) = x2 + x + 1,那麼: f(x) + g(x) = x3 + x + 1 f(x) x g(x) = x5 + x2
33
多項式除法 任何多項數可寫成: 如果沒有餘數 如果g(x)沒有1和本身以外的因數,稱為不可分解或質式
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和本身以外的因數,稱為不可分解或質式
34
找出最大公因數 可以改寫歐幾里德演算法來計算: 找出多項式的最大公因數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
35
範例 GF(23)
36
範例 GF(23)的 (x2+1) 是 1012,(x2+x+1) 是 1112 加法運算 乘法運算 (get q(x) & r(x))
(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 = (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
37
使用產生器 利用相同的不可分解多項式,也能定義GF(2n)有限體
級數為q的有限體F產生器g是一個元素,這個元素的第一個q – 1次方能產生F所有非零元素 也就是說,這個F的元素是由0, g0, g1, …, gq-2組成 如果f(b) = 0,F裡的元素b就稱為根 不可分解多項式的根g,就是定義在此多項式的有限體的產生器
38
總結 群、環、體 整數模數算術 歐幾里德演算法 GF(p)有限體 GF(2n)多項式運算
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.