
1. Hashing
1.1. Hashing Passwords
1.1.1. Mật khẩu không được lưu trực tiếp
1.1.2. Hash là không thể đảo ngược
1.2. Rainbow Tables
1.2.1. Tra bảng hash ngược
1.2.2. Rủi ro khi hash không đủ mạnh
1.3. Salting
1.3.1. Thêm chuỗi ngẫu nhiên vào password
1.3.2. Giúp hash không trùng nhau
1.4. Hashing Files
1.4.1. Kiểm tra tính toàn vẹn file
1.4.2. So sánh hash gốc và hash sau khi tải
1.5. Hashing Algorithms
1.5.1. MD5, SHA-1 (không còn an toàn)
1.5.2. SHA-256 (phổ biến)
1.5.3. bcrypt, Argon2 (dành cho mật khẩu)
2. Symmetric Encryption
2.1. Khái niệm: Mã hóa & giải mã dùng cùng 1 khóa
2.2. Ứng dụng: Mã hóa dữ liệu, file, giao tiếp nội bộ
2.3. Hardware Key Storage
2.3.1. HSM
2.3.2. TPM chip
2.4. Algorithms
2.4.1. AES-128, AES-256
2.4.2. ChaCha20
3. Asymmetric Encryption
3.1. Khái niệm
3.1.1. Public key → mã hóa
3.1.2. Private key → giải mã
3.2. Ứng dụng
3.2.1. Trao đổi khóa, bảo mật email, HTTPS
3.3. Signing
3.3.1. Dùng private key để ký
3.3.2. Public key để verify
3.4. Certificate Authorities (CA)
3.4.1. Cấp phát và xác minh chứng chỉ
3.4.2. Tổ chức trung gian tin cậy
4. SSL/TLS
4.1. Vai trò: Mã hóa giao tiếp Internet
4.2. TLS Handshake
4.2.1. Client Hello → Server Cert
4.2.2. Key Exchange
4.2.3. Giao tiếp mã hóa bắt đầu
4.3. Algorithms
4.3.1. Encryption: AES, ChaCha20, RSA, ECC
4.3.2. Signing: RSA-SHA256, ECDSA