Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
1,5 MB
Nội dung
ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ BÁO CÁO LÝ THUYẾT MẬT MÃ Đề tài: HỆ MẬT BẤT ĐỐI XỨNG RSA Giảng viên hướng dẫn: PGS.TS Hà Duyên Trung Sinh viên thực hiện: Họ tên Mã sinh viên Mã lớp Phạm Chính Hiệp 20192839 137309 Nguyễn Mạnh Tùng 20193182 137309 Nguyễn Danh Đức 20192779 137309 Tô Quang Sáng 20193077 137309 Hà Nội, 2/2023 h MỤC LỤC CHƯƠNG CƠ SỞ LÝ THUYẾT Giới thiệu hệ mật bất đối xứng 1.1 Sơ lược mã hoá đối xứng bất đối xứng 1.2 Tại cần mã hoá bất đối xứng? Cơ sở toán học 2.1 Số nguyên tố 2.2 Thuật tốn tìm ước chung lớn 2.3 Thuật toán Modulo 2.4 Thuật tốn tìm nghịch đảo nhân 10 CHƯƠNG HỆ MẬT RSA 12 Giới thiệu hệ mật mã RSA .12 1.1 Giới thiệu chung .12 1.2 Mô tả sơ lược 13 Quy trình tạo khóa 14 2.1 Thuật toán 14 2.2 Một số phương pháp tìm số nguyên tố p, q 15 2.3 Mã hóa giải mã 16 Tính bảo mật 18 Một số cách công .19 4.1 Tấn công dựa thời gian .19 4.2 Tấn cơng lựa chọn thích nghi mã 20 Chữ ký số 20 5.1 Khái niệm chữ ký số 20 5.2 Quy trình tạo xác minh chữ ký số .21 h CHƯƠNG MÔ PHỎNG HỆ MẬT RSA 24 Mô hệ mật RSA 24 Kết luận 27 TÀI LIỆU THAM KHẢO 28 h LỜI NÓI ĐẦU Bảo mật ngành cơng nghiệp tồn cầu lớn vơ đa dạng Cho dù việc bảo vệ thông tin cá nhân hay bảo vệ sở hạ tầng tiện ích, “cảnh giới đe dọa” ngày phức tạp đòi hỏi hội tụ an ninh mạng hình thức vật lý, truyền thống để ngăn chặn hành vi trộm cắp hình thức hoạt động tội phạm khác Ngày nay, với phát triển mạnh mẽ công nghệ thông tin, mạng máy tính trở thành phương tiện hữu dụng phục vụ công tác điều hành, trao đổi thông tin lĩnh vực xã hội Song song với việc ứng dụng công nghệthông tin sống, đặc biệt việc sửdụng mạng internet môi trường giao tiếp vấn đề an tồn thơng tin dữliệu q trình gửi nhận thơng qua mạng có vai trị quan trọng Vì vậy, đề tài “Hệ mật bất đối xứng RSA”, nghiên cứu phương pháp mã hóa/giải mã hóa với hệ mật RSA – hệ mật mã ứng dụng rộng rãi nhiều lĩnh vực bảo mật Song đề tài nêu số phương pháp công hệ mật RSA đưa phương án bảo mật, chống công “tin tặc” đảm bảo an toàn, tin cậy cho người dùng,… Do kiến thức khả hạn chế, nên chúng em mong thầy đọc đưa nhận xét để chúng em thiếu sót, sai sót cịn tồn Chúng em xin trân thành cảm ơn! h DANH MỤC HÌNH ẢNH Hình 0.1 Mơ hình hệ mã hóa bất đối xứng .7 Hình 0.2 Thuật tốn tìm ước chung lớn Hình 0.3 Toán tử modulo Hình 0.4 Tâp dư Hình 0.5 Khái niệm đồng dư 10 Hình 0.6 Thuậ tốn tìm nghịch đảo nhân 11 Hình 0.1 Hệ mật RSA 12 Hình 0.2 Clifford Cocks – người phát minh thuật toán RSA .13 Hình 0.3 Mơ tả mã hóa RSA 13 Hình 0.4 Thuật tốn tạo khóa .14 Hình 0.5 Mã hóa giải mã 17 Hình 0.6 Bảo mật hệ thống RSA 18 Hình 0.7 Chữ ký số .20 Hình 0.8 Những xử lý mơ hình chữ ký số 21 Hình 0.9 Tạo chữ ký số RSA 22 Hình 0.10 Thẩm định chữ ký số RSA 23 Hình 0.1 Giao diện mơ hệ mật RSA 24 Hình 0.2 Chươn trình mã hóa giải mã .25 Hình 0.3 Chương trình mơ mã hóa giải mã sau thay đổi rõ 26 h DANH MỤC BẢNG BIỂU Bảng 0.1 Ví dụ tìm ước chung lớn Bảng 0.2 Ví dụ tìm nghịch đảo nhân 11 h CHƯƠNG CƠ SỞ LÝ THUYẾT Giới thiệu hệ mật bất đối xứng 1.1 Sơ lược mã hố đối xứng bất đối xứng Khi tìm hiểu an tồn thơng tin ta biết đến hai loại mã hoá phổ biến mã hoá đối xứng (symmetric cryptography) mã hoá bất đối xứng (asymmetric cryptography) Về thì: ❖ Mã hố đối xứng (hay cịn gọi mã hố bí mật): Nói đơn giản người ta dùng chìa khố để khố mở thơng tin cần giữ bí mật Và hai bên gửi nhận thông tin phải có chìa khố ❖ Mã hố bất đối xứng (hay cịn gọi mã hố cơng khai): Có thể hiểu người ta dùng hai chìa khố khác để khố mở khố thơng tin bí mật public key công khai, gửi đến đối tượng cần mã hố thơng tin, cịn private key giữ bí mật, đóng vai trị chìa khố vạn mở tất thơng tin khố public key 1.2 Tại cần mã hố bất đối xứng? Nói ngắn gọn ứng dụng bạn dùng hàng ngày Facebook, Gmail, Amazon, PayPal v.v sử dụng giao thức HTTPs Có thể hiểu giao thức HTTPs an tồn HTTP tồn thơng tin truyền client server bảo vệ mã hoá SSL/TSL SSL/TSL hoạt động dựa hai loại mã hoá đối xứng bất đối xứng Nhờ mà đảm bảo bí mật thực giao dịch có chứa thơng tin nhạy cảm Internet mà không bị đánh cắp thơng tin suốt q trình truyền nhận liệu Có thể nói, khơng có mật mã, đặc biệt mã hố bất đối xứng khơng có thương mại điện tử Về bản, HTTP truyền liệu dạng plain text, nghĩa nghe liệu bạn truyền nhận với server đọc can thiệp nội dung (man-in-the-middle attack) Ngay dùng mã hoá đối xứng để encrypt decrypt thơng tin truyền nhận có lỗ hổng hai bên h phải trao đổi key mã hoá giải mã được, attacker tóm key đọc thơng tin thường Hình 0.1 Mơ hình hệ mã hóa bất đối xứng Điểm yếu mã hố đối xứng khắc chế mã hoá bất đối xứng Ý tưởng thay gửi chìa khố cho phía client, server gửi ổ khố, để client khố thơng điệp bí mật hộp, có server giải mã Cho nên client không đọc thông điệp nhau, có sever với private key mở khố hộp (Trên thực tế public key vừa dùng để mã hoá vừa dùng để giải mã thông tin nhận gửi lên server!) Cơ sở toán học 2.1 Số nguyên tố ❖ Một số nguyên dương gọi số nguyên tố có hai ước Chẳng hạn: 2, 3, 5, 7, 11,…, 997,… ❖ Số nguyên tố hai số có chung ước 2.2 Thuật tốn tìm ước chung lớn Ước chung lớn (Greatest Common Divisor - GCD) giá trị số tự nhiên sử dụng để định nghĩa ước chung lớn hai nhiều số tự nhiên Ước lớn hai số tự nhiên số lớn mà hai số chia hết Trong toán học, giải thuật Euclid (hay thuật tốn Euclid) giải thuật để tính ước chung lớn (ƯCLN) hai số nguyên, số lớn chia hai số ngun với số dư khơng h ❖ Thuật toán Euclid cần đảm bảo: ➢ Dữ kiện 1: gcd(a, 0) = a ➢ Dữ kiện 2: gcd(a, b) = gcd(b, r), r phần dư phép chia a cho b Hình 0.2 Thuật tốn tìm ước chung lớn ❖ Ví dụ: Tìm ước chung lớn 2740 và1760 Bảng 0.1 Ví dụ tìm ước chung lớn q r1 r2 r 2740 1760 980 1760 980 780 980 780 200 780 200 180 200 180 20 180 20 20 h ❖ Như vậy: gcd(2740, 1760) = 20 2.3 Thuật toán Modulo Phép toán modulo phép tốn tìm số dư phép chia số Cho hai số dương, a - số bị chia n - số chia Phép a modulo n (viết tắt a mod n) số dư phép chia có dư Euclid a cho n ❖ Tốn tử Modulo Toán tử modulo hiển thị dạng mod Đầu vào thứ hai (n) gọi môđun Đầu r gọi số dư Hình 0.3 Toán tử modulo ❖ Tập dư Phép toán modulo tạo tập hợp, số học môđun gọi tập hợp có dư lượng modulo n, hay cịn gọi Zn Hình 0.4 Tâp dư ❖ Tính đồng dư Để hai số nguyên đồng dư, sử dụng toán tử đồng dư (≡) Ví dụ: ≡ 12 (mod 10) 13 ≡ 23 (mod 10) ≡ (mod 5) ≡ 13 (mod 5) h Quy trình tạo khóa 2.1 Thuật toán Giả sử A B cần trao đổi thơng tin bí mật thơng qua kênh khơng an tồn (ví dụ Internet) Với thuật tốn RSA, A cần tạo cho cặp khóa gồm khóa cơng khai khóa bí mật theo bước sau: ❖ Bước 1: Chọn số nguyên tố lớn p q với 𝑝 ≠ 𝑞, lựa chọn ngẫu nhiên độc lập ❖ Bước 2: Tính: 𝑛 = 𝑝𝑞 ❖ Bước 3: Tính giá trị hàm số Euler 𝜙(𝑛) = (𝑝 − 1)(𝑞 − 1) ❖ Bước 4: Chọn số tự nhiên 𝑒 cho < 𝑒 < 𝜙(𝑛) số nguyên tố với 𝜙(𝑛) ❖ Bước 5: Tính: 𝑑 cho 𝑑𝑒 ≡ (𝑚𝑜𝑑 𝜙(𝑛)) Hình 0.4 Thuật tốn tạo khóa Một số lưu ý: ❖ Các số nguyên tố thường chọn phương pháp thử xác suất ❖ Các bước thực giải thuật Euclid mở rộng ❖ Bước viết cách khác: Tìm số tự nhiên 𝑥 cho: 𝑥(𝑝 − 1)(𝑞 − 1) + (2) 𝑑 = 𝑒 ❖ Bước ta sử dụng 𝜆 = 𝐿𝐶𝑀(𝑝 − 1, 𝑞 − 1) thay cho 𝜙 = (𝑝 − 1)(𝑞 − 1) 14 h 2.2 Một số phương pháp tìm số nguyên tố p, q Việc tìm số nguyên tố đủ lớn p q thường thực cách thử xác suất số ngẫu nhiên có độ lớn phủ hợp Phép kiểm tra số nguyên tố thực sau: ❖ Phương pháp thô sơ: Phương pháp đơn giản để kiểm tra số 𝑛 có số ngun tố khơng kiểm tra xem có chia hết cho số 𝑚 từ đến 𝑛 − hay không Nếu 𝑛 chia hết cho số 𝑚 𝑛 hợp số, ngược lại 𝑛 số nguyên tố ❖ Kiểm tra theo xác suất: Các phép kiểm tra tính nguyên tố hay dùng thuật toán ngẫu nhiên Giả sử có mệnh đề Q(p, a) với số nguyên tố 𝑝 số tự nhiên 𝑎 ≤ 𝑝 Nếu 𝑛 số tự nhiên lẻ mệnh đề Q(n,a) với 𝑎 ≤ 𝑛 lấy ngẫu nhiên, có khả số nguyên tố Ta đưa thuật tốn, kết luận 𝑛 số ngun tố Nó thuật toán ngẫu nhiên hay thuật toán xác suất Trong thuật toán loại này, dùng kiểm tra ngẫu nhiên không kết luận số nguyên tố hợp số kết luận hợp số số nguyên tố Xác suất sai phép kiểm tra giảm xuống nhờ việc chọn dãy độc lập số 𝑎; với số 𝑎 xác suất để thuật toán kết luận hợp số số nguyên tố nhỏ nửa sau k lần thử độc lập, xác suất sai nhỏ 2−𝑘 , độ tin cậy thuật toán tăng lên theo 𝑘 o Cấu trúc phép kiểm tra ngẫu nhiên là: • Chọn số ngẫu nhiên 𝑎 • Kiểm tra hệ thức số 𝑎 số 𝑛 cho Nếu hệ thức sai chắn 𝑛 hợp số (số 𝑎 "bằng chứng" chứng tỏ 𝑛 hợp số) dừng thuật tốn • Lặp lại bước đạt số lần định gặp bước o Sau loạt lần kiểm tra, khơng tìm chứng chứng tỏ 𝑛 hợp số ta kết luận 𝑛 số nguyên tố ❖ Phép kiểm tra tất định: Vào năm 2002, Manindra Agrawal, Nitin Saxena Neeraj Kayal đề xuất giải thuật tất định kiểm tra tính ngun tố, kiểm tra AKS, có khả chạy 𝑂((log 𝑛)12 ) Trên thực tế thuật toán chạy chậm phương pháp xác suất 15 h ❖ Phương pháp lý thuyết số: Có vài phương pháp khác lý thuyết số để kiểm tra tính nguyên tố kiểm tra Lucas-Lehmer kiểm tra Proth Chúng thường dựa vào việc phân tích 𝑛 + 1, 𝑛 − 1, số khác Tuy nhiên phương pháp không dừng cho số tự nhiên 𝑛 mã cho số có dạng đặc biệt Kiểm tra Lucas-Lehmer dựa tính chất: bậc (multiplicative order) số 𝑎 modulo 𝑛 𝑛 − với 𝑛 số nguyên tố 𝑎 nguyên thuỷ (primitive root) modulo 𝑛 Nếu ta biểu diễn 𝑎 theo 𝑛, ta thấy 𝑛 ngun tố 𝑝 𝑞 cịn cần chọn khơng q gần để phịng trường hợp phân tích 𝑛 phương pháp phân tích Fermat Ngồi ra, 𝑝 − ℎ𝑜ặ𝑐 𝑞 − có thừa số nguyên tố nhỏ 𝑛 dễ dàng bị phân tích 𝑝 𝑣à 𝑞 cần thử để tránh khả Bên cạnh đó, cần tránh sử dụng phương pháp tìm số ngẫu nhiên mà kẻ cơng lợi dụng để biết thêm thông tin việc lựa chọn (cần dùng tạo số ngẫu nhiên tốt) Yêu cầu số lựa chọn cần đồng thời ngẫu nhiên khơng dự đốn Đây yêu cầu khác nhau: số lựa chọn ngẫu nhiên (khơng có kiểu mẫu kết quả) dự đốn dù phần an ninh thuật tốn khơng đảm bảo Một ví dụ bảng số ngẫu nhiên tập đoàn Rand xuất vào năm 1950 thực ngẫu nhiên kẻ cơng có bảng Nếu kẻ cơng đoán nửa chữ số 𝑝 hay 𝑞 chúng dễ dàng tìm nửa cịn lại (theo nghiên cứu Donald Coppersmith vào năm 1997) Một điểm cần nhấn mạnh khóa bí mật 𝑑 phải đủ lớn Năm 1990, Wiener giá trị 𝑝 nằm khoảng 𝑞 2𝑞 𝑑 < từ 𝑛 𝑒 𝑛1/4 tìm 𝑑 2.3 Mã hóa giải mã 2.3.1 Mã hóa Giả sử B muốn gửi đoạn thông tin mã M cho A Đầu tiên B chuyển mã M thành số 𝑚 < 𝑛 theo hàm đảo ngược (từ m xác định lại M) thỏa thuận trước Lúc B có 𝑚 biết 𝑛 𝑒 A gửi, B tính 𝑐 mã hóa 𝑚 theo cơng thức: 𝑐 = 𝑚𝑒 𝑚𝑜𝑑 𝑛 (3) Hàm tính dễ dàng sử dụng phương pháp tính hàm mũ (theo mơđun) thuật tốn bình phương nhân Cuối B gửi 𝑐 cho A 16 h 2.3.2 Giải mã A nhận 𝑐 từ B biết khóa bí mật 𝑑 A tìm 𝑚 từ 𝑐 theo cơng thức sau: 𝑐 = 𝑚𝑒 𝑚𝑜𝑑 𝑛 (4) Biết 𝑚, A tìm lại M theo phương pháp thỏa thuận trước Q trình giải mã hoạt động ta có: 𝑐 𝑑 ≡ (𝑚𝑒 )𝑑 ≡ 𝑚𝑒𝑑 (𝑚𝑜𝑑 𝑛) (5) Do 𝑒𝑑 ≡ (𝑚𝑜𝑑 𝑝 − 1) 𝑣à 𝑒𝑑 ≡ (𝑚𝑜𝑑 𝑞 − 1), (theo định lý Fermat nhỏ) nên: 𝑚𝑒𝑑 ≡ 𝑚 (𝑚𝑜𝑑 𝑝) (6) 𝑚𝑒𝑑 ≡ 𝑚 (𝑚𝑜𝑑 𝑞) (7) Do 𝑝 𝑣à 𝑞 hai số nguyên tố nhau, áp dụng định lý Số dư Trung Quốc, ta có: (8) 𝑚𝑒𝑑 ≡ 𝑚 (𝑚𝑜𝑑 𝑝𝑞) ℎ𝑎𝑦 𝑐 𝑑 ≡ 𝑚 (𝑚𝑜𝑑 𝑛) Hình 0.5 Mã hóa giải mã 17 h Tính bảo mật Độ an toàn hệ thống RSA dựa vấn đề tốn học: tốn phân tích thừa số nguyên tố số nguyên lớn tốn RSA Nếu tốn khó (khơng tìm thuật tốn hiệu để giải chúng) khơng thể thực việc phá mã tồn RSA Phá mã phần phải ngăn chặn phương pháp chuyển đổi rõ an tồn Hình 0.6 Bảo mật hệ thống RSA Bài tốn RSA tốn tính bậc 𝑒 mơđun n (với n hợp số): tìm số m cho 𝑚𝑒 = 𝑐 𝑚𝑜𝑑 𝑛, (𝑒, 𝑛) khóa cơng khai 𝑐 mã Hiện phương pháp triển vọng giải toán phân tích 𝑛 thừa số nguyên tố Khi thực điều này, kẻ công tìm số mũ bí mật 𝑑 từ khóa cơng khai giải mã theo quy trình thuật tốn Nếu kẻ cơng tìm số nguyên tố 𝑝 𝑞 cho: 𝑛 = 𝑝𝑞 dễ dàng tìm giá trị (𝑝 − 1)(𝑞 − 1) qua xác định 𝑑 từ 𝑒 Chưa có phương pháp tìm máy tính để giải tốn thời gian đa thức (polynomial-time) Tuy nhiên người ta chưa chứng minh điều ngược lại (sự không tồn thuật tốn) Xem thêm phân tích thừa số nguyên tố vấn đề Tại thời điểm năm 2005, số lớn phân tích thừa số ngun tố có độ dài 663 bít với phương pháp phân tán khóa RSA có độ dài từ 1024 tới 2048 bít Một số chun gia cho khóa 1024 bít sớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít khơng có khả bị phá vỡ tương lai gần Do đó, người ta thường cho RSA đảm bảo an toàn với điều kiện 𝑛 chọn đủ lớn Nếu 𝑛 có độ dài 256 bít ngắn hơn, bị phân tích vài với máy tính cá nhân dùng phần mềm có sẵn Nếu n có độ dài 512 bít, bị phân tích vài trăm 18 h máy tính thời điểm năm 1999 Một thiết bị lý thuyết có tên TWIRL Shamir Tromer mơ tả năm 2003 đặt câu hỏi độ an tồn khóa 1024 bít Vì người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít Năm 1993, Peter Shor cơng bố thuật tốn Shor rằng: máy tính lượng tử (trên lý thuyết) giải tốn phân tích thừa số thời gian đa thức Tuy nhiên, máy tính lượng tử chưa thể phát triển tới mức độ nhiều năm Năm 2010, nhà khoa học thuộc Đại học Michigan công bố phát kẽ hở hệ thống mật mã hố RSA Cách phá vỡ hệ thống, lấy khố bí mật RSA 1024-bit vài ngày thay vài năm công theo cách thông thường - cơng brute force (dị tìm lần lượt) Các nhà khoa học tạo điện lớn để gây lỗi hệ thống, từ giúp tìm khố bí mật Việc công thực FPGA Báo cáo trình bày hội nghị DATE 2010 diễn Dresden, Đức tháng năm 2010 Một số cách công 4.1 Tấn công dựa thời gian Vào năm 1995, Paul Kocher mô tả dạng công lên RSA: kẻ công nắm đủ thơng tin phần cứng thực mã hóa xác định thời gian giải mã số mã lựa chọn nhanh chóng tìm khóa 𝑑 Dạng cơng áp dụng hệ thống chữ ký điện tử sử dụng RSA Năm 2003, Dan Boneh David Brumley chứng minh dạng công thực tế hơn: phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng SSL) Tấn công khai thác thông tin rị rỉ việc tối ưu hóa định lý số dư Trung quốc mà nhiều ứng dụng thực Để chống lại công dựa thời gian đảm bảo q trình giải mã ln diễn thời gian không đổi văn mã Tuy nhiên, cách làm giảm hiệu suất tính tốn Thay vào đó, hầu hết ứng dụng RSA sử dụng kỹ thuật gọi che mắt Kỹ thuật dựa tính nhân RSA: thay tính 𝑐 𝑑 𝑚𝑜𝑑 𝑛, A chọn số ngẫu nhiên r tính (𝑟 𝑒 𝑐)𝑑 𝑚𝑜𝑑 𝑛 Kết phép tính 𝑟𝑚 𝑚𝑜𝑑 𝑛 tác động r loại bỏ cách nhân kết với nghịch đảo r Đối với văn mã, người ta chọn giá trị r Vì vậy, thời gian giải mã khơng cịn phụ thuộc vào giá trị văn mã 19 h 4.2 Tấn công lựa chọn thích nghi mã Năm 1981, Daniel Bleichenbacher mơ tả dạng cơng lựa chọn thích nghi mã (adaptive chosen ciphertext attack) thực thực tế văn mã hóa RSA Văn mã hóa dựa tiêu chuẩn PKCS #1 v1, tiêu chuẩn chuyển đổi rõ có khả kiểm tra tính hợp lệ văn sau giải mã Do khiếm khuyết PKCS #1, Bleichenbacher thực cơng lên RSA dùng cho giao thức SSL (tìm khóa phiên) Do phát này, mơ hình chuyển đổi an tồn chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) khuyến cáo sử dụng Đồng thời phòng nghiên cứu RSA đưa phiên PKCS #1 có khả chống lại dạng cơng nói Chữ ký số 5.1 Khái niệm chữ ký số Chữ ký điện số thông tin kèm theo liệu (văn bản, âm thanh,hình ảnh, video ) nhằm mục đích xác định người chủ liệu Chữ ký điện số chuỗi thơng tin cho phép xác định nguồn gốc, xuất xứ, thực thể tạo thơng điệp Chữ ký số khóa cơng khai mơ hình sử dụng kỹ thuật mật mã để gắn với người sử dụng cặp khóa cơng khai - bí mật, qua ký văn điện tử trao đổi thơng tin mật Khóa cơng khai thường phân phối thơng qua chứng thực khóa cơng khai Hình 0.7 Chữ ký số 20 h 5.2 Quy trình tạo xác minh chữ ký số Hình 0.8 Những xử lý mơ hình chữ ký số 5.2.1 Q trình ký (bên gửi) Tính tốn chuỗi đại diện (message digest/ hash value) thông điệp sử dụng giải thuật băm (Hashing algorithm) SHA-1 Chuỗi đại diện ký sử dụng khóa riêng (Priavte key) người gửi giải thuật tạo chữ ký (Signature/ Encryption algorithm) RSA Kết chữ ký số (Digital signature) thơng điệp hay cịn gọi chuỗi đại diện mã hóa giải thuật RSA (Encryted message digest) Thông điệp ban đầu (message) ghép với chữ ký số (Digital signature) tạo thành thông điệp ký (Signed message) Thông điệp ký (Signed message) gửi cho người nhận 21 h Hình 0.9 Tạo chữ ký số RSA 5.2.2 Quá trình kiểm tra chữ ký (bên nhận) Tách chữ ký số RSA thông điệp gốc khỏi thông điệp ký để xử lý riêng Tính tốn chuỗi đại diện MD1 (message digest) thông điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng trình ký SHA-1) Sử dụng khóa cơng khai (Public key) người gửi để giải mã chữ ký số RSA => chuỗi đại diện thông điệp MD2 So sánh MD1 MD2: • Nếu MD1 = MD2 => chữ ký kiểm tra thành cơng Thơng điệp đảm bảo tính tồn vẹn thực xuất phát từ người gửi (do khóa cơng khai chứng thực) • Nếu MD1 ≠ MD2 => chữ ký khơng hợp lệ Thơng điệp bị sửa đổi không thực xuất phát từ người gửi 22 h Hình 0.10 Thẩm định chữ ký số RSA 23 h CHƯƠNG MÔ PHỎNG HỆ MẬT RSA Mô hệ mật RSA ❖ Mã nguồn chương trình mơ hệ mật RSA viết ngơn ngữ Python ❖ Giao diện chương trình mơ Hình 0.1 Giao diện mơ hệ mật RSA ❖ Nhập thông tin rõ “ly thuyet mat ma dhbkhn” ô “Enter Message” ❖ Nhấn “Gen Key” để tạo tham số cần thiết: • Hai số nguyên tố: p, q (sử dụng hàm random() Python) • Khóa cơng khai: e, n • Khóa bí mật: d ❖ Nhấn “Enc” để thực q trình mã hóa ❖ Nhấn “Dec” để thực giải mã 24 h Hình 0.2 Chươn trình mã hóa giải mã ❖ Bản mã sau thực mã hóa: 6835075151206937521 7032571511709907263 353173454722244586 1822384774389041157 7032571511709907263 4873325037343359016 9121046401278050212 9121046401278050212 353173454722244586 9121046401278050212 757178522238958203 1561269554773310270 1822384774389041157 1822384774389041157 5165561980808395122 154376261080069448 1822384774389041157 9969588286705482999 7032571511709907263 4873325037343359016 1561269554773310270 9578560193633770693 4377625732182987375 ❖ Bản mã sau thực giải mã: “ly thuyet mat ma dhbkhn” Nhận xét: Kết sau giải mã trùng khớp với rõ nhập vào Như vậy, văn mã hóa xác với khóa cơng khai khóa bí mật 25 h ❖ Thực thay đổi số ký tự rõ: “ly thuyet mat ma bkhn” Hình 0.3 Chương trình mơ mã hóa giải mã sau thay đổi rõ ❖ Thực mã hóa, cho mã không khác nhiều so với mã trước thay đổi 6835075151206937521 7032571511709907263 353173454722244586 1822384774389041157 7032571511709907263 4873325037343359016 4377625732182987375 353173454722244586 9121046401278050212 757178522238958203 1561269554773310270 1822384774389041157 1822384774389041157 9121046401278050212 1822384774389041157 9969588286705482999 7032571511709907263 4873325037343359016 1561269554773310270 5165561980808395122 154376261080069448 26 h Kết luận Hệ mật RSA hệ mật mã khóa cơng khai phổ biến sử dụng rộng rãi nhiều ứng dụng bảo mật Bên cạnh đó, hệ mật RSA tồn số ưu, nhược điểm ❖ Ưu điểm • Hệ mật RSA có tính bảo mật cao khó bị xâm nhập sử dụng cách • Việc mã hóa giải mã thơng điệp sử dụng hai khố khác nhau, làm cho hệ mật RSA an toàn so với hệ mật khóa đối xứng • Việc sử dụng số nguyên tố lớn để tạo khoá RSA làm cho việc giải mã trở nên khó khăn kẻ cơng, họ có sử dụng phương pháp công brute - force ❖ Hạn chế • Hệ mật RSA cần khối lượng tính tốn lớn, đặc biệt q trình tạo khố cơng khai khố riêng Điều gây hiệu suất chậm tăng chi phí tính tốn cho hệ thống có nhiều lưu lượng liệu • Một số cơng cơng side-channel công vào hệ mật RSA giảm bảo mật • Kích thước khóa cần phải đủ lớn để đảm bảo tính an tồn hệ thống, điều đơi gây khó khăn việc quản lý truyền tải khoá bên 27 h TÀI LIỆU THAM KHẢO RSA (mã hóa) https://vi.wikipedia.org/ Slide lý thuyết mật mã (PGS.TS Hà Duyên Trung) RSA (CryptSystem) https://brilliant.org/wiki/rsa-encryption/ Chữ ký số https://tenten.vn/tin-tuc/chu-ky-so-rsa/ 28 h