Hệ mật mã ElGamal trên đường cong elliptic

Một phần của tài liệu Đường cong elliptic và ứng dụng trong mật mã (Trang 25)

3 Hệ mật mã đường cong elliptic

3.3.2Hệ mật mã ElGamal trên đường cong elliptic

Alice và Bob đã thống nhất sử dụng một số nguyên tố p, một đường cong elliptic E , và một điểm P ∈ E(Fp). Alice đã chọn một khóa bí mật nA là một số nguyên và QA = nAP là khóa công khai.

Khi đó hệ mã hóa đường cong elliptic được xây dựng tương tự hệ mã hóa ElGamal, trong đó thuật toán mã hóa và giải mã được xác định như sau:

Thuật toán mã hóa

Bod lấy một điểm M ∈ E(Fp). Sau đó Bob đã chọn một số nguyên k và gửi thông điệp mã hóa C1, C2 và được tính như sau:

C1 = kP và C2 = M + kQA

Thuật toán giải mã Bob đã gửi hai điểm (C1, C2) tới Alice, sau

đó tính

C2−nAC1 = (M +kQA)−nA(kP) =M +k(nAP)−nA(kP) =M. để khôi phuc lại bản gốc.

Về nguyên tắc, các hệ thống mật mã ElGamal elliptic hoạt động tốt nhưng có một số khó khăn thực tế.

1. Không có cách rõ ràng nào để đính kèm những thông tin của văn bản gốc tới điểm E(Fp).

2. Thuật toán ElGamal Elip mở rộng thông tin 4-1 so với tỉ lệ mở rộng 2-1 của ElGamal khi sử dụng Fp.

3.4 Thuật toán tìm nhân tử trên đường cong elliptic của Lenstra.

Chúng ta tiếp tục nghiên cứu về những điểm và định luật bổ sung trên đường cong elliptic E(Fp) và tương tự với định luật khuếch đại cho Fp∗. Hendrik Lenstra đã khiến sự tương tự này trở nên chính xác bằng cách phát minh ra thuật toán tìm thừa số trên đường cong elliptic E ở nơi khếch đại modun N.

Để miêu tả thuật toán của Lenstra, chúng ta cần cho đường cong elliptic modun N, trong đó, số nguyên N không phải là số nguyên tố vì vậy vành Z/mZ không phải là trường. Giả sử chúng ta bắt đầu với phương trình:

E : Y2 = X3 +AX +B.

và giả sử P = (a, b) là một điểm trên E có modun N, bằng cách này ta có

b2 ≡ a3 +A.a+ B mod N.

Sau đó chúng ta có thể áp dụng thuật toán cộng trên đường cong elliptic để tính 2P,3P,4P, ...

Ví dụ 8. Cho L = 187 và xem đường cong elliptic E : Y2 = X3 + 3X + 7

modun 187 và điểm P = (38,112), đó là trên E modun 187. Để tính 2P mod 187 chúng ta tuân theo thuật toán cộng đường cong elip và tính 1 2y(P) = 1 224 ≡ 91 mod 187, λ = 3x(P) 2 +A 2y(P) = 4335 224 ≡ 34.91 ≡ 102 mod 187, x(2P) = λ2 −2x(P) = 10328 ≡43 mod 187 y(2P) = λ(x(P) − x(2P)) − y(P) = 102(38 − 43) − 112 ≡ 126 mod 187.

Do đó 2P = (43,126) là một điểm trên đường cong E modun 187. Tiếp theo chúng ta tính 3P = 2P + P theo cách tương tự. Trong trường hợp này, chúng ta đang thêm những điểm khác nhau, vì vậy công thức cho λ là khác nhau nhưng phép tính về cơ bản là giống

1 x(2P)−x(P) = 1 5 ≡ 75 mod 187. λ = y(2P)−y(P) x(2P)−x(P) = 14 5 ≡14.75 ≡ 115 mod 187, x(3P) = λ2 −x(2P)−x(P) = 13144 ≡ 54 mod 187, y(3P) = λ(x(P) − x(3P)) − y(P) = 115(38 − 54) − 112 ≡ 105 mod 187.

Do đó 3P = (54,105) là trên đường cong E modun 187. Chúng ta lại tính giá trị nghịch đảo, trong trường hợp này đó là giá trị nghịch đảo của 5 mođun 187. Chúng ta để lại và tiếp tục các phép tính. Ví dụ tính P + 3P và 2P + 2P đều có cùng câu trả lời là 4P = (93,64). Nếu chúng ta tính đến 5P = 3P + 2P với 2P = (43,126) và 3P = (54,105), ta có

