Cơ chế mã hóa khóa công khai (Asymmetric Encryption)
Khác với mã hóa đối xứng (cùng một khóa mã hóa/giải mã), mã hóa bất đối xứng sử dụng cặp khóa liên quan toán học:
- Public Key (Khóa công khai): Công khai cho mọi người - dùng để MÃ HÓA (Encrypt) hoặc XÁC THỰC CHỮ KÝ (Verify Signature)
- Private Key (Khóa riêng): Giữ bí mật tuyệt đối - dùng để GIẢI MÃ (Decrypt) hoặc TẠO CHỮ KÝ (Sign)
Quy tắc vàng: Dữ liệu mã hóa bằng Public Key chỉ Private Key tương ứng mới giải mã được. Không thể suy ngược Private Key từ Public Key (computationally infeasible).
Quy trình trao đổi khóa phiên (Hybrid Encryption) - Thực tế TLS/HTTPS
- Client hello → Server gửi Certificate (chứa Public Key, ký bởi CA)
- Client verify Certificate (CA tin cậy, không hết hạn, khớp domain, không bị revoke)
- Client sinh Pre-Master Secret ngẫu nhiên → Mã hóa bằng Public Key của Server → Gửi cho Server
- Server dùng Private Key giải mã → Lấy Pre-Master Secret
- Cả hai độc lập suy ra Session Keys (Symmetric keys: AES-GCM, ChaCha20-Poly1305)
- Phiên làm việc dùng Symmetric Encryption (nhanh, hiệu quả) cho dữ liệu ứng dụng
Các thuật toán phổ biến
| Thuật toán | Loại | Độ an toàn tương đương | Ứng dụng chính |
|---|---|---|---|
| RSA-2048 | Asymmetric | 112-bit symmetric | TLS Cert, Email encryption, Code signing (đang phase out) |
| RSA-3072 | Asymmetric | 128-bit symmetric | Yêu cầu mới cho TLS 1.3, Code signing |
| RSA-4096 | Asymmetric | 150-bit symmetric | High security, Long-term signing (Root CA) |
| ECDSA P-256 / secp256r1 | Asymmetric (ECC) | 128-bit symmetric | TLS 1.3, JWT, Blockchain, Passkeys/FIDO2 |
| ECDSA P-384 / secp384r1 | Asymmetric (ECC) | 192-bit symmetric | Suite B, Government, Top Secret |
| Ed25519 (EdDSA) | Asymmetric (ECC) | 128-bit symmetric | SSH keys, TLS 1.3, Signing, Modern crypto |
| X25519 (ECDH) | Key Agreement | 128-bit symmetric | TLS 1.3 Key Exchange, Signal Protocol, WireGuard |
| Kyber-768 (ML-KEM) | KEM (Post-Quantum) | 192-bit classical / 128-bit quantum | TLS 1.3 PQ, NIST PQC Standard (2024) |