Chương 4: Trường hữu hạn Chapter 4 – Finite Fields

33
Chương 4: Trường hữu hạn Chapter 4 – Finite Fields Fourth Edition by William Stallings Lecture slides by Lawrie Brown

description

Chương 4: Trường hữu hạn Chapter 4 – Finite Fields. Fourth Edition by William Stallings Lecture slides by Lawrie Brown. Mở đầu Introduction. Giới thiệu về cấu trúc đại số - trường hữu hạn Đóng vai trò quan trọng trong lý thuyết mã – AES, đường cong Elip, IDEA, khoá công khai - PowerPoint PPT Presentation

Transcript of Chương 4: Trường hữu hạn Chapter 4 – Finite Fields

Page 1: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Chương 4: Trường hữu hạn

Chapter 4 – Finite Fields

Fourth Edition

by William Stallings

Lecture slides by Lawrie Brown

Page 2: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Mở đầuIntroduction

• Giới thiệu về cấu trúc đại số - trường hữu hạn• Đóng vai trò quan trọng trong lý thuyết mã –

AES, đường cong Elip, IDEA, khoá công khai• Liên quan đến các phép toán trên “số”: ở đây

sẽ xét thế nào là “số” và nhiều kiểu phép toán khác nhau

• Bắt đầu từ khái niệm nhóm, vành, trường của đại số trừu tượng

Page 3: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Nhóm - Group

• Cho một tập các phần tử hoặc “số”• Và một phép toán, mà kết quả cũng là

một phần tử của tập hợp đó (tính đóng)• Thỏa mãn:

– Tính kết hợp (a.b).c = a.(b.c)• Có đơn vị e: e.a = a.e = a• Có nghịch đảo a-1:a.a-1 = e• • Nếu có tính giao hoán a.b = b.a, thì gọi là

nhóm Aben

Page 4: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Nhóm xiclic - Cyclic Group

• Định nghĩa lũy thừa như là việc áp dụng lặp phép toán:– Ví dụ: a3 = a.a.a– Và đơn vị e=a^0

• Nhóm được gọi là xiclic nếu mọi phần tử đều là lũy thừa của một phần tử cố định nào đó:– Chẳng hạn b = a^k đối với a và mỗi b trong nhóm– Khi đó a được gọi là phần tử sinh của nhóm

Page 5: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Vành - Ring• Tập các “số” với hai phép toán được gọi là cộng và

nhân, trong đó• Với phép cộng là nhóm Aben• Với phép nhân có

– tính đóng và – tính giao hoán– tính phân phối đối với phép cộng a(b+c) = ab + ac

• Nếu phép nhân có tính giao hoán thì tạo thành vành giao hoán

• Nếu phép nhân có nghịch đảo và không có thương 0, thì nó tạo thành miền nguyên

Page 6: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Trường - Field

• Trường là một tập với hai phép toán – Với phép cộng là nhóm Aben– Với phép nhân là nhóm Aben, trừ phần tử 0– là vành

• Có thể nói là có các phép toán cộng, trừ, nhân, chia số khác 0

a – b = a + (-b)

a / b = a.b-1

Page 7: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Số học trên moduleModular Arithmetic

• Định nghĩa phép toán Module: a mod n là phần dư khi chia a cho n• Sử dụng quan hệ tương đương trên tập số

nguyên a ≡ b mod n khi chia cho n, a và b có phần dư như nhau

– Ví dụ: 100 ≡ 34 mod 11

• Số b được gọi là đại diện của a, nếu a ≡ b mod n (a = qn + b) và 0 <= b <= n-1.

Page 8: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Module 7

-12 mod 7 ≡ -5 mod 7 ≡ 2 mod 7 ≡ 9 mod 7 ở đây 2 là đại diện của –12, -5, 2 và 9. ...

-21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8

-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

...

Page 9: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Ước số - Divisors

• Số b không âm được gọi là ước số của a, nếu có số m sao cho

a = mb với a, b, m đều nguyên.

• Tức là a chia hết cho b, ký hiệu b|a

