Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
914,73 KB
Nội dung
1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH ĐỒN MINH KẾ VỀ MẬT MÃ KHĨA CƠNG KHAI LUẬN VĂN THẠC SĨ TOÁN HỌC NGHỆ AN – 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH ĐỒN MINH KẾ VỀ MẬT MÃ KHĨA CƠNG KHAI 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 PGS.TS NGUYỄN THÀNH QUANG NGHỆ AN - 2015 MỤC LỤC TRANG MỞ ĐẦU CHƢƠNG I MỘT SỐ KIẾN THỨC SỐ HỌC CƠ SỞ 1.1 Phi hàm Euler ứng dụng 1.2 Kiểm tra nguyên tố Maple 1.3 Biểu diễn số nguyên 17 CHƢƠNG II MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT MÃ 22 2.1 Mật mã học 22 2.2 Mật mã khố cơng khai 29 2.3 Hệ mã RSA 36 KẾT LUẬN 46 TÀI LIỆU THAM KHẢO 47 MỞ ĐẦU Cho đến năm 70 kỷ XX, Số học xem ngành lý thuyết túy đẹp đẽ tốn học ([4]) Máy tính khơng phát huy vẻ đẹp truyền thống Số học mà triển khai ứng dụng có cho kỷ XXI Một ứng dụng bật Số học thuật tốn phân tích số tự nhiên thành tích thừa số nguyên tố nguyên tắc khóa mật mã cơng khai Vì vậy, ngày việc nghiên cứu số nguyên tố kích thích kiện số ngun tố tỏ có ích việc mã hóa giải mã thơng tin Tính bảo mật an toàn hệ mật mã RSA (do ba nhà khoa học Học viện Công nghệ Massachusetts công bố năm 1978) đảm bảo độ phức tạp tốn số học phân tích số ngun thành tích thừa số ngun tố Nói khác đi, vấn đề thời gian tiêu tốn cho việc chạy máy tính để thực tốn phân tích số nguyên đủ lớn thành tích thừa số nguyên tố, sử dụng làm tiêu định lượng đánh giá độ an tồn hệ mã RSA Thuật tốn mật mã khóa cơng khai thiết kế James H Ellis, Clifford Cocks, Malcolm Willa vào đầu thập kỷ 1970 Thuật toán sau phát triển biết đến tên Diffie-Hellman trường hợp đặc biệt RSA ([6]) Mật mã khóa cơng khai dạng mật mã hóa 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ệ số học với khóa cơng khai khóa cá nhân (hay khóa bí mật) Thuật ngữ mật mã hóa khóa bất đối xứng thường dùng đồng nghĩa với mật mã hóa khóa cơng khai hai khái niệm khơng hồn tồn tương đương Có thuật tốn mật mã khóa bất đối xứng khơng có tính chất khóa cơng khai bí mật đề cập mà hai khóa (cho mã hóa giải mã) cần phải giữ bí mật Với lý trên, lựa chọn đề tài luận văn „„Về mật mã khóa cơng khai‟‟ nhằm tìm hiểu sâu ứng dụng Số học có liên quan đến lĩnh vực đề tài luận văn quan tâm Luận văn gồm hai chương Chương trình bày kiến thức số học về: Phi hàm Euler ứng dụng, định lý số dư Trung Quốc, số giả nguyên tố số Camichael Chương trình bày tổng quan mật mã học, mật mã khóa cơng khai, hệ mã RSA ứng dụng Số học vào hệ mã khóa cơng khai Luận văn hồn thành hướng dẫn tận tình chu đáo PGS.TS Nguyễn Thành Quang Nhân dịp xin bày tỏ lịng kính trọng biết ơn sâu sắc tới thầy giáo hướng dẫn khoa học, người dành nhiều thời gian cơng sức cho việc giúp đỡ tơi hồn thành luận văn Nhân dịp xin gửi lời cảm ơn đến thầy cô giáo thuộc chuyên ngành Đại số Lý thuyết số, Khoa Sư phạm Tốn học, Phịng Đào tạo Sau Đại học - Trường Đại học Vinh, người tận tình giảng dạy tạo điều kiện thuận lợi cho tơi hồn thành khóa học Tơi xin gửi lời cảm ơn đến Ban giám hiệu Trường THPT Lương Thế Vinh – Sở Giáo dục Đào tạo Quảng Bình đồng nghiệp, tạo điều kiện thuận lợi để tơi hồn thành nhiệm vụ học tập Tôi xin chân thành cảm ơn bạn bè, gia đình động viên giúp đỡ tơi suốt khóa học Mặc dù có nhiều cố gắng, song luận văn không tránh khỏi thiếu sót Tác giả mong muốn nhận góp ý chân thành thầy giáo đồng nghiệp Nghệ An, tháng 10 năm 2015 TÁC GIẢ CHƢƠNG MỘT SỐ KIẾN THỨC SỐ HỌC CƠ SỞ 1.1 Phi hàm Euler ứng dụng 1.1.1 Định nghĩa Phi hàm Euler hàm số số học có giá trị số tự nhiên n số số tự nhiên không vượt n nguyên tố với n : ( n) 1 k n ( k ,n ) 1 Hàm số tiếng Anh gọi hàm "totient" Hàm thường gọi hàm số Euler, theo tên nhà toán học Thụy Sỹ Leonhard Euler, người nghiên cứu ký hiệu chữ Hy Lạp: Phi ( ) Đối totient n định nghĩa n (n), nghĩa số số nguyên dương nhỏ n mà không nguyên tố với n Hàm có nhiều ứng dụng kích thước (cấp) nhóm nhân lớp khả nghịch vành Z n số nguyên modn Hơn nữa, hàm Euler ta có cơng thức Gaus, cịn gọi công thức tổng trải, ước dương d n : å j (d ) = n dn 1.1.2 Định lý Euler [7] Nếu n số nguyên a số nguyên cho a n nguyên tố nhau, thì: a ( n) 1(mod n) Định lý Euler tổng quát hóa Định lý bé Fermat, n p số nguyên tố p p 1.1.3 Định lý bé Fermat [7] Nếu p số nguyên tố a số nguyên không chia hết cho p a p1 1(mod p) Nói cách khác, p số nguyên tố a số nguyên a p a(mod p) 1.1.4 Giả thuyết Trung Quốc Một cách độc lập với Định lý bé Fermat, nhà toán học Trung quốc đưa giả thuyết (thường gọi Giả thuyết Trung Quốc) nói rằng: p số nguyên tố p º 2(mod p) Quả là, p số nguyên tố, p º 2(mod p) trường hợp đặc biệt Định lý bé Fermat Song mệnh đề ngược lại (nếu p º 2(mod p) p số nguyên tố) sai Chẳng hạn, 2341 º 2(mod341) , 341 = 11.31 hợp số Như vậy, mệnh đề ngược lại Định lí Fermat bé không Theo Định lý Fermat bé, n số nguyên tố b số nguyên tùy ý, bn b(mod n) Như vậy, với n số tự nhiên lớn mà có số nguyên b cho đồng dư thức khơng xảy n hợp số, trường hợp đồng dư thức xảy chưa thể nói tính ngun tố n Tuy nhiên, qua nhiều thống kê cho thấy số nguyên thỏa mãn kết luận Định lí Fermat bé "có nhiều khả năng" số nguyên tố Do đó, dẫn xuất đến khái niệm sau 1.1.5 Số giả nguyên tố Giả sử b số nguyên dương cho trước Nếu n hợp số nguyên dương bn b(mod n) , n gọi số giả nguyên tố sở b Trong trường hợp gcd(n, b) , người ta dùng điều kiện tương đương sau: bn1 1(mod n) Ví dụ Số nguyên 561 số giả nguyên tố sở Thật vậy, ta có 561 = 3.11.17 gcd(3,561) = gcd (11,561) = gcd(17,561) = 1, áp dụng Định lý Fermat bé, ta có 2560 (22 ) 280 1(mod 3) 2560 (216 )35 1(mod17) 2560 (210 )56 1(mod11) Từ suy ra, 2560 1(mod561) Nói chung số giả ngun tố nhiều so với số nguyên tố Chẳng hạn, có tất 455052512 số nguyên tố bé 1010, có 14884 số giả nguyên tố sở khoảng Cụ thể hơn, có số ngun tố bé 12 2,3,5,7,11 khơng có số giả nguyên tố sở khoảng Sự kiện giải thích điều nói trên: Các số thoả mãn Định lý Fermat bé có nhiều khả số nguyên tố Tuy nhiên, sở tuỳ ý, số số giả nguyên tố vơ hạn Chẳng hạn, ta chứng minh điều với sở 1.1.6 Định lý Nếu n số giả nguyên tố sở m = 2n - số giả nguyên tố sở Từ suy có vơ hạn số giả nguyên tố sở Chứng minh Giả sử n số giả nguyên tố sở 2, ta chứng minh số nguyên m 2n n số giả nguyên tố sở Thật vậy, theo giả thiết, ta có n hợp số, chẳng hạn n dt ,1 d , t n Do m 2n (2d )t (2d 1) (2d )t 1 (2d )t 2 1 Từ đó, suy m hợp số Do n số giả nguyên tố sở 2, nên có 2n 2(mod n), hay tồn số tự nhiên k cho 2n kn Ta có m 2n 1, hay m 2n kn Vì vậy, 2m1 2kn (2n )k chia hết cho m 2n 1, tức 2m1 1(mod m) Vậy m số giả nguyên tố sở ▄ 1.1.7 Số Carmichael Hợp số n thỏa mãn đồng dư thức bn1 1(mod n) với số nguyên dương b cho gcd(n, b) = gọi số Carmichael Ví dụ Số nguyên 561 số Carmichael Thật vậy, gcd(b, 561) = gcd(b,3) = gcd(b,11) = gcd(b,17) = 1, áp dụng Định lý Fermat bé, ta có b560 (b ) 280 1(mod 3) b560 (b10 )56 1(mod11) b560 (b16 )35 1(mod17) Từ suy ra, b560 1(mod561) Giả thuyết: Tồn vô hạn số Carmichael, chứng minh gần R Alford, A Granville, C Pomarance, 1993 (xem [4,7]) Định lý sau cho cách tìm số Carmichael 1.1.8 Định lý Số tự nhiên n số Carmichael khi, n q1q2 qn , q j ,( j 1,2, , n), số nguyên tố khác thoả mãn q j ước n Chứng minh Thật vậy, giả sử b số nguyên dương cho (b, n) Khi (b, q j ) 1, b q j 1 1(mod q j ) Vì q j 1 ước n nên bn1 1(mod q j ), ta có bn1 1(mod n) Vậy n số Carmichael ▄ Phần đảo lại định lý tìm hiểu cơng trình: M.O Rabin (1980), Probabilistic algorithms for testing primality, Journal of Number Theory, Vol.12, pp 128-138 1.1.9 Số giả nguyên tố mạnh Số nguyên n gọi số giả nguyên tố mạnh sở b hợp số trải qua kiểm tra Miller sở b theo nghĩa sau: Giả sử n số nguyên dương lẻ, n 2s t , s số nguyên không âm, t số nguyên duơng lẻ Ta nói n trải qua kiểm tra Miller sở b , bt 1(mod n) b2 t 1(mod n) với j đó, j s j Như vậy, số giả ngun tố mạnh lại cịn số giả nguyên tố Tuy nhiên, ta có định lý sau 1.1.10 Định lý Tồn vô số số giả nguyên tố mạnh sở Chứng minh Thật vậy, giả sử n số giả nguyên tố sở Khi , với số nguyên lẻ k đó, ta có 2n1 nk Đặt d N 2n1 1, có ước – 1, với d ước số n Mặt khác N 2(2 n n 1 1) 2nk , N 1 2nk (2n ) k 1(mod N ) 10 Vậy với số giả nguyên tố n , ta xây dựng số giả nguyên tố mạnh N số n khác cho ta số N khác Định lý chúng minh, ta có vơ số giả nguyên tố sở ▄ 1.1.11 Định lý phần dƣ Trung Hoa (Chinese Remainder Theorem) [4, 7] Giả sử m1 , m2 , , mn số nguyên dương, nguyên tố đôi Khi đó, hệ phương trình đồng dư bậc ẩn x b1 (mod m1 ) x b (mod m ) 2 x bn (mod mn ) có nghiệm theo môđun M m1m2 mn Định lý số dư Trung Quốc tên người phương tây đặt cho định lý Người Trung Quốc gọi Bài tốn Hàn Tín điểm binh Hàn Tín danh tướng thời Hán Sở, phong tước vương thời Hán Cao Tổ Lưu Bang dựng nghiệp Sử ký Tư Mã Thiên viết Hàn Tín tướng trói gà khơng nổi, có tài thao lược qn Tục truyền Hàn Tín điểm quân số, ông cho quân lính xếp hàng 3, hàng 5, hàng báo cáo số dư Từ ơng tính xác quân số đến người Gần đây, Định lý số dư Trung Quốc có nhiều ứng dụng toán số nguyên lớn áp dụng vào Lý thuyết mật mã Trong Định lí phần dư Trung Hoa, có điều kiện m1 , m2 , , mn số nguyên dương đôi nguyên tố Câu hỏi đặt m1 , m2 , , mn không thoả mãn điều kiện đôi ngun tố kết định lí nào? 1.1.12 Định lý (Định lý phần dư Trung Hoa mở rộng) [4] Cho n số nguyên dương m1 , m2 , , mn a1 , a2 , , an số nguyên dương Khi hệ phương trình đồng dư tuyến tính 36 Trong hệ mật này, khoá mã hoá khác với khố giải mã Về mặt tốn học, từ khố cơng khai khó tính khóa riêng Biết khố khơng dễ dàng tìm khóa Khóa giải mã giữ bí mật khóa mã hố cơng bố cơng khai Một người sử dụng khóa cơng khai để mã hố tin tức, có người có khố giải mã có khả xem rõ Người gửi A mã hố thơng điệp khóa cơng người nhận người nhận B giải mã thơng điệp với khố riêng tương ứng mình, q trình mơ tả hình hình Có nhiều hệ thống khóa cơng khai triển khai rộng rãi hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman lên năm gần hệ đường cong Elliptic Trong số hệ mật mã hệ RSA hệ cộng đồng chuẩn quốc tế công nghiệp chấp nhận rộng rãi việc thực thi mật mã khố cơng khai 2.2.2 Ứng dụng mật mã khóa công khai (mật mã bất đối xứng) Mật mã bất đối xứng sử dụng cho mục đích sau đây: - Bảo mật thông tin (message cofidentiality); - Xác thực nguồn thông tin chữ ký số (digital signature); - Trao đổi khóa thuật tốn mã đối xứng (key exchange) 2.2.3 Các cách phân tích mã Các thuật toán cho phần lớn hệ mật mã tiếng nên giả sử kẻ phân tích mã có thuật tốn tay bắt đầu công Trong phần lớn hệ mật mã, thuật toán để phân phối cho tất người sử dụng sức mạnh hệ thống nằm khóa phụ thuộc vào thuật tốn mã hố liệu tốt Và độ dài khoá định mã mã tốt bảo vệ chống lại cơng brute-force Tấn cơng brute-force cách khố thử dùng để giải mã 37 Nhiều nhà viết mật mã tin cơng brute-force khơng thể thực khố dài sử dụng, chí khả máy tính lên Tấn cơng brute-force mã phải mã hoá với khoá lớn (trên 100 bít) hàng triệu hàng tỉ năm với mạng máy tính mạnh việc thêm bít đơn làm tăng gấp đơi giá việc phân tích brute-force Tuy nhiên tồn điểm yếu hệ thống trừ vài khoá, làm giảm số khoá cần kiểm tra Ví dụ, kẻ phân tích mã khám phá thuật toán sinh số ngẫu nhiên thực tế có vài mẫu lặp lại Điểm yếu hệ thống cung cấp đường để khám phá Có vài phương pháp chung để phân tích, danh sách theo thứ tự khả phương pháp Mỗi phương pháp số chúng giả sử kẻ phân tích mã hồn tồn có hiểu biết thuật toán mã hoá sử dụng Chỉ có mã Trong trường hợp này, người phân tích có vài tin mã, tất số chúng mã hoá sử dụng chung thuật tốn Cơng việc người phân tích tìm lại rõ nhiều mã tốt suy luận khoá sử dụng mã hoá, sử dụng để giải mã mã khác với khố Biết rõ Người phân tích không truy cập vài mã mặt khác cịn biết rõ Cơng việc suy luận khoá để sử dụng giải mã thuật toán giải mã để giải mã cho mã khác với khoá Lựa chọn rõ Người phân tích khơng truy cập mã kết hợp rõ cho vài tin, mặt khác lựa chọn rõ mã hố Phương pháp tỏ có khả phương pháp biết rõ người phân tích chọn cụ thể khối rõ cho mã hố, điều khác sản lượng thơng tin khố nhiều 38 Lựa chọn rõ thích hợp Đây trường hợp đặc biệt lựa chọn rõ Khơng lựa chọn rõ mã hoá, họ cịn sửa đổi lựa chọn kết mã hoá lần trước Trong trường lựa chọn mã người phân tích chọn khối lớn rõ mã hoá, trường hợp chọn khối nhỏ chọn khác kết lần 2.2.4 Ƣu nhƣợc điểm hệ mật mã khố cơng khai Vấn đề cịn tồn đọng hệ mật mã khoá đối xứng giải nhờ hệ mật mã khố cơng khai Chính ưu điểm thu hút nhiều trí tuệ vào việc đề xuất, đánh giá hệ mật mã công khai Nhưng thân hệ mật mã khố cơng khai dựa vào giả thiết liên quan đến tốn khó nên đa số hệ mật mã có tốc độ mã dịch khơng nhanh Chính nhược điểm làm cho hệ mật mã khoá cơng khai khó dùng cách độc lập Một vấn đề nảy sinh sử dụng hệ mật mã khóa cơng khai việc xác thực mà mơ hình hệ mật mã đối xứng khơng đặt Do khố mã cơng khai cơng bố cách công khai mạng việc đảm bảo “khố cơng bố có đối tượng cần liên lạc hay không?” kẽ hở bị lợi dụng Vấn đề xác thực giải hệ mật mã khố cơng khai Nhiều thủ tục xác thực nghiên cứu sử dụng Kerberos, X.509,… Một ưu điểm hệ mật mã khố cơng khai ứng dụng lĩnh vực chữ ký số, với kết hàm băm, thủ tục ký để bảo đảm tính tồn vẹn văn giải Tồn khả người tìm khóa bí mật Khơng giống với hệ thống mật mã sử dụng lần (one-time pad) tương đương, chưa có thuật tốn mã hóa khóa bất đối xứng chứng minh an tồn trước cơng dựa chất toán học thuật toán Khả mối quan hệ khóa hay điểm yếu thuật toán dẫn tới cho phép giải mã khơng cần tới khóa hay cần khóa mã hóa chưa loại trừ An tồn 39 thuật toán dựa ước lượng khối lượng tính tốn để giải tốn gắn với chúng Các ước lượng lại ln thay đổi tùy thuộc khả máy tính phát toán học Mặc dù vậy, độ an tồn thuật tốn mật mã hóa khóa công khai tương đối đảm bảo Nếu thời gian để phá mã (bằng phương pháp duyệt toàn bộ) ước lượng 1000 năm thuật tốn hồn tồn dùng để mã hóa thơng tin thẻ tín dụng - Rõ ràng thời gian phá mã lớn nhiều lần thời gian tồn thẻ (vài năm) Nhiều điểm yếu số thuật tốn mật mã hóa khóa bất đối xứng tìm q khứ Thuật tốn đóng gói ba lơ ví dụ Nó xem khơng an tồn dạng cơng không lường trước bị phát Gần đây, số dạng cơng đơn giản hóa việc tìm khóa giải mã dựa việc đo đạc xác thời gian mà hệ thống phần cứng thực mã hóa Vì vậy, việc sử dụng mã hóa khóa bất đối xứng khơng thể đảm bảo an tồn tuyệt đối Đây lĩnh vực tích cực nghiên cứu để tìm dạng cơng Một điểm yếu tiềm tàng việc sử dụng khóa bất đối xứng khả bị công dạng kẻ công đứng (man in the middle attack): kẻ cơng lợi dụng việc phân phối khóa cơng khai để thay đổi khóa cơng khai Sau giả mạo khóa cơng khai, kẻ cơng đứng hai bên để nhận gói tin, giải mã lại mã hóa với khóa gửi đến nơi nhận để tránh bị phát Dạng công kiểu phịng ngừa phương pháp trao đổi khóa an tồn nhằm đảm bảo nhận thực người gửi tồn vẹn thơng tin Một điều cần lưu ý phủ quan tâm đến dạng cơng này: họ thuyết phục (hay bắt buộc) nhà cung cấp chứng thực số xác nhận khóa giả mạo đọc thơng tin mã hóa 40 2.3 Hệ mã RSA Thuật tốn Ron Rivest, Adi Shamir Len Adleman mơ tả lần vào năm 1977 Học viện Cơng nghệ Massachusetts (MIT), Hoa Kỳ Tên thuật tốn lấy từ chữ đầu tên ba tác giả 2.3.1 Thuật tốn RSA Thuật tốn RSA có hai khóa: khóa cơng khai (hay khóa cơng cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa số cố định sử dụng trình mã hóa giải mã Khóa cơng khai cơng bố rộng rãi cho người dùng để mã hóa Những thơng tin mã hóa khóa cơng khai giải mã khóa bí mật tương ứng Nói cách khác, người mã hóa có người biết khóa cá nhân (bí mật) giải mã Ta mơ trực quan hệ mật mã khố cơng khai: B muốn gửi cho A thơng tin mật mà B muốn A đọc Để làm điều này, A gửi cho B hộp có khóa mở sẵn giữ lại chìa khóa B nhận hộp, cho vào tờ giấy viết thư bình thường khóa lại (như loại khố thơng thường cần sập chốt lại, sau sập chốt khóa B mở lại - không đọc lại hay sửa thơng tin thư nữa) Sau B gửi hộp lại cho A A mở hộp với chìa khóa đọc thơng tin thư Trong ví dụ này, hộp với khóa mở đóng vai trị khóa cơng khai, chìa khóa khóa bí mật Giả sử A B cần trao đổi thơng tin bí mật thơng qua kênh khơng an tồn Với thuật tốn RSA, bên A cần tạo cho cặp khóa gồm khóa cơng khai khóa bí mật theo bước sau: Chọn: n pq , với p, q số nguyên tố phân biệt đủ lớn (lựa chọn ngẫu nhiên độc lập); Tính: n pq ; Tính giá trị hàm số Euler: (n) ( p 1)(q 1) ; Chọn số tự nhiên e cho e (n) e nguyên tố với (n) ; 41 Tính d cho de 1 mod (n) 2.3.2 Mã hóa Giả sử B muốn gửi đoạn thông tin M cho A Đầu tiên B chuyển M thành số m < n theo hàm đảo ngược (từ m xác định lại M) thỏa thuận trước Lúc B có m biết n e A gửi B tính c mã hóa m theo công thức: c me mod n 2.3.3 Giải mã A nhận c từ B biết khóa bí mật d A tìm m từ c theo công thức sau: c me mod n Biết m, A tìm lại M theo phương pháp thỏa thuận trước Quá trình giải mã khả thi ta có c d me (mod n) , hay c d med (mod n) d Do ed ≡ 1(mod p - 1), ed ≡ 1(mod q - 1), (theo Định lý Fermat bé) nên: med m(mod p) med m(mod q) Do p q hai số nguyên tố nhau, theo Định lý số dư Trung Hoa, ta có: med m(mod pq) , hay: c d m(mod n) Ví dụ Sau ví dụ với số cụ thể Ở sử dụng số nhỏ để tiện tính tốn cịn thực tế phải dùng số có giá trị đủ lớn Lấy: p = 61 số nguyên tố thứ (giữ bí mật hủy sau tạo khóa); q = 53 số nguyên tố thứ hai (giữ bí mật hủy sau tạo khóa); n = pq = 3233 mơđun (công bố công khai); e = 17 số mũ công khai; d = 2753 số mũ bí mật Khóa cơng khai cặp (e, n) Khóa bí mật d Hàm mã hóa là: E (m) = me mod n = m17 mod 3233, với m văn rõ Hàm giải mã là: 42 D (c) = cd mod n = c2753 mod 3233, với c văn mã Để mã hóa văn có giá trị 123, ta thực phép tính: E(123) = 12317 mod 3233 = 855 Để giải mã văn có giá trị 855, ta thực phép tính: D(855) = 8552753 mod 3233 = 123 Ví dụ Thực hành Maple để lập mã : >p := nextprime(13478237847823478237844823845811128948543785783453475 783432344111457843534785783434636434579875542717771115432278998762 34561117791); >q := nextprime(19993331345834785347852347823478237847823784237878454 78578337257834574785547545781776756543334544566668765432111176); > n := p*q; >e := nextprime(98324782347832312414111382388457847324823847823432342 347382478234724347823784783478578457831111324782378478477347379936 9678909000266266433117); > d := `mod`(1/e, (p-1)*(q-1)); > vbgoc := "em xin chuc cac thay co manh khoe"; > str := convert (vbgoc, bytes); > dectohex := [seq(convert(str[i], hex, decimal), i = nops(str))]; > hextostr := cat(seq(dectohex[i], i = nops(dectohex))); > number := convert(hextostr, decimal, hex); > vbmat := `mod`(`&^`(number, e), n); Giải mã : 43 >vbmat := 150295454715520105138215202994179562785249091089859331193 412701402529087779246786346319210988003982585716774558700224826114 198965111538302881963223364580242354797843152958445351147244020595 302348870979467519215276862913989511716810729980997714035: >p := nextprime(13478237847823478237844823845811128948543785783453478 578343234411145784353478578343463643457987554271777111543227899876 234561117791): >q := nextprime(1999333134583478534785234782347823784782378423787845 3478578337257834574785547545781776756543334544566668765432111176): > n := p*q: >e := nextprime(9832478234783231241411138238845784732482384782343234 234738247823472434782378478347857845783111132478237847847734737993 69678909000266266433117): > d := `mod`(1/e, (p-1)*(q-1)): > giaima; > vbmaso := `mod`(`&^`(vbmat, d), n): > hexstr := convert(vbmaso, hex, decimal): > hexlist := [seq(substring(hexstr, 2*i-1 2*i), i = (1/2)*length(hexstr))]: > declist := [seq(convert(hexlist[i], decimal, hex), i = nops(hexlist))]: > vbgiaima := convert(convert(convert(declist, list), bytes), name); 2.3.4 Độ an tồn hệ thống RSA Nhìn chung tất cơng giải mã mang mục đích khơng tốt Độ an toàn hệ thống RSA dựa vấn đề tốn học: Bài tốn phân tích thừa số nguyên tố số nguyên lớn tốn RSA Nếu hai tốn khó (khơng tìm thuật tốn hiệu để giải chúng) khơng thể thực việc phá mã tồn RSA Phá mã phần phải ngăn chặn phương pháp chuyển đổi rõ an tồn 44 Bài tốn RSA tốn tính bậc e mơđun n (với n hợp số): tìm số m cho me c mod n , (e, n) khóa cơng khai c mã Hiện phương pháp triển vọng giải toán phân tích n thừa số nguyên tố Khi thực điều này, kẻ cơng tìm số mũ bí mật d từ khóa cơng khai giải mã theo quy trình thuật tốn Nếu kẻ cơng tìm hai số ngun tố p, q cho n pq dễ dàng tìm giá trị p 1 q 1 qua xác định d từ e Chưa có phương pháp tìm máy tính để giải tốn thời gian đa thức (polynomial-time) Tuy nhiên người ta chưa chứng minh điều ngược lại (sự không tồn thuật toán) Tại thời điểm năm 2005, số lớn phân tích thừa số ngun tố có độ dài 663 bít với phương pháp phân tán, khóa RSA có độ dài từ 1024 tới 2048 bít Một số chuyên gia cho khóa 1024 bít sớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít khơng có khả bị phá vỡ tương lai gần Do đó, người ta thường cho RSA đảm bảo an toàn với điều kiện n chọn đủ lớn Nếu n có độ dài 256 bít ngắn hơn, bị phân tích vài với máy tính cá nhân dùng phần mềm có sẵn Nếu n có độ dài 512 bít, bị phân tích vài trăm máy tính thời điểm năm 1999 Một thiết bị lý thuyết có tên TWIRL Shamir Tromer mô tả năm 2003 đặt câu hỏi độ an tồn khóa 1024 bít Vì người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít Việc phát minh phương pháp mã công khai tạo “cách mạng” cơng nghệ an tồn thơng tin điện tử Nhưng thực tiễn triển khai cho thấy tốc độ mã hoá khối liệu lớn thuật toán mã hố cơng khai chậm nhiều so với hệ mã hố đối xứng Ví dụ, để đạt độ an toàn hệ mã đối xứng mạnh thời, RSA đòi hỏi thời gian cho việc mã hoá văn lâu gấp hàng ngàn lần Do đó, thay việc mã hố văn có kích thước lớn 45 lược đồ khố cơng khai văn mã hố hệ mã đối xứng có tốc độ cao DES, IDEA,…sau khố sử dụng hệ mã đối xứng mã hoá sử dụng mật mã khoá công khai Phương pháp khả thi việc mã giải mã văn có kích thước lớn 2.3.5 Một số ý RSA 2.3.5.1.Tốc độ: RSA có tốc độ thực chậm đáng kể so với thuật tốn mã hóa đối xứng Trên thực tế, Bob sử dụng thuật tốn mã hóa đối xứng để mã hóa văn cần gửi sử dụng RSA để mã hóa khóa để giải mã (thơng thường khóa ngắn nhiều so với văn bản) Phương thức tạo vấn đề an ninh Một ví dụ cần phải tạo khóa đối xứng thật ngẫu nhiên Nếu không, kẻ công (thường ký hiệu Eve) bỏ qua RSA tập trung vào việc đoán khóa đối xứng 2.3.5.2.Chiều dài khóa: Số n cần phải có kích thước khơng nhỏ 512 bít Năm 2006 hệ mật RSA cho hiệu với kích thước n phải từ 1024 Và họ khuyến cáo tương lai chiều dài n phải từ 2024 bít 2.3.5.3.Chọn tham số công khai: Để nâng cao tốc độ mã hóa, nên chọn e với giá trị không lớn, thường 3, hay 65537 Các số biểu diễn dạng nhị phân có chữ số 1, nên thực lệnh lũy thừa giảm lệnh nhân 2.3.5.4.Chọn tham số mật: ● p q cịn cần chọn khơng q gần để phịng trường hợp phân tích n phương pháp phân tích Fermat Ngồi ra, p-1 q-1 có thừa số ngun tố nhỏ n dễ dàng bị phân tích theo phương pháp p-1 Pollaid p q cần thử để tránh khả Chúng ta chọn sau Trước tiên tìm số nguyên tố p1 cho p = 2p1+1 số nguyên tố, tương tự chọn số nguyên tố lớn q1 cho q = 2q1+1 số nguyên tố ● Giá trị d cần phải đủ lớn Năm 1990 Michael J Wiener chứng minh q p 2q d n1/ / , có phương pháp hiệu để tính d theo n e 46 2.3.4 Ứng dụng RSA RSA cơng cụ trực tiếp mã hóa văn bản, nhiên người ta tìm thấy RSA khả ứng dụng độc đáo khác Tạo vỏ bọc an toàn cho văn mật: RSA sử dụng kết hợp với hệ mã đối xứng có tốc độ cao DES, IDEA… Khi ấy, DES IDEA sử dụng để mã hóa tồn văn khóa đối xứng bí mật đó, cịn RSA dùng để mã hóa chìa khóa mà DES IDEA dùng để mã hóa văn Chìa khóa có độ dài khơng đáng kể (chỉ vài trăm bit) thời giam mã khơng cịn vấn đề Do tính an tồn cao, chìa khóa đối xứng DES, IDEA… mã RSA gửi cách an toàn đến người nhận để làm công cụ giải mã Như vậy, hệ mã đối xứng góp phần khắc phục tốc độ mã hóa chậm chạp RSA, RSA khắc phục khâu yếu hệ mã đối xứng chuyển giao chìa khóa giải mã cho người nhận cách an toàn RSA thực tế tạo vỏ bọc số an tồn cho văn thay trực tiếp mã hóa văn ([2]) 2.3.5 Chữ ký điện tử Mật mã khố cơng khai sử dụng theo nhiều cách khác Chữ ký điện tử ví dụ minh chứng cho việc đảm bảo xác thực người dùng tồn vẹn liệu Nói cách khác, chữ ký điện tử giúp xác định người tạo hay chịu trách nhiệm thông điệp Một phương pháp chữ ký điện tử bao gồm hai thành phần chính: thuật tốn dùng để tạo chữ ký điện tử thuật toán tương ứng để xác nhận chữ ký điện tử Nếu người gửi A mã hố thơng điệp hay tài liệu với khố riêng giải mã thơng điệp với khố cơng A Do đó, người nhận chắn thơng điệp nhận A mã A có khố riêng Q trình mã hố thơng điệp với khố riêng người gửi gọi trình “ký số” Trong thực tế, trình ký số thường khó Thay việc mã thơng điệp gốc với khố riêng người gửi có đại diện thơng điệp (bản băm) có độ dài cố định mã hoá với khoá riêng người gửi băm 47 mã hoá gắn vào với thông điệp gốc Người nhận B sau nhận thông điệp giải mã băm với khố cơng người gửi, sau băm thơng điệp kèm thuật tốn băm tương ứng với thuật toán băm mà người gửi sử dụng B so sánh hai giá trị băm giống chắn thơng điệp A gửi cho B nguyên vẹn, đồng thời xác thực người gửi thơng tin Tính tồn vẹn thơng điệp đảm bảo thay đổi bit thơng điệp gửi kết hai giá trị băm khác Tính xác thực người gửi đảm bảo có người gửi A có khố riêng để mã băm Chữ ký số chứng minh tính chống chối bỏ gốc có A có khoá riêng dùng để ký số Sơ đồ chữ ký định nghĩa sau: Sơ đồ chữ ký năm (P, A, K, S, V), đó: P tập hữu hạn văn có thể; A tập hữu hạn chữ ký sử dụng; K tập hữu hạn khố sử dụng; S tập thuật toán ký; V tập thuật toán kiểm thử Với k ∈ K, có thuật tốn ký sig k ∈ S, sig k: P → A thuật toán kiểm thử ver k ∈ V, ver k: P x A → {đúng (D), sai (S)}, thoả mãn điều kiện sau với x ∈ P, y ∈ A: D y sig k x verk x, y S y sig k x RSA thuật toán dùng nhiều cho mục đích ký số Ngồi ra, cịn có số thuật tốn cơng khai khác dùng để ký số, ví dụ chuẩn chữ ký số DSS 2.3.6 Tấn công vào hệ mã RSA Q trình thám mã hay cịn gọi phân tích mã (Cryptanalysis) việc nghiên cứu phương pháp phá vỡ ngụy trang văn việc mã hóa tạo nên để hiểu nội dung văn ([2]) 48 Thông thường có cách cơng để chuyển văn mã thành văn gốc: + Ăn trộm, hối lộ mua để có chìa khóa; + Khai thác tính lỏng lẻo, cẩu thả người dùng khóa chẳng hạn có người dùng ngày sinh hay tên người thân để làm mật khẩu, chìa khóa,…; + Phân tích mã Công cụ để phá mã RSA dựa tốn phân tích số lớn thừa số ngun tố Độ khó tốn giúp cho việc đảm bảo an toàn cho hệ mã RSA Muốn phá hệ mã RSA, người ta phải phân tích số nguyên n cực lớn (hàng trăm chữ số) thành tích hai số nguyên tố pq Ta biết việc dùng sàng Eratosthenes để làm điều hồn tồn khơng tưởng Tuy nhiên, sàng Eratosthenes khơng phải giải pháp nhất, đối thủ dùng cách khác: Giả sử ta tìm hai số nguyên x y cho x2 y (mod n) x lại không đồng dư với y theo modn Khi ấy, n ( x y ) , n ( x y)( x y) suy pq ( x y)( x y) Như vậy, p ( x y)( x y) Do p số nguyên tố nên hai thừa số (x – y), (x + y) phải chia hết cho p Tương tự q Nếu (x – y) chia hết cho p q kéo theo pq ( x y) tức n ( x y) hay x y(mod n) Điều mâu thuẫn với giả thiết Tương tự không xảy (x + y) chia hết cho hai số p q Vậy phải có p ( x y) q ( x y) ngược lại Trong trường hợp đầu, hai số n (x + y) có ước chung p nên gcd(x + y, n) = p Trường hợp lại, kết tương tự q Như vậy, việc tính p, q khơng gặp khó khăn việc tính ước chung lớn theo thuật tốn Euclid Phân tích cho thấy, ta cần tìm cập nguyên (x, y) cho x2 y (mod n) , thử xem cặp thỏa mãn x y(mod n) loại bỏ tìm cặp nghiệm khác Khi gặp cặp khơng thỏa mãn tính pq theo nhận xét 49 KẾT LUẬN Bản luận văn nhằm tìm hiểu sở việc áp dụng Số học vào lĩnh vực mã hố thơng tin hay rộng Lý thuyết mật mã Nội dung chủ yếu luận văn bao gồm: Giới thiệu số khái niệm kết Số học có ứng dụng trực tiếp mã hố giải mã thơng tin: Phi hàm Euler, Định lý số dư Trung Quốc, Định lý Euler, Định lý Fermat bé, Phân tích Fermat, Số giả nguyên tố, Số Carmichael 2.Trình bày tổng quan kiến thức Lý thuyết mật mã: Mã hoá, giải mã, hệ thống mã hóa bất đối xứng Giới thiệu tổng quan mật mã khóa cơng khai: cách phân tích mã, ưu nhược điểm mã hóa cơng khai có liên quan trực tiếp đến việc ứng dụng Số học mã hoá, giải mã bảo vệ an tồn thơng tin Đặc biệt, luận văn trình bày hệ mật mã tiêu biểu mật mã khóa cơng khai hệ mật mã RSA Hệ mã sử dụng rộng rãi tính ưu việt nó, với độ an tồn đảm bảo sở toán học: Độ phức tạp thuật tốn phân tích số ngun thành tích thừa số ngun tố Luận văn sâu tìm hiểu ứng dụng sâu sắc Số học số lĩnh vực cụ thể ngành Toán - Tin học ứng dụng như: Thẻ tín dụng ATM, Chứng khốn, Chữ ký điện tử, Xử lý ảnh, Bầu cử điện tử 50 TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1] Phạm Huy Điển (2002), Tính tốn, lập trình giảng dạy tốn học Maple, Nhà xuất Khoa học Kỹ thuật, Hà Nội [2] Phạm Huy Điển, Hà Huy Khối (2004), Mã hóa thơng tin - Cơ sở tốn học ứng dụng, Nhà xuất Đại học Quốc gia Hà Nội [3] Bùi Dỗn Khanh, Nguyễn Đình Thúc (2004), Mã hóa thơng tin, Lý thuyết ứng dụng, Nhà xuất Lao Động, TP Hồ Chí Minh [4] Hà Huy Khối, Phạm Huy Điển (2003), Số học thuật toán, Nhà xuất Đại học Quốc gia Hà Nội TIẾNG ANH [5] Brassard (1988), Modern Cryptology Lecture Notes in Computer Science, Springer [6] Jevons, W Stanley (1958), The Principles of Science: A Treatise on Logic and Scientific Method, Dover Publications, New York [7] M B Nathason (1999), Elementary Methods in Number Theory, Springer [8] B Scheier (1996), Applied Cryptography, Wiley [9] D Stinson (1995), Cryptography: Theory and Pratice, CRS Press LLC ... 33 2.2 Mật mã khóa công khai 2.2.1 Tổng quan mật mã công khai Mật mã khóa cơng khai (public key cryptography) cịn có tên gọi khác mật mã bất đối xứng (asymmetric cryptography) mật mã hai khóa (two-... sử dụng mật mã gọi phân tích mật mã, hay phá mã Mật mã hóa phân tích mật mã đơi nhóm lại tên gọi chung mật mã học, bao gồm toàn chủ đề liên quan đến mật mã Trong thực tế, thuật ngữ mật mã hóa... từ văn mã Mật mã thuật toán để mật mã hóa giải mật mã Hoạt động xác mật mã thơng thường kiểm sốt khóa - đoạn thơng tin bí mật cho phép tùy biến cách thức tạo văn mã Các giao thức mật mã rõ chi