Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
371,03 KB
Nội dung
Chương 5 Cáchệmậtkhoácôngkhaikhác Trong chương này ta sẽ xem xét một số hệmậtkhoácôngkhai khác. Hệmật Elgamal dựa trên bài toán logarithm rời rạc là bài toán được dùng nhiều trong nhiều thủ tục mật mã. Bởi vậy ta sẽ dành nhiều thời gian để thảo luận về bài toán quan trọng này. ở các phần sau sẽ xem xét sơ lược một số hệmậtkhoácôngkhai quan trọng khác bao gồm cáchệ thoóng loại Elgamal dựa trên các trường hữu hạn và các đường cong elliptic, hệmật xếp ba lô Merkle-Helman và hệmật McElice. 5.1. Hệmật Elgamal và các logarithm rời rạc. Hệmật Elgamal được xây dựng trên bài toán logảithm rời rạc . Chúng ta sẽ bắt đầu băng việc mô tả bài toán bài khi thiết lập môi trường hữu hạn Z p , p là số nguyên tố ( hình 5.1) ( Nhớ lại rằng nhóm nhân Z p * là nhóm cyclic và phần tử sinh của Z p * được gọi là phần tử nguyên thuỷ). Bài toán logarithm rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu và được xem là bài toán khó nếu p được chọn cẩn thận. Cụ thể không có một thuật toán thời gian đa thức nào cho bài toán logarithm rời rạc. Để gây khó khăn cho các phương pháp tấn công đã biết p phải có ít nhất 150 chữ số và (p-1) phải có ít nhất một thừa số nguyên tố lớn. Lợi thế của bài toán logarithm rời rạc trong xây dượng hệmật là khó tìm được các logarithm rời rạc ,song bài toán ngược lấy luỹ thừa lại có thể tính toán hiệu quả theo thuật toán "bình phương và nhân". Nói cách khác , luỹ thừa theo modulo p là hàm một chiều với các số nguyên tố p thích hợp. Elgamal đã phát triển một hệmậtkhoácôngkhai dựa trên bài toán logarithm rời rạc. Hệ thống này được trình bày trên hình 5.2. Hệmật này là một hệ không tất định vì bản mã phụ thuộc vào cả bản rõ x lẫn giá trị ngẫu nhiên k do Alice chọn. Bởi vậy, sẽ có nhiều bản mã được mã từ cùng bản rõ. Hình 2.6 Bài toán logarithm rời rạc trong Zp Hình 2.7 Hệmậtkhoácôngkhai Elgamal trong Zp * Sau đây sẽ nmô tả sơ lược cách làm việc của hệmật Elgamal .Bản rõ x được "che dấu" bằng cách nhân nó với k để tạo y 2 . Giá trị k cũng được gửi đi như một phần của bản mã. Bob -người biết số mũ bí mật a có thể tính được k từ k . Sau đó anh ta sẽ "tháo mặt nạ" bằng cách chia y 2 cho k để thu được x. Đặc trương của bài toán: I = (p,,) trong đó p là số nguyên tố, Zp là phần tử nguyên thuỷ , Zp * Mục tiêu:Hãy tìm một số nguyên duy nhất a, 0 a p- 2 sao cho: a (mod p) Ta s ẽ xác đ ị nh s ố nguyên a b ằ ng log Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khó giải. Cho Zp * là phần tử nguyên thuỷ.Giả sử P = Zp * , C = Zp * Zp * . Ta định nghĩa: K = {(p, ,a,): a (mod p)} Các giá trị p, , được công khai, còn a giữ kín Với K = (p, ,a,) và một số ngẫu nhiên bí mật k Zp-1, ta xác định: e k (x,k) = (y 1 ,y 2 ) trong đó y 1 = k mod p y 2 = x k mod p với y 1 ,y 2 Zp * ta xác định: d k (y 1 ,y 2 ) = y 2 (y 1 a ) -1 mod p Ví dụ 5.1 Cho p = 2579, = 2, a = 765. Khi đó = 2 765 mod 2579 = 949 Bây giờ ta giả sử Alice muốn gửi thông báo x = 1299 tới Bob. Giả sử số ngẫu nhiên k mà cô chọn là k = 853. Sau đó cô ta tính y 1 = 2 853 mod 2579 = 435 y2 = 1299 949853 mod 2579 = 2396 Khi đó Bob thu được bản mã y = (435,2396), anh ta tính x = 2396 (435 765 ) -1 mod 2579 = 1299 Đó chính là bản rõ mà Alice đã mã hoá. 5.1.1. Các thuật toán cho bài toán logarithm rời rạc. Trong phần này ta xem rằng p là số nguyên tố, là phần tử nguyên thuỷ theo modulo p. Ta thấy rằng p và là các số cố định. Khi đó bài toán logarithm rời rạc có thể được phát biểu dưới dạng sau: tìm một số mũ a duy nhất, 0 a p-2 sao cho a (mod p), với Z p * cho trước. Rõ ràng là bài toán logarithm rời rạc (DL) có thể giải bằng một phép tìm kiếm vét cạn với thời gian cỡ O(p) và không gian cỡ O(1) ( bỏ qua các thừa số logarithm). Bằng cách tính toán tất cả các giá trị a có thể và sắp xếp các cặp có thứ tự (a, a mod p) có lưu ý đến các tạo độ thứ hai của chúng, ta có thể giải bài toán DL với thời gian cỡ O(1) bằng O(p) phép tính toán trước và O(p) bộ nhớ ( vẫn bỏ qua các thừa số logarithm). Thuật toán không tầm thường đầu tiên mà chúng ta sẽ mô tả là thuật toán tối ưu hoá thời gian - bộ nhớ của Shanks. Thuật toán Shanks Hình 5.3. Thuật toán Shanks cho bài toán DL. 1. Tính mj mod p, 0 j m-1 2. Sắp xếp m cặp thứ tự ( j, mj mod p) có lưu ý tới các tạo độ thứ hai của các cặp này, ta sẽ thu được một danh sách L 1 3. Tính -i mod p, 0 i m-1 4. Sắp xếp m cặp thứ tự (i, -i mod p) có lưu ý tới các toạ độ thứ hai của các cặp được sắp này, ta sẽ thu được một danh sách L 2 5. Tìm một cặp (j,y) L 1 và một cặp (i,y) L 2 ( tức là một cặp có tạo độ thứ hai như nhau). 6. Xác định log = mj + i mod (p-1) 7. - Nếu cần, các bước 1 và 2 có thể tính toán trước ( tuy nhiên, điều này không ảnh hưởng tới thời gian chạy tiệm cận) - Tiếp theo cần để ý là nếu (j,y) L 1 và (i,y) L 2 thì mj = y = -i Bởi vậy mj+i = như mong muốn. Ngược lại, đối với bất kì ta có thể viết log = mj+i trong đó 0 j,i m-1. Vì thế phép tìm kiếm ở bước 5 chắc chắn thành công. Có thể áp dụng thuật toán này chạy với thời gian O(m) và với bộ nhớ cỡ O(m) ( bỏ qua các thừa số logarithm). Chú ý là bước 5 có thể thực hiện một cách ( đồng thời ) qua từng danh sách L 1 và L 2 . Sau đây là một ví dụ nhỏ để minh hoạ. Ví dụ 5.2. Giả sử p = 809 và ta phải tìm log 3 525. Ta có = 3, = 525 và m = 808 = 29. Khi đó: 29 mod 809 = 99 Trước tiên tính các cặp được sắp (j,99 j mod 809) với 0 j28. Ta nhận được danh sách sau: (0,1) (1,99) (2,93) (3,308) (4,559) (5,329) (6,211) (7,664) (8,207) (9,268) (10,644) (11,654) (12,26) (13,147) (14,800) (15,727) (16,781) (17,464) (18,314) (19,275) (20,582) (21,496) (22,564) (23,15) (24,676) (25,586) (26,575) (27,295) (28,81) Danh sách này sẽ được sắp xếp để tạo L 1 . Danh sách thứ hai chứa các cặp được sắp (i,525(3 i ) -1 mod 809), với 0 i 28. Danh sách này gồm: (0,525) (1,175) (2,328) (3,379) (4,396) (5,132) (6,44) (7,554) (8,724) (9,511) (10,440) (11,686) (12,768) (13,256) (14,,355) (15,388) (16,399) (17,133) (18,314) (19,644) (20,754) (21,496) (22,564) (23,15) (24,676) (25,356) (26,658) (27,489) (28,163) Sau khi sắp xếp danh sách này, ta có L 2 . Bây giờ nếu xử lý đồng thời qua cả hai danh sách, ta sẽ tìm được ( 10,644) trong L 1 và (19,644) trong L 2 . Bây giờ ta có thể tính log 3 525 = 2910+19 = 309 Có thể kiểm tra thấy rằng quả thực 3 309 525 (mod 809). Thuật toán Pohlig - Hellman. Thuật toán tiếp theo mà ta nghiên cứu là thuật toán Pohlig - Hellman. Giả sử p i là số nguyên tố đặc biệt. Giá trị a = log được xác định một cách duy nhất theo modulo p-1. Trước hết nhận xét rằng, nếu có thể tính a mod p i c i với mỗi i, 1 i k, thì có thể tính a mod (p-1) theo định lý phần dư China. Để thực hiện diều đó ta giả sử rằng q là số nguyên tố. p-1 0 (mod q c ) Ta sẽ chỉ ra cách tính giá trị x = a mod q c 0 x q c -1. Ta có thể biểu diễn x theo cơ số q như sau: trong đó 0 a i q-1 với 0 i c-1. Cũng có thể biểu diễn như sau: a = x + q c s với s là một số nguyên nào đó. Bước đầu tiên của thuật toán tính a 0 . Kết quả chính ở đây là: (p-1)/q (p-1)a0/q (mod p) Để thấy rõ điều đó cần chú ý rằng: Điều này đủ để cho thấy: Kết quả này đúng khi và chỉ khi: p-1 0 (mod q c+1 ) Tuy nhiên Đó chính là điều cần chứng minh. Do đó ta sẽ bắt đầu bằng việc tính (p-1)/q mod p. Nếu (p-1)/q 1 (mod p) thì a 0 =0. Ngược lại chúng ta sẽ tính liên tiếp các giá trị: = (p-1)/q mod p, 2 mod p,. . ., cho tới i (p-1)/q (mod p). với một giá trị i nào đó. Khi điều này xảy ra ta có a 0 =i. Bây giờ nếu c = 1 thì ta đã thực hiện xong. Ngược lại, nếu c > 1 thì phải tiếp tục xác định a 1 . Để làm điều đó ta phải xác định 1 = -a o và kí hiệu x 1 = log 1 mod q c Dễ dàng thấy rằng Vì thế dẫn đến Như vậy ta sẽ tính 1 (p-1)/ q 2 mod p và rồi tìm i sao cho Khi đó a 1 = i. Nếu c =2 thì công việc kết thúc; nếu không, phải lặp lại công việc này c-2 lần nữa để tìm a 2 ,. . .,a c-1 . Hình 5.4 là mô tả giải mã của thuật toán Pohlig - Hellman. Trong thuật toán này, là phần tử nguyên thuỷ theo modulo p, q là số nguyên tố . p-1 0 (mod q c ) và Thuật toán tính các giá trị a 0 , . . ., a c-1 trong đó log mod qc Hình 5.4. Thuật toán Pohlig - Hellman để tính log mod q c . 1. Tính = (p-1)/q mod p với 0 i q-1 2. Đặt j = 0 và j = 3. While j c-1 do 4. Tính = j (p-1)/ q j+1 mod p 5. Tìm i sao cho = i 6. a j = i 7. j+1 = j -a j q j mod p 8. j = j +1 Chúng ta minh hoạ thuật toán Pohlig - Hellman (P - H) qua một ví dụ nhỏ. Ví dụ 5.3 Giả sử p=29; khi đó n = p-1 = 28 = 2 2 .7 1 Giả sử = 2 và = 18. Ta phải xác định a = log 2 18. Trước tiên tính a mod 4 rồi tính a mod 7. Ta sẽ bắt đầu bằng việc đặt q = 2, c = 2. Trước hết 0 = 1 và 1 = 28/2 mod 29 = 2 14 mod 29 = 28 Tiếp theo = 28/2 mod 29 = 18 14 mod 29 = 28 Vì a 0 = 1. Tiếp theo ta tính: p-1 0 (mod q c+1 ) 1 = 0 -1 mod 29 = 9 và 1 28/4 mod 29 = 9 7 mod 29 = 28 Vì 1 28 mod 29 Ta có a 1 = 1. Bởi vậy a 3 ( mod 4). Tiếp theo đặt q = 7 và c = 1, ta có 28/7 mod 29 = 18 4 mod 29 = 25 và 1 = 28/7 mod 29 = 2 4 mod 29 = 16. Sau đó tính: 2 = 24 3 = 7 4 = 25 Bởi vậy a 0 = 4 và a 4 ( mod 7) Cuối cùng giải hệ phương trình a 3 ( mod 4) a 4 ( mod 7) bằng định lý phần dư China, ta nhận được a 11( mod 28). Điều này có nghĩa là đã tính được log 2 18 trong Z 29 là 11. Phương pháp tính toán chỉ số. Phương pháp tính chỉ số khá giống với nhiều thuật toán phân tích thừa số tốt nhất. Trong phần này sẽ xét tóm tắt về phương pháp. Phương pháp này chỉ dùng một cơ sở nhân tử là tập B chứa các số nguyên tố nhỏ. Giả sử B = {p 1 ,p 2 ,. . ., p B }. Bước đầu tiên ( bước tiền xử lý) là tìm các logarithm của B số nguyên tố trong cơ sở nhân tử. Bước thứ hai là tính các logarithm rời rạc của phần tử bằng cách dùng các hiểu biết về các log của các phần tử trong cơ sở. Trong quá trình tiền xử lý, ta sẽ xây dựng C = B +10 đồng dư thức theo modulo p như sau: x j p 1 a 1j p2 a 2j . . . p B a Bj (mod p) 1 j C. Cần để ý rằng, các đồng dư này có thể viết tương đương như sau: x j a 1j log p 1 + . . . + a Bj log p B (mod p-1) 1 j C. C đồng dư thức được cho theo B giá trị log p i (1 i B) chưa biết. Ta hy vọng rằng, có một nghiệm duy nhất theo modulo p-1. Nếu đúng như vậy thì có thể tính các logarithm của các phần tử theo cơ sở nhân tử. Làm thế nào để tạo các đồng dư thức có dạng mong muốn?. Một phương pháp sơ đẳng là chọn một số ngẫu nhiên x, tính x mod p và xác định xem liệu x mod p có tất cả các thừa số của nó trong B hay không. (Ví dụ bằng cách chia thử). Bây giờ giả sử rằng đã thực hiện xong bước tiên tính toán, ta sẽ tính giá trị mong muốn log bằng thuật toán xác suất kiểu Las Vegas. Chọn một số ngẫu nhiên s ( 1 s p-2) và tính : = s mod p Bây giờ thử phân tích theo cơ sở B. Nếu làm được điều này thì ta tính được đồng dư thức dạng: s = p 1 c 1 p 2 c 2 . . . p B c B (mod p) Điều đó tương đương với log + s c 1 log p 1 + . . . + c B log p B ( mod p-1) Vì mọi giá trị đều đả biết trừ giá trị log nên có thể dễ dàng tìm được log . Sau đây là một ví dụ minh hoạ 2 bước của thuật toán. Ví dụ 5.4. Giả sử p =10007 và = 5 là một phần tử nguyên thuỷ được dùnglàm cơ sở của các logarithm theo modulo p. Giả sử lấy B = {2, 3, 5, 7} làm cơ sở. Hiển nhiên là log 5 5 = 1 nên chỉ có 3 giá trị log của các phần tử trong cơ sở cần phải xác định. Để làm ví dụ, chọn một vài số mũ "may mắn" sau: 4063, 5136 và 985. Với x = 4063, ta tính 5 4063 mod 10007 = 237 ứng với đồng dư thức log 5 2 + log 5 3 + log 5 7 4063 ( mod 10006). Tương tự, vì 5 5136 mod 10007 = 54 = 23 3 [...]... xác định tường minh các điểm trên E Menezes và Vanstone đã tìm ra một phương án hiệu quả hơn theo phương án này đường cong Elliptic dùng để "che dấu", còn các bản rõ và bản mã hợp lệ là các cặp được sắp tùy ý các phần tử khác không của trường( tức là chúng không đòi hỏi phải là các điểm trên E) Điều này sẽ tạo hệ số mở rộng bản tin là 2 giống như trong hệmật Elgamal ban đầu Hệmật Menezes - Vanstone... toán là đúng Các chi tiết dành cho độc giả xem xét 5.2 Trường hữu hạn và cáchệ thống đương cong elliptic Chúng ta đã dành thời gian đáng kể để xét bài toán logarithm rời rạc (DL) vào việc phân tích số Ta sẽ còn trở lại hai bài toán này trong các loại hệmật và các giao thức mã khác nhau Bài toán DL đã được nghiên cứu trong trương hữu hạn Zp, tuy nhiên việc xét bài toán này theo các thiết lập khác nhau... biến, chúng đã được kiến nghị sử dụng trong cáchệ thống mật mã) Tuy nhiên, nếu tránh các đường cong siêu biến thì lại xuất hiện một đường cong Elliptic có một nhóm con cyclic cỡ 2160 , đường cong này sẽ cho phép thiết lập an toàn một hệmật miễn là bậc của nhóm con phải là bội của ít nhất một thừa số nguyên tố lớn ( nhằm bảo vệ hệ mật khỏi phương pháp tấn công của Pohlig - Hellman) Xét một ví dụ về... -1 mod n Hình 5.9 Hệmật khoá côngkhai Elgamal tổng quát Giả sử G là một nhóm hữu hạn có phép lấy nhóm o Giả sử G là một phần tử sao cho bài toán DL trong H là khó; ở đây H = {i, i 0} là một nhóm con sinh bởi Đặt P = G, C = GG và định nghĩa: K = {(G, , a, ) : = a} Các giá trị , công khai, còn a được giữ kín Với K = (G, , a, ) và với một số ngẫu nhiên bí mật k Z|H| ta xác định:... Menezes - Vanstone được mô tả trên hình 5.10 Nếu trở lại đường cong y2 = x3 + x + 6 trên Z11 ta sẽ thấy rằng hệ mật Menezes - Vanstone có 1010 = 100 bản rõ, trong khi đó hệ mật ban đầu chỉ có 13 bản rõ Ta sẽ minh hoạ phép mã và giải mã trong hệmật này bằng cách sử dụng đường cong trên Hình 3.6 Hệmật trên đường cong Elliptic của Menezes - Vanstone Giả sử E là một đường cong Elliptic trên Zp (p là số... 5.1.2 Độ bảo mật tưng bít của các logarithm rời rạc Bây giờ ta xem xét vấn đề về thông tin bộ phận của các logarithm rời rạc và thử xem việc tính các bít riêng của các logarithm rời rạc là khó hay dễ Cụ thể , xét bài toán trình bày trên hình 5.5 Bài toán này được gọi là bài toán về bít thứ i Trước tiên, ta sẽ chỉ ra rằng, bít thấp nhất của các logarithm rời rạc rất dễ tính toán Nói cách khác, nếu i... mod 11 có phải là một thặng dư bình phương hay không bằng cách áp dụng tiêu chuẩn Euler Ta đã có một công thức tường minh để tính các căn bậc hai của các thặng dư bình phương theo modulo p với các số nguyên tố p 3 (mod 4) áp dụng công thức này, ta có các căn bậc hai của một thặng dư bình phương z là: z(11+1)/4 mod 11 = z3 mod 11 Kết quả của các phép tính này được nêu trên bảng 5.2 Như vậy, E có tất... với các đường cong Elliptic.Tuy nhiên, đã có một phương pháp khai thác đẳng cấu một cách tường minh giữa các đường cong Elliptic trong trường hữu hạn Phương pháp này dẫn đến các thuật toán hữu hiệu đối với một số lớp các đường cong Elliptic Kỹ thuật này do Menezes, Okamoto và Vanstone đưa ra và có thể áp dụng cho một số trường hợp riêng trong một lớp đặc biệt các đường cong Elliptic (được gọi là các. .. nhân của các đa thức khác 0 trong trường là một nhóm cyclic cấp 7 Vì 7 là số nguyên tố nên suy ra mọi phần tử khác 0 của trường đều là phần tử sinh của nhóm này (tức là phần tử nguyên thuỷ) Ví dụ, nếu tính các luỹ thừa của x, ta có: x1 = x x2 =x2 x3 = x+1 x4 = x2+1 x5 = x2+ x+1 x6 = x2+1 x7 = 1 sẽ bao gồm tất cả các phần tử khác 0 của trường Vấn đề còn lại là sự tồn tại và tính duy nhất của các trường... thể giải được một cách hữu hiệu Ngược lại, dễ dàng thấy rằng, một phương pháp tính các logarithm rời rạc có hiệu quả sẽ tạo ra phương pháp hiệu quả tính phép đẳng cấu giữa hai nhóm Thảo luận ở trên chỉ ra rằng, bài toán DL có thể dễ hoặc khó (xétbề ngoài) tuỳ thuộc vào biểu diễn của nhóm cyclic được dùng Như vậy, sẽ tốt hơn nếu xem xét các nhóm khác với hy vọng tìm được các thiết lập khác nhau để bài . Chương 5 Các hệ mật khoá công khai khác Trong chương này ta sẽ xem xét một số hệ mật khoá công khai khác. Hệ mật Elgamal dựa trên bài toán logarithm. loại Elgamal dựa trên các trường hữu hạn và các đường cong elliptic, hệ mật xếp ba lô Merkle-Helman và hệ mật McElice. 5.1. Hệ mật Elgamal và các logarithm rời rạc. Hệ mật Elgamal được xây. thủ tục mật mã. Bởi vậy ta sẽ dành nhiều thời gian để thảo luận về bài toán quan trọng này. ở các phần sau sẽ xem xét sơ lược một số hệ mật khoá công khai quan trọng khác bao gồm các hệ thoóng