x(3P)−x(2P) = 54−43 = 11

mà (11,187) = 11 do vậy 11 không phải là giá trị nghịch đảo của 187. Điều này trở nên khó khăn. Nhưng thất bại của tính 5P đã chỉ cho chúng ta biết 187 = 11.17. Ý tưởng này là ở trong thuật toán tìm nhân tử trên đường cong elliptic của Lenstra. Thuật toán tìm nhân tử trên đường cong elliptic đa được đưa ra một cách tổng quát như sau:

Đầu vào. Số nguyên N.

1. Chọn giá trị A, a, và b modun N.

2. Tập P = (a, b) và B ≡ b2 −a3 −A.a mod N. Cho E là đường cong elliptic E : Y2 = X3 +AX +B. 3. Khi j = 2,3,4... xác định điều kiện.

4. Tính Q≡ jP(mod n) và tập P = Q.

5. Nếu bước 4 không tính được , thì chúng ta tìm d > 1 với d | N. 6. Nếu d < N, thì quay trở về giá trị d.

7. Nếu d = N, đi từ bước 1 và tìm đường cong và điểm mới. 8. Gía trị j tăng quay ngược lại bước 2.

Ví dụ 9. Chúng ta minh họa thuật toán Lenstra bằng cách tính N = 6887. Chúng ta bắt đầu chọn ngẫu nhiên điểm P = (1512,3166) và số A= 14 và tính

Và cho E là đường cong elliptic

E :Y2 = X3 + 14X + 19

Vì vậy, bằng cách xây dựng, điểm P trên E modun 6887. Bây giờ chúng ta bắt đầu thực hiện những phép nhân P modun 6887.

Với j = 2, ta có

2P ≡ (3466,2996) mod 6887. Sau đó tính

3!.P = 3.(2P) = 3.(3466,2996) ≡ (3067,396) mod 6887. Tương tự như vậy tính được Q = 6!.P = (6141,5581). Nếu ta muốn tính 7Q. Đầu tiên chúng ta tính toán

2Q ≡(5380,174) mod 6887, 4Q≡ 2.2Q ≡(203,2038) mod 6887. Sau đó chúng ta tính 7Q như sau

7Q≡ (Q+ 2Q) + 4Q mod 6887, ≡ ((6141,5581) + (5380,174)) + (203,2038) mod 6887 ≡ (984,589) + (203,2038) mod 6887. (3.2) Nhận thấy (203−984,6887) = (−781,6887) = 71. Nên 6887 = 71.97.

Điều này cho ta thấy rằng trongE(F71)điểm P thỏa mãn63P ≡ O

Trên đây là toàn bộ nội dung khóa luận "Đường cong elliptic và ứng dụng trong mật mã". Cụ thể:

Chương 1:Cơ sở toán học.

Chương 2: Mục 2.1 trình bày về đường cong elliptic. Mục 2.2 các phép toán trên đường cong elliptic. Mục 2.3 trình bày về đường cong elliptic trên trường hữu hạn.

Chương 3: Mục 3.1 mở đầu. Mục 3.2 logarit rời rạc trên đường cong elliptic. Mục 3.2 mật mã đường cong elliptic. Mục 3.3 thuật toán tìm nhân tử trên đường cong elliptic của Lenstra.

Do thời gian nghiên cứu và năng lực còn hạn chế nên khóa luận mới chỉ đạt được một số kết quả nhất định. Em rất mong các thầy cô, các bạn góp ý và nhận xét để khóa luận này được đầy đủ và hoàn thiện hơn.

Trước khi kết thúc khóa luận này, một lần nữa em xin bày tỏ lòng biết ơn sâu sắc đối với các thầy giáo trong trường, đặc biệt là thầy giáo Trần Vĩnh Đức đã tận tình giúp đỡ em hoàn thành khóa luận này.

[1] Jeffrey, Hoffstein, Jill Pipher, Joseph H.Silverman. An Introduc- tion to Mathematical Cryptography.

[2] L. C. Washington. Elliptic Curves: Number Theory and Cryp- tography. Discrete Mathematics and Its Applications,2003.

[3] M. J. Wiener. Cryptanalysis of short RSA secret exponents. IEEE Trans.Inform. Theory, 36(3):553–558, 1990.

Hà Nội, tháng 05 năm 2015

Sinh viên

Một phần của tài liệu Đường cong elliptic và ứng dụng trong mật mã (Trang 25)