Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
1,93 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TÀO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - ĐỒ ÁN TỐT NGHIỆP NGÀNH: ĐIỆN TỬ VIỄN THÔNG Người hướng dẫn : Thạc sỹ Nguyễn Văn Dương Sinh viên : Lê Thế Trị HẢI PHÒNG – 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG XÂY DỰNG CHƯƠNG TRÌNH Mà HÓA VÀ GIẢI Mà RSA ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY NGÀNH: ĐIỆN TỬ VIỄN THƠNG Người hướng dẫn : Thạc sỹ Nguyễn Văn Dương Sinh viên : Lê Thế Trị HẢI PHÒNG – 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP Si : M n L ã L : N Đ g Tên đề tài : Xây dựng chương trình mã hóa giải mã RSA NHIỆM VỤ ĐỀ TÀI Nội dung yêu cầu cần giải nhiệm vụ đề tài tốt nghiệp ( lý luận, tính thực tiễn, tính học sơ đồ ) Các định lý toán học thuật toán để xây dựng chương trình Địa điểm CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Ng i hư ng dẫ n : Họ tên: Nguyên Văn Dương Học hàm, học vị: Thạc sỹ Cơ quan cơng tác: Trường Đại học Dân lập Hải Phòng Nội dung hướng dẫn: ……………………………………… ……………………………………… .……………………………………… ……………………………………… ……………………………………… ……………………………………… .……………………………………… ……………………… ……………… .……………………………………… ……… ……………………………… .……………………………… ……………………… ……………………………………… ……………………………………… ……………………………………… .……………………………………… ……………………………………… ……………………………………… ……………………………………… .……………………………………… ……………………… ……………… .……………………………………… ……… ……………………………… Đề tài tốt nghiệp giao ngày tháng năm 2018 Yêu cầu phải hoàn thành xong trước ngày tháng năm 2018 Đã nhận nhiệm vụ ĐTTN Sinh viên Đã giao nhiệm vụ ĐTTN Người hướng dẫn Hải Phòng, ngày tháng năm 2018 HIỆU TRƯỞNG GS.TS.NGƯT Trần Hữu Nghị PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƯỚNG DẪN Tinh thần thái độ sinh viên trình làm đề tài tốt nhiệp: Đánh giá chất lượng đồ án: Cho điểm cán hướng dẫn (Điểm ghi chữ số) Hải Phòng, ngày tháng năm 2018 Cán hướng dẫn PHẦN NHẬN XÉT TÓM TẮT CỦA NGƯỜI CHẤM PHẢN BIỆN Đánh giá chất lượng đề tài tốt nghiệp: Cho điểm cán phản biện (Điểm ghi chữ số) Hải Phòng, ngày tháng năm 2018 Người chấm phản biện MỤC LỤC LỜI NÓI ĐẦU Chương Tổng quan mật mã học 1.1 Giới thiệu mật mã học 1.2 Tổng quan mã hóa Chương Mã hóa RSA 2.1 Lý thuyết số 2.1.1 Thuật toán Euclid 2.1.2 Số nguyên tố 2.1.3 Định lý Fermat định lý Euler 2.1.3.1 Định lý Fermat 2.1.3.2 Hàm số Euler 2.1.4 Kiểm tra số nguyên tố 2.1.4.1 Thuật tốn Miller-Rabin 2.1.4.2 Hai tính chất số ngun tố 2.1.4.3 Chi tiết thuật toán 2.1.4.4 Sử dụng thuật toán Miller-Rabin lặp lặp lại 2.1.4.5 Thuật toán xác định số nguyên tố 2.1.4.6 Sự phân bố hai số nguyên tố 2.1.5 Định lý lại Trung Hoa 2.1.5.1 Hai khẳng định CRT 2.1.5.2 Chứng minh khẳng định 2.1.5.3 Chứng minh khẳng định thứ hai 2.1.6 Logarithms rời rạc 2.1.6.1 Khả số nguyên (mod n ) 2.1.6.2 Logarithms cho mô đun số học 2.1.6.3 Tính tốn logarithms rời rạc 2.2 Mật mã khóa cơng khai 2.2.1 Ngun tắc hệ thống mã hóa khóa cơng khai 2.2.1.1 Hệ thống mật mã khóa cơng khai 2.2.1.2 Các bước cần thiết 2.2.1.3 Ứng dụng hệ thống mật mã khóa cơng khai 2.2.1.4 u cầu mật mã khóa cơng khai 2.2.1.5 Phân thích mã hóa khóa cơng khai 2.2.2 Thuật tốn RSA 2.2.2.1 Mơ tả thuật tốn 2.2.2.2 Các khía cạnh tính tốn 2.2.2.3 Hoạt động hiệu dùng khóa cơng khai 2.2.2.4 Tạo khóa Chương Chương trình mã hóa giải mã RSA 3.1 Mơ tả thuật tốn 3.2 Mã chương trình 3.2.1 Cryptomath.py 3.2.2 RabinMiller.py 3.2.3 MakeRsaKeys.py 3.2.4 Encrypted.py 3.2.5 Decrypted.py LỜI NÓI ĐẦU Trước cơng nghệ máy tính chưa phát triển, nói đến vấn đề an tồn bảo mật thơng tin, thường hay nghĩ đến biện pháp nhằm đảm bảo cho thông tin trao đổi hay cất giữ cách an tồn bí mật, chẳng hạn biện pháp như: Đóng dấu ký niêm phong thư để biết thư có chuyển nguyên vẹn đến người nhận hay không, dùng mật mã mã hóa thơng điệp để có người gửi người nhận hiểu thông điệp, lưu giữ tài liệu két sắt có khóa nơi bảo vệ nghiêm ngặt Ngày với phát triển khoa học công nghệ, đặt biệt phát triển Internet, việc sử dụng máy tính điện thoại cá nhân trở lên rộng rãi, dẫn đến nhiều thông tin lưu trữ máy tính gửi mạng Internet Do nhu cầu an tồn bảo mật thơng tin máy tính nhiều việc sử dụng mật mã mã hóa phổ biến Trong đồ án này, em thực xây dựng chương trình mã hóa giải mã mật mã hóa cơng khai RSA Đồ án gồm chương: Chương : Tổng quan mật mã học Chương : Mật mã hóa cơng khai RSA Chương : Chương trình RSA Em xin cám ơn thầy Nguyễn Văn Dương, giảng viên hướng dẫn, nhiệt tình bảo em hồn thành đề tài này, thầy cô khác môn tạo điều kiện cho em suốt thời gian làm đề tài Hải Phòng, ngày tháng năm 2018 Sinh viên Trị Lê Thế Trị Ta thấy x11 = x1+2+8 = x × x2 × x8 Trong trường hợp này, ta tính x mod n, x2 mod n, x4 mod n, x8 mod n sau tính: [(x mod n ) ×(x2 mod n) ×(x8 mod n)] mod n Nhìn chung, giả sử ta muốn tìm giá trị ab mod n với a, b n số nguyên dương Nếu ta biểu diễn b số nhị phân: bkbk-1 b0, sau ta có: b=∑�� ≠0 2� Như vậy: �� = �(�∑� ≠0 2� ) �� mod n= [ ∏ n �� ≠0 � = ∏ ��≠0 �2 � �2 ] mod n = (∏ � [�2 ��� �]) mod �� ≠0 2.2.2.3 Hoạt động hiệu dùng khóa cơng khai Để đẩy nhanh hoạt động thuật tốn RSA sử dụng khóa cơng khai, lựa chọn đặc biệt e thường thực Lựa chọn phổ biển 65537 (216+1) Hai lựa chọn phổ biến khác 17 Mỗi lựa chọn có hai bít, số lần nhận yêu cầu để thực lũy thừa giảm thiểu Tuy nhiên, với khóa cơng khai nhỏ e = 3, RSA trở lên dễ bị cơng Giả sử, có ba người dùng RSA khác nhau, tất dùng giá trị e = 3, giá trị n Cụ thể (n1, n2, n3) Nếu người dùng A gửi thơng điệp mã hóa M đến tất ba người, sau ba mã : C1 = M3 mod n1; C2 = M3 mod n2; C3 = M3 mod n3; Có khả n1; n2; n3 cặp tương đối nguyên tố Do đó, ta dùng định lý dư lượng Trung Hoa (CRT) để tính M3 mod (n1n2n3) Theo quy tắc thuật toán RSA, M nhỏ số ni (M < n1; M < n2; M < n3) Như vậy: M3