Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
1,43 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI - HOÀNG THỊ CẨM NGUYÊN NGHIÊN CỨU MỘT SỐ KĨ THUẬT TẤN CÔNG HỆ MÃ CÔNG KHAI VÀ ỨNG DỤNG Chuyên ngành: Toán ứng dụng Mã số: 60 46 01 12 LUẬN VĂN THẠC SĨ TOÁN HỌC Ngƣời hƣớng dẫn khoa học:TS Trần Văn Dũng Hà Nội, 2015 LỜI CẢM ƠN Luận văn hoàn thành trường Đại học Sư phạm Hà Nội hướng dẫn thầy giáo TS Trần Văn Dũng Sự giúp đỡ hướng dẫn tận tình, nghiêm túc thầy suốt trình thực luận văn giúp trưởng thành nhiều cách tiếp cận vấn đề Tôi xin bày tỏ lòng biết ơn, lòng kính trọng sâu sắc thầy Tôi xin trân trọng cảm ơn Ban giám hiệu trường Đại học Sư phạm Hà Nội 2, phòng sau đại học thầy cô giáo nhà trường giúp đỡ tạo điều kiện thuận lợi cho suốt trình thực tập Tôi xin chân thành cảm ơn gia đình, bạn bè giúp đỡ động viên tạo điều kiện thuận lợi để hoàn thành khóa học Thạc sĩ hoàn thành luận văn Hà Nội, ngày 10 tháng 12 năm 2015 Tác giả Hoàng Thị Cẩm Nguyên LỜI CAM ĐOAN Luận văn hoàn thành trường Đại học Sư phạm Hà Nội hướng dẫn TS Trần Văn Dũng Tôi xin cam đoan số liệu kết nghiên cứu luận văn trung thực không trùng lặp với đề tài khác Trong trình nghiên cứu hoàn thành luận văn kế thừa thành khoa học nhà khoa học đồng nghiệp với trân trọng biết ơn Tôi xin cam đoan giúp đỡ cho việc thực luận văn cảm ơn thông tin trích dẫn luận văn rõ nguồn gốc Hà Nội, 10 tháng 12 năm 2015 Tác giả Hoàng Thị Cẩm Nguyên MỤC LỤC MỞ ĐẦU 1 Lí chọn đề tài Mục đích nghiên cứu Nhiệm vụ nghiên cứu Đối tượng nghiên cứu Phương pháp nghiên cứu Dự kiến đóng góp NỘI DUNG Chương 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI 1.1 Cơ sở lí thuyết mật mã khóa công khai 1.1.1 Số học Modulo 1.1.2 Định lí Fermat nhỏ 1.1.3 Định lí phần dư Trung Hoa 1.1.4 Hàm ϕ Euler 1.1.5 Kiểm tra tính nguyên tố 1.1.6 Phân số tiếp diễn 11 1.2 Các toán khó liên quan đến hệ mật mã khóa công khai 12 1.2.1 Bài toán phân tích số nguyên thành thừa số nguyên tố 12 1.2.2 Bài toán thặng dư bậc hai 12 1.2.3 Bài toán tìm bậc hai mod n 13 1.2.4 Bài toán logarit rời rạc 14 Chương : MỘT SỐ THUẬT TOÁN CỦA HỆ MÃ KHÓA CÔNG KHAI 16 2.1 Hệ mật mã RSA 16 2.1.1 Định nghĩa hệ mật mã RSA 16 2.1.2 Khởi tạo khóa RSA 17 2.1.3 Sử dụng RSA 17 2.1.4 An toàn RSA 19 2.2 Trao đổi khóa Diffie –Hellman 20 2.2.1 Yêu cầu 20 2.2.2 Khởi tạo Diffie – Hellman 21 2.2.3 Trao đổi khóa Diffie – Hellman 21 2.3 Xác thực mẩu tin 22 2.3.1 Xác thực mẩu tin 22 2.3.2 Các hàm băm Hash 23 2.4 Chữ kí điện tử 24 2.4.1 Các tính chất chữ kí điện tử 25 2.4.2 Chuẩn chữ kí điện tử (DSS) 25 2.5 Tính an toàn sơ đồ khóa công khai 27 Chương 3: MỘT SỐ KỸ THUẬT TẤN CÔNG TRÊN MẬT MÃ KHÓA CÔNG KHAI 29 3.1 Thuật toán xén 29 3.2 Phân tích thừa số 30 3.2.1 Phân tích thừa số Fermat 31 3.2.2 Phân tích sở 32 3.2.3 Phân tích phân số tiếp diễn 34 3.2.4 Trường số 35 3.2.5 Sàng trường số học 38 3.3 Giải toán logarit trường hữu hạn 41 3.3.1 Định lí phần dư Trung Hoa 41 3.3.2 Thuật toán Pohlig- Hellman 42 Chương 4: ỨNG DỤNG AN TOÀN CÁC THUẬT TOÁN MÃ KHÓA 47 CÔNG KHAI 47 4.1 Một số sai lầm sử dụng RSA 47 4.2 Phục hồi mã mã hóa với số mũ công khai nhỏ 50 4.2.1 Tấn công tin nhắn rập khuôn 50 4.2.2 Tấn công thông điệp liên quan 51 4.2.3 Tấn công đệm ngẫu nhiên 53 4.2.4 Thông tin bị rò rỉ 54 4.3 Nhân tử RSA modulus với số mũ riêng nhỏ d 55 4.3.1 Tấn công phân số tiếp diễn Wiener 56 4.4 Một số kiến nghị sử dụng mật mã khóa công khai 58 KẾT LUẬN 60 TÀI LIỆU THAM KHẢO 61 MỞ ĐẦU Lí chọn đề tài Bảo mật nhu cầu xuất từ lâu đời sống người Dưới nhu cầu cần thiết “ Mật mã học” đời phát triển ngày mạnh mẽ Mật mã học lĩnh vực liên quan với kĩ thuật ngôn ngữ toán học để đảm bảo an ninh an toàn thông tin Mật mã học lĩnh vực liên ngành, tạo từ số lĩnh vực khác Các dạng cổ mật mã há chủ yếu liên quan đến ngôn ngữ gần tầm quan trọng thay đổi mật mã hóa sử dụng gắn liền nhiều tới toán học cụ thể toán rời rạc bao gồm vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kê tổ hợp Mã hóa thám mã hai mặt vấn đề phát triển song hành Cùng với phát triển mật mã, phương pháp thám mã ngày tinh vi hiệu thách thức lớn nhà mật mã Mục tiêu thám mã tìm điểm yếu không an toàn phương thức mật mã hóa Thám mã thực kẻ công ác ý, nhằm làm hỏng hệ thống; người thiết kế hệ thống (hoặc người khác) với ý định đánh giá độ an toàn hệ thống Cuối kỉ XX hệ mật mã khóa công khai đời, coi tiến triển làm thay đổi tảng cách làm việc hệ thống mật mã hóa Hệ thống mật mã khóa công khai phát triển ứng dụng rộng rãi thương mại điện tử, tạo khóa xác thực mail, xác thực, truy cập từ xa, đặc biệt hệ thống chữ kí điện tử Chính lí sử dụng rộng rãi thương mại điện tử nên có nhiều công nhằm phá vỡ an toàn hệ mật mã Thêm vào đó, chưa có chứng minh khẳng định tảng toán học mật mã dùng khóa công khai “không thể bẻ gãy”, tiến triển toán học tương lai làm cho hệ thống phụ thuộc vào chúng trở nên an toàn Qua tìm hiểu nắm bắt vấn đề, cảm thấy hứng thú với chủ đề phương pháp công mã khóa công khai đồng ý hướng dẫn luận văn từ TS Trần Văn Dũng nên lựa chọn đề tài: “NGHIÊN CỨU MỘT SỐ KĨ THUẬT TẤN CÔNG HỆ MÃ CÔNG KHAI VÀ ỨNG DỤNG” cho luận văn tốt nghiệp Mục đích nghiên cứu Tổng hợp lại phương pháp thám mã mật mã khóa công khai, từ mong muốn người sử dụng tránh lỗi dẫn đến việc an toàn loại mật mã Nhiệm vụ nghiên cứu - Nghiên cứu lý thuyết mật mã - Nghiên cứu thuật toán mã hóa thám mã - Nghiên cứu số phương pháp thám mã ứng dụng Đối tƣợng nghiên cứu - Các khái niệm mật mã - Cơ sở toán học mã hóa thám mã Phƣơng pháp nghiên cứu - Sử dụng phương pháp thu thập thông tin, tài liệu liên quan đến nội dung đề tài - Phân tích tổng hợp hệ thống phương pháp thám mã mật mã khóa công khai Đóng góp Luận văn tài liệu hệ thống đầy đủ mật mã số kỹ thuật công thám mã phổ biến Luận văn trình bày theo hướng từ sở lý thuyết toán học đến thực tiễn, hy vọng luận văn tài liệu dễ hiểu người đọc áp dụng vào thực tiễn NỘI DUNG Chƣơng 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI Mật mã khóa công khai chuyên ngành mật mã học 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ệ toán học với khóa công khai khóa cá nhân (hay khóa bí mật) Trong mật mã học khóa công khai, khóa cá nhân phải giữ bí mật khóa công khai phổ biến công khai Trong khóa, dùng để mã hóa khóa lại dùng để giải mã Điều quan trọng hệ thống tìm khóa bí mật biết khóa công khai 1.1 Cơ sở lí thuyết mật mã khóa công khai 1.1.1 Số học Modulo Số học modulo sở cho mật mã học nói chung RSA nói riêng Định nghĩa 1: Cho số nguyên dương N Chúng ta nói hai số nguyên a b đồng dư theo modun N tồn số nguyên k cho a b kN Chúng ta miêu tả mối quan hệ kí hiệu sau : a b mod N Dễ dàng chứng minh quan hệ đồng dư quan hệ tương đương Định nghĩa 2: Cho lớp tương đương [x] [y] theo modun N, ta định nghĩa phép toán sau : Phép cộng: x y x y Phép nhân: x y xy Trong luận văn kí hiệu lớp tương đương [x] cách đơn giản x, có điều thay đổi thích rõ ràng Định nghĩa 3: Cho số nguyên N > , modulo vòng Z N tập : 47 Chƣơng 4: ỨNG DỤNG AN TOÀN CÁC THUẬT TOÁN MÃ KHÓA CÔNG KHAI 4.1 Một số sai lầm sử dụng RSA Các công trình bày phần tìm lâu trước Họ cho thấy số sai lầm xảy phiên RSA Ý tưởng modulus công cộng phiên RSA với người sử dụng đối tượng đáng tin cậy mà xác định modulus N cung cấp cho người dùng cặp khóa RSA công khai bí mật hợp lệ xác định (n) , thừa số N Đó là, với người dùng U i cung cấp khóa công khai ei , N khóa riêng di , N , ta thấy không cần việc phân tích modulus thừa số, văn túy giống mã hóa gửi đến cho hai người dùng có số mũ công khai nguyên tố người dùng giải mã mã tương ứng Định lý 2: Cho N pq modulus RSA cho e1 , N , e2 , N hai khóa công khai cho e1 , e2 Giả sử văn túy m mã hóa với hai mã công khai Biết c1 me1 mod N , c2 me2 mod N ta cần tính m thời gian đa thức log( N ) Chứng minh: Biết e1 e2 , ta tính số nguyên a1 , a2 cho a1e1 a2e2 sử dụng định lí Euclidean mở rộng Giờ ta tính toán: c1a1 c2a2 ma1e1 ma2e2 ma1e1 a2e2 m mod N Cả định lí Euclidean mở rộng tính toán thức thực thời gian đa thức log( N ) , ta có kết cần chứng minh 48 Ví dụ 18: N p.q 17.29 cho hai khóa công khai e1 , N , e2 , N với e1 9, e2 16 Lấy M 13 Ta có 7.9 4.16 Tính 139 mod 493 áp dụng định lí phần dư Trung Hoa ta có: Đặt A 139 , m1 17, m2 29 Khi M1 29, M 17 291 mod17 121 mod17 10 suy c1 29.10 290 17 1 mod 29 12 suy c2 17.12 204 a1 139 (mod17) (133 )3 mod17 43 mod17 13 a2 139 mod 29 (133 )3 mod 29 223 mod 29 Vậy 139 mod 493 (290.13 204.5) mod 493 353 Tương tự ta tính 1316 mod 493 256 Giả sử biết c1 , c2 ta có: c1a1 c2a2 3537.2564 mod 493 Tính 2564 mod 493 103 3537 (mod 493) (3537 )1 mod 493 4631 mod 493 115 Do c1a1 c2a2 115.103(mod 493) 13 Điều có nghĩa có quyền truy cập vào khóa công khai văn mật mã chặn tất văn túy mà mã hóa hai lần cho hai người sử dụng khác Vào năm 1984, công mạnh mẽ Common Modulus RSA thực DeLaurentis Ông chứng minh bạn chí không cần hai mã hóa văn túy để thực giải mã tất tin nhăn mã hóa Định lý cho ta thấy rằng, người sử 49 dụng hệ thống thực tạo khóa riêng làm việc với khóa công khai Dưới kết quả: Định lí 3: Cho e, N khóa công khai RSA có hiệu lực với khóa riêng tương ứng d , N Cho e1 , N khóa công khai từ người dùng cho e1 e Thì khóa riêng d1 , N tương ứng e1 , N tính cách: ed d1 e11 mod (*) (e1 , ed 1) thời gian đa thức log( N ) Chứng minh: Ta viết lại phương trình: ed mod ( N ) ed k ( N ) với e1 số mũ công khai thỏa mãn e1 , ( N ) e1 , k ( N ) k ' với k ' ước k Đặt k '' kk' , modulus phương trình (*) viết : ed k ( N ) k '' ( N ) (e1 , ed 1) k' Vì e1 d1 thỏa mãn: d1 e11 mod k '' ( N ) d1e1 mod ( N ) Do d1 số mũ riêng hợp lệ tương ứng với e1 Mọi tính toán thực thời gian đa thức log( N ) Ví dụ 19: Cho N 187, e 3, d 107 Ta có ed 1 3.107 320 2.160 Ta có khóa khác có e1 11, d1 131 Do gcd(11,160) , gcd(11,320) nên ta có k ' 1, k '' 50 Ta tính 111 mod 320 291 , mà 291.11mod160 Do d1 291mod160 131 4.2 Phục hồi mã đƣợc mã hóa với số mũ công khai nhỏ Trong phần này, bao gồm số công trình bày phần trước liên quan đến an toàn hệ thống mật mã RSA số mũ công khai nhỏ chẳng hạn e sử dụng Điều xảy thiết bị mã hóa có khả tính toán nhỏ, chẳng hạn điện thoại di động ác công tầm xa phá vỡ hệ thống, họ không nhắm đến yếu tố modulus mà để phục hồi mã cụ thể phần chúng 4.2.1 Tấn công tin nhắn rập khuôn Khi mã hóa mã m, ta nên cẩn thận kích thước Với công trình bày phần trước, mã m = phục hồi dễ dàng Nếu số mũ công khai đủ nhỏ có nguy mã thỏa mãn c me N Biết điều này, tất Marvin cần làm tính nghiệm thứ e c tập số nguyên Vì văn túy m thỏa mãn m N e không sử dụng Điều phù hợp RSA thường sử dụng để chia sẻ chìa khóa sử dụng hệ thống mật mã khóa đối xứng Ví dụ sử dụng modulus RSA 1024 bit số mũ công khai e khóa để chia sẻ nên có 324 bit Sự thành công công tin nhắn rập khuôn không phụ thuộc vào kích thước văn túy, phụ thuộc vào phần bit Để hiểu điều có thể, giới thiệu ví dụ cổ điển: Giả sử ngày vào buổi sáng, quan trung ương mã hóa gửi đến người dùng văn túy : “ Bí mật cho ngày 01 tháng 09 năm 2011 ????? ” Marvin biết thủ tục ( giả sử ông làm việc công ty 51 có ý muốn trả thù) biết phần văn túy bỏ qua phần nhỏ Nếu hai phần chưa biết ( nghĩa phần “?????”) số mũ công khai đủ nhỏ, Marvin phục hồi phần văn túy mà anh Định lý 4: Giả sử văn túy m mã hóa với khóa công khai e, N Biết e, N , c m e mod N tất văn túy m trừ phần nhỏ e bit liên tiếp m, ta tính phần chưa biết bit thời gian đa thức log( N ) e Chứng minh: Bởi có phần nhỏ e bit liên tiếp m mà không biết, ta viết m m2 2k2 m1 2k1 m0 có giá trị m1 chưa biết m1 N e Cho f N ( x) N [x] đa thức xác định : f N ( x) 2 k1e ((m2 2k2 x2k1 m0 )e c) mod N Chú ý f N (m1 ) mod N Vì m1 f N ( x) mod N thỏa mãn m1 N e ta áp dụng định lý Coppersmith tính toán m1 thời gian đa thức log( N ) e để tìm m 4.2.2 Tấn công thông điệp liên quan Cuộc công trình bày phần coi công với số mũ công khai nhỏ chứng minh làm việc cho e Tuy nhiên số chứng cho thấy làm việc với số mũ lớn Vì chưa chứng thực nên trình bày phiên gốc công Giả sử Alice gửi mã c me mod N đến Bob Marvin giả vờ Bob nói với Alice ông không nhận thông báo yêu cầu 52 gửi lần Bây Alice thay đổi tin nhắn với dấu thời gian khác gửi lần đếm Bob Marvin Vì vậy, Marvin có hai mã tương ứng với hai văn túy giống liên kết mối quan hệ có phần "đơn giản" Franklin Reiter cho thấy, biết hai mã chất mối quan hệ họ, miễn đơn giản, Marvin phục hồi văn đơn giản Định lý 5: Cho hai văn túy m1 , m2 thỏa mãn m2 am1 b Giả sử hai văn mã hóa với khóa công khai 3, N Biết mã tương ứng c1 , c2 , a, b, N e ta tính m1 thời gian đa thức log( N ) Chứng minh: Biết c1 , c2 , a, b, e, N ta tính: b(c2 2a3c1 b3 ) m1 (3a3bm12 3a 2b2 m1 3ab3 ) m1 mod N a(c2 a3c1 2b3 ) 3a3bm12 3a 2b2 m1 3ab3 Mọi tính toán thời gian đa thức log( N ) , ta có kết cần chứng minh Nó trở nên rõ ràng rằng, sử dụng số mũ công khai e = 3, gửi tin nhắn liên quan tuyến tính Ví dụ 20: Cho p 11, q 17 khóa công khai e , thông điệp m1 có m2 2m1 13 Ta có : c1 53 mod187 125 c2 133 mod187 140 3(140 2.23.125 33 ) 3.2113 6339 , 6339mod187 168 2(140 23.125 2.33 ) 2.(806) 1612 , 1612mod187 71 53 Do 168 71.m1 mod187 suy m1 4.2.3 Tấn công đệm ngẫu nhiên Do RSA túy mà chương trình đệm trước chứng minh không an toàn Vì vậy, thực phiên RSA, bắt buộc phải đệm thông tin trước mã hóa, có nghĩa là, để biến đổi văn túy m văn túy m ' m b b luôn số ngẫu nhiên với cấu trúc đặc biệt Khi số mũ công khai e giá trị tuyệt đối b thực nhỏ, công Coppersmith cho phép phục hồi văn túy Định lý 6: Cho 3, N khóa công khai Giả sử hai văn túy m1 , m2 thỏa mãn m2 m1 b mã hóa với khóa công khai 3, N Biết hai mã c1 m13 mod N , c2 m23 mod N khóa công khai 3, N , b N tính m1 , m2 thời gian đa thức log( N ) Chứng minh: Ta có : m13 c1 mod N (m1 b)3 c2 mod N Giờ ta tính toán kết quả, dùng hai biểu thức hai đa thức b: (m13 c1 , m1 b)3 c b9 (3c1 3c2 )b6 (3c12 21c1c2 3c22 )b3 (c1 c2 )3 mod N mod N Do đa thức lồi bậc cho f N ( x) x9 (3c1 3c2 ) x6 (3c12 21c1c2 3c22 ) x3 (c1 c2 )3 (mod N ) có nghiệm x0 b , b N ta sử dụng định lý Coppersmith để tính b Một ta biết giá trị b, cần áp dụng công mô tả phần trước cho tin nhắn liên quan Tất tính toán thực thời gian đa thức log( N ) 54 Vì vậy, cần thiết để sử dụng đệm ngẫu nhiên đủ lớn 4.2.4 Thông tin bị rò rỉ Khi thực hệ thống mật mã RSA, mã hóa số mũ giải mã thỏa mãn sau gọi phương trình ed k ( N ) , với k số mà phải giữ bí mật Một lý cho việc trình bày Boneh, Durfee Frankel cho thấy,khi biết k, Marvin tìm thấy số bit quan trọng số mũ giải mã: Định lí 7: Cho e, N d , p, q, N khóa công khai khóa riêng thỏa mãn phương trình ed k ( N ) Nếu biết e, N k ta luôn tính d1 cho d1 d p q thời gian đa thức log( N ) Chứng minh: Đặt d1 1e (1 kN ) với Viết lại phương trình chính: ed k N ed k ( N s ) s p q 1, ta tính: d1 d kN k ( N s ) ks s 1 p q e e e Khi sử dụng số nguyên tố cân để tạo mô đun, bất đẳng thức p q 32 N cố định Điều có nghĩa đưa khóa công khai k, ta luôn tính d1 : d1 d 32 N Điều có nghĩa biết nửa số bit quan trọng số mũ riêng Ví dụ 21: Cho p 11, q 17, e 3, d 107, d1 125 Ta tính N 187 , ( N ) 160 32 N 0.5 21 55 ed 1 3.107 1 320 suy k Nếu biết e, N 3,187 k Thì ta có : d1 d 32 N hay 125 d 21 từ ta mò tìm d Chúng cần phải giải thích lý công coi công mũ công khai nhỏ Lý cho điều thường thông tin số k phương trình chính, e cần phải có k Kết trình bày sau Định lý 8: Cho modulus RSA N pq với p, q khóa công khai 3, N , số k phương trình ed k ( N ) thỏa mãn k Chứng minh: Từ phương trình ed k ( N ) ta biết k e Vì trường hợp ta có k k Bởi (3, p 1) ta có p (mod 3) p (mod 3) p mặt khác (3, p 1) p (mod 3) ta có được: p (mod 3) q (mod 3) Vì ( N ) ( p 1)(q 1) (mod 3) Lấy phương trình modulus e ta có: 3d k ( N ) (mod 3) k (mod 3) Vì k 1hoặc k , nên ta có k điều chứng minh kết luận 4.3 Nhân tử RSA modulus với số mũ riêng nhỏ d Sau công trình bày trước đó, phần ta nói công vào phiên RSA có số mũ riêng d thấp Những công gây thiệt hại nhiều so với loại công trình bày phần 56 trước, chúng nhắm vào nhân tử modulus phá vỡ toàn hệ thống Các định lý trình bày phần giả sử mã hóa giải mã số mũ định nghĩa modulo ( N ) Các kết áp dụng số mũ thay cho định nghĩa modulo N giống phần trước Ta trình bày kết đầu tiên, mà hữu ích cho công phần Với phương trình ed k ( N ) , ta có 0k ed ed e, d (N ) (N ) Đặc biệt ta có k d 4.3.1 Tấn công phân số tiếp diễn Wiener Cuộc công đơn giản dễ thực Wiener thực Các nhân tử modulus RSA cung cấp số mũ riêng d đủ nhỏ Định lý 9: Cho modulus RSA N pq khóa công khai e, N , cho d , p, q, N tương ứng khóa riêng nó, ed k ( N ) Cho g ( p 1, q 1) , g g ( g ,k ) k0 ( gk,k ) Nếu d N phân tích thời gian đa thức log( N ) g k pq 2( p q 1) g0 ,k0 N sg0 ,k0 Chứng minh: Ta có: ( N ) lcm( p 1, q 1) (N ) ( p 1)(q 1) N ( p q 1) N s ( p 1, q 1) g g g ta viết lại phương trình sau: ed k ( N ) k0 ( gk,k ) , g cho dN : g ( g ,k ) k k ( N ) ( N s) g g0 Giả sử ta chia vế phương trình 57 ed k0 k k ks e 1 ( N s) ( N s) g0 N dN g dN dN g d g dN Ta có: k k k0 e 1 N g0 d dN dg N dg N 2(dg )2 Từ định lí phần phân số tiếp diễn, ta thấy số tiếp diễn mở rộng ta có k0 dg0 aj bj e N Cho ci bi k0 dg hội tụ phân hội tụ thứ i e N Vậy j Bây ta nhận thấy phương trình viết là: ed k ( N ) ( N ) e dg0 g0 b j g0 e k0 k0 a j k0 Vì ta biết hội tụ c j đoán giá trị k00 ta tính g ( N ) Để tìm hội tụ tính toán ( N ) , ta tiến hành bước sau: hội tụ, ta tính toán trường hợp tương ứng với ( N ) : c ce m Đối với trường hợp ta cố gắng phân tích modulus, có i nghĩa giải hệ thống N pq c ( p 1)(q 1) Nếu việc phân tích thực ta có hội tụ Nếu trường hợp thỏa mãn, ta tăng m lên bắt đầu lại từ đầu g g Bằng cách này, ta chắn m k00 số điểm Nếu m k00 , ta thử lớn k00 lặp lại cho hội tụ, có tổng số đa thức g log( N ) Cách rõ ràng để tránh công sử dụng d N 0.25 Wiener giới thiệu phương pháp khác để tránh công 58 sử dụng số mũ công khai e lớn Đây vấn đề, sau chọn e cần thêm cho e liên tục bội số ( N ) e thỏa mãn e N Vì tránh công sử dụng số mũ riêng nhỏ bất đẳng thức cuối thỏa mãn 4.4 Một số kiến nghị sử dụng mật mã khóa công khai Một công trình nghiên cứu tài trợ Quỹ Khoa học Quốc gia Thụy Sỹ nhằm kiểm tra tính đắn hệ mật mã khóa công khai đưa kết bất ngờ là: khoảng 0,2% khóa công khai không đảm bảo an toàn Sau thống kê phân tích số liệu từ triệu khóa công khai công trình đưa nhiều điểm sai lầm việc sử dụng khóa công khai có liên quan đến số mũ công khai, tính nguyên tố, thừa số nguyên tố nhỏ modulus với thừa số chung Trong phần trình bày số sai lầm thường gặp người sử dụng việc sử dụng mật mã khóa công khai Người dùng nên tránh số sai lầm sau để tránh việc người khác công giải mã mã - Các số mũ công khai nguyên tố - Số mũ công khai nhỏ - Số mũ riêng nhỏ Cần phải lựa chọn tham số cho: - Các số nguyên tố p q đủ lớn cỡ 500 bit; sinh ngẫu nhiên thông qua thuật toán kiểm tra tính nguyên tố thay đổi người sử dụng - Các khóa công khai sinh ngẫu nhiên thay đổi định kì - Đảm bảo tham số thuật toán Diffie – Hellman g thuật toán DSA nguyên thủy theo modulo số tương ứng 59 - Tham số k thuật toán DSA lựa chọn ngẫu nhiên cho lần ký Như vậy, mật mã khóa công khai có nhiều tiện lợi, dùng cho vấn đề phức tạp Tóm tắt chƣơng Trong chương đưa số sai lầm người dùng mắc phải sử dụng mật mã khóa công khai: - Sai lầm sử dụng RSA - Phục hồi mã mã hóa với số mũ công khai nhỏ với loại công khác - Tấn công phân số tiếp diễn Wiener nhân tử RSA modulo với số mũ riêng nhỏ Sau đưa số kiến nghị cho người sử dụng mật mã khóa công khai để tăng thêm tính an toàn cho khóa 60 KẾT LUẬN Mật mã khóa công khai hệ thống tương đối lớn phức tạp việc nắm vững nghiên cứu kĩ hệ thống mật mã khóa công khai đòi hỏi nhiều thời gian công sức Qua đề tài trình bày đưa nhìn tổng quát mật mã khóa công khai việc thám mã mật mã khóa công khai Luận văn trình bày có hệ thống vấn đề liên quan đến mật mã khóa công khai sở toán học, toán khó số hệ mật mã khóa công khai.Luận văn trình bày số thuật toán thám mã công mật mã khóa công khai số sai lầm sử dụng người dùng Qua luận văn muốn làm rõ yếu tố gây an toàn sử dụng mật mã khóa công khai mong muốn người dùng có thêm hiểu biết nâng cao tính an toàn cho mật mã Tuy nhiên luận văn số hạn chế chưa đưa ví dụ cụ thể, rõ ràng … Hướng phát triển đề tài tìm hiểu thêm số yếu tố gây an toàn cho mật mã, cách thám mã số kiến nghị cho người sử dụng để đảm bảo an toàn sử dụng loại mật mã Cuối lần xin chân thành cảm ơn thầy cô giảng dậy chuyên ngành Toán Ứng Dụng, thầy cô phòng sau đại học trường Đại học Sư phạm Hà Nội Tôi xin chân thành cảm ơn thầy TS Trần Văn Dũng tận tình hướng dẫn hoàn thành luận văn Tôi xin bày tỏ cảm ơn đóng góp thầy cô giúp luận văn hoàn chỉnh 61 TÀI LIỆU THAM KHẢO [1] Trần Văn Dũng, (2014), Bài giảng An toàn bảo mật thông tin, Trường Đại học Giao thông vận tải [2] Filip da Costa Boucinha, (2011), A Survey of Cryptanalytic Attacks on RSA, Universidade Técnica de Lisboa [3] Dan Boneh, (1999), Twenty Years of Attacks on RSA Cryptosystem, American Mathematical Society [4] S.M van den Broek, (1999),Digital signatures and the Public Key infrastrucre, Department of Econometrics Faculty of Economics Erasmus University Rotterdam [5] Paul Krzyzanowski, (2009), Cryptographic communication and authentication, Rutgers University [6] David J.C MacKay, (2005), Information Theory , Inference and Learning Algorithms, Cambridge University Press [7] Edward Schaefer, (2008), An introduction to Cryptography and Cryptanalysis, Santa Clara University [8] Nigel Smart, (2001), Cryptography : An Introduction, University of Bristol [9] William Stallings, (2011), Cryptography and Network security principles and practice, Pearson Education, Inc