Mã hóa chuyển plaintext → ciphertext bằng thuật toán E(K, P) = C. Giải mã: D(K, C) = P. Quy trình cốt lõi:
1. Đối xứng (Symmetric Encryption)
Một khóa K dùng chung cho enc/dec. Ví dụ: AES-GCM (khóa 128/192/256-bit).
Sender: C = AES-GCM-Encrypt(K, P, nonce, AAD) → (C, tag)
Receiver: P = AES-GCM-Decrypt(K, C, nonce, AAD, tag) → P hoặc FAIL
- Nonce (IV) phải duy nhất cho mỗi (K, nonce) pair.
- AAD (Additional Authenticated Data): metadata không mã hóa nhưng được xác thực.
- Tag: xác thực toàn vẹn + nguồn gốc.
2. Bất đối xứng (Asymmetric / Public-key Encryption)
Cặp khóa (PK, SK). PK công khai, SK bí mật.
- Key Encapsulation (KEM): PK → đóng gói khóa đối xứng ngẫu nhiên K_sym. (RSA-OAEP, ECIES, Kyber).
- Data Encapsulation (DEM): K_sym → AES-GCM mã hóa dữ liệu lớn.
- Hybrid Encryption: Kết hợp KEM + DEM (tiêu chuẩn TLS 1.3, HPKE RFC 9180).
3. Quy trình thực tế (Ví dụ TLS 1.3)
- ClientHello: hỗ trợ cipher suite, key share (ECDHE).
- ServerHello: chọn suite, key share, certificate (RSA/ECDSA).
- Xác thực certificate chain (CA tin cậy).
- Key derivation: HKDF-Extract/Expand từ shared secret ECDHE → traffic keys.
- Application data: mã hóa bằng AES-256-GCM hoặc ChaCha20-Poly1305 với record sequence number làm nonce.
4. Quản lý khóa (Key Lifecycle)
- Sinh: CSPRNG (hardware RNG, /dev/urandom, HSM).
- Phân phối: KEM, key agreement (ECDH), hoặc out-of-band.
- Lưu trữ: HSM, KMS, vault (HashiCorp Vault, AWS KMS, Azure Key Vault).
- Xoay vòng (Rotation): Định kỳ, sau sự kiện bảo mật, khi nhân viên nghỉ.
- Hủy/Destroy: Zeroize, revoke certificate.
5. Thiết bị di động / Portable
Laptop, USB, phone: Full-disk encryption (BitLocker, FileVault, LUKS, Android/iOS FBE) — bảo vệ dữ liệu at rest khi thiết bị mất/móc.
Lưu ý quan trọng: Mã hóa không tự bảo vệ chính nó. Cần: triển khai đúng thư viện (libsodium, OpenSSL, BoringSSL), constant-time, audit code, quản lý khóa chặt chẽ, monitoring.