1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng chương trình mã hóa và giải mã RSA

65 62 1

Đ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

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ê Minh HẢI PHÒNG – 2020 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ê Minh HẢI PHÒNG – 2020 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 Sinh viên : Lê Minh Mã sinh viên: 1212103004 Lớp Ngành : Điện tử viễn thông : ĐT1601 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 tố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 2020 Yêu cầu phải hoàn thành xong trước ngày tháng năm 2020 Đã 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 2020 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 2020 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 2020 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 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 Nguyên 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 (a) (b) Hình 2.6 Xử lý RSA nhiều khối 2.2.2.2 Các khía cạnh tính tốn 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ã + Tính tốn lũy thừa mơ đun số học: 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 Như vậy: = (∑ ≠02) =∏ ≠0 2 mod n= [ ∏ ≠0 ] mod n = (∏ ≠0[ ]) 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 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ể (n 1, 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 M mod (n1n2n3) Theo quy tắc thuật toán RSA, M nhỏ số n i (M < n1; M < n2; M < n3) Như vậy: M3

Ngày đăng: 05/09/2020, 20:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w