Vietebooks Nguyn Hong Cng Trang 16 điều này kéo theo x i+1 = L 2 ( i ) , i0 Vì rằng x i+1 = L 2 () nên thuật 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ác hệ 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 Z p , tuy nhiên việc xét bài toán này theo các thiết lập khác nhau cũng rất có ích và là chủ đề của phần này. Hệ mật Elgamal có thể đợc áp dụng trong một nhóm bất kì mà bài toán DL là khó giải. Ta đã dùng nhóm nhân Z p * tuy nhiên các nhóm khác cũng là những ứng cử viên thích hợp. Trớc hết ta phát biểu bài toán DL trong một nhóm hữu hạn nói chung G (hữu hạn) và ở đó kí hiệu phép lấy nhóm là dấu " ". Dạng bài toán tổng quát hoá nh vậy trình bài trên hình 5.8. Dễ dàng xác định một hệ mật Elgamal trong nhóm con H theo cách tơng tự đã mô tả trong Z p * và đợc trình bày trên hình 5.9. Chú ý rằng phép mã hoá yêu cầu dùng số nguyên k ngẫu nhiên sao cho 0 k | H | - 1. Tuy nhiên, nếu Alice không biết cấp của nhóm con H thì cô ta có thể tạo một số nguyên k thoả mãn 0 k | G | -1, khi đó sẽ không có bất kì sự thay đổi nào trong quá trình mã và giải mã. Cũng cần chú ý là nhóm G không phải là nhóm Aben (Tuy H vẫn là nhóm Aben vì nó là nhóm cyclic). Vietebooks Nguyn Hong Cng Trang 17 Hình 5.8. Bài toán logarithm rời rạc trong (G,0) Đặc trng của bài toán: I = (G, , ), trong đó G là một nhóm hữu hạn với phép lấy nhóm o , G và H, trong đó H = { i : i 0} là một nhóm con sinh bởi . Mục tiêu: Tìm một số nguyên duy nhất a sao cho 0 a | H | -1 và a = , với kí hiệu a có nghĩa là o . . . o (a lần) Ta sẽ kí hiệu số nguyên a này bằng log Bây giờ ta sẽ trở lại bài toán DL tổng quát hoá . Nhóm con H đợc sinh bởi phần tử tuỳ ý G dĩ nhiên phải là nhóm con cyclic cấp | H |. Bởi vậy, dạng bất kì của bài toán theo một nghĩa nào đó đều tơng đơng với bài toán DL trong một nhóm cyclic. Tuy nhiên, độ khó của bài toán DL dờng nh phụ thuộc vào cách biểu diễn nhóm đợc dùng. Xét một ví dụ về cách biểu diễn mà với nó, bài toán logarithm rời rạc rất dễ giải. Xét nhóm cộng cyclic Z n và giả sử UCLN(,n) = 1, bởi vậy là phần tử sinh của Z n . Vì phép toán trong nhóm là cộng theo modulo n nên phép lấy mũ sẽ là nhân với a theo modulo n. Vì thế trong cách xây dựng này, bài toán logarithm rời rạc sẽ là tìm số nguyên a sao cho. a (mod n) Vì UCLN(,n) = 1 nên có phần tử nghịch đảo nhân theo modulo n và ta có thể dễ dàng tính -1 mod n bằng thuật toán Euclide. Sau đó có thể giải để tìm a và nhận đợc log = -1 mod n Vietebooks Nguyn Hong Cng Trang 18 Hình 5.9. Hệ mật khoá công khai 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 = GìG 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: e K (x,k) = (y 1 ,y 2 ) trong đó y 1 = k và y 2 = (x o k ) Với bản mã y = (y 1 ,y 2 ) ta xác định: d K (y) = y 2 o (y 1 a ) -1 ở phần trên ta đã nghiên cứu bài toán DL trong nhóm nhân Z p * vơi p là là số nguyên tố . Nhóm này là nhóm cyclic cấp p-1 và bởi vậy nó đẳng cấu với nhóm cộng Z p-1 . Theo thảo luận ở trên, ta đã biết cách tinh các logarithm rời rạc một cách hiệu quả trong nhóm cộng này. Điều đó gợi ý khả năng giải bài toán DL trong Z p * bằng cách quy nó về bài toán giải đợc dễ dàng trong Z p-1 . Ta hãy xem xét điều này đợc thực hiện nh thế nào?. Khi nói rằng, (Z p * , ì) là đẳng cấu với (Z p-1 , +) có nghĩa là có một song ánh : : Z p * ặ Z p-1 sao cho (xy mod p) = ((x) + (y)) mod (p-1) Điều đó kéo theo: ( a mod p) = a () mod (p-1) Bởi vậy a mod p a () () (mod p-1) Do đó nếu tìm a theo mô tả ở trên, ta có: log = () (()) -1 mod (p-1) Bây giờ, nếu có một phơng pháp hữu hiệu để tính phép đẳng cấu thì ta sẽ có một thuật toán hữu hiệu để tính các logarithm rời rạc trong Z p * . Khó khăn ở đây là không có một phơng pháp chung đã biết nào để tính hiệu quả phép đẳng cấu với số nguyên tố tuỳ ý. Ngay cả khi đã biết hai nhóm là Vietebooks Nguyn Hong Cng Trang 19 đẳng cấu thì vẫn không thể biết một thuật toán hiệu quả để mo tả tơng minh phép đẳng cấu. Phơng pháp này có thể áp dụng cho bài toán DL trong một nhóm G tuỳ ý. Nếu có một phơng pháp hiệu quả tính phép đẳng cấu giữa H và Z |H| thì bài toán DL trong G mô tả ở trên có 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 toán DL có vẻ khó. Có hai lớp nhóm nh vậy. 1. Nhóm nhân của trờng Galois GF(p n ) 2. Nhóm của một đờng cong elliptic xác định trên một trơng hữu hạn. Ta hãy xem xét hai lớp nhóm này ở phần sau. 5.1.2. Trờng Galois Ta đã biết rằng, nếu p là số nguyên tố thì Z p sẽ là một trờng. Tuy nhiên có nhiều trờng hữu hạn khác không có dạng trên. Thực tế có các trờng hữu hạn q phần tử nếu q = p n , trong đó p là số nguyên tố , n 1là số nguyên. Bây giờ ta sẽ mô tả ngắn gọn cách xây dựng một trờng nh vậy. Trớc tiên ta sẽ đa ra một vài định nghĩa. Định nghĩa 5.1 Giả sử p là số nguyên tố. Gọi Z p [x] là tập tất cả các đa thức biến x. Bằng cách xây dựng phép cộng và nhân đa thức theo quy tắc thông thờng ( và rút gọn hệ số theo modulo p) ta sẽ tạo nên một vành. Với f(x), g(x) Z p [x], ta nói rằng, f(x) chia hết cho g(x) ( kí hiệu f(x) | g(x)) nếu tồn tại q(x) Z p [x] sao cho: g(x) = q(x)f(x) Với f(x) Z p [x], ta xác định bậc của f ( kí hiệu là deg(f)) là số mũ cao nhất có trong các số hạng của f. Giả sử f(x), g(x), h(x) Z p [x] và deg(f) = n 1, ta định nghĩa: g(x) h(x) (mod f(x)) nếu f(x) | (g(x) - h(x)). Vietebooks Nguyn Hong Cng Trang 20 Chú ý sự tơng tự giữa định nghĩa về đồng d của các đa thức với định nghĩa về đồng d của các số nguyên. Bây giờ ta sẽ định nghĩa vành các đa thức theo modulo f(x). (ta kí hiệu vành này là Z p [x]/f(x)). Việc xây dựng Z p [x]/f(x) từ Z p [x] dựa trên khái niệm về các đồng d thức theo modulo f(x) và nó tơng tự nh việc xây dựng Z m từ Z. Giả sử deg(f) = n. Nếu chia g(x) cho f(x), ta thu đợc thơng q(x) và phần d r(x), trong đó: g(x) = q(x)f(x) + r(x) và deg(r) < n. Điều này có thể thực hiện theo cách chia các đa thức thông thờng. Bởi vậy, một đa thứ bất kì trong Z p [x] đều đồng d theo modulo f(x) với một đa thức duy nhất có bậc n-1. Bây giờ ta sẽ xác định các phần tử của Z p [x]/f(x) là p n các đa thức trong Z p [x] có bậc nhiều nhất là n-1. Phép cộng và nhân trong Z p [x]/(f(x)) đợc xác định nh trong Z p [x], sau đó thực hiện rút gọn theo modulo f(x). Với phép toán này, Z p [x]/(f(x)) sẽ tạo thành một vành. Cần nhớ lại rằng, Z m là một trờng khi và chỉ khi m là số nguyên tố và các phần tử nghịch đảo nhân có thể tìm đợc qua thuật toán Euclide. Tình hình cũng tơng tự xảy ra đối với Z p [x]/(f(x)). Sự tơng tự của các số nguyên tố với các đa thức bất khả quy đợc xác định nh sau: Định nghĩa 5.2 Đa thức f(x) Z p [x] đợc gọi là bất khả quy nếu không tồn tại các đa thức f 1 (x), f 2 (x) Z p [x] sao cho f(x) = f 1 (x)f 2 (x). trong đó deg(f 1 ) > 0 và deg(f 2 ) > 0. Một thực tế rất quan trọng là Z p [x]/(f(x)) là một trờng khi và chỉ khi f(x) bất khả quy. Hơn nữa, các phần tử nghịch đảo nhân trong Z p [x]/(f(x)) có thể tính đợc bằng cách dùng thuật toán Euclide mở rộng có biến đổi đôi chút. Sau đây là một ví dụ minh hoạ cho vấn đề nêu ra. Ví dụ 5.6 . đúng. Các chi tiết dành cho độc giả xem xét. 5.2. Trờng hữu hạn và các hệ 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. thuộc vào cách biểu diễn nhóm đợc dùng. Xét một ví dụ về cách biểu diễn mà với nó, bài toán logarithm rời rạc rất dễ giải. Xét nhóm cộng cyclic Z n và giả sử UCLN(,n) = 1, bởi vậy là phần. 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 Z p , tuy nhiên việc xét bài toán này theo các thiết lập khác nhau cũng rất có ích và là