Tài liệu cung cấp thông tin chi tiết về một chủ đề cụ thể. Nó bao gồm các khía cạnh quan trọng và phân tích sâu về vấn đề. Nội dung được cấu trúc rõ ràng và dễ hiểu.
Chương4: Trường hữu hạn Chapter 4 – Finite Fields Fourth Edition by William Stallings Lecture slides by Lawrie Brown
2.
Mở đầu IntroductionGiớ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
3.
Nhóm - GroupCho 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
4.
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
5.
Vành - RingTậ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
6.
Trường - FieldTrườ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
7.
Số học trênmodule Modular 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.
8.
Module 7 -12mod 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 ...
9.
Ướ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
10.
Các phép toánsố học trên Module Modular 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
11.
Số học trênmodule 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
Ví dụ cácphép toán trên module Áp dụng các tính chất của modulo: (11*19 + 10 17 ) mod 7 = ((11*19) mod 7 + 10 17 mod 7) mod 7 = ((11 mod 7* 19 mod 7) mod 7 + (10 mod 7) 17 mod 7) mod 7= ((4.(-2)) mod 7 + (((3 2 ) 2 ) 2 ) 2 * 3 mod 7)mod 7= ((-1) mod 7 + ((2 2 ) 2 ) 2 * 3 mod 7)mod 7 = (-1 + 5) mod 7 = 4
14.
Ước số chung lớn nhất Greatest 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
15.
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
16.
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)
17.
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(2 n )
18.
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.
Tìm số nghịchđảo Finding 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 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
21.
Giải thích Cácquan hệ sau là bất biến: mT 1 + bT 2 = T 3 ; mA 1 + bA 2 = A 3 ; mB 1 +bB 2 =B 3 Vì ban đầu: m.1 + b.0 = m; m.0 +b.1 = b Khi B 3 = 1: mB 1 +bB 2 =1 bB 2 = 1+ mB 1 bB 2 = 1 mod m Do đó: B 2 = b -1 mod m
Số học đathức Polynomial Arithmetic Sử dụng các đa thức bậc nhỏ hơn hoặc bằng n f ( x ) = a n x n + a n-1 x n-1 + … + a 1 x + a 0 = ∑ a i x i 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))
24.
Phép toán đathức thông thường Ordinary 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 ) = x 3 + x 2 + 2 and g ( x ) = x 2 – x + 1 f ( x ) + g ( x ) = x 3 + 2 x 2 – x + 3 f ( x ) – g ( x ) = x 3 + x + 1 f ( x ) x g ( x ) = x 5 + 3 x 2 – 2 x + 2
25.
Phép toán đathứ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 ) = x 3 + x 2 and g ( x ) = x 2 + x + 1 f ( x ) + g ( x ) = x 3 + x + 1 f ( x ) x g ( x ) = x 5 + x 2
26.
Phép toán đathứ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 x 3 + x + 1 là nguyên tố; x 4 + 1 không nguyên tố (x 4 + 1 = (x + 1)(x 3 + x 2 + x + 1) Số học đa thức theo module của đa thức nguyên tố tạo thành trường
27.
Đa thức ướcchung 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
28.
Phép toán đathức với module đa thức Có thể tính trên trường GF(2 n ) Đ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
Xét về mặttí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ư
31.
Computational Example in GF(2 3 ) have (x 2 +1) is 101 2 & (x 2 +x+1) is 111 2 so addition is (x 2 +1) + (x 2 +x+1) = x 101 XOR 111 = 010 2 and multiplication is (x+1).(x 2 +1) = x.(x 2 +1) + 1.(x 2 +1) = x 3 +x+x 2 +1 = x 3 +x 2 +x+1 011.101 = (101)<<1 XOR (101)<<0 = 1010 XOR 101 = 1111 2 polynomial modulo reduction (get q(x) & r(x)) is (x 3 +x 2 +x+1 ) mod (x 3 +x+1) = 1.(x 3 +x+1) + (x 2 ) = x 2 1111 mod 1011 = 1111 XOR 1011 = 0100 2
32.
Sử dụng phầntử sinh Using 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, g 0 , g 1 , …, g q-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ố
33.
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(2 n )
Editor's Notes
#2 Lecture slides by Lawrie Brown for “Cryptography and Network Security”, 4/e, by William Stallings, Chapter Chapter 4 – “Finite Fields”.