• Ví dụ: 1, 2, 3, 4, 6, 8, 12, 24 là các ước số của 24

Page 10: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Các phép toán số học trên ModuleModular Arithmetic Operations

• Cho trước một số n • Có thể thực hiện các phép toán trên các số

nguyên• Số học trên module là thực hiện các phép cộng,

nhân thông thường sau đó rút gọn lại bằng phép lấy module

• Có thể rút gọn tại bất cứ thời điểm nào

a+b mod n = [a mod n + b mod n] mod n

a.b mod n = [a mod n . b mod n] mod n

Page 11: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Số học trên module Modular Arithmetic

• Có thể thực hiện các phép toán trên các đại diện:

Zn = { 0, 1, 2, 3, …, n-1 }

• Zn với các phép toán module tạo thành vành giao hoán có đơn vị

• Các chú ý:– nếu (a+b)≡(a+c) mod n thì b≡c mod n– Nhưng (ab)≡(ac) mod n thì b≡c mod n chỉ khi

nếu a là nguyên tố cùng nhau với n

Page 12: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Module 8 với phép cộng Modulo 8 Addition Example

+ 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 13: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Ví dụ các phép toán trên module

Áp dụng các tính chất của modulo:

(11*19 + 1017) mod 7 =

((11*19) mod 7 + 1017 mod 7) mod 7 =

((11 mod 7* 19 mod 7) mod 7

+ (10 mod 7)17 mod 7) mod 7=

((4.(-2)) mod 7 + (((32)2)2)2 * 3 mod 7)mod 7=

((-1) mod 7 + ((22)2)2 * 3 mod 7)mod 7 =

(-1 + 5) mod 7 =

4

Page 14: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Ước số chung lớn nhấtGreatest Common Divisor

(GCD)• Là bài toán chung của lý thuyết số.

• GCD(a,b) là ước số chung dương lớn nhất của a và b.– Ví dụ: –GCD(60,24) = 12

• Nếu hai số a, b nguyên tố cùng nhau thì GCD(a, b) = 1, – Ví dụ GCD(8,15) = 1, – 8 v à 15 là hai số nguyên tố cùng nhau

Page 15: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Thuật toán Ơcơlit Euclidean Algorithm

• Tính chất GCD(a,b) = GCD(b, a mod b)

• Thuật toán Ơcơlit tìm GCD(a, 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

Page 16: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Example 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)

Page 17: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Trường Galoa - Galois Fields

• Trường Galoa đóng vai trò quan trọng trong lý thuyết mã

• Có thể chứng minh được rằng số các phần tử của trường hữu hạn bằng lũy thừa của p^n của sô nguyên tố p

• Được biết đến là trường Galoa, ký hiệu GL(p^n)• Thường sử dụng các trường:

– GF(p)– GF(2n)

Page 18: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Trường Galoa GL(p) Galois Fields GF(p)

• GL(p) gồm tập {0,1, … , p-1}

• Với các phép toán cộng và nhân module

• GL(p) tạo thành trường vì mọi a thuộc {0,1, … , p-1} đều có phần tử nghịch đảo a-1: a . a-1 = 1

• Như vậy trên GL(p) ta có thể thực hiện các phép toán cộng, trừ, nhân, chia.

Page 19: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

GF(7) Multiplication Example

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 20: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Tìm số nghịch đảoFinding Inverses

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 m

4. 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

Page 21: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Giải thích

• Các quan hệ sau là bất biến:– mT1 + bT2 = T3; mA1 + bA2 = A3; mB1+bB2=B3

– Vì ban đầu: m.1 + b.0 = m; m.0 +b.1 = b

• Khi B3 = 1:

– mB1+bB2=1

– bB2 = 1+ mB1

– bB2 = 1 mod m

– Do đó: B2 = b-1 mod m

Page 22: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Inverse of 550 in GF(1759)

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

Page 23: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Số học đa thứcPolynomial Arithmetic

• Sử dụng các đa thức bậc nhỏ hơn hoặc bằng n

f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi

• Có một số cách khác nhau– Có thể thực hiện các phép toán thông thường trên đa

