Đồ án tốt nghiệp ngành điện tử viễn thông xây dựng chương trình mã hóa và giải mã rsa

63 2 0
Đồ án tốt nghiệp ngành điện tử viễn thông  xây dựng chương trình mã hóa và giải mã rsa

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TÀO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - on ph H g ĐỒ ÁN TỐT NGHIỆP U ity rs ve ni 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 ph H g on ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY ity rs ve ni U 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 g on ph H ity rs ve ni U Sinh viên : Lê Thế Trị Lớp : ĐT1601 Mã sinh viên: 1212103004 Ngành : Điện tử viễn thông 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ơ đồ ) H ph g on Các định lý toán học thuật tốn để xây dựng chương trình ni U ve ity rs Đị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: g on ph H ……………………………………… ……………………………………… .……………………………………… ……………………………………… ……………………………………… ……………………………………… .……………………………………… ……………………… ……………… .……………………………………… ……… ……………………………… .……………………………… ……………………… ……………………………………… ……………………………………… ……………………………………… .……………………………………… ……………………………………… ……………………………………… ……………………………………… .……………………………………… ……………………… ……………… .……………………………………… ……… ……………………………… U ve ni Đề tài tốt nghiệp giao ngày tháng năm 2018 Sinh viên Đã giao nhiệm vụ ĐTTN ity Đã nhận nhiệm vụ ĐTTN rs Yêu cầu phải hoàn thành xong trước ngày tháng năm 2018 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: H ph on g U ve ni rs ity 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 g on ph H Đá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ố) ity rs ve ni U 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 1.2 Giới thiệu mật mã học Tổng quan mã hóa Chương Mã hóa RSA g on ph H 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 toán Miller-Rabin 2.1.4.2 Hai tính chất số nguyên 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 ity rs ve ni U 2.2.1.4 Yê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 g on ph H 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 ity rs ve ni U 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: H Chương : Tổng quan mật mã học ph Chương : Mật mã hóa cơng khai RSA on Chương : Chương trình RSA g 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 ni U rs ve Hải Phòng, ngày tháng năm 2018 Sinh viên ity Trị Lê Thế Trị (b) ph H (a) Hình 2.6 Xử lý RSA nhiều khối on 2.2.2.2 Các khía cạnh tính tốn g rs + Tính tốn lũy thừa mơ đun số học: ve ni U Bây ta chuyển sang vấn đề cần thiết tính tốn để sử dụng RSA Thực có hai vấn đề để xem xét: mã hóa/giải mã tạo khóa Trước tiên ta xét q trình mã hóa giải mã ity Cả hai mã hóa giải mã RSA liên quan đến việc lũy thừa, số nguyên cho số nguyên, mod n Nếu số lũy thừa thực số nguyên sau giảm mod n, giá trị trung gian vơ lớn Như ví dụ ta sử dụng thuộc tính mơ đun số học [(a mod n)×(b mod n)] mod n = (a × b ) mod n Như ta giảm giá trị trung gian theo mod n Điều cho phép tính thực tế Mặt khác xét tính hiệu lũy thừa, RSA, giải với số mũ lớn Để xem hiệu suất tăng lên nào, xét trường hợp tính x16 Cách giải bình thường phải có 15 phép nhân x16 = x × x × x × x × x × x × x × x × x × x × x × x × x × x × x × x Tuy nhiên ta đạt kết cuối với phép nhân, ta liên tục bình phương kết phần, liên tục hình thành (x2, x4, x8, x16) Một ví dụ khác, giả sử ta muốn tính x11 mod n, cho số nguyên x n: 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 ) = ∏𝑏𝑖≠0 𝑎2 𝑖 𝑖 𝑎𝑏 mod n= [ ∏𝑏𝑖≠0 𝑎2 ] mod n = (∏𝑏𝑖≠0[𝑎2 𝑚𝑜𝑑 𝑛]) mod n 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 H C2 = M3 mod n2; C3 = M3 mod n3; U C1 = M3 mod n1; g on ph 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ã : ity rs ve ni 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

Ngày đăng: 11/10/2023, 14:21

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

Tài liệu liên quan