Thuật toán RSA có hai khóa, khóa công khai (public) và khóa bí mật (private). Mỗi khóa là những số cố định sử dụng trong quá trình giải mã và mã hóa. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa
10 trang |
Chia sẻ: mamamia | Lượt xem: 2716 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Mật mã RSA, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
RSA CRYPTOSYSTEM 4.3 Mật mã RSA RSA : Ron Rivest, Adi Shamir và Len Adleman (Leonard Max Adleman) năm 1977 Massachusetts. Mô hình mã hóa và giải mã bản mã điện tử: Mô tả sơ lược Thuật toán RSA có hai khóa, khóa công khai (public) và khóa bí mật (private). Mỗi khóa là những số cố định sử dụng trong quá trình giải mã và mã hóa. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa Tạo khóa Hệ mật mã này được tính toán trên vành số nguyên Zn. Đầu tiên, ta chọn 2 số nguyên tố lớn ngẫu nhiên và khác nhau p và q Tính n = p*q Tính giá trị hàm số Ơle Φ(n) = (p-1)(q-1) Tìm một số ngẫu nhiên e thỏa mãn điều kiện sau: 1< e <Φ(n) và gcd(e, Φ(n)) =1. Tính d sao cho de ≡ 1(mod Φ(n)) Tạo khóa Khóa công khai bao gồm n và e: n - modun và e - số mũ công khai (số mũ mã hóa) Khóa bí mật là d: d - số mũ bí mật (khóa giải mã). Mã hóa và giải mã Giả sử B muốn gửi đoạn thông điệp P cho A. Đầu tiên, B chuyển P thành một số P<n theo một hàm có thể đảo ngược (từ P có thể xác định P) đã được thỏa thuận trước. Gọi E và D lần lượt là các hàm mã hóa và giải mã. Mã hóa và giải mã Thao tác mã hóa: C là bản mã hóa của m theo công thức: C = Pe (mod n) Thao tác giải mã: A nhận C từ B và biết khóa bí mật d. A sẽ tìm được P từ C theo công thức sau: P = Cd mod n. Ví dụ Lấy p=61 (Số nguyên tố thứ nhất) q= 53 (Số nguyên tố thứ hai) n = pq = 3233 (mô đun công bố công khai) Φ(n) = 3120 e = 17 (Số mũ công khai) được chọn sao cho nguyên tố cùng nhau Φ(n) = 3120 d = 2753 (Số mũ bí mật) (chọn d sao cho de ≡ 1(modΦ(n)) d ≡ e-1 mod Φ(n), tính theo giải thuật Ơclit mở rộng). Ví dụ (tiếp) Khóa công khai (e,n). Khóa bí mật là d Hàm mã hóa E(m) = me (mod n) = m17 (mod 3233) Hàm giải mã là D(m) = cd mod n = c2753 (mod 3233) Ví dụ Chẳng hạn: để mã hóa văn bản P=AW có giá trị 0123 (A=01, W=23), ta thực hiện phép tính: Mã hóa E(m) = 12317 (mod 3233) = 855 Giải mã: D(m) = 8552753 (mod 3233) = 123