Cipher là gì?
Cipher (mật mã) là thuật toán toán học dùng để mã hóa (encrypt) plaintext thành ciphertext hoặc giải mã (decrypt) ngược lại. Che giấu thông tin bằng cách thay thế, hoán vị ký tự hoặc biến đổi theo quy tắc.
Hai loại mật mã chính
| Loại | Mô tả | Ví dụ |
|---|---|---|
| Symmetric (Đối xứng) | Cùng một khóa cho encrypt và decrypt | AES, DES, 3DES, ChaCha20 |
| Asymmetric (Bất đối xứng) | Khóa công khai (public) encrypt, khóa riêng (private) decrypt | RSA, ECC, Diffie-Hellman |
Cipher vs Code (Mật mã vs Mã hóa)
- Code: Thay thế từ/cụm từ bằng ký hiệu tùy ý (ví dụ: "Alpha" = "Tấn công lúc 6h")
- Cipher: Biến đổi từng bit/ky tự theo thuật toán (ví dụ: Caesar cipher dịch chuyển chữ cái)
Ví dụ cipher kinh điển
- Caesar Cipher: Dịch chuyển chữ cái n vị trí (shift=1: A→B, B→C...)
- Pigpen Cipher: Dùng ký hiệu hình học thay chữ cái
- Playfair Cipher: Mã hóa theo cặp chữ cái dùng ma trận 5x5
Ciphertext và khóa
- Ciphertext: Dữ liệu đã mã hóa, không đọc được nếu không có khóa
- Key (Khóa): Chuỗi ký tự kết hợp với thuật toán để encrypt/decrypt. Giống chìa khóa vật lý: khóa (lock) dữ liệu, chỉ người có khóa mới mở (decrypt) được
Giải mã Caesar Cipher
Trừ vị trí chữ cái ciphertext cho vị trí chữ cái key (theo bảng chữ cái). Nếu âm → cộng 26.
Ứng dụng thực tế
- TLS/SSL (HTTPS): RSA/ECDHE + AES-GCM
- VPN: AES-256, ChaCha20-Poly1305
- Disk encryption: AES-XTS
- Email encryption: PGP/GPG (RSA + AES)