Về mật mã khóa công khai

53 19 0
  • Loading ...
1/53 trang

Thông tin tài liệu

Ngày đăng: 14/04/2018, 14:44

Cho đến những năm 70 của thế kỷ XX, Số học vẫn được xem là một trong những ngành lý thuyết thuần túy và đẹp đẽ nhất của toán học (4). Máy tính không những phát huy mọi vẻ đẹp truyền thống của Số học mà còn triển khai ra những ứng dụng đang và sẽ có cho chúng ta trong thế kỷ XXI. Một trong những ứng dụng nổi bật của Số học đó là thuật toán phân tích mỗi số tự nhiên thành tích các thừa số nguyên tố chính là nguyên tắc cơ bản của khóa mật mã công khai. Vì vậy, ngày nay việc nghiên cứu về số nguyên tố càng được kích thích bởi sự kiện là các số nguyên tố tỏ ra rất có ích trong việc mã hóa và giải mã các thông tin. Tính bảo mật và an toàn của hệ mật mã RSA (do ba nhà khoa học của Học viện Công nghệ Massachusetts công bố năm 1978) được đảm bảo bằng độ phức tạp của bài toán số học phân tích một số nguyên thành tích các thừa số nguyên 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 hiện bài toán phân tích một số nguyên đủ lớn thành tích các thừa số nguyên tố, được sử dụng làm chỉ tiêu định lượng đánh giá độ an toàn của hệ mã RSA. Thuật toán mật mã khóa công khai được thiết kế đầu tiên bởi James H. Ellis, Clifford Cocks, và Malcolm Willa vào đầu thập kỷ 1970. Thuật toán sau này được phát triển và biết đến dưới tên DiffieHellman và là một trường hợp đặc biệt của RSA (6).Mật mã khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ số học với nhau là khóa công khai và 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 được dùng đồng nghĩa với mật mã hóa khóa công khai mặc dù hai khái niệm không hoàn toàn tương đương. Có những thuật toán mật mã khóa bất đối xứng không có tính chất khóa công khai và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải giữ bí mật.Với những lý do trên, chúng tôi 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 hơn những ứng dụng của 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 1 trình bày các kiến thức số học được ứng dụng trong lý thuyết mật mã như: Phi hàm Euler và ứng dụng, định lý số dư Trung Quốc, số giả nguyên tố và số Camichael. Chương 2 trình bày tổng quan về mật mã học, về mật mã khóa công khai, hệ mã RSA và ứng dụng của Số học vào các hệ mã khóa công khai. Luận văn này được hoàn thành dưới sự hướng dẫn tận tình và chu đáo của PGS.TS. Nguyễn Thành Quang. Nhân dịp này tôi xin bày tỏ lòng kính trọng và 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 và công sức cho việc giúp đỡ tôi hoàn thành luận văn này. Nhân dịp này tôi xin gửi lời cảm ơn đến các thầy cô giáo thuộc chuyên ngành Đại số và Lý thuyết số, Khoa Sư phạm Toán học, Phòng Đào tạo Sau Đại học Trường Đại học Vinh, những người đã tận tình giảng dạy và tạo mọi điều kiện thuận lợi cho tôi hoà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 và Đào tạo Quảng Bình và các đồng nghiệp, đã tạo điều kiện thuận lợi để tôi hoà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 và giúp đỡ tôi trong suốt khóa học. Mặc dù đã có nhiều cố gắng, song luận văn này không tránh khỏi những thiếu sót. Tác giả mong muốn nhận được sự góp ý chân thành của các thầy cô giáo và đồng nghiệp. 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 1.2 1.3 Phi hàm Euler ứng dụng Kiểm tra nguyên tố Maple Biểu diễn số nguyên CHƯƠNG II 17 23 MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT MÃ 2.1 2.2 2.3 Mật mã học Mật mã khố cơng khai Hệ mã RSA KẾT LUẬN TÀI LIỆU THAM KHẢO 23 30 38 49 50 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 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ố ngun 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 ứng dụng lý thuyết mật mã như: 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 Zn số nguyên modn Hơn nữa, hàm Euler ta có cơng thức Gaus, 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 p −1 ≡ 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(mod 341) , 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 ý, b n ≡ 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ố ngun 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 b n ≡ 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: b n −1 ≡ 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,2) = gcd (11,2) = gcd(17,2) = 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(mod 561) 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é 10 10, 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 = n - 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 − = (2 d )t − = (2d − 1) ( (2 d )t −1 + (2 d )t −2 + L + 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, 2m−1 − = 2kn − = (2n )k − chia hết cho m = 2n − , tức 2m−1 ≡ 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 b n −1 ≡ 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(mod 561) 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 b n −1 ≡ 1(mod q j ), ta có b n −1 ≡ 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ố ngun 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) j b t ≡ −1(mod n) với j đó, ≤ j ≤ s − Như vậy, số giả nguyên tố mạnh lại số giả ngun 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ở 10 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ó 2n −1 − = nk Đặt N = 2n−1 − 1, có ước 2d – 1, với d ước số n Mặt khác N − = 2n − = 2(2n −1 − 1) = 2nk , N −1 = 2nk = (2 n ) k ≡ 1(mod N ) 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ả ngun 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  M   x ≡ bn (mod mn ) có nghiệm theo mơđun M = m1m2L 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 quân Tục truyền Hàn Tín điểm qn số, ơng cho qn lính xếp hàng 3, hàng 5, hàng báo cáo số dư Từ ơng tính xác qn số đến người Gần đây, Định lý số dư Trung Quốc có nhiều ứng dụng tố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 39 2.2.4 Ưu nhược điểm hệ mật mã khố cơng khai Vấ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ã khố 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ã khoá 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 toàn trước cơng dựa chất tốn học thuật tốn Khả mối quan hệ khóa hay điểm yếu thuật tố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 thuật toán dựa ước lượng khối lượng tính tốn để giải 40 toá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 41 2.3 Hệ mã RSA Thuật toá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 toán lấy từ chữ đầu tên ba tác giả 2.3.1 Thuật toán RSA Thuật toá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: 42 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) ; 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: m ≡ c d (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: m ed ≡ m(mod p ) m ed ≡ m(mod q ) Do p q hai số nguyên tố nhau, theo Định lý số dư Trung Hoa, ta có: m ed ≡ m(mod pq ) , hay: c d ≡ m(mod n) 43 Ví dụ Sau ví dụ với số cụ thể Ở sử dụng số nhỏ để tiện tính tố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à: 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 78343234411145784353478578343463643457987554271777111543227899 876234561117791); >q := nextprime(19993331345834785347852347823478237847823784237878454 78578337257834574785547545781776756543334544566668765432111176); > n := p*q; >e := nextprime(98324782347832312414111382388457847324823847823432342 3473824782347243478237847834785784578311113247823784784773473 799369678909000266266433117); 44 > 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ã : >vbmat := 150295454715520105138215202994179562785249091089859331193 4127014025290877792467863463192109880039825857167745587002248 26114198965111538302881963223364580242354797843152958445351147 2440205953023488709794675192152768629139895117168107299809977 14035: >p := nextprime(13478237847823478237844823845811128948543785783453478 57834323441114578435347857834346364345798755427177711154322789 9876234561117791): >q := nextprime(1999333134583478534785234782347823784782378423787845 3478578337257834574785547545781776756543334544566668765432111176): 45 > n := p*q: >e := nextprime(9832478234783231241411138238845784732482384782343234 2347382478234724347823784783478578457831111324782378478477347 3799369678909000266266433117): > 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 Bài tốn RSA tốn tính bậc e mơđun n (với n hợp số): tìm e số m cho m ≡ c ( modn ) , (e, n) khóa cơng khai c mã Hiện phương pháp triển vọng giải tố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 46 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 tố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 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ã khố cơng khai Phương pháp khả thi việc mã giải mã văn có kích thước lớn 47 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 đố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 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ố nguyên 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ố p cho p = 2p1+1 số nguyên tố, tương tự chọn số nguyên tố lớn q 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/4 / , có phương pháp hiệu để tính d theo n e 48 2.3.6 Ứ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 2.3.6.1 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 đó, 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 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 toàn cho văn thay trực tiếp mã hóa văn ([2]) 2.3.6.2 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 toà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 toá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ố” 49 Trong thực tế, q 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 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 toá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ó khố 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 tốn kiểm thử Với k ∈ K, có thuật toá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 ) 50 RSA thuật toán dùng nhiều cho mục đích ký số Ngồi ra, 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.7 Tấn công vào hệ mã RSA Quá trình thám mã hay 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]) 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ố nguyên tố Độ khó tốn giúp cho việc đảm bảo an tồ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 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 x ≡ y (mod n) 2 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 51 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 x ≡ 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 52 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ã hoá 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ã hố, 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ử 53 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 [2] Maple, Nhà xuất Khoa học Kỹ thuật, Hà Nội Phạm Huy Điển, Hà Huy Khoái (2004), Mã hóa thơng tin - Cơ sở tốn [3] học ứng dụng, Nhà xuất Đại học Quốc gia Hà Nội Bùi Dỗn Khanh, Nguyễn Đình Thúc (2004), Mã hóa thông tin, Lý thuyết [4] ứng dụng, Nhà xuất Lao Động, TP Hồ Chí Minh 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 [5] TIẾNG ANH Brassard (1988), Modern Cryptology Lecture Notes in Computer Science, [6] Springer Jevons, W Stanley (1958), The Principles of Science: A Treatise on Logic [7] [8] [9] and Scientific Method, Dover Publications, New York M B Nathason (1999), Elementary Methods in Number Theory, Springer B Scheier (1996), Applied Cryptography, Wiley D Stinson (1995), Cryptography: Theory and Pratice, CRS Press LLC ... ta chứng minh điều với sở 1.1.6 Định lý Nếu n số giả nguyên tố sở m = n - số giả nguyên tố sở Từ suy có vơ hạn số giả ngun tố sở Chứng minh Giả sử n số giả nguyên tố sở 2, ta chứng minh số nguyên... chứng minh M (2 k ) ≤ c(3 k − k ) Từ ta có:  log2 n  +1 M (n) = M (2 log2 n ) ≤ M (2  ≤ 3c3  log2 n +  ≤ 3cn log2 n  log2 n  +1 ) ≤ c(3   log2 n  +1 − 2 ) Định lý chứng minh ... = (b16 )35 ≡ 1(mod17) Từ suy ra, b560 ≡ 1(mod 561) 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
- Xem thêm -

Xem thêm: Về mật mã khóa công khai, Về mật mã khóa công khai

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay