Thuật toán mã hóa công khai đã ra đời từ lâu. Nhưng trước những nhu cầu về giao dịch an toàn trên mạng Internet ngày nay, những ứng dụng ngày càng quan trọng. Một trong những thuật toán mã hóa khóa công khai phổ biến đó là RSA và cài đặt RSA trên Java
Tìm hiểu RSA nguyên thủy Mục Lục Mục Lục .1 Mở đầu CHƯƠNG 1: CẤU TẠO VÀ HOẠT ĐỘNG CỦA RSA .3 1.1 : Sơ lược RSA 1.2 : Các thuật toán hệ mật mã khóa cơng khai 1.3 : Đánh giá hệ mật mã khóa cơng khai RSA .6 1.4 : Ứng dụng RSA vào chữ ký điện tử CHƯƠNG 2: MÃ HÓA RSA NGUYÊN THỦY 2.1 : Phép mã hóa RSA nguyên thủy 2.2 : Phép giải mã RSA nguyên thủy .8 2.3 : Phép ký số RSA nguyên thủy 2.4 : Phép kiểm tra chữ ký RSA nguyên thủy RSAVP Chương 3:Xây dựng chương trình 10 3.1 : Xây dựng chương trình 10 3.2 : Một số giao diện chương trình 11 Tìm hiểu RSA ngun thủy Mở đầu Thuật tốn mã hóa cơng khai đời từ lâu Nhưng trước nhu cầu giao dịch an toàn mạng Internet ngày nay, ứng dụng ngày quan trọng Một thuật tốn mã hóa khóa cơng khai phổ biến RSA Trong q trình học nhóm em chọn đề tài “ tìm hiểu RSA nguyên thủy ” Với khoảng thời gian không nhiều với nỗ lực thân hướng dẫn tận tình thầy giáo, nhóm em hồn thành đề tài Tuy nhiên thời gian hạn chế nên phạm vi nghiên cứu chương trình nhiều vấn đề chưa giải triệt để Nhóm em mong nhận đóng góp thầy giáo bạn.Nhóm em xin chân thành cảm ơn thầy giáo! Tìm hiểu RSA nguyên thủy CHƯƠNG 1: CẤU TẠO VÀ HOẠT ĐỘNG CỦA RSA 1.1 : Sơ lược RSA RSA hệ thống bảo mật khóa cơng khai cho mã hóa việc xác nhận, phát minh vào năm 1977 Ron Rivest Leonard Adleman Được xây dựng sở mã mũ khóa cặp (e,n), gồm mũ e modulo n Số n tích hai số ngun tố lớn đó, n=pq, cho ( e, ϕ(n)) = 1, ϕ(n) hàm Euler Những kỹ thuật đặc trưng sử dụng thao tác toán học thành văn mã Những thao gọi chức chiều, chức tương đối dễ thực theo hướng chuyển đổi theo hướng ngược lại khó nhiều Chế độ bảo mật RSA dựa vào việc phân tích số lớn thừa số nguyên tố Bảng tóm tắt q trình mã hóa RSA Khóa chung Khóa riêng Mã hóa Giải mã e n tích hai số e, nguyên tố c = m mod (p-1)(q- m = cd mod nguyên tố p,q với (p-1)(q-1) 1) n 1.2 : Các thuật tốn hệ mật mã khóa cơng khai 1.2.1: thuật tốn sinh khóa Để sử dụng hệ mật mã khóa cơng khai RSA, trước tiên người phải tạo riêng cho cặp khóa gồm khóa cơng khai khóa bí mật Việc tạo khóa cơng khai khóa bí mật thực theo bước sau: - Sinh số nguyên tố lớn p q ngẫu nhiên cho: (p,q) =1 - Tính n = p*q - Ф(n) = (p-1) * (q-1) Tìm hiểu RSA nguyên thủy - Chọn số tự nhiên e cho 1< e< Ф(n) số nguyên tố với Ф(n) - Tính d cho d*e ≡ ( mod Ф(n)) với 1< d< Ф(n) Khóa cơng khai (e,n) Khóa bí mật ( d) Hình 1: mơ hình hoạt động RSA 1.2.2 : Thuật tốn mã hóa Hệ RSA hệ mật mã điển hình kiểu mã hóa khối Nghĩa là, thông điệp chia thành nhiều khối (hoặc chuỗi) có chiều dài cố định, khối mã hóa riêng Giả sử để gửi thơng điệp bí mật M cho người nhận B nhóm gửi thơng tin an tồn, người gửi A phải thực bước sau: - Thu nhận khóa cơng khai (e,n) người nhận B - Biểu diễn tin dạng số nguyên m khoảng [0,n-1] - Tính: C = me mod n - Gửi mã C cho A Tìm hiểu RSA nguyên thủy 1.2.3 : Thuật toán giải mã Alice nhận c từ Bob biết khóa bí mật d Alice tìm m từ c theo cơng thức sau: m = cd mod n Biết m, Alice tìm lại m theo phương pháp thảo thuận trước cd ≡ (me)d ≡ med ( mod n) Do ed ≡ ( mod p-1) ed ≡ ( mod q-1) nên: med ≡ m ( mod p) med ≡ m (mod q) Do p q hai số nguyên tố nhau, ta có: med ≡ m ( mod pq) hay cd ≡ m (mod n) 1.2.4 : Chuyển đổi văn rõ Trước thực mã hóa, ta phải thực việc chuyển đổi văn rõ (chuyển đổi từ M sang m) cho khơng có giá trị M tạo văn mã khơng an tồn Nếu khơng có q trình này, RSA gặp phải số vấn đề sau: - Nếu m = m = tạo mã có giá trị tương ứng - Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) m có giá trị nhỏ, giá trị me nhận giá trị nhỏ (so với n) Như phép mơđun khơng có tác dụng dễ dàng tìm m cách khai bậc e c (bỏ qua môđun) - RSA phương pháp mã hóa xác định (khơng có thành phần ngẫu nhiên) nên kẻ cơng thực công lựa chọn rõ cách tạo bảng tra rõ mã Khi gặp mã, kẻ công sử dụng bảng tra để tìm rõ tương ứng Tìm hiểu RSA nguyên thủy - Trước thực mã hóa, ta phải thực việc chuyển đổi rõ (chuyển từ M sang mi (i, < i < n) cho khơng có giá trị M tạo mã khơng an tồn 1.3 : Đánh giá hệ mật mã khóa cơng khai RSA 1.3.1 : Độ an toàn RSA Độ an tồn RSA thiết kế dựa độ khó giải tốn phân tích thừa số ngun tố n = p*q với số nguyên tố bí mật lớn p, q Nếu ta chọn số p, q khoảng 100 chữ số thập phân có khoảng 200 chữ số thập phân Để phân tích số nguyên cỡ lớn với thuật toán nhanh với máy tính đại hàng triệu năm Như việc phân tích số nguyên n thành thừa số nguyên tố p, q nhằm mục đích bẻ gãy hệ mật mã RSA điều khó tính tốn trình thiết kế hệ RSA ta chọn số nguyên N lớn 1.3.2 : Hiệu suất thực thuật tốn RSA Chi phí: Để thực thuật tốn RSA phần lớn phải tốn chi phí thực phép tính như: tạo khố, mã hố, giải mã Q trình mã hố giải mã tương đương với chi phí thực phép tính luỹ thừa module n Để đảm bảo cho khố bí mật an tồn thường chọn số mũ cơng khai e nhỏ nhiều so với số mũ bí mật d, chi phí thời gian để thực mã hoá liệu nhỏ nhiều so với thời gian giải mã Tốc độ hệ RSA: Tốc độ RSA điểm yếu RSA so với hệ mã đối xứng, so với hệ mã DES RSA chậm từ 100 đến Tìm hiểu RSA nguyên thủy 1000 lần, RSA khơng dùng để mã hố khối lượng liệu lớn mà thường dùng để mã hoá liệu nhỏ 1.4 : Ứng dụng RSA vào chữ ký điện tử Hệ mã RSA có tính an tồn cao Nhưng nhược điểm lớn tốc độ mã hóa chậm sử dụng với văn ngắn thường dùng giao thức xác nhận chủ thể Chữ ký điện tử đảm bảo người nhận có mật thư biết chắn tác giả thư Và đảm bảo việc khơng mạo danh người khác để gửi thư Chữ kí điện tử chữ ký tay có chung đặc điểm khó xảy trường hợp trùng CHƯƠNG 2: MÃ HÓA RSA NGUYÊN THỦY 2.1 : Phép mã hóa RSA nguyên thủy RSAEP((n ,e ), m) Đầu vào : ( n, e) khóa công khai RSA m thông báo biểu diễn số nguyên khoảng từ đến n −1 Tìm hiểu RSA nguyên thủy Đầu ra: c mã biểu diễn số nguyên khoảng từ đến n-1 thông báo” biểu diễn thông báo vượt khung” Giả thiết: khóa cơng khai ( n,e) hợp lệ Các bước: Nếu thông báo m khơng nằm khoảng từ đến n-1 đưa thông báo “ biểu diễn thông báo vượt khung” dừng Đặt c = me mod n Trả c 2.2 : Phép giải mã RSA nguyên thủy RSADP(K,c) Đầu vào: K khóa bí mật RSA, K dạng sau: - Cặp (n,d) - Bộ tham số (p, q, dP, dQ, qInv) c mã số nguyên khoảng từ đến n-1 Đầu ra: m thông báo số nguyên khoảng đến n-1 thông báo “ biểu diễn mã vượt khung” Giả thiết: khóa bí mật K hợp lệ Các bước: Nếu mã c không khoảng từ đến n-1, đưa thông báo “ biểu diễn mã vượt khung” dừng Nếu sử dụng dạng thứ (n, d) K thì: a Đặt m = cd mode n Ngược lại, dạng thứ hai ( p, q, dP, dQ, qInv) K sử dụng: b Đặt m1 = cdP mod p c Đặt m2 = cdQ mode d d Đặt h = qInv ( m1 –m2) mod p e Đặt m = m2 + hq Trả m Tìm hiểu RSA nguyên thủy 2.3 : Phép ký số RSA nguyên thủy RSASP(K,m) Đầu vào: K khóa bí mật RSA, K dạng sau: Cặp (n, d)Bộ tham số ( p, q, dP, dQ,qInv)m biểu diễn thông điệp dạng số nguyên từ đến n-1 Đầu ra: s biểu diễn chữ ký, số nguyên khoảng từ đến n-1 Thông báo lỗi “ biểu diễn thơng điệp ngồi miền hợp lệ” Giả thiết: khóa bí mật K hợp lệ Các bước: Nếu biểu diễn thông điệp m không nằm khoảng từ đến n-1, đưa thông báo “ biểu diễn thơng điệp ngồi miền hợp lệ” dừng Biểu diễn chữ ký tính sau: a Nếu dạng thứ ( n, d) K sử dụng s = md mod n b Nếu dạng thứ hai ( p, q, dP, dQ, dInv) K sử dụng tiến hành sau: i Đặt s = mdQ mod p, s = mdQ mod q ii Đặt h = (s1 –s2 ) qInv mod p iii Đặt s = s2 + q.h Xuất s 2.4 : Phép kiểm tra chữ ký RSA nguyên thủy RSAVP RSAVP ( ( n, e), s) Đầu vào: ( n, e) khóa cơng khai RSA s biểu diễn chữ ký, số nguyên n -1 Đầu ra: m biểu diễn thông điệp, số nguyên n-1 Thơng báo lỗi “ biểu diễn chữ ký ngồi miền hợp lệ” Giả thiết: khóa cơng khai RSA ( n, e) hợp lệ Các bước: Nếu biểu diễn chữ ký s không nằm n-1 cho “ biểu diễn chữ ký miền hợp lệ” dừng lại Tìm hiểu RSA nguyên thủy Đặt m = se mod n Xuất m Chương 3:Xây dựng chương trình 3.1 : Xây dựng chương trình 3.2.1: Cấu tạo chương trình Texbox: P , Q, E , N, Message,RSA Button : Random, Encrypt, Decrypt 3.2.2: Phân tích chức Chương trình gồm có textbox dùng để hiển thị số nguyên tố lớn P Q , textbox thứ dùng để hiển thị số mũ E,textbox thứ để hiển thị biến N , textbox thứ dùng để nhập rõ M ,textbox thứ để hiển thị mã hóa C Chương trình có button Random giúp sinh nhanh số nguyên tố lớn P, Q ,Số mũ E tính tốn N cách nhanh chóng Button Encrypt để thực thuật tốn mã hóa,button Decrypt để thực thuật tốn giải mã 3.2.3: Nhận xét kết chương trình Đạt : Đã mã hóa giải mã , tạo số nguyên tố P , Q , số mũ E , Tính tốn N Hạn chế : Chỉ mã hóa mã số nguyên , giao diện sơ sài 10 Tìm hiểu RSA nguyên thủy 3.2 : Một số giao diện chương trình Chương trình xây dựng NetBeans 8.0.2 giao diện kéo thả đơn giản với button textbox Hình 2: Giao diện chương trình 11 Tìm hiểu RSA nguyên thủy Hình 3:Giao diện click button Random Hình 4: Giao diện click button Encrypt 12 Tìm hiểu RSA nguyên thủy Hinh : Giao diện click button Decrypt 13 ... so với thời gian giải mã Tốc độ hệ RSA: Tốc độ RSA điểm yếu RSA so với hệ mã đối xứng, so với hệ mã DES RSA chậm từ 100 đến Tìm hiểu RSA nguyên thủy 1000 lần, RSA khơng dùng để mã hố khối lượng... CHƯƠNG 2: MÃ HĨA RSA NGUN THỦY 2.1 : Phép mã hóa RSA nguyên thủy RSAEP((n ,e ), m) Đầu vào : ( n, e) khóa cơng khai RSA m thơng báo biểu diễn số nguyên khoảng từ đến n −1 Tìm hiểu RSA nguyên thủy... giáo bạn.Nhóm em xin chân thành cảm ơn thầy giáo! Tìm hiểu RSA nguyên thủy CHƯƠNG 1: CẤU TẠO VÀ HOẠT ĐỘNG CỦA RSA 1.1 : Sơ lược RSA RSA hệ thống bảo mật khóa cơng khai cho mã hóa việc xác nhận,