Mã hóa (Encryption) là quá trình biến đổi dữ liệu đọc được (plaintext) thành dạng xáo trộn (ciphertext) bằng thuật toán mật mã và khóa, sao cho chỉ bên được ủy quyền nắm khóa giải mã mới khôi phục lại dữ liệu gốc.
Mục tiêu cốt lõi (CIA Triad)
- Confidentiality (Bảo mật): Chỉ bên có khóa đọc được.
- Integrity (Toàn vẹn): Phát hiện thay đổi (kết hợp MAC/AEAD).
- Authenticity (Xác thực): Xác minh nguồn gốc (chữ ký số, MAC).
- Non-repudiation (Phủ nhận không được): Chữ ký số với khóa riêng.
Phân loại chính
| Loại | Khóa | Thuật toán điển hình | Dùng cho |
|---|---|---|---|
| Đối xứng (Symmetric) | 1 khóa K (bí mật) | AES-GCM, ChaCha20-Poly1305, AES-CBC+HMAC | Mã hóa dữ liệu lớn, lưu trữ, phiên TLS |
| Bất đối xứng (Asymmetric) | Cặp (PK, SK) | RSA-OAEP, ECIES, Kyber (PQC) | Trao đổi khóa, chữ ký số, KEM |
| Hybrid | Kết hợp cả hai | TLS 1.3, HPKE, Signal, PGP | Hệ thống thực tế end-to-end |
Thuật toán tiêu chuẩn hiện đại (2024)
- AES-256-GCM (NIST FIPS 197 + SP 800-38D): Phần cứng AES-NI, AEAD, 128-bit tag.
- ChaCha20-Poly1305 (RFC 8439): Nhanh phần mềm, không side-channel table lookup.
- XChaCha20-Poly1305: Nonce 192-bit (random an toàn).
- AES-256-SIV (RFC 5297): Misuse-resistant (an toàn nếu lặp nonce).
Ứng dụng thực tế
- TLS 1.3 (HTTPS): AEAD + ECDHE forward secrecy.
- Disk encryption: LUKS2 (AES-XTS), BitLocker, FileVault.
- Database/Application-level: Envelope encryption (DEK + KEK trong KMS/HSM).
- Messaging E2EE: Signal Protocol (Double Ratchet), MLS.
- Email: PGP/GPG, S/MIME.
Nguyên tắc vàng
- Không tự thiết kế thuật toán/protocol. Dùng chuẩn đã audit (libsodium, Tink, OpenSSL 3, BoringSSL).
- Luôn dùng AEAD (mã hóa + xác thực cùng lúc). Không CBC+HMAC thủ công.
- Nonce/IV duy nhất cho mỗi khóa.
- Quản lý khóa chuyên nghiệp: HSM/KMS, rotation, access control, audit log.
- Post-Quantum readiness: Theo dõi NIST PQC (Kyber/ML-KEM cho KEM, Dilithium/ML-DSA cho chữ ký).