thức– Các phép toán trên đa thức với các hệ số trên module

p– Các phép toán trên đa thức với các hệ số trên mod p

và sau đó lấy mod m(x) (modulo theo đa thức m(x))

Page 24: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Phép toán đa thức thông thườngOrdinary Polynomial Arithmetic

• Phép toán đa thức thông thường

• Cộng trừ các hệ số tương ứng

• Nhân mọi hệ số với cùng một số• eg

let f(x) = x3 + x2 + 2 and g(x) = x2 – x + 1f(x) + g(x) = x3 + 2x2 – x + 3f(x) – g(x) = x3 + x + 1f(x) x g(x) = x5 + 3x2 – 2x + 2

Page 25: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Phép toán đa thức với module hệ số

• Cho số nguyên tố p tùy ý

• Tính các hệ số theo module p – Tạo thành vành

• Quan tâm đến mod 2– là mọi hệ số là 0 hoặc 1 – eg. let f(x) = x3 + x2 and g(x) = x2 + x + 1

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

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

Page 26: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Phép toán đa thức với module đa thức

• Cho đa thức g(x)– Viết f(x) dạng: f(x) = q(x) g(x) + r(x)– Có thể coi r(x) là phần dư – Ta viết: r(x) = f(x) mod g(x)

• Nếu không có phần dư ta nói g(x) là ước của f(x) hay g(x) chia hết f(x)

• Trong trường hợp g(x) không có ước ngoài 1 và chính nó, thì ta nói g(x) là đa thức nguyên tố hoặc không rút gọn được

• VD x3 + x + 1 là nguyên tố; x4 + 1 không nguyên tố (x4 + 1 = (x + 1)(x3 + x2 + x + 1)

• Số học đa thức theo module của đa thức nguyên tố tạo thành trường

Page 27: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Đa thức ước chung lớn nhất

• c(x) = GCD(a(x), b(x)) nếu c(x) là đa thức bậc lớn nhất mà chia hết cả a(x), b(x)

• Có thể điều chỉnh thuật toán Euclid để tìm

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

Page 28: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Phép toán đa thức với module đa thức

• Có thể tính trên trường GF(2n)

• Đa thức với các hệ số module 2 và bậc nhỏ hơn bằng n,

• Có thể rút gọn theo module của đa thức nguyên tố bậc n (đối với phép nhân)

• Tạo thành trường hữu hạn

• Có thể tìm được nghịch đảo nhờ thuật toán Euclide mở rộng

Page 29: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Example GF(23)

Page 30: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Xét về mặt tính toán

• Vì các hệ số là 0, 1 nên các đa thức có thể biểu diễn như các xâu bit

• Phép cộng trở thành XOR trên các xâu bit đó

• Nhân trở thành Shift và XOR

• Phép tính module đa thức nguyên tố thực hiện bằng phép lặp thế bậc cao nhất với phần dư

Page 31: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Computational Example

• in GF(23) have (x2+1) is 1012 & (x2+x+1) is 1112

• so addition is– (x2+1) + (x2+x+1) = x – 101 XOR 111 = 0102

• and multiplication is– (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

• polynomial modulo reduction (get q(x) & r(x)) is– (x3+x2+x+1 ) mod (x3+x+1) = 1.(x3+x+1) + (x2) = x2

– 1111 mod 1011 = 1111 XOR 1011 = 01002

Page 32: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Sử dụng phần tử sinhUsing a Generator

• Tương đương với trường hữu hạn

• Phần tử sinh là phần tử mà mọi lũy thừa của nó sinh ra mọi số khác 0– Trong F có 0, g0, g1, …, gq-2

• Có thể tạo nên phần tử sinh bằng cách lấy căn của các đa thức nguyên tố

• Sau đó định nghĩa phép nhân bằng cách lấy tổng số mũ của cùng cơ số

Page 33: Chương 4:  Trường hữu hạn Chapter 4 – Finite Fields

Summary

• have considered:– concept of groups, rings, fields– modular arithmetic with integers– Euclid’s algorithm for GCD– finite fields GF(p)– polynomial arithmetic in general and in GF(2n)