Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
452,07 KB
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ẤUTRÚCCỦAĐƯỜNGCONGELLIPTIC 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ẤUTRÚCCỦAĐƯỜNGCONGELLIPTIC 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 Đườngcongelliptic 1.1 1.2 Cấutrúc nhóm đườngcongelliptic 1.1.1 Phương trình đườngcongelliptic 1.1.2 Luật nhóm 1.1.3 Tự đồng cấu, đẳng cấu, tự đẳng cấuđườngcongelliptic 13 1.1.4 Đườngcongelliptic tọa độ xạ ảnh 18 1.1.5 Số đườngcongelliptic Zp 20 1.1.6 Cấp nhóm 20 Ứng dụng Maple thực số thuật toán đườngcongelliptic trường Zp 27 1.2.1 Tìm tính số điểm đườngcongelliptic Zp 27 1.2.2 Phép cộng điểm nhân đôi điểm đườngcongelliptic 28 1.2.3 Phép nhân vô hướng đườngcongelliptic Một số ứng dụng đườngcongelliptic 2.1 2.2 10 31 34 Mật mã đườngcongelliptic 34 2.1.1 Mật mã vấn đề 34 2.1.2 Hệ thống đườngcongelliptic 39 2.1.3 Tại sử dụng mật mã đườngcong 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, đườngcongelliptic đóng vai trò ngày quan trọng toán học Các đườngcong có mặt nhiều lĩnh vực khác toán học phong phú mặt cấutrúc Một mặt, đườngcong không kỳ dị (tức đa tạp chiều), mặt khác tập hợp điểm đườngcong lập thành nhóm Abel Vì công cụ toán học áp dụng vào nghiên cứu đườngcongelliptic Những kết đườngcongelliptic có ý nghĩa quan trọng nhiều vấn đề khác [3] Trong số học, từ năm 80 kỉ XX, đườngcongelliptic ứ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 đườngcongelliptic Về mặt ứng dụng, đườngcongelliptic 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 đườngcongelliptic 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 đườngcongelliptic 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 đườngcong vào mục đích nêu trên, trước hết ta cần tìm hiểu cấutrúcđườngcongelliptic 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đườngcong elliptic” để làm đề tài luận văn Vấn đề nghiên cứu trọng tâm luận văn cấutrúc nhóm đườngcongelliptic số ứng dụng đườngcong Bố cục luận văn trình bày gồm chương: Chương I : Đườngcongelliptic Tác giả trình bày khái niệm bản, cấu trúc, phép toán đườngcongelliptic trường hữu hạn ứng dụng Maple để thực số tính toán đườngcong Chương II : Một số ứng dụng đườngcongelliptic Ở chương này, tác giả đề cập đến ba ứng dụng đườngcong elliptic: • Hệ thống mật mã sử dụng đườngcongelliptic • 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 Đườngcongelliptic 1.1 Cấutrúc nhóm đườngcongelliptic 1.1.1 Phương trình đườngcongelliptic Định nghĩa 1.1 Đườngcongelliptic 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: Đườngcongelliptic R (iii) Điều kiện ∆ = để đảm bảo đườngcongelliptic trơn (smooth), tức điểm đườngcong 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 đườngcong 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 Đườngcongelliptic R Xét hai đườngcong 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 đườngcongelliptic 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 đườngcong có phương trình: y = x3 + ax + b (1.4) với a, b ∈ K Biệt thức đườngcong ∆ = −16(4a3 + 27b2 ) Đườngcongelliptic đị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 đườngcongelliptic phức tạp Ví dụ 2.6 Tương ứng m với điểm đườngcongelliptic Zp Ta chọn số nguyên tố p = 40000033, m = 654321 đườngcongelliptic 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 đườngcong 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 đườngcongelliptic 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 đườngcongelliptic Trước hết, ta tương ứng m với điểm M đườngcongelliptic 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 đườngcong 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 đườngcong 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 đườngcongelliptic Zn , trường hợp này, E(Zn ) có cấutrú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ấutrúc nhóm điểm đườngcongelliptic đị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ấutrúcđườngcongelliptic vành Zn n không nguyên tố Kí hiệu O điểm (0 : : 0) P2 (Zn ) điểm ∞ đườngcongelliptic Đặ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 đườngcong 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ấutrú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 đườngcongelliptic 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 đườngcongelliptic 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 đườngcongelliptic 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 đườngcongelliptic đị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 đườngcongelliptic 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 Đườngcongelliptic 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 đườngcongelliptic (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ấutrúc nhóm đườngcongelliptic trường hữu hạn có đặc số khác với thuật toán tính toán đườngcong 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 đườngcongelliptic Đóng góp luận văn xây dựng chu trình thực thuật toán đườngcongelliptic 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 đườngcongelliptic 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ấutrú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