Số học số lớn cho mật mã luận án thạc sĩ

72 353 0
Số học số lớn cho mật mã luận án thạc sĩ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN TAM CƢỜNG SỐ HỌC SỐ LỚN CHO MẬT Mà LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2013 Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN TAM CƢỜNG SỐ HỌC SỐ LỚN CHO MẬT Mà Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Ngƣời hƣớng dẫn khoa học: PGS. TSKH NGUYỄN XUÂN HUY Thái Nguyên - 2013 Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ i LỜI CAM ĐOAN Học viên xin cam đoan, toàn bộ nội dung liên quan tới đề tài đƣợc trình bày trong luận văn là bản thân học viên tự tìm hiểu và nghiên cứu, dƣới sự hƣớng dẫn khoa học của Thầy giáo PGS. TSKH Nguyễn Xuân Huy. Các tài liệu, số liệu tham khảo đƣợc trích dẫn đầy đủ nguồn gốc. Học viên xin chịu trách nhiệm trƣớc pháp luật lời cam đoan của mình. Thái Nguyên, ngày 10 tháng 10 năm 2013 Học viên thực hiện Nguyễn Tam Cƣờng Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ ii LỜI CẢM ƠN Học viên xin gửi lời cảm ơn tới các Thầy, cô đã tận tình truyền đạt các kiến thức quý báu cho học viên trong suốt quá trình học tập. Đặc biệt, học viên xin gửi lời cảm ơn và biết ơn sâu sắc nhất tới Thầy giáo PGS. TSKH Nguyễn Xuân Huy, thầy đã tận tình chỉ bảo học viên trong suốt quá trình thực hiện đề tài. Bên cạnh những kiến thức khoa học, thầy đã giúp học viên nhận ra những bài học về phong cách học tập, làm việc và những kinh nghiệm sống quý báu. Học viên xin bày tỏ lòng biết ơn tới gia đình, bạn bè, đồng nghiệp và những ngƣời thân đã động viên khích lệ tinh thần và giúp đỡ để học viên hoàn thành luận văn này. Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v MỞ ĐẦU 1 1. Lý do chọn đề tài 1 2. Đối tƣợng và phạm vi nghiên cứu 2 3. Hƣớng nghiên cứu 2 4. Những nội dung nghiên cứu chính 3 5. Phƣơng pháp nghiên cứu 3 6. Ý nghĩa khoa học và thực tiễn cửa đề tài 3 Chƣơng 1: CÁC KHÁI NIỆM CƠ BẢN 5 1.1 Một số khái niệm toán học [1], [2], [3], [6], [7], [12]. [13] 5 1.1.1 Ƣớc chung lớn nhất [1], [2], [7], [13] 5 1.1.2 Số nguyên tố và nguyên tố cùng nhau 7 1.1.3 Đồng dƣ thức [1][2][7] 9 1.1.4 Không gian Z n và Z n * [1], [2], [7] 10 1.1.5 Phần tử nghịch đảo [1], [2], [7] 10 1.1.6 Hàm Euler [1], [2], [7] 11 1.1.7 Các phép toán trong không gian modulo [7] 11 1.1.8 Độ phức tạp tính toán [1], [2] 12 1.1.9 Hàm một phía và hàm cửa sập một phía [1], [3], [6] 16 1.2 Vấn đề mã hóa [3], [6], [7], [8] 17 1.2.1 Một số khái niệm cơ bản về mã hoá 17 1.2.2 Hệ mật mã 19 1.2.3 Những tính năng của hệ mật mã 19 Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ iv 1.3 Giới thiệu về hệ mã khoá công khai 20 1.3.1 Hệ mật mã công khai RSA (Rivest-Shamir-Adleman) 22 1.3.2 Cơ chế hoạt động của RSA [1], [3], [6], [7], [8] 23 1.3.3 Khả năng bị tấn công của hệ mật mã công khai RSA [1], [2], [6], [7] 26 Chƣơng 2: THƢ VIỆN TÍNH TOÁN SỐ LỚN 29 2.1 Biểu diễn số lớn [2], [4] 29 2.2 Các phép toán trên số lớn 33 2.2.1 So sánh hai số [2], [4] 33 2.2.2 Cộng hai số lớn không âm [2], [4], [5] 36 2.2.3 Trừ hai số lớn không âm [2], [4], [5], [9] 40 2.2.4 Phép nhân hai số lớn không âm [2], [4], [5], [9] 43 2.2.5 Phép chia hai số lớn không âm [2], [4], [5], [9] 45 2.2.6 Lũy thừa [2], [4], [5], [11] 47 2.2.7 Ƣớc chung lớn nhất [1], [2], [6], [7] 49 2.2.8 Phép cộng theo modulo p [1], [2], [6], [7] 49 2.2.9 Phép nhân theo modulo p [1], [2], [6], [7] 50 2.2.10 Phép cộng có dấu [1], [2], [4], [6] 51 2.2.11 Phép trừ có dấu [1], [2], [4], [6] 52 2.3.12 Phép nhân có dấu [1], [2], [4], [6] 52 2.3.13 Phép chia có dấu [1], [2], [4], [6] 52 Chƣơng 3: ỨNG DỤNG THƢ VIỆN SỐ LỚN CHO HỆ MẬT Mà RSA 53 3.1 Phân tích các phép xử lý toán học trong hệ mật mã RSA 53 3.2 Xây dựng hệ mật mã RSA thử nghiệm [1], [2], [4], [6], [7], [8] 53 3.3 Đánh giá kết quả thực nghiệm và kết luận 63 3.3.1 Đánh giá và kết quả thực nghiệm 63 3.3.2 Kết luận 64 TÀI LIỆU THAM KHẢO 65 Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CRT Chinese Remainder Theorem DES Data Encryption Standard RSA Rivest Shamir Adleman GCD Great Comon Divisor FFT Fast Fourier Transform Hàm Euler O Biểu diễn thời gian chạy gcd(a,b) Ƣớc chung lớn nhất của hai số a và b Phép tính nhân Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 1 MỞ ĐẦU 1. Lý do chọn đề tài Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và an toàn thông tin. Trên thế giới, mật mã học đã đƣợc ra đời từ thời La Mã cổ đại và ngày càng đƣợc nghiên cứu, phát triển đạt đƣợc những thành tựu to lớn. Trong mật mã học, vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong hệ thống mã hóa khóa công khai vấn đề xác thực là vô cùng quan trọng. Các hệ mã công khai nhƣ RSA thực hiện tính toán với các số nguyên lớn hàng trăm chữ số. Độ phức tạp trong việc giải mã các hệ mã này tỉ lệ hàm mũ với độ lớn của các số nguyên tham gia vào việc tạo khóa mã hóa và khóa công khai. Do đó để hệ mã an toàn, cần tăng kích thƣớc của các số nguyên. Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài toán trên là khó (không tìm đƣợc thuật toán hiệu quả để giải chúng) thì không thể thực hiện đƣợc việc phá mã toàn bộ đối với RSA. Mặt khác, khi kích thƣớc của các số nguyên cần xử lý lớn thì thời gian xử lý của chƣơng trình mã hóa cũng tăng lên. Thông tin cần mã hóa ngày càng đa dạng và có khối lƣợng lớn, đòi hỏi hệ mã giảm thiểu thời gian xử lý. Các công cụ và giải thuật nhằm bẻ khóa các hệ mật mã đƣợc cải tiến đòi hỏi hệ mã cần đƣợc nâng cấp tính bảo mật. Tuy nhiên, việc nghiên cứu và triển khai các nâng cấp trong việc tối ƣu hóa về mặt thuật toán trong các phép xử lý số học của các hệ mã còn hạn chế trong phạm vi các chƣơng trình độc quyền. Để hỗ trợ giải quyết các vấn đề trên, đề tài này tập trung vào việc xây dựng một số thuật toán tối ƣu hóa nhằm tăng hiệu quả các phép tính toán thực hiện với số nguyên lớn. Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 2 Các kết quả của đề tài sẽ đƣợc ứng dụng trong việc hỗ trợ cho các phép xử lý số học của các hệ mã. Từ đó làm tăng tốc độ xử lý và tính bảo mật của các hệ mã. Từ tính cấp thiết của vấn đề tối ƣu hóa các hệ mã công khai, đồng thời đƣợc sự hƣớng dẫn và gợi ý của Thầy giáo PGS.TSKH Nguyễn Xuân Huy, học viên đã chọn đề tài cho luận văn tốt nghiệp Cao học ngành khoa học máy tính là: “SỐ HỌC SỐ LỚN CHO MẬT MÔ. 2. Đối tƣợng và phạm vi nghiên cứu a. Đối tƣợng của đề tài - Độ phức tạp tính toán. - Cơ sở lý thuyết của số học: các phép toán trên số nguyên kích thƣớc lớn: Cộng, trừ, nhân, chia, số dƣ, số nguyên tố, ƣớc chung lớn nhất, - Tổ chức dữ liệu cho các số nguyên kích thƣớc lớn. - Các thuật toán của số học số nguyên: sơ đồ hoạt động, độ phức tạp. b. Phạm vi nghiên cứu Đề tài thực hiện việc tối ƣu hóa các phép toán với số nguyên lớn theo tiếp cận hƣớng đối tƣợng. Ứng dụng thử nghiệm trong một hệ mã nhằm so sánh hiệu năng xử lý của hệ mã trƣớc và sau khi tối ƣu. Đề tài giới hạn trong phạm vi nghiên cứu để đƣa ra giải pháp, việc triển khai ứng dụng thực tiễn cần có thêm các điều kiện về thời gian và quy mô. 3. Hƣớng nghiên cứu Đề tài tập trung vào việc xây dựng một số thuật toán tối ƣu hóa nhằm tăng hiệu quả các phép tính toán thực hiện với số nguyên lớn . - Nghiên cứu các quá trình thực hiện mã hóa và giải mã của các hệ mã công khai. - Tìm hiểu các thuật toán xử lý số học đƣợc dùng trong các hệ mã. Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 3 - Phát hiện các giải thuật tính toán cần tối ƣu hóa. - Đƣa ra giải pháp tối ƣu hóa các giải thuật này. - Ứng dụng trong một hệ mã RSA. - Đối sánh với kết quả thực thi của hệ mã khi chƣa thực hiện tối ƣu hóa. 4. Những nội dung nghiên cứu chính - Đề tài luận văn thuộc lĩnh vực lý thuyết thuật toán xử lí các số nguyên lớn dài hàng trăm chữ số và ứng dụng trong mật mã, cụ thể là khảo sát cách tổ chức dữ liệu và các thuật toán số học số lớn. - Học viên tìm hiểu tổng quan về lớp các số Big Numbers, các thuật toán mật mã RSA, khảo sát tính nguyên tố theo Miller-Rabin. - Lập trình và kiểm thử, đối sánh với các sơ đồ hiện có. 5. Phƣơng pháp nghiên cứu - Thu thập và phân tích các tài liệu và thông tin liên quan đến đề tài. - Nghiên cứu dựa trên việc tìm hiểu các giải thuật xử lý với số nguyên lớn của các hệ mã. Cụ thể là hệ mã hóa RSA, từ kết quả nghiên cứu có đƣợc sẽ định hƣớng lựa chọn thuật toán nào cần tối ƣu hóa. - Thực hiện việc tối ƣu hóa các giải thuật bằng cách tối ƣu các phép xử lý với số học lớn. Thao tác này sử dụng kết hợp các phƣơng pháp tính toán với số học với phƣơng pháp chia để trị nhằm tăng hiệu năng của từng bƣớc xử lý. - Kết hợp các nghiên cứu trƣớc đây của các tác giả trong và ngoài nƣớc cùng với sự chỉ bảo, góp ý của giáo viên hƣớng dẫn để hoàn thành nội dung nghiên cứu. - Thực nghiệm cài đặt ứng dụng để minh họa các vấn đề trình bày trong đề tài. 6. Ý nghĩa khoa học và thực tiễn cửa đề tài * Ý nghĩa khoa học: - Trình bày các kiến thức toán học cơ bản, lý thuyết độ phức tạp của thuật toán, các thuật toán thƣờng dùng trong các hệ mật mã khoá công khai. [...]... đƣa lịch sử của mật mã học sang trang mới Các hệ mật mã với khóa mã đối xứng đã góp phần to lớn trong việc củng cố vai trò của mật mã học trong các ứng dụng của con ngƣời Đƣa mật mã đến với cả các ứng dụng trong cuộc sống đời thƣờng của con ngƣời, mật mã không còn chỉ đƣợc nhắc đến nhiều trong lĩnh vực quân sự Ứng của mật mã học đã trở thành một công cụ cần thiết cho mọi ngƣời, cần thiết cho các hoạt... 23.3.172 Bài toán này khó giải khi N là một số nguyên lớn, có nhiều thuật toán để giải bài toán này Nhƣng hiện nay vẫn chƣa có thuật toán nào hiệu quả để phân tích số nguyên N có khoảng trên 200 chữ số thập phân Bài toán 1.3.1.2: (Bài toán RSA): Cho số nguyên dƣơng N, N = p q với p và q là các số nguyên tố phân biệt, số nguyên e sao cho thỏa mãn gcd(e, (p - 1) (q - 1)) = 1, và số nguyên c Tìm một số nguyên... các phƣơng pháp mật mã gồm: phƣơng pháp mã hoá khóa bí mật và phƣơng pháp mã hoá khóa công khai Với phƣơng pháp mã hóa khóa công khai thì tập trung vào các thuật toán mã hóa RSA Với phƣơng pháp mã hóa khóa bí mật chỉ giới thiệu sơ lƣợc để so sánh với phƣơng pháp mã hóa khóa công khai - Tối ƣu các phép xử lý số học với số nguyên lớn là một yêu cầu cần thiết trong việc xây dựng các hệ mã hóa có tốc độ... giải thuật xử lý số học với số nguyên lớn cỡ hàng trăm chữ số - Xây dựng chƣơng trình thử nghiệm các giải thuật xây dựng đƣợc trong một hệ mã - Đánh giá kết quả so sánh hiệu năng xử lý của hệ mã trƣớc và sau khi tối ƣu Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 5 Chƣơng 1 CÁC KHÁI NIỆM CƠ BẢN 1.1 Một số khái niệm toán học [1], [2], [3], [6], [7], [12] [13] 1.1.1 Ước chung lớn nhất [1], [2],... toán học, nếu số nguyên a chia hết cho số nguyên d thì số d đƣợc gọi là ƣớc của số nguyên a, a đƣợc gọi là bội của d Ƣớc chung lớn nhất (ƢCLN) của hai số a và b là số nguyên d khi d là ƣớc chung lớn nhất của a và b Trong trƣờng hợp cả hai số nguyên a và b đều bằng 0 thì chúng không có ƢCLN vì khi đó mọi số tự nhiên khác không đếu là ƣớc chung của a và b Nếu chỉ một trong hai số a hoặc b bằng 0, số. .. nói riêng và các hệ mã công khai nói chung Việc áp dụng các cải tiến nhằm tăng tính an toàn là cấp thiết Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 29 Chƣơng 2 THƢ VIỆN TÍNH TOÁN SỐ LỚN Tổ chức xây dựng một thư viện xử lý các số kích thước lớn theo tiếp cận hướng đối tượng 2.1 Biểu diễn số lớn [2], [4] Có nhiều các để biểu diễn và lƣu số lớn Trong luận văn này số lớn đƣợc xây dựng thành... A.Shamir và L.Adleman Hệ mật RSA đƣợc thiết kế làm việc trên trƣờng số ZN, dựa trên cơ sở độ khó giải của bài toán phân tích số nguyên N lớn thành các thừa số nguyên tố p và q khác nhau Bài toán 1.3.1.1: (Bài toán phân tích số nguyên): Cho một số nguyên dƣơng N, tìm các thừa số nguyên tố pi của N để N = p1e1 p2e2… pkek, với pi là những số nguyên tố phân biệt và ei 1 là các số nguyên (với i = 1 ;… ;k)... phƣơng pháp mã hóa với khóa bí mật đƣợc sử dụng chung cho quá trình mã hóa và giải mã (hay còn gọi là mã hóa cổ điển) có thể dễ dàng bị giải mã Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 18 Sự cần thiết phải có các phƣơng pháp mã hóa an toàn hơn đã đƣợc đáp ứng bằng việc áp dụng các kết quả nghiên cứu của toán học Sự thay đổi về phƣơng pháp mã hóa cũng nhƣ độ an toàn của các hệ mã mới đã... nguyên tố của một số nguyên dƣơng lẻ với sai số nhiều nhất là 1/4 Nếu thực hiện thuật toán này t lần thì sai số nhiều nhất sẽ là 1/4t, để đảm bảo chắc Số hóa bởi trung tâm học liệu http://www.lrc.tnu.edu.vn/ 8 chắn tính nguyên tố cho số kiểm tra nên chọn số t > 20 Thuật toán này đƣợc sử dụng trong quá trình tạo khóa ở hệ mật mã RSA Thuật toán Miller-Rabin: Kiểm tra tính nguyên tố của một số dạng 2km+1... dàng 1.2 Vấn đề mã hóa [3], [6], [7], [8] 1.2.1 Một số khái niệm cơ bản về mã hoá Lịch sử của mật mã học đã có từ rất sớm, ban đầu con ngƣời cố gắng tìm một cách để bảo vệ thông tin, tránh việc thông tin bị giải mã khi ngƣời khác có đƣợc chúng Các cách áp dụng đó thƣờng mang tính mẹo mực đơn giản và có thể dễ dàng bị giải mã nếu thông tin về cách thức che giấu bị lộ hoặc bị suy đoán Mật mã học ban đầu . NGUYỄN TAM CƢỜNG SỐ HỌC SỐ LỚN CHO MẬT Mà Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Ngƣời hƣớng dẫn khoa học: PGS. TSKH NGUYỄN. TÍNH TOÁN SỐ LỚN 29 2.1 Biểu diễn số lớn [2], [4] 29 2.2 Các phép toán trên số lớn 33 2.2.1 So sánh hai số [2], [4] 33 2.2.2 Cộng hai số lớn không âm [2], [4], [5] 36 2.2.3 Trừ hai số lớn không. DỤNG THƢ VIỆN SỐ LỚN CHO HỆ MẬT Mà RSA 53 3.1 Phân tích các phép xử lý toán học trong hệ mật mã RSA 53 3.2 Xây dựng hệ mật mã RSA thử nghiệm [1], [2], [4], [6], [7], [8] 53 3.3 Đánh giá kết

Ngày đăng: 18/11/2014, 22:39

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan