... Mỗi bên có khoá công khai khoá bí mật Bên gửi dùng khoá công khai bên nhận để mã hoá Bên nhận dùng khoá bí mật để giải mã Hoàng Thu Phương - Khoa ATTT Giới thiệu Hệ mật RSA: – Hệ mật xếp ba... trường hữu hạn Hệ mật đảm bảo độ mật với số khoá nhỏ hệ mật khoá công khai khác Hoàng Thu Phương - Khoa ATTT Giới thiệu Một ý quan trọng hệ mật khoá công khai không đảm bảo độ mật tuyệt đối (an... hệ mật khoá công khai Hoàng Thu Phương - Khoa ATTT Giới thiệu Trong hệ mật khóa đối xứng khóa phải chia sẻ hai bên kênh an toàn trước gửi mã Trên thực tế điều khó đảm bảo Ý tưởng hệ mật khoá
Chương 3. Mật mã khoá công khai 2 Hoàng Thu Phương - Khoa ATTT Nội dung chính 1. Giới thiệu 2. Một số kiến thức toán học 3. Một số hệ mật khoá công khai 3 Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu 4 Trong hệ mật khóa đối xứng thì khóa phải được chia sẻ giữa hai bên trên một kênh an toàn trước khi gửi một bản mã bất kì. Trên thực tế điều này rất khó đảm bảo. Ý tưởng về một hệ mật khoá công khai được Diffie và Hellman đưa ra vào năm 1976 Rivesrt, Shamir và Adleman hiện thực hóa ý tưởng trên vào năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA.. Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu Đặc điểm của hệ mật KCK: – - 5 Mỗi bên có một khoá công khai và một khoá bí mật. Bên gửi dùng khoá công khai của bên nhận để mã hoá. Bên nhận dùng khoá bí mật của mình để giải mã. Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu Hệ mật RSA: – Hệ mật xếp ba lô Merkle - Hellman: – 6 Độ bảo mật của hệ RSA dựa trên độ khó của việc phân tích ra thừa số nguyên lớn Hệ này và các hệ liên quan dựa trên tính khó giải của bài toán tổng các tập con (bài toán này là bài toán NP đầy đủ). Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu Hệ mật McEliece: – Hệ mật ElGamal: – 7 Hệ này dựa trên lý thuyết mã đại số và vẫn còn được coi là an toàn. Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính (cũng là một bài toán NP đầy đủ) Hệ mật ElGamal dựa trên tính khó giải của bài toán logarithm rời rạc trên các trường hữu hạn Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu Hệ mật Chor-Rivest: – Hệ mật trên các đường cong Elliptic: – 8 Hệ mật Chor-Rivest cũng được xem như mọt hệ mật xếp ba lô. Tuy nhiên nó vẫn được coi là an toàn Các hệ mật này là biến tướng của các hệ mật khác (chẳng hạn như hệ mật ElGamal), chúng làm việc trên các đường cong Elliptic chứ không phải là trên các trường hữu hạn. Hệ mật này đảm bảo độ mật với số khoá nhỏ hơn các hệ mật khoá công khai khác. Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu 9 Một chú ý quan trọng là một hệ mật khoá công khai không bao giờ có thể đảm bảo được độ mật tuyệt đối (an toàn vô điều kiện). Ta chỉ nghiên cứu độ mật về mặt tính toán của các hệ mật này. Hoàng Thu Phương - Khoa ATTT 1. Giới thiệu Một số khái niệm trong hệ mật KCK: – Đặc tính một chiều: Hàm mã khoá công khai ek của Bob phải là một hàm dễ tính toán. Song việc tìm hàm ngược (hàm giải mã) rất khó khăn (đối với bất kỳ ai không phải là Bob) – 10 Ví dụ: Giả sử n là tích của hai số nguyên tố lớn p và q, giả sử b là một số nguyên dương. Khi đó hàm f(x) = xb mod n là một hàm một chiều. Hàm cửa sập một chiều: thông tin bí mật cho phép Bob dễ dàng tìm hàm của ek. Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học 11 Cấu trúc đại số Số học modulo Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Cấu trúc đại số: – Định nghĩa nhóm. Tập hợp G đó với phép toán . đã cho được gọi là nhóm, nếu nó thỏa mãn các tính chất sau với mọi phần tử a, b, c thuộc G: 12 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ó thêm tính giao hoán a.b = b.a, thì gọi là nhóm Aben hay nhóm giao hoán. Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học – Định nghĩa nhóm xyclic. 13 Đị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=a0 Một nhóm được gọi là xyclic 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 = ak đối với a cố định và mỗi b trong nhóm. Khi đó a được gọi là phần tử sinh của nhóm. Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học – Vành: Cho một tập R các “số” với hai phép toán được gọi là cộng và nhân. Ở đây “số” được hiểu là phần tử của tập hợp và hai phép toán trên xác định trên tập hợp đó. Tập với hai phép toán trên được gọi là vành, nếu hai phép toán thoả mãn các tính chất sau: Với phép cộng, R là nhóm Aben Với phép nhân, có: – – – 14 tính đóng và tính kết hợp 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 (tức là không có hai phần khác 0 mà tích của chúng lại bằng 0), thì nó tạo thành miền nguyên Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học – Trường là một tập hợp F với hai phép toán cộng và nhân, thoả mãn tính chất sau: Với phép cộng F là nhóm Aben Với phép nhân F trừ phần tử 0 là nhóm Aben. F là một vành Có thể nói là có các phép toán cộng, trừ, nhân, chia số khác 0. Phép trừ được coi như là cộng với số đối của phép cộng và phép chia là nhân với số đối của phép nhân: a– b = a + (-b) – a / b = a.b-1 Ví dụ: Dễ dàng thấy, với phép cộng và nhân thông thường: 15 Tập số nguyên Z là nhóm Aben với phép cộng Tập số nguyên Z là vành giao hoán. Tập số hữu tỉ Q là trường. Tập số thực R là trường. Tập số phức C là trường với phép cộng và nhân hai số phức. Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Số học modulo – – 16 Cho số tự nhiên n và số nguyên a. Ta định nghĩa: a mod n là phần dư dương khi chia a cho n. Định nghĩa quan hệ tương đương trên tập số nguyên a ≡ b mod n khi và chỉ khi a và b có phần dư như nhau khi chia cho n. Hoàng Thu Phương - Khoa ATTT – 2. Một số kiến thức toán học – – – – – – 17 Ví dụ: 100 mod 11 = 1; 34 mod 11 = 1, nên 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 0 R = A mod B A = B, B = R return A 26 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học 27 Ví dụ: GCD(1970,1066) 1970 = 1 x 1066 + 904 1066 = 1 x 904 + 162 904 = 5 x 162 + 94 162 = 1 x 94 + 68 94 = 1 x 68 + 26 68 = 2 x 26 + 16 26 = 1 x 16 + 10 16 = 1 x 10 + 6 10 = 1 x 6 + 4 6=1x4+2 4=2x2+0 gcd(1970, 1066) = 2 gcd(1066, 904) gcd(904, 162) gcd(162, 94) gcd(94, 68) gcd(68, 26) gcd(26, 16) gcd(16, 10) gcd(10, 6) gcd(6, 4) gcd(4, 2) Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Trường Galoa – – 28 Ta muốn đi tìm một trường số có hữu hạn các phần tử, tức là một tập hữu hạn các phần tử mà ở đó có thể cộng trừ, nhân, chia mà không vượt ra ngoài phạm vi tập hữu hạn các phần tử đó. Trường Galoa thuộc lọai đó và đó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ất kỳ bằng lũy thừa của pm của sô nguyên tố p nào đó, ta ký hiệu trường Galoa đó là GL(pm). Thông thường ta sử dụng các trường: GL(p) và GL(2m).Sau đây chúng ta sẽ xây dựng các trường Galoa đó. Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Trường Galoa GL(p), với p là số nguyên tố. – – – – 29 GL(p) gồm tập {0,1, … , p-1}. Với các phép toán cộng và nhân Modulo, như ta đã biết GL(p) tạo thành một vành giao hoán. Vì p là số nguyên tố nên mọi số khác 0 nhỏ hơn p đều nguyên tố cùng nhau với p. GL(p) tạo thành trường vì mọi a thuộc {1, … , p-1} đều có phần tử nghịch đảo a-1: a . a-1 = 1. Thực vậy vì a và p nguyên tố cùng nhau nên theo thuật toán tìm nghịch đảo dưới đây ta sẽ tìm được nghịch đảo của a. 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. Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học 30 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học 31 Tìm số nghịch đảo: Bây giờ ta xét bài toán: nếu GCD(m, b) = 1, thì tìm nghịch đảo của b theo Modulo m. Ta mở rộng thuật toán Ơcơlit vừa tìm ước chung lớn nhất của m và b, vừa tính nghịch đảo trong trường hợp GCD(m, b) = 1. Thuật toán Euclid mở rộng: 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 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Chứng minh tính đúng đắn của thuật toán Ơcơlit mở rộng. Áp dụng thuật toán mở rộng với các đầu vào: – – 32 b = 550; m = 1759 b = 4864; m = 3458 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học GCD(1759, 550) = 1 và 550-1 mod 1759 = 355 33 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Số học đa thức – Ta xét tập các đa thức Pn có bậc nhỏ hơn hoặc bằng n: n f(x) = an – 34 xn + an-1 xn-1 i a x + …+ a1x + a0 = i i 0 Trên tập các đa thức đó ta có thể có một số cách khác nhau thực hiện các phép toán cộng và nhân đa thức Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học – 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ố. – 35 Ví dụ: f(x) = x3 + x2 + 2 và g(x) = x2 – x + 1 f(x) + g(x) = x3 + 2x2 – x + 3 f(x) – g(x) = x3 + x + 1 f(x) . g(x) = x5 + 3x2 – 2x + 2 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học – Phép toán đa thức với Modulo hệ số Cho số nguyên tố p tùy ý Tính các hệ số theo Modulo p. Khi đó tập các hệ số được lấy từ trường GL(p). Còn phép nhân đa thức có thể nhận được kết quả là đa thức bậc lớn hơn n. Ta thường quan tâm đến Mod 2, tức là mọi hệ số là 0 hoặc 1 – 36 Ví dụ: f(x) = x3 + x2 và g(x) = x2 + x + 1 f(x) + g(x) = x3 + x + 1 f(x) . g(x) = x5 + x2 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Phép toán đa thức với Modulo đa thức Cho đa thức g(x) bậc n và các hệ số của các đa thức xét trong mục này lầy trong trường Galoa GF(p) với p là số nguyên tố. Viết đa thức f(x) dưới dạng: f(x) = q(x) g(x) + r(x) trong đó r(x) là phần dư khi chia f(x) cho g(x). Rõ ràng bậc của r(x) sẽ nhỏ hơn bậc của g(x).Ta viết: r(x) = f(x) mod g(x) – 37 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học 38 Nếu không có phần dư, tức là r(x) = 0, ta nói g(x) là ước của f(x) hay g(x) chia hết f(x) hay f(x) chia hết cho g(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. Ví dụ g(x) = x3 + x + 1 là đa thức nguyên tố. Việc tìm ước chung lớn nhất của hai đa thức được trình bày trong thuật toán tương tự như Ơcolit như sau: Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Tìm đa thức ước chung lớn nhất GCD(a(x), b(x)) – – 39 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’s Algorithm để tìm nó: 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 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Phép toán đa thức với Modulo đa thức. – – 40 Cho g(x) là đa thức nguyên tố bậc n. Khi đó tập các đa thức bậc nhỏ hơn bằng n với các phép toán cộng và nhân đa thức theo Modulo của đa thức nguyên tố g(x) tạo thành trường hữu hạn, gọi là trường Galoa và ký hiệu là GL(pn). Sau đây ta xét trường GF(2n), tức là xét tập các đa thức với các hệ số Modulo 2 và bậc nhỏ hơn bằng n và phép toán nhân có thể rút gọn theo Modulo của đa thức g(x) nguyên tố bậc n Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Ví dụ GF(23) 41 Hoàng Thu Phương - Khoa ATTT 2. Một số kiến thức toán học Ví dụ: Trong GF(23) ta có (x2+1) tương ứng dãy bít 1012 và (x2+x+1) tương ứng với dãy 1112 Tổng hai đa thức trên là – – Tích của hai đa thức là – – 42 (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)[...]...2 Một số kiến thức toán học Cấu trúc đại số: – Định nghĩa nhóm Tập hợp G đó với phép toán đã cho được gọi là nhóm, nếu nó thỏa mãn các tính chất sau với mọi phần tử a, b, c thuộc G: 12 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ó thêm tính giao hoán a.b = b.a, thì gọi là... với hai phép toán được gọi là cộng và nhân Ở đây “số” được hiểu là phần tử của tập hợp và hai phép toán trên xác định trên tập hợp đó Tập với hai phép toán trên được gọi là vành, nếu hai phép toán thoả mãn các tính chất sau: Với phép cộng, R là nhóm Aben Với phép nhân, có: – – – 14 tính đóng và tính kết hợp 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ì... không có hai phần khác 0 mà tích của chúng lại bằng 0), thì nó tạo thành miền nguyên Hoàng Thu Phương - Khoa ATTT 2 Một số kiến thức toán học – Trường là một tập hợp F với hai phép toán cộng và nhân, thoả mãn tính chất sau: Với phép cộng F là nhóm Aben Với phép nhân F trừ phần tử 0 là nhóm Aben F là một vành Có thể nói là có các phép toán cộng, trừ, nhân, chia số khác 0 Phép trừ được coi như là cộng... tử, tức là một tập hữu hạn các phần tử mà ở đó có thể cộng trừ, nhân, chia mà không vượt ra ngoài phạm vi tập hữu hạn các phần tử đó Trường Galoa thuộc lọai đó và đó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ất kỳ bằng lũy thừa của pm của sô nguyên tố p nào đó, ta ký hiệu trường Galoa đó là GL(pm) Thông thường ta sử dụng các trường: GL(p) và