1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Cấu trúc của đường cong elliptic

62 276 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI PHẠM HỒNG ANH CẤU TRÚC CỦA ĐƯỜNG CONG ELLIPTIC LUẬN VĂN THẠC SĨ TOÁN HỌC HÀ NỘI, NĂM 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI PHẠM HỒNG ANH CẤU TRÚC CỦA ĐƯỜNG CONG ELLIPTIC Chuyên ngành : ĐẠI SỐ VÀ LÝ THUYẾT SỐ Mã số : 60.46.01.04 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học: TS Phạm Đức Hiệp HÀ NỘI, NĂM 2017 Mục lục MỤC LỤC LỜI MỞ ĐẦU Đường cong elliptic 1.1 1.2 Cấu trúc nhóm đường cong elliptic 1.1.1 Phương trình đường cong elliptic 1.1.2 Luật nhóm 1.1.3 Tự đồng cấu, đẳng cấu, tự đẳng cấu đường cong elliptic 13 1.1.4 Đường cong elliptic tọa độ xạ ảnh 18 1.1.5 Số đường cong elliptic Zp 20 1.1.6 Cấp nhóm 20 Ứng dụng Maple thực số thuật toán đường cong elliptic trường Zp 27 1.2.1 Tìm tính số điểm đường cong elliptic Zp 27 1.2.2 Phép cộng điểm nhân đôi điểm đường cong elliptic 28 1.2.3 Phép nhân vô hướng đường cong elliptic Một số ứng dụng đường cong elliptic 2.1 2.2 10 31 34 Mật mã đường cong elliptic 34 2.1.1 Mật mã vấn đề 34 2.1.2 Hệ thống đường cong elliptic 39 2.1.3 Tại sử dụng mật mã đường cong elliptic? 44 2.1.4 Ví dụ 44 Phân tích số nguyên thành nhân tử 49 2.3 2.2.1 Thuật toán 49 2.2.2 Ví dụ 54 Phép thử tính chất nguyên tố số nguyên 55 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 59 LỜI CẢM ƠN Với tất lòng kính trọng, xin gửi lời cảm ơn sâu sắc đến thầy giáo, TS Phạm Đức Hiệp, người trực tiếp hướng dẫn tận tình bảo suốt trình thực hoàn thành luận văn Qua đây, xin gửi lòng biết ơn chân thành đến thầy giáo, TS Lưu Bá Thắng, người cho ý tưởng đề tài luận văn góp ý, hướng dẫn trình nghiên cứu đề tài Tôi xin gửi lời cảm ơn đến quý thầy cô khoa Toán - Tin trường Đại học Sư phạm Hà Nội, người dạy dỗ thời gian qua Cuối cùng, gửi trân trọng biết ơn đến tất người thân, bạn bè quan tâm, động viên, giúp đỡ cho suốt trình học tập nghiên cứu Tác giả Phạm Hồng Anh LỜI MỞ ĐẦU Từ khoảng ba, bốn thập kỉ gần đây, đường cong elliptic đóng vai trò ngày quan trọng toán học Các đường cong có mặt nhiều lĩnh vực khác toán học phong phú mặt cấu trúc Một mặt, đường cong không kỳ dị (tức đa tạp chiều), mặt khác tập hợp điểm đường cong lập thành nhóm Abel Vì công cụ toán học áp dụng vào nghiên cứu đường cong elliptic Những kết đường cong elliptic có ý nghĩa quan trọng nhiều vấn đề khác [3] Trong số học, từ năm 80 kỉ XX, đường cong elliptic ứng dụng việc phân tích số nguyên thành thừa số nguyên tố [10] sử dụng để thử tính chất nguyên tố số nguyên lớn [17] Sau đó, định lý cuối Fermat chứng minh (trong công trình Andrew Wiles) cách chứng minh giả thuyết Taniyama - Weil đường cong elliptic Về mặt ứng dụng, đường cong elliptic dùng việc xây dựng số hệ mã hóa công khai mà Koblits [9] Miller [12] nghiên cứu vào năm thập niên 80 kỷ XX Đây khẳng định mạnh mẽ toán học đại công nghệ mã hóa Hiện nay, hệ mã hóa công khai dùng đường cong elliptic trở thành hệ mã hóa công khai thông dụng, nhiều người giới quan tâm Nghiên cứu đường cong elliptic vấn đề mới, đòi hỏi kết hợp lý thuyết số hình học đại số Để nghiên cứu việc ứng dụng đường cong vào mục đích nêu trên, trước hết ta cần tìm hiểu cấu trúc đường cong elliptic Do đó, với hướng dẫn nhiệt tình người hướng dẫn khoa học, định chọn đề tài “Cấu trúc đường cong elliptic” để làm đề tài luận văn Vấn đề nghiên cứu trọng tâm luận văn cấu trúc nhóm đường cong elliptic số ứng dụng đường cong Bố cục luận văn trình bày gồm chương: Chương I : Đường cong elliptic Tác giả trình bày khái niệm bản, cấu trúc, phép toán đường cong elliptic trường hữu hạn ứng dụng Maple để thực số tính toán đường cong Chương II : Một số ứng dụng đường cong elliptic Ở chương này, tác giả đề cập đến ba ứng dụng đường cong elliptic: • Hệ thống mật mã sử dụng đường cong elliptic • Thuật toán phân tích số nguyên thành thừa số • Phép thử tính chất nguyên tố số nguyên Chương Đường cong elliptic 1.1 Cấu trúc nhóm đường cong elliptic 1.1.1 Phương trình đường cong elliptic Định nghĩa 1.1 Đường cong elliptic E trường K định nghĩa phương trình: E : y + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 (1.1) với a1 , a2 , a3 , a4 , a6 ∈ K, ∆ = 0, với ∆ biệt thức E xác định sau: ∆ d2 d4 d6 d8 = = = = = −d22 d8 − 8d34 − 27d26 + 9d2 d4 d6 , a21 + 4a2 , 2a4 + a1 a3 , a23 + 4a6 , a21 a6 + 4a2 a6 − a1 a3 a4 + a2 a23 − a24 (1.2) Nếu L trường mở rộng K với ∞ điểm vô cực, tập hợp điểm L - hữu tỷ E là: E(L) = {(x, y) ∈ L × L : y + a1 xy + a3 y − x3 − a2 x2 − a4 x − a6 = 0} ∪ {∞} Chú ý 1.2 Với định nghĩa trên: (i) Phương trình (1.1) gọi phương trình Weierstrass (ii) Ta nói E định nghĩa K hệ số a1 , a2 , a3 , a4 , a6 phần tử K Đôi ta viết E/K để nhấn mạnh E định nghĩa K K gọi trường sở Chú ý E định nghĩa K E định nghĩa trường mở rộng K Hình 1.1: Đường cong elliptic R (iii) Điều kiện ∆ = để đảm bảo đường cong elliptic trơn (smooth), tức điểm đường cong có hai hay nhiều tiếp tuyến phân biệt (iv) Điểm ∞ điểm đường thẳng vô cực thỏa mãn tính chất phương trình Weierstrass (v) Các điểm L - hữu tỷ E điểm (x, y) thỏa mãn phương trình đường cong tọa độ x, y thuộc L Điểm vô cực xét điểm L - hữu tỷ với trường mở rộng L K Ví dụ 1.3 Đường cong elliptic R Xét hai đường cong elliptic: E1 : y = x3 − x, E2 : y = x3 + x + 4 định nghĩa trường số thực R Các điểm E1 (R)\{∞} E2 (R)\{∞} biểu diễn hình 1.1 Định nghĩa 1.4 Hai đường cong elliptic E1 E2 định nghĩa K cho phương trình Weierstrass: E1 : y + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 , E2 : y + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 gọi đẳng cấu K tồn u, r, s, t ∈ K, u = cho phép đổi biến (x, y) −→ (u2 x + r, u2 sx + u3 y + t) (1.3) biến đổi phương trình E1 thành phương trình E2 Phép đổi biến (1.3) gọi phép đổi biến chấp nhận (admissiable change of variables) Một phương trình Weierstrass: E : y + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 định nghĩa K đơn giản hóa việc áp dụng phép đổi biến chấp nhận Ta xét trường hợp riêng với trường sở K có đặc số khác có đặc số Nếu đặc số K khác 3, phép đổi biến: (x, y) −→ x − 3a21 − 12a2 y − 3a1 x a31 + 4a1 a2 − 12a3 , − 36 216 24 biến E thành đường cong có phương trình: y = x3 + ax + b (1.4) với a, b ∈ K Biệt thức đường cong ∆ = −16(4a3 + 27b2 ) Đường cong elliptic định nghĩa phương trình (1.4) kí hiệu Ea,b Nếu đặc số K 2, ta có hai trường hợp để xét: TH1: a1 = phép đổi biến chấp nhận được: (x, y) −→ a21 x a3 a21 a4 + a23 + , a1 y + a1 a31 B chọn số ngẫu nhiên k = tính C1 , kQ, C2 Sử dụng công thức thuật toán tương tự trên, ta tính được: + C1 = kP = 3P = 2P + P = (0, 22) + (8, 10) = (16, 2) + 2Q = 2(19, 13) = (16, 2), 3Q = 2Q + Q = (16, 2) + (8, 10) = (1, 24) + C2 = M + kQ = M + 3Q = (15, 27) + (1, 24) = (20, 3) Để giải mã tìm chìa khóa mật, A tính M = C2 − dC1 chuyển tọa độ thành chữ: + 2C1 = 2(16, 2) = (10, 25) + 4C1 = 2.2C1 = 2(10, 25) = (3, 28) + 5C1 = 4C1 + C1 = (3, 28) + (16, 2) = (14, 23) + 10C1 = 2.5C1 = 2(14, 23) = (2, 23) + dC1 = 20C1 = 2.10C1 = 2(2, 23) = (1, 24) + (−dC1 ) = −(1, 24) = (1, −24) = (1, 5) + M = C2 − dC1 = C2 + (−dC1 ) = (20, 3) + (1, 5) = (15, 27) + 15 ↔ e, 27 ↔ q Vậy mật "eq" A dùng mật để mở khóa lấy thông tin B gửi Trong ví dụ 2.6 sau đây, tác giả trình bày cách tương ứng m với điểm đường cong elliptic phức tạp Ví dụ 2.6 Tương ứng m với điểm đường cong elliptic Zp Ta chọn số nguyên tố p = 40000033, m = 654321 đường cong elliptic y = x3 + Ví dụ ta cần chọn tập số có dạng xi = 40m + i, i = 40 số hoành độ điểm đường cong cho Ta cần xét khoảng phần tử Zp có điểm xi thỏa mãn Quá trình thực Maple lệnh sau: [> p := 40000033; f := (x, y) ← y − x3 − 1; 46 m := 654321; Zp := [seq(i, i = 40 ∗ m 40 ∗ m + 4)]; sols := seq([{x = Zp [i]}, msolve(f (Zp [i], y), p)], i = 5); Kết cho là: p := 40000033 f := (x, y) ← y − x3 − m := 654321 Zp := [26172840, 26172841, 26172842, 26172843, 26172844] sols := [{x = 26172840}], [{x = 26172841}, {y = 9519074}, {y = 30480959}], [{x = 26172842}, {y = 33502488}, {y = 6497545}], [{x = 26172843}, {y = 28681549}, {y = 11318484}], [{x = 26172844}] Vậy ta thấy kết cho giá trị xi thỏa mãn yêu cầu đề (x = 26172841, x = 26172842, x = 26172843) tương ứng với điểm Zp chấp nhận Ta chọn điểm để tương ứng với m = 654321, ví dụ lấy Pm = (26172843, 28681549) Ví dụ 2.7 minh họa cách mã hóa giải mã thông điệp phức tạp ví dụ Ví dụ 2.7 Mã hóa giải mã sử dụng đường cong elliptic MÃ HÓA: Giả sử ta cần mã hóa thông điệp "toan" Đầu tiên ta tạo bảng tương ứng chữ số lệnh sau: [>tablecodedown := {”a” = 11, ”b” = 12, ”c” = 13, ”d” = 14, ”e” = 15, ”f ” = 16, ”g” = 17, ”h” = 18, ”i” = 19, ”j” = 20, ”k” = 21, ”l” = 22, ”m” = 23, ”n” = 24, ”o” = 25, ”p” = 26, ”q” = 27, ”r” = 28, ”s” = 29, ”t” = 30, ”u” = 31, ”v” = 32, ”x” = 33, ”y” = 34, ”z” = 35, ”w” = 36, ”” = 10, ”, ” = 37, ”.” = 38} : tablecodeUpDown := {11 = ”a”, 12 = ”b”, 13 = ”c”, 14 = ”d”, 15 = ”e”, 16 = ”f ”, 17 = ”g”, 18 = ”h”, 19 = ”i”, 20 = ”j”, 21 = ”k”, 22 = ”l”, 23 = ”m”, 24 = ”n”, 25 = ”o”, 26 = ”p”, 27 = ”q”, 28 = ”r”, 29 = ”s”, 30 = ”t”, 31 = ”u”, 32 = ”v”, 33 = ”x”, 34 = ”y”, 35 = ”z”, 36 = ”w”, 10 = ””, 37 = ”, ”, 38 = ”.”} : tablecoded := {a = 11, b = 12, c = 13, d = 14, e = 15, f = 16, g = 17, h = 18, i = 19, j = 20, k = 21, l = 22, m = 23, n = 24, o = 25, p = 26, q = 27, r = 28, s = 47 29, t = 30, u = 31, v = 32, x = 33, y = 34, z = 35, w = 36, = 10, , = 37, = 38} : tablecodeUD := {11 = a, 12 = b, 13 = c, 14 = d, 15 = e, 16 = f, 17 = g, 18 = h, 19 = i, 20 = j, 21 = k, 22 = l, 23 = m, 24 = n, 25 = o, 26 = p, 27 = q, 28 = r, 29 = s, 30 = t, 31 = u, 32 = v, 33 = x, 34 = y, 35 = z, 36 = w, 10 = , 37 = , , 38 = } : tablecodedownUpcase := {”A” = 11, ”B” = 12, ”C” = 13, ”D” = 14, ”E” = 15, ”F ” = 16, ”G” = 17, ”H” = 18, ”I” = 19, ”J” = 20, ”K” = 21, ”L” = 22, ”M ” = 23, ”N ” = 24, ”O” = 25, ”P ” = 26, ”Q” = 27, ”R” = 28, ”S” = 29, ”T ” = 30, ”U ” = 31, ”V ” = 32, ”X” = 33, ”Y ” = 34, ”Z” = 35, ”W ” = 36, ”” = 10, ”, ” = 37, ”.” = 38} : nx = nops(tablecodedown) : tablecodestd:= { = } : Quy trình lập mã: Bước 1: Nhập vào văn cần mã hóa :"toan" [> vbgoc := ”toan”; Bước 2: Chuyển văn gốc sang dạng số: Lx := [seq(vbgoc[i[x]], i[x] = length(vbgoc))]; [”t”, ”o”, ”a”, ”n”] Px := subs(tablecodedown, Lx ); [30, 25, 11, 24] m := cat(seq(Px [i[x]], i[x] = nops(P [x]))); 30251124 Bước 3: Mã hóa đường cong elliptic Trước hết, ta tương ứng m với điểm M đường cong elliptic Ta sử dụng lệnh phần trước với p = 4000000007 m = 30251124 Chạy kết quả, ta chọn m tương ứng M = (1210044962, 581598932) Chọn k, P , n cấp P , khóa công khai Q Sau ta sử dụng thuật toán 2.2 để tạo mã khóa (C1 , C2 ) với C1 = kP , C2 = M + kQ 48 GIẢI MÃ: Khi có (C1 , C2 ) ta dùng thuật toán 2.3 để giải mã Tính M = C2 − dC1 với Q = dP chọn từ đầu Từ M ta suy m = xM /40 Từ m, để tìm thông điệp ban đầu, ta thực lệnh sau cho kết tương ứng: Cx := convert(m, string); Cx := ”[30251124]” Kx := convert(m, base, 100); Kx := [24, 11, 25, 30] Mx := subs(tablecodeU D, Kx ); Mx := ”[n, a, o, t]” Nx := cat(seq(Mx [i[x]], i[x] = nops(Mx ))); Nx := naot Yx := convert(Nx , string); Yx := ”naot” vbgoc := StringT ools[Reverse](Yx ); vbgoc := ”toan” Vậy ta tìm văn gốc "toan" 2.2 2.2.1 Phân tích số nguyên thành nhân tử Thuật toán Cho n số nguyên dương, với a, b ∈ Zn , ta xét đường cong bậc ba E = Ea,b , định nghĩa Zn phương trình y = x3 + ax + b 49 Tập hơp điểm đường cong Zn : E(Zn ) = {(x : y : z) ∈ P2 (Zn ) : y z = x3 + a2 + bz } Nếu a, b ∈ Zn thỏa mãn −16(4a3 + 27b2 ) ∈ Z∗n E gọi đường cong elliptic Zn , trường hợp này, E(Zn ) có cấu trúc nhóm Abel, phép toán định nghĩa công thức tổng quát phần 1.1.2 (Tham khảo [14]) Trong phần ta cần quan tâm đến cấu trúc nhóm điểm đường cong elliptic định nghĩa trường hữu hạn Zp với p số nguyên tố lớn nên tác giả không sâu vào cấu trúc đường cong elliptic vành Zn n không nguyên tố Kí hiệu O điểm (0 : : 0) P2 (Zn ) điểm ∞ đường cong elliptic Đặt: Vn = {(x : y : 1) : x, y ∈ (Zn )} ∪ {O} Với điểm P ∈ Vn p ước nguyên tố n, ta kí hiệu Pp điểm Zp thu cách quy tọa độ điểm P theo modulo p Hiển nhiên Pp = Op P = O Trong thuật toán này, ta sử dụng thuật toán khác qua trình tính toán thuật toán Euclide thuật toán Euclide mở rộng sau: Thuật toán 2.8 Thuật toán Euclide INPUT: a, b ∈ Z OUTPUT: d = gcd(a, b) Nếu b = 0, in kết d = a Đặt r ← a mod b; a ← b; b ← r Quay lại bước Thuật toán 2.9 Thuật toán Euclide mở rộng INPUT: Hai số nguyên không âm u, v OUTPUT: Bộ số (u1 , u2 , u3 ) thỏa mãn (u, v) = u3 = uu1 + vu2 Đặt (u1 , u2 , u3 ) ← (1, 0, u), (v1 v2 , v3 ) ← (1, 0, v) 50 Nếu v3 = 0, kết thúc thuật toán Đặt q ← u3 v3 Đặt (t1 , t2 , t3 ) ← (u1 , u2 , u3 ) − q.(v1 , v2 , v3 ), (u1 , u2 , u3 ) ← (v1 , v2 , v3 ), (v1 , v2 , v3 ) ← (t1 , t2 , t3 ) Quay bước Thuật toán 2.9 sử dụng để tìm nghịch đảo a ∈ Zn Zn (a, n) = cách nhập u = a, v = n kết nhận u1 nghịch đảo cần tìm Phép cộng Ta mô tả thuật toán: Cho số nguyên n > 1, a ∈ Zn P, Q ∈ Vn , ta tính ước không tầm thường d n xác định điểm R ∈ Vn có tính chất: p ước n tồn b ∈ Zp thỏa mãn: 6(4a3 + 27b2 ) = với a = a (mod p), Pp , Qp ∈ Ea,b (Zp ) Khi Rp = Pp + Qp nhóm Ea,b (Zp ) Nếu P = O gán R = Q dừng thuật toán Nếu P = O, Q = O gán R = P dừng thuật toán Trong trường hợp lại P = O, Q = O, cho P = (x1 : y1 : 1) Q = (x2 : y2 : 1) Sử dụng thuật toán Euclide 2.8 để tính d1 = gcd(x1 − x2 , n) Nếu d1 khác n d1 số cần tìm, thuật toán kết thúc Nếu d1 = sử dụng thuật toán 2.9 ta tính (x1 − x2 )−1 , trường hợp ta đặt: λ = (y1 − y2 )(x1 − x2 )−1 , x3 = λ2 − x1 − x2 , y3 = λ(x1 − x3 ) − y1 , R = (x3 : y3 : 1) 51 Thuật toán dừng lại Nếu d1 = n tức x1 = x2 Ta tính d2 = gcd(y1 + y2 , n) Nếu d2 khác n kết d2 số cần tìm thuật toán kết thúc Nếu d2 = n tức y1 = −y2 đặt R = O thuật toán dừng Nếu d2 = 1, ta tính (y1 + y2 )−1 từ thuật toán 2.9, đặt: λ = (3x21 + a)(y1 + y2 )−1 , x3 = λ2 − x1 − x2 , y3 = λ(x1 − x3 ) − y1 , R = (x3 : y3 : 1) Kết thúc thuật toán Phép nhân vô hướng Bằng cách lặp lại phép cộng trên, ta dễ dàng thu thuật toán sau: Cho số nguyên dương k, số tự nhiên n > 1, a ∈ Zn P ∈ Vn , ta tìm ước không tầm thường d n xác định điểm R ∈ Vn với tính chất p ước nguyên tố n tồn b ∈ Zp cho: 6(4a3 + 27b2 ) = với a = a (mod p), Pp ∈ Ea,b (Zp ) Khi Rp = k.Pp nhóm Ea,b (Zp ) Thuật toán 2.10 Phân tích sử dụng đường cong Cho n, v, w ∈ Z>1 a, x, y ∈ Zn Ta mô tả thuật toán để tìm ước không tầm thường d n Với số nguyên r ≥ 2, kí hiệu e(r) số nguyên m lớn thỏa mãn √ rm ≤ v + v + đặt: w re(r) k= r=2 Lấy P (x : y : 1) ∈ Vn , thử tính kP thuật toán mô tả Nếu phép thử thất bại ta tìm ước không tầm thường n, kP tính thành công ta thất bại việc tìm ước không tầm thường n Mệnh đề 2.11 Cho n, v, w ∈ Z>1 a, x, y ∈ Zn , đăt b = y − x3 − ax ∈ Zn P (x : y : 1) ∈ Vn Giả sử n có ước nguyên tố p q thỏa mãn điều kiện: 52 i) p ≤ v; ii) 6(4a3 + 27b ) = với a = a (mod p), b = b (mod p); iii) Mỗi số nguyên tố r chia hết #Ea,b (Zp ) thỏa mãn r ≤ w; iv) 6(4ˆ a3 + 27ˆb2 ) = với a ˆ = a (mod q), ˆb = b (mod q); v) #Eaˆ,ˆb (Zq ) không chia hết số nguyên tố lớn chia hết cấp Pp Khi thuật toán 2.10 thành công việc tìm ước không tầm thường n Chứng minh sau tham khảo [10] Chứng minh Chú ý rằng, điều kiện ii) iv) kéo theo Ea,b (Zp ) Eaˆ,ˆb (Zq ) có cấu trúc nhóm Ngoài ra, Pp = Op Ea,b (Zp ), số nguyên tố lớn v) tồn Rõ ràng v) kéo theo p = q √ Từ p ≤ v định lý Hasse, ta có #Ea,b (Zp ) ≤ v + v + 1; số nguyên tố r, số mũ r #Ea,b (Zp ) lớn e(r) xác định 2.10 Điều tương tự với số mũ r cấp ω Pp Kí hiệu l số nguyên tố lớn chia hết ω, m số mũ l ω; l ≤ m ≤ e(l) Đặt: l−1 re(r) k0 = · lm−1 r=2 Khi k0 ≡ mod ω k0 l ≡ mod ω, cho: k0 Pp = Op , k0 lPp = Op nhóm Ea,b (Zp ) Từ iii) ta thấy l ≤ ω; k0 k0 l ước số k xuất thuật toán 2.10 Hơn kP tính toán thành công thuật toán k0 P k0 lP tính theo cách tương tự Do đó, để chứng minh 2.11, ta cần chứng minh k0 P k0 lP xác định Thật vậy: Nếu k0 lP ∈ Vn tồn tại, (k0 lP )p = k0 l.Pp = Op nhóm Ea,b (Zp ) k0 lP = O Vn ; k0 lPq = (k0 lP )q = Oq nhóm Eaˆ,ˆb (Zq ); v) ta có k0 Pq = Oq Do đó, k0 P ∈ Vn xác định, ta phải có k0 P = O k0 Pp = Op , trái với điều ta chứng minh Vậy mệnh đề 2.11 chứng minh 53 2.2.2 Ví dụ Cho số nguyên lẻ n ta cần tìm ước không tầm thường d n Ta bắt đầu việc chọn đường cong elliptic E : y = x3 +ax+b; a, b ∈ Z điểm P (x0 , y0 ) ∈ E Ta thử dùng cặp (E, P ) để phân tích n, thất bại ta chọn cặp (E, P ) khác tiếp tục tìm d Khi có cặp (E, P ), ta chọn số nguyên k sau thực tính kP Nếu việc tính kP thành công ta chọn cặp (E, P ) khác, việc tính toán kP thất bại số điểm, ta không tính tổng mẫu số (x2 − x1 ) 2y1 không nguyên tố với n, ta tính ước chung lớn mẫu số với n theo thuật toán 2.9 Để thuận tiện tính toán kP , trước hết ta đổi k sang hệ nhị phân k = (kt−1 , , k1 , k0 )2 Khi đó: t−1 2i k= i=0 ki =1 Vậy để tính kP ta tính tổng điểm 2i P với i số thỏa mãn ki = biểu diễn nhị phân k Sau tác giả trình bày ví dụ cụ thể phân tích số nguyên thành thừa số sử dụng đường cong elliptic Ví dụ 2.12 Giả sử ta cần phân tích số nguyên n = 6497 thành thừa số Đầu tiên ta chọn đường cong elliptic E1 : y = x3 +1303x+1 điểm P (0, 1) ∈ E1 Chọn k = lcm(1, 2, , 20) = 232792560 = (1101111000000010000111110000)2 Thực tính kP cách sử dụng chu trình ta tạo Maple phần 1.2.3 Thực lệnh: nhandiem(6497, 1303, 1, [0, 1], 232792560); Kết tính T ichkP = [4136, 2948] Phép tính kP thực thành công, ta cần chọn cặp (E, P ) khác để phân tích n Ta chọn E2 : y = x3 + 378x + P (0, 1) ∈ E2 Thực tính kP lệnh: nhandiem(6497, 378, 1, [0, 1], 232792560); Màn hình Maple xuất lỗi: Error, (in congdiem) the modular inverse does not exist 54 Tức trình thực hiện, có phép tính không tìm nghich đảo theo module n, ta tìm ước thực n cặp (E2 , P ) Thực tính toán cụ thể: 27 Ta có: kP = 232792560P = 2i P i=0 ki =1 = (24 + 25 + 26 + + + 213 + 221 + 222 + 222 + 223 + 224 + 226 + 227 )P Ta tính bước để tìm xem mẫu số không nguyên tố với n: + 24 P = [2794, 261], + 25 P = [4040, 2320], + Khi thực cộng hai điểm [2794, 261] [4040, 2320] xuất lỗi không tính tổng Ta tính x2 − x1 = 1246 gcd(1246, 6497) = 89 Vậy 89 nhân tử (hay ước) thực n = 6497 Thuật toán kết thúc 2.3 Phép thử tính chất nguyên tố số nguyên Mệnh đề 2.13 Cho n số nguyên lớn Đặt n − = r.s với r ≥ √ n Giả sử với số nguyên tố l ; l chia hết r, tồn số nguyên al thỏa mãn: an−1 ≡1 l (n−1)/l (mod n) gcd al − 1, n = Khi đó, n số nguyên tố Chứng minh Giả sử p ước nguyên tố n đặt le lũy thừa lớn l chia hết r (le |r) (n−1)/le Đặt b ≡ al (mod p) e Từ ta có: bl ≡ an−1 ≡ (mod p) l (n−1)/l Vì (al − 1, n) = nên bl e−1 (n−1)/l ≡ al ≡ (mod p) Vậy cấp b (mod p) le Điều kéo theo le |(p − 1) Điều với số nguyên tố l ước r nên r|(p − 1) Vì r < p √ Theo giả thiết điều ta có: p > r ≥ n 55 Nếu n hợp số n phải có ước nguyên tố không √ n, n phải số nguyên tố Ví dụ 2.14 Xét n = 153533, n − = 4.131.293 Đặt r = 4.131 Ta có l = l = 131 hai ước nguyên tố r Vì 2n−1 ≡ (mod n) gcd(2(n−1)/2 − 1, n) = nên ta chọn a2 = Vì 2n−1 ≡ (mod n) gcd(2(n−1)/131 − 1, n) = nên ta chọn a131 = Như n = 153533 thỏa mãn điều kiện mệnh đề 2.13 nên 153533 số nguyên tố Để chứng minh chặt chẽ, ta cần 131 số nguyên tố Thật vậy: Ta có 130 = 2.5.13, ta chọn r = 13, r có ước nguyên tố l = 13 Vì 2130 ≡ (mod 131) gcd(210 − 1, 131) = nên ta chọn a13 = Như 131 số nguyên tố Định lý 2.15 Cho số nguyên n > E đường cong elliptic định nghĩa Zn Giả sử tồn số nguyên tố l1 , , lk phân biệt điểm Pi ∈ E(Zn ) (Pi = ∞)∀1 ≤ i ≤ k thỏa mãn: li Pi = ∞ với ≤ i ≤ k k i=1 li > n1/4 + Khi đó, n số nguyên tố Chứng minh Giả sử p ước nguyên tố n Ta viết n = pf n1 với p |n1 Khi E(Zn ) = E(Zpf ) ⊕ E(Zn1 ) Vì Pi = ∞ E(Zn ) nên Pi = ∞ E(Zpf ) Đặt Pi,p = Pi mod p Zp Vì li Pi = ∞ mod n nên li Pi = ∞ mod q với q ước n Đặc biệt: li Pi,p = ∞ E(Zp ), tức Pi,p có cấp li Từ suy #E(Zp ) li ∀i Điều kéo theo #E(Zp ) k i=1 li Từ điều kiện định lý Hasse ta có: 1/4 n k +1 < √ li ≤ #E(Zp ) < p + + p = p1/2 + i=1 56 Suy p > √ n Vậy tất ước nguyên tố n lớn √ n hay n số nguyên tố Ví dụ 2.16 Cho n = 907 đường cong elliptic E : y = x3 + 10x − định nghĩa Zn Chọn l = 71, ta có l > (9071/4 + 1)2 ≈ 42 Chọn P (819, 784) ∈ E(Zn ) Ta có 71P = ∞ Vậy n thỏa mãn điều kiện định lý 2.15 nên n = 907 số nguyên tố 57 KẾT LUẬN Đường cong elliptic mảng đề tài lạ lại có nhiều ứng dụng, đặc biệt lĩnh vực mật mã Hiện nay, hệ mật sử dụng đường cong elliptic (ECC) ngày sử dụng rộng rãi nhờ mức độ an toàn cao tốc độ xử lý nhanh hệ mật trước Luận văn trình bày khái niệm cấu trúc nhóm đường cong elliptic trường hữu hạn có đặc số khác với thuật toán tính toán đường cong Bên cạnh đó, luận văn giới thiệu cách ngắn gọn dễ hiểu ba ứng dụng quan trọng đường cong elliptic Đóng góp luận văn xây dựng chu trình thực thuật toán đường cong elliptic trường nguyên tố Zp với p số nguyên tố lớn môi trường Maple, từ đó, việc tính toán liên quan đến đường cong elliptic thực nhanh hơn, xác 58 Tài liệu tham khảo [1] Nguyễn Hữu Điển (2007), Hướng dẫn sử dụng Maple, NXB ĐHKHTN Hà Nội [2] Phạm Huy Điển (2002), Tính toán, Lập trình, Giảng dạy Toán học Maple, NXB Khoa học Kỹ thuật [3] Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán, NXB Đại học quốc gia Hà Nội [4] Dương Quốc Việt (2008), Một số cấu trúc Đại số đại, NXB Đại học Sư phạm [5] W.Diffie and M.Hellman (1976), "New directions in cryptography", IEEE Transactions on Information Theory, Vol.22 [6] T.ElGamal (1985), "A public key cryptosystem and a signature scheme based on discrete logarithms", IEEE Transactions on Information Theory, Vol.31 [7] Darrell Hankerson, Alfred Menezes, Scott Vabstone (2004), Guide to Elliptic Curve Cryptography, Springer [8] D.Husemoller (2002), Elliptic curves, Springer-Verlag, NewYork [9] N.Koblitz (1987), "Elliptic curve cryptosystems", Mathematics of Computation, Vol.48 [10] H.W.Lenstra (1987), "Factoring integers with elliptic curves", Annals of Mathematics, Vol.126 [11] R.Merkle and M.Hellman (1978), "Hiding information and signatures in trapdoor knapsacks", IEEE Transactions on Information Theory 59 [12] V.Miller (1986), "Use of elliptic curves in cryptography", Advances in Cryptology - CRYPTO’85, Lecture Notes in Computer Science, Springer-Verlag [13] Ivan Niven, Herbert S Zuckerman, Hugh L Montgomery (1991), An introduction to the theory of numbers (Fifth edition), John Wiley & Sons Inc [14] Tallman Zacharia Nkgau (1998), Elliptic Curve Cryptosystems: A Survey, School of Cornputer Science McGill University, Montreal [15] J.Pollard (1978), "Monte Carlo methods for index computation mod p", Mathematics of Computation, Vol.32 [16] J.H.Silverman (1986), The Arithmetic of Elliptic Curves, Springer-Verlag, New York [17] Lawrence C Washington (2008), Elliptic curves: Number theory and cryptography (Second edition), Taylor & Francis Group 60 ... ĐẦU Đường cong elliptic 1.1 1.2 Cấu trúc nhóm đường cong elliptic 1.1.1 Phương trình đường cong elliptic 1.1.2 Luật nhóm 1.1.3 Tự đồng cấu, đẳng cấu, tự đẳng cấu đường. .. cấu trúc nhóm đường cong elliptic số ứng dụng đường cong Bố cục luận văn trình bày gồm chương: Chương I : Đường cong elliptic Tác giả trình bày khái niệm bản, cấu trúc, phép toán đường cong elliptic. .. tính chất nguyên tố số nguyên Chương Đường cong elliptic 1.1 Cấu trúc nhóm đường cong elliptic 1.1.1 Phương trình đường cong elliptic Định nghĩa 1.1 Đường cong elliptic E trường K định nghĩa phương

Ngày đăng: 14/06/2017, 16:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w