Skip to content

📚 FileVault - Tài liệu Thuật toán Mật mã

Tài liệu chi tiết về tất cả các thuật toán mật mã được sử dụng trong FileVault.
Dành cho học tập, nghiên cứuphát triển.

📖 Mục lục

🔐 Symmetric - Mã hóa Đối xứng

Thuật toán sử dụng cùng một khóa cho cả mã hóa và giải mã.

Thuật toán Loại Bảo mật File
AES-GCM AEAD ⭐⭐⭐ Maximum aes-gcm.md
AES-CBC Block ⭐⭐ Strong aes-cbc.md
AES-CTR Stream ⭐⭐ Strong aes-ctr.md
AES-XTS Disk ⭐⭐⭐ Maximum aes-xts.md
ChaCha20-Poly1305 AEAD ⭐⭐⭐ Maximum chacha20-poly1305.md
Serpent-GCM AEAD ⭐⭐⭐ Maximum serpent-gcm.md
Twofish-GCM AEAD ⭐⭐⭐ Maximum twofish-gcm.md
Camellia-GCM AEAD ⭐⭐⭐ Maximum camellia-gcm.md
ARIA-GCM AEAD ⭐⭐⭐ Maximum aria-gcm.md
SM4-GCM AEAD ⭐⭐ Strong sm4-gcm.md
3DES Block ⚠️ Legacy triple-des.md

🔑 Asymmetric - Mã hóa Bất đối xứng

Thuật toán sử dụng cặp khóa public/private.

Thuật toán Loại Bảo mật File
RSA-OAEP Encryption ⭐⭐⭐ Maximum rsa.md
ECC (ECDH) Key Exchange ⭐⭐⭐ Maximum ecc.md

🛡️ PQC - Post-Quantum Cryptography

Thuật toán chống lại máy tính lượng tử (NIST Selected).

Thuật toán Loại NIST Level File
Kyber (ML-KEM) KEM Level 1-5 kyber.md
Dilithium (ML-DSA) Signature Level 2-5 dilithium.md

📚 Classical - Mật mã Cổ điển

Thuật toán giáo dục - KHÔNG an toàn cho sử dụng thực tế!

Thuật toán Loại File
Caesar Shift caesar.md
Vigenère Polyalphabetic vigenere.md
Playfair Digraph playfair.md
Hill Matrix hill.md
Substitution Monoalphabetic substitution.md

🔒 KDF - Key Derivation Functions

Hàm dẫn xuất khóa từ mật khẩu.

Thuật toán Loại File
Argon2id Memory-hard argon2.md
PBKDF2 Standard pbkdf2.md
HKDF Expand hkdf.md

#️⃣ Hash - Hàm băm

Thuật toán Output File
SHA-256/512 256/512-bit sha2.md
SHA3 256/512-bit sha3.md
BLAKE2 Variable blake2.md

🎯 Cách đọc tài liệu

Mỗi file thuật toán có cấu trúc:

  1. Tóm tắt - Giới thiệu ngắn gọn
  2. Lý thuyết - Nền tảng toán học
  3. Cách hoạt động - Step-by-step với diagram
  4. Cấu trúc dữ liệu - Key size, IV, block size
  5. Implement trong FileVault - Code thực tế
  6. Lỗ hổng & Mitigation - Bảo mật
  7. Test Vectors - Kiểm tra tính đúng đắn
  8. Ví dụ sử dụng - CLI commands
  9. Tham khảo - Links, RFCs

🔧 Build & Test

Bash
1
2
3
4
5
6
# Chạy tất cả tests
ctest --test-dir build/build/Release -j16

# Test cụ thể một thuật toán
filevault benchmark --symmetric   # Test symmetric
filevault benchmark --pqc         # Test post-quantum

📊 So sánh nhanh

AEAD Algorithms (Khuyến nghị cho mã hóa file)

Text Only
1
2
3
4
5
6
7
┌─────────────────────┬──────────┬───────────┬────────┬─────────────┐
│     Algorithm       │ Key Size │ Nonce/IV  │  Tag   │   Speed     │
├─────────────────────┼──────────┼───────────┼────────┼─────────────┤
│ AES-256-GCM         │ 256-bit  │ 96-bit    │ 128-bit│ ████████░░  │
│ ChaCha20-Poly1305   │ 256-bit  │ 96-bit    │ 128-bit│ ██████████  │
│ Serpent-256-GCM     │ 256-bit  │ 96-bit    │ 128-bit│ █████░░░░░  │
└─────────────────────┴──────────┴───────────┴────────┴─────────────┘

Security Comparison

Text Only
1
2
3
4
5
                    Classical   AES    ChaCha20   PQC (Kyber)
                    ─────────   ───    ────────   ───────────
Brute Force         Minutes     2^256  2^256      2^256
Quantum (Grover)    N/A         2^128  2^128      Still 2^256
Quantum (Shor)      N/A         N/A    N/A        Safe ✓

FileVault - Learn cryptography by doing! 🔐