Bài viết tổng hợp các kỹ thuật/ thuật toán mã hóa dữ liệu chính, từ lịch sử đến hiện đại, với đánh giá trạng thái 2024.
1. Đối xứng (Symmetric Encryption)
| Thuật toán | Năm | Block/Key | Đặc điểm | Trạng thái 2024 |
|---|---|---|---|---|
| DES | 1977 | 64-bit / 56-bit | Feistel 16 vòng, S-box 6→4, IP/FP. Key yếu, block nhỏ. | Cấm (broken, deprecated) |
| 3DES / TDEA | 1998 | 64-bit / 112/168-bit | 3 lần DES (EDE). 3-key: 112-bit security. Chậm, block 64-bit (birthday bound). | Deprecated NIST 2023, chỉ legacy |
| AES (Rijndael) | 2001 | 128-bit / 128,192,256-bit | SPN, 10/12/14 vòng, S-box 8→8 (x⁻¹+affine), MixColumns MDS, ShiftRows. AES-NI hardware. | Tiêu chuẩn vàng #1 |
| Twofish | 1998 | 128-bit / 256-bit | Feistel-like, key-dependent S-box, MDS, 16 vòng. Không patent. AES finalist. | An toàn, ít dùng (AES thắng) |
| Camellia | 2000 | 128-bit / 128,192,256-bit | Feistel 18/24 vòng, S-box 8→8, FL/FL⁻¹ layer. ISO/IEC 18033-3. Nhật/Ảo. | An toàn, tùy chọn TLS |
| ChaCha20 | 2008 | Stream / 256-bit key | ARX (Add-Rotate-XOR), 20 vòng, 512-bit state. Không S-box, constant-time tự nhiên. | Tiêu chuẩn #2 (TLS 1.3, WireGuard) |
2. Bất đối xứng (Asymmetric / Public-Key Encryption)
| Thuật toán | Cơ sở toán học | Key Size | Dùng cho | Trạng thái 2024 |
|---|---|---|---|---|
| RSA | Integer Factorization | 2048/3072/4096-bit | KEM (OAEP), Signature (PSS), Cert | Vẫn dùng rộng, chậm, key lớn |
| ECDH / ECIES | Elliptic Curve DLP | P-256, P-384, Curve25519 | Key agreement, Hybrid encryption | Tiêu chuẩn hiện tại |
| X25519 (ECDH Curve25519) | Montgomery Curve | 256-bit | Key exchange (TLS 1.3, Signal, WireGuard) | Khuyên dùng #1 ECC |
| Kyber (ML-KEM) | Module-LWE (Lattice) | 768 (NIST Level 3) | Post-Quantum KEM | NIST PQC Standard 2024 |
3. Hybrid Encryption (Kết hợp) — Mô hình thực tế
# HPKE (RFC 9180) - Hybrid Public Key Encryption
KEM: X25519 / Kyber768 / X25519Kyber768 (hybrid)
KDF: HKDF-SHA256
AEAD: AES-256-GCM / ChaCha20-Poly1305
# TLS 1.3 Handshake
ECDHE (X25519) → Shared Secret → HKDF → Traffic Keys (AES-GCM/ChaCha20-Poly1305)
4. Chế độ mã hóa (Modes) — Quan trọng như thuật toán
- AEAD (Authenticated Encryption with Associated Data) — BẮT BUỘC: AES-GCM, ChaCha20-Poly1305, AES-CCM, AES-OCB, XChaCha20-Poly1305.
- Disk Encryption: AES-XTS (IEEE 1619) — tweakable, random access, no expansion.
- Cấm: ECB, CBC không MAC, CTR không MAC, OFB, CFB, RC4, DES, 3DES (cho mới).
5. SSL/TLS & End-to-End Encryption
- TLS 1.3: Chỉ hỗ trợ AEAD (AES-GCM, ChaCha20-Poly1305). Forward secrecy bắt buộc (ECDHE). 0-RTT có rủi ro replay.
- E2EE (End-to-End Encryption): Chỉ sender/recipient có khóa (Signal Double Ratchet, MLS, PGP, age, rage). Provider không giải mã được.
6. Lựa chọn khuyến nghị (Decision Matrix 2024)
Use Case | Recommended
----------------------------|--------------------------------------
General data encryption | AES-256-GCM (HW) / ChaCha20-Poly1305 (SW) / XChaCha20-Poly1305
Disk / Database encryption | AES-256-XTS + integrity layer (dm-verity/fsverity)
Key exchange (classical) | X25519 (ECDHE)
Key exchange (PQC hybrid) | X25519Kyber768 (hybrid KEM)
Digital signature | Ed25519 (classical) / Dilithium-3 (PQC hybrid)
Password hashing | Argon2id (t=3, m=64MB, p=4) / bcrypt(cost=12)
File integrity / checksum | SHA-256 (crypto) / xxHash / BLAKE3 (non-crypto speed)
Thư viện an toàn: libsodium, Tink (Google), OpenSSL 3.0+, BoringSSL, AWS-LC, ring (Rust), Go crypto, .NET System.Security.Cryptography.