Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
123,64 KB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ BÌNH MỘT SỐ THUẬT TỐN PHÂN TÍCH SỐ NGUN HIỆN ĐẠI VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ TOÁN HỌC THÁI NGUYÊN - 2017 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ BÌNH MỘT SỐ THUẬT TỐN PHÂN TÍCH SỐ NGUN HIỆN ĐẠI VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ TOÁN HỌC Chuyên ngành: Phương pháp Toán sơ cấp Mã số: 60 46 01 13 NGƯỜI HƯỚNG DẪN KHOA HỌC GS.TSKH HÀ HUY KHOÁI THÁI NGUYÊN - 2017 Mục lục Danh sách kí hiệu MỞ ĐẦU Chương Thám mã số thuật tốn phân tích số ngun cổ điển 1.1 Thám mã phân tích số nguyên 1.2 Phân tích Fermat 12 1.3 Phân tích Pollard p − 17 Chương Một số thuật tốn đại phân tích số ngun 20 2.1 Sự kiểm tra ước 20 2.2 Thuật tốn phân tích ρ Pollard 21 2.3 Phương pháp phân tích Brent 24 2.4 Phương pháp phân tích dùng đường cong elliptic 26 2.5 Phương pháp phân tích sàng trường số 28 2.6 Khả phân tích số “chip” chuyên dụng 30 KẾT LUẬN VÀ KIẾN NGHỊ 32 TÀI LIỆU THAM KHẢO 33 Lời cảm ơn Luận văn thực Trường Đại học Khoa học - Đại học Thái Nguyên hoàn thành với hướng dẫn GS.TSKH Hà Huy Khoái (Trường Đại học Thăng Long, Hà Nội) Tác giả xin bày tỏ lòng biết ơn chân thành sâu sắc tới người hướng dẫn khoa học dành nhiều cơng sức hướng dẫn để tác giả hoàn thành luận văn Tác giả xin trân trọng cảm ơn Ban Giám hiệu Trường Đại học Khoa học - Đại học Thái Nguyên, Ban Chủ nhiệm Khoa Toán-Tin, giảng viên tham gia giảng dạy, tạo điều kiện tốt để tác giả học tập nghiên cứu Tác giả muốn gửi lời cảm ơn tốt đẹp tới tập thể Lớp B, cao học Tốn khóa (2015-2017) động viên giúp đỡ tác giả nhiều suốt trình học tập Nhân dịp này, tác giả xin chân thành cảm ơn Sở Giáo dục Đào tạo Hải Phòng, Ban Giám hiệu đồng nghiệp Trường THPT Nguyễn Đức Cảnh, Huyện Kiến Thụy, Thành phố Hải Phịng tạo điều kiện cho tác giả hồn thành tốt nhiệm vụ học tập công tác Cuối cùng, tác giả muốn dành lời cảm ơn đặc biệt đến bố mẹ đại gia đình ln động viên chia sẻ khó khăn để tác giả hoàn thành tốt luận văn Danh sách kí hiệu Z vành số nguyên Q trường số hữu tỷ Fp trường có p phần tử K[X] vành đa thức với hệ số trường K ⌈x⌉ trần số x deg P(X) bậc đa thức P(X) mod p modulo p gcd(P(X), Q(X)) ước chung lớn P(X) Q(X) exp(·) hàm số mũ gcd(a, b) ước chung lớn a b a|b a ước b ⌊N⌋ sàn số N F[α ] trường mở rộng trường F Mở đầu Trước năm 70 kỷ XX, Số học thường xem ngành tốn học t, có ý nghĩa lý thuyết Đối tượng nghiên cứu Số học quy luật tập hợp số nguyên; giả thuyết lớn tồn Số học thường giả thuyết số ngun tố Thậm chí, có nhà toán học cho rằng, vẻ đẹp số học có nhờ xa rời thực tiễn Ngày nay, ứng dụng lớn lao bất ngờ Số học vào mật mã cho ta thấy quan niệm hoàn toàn thay đổi Vẻ đẹp Số học ý nghĩa “thuần tuý” nó, mà ứng dụng bất ngờ vào thực tiễn Cách khoảng 30 năm, khó hình dung rằng, số kết lý thuyết Số học lại làm nên cách mạng bảo mật thông tin Lý thuyết mật mã Cơ sở ứng dụng Số học thuật tốn, lĩnh vực nghiên cứu thuật toán Số học Trong lĩnh vực Lý thuyết mật mã, mật mã khóa cơng khai dạng mật mã cho phép người sử dụng trao đổi thông tin mật mà không cần phải trao đổi khóa chung bí mật trước Điều thực cách sử dụng cặp khóa có quan hệ tốn học với khóa cơng khai khóa cá nhân (hay khóa bí mật) Cơ sở toán học vấn đề việc phân tích số tự nhiên số vấn đề liên quan đến chúng Luận văn có mục đích tìm hiểu sơ lược sở tốn học Lý thuyết mật mã, đồng thời phân tích sâu thuật tốn phân tích số tự nhiên để làm sở tốn học cho ứng dụng Ngồi phần Mở đầu, Kết luận, Tài liệu tham khảo, nội dung luận văn trình bày hai chương: • Chương Thám mã số thuật toán cổ điển phân tích số nguyên Trong chương chúng tơi trình bày kiến thức sở thám mã sau số thuật tốn cổ điển phân tích số nguyên, làm sở so sánh phát triển cho chương • Chương Một số thuật tốn đại phân tích số ngun Đây nội dung luận văn Chúng tơi trình bày số thuật tốn đại phân tích số ngun thuật tốn phân tích Pollard, phân tích dùng đường cong elliptic sàng trường số Thái Nguyên, ngày 10 tháng năm 2017 Tác giả Nguyễn Thị Bình Chương Thám mã số thuật tốn cổ điển phân tích số ngun 1.1 Thám mã phân tích số nguyên Phần em trình bày thám mã Thám mã vấn đề phức tạp nên luận văn em xin phép đề cập vấn đề đơn giản Phần đầu trình bày chúng tơi dựa vào [2] Thám mã (hay phân tích mã - cryptanalysis) việc nghiên cứu phương pháp “phá vỡ” ngụy trang văn (do việc mã hóa tạo nên) để hiểu nội dung văn Hiện nay, quan điểm thám mã, người ta phân hệ mã thành ba loại: • Loại bị phá; • Loại chưa nghiên cứu phân tích (vì cịn mới, chưa dùng rộng rãi); • Loại nghiên cứu chưa bị phá (RSA, IDEA, hệ mã sử dụng logarit rời rạc, đường cong elliptic, ) Có ba cách thơng dụng việc chuyển hóa văn mã thành văn gốc: • Ăn trộm, hối lộ, mua (với giá cao) để có chìa khóa; • Khai thác tính cẩu thả lỏng lẻo người dùng khóa (ví dụ : có người hay dùng tên người thân để làm mật chìa khóa); • Phân tích mã (tức thám mã) Bây giờ, ta thảo luận số phương pháp thám mã Thực tế, thám mã phức tạp người ta hệ mật mã sử dụng giả sử người thám mã biết rõ hệ mật mã sử dụng tiến hành phân tích mã Mục đích thiết kế hệ mật mã an toàn bảo mật Dưới ta liệt kê loại công vào hệ mật mã Mức độ công phụ thuộc vào hiểu biết người thám mã hệ mật mã sử dụng : • Tấn cơng biết mã (ciphertext-only): người thám mã có tin mã hóa • Tấn công biết tin rõ (known plaintext): người thám mã có tin rõ mã 10 • Tấn công chọn tin rõ (chosen plaintext): người thám mã tạm thời có quyền truy xuất tới mã hóa, người thám mã có khả chọn tin rõ xây dựng mã tương ứng • Tấn công chọn mã (chosen ciphertext): người thám mã tạm thời có quyền truy xuất tới giải mã, có khả chọn mã xây dựng lại tin rõ tương ứng Bây ta liệt kê phương pháp thám mã Thám mã tích cực việc thám mã sau tìm cách làm sai lạc liệu truyền, nhận liệu lưu trữ phục vụ mục đích người thám mã Thám mã thụ động việc thám mã để có thơng tin tin rõ phục vụ mục đích người thám mã Thám mã affine Trong mật mã affine, bảng chữ thông điệp cần mã hóa có kích thước m chuyển thành số tự nhiên từ 0, , m − Sau dùng hàm modulo để mã hóa chuyển thành mã Hàm mã hóa cho ký tự sau: e(x) = (ax + b) (mod m) với m kích thước bảng chữ cái, a b khóa mã Giá trị a chọn cho a m nguyên tố Giả sử Trudy lấy mã sau đây: 20 Chương Một số thuật toán đại phân tích số nguyên Trong Chương này, chúng tơi thảo luận số thuật tốn đại phân tích số nguyên 2.1 Sự kiểm tra ước Sự kiểm tra ước thuật toán đơn giản để phân tích số nguyên Giả sử s t nhân tử không tầm thường N cho st = N s ≤ t Để thực thuật toán kiểm tra ước, cách đơn giản kiểm tra √ xem s | N với s = 2, , N Khi nhân tử s tìm thấy t = N/s nhân tử, phép phân tích tìm thấy cho N Ràng buộc s ≤ ⌊N⌋ cung cấp định lí sau đây: Định lí 2.1.1 Nếu N có nhân tử không tầm thường s, t với st = N s ≤ t, √ s ≤ N Chứng minh Do s nhân tử N nên ta có s > N Khi t ≥ s > √ N, 21 st > N, mà điều lại mâu thuẫn với giả thiết st = N Do s ≤ N Thuật tốn sau function trialDivision(N) for s from to floor(sqrt(N)) if s divides N then return s, N/s end if end for end function Nếu thuật toán cho hợp số N, đưa cặp nhân tử khơng tầm thường s, t với s ≤ t Phát biểu s | N tương đương với s ≡ (mod N) 2.2 Thuật tốn phân tích ρ Pollard Phương pháp phân tích ρ Pollard phương pháp xác suất để phân tích hợp số N phép lặp modulo đa thức N Phương pháp công bố J.M Pollard năm 1975 Giả sử xây dựng dãy x0 ≡ (mod n), xn+1 ≡ xn2 + (mod n) Dãy dãy tuần hồn kể từ số Có thể chứng minh độ dài chu trình nhỏ N phương pháp phản chứng: 22 Giả sử độ dài chu trình L lớn N, nhiên ta có N giá trị phân biệt xn chu trình có độ dài L > N, phải tồn hai giá trị xn đồng dư nhau, chúng xác định “các điểm xuất phát” chu trình có độ dài nhỏ N Các lập luận xác suất chứng tỏ thời gian dự kiến để dãy theo mod n rơi vào √ chu trình độ dài dự kiến chu trình tỷ lệ với N, với hầu hết N (xem Weisstein E.W [6]) Các giá trị ban đầu hàm lặp thường dùng khác nhau, hàm f (n) = xn2 + cho thấy làm việc tốt thực tế tốn phân tích số nguyên Giả sử s t nhân tử không tầm thường N thỏa mãn st = N s ≤ t Bây giả sử ta tìm số ngun khơng âm i j với i < j cho xi ≡ x j (mod s) xi ≡ x j (mod n) Do s | (xi − x j ) s | N, ta có s | gcd(xi − x j , N) Bởi giả thiết s ≥ 2, ta có gcd(xi −x j, N) ≥ Bởi định nghĩa, ta có gcd(xi −x j , N) | N Ngồi ra, ta có N | (xi − x j ) N | gcd(xi − x j , N) Chúng ta có N | gcd(xi − x j , N), gcd(xi − x j , N) > gcd(xi − x j , N) | N Như vậy, gcd(xi − x j , N) nhân tử không tầm thường N Bây ta phải tìm i, j cho xi ≡ x j (mod s) xi ≡ x j (mod n) Nhận thấy dãy xn (mod s) tuần hoàn với độ dài chu trình tỷ lệ với s Pollard đề xuất xn so sánh với x2n , với n = 1, 2, 3, Với n, ta kiểm tra xem d(xn − x2n , N) có nhân tử khơng tầm thường N hay khơng, ta lặp lại q trình nhân tử tìm thấy Nếu khơng có nhân tử tìm thấy, thuật tốn khơng chấm 23 dứt Thuật toán function pollardRho(N) # Initial values x(i) and x(2*i) for i = xi := x2i := # Find x(i+1) and x(2*(i+1)) xiPrime := xi ^ + x2iPrime := (x2i ^ + 1) ^ + # Increment i: change our running values for x(i), x(2*i) xi := xiPrime % N x2i := x2iPrime % N s := gcd(xi - x2i, N) if s and s N then return s, N/s end if end end function a % m tốn tử modulo, cho ta số ngun khơng âm nhỏ cho ab ≡ y (mod m) 24 2.3 Phương pháp phân tích Brent Phương pháp phân tích Brent cải thiện thuật toán ρ Pollard, công bố R Brent năm 1980 (xem Weisstein E.W [7]) Trong thuật toán ρ Pollard, cố gắng để tìm thấy nhân tử khơng tầm thường s N cách tìm số i, j với i < j cho xi ≡ x j (mod s) xi ≡ x j (mod n) Dãy xn định nghĩa quan hệ truy hồi x0 ≡ (mod N) xn+1 ≡ xn2 + (mod N) Pollard gợi ý xn so sánh với x2n n = 1, 2, 3, Brent cải thiện phương pháp Pollard cách so sánh xn với xm , m lũy thừa nguyên nhỏ n Thuật toán function brentFactor(N) # Initial values x(i) and x(m) for i = xi := xm := for i from to infinity # Find x(i) from x(i-1) xi := (xi ^ + 1) % N s := gcd(xi - xm, N) if s and s N then 25 return s, N/s end if if integralPowerOf2(i) then xm := xi end if end end function hàm integralPowerOf2(z) z lũy thừa nguyên sai ngược lại Việc triển khai hiệu cho hàm thực cách kiểm tra lũy thừa lũy thừa vượt z function integralPowerOf2(z) pow2 := while pow2 10110 , ước bé có 48 chữ số (chính số hay dùng RSA nay) Các bước chuẩn bị cho thực thuật tốn sau • Lấy số tự nhiên d ≈ log(n) log log(n) √ m = ⌊ d n⌋ • Khai triển số n theo số m, n = md + ad−1 md−1 + · · · + a0 ≤ < m • Đa thức tương ứng với khai triển f (x) = xd + ad−1 xd−1 + · · · + a0 • Lấy α nghiệm đa thức nêu xét trường mở rộng Q[α ] Để cho dễ hình dung quy trình thực thuật tốn, ta xét ví dụ cụ thể phân tích số n = 2501 Ta có d = 2, log(2501) ≈ 1.950217066, log log(2501) m= √ 2501 = 50 Do 2501 = 502 + 1, nên ta có đa thức tương ứng f (x) = x2 + Đa thức có nghiệm i ta xem xét trường mở rộng trường Q[i] 29 Ta để ý vành Z/2510Z phần tử 50 có vai trị giống i, 502 ≡ −1 mod 2501 Điều đưa ta đến việc thiết lập ánh xạ h : Z[i] → Z, từ tập số nguyên đại số Z[i] vào tập số nguyên thông thường, theo công thức h(a + bi) = a + b · 50, ta có đẳng thức sau h(αβ ) ≡ h(α )h(β ) mod 2501 với α , β ∈ Z[i] Nhắc lại ta gọi số nguyên mịn (hay “vụn”) phân tích thành tích số nguyên tố nhỏ Mục tiêu trước mắt tìm số nguyên đại số mịn Z[i], mà ảnh (trong phép ánh xạ h) mịn Z (nói chung, việc tìm số vơ khó khăn ta hiểu RSA xem có độ an toàn cao) Ta ký hiệu số αi , ta muốn tìm tập chúng, mà ta đánh số α1 , α2 , · · · , αr , cho tích chúng số “chính phương” Z[i] (nghĩa là, α1 α2 · · · αr = β ∈ Z[i]), cịn tích ảnh chúng lại số phương thơng thường, tức h(α1 )h(α2 ) · · · h(αr ) = t ∈ Z Nếu có số này, ta phân tích số n theo nhận xét sau Do [h(β )]2 = h(β )h(β ) = h(β ) = h(α1 α2 · · · αr ) = h(α1 )h(α2 ) · · · h(αr ) = t ˆ β ) tˆ nên sau rút gọn h(β ) t theo modulo n ta hai số h( thoả mãn đẳng thức ˆ β) h( ≡ tˆ2 mod n (2.1) 30 suy ˆ β ) − tˆ h( ˆ β ) + tˆ ≡ h( mod n (2.2) ˆ β ) khơng đồng dư với ±tˆ theo modulo n, từ đẳng thức ta Nếu h( suy thừa số vế trái chứa ước số n, hay nói cách khác ˆ β ) − tˆ, n cho ta ước (không tầm thường) số n gcd h( Tóm lại, tốn trở thành việc tìm số nguyên đại số α1 , α2 , · · · , αr cho biểu thức (2.1) thoả mãn 2.6 Khả phân tích số “chip” chuyên dụng Như nêu, phương pháp xem hiệu tốn phân tích số lớn thuật tốn sử dụng sàng trường số Chính phương pháp mà gần (năm 1999) người ta phân tích hợp số với độ dài kỷ lục 155 chữ số thập phân (512 bit nhị phân), nhiều tháng ròng với số lượng máy tính khổng lồ Cho nên hệ mã RSA chuẩn mực, với độ dài chìa khố 1024 bit nhị phân (khoảng 308 chữ số thập phân), người ta xem an tồn tuyệt đối vịng 15-20 năm Thế gần (khoảng tháng 2/2003) Adi Shamir (một ba đồng tác giả công bố phát minh hệ mã RSA) tuyên bố ông cộng phịng Tin học Tốn ứng dụng Viện nghiên cứu khoa học Weizmann (Israel) thiết kế “con chip đặc thù” cho việc phân tích số thừa số nguyên tố, có sức mạnh phi thường có 31 khả bẻ hệ mã RSA chuẩn Một công cụ “đặc chủng” kiểu biết đến trước đây, hệ thống quang điện tử TWINKLE, sử dụng thành phần đắt tiền khó chế tạo Hệ thống Shamir đồng nghiệp, gọi tắt TWIRL, có nhiều điểm giống với TWINKLE, khơng chứa thành phần quang học đắt tiền, khó kiếm mà thiết lập dựa công nghệ VLSI (Very large scale integration - Tích hợp quy mơ lớn) phổ biến Về chất hệ thống tích hợp lượng khổng lồ vi xử lý chạy tần số 1GHz Cho tới lúc này, “con chip đặc thù” TWIRL nằm sơ đồ, chưa triển khai thực tế, số đánh giá sơ cho thấy: để phân tích số có độ dài 512 bit nhị phân (như nói trên) cần máy tính chuyên dụng (thiết lập sở chip TWIRL) trị giá khoảng 10 ngàn USD, làm việc vịng 10 phút Nếu nhớ cơng việc địi hỏi hàng ngàn máy tính mạnh làm việc nhiều tháng ròng rã, ta thấy sức mạnh chip chuyên dụng Tuy nhiên, theo đánh giá này, muốn phân tích số có độ dài gấp đôi thế, tức khoảng 1024 bit nhị phân (như chìa khố thơng thường hệ mã RSA chuẩn nay), phải cần tới máy chuyên dụng trị giá khoảng 10 triệu USD, làm việc liên tục thời gian năm Như vậy, giả sử theo đà mà tiếp tục được, để bẻ hệ mã RSA với độ dài khố 2048 bit nhị phân phải cần tới máy tính chuyên dụng trị giá 10 tỷ USD, làm việc liên tục 52560 năm! 32 Kết luận kiến nghị Luận văn “Một số thuật tốn phân tích số nguyên đại ứng dụng” đạt kết sau: Trình bày đại cương thám mã số thuật tốn phân tích số nguyên cổ điển Trình bày số thuật tốn phân tích số ngun đại, bao gồm phân tích ρ Pollard, phân tích Brent, phân tích dùng đường cong elliptic, phân tích sàng trường số, khả phân tích số “chip” chuyên dụng 33 Tài liệu tham khảo Tiếng Việt [1] Hà Huy Khối, Phạm Huy Điển (1997), Nhập mơn Số học thuật toán, NXB Khoa học kỹ thuật [2] Hà Huy Khoái, Phạm Huy Điển (2004), Mã hóa thơng tin, NXB Đại học Quốc gia Hà Nội Tiếng Anh [3] C Barnes (2004), Integer Factorization Algorithms, Lecture Notes, Department of Physic, Oregon State University [4] Jr.H.W Lenstra, R Tijdeman (eds) (1983), Computational Methods in Number Theory, Mathematical Centre Tracts, vol 154/155, Mathematisch Centrum, Amsterdam [5] E.W Weisstein, “Pierre de Fermat”, From MathWorld, an online encyclopedia Available: http://scienceworld.wolfram com/biography/Fermat.html 34 [6] E.W Weisstein, “Pollard Rho Factorization.” From MathWorld, an online encyclopedia December 28, 2002 Available: http:// mathworld.wolfram.com/PollardRhoFactorizationMethod html [7] E.W Weisstein, “Brent’s Factorization Method.” From MathWorld, an online encyclopedia December 28, 2002 Available: http:// mathworld.wolfram.com/BrentsFactorizationMethod.html [8] E.W Weisstein, “Pollard Rho Factorization.” From MathWorld, an online encyclopedia December 28, 2002 Available: http:// mathworld.wolfram.com/Pollardp-1FactorizationMethod html ... thám mã số thuật tốn phân tích số ngun cổ điển Trình bày số thuật tốn phân tích số nguyên đại, bao gồm phân tích ρ Pollard, phân tích Brent, phân tích dùng đường cong elliptic, phân tích sàng... tốn đại phân tích số nguyên Đây nội dung luận văn Chúng tơi trình bày số thuật tốn đại phân tích số ngun thuật tốn phân tích Pollard, phân tích dùng đường cong elliptic sàng trường số Thái Nguyên, ... 20 Chương Một số thuật tốn đại phân tích số ngun Trong Chương này, thảo luận số thuật tốn đại phân tích số ngun 2.1 Sự kiểm tra ước Sự kiểm tra ước thuật toán đơn giản để phân tích số nguyên Giả