Modes of Operation
1. ECB-Penguin — tại sao ECB tệ
Encrypt cùng hình ảnh 32×32 pixel bằng ECB, CBC và CTR. ECB: block giống → ciphertext giống → hình dạng lộ ra. CBC/CTR: trông như nhiễu ngẫu nhiên.
Original (Tux-style)
ECB — pattern leak!
CBC — random-looking
CTR — random-looking
⚠ ECB: bất kỳ 2 block (16 byte) plaintext giống nhau → 2 block ciphertext giống nhau. KHÔNG BAO GIỜ dùng ECB cho dữ liệu thực.
2. CBC chaining & bit-flip attack
Encrypt "Transfer $0100 to Bob" (3 block). Click vào byte trong ciphertext để flip bit và xem ảnh hưởng lên plaintext giải mã.
Ciphertext (click byte để flip)
Chưa encrypt. Nhấn "Encrypt với CBC" trước.
Plaintext sau khi decrypt
3. CTR bit-flip attack
Kẻ tấn công biết plaintext có "$0100" ở vị trí 8. Nhấn nút để xem cách flip ciphertext thay đổi plaintext thành "$9999".
⚠ CTR không authenticate. Bất kỳ bit-flip nào trong ciphertext đều ảnh hưởng trực tiếp plaintext. Dùng GCM (AEAD) để chống.
4. GCM — xác thực chống tamper
GCM sinh authentication tag 128-bit. Bất kỳ thay đổi nào trong ciphertext → tag không khớp → reject.
5. Bảng so sánh modes
| Mode | Parallel Enc | Parallel Dec | Authenticate | Padding | Verdict |
|---|---|---|---|---|---|
| ECB | ✓ | ✓ | ✗ | Có | KHÔNG DÙNG |
| CBC | ✗ | ✓ | ✗ | Có | Legacy |
| CTR | ✓ | ✓ | ✗ | Không | Chỉ kết hợp MAC |
| GCM | ✓ | ✓ | ✓ AEAD | Không | Default TLS 1.3 |
| ChaCha20-Poly1305 | ✓ | ✓ | ✓ AEAD | Không | Mobile/IoT |