RSA (Rivest–Shamir–Adleman) là gì?
Thuật toán **mã hóa khóa công khai (asymmetric cryptography)** phổ biến nhất. Phát triển 1977 bởi Ron Rivest, Adi Shamir, Leonard Adleman (MIT).
Cơ chế hoạt động
- **Key Generation:** Chọn 2 số nguyên tố lớn *p, q* → *n = p×q* (modulus). Tính φ(n) = (p-1)(q-1). Chọn *e* (public exponent, thường 65537) nguyên cùng với φ(n). Tính *d* (private exponent) sao cho *e×d ≡ 1 (mod φ(n))*.
- **Public Key:** (e, n) – công khai, dùng mã hóa /.verify chữ ký.
- **Private Key:** (d, n) – bí mật, dùng giải mã / ký số.
Đặc tính an ninh
- An ninh dựa trên **khó phân tích thừa số nguyên tố lớn (Integer Factorization Problem)**.
- Khóa thường 2048-bit, 3072-bit, 4096-bit (khuyến nghị ≥3072-bit hiện nay).
- RSA **không mã hóa dữ liệu lớn trực tiếp** (chậm). Thường dùng **hybrid encryption**: RSA mã hóa khóa đối xứng (AES-256), AES mã hóa dữ liệu thực.
Ứng dụng thực tế
- **TLS/SSL (HTTPS):** Trao đổi khóa phiên (key exchange) – RSA key exchange hoặc ECDHE_RSA.
- **Chữ ký số (Digital Signature):** PKI, CA, code signing, document signing.
- **VPN (IPsec, OpenVPN, WireGuard control channel):** Xác thực, trao đổi khóa.
- **Email mã hóa (PGP/GPG, S/MIME).
- **SSH key authentication.**
- **Thẻ thông minh / Token phần cứng (RSA SecurID – OTP).**
- **Blockchain / Crypto:** Bitcoin/Ethereum dùng ECDSA (khác RSA) nhưng nhiều hệ thống dùng RSA cho identity.
RSA so với AES
| Đặc điểm | RSA (Asymmetric) | AES (Symmetric) |
|---|---|---|
| Tốc độ | Chậm | Rất nhanh |
| Kích thước khóa tương đương | 3072-bit ≈ AES-128 | 128/192/256-bit |
| Vai trò | Trao đổi khóa, chữ ký, xác thực | Mã hóa dữ liệu khối lớn |