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

ModeParallel EncParallel DecAuthenticatePaddingVerdict
ECBKHÔNG DÙNG
CBCLegacy
CTRKhôngChỉ kết hợp MAC
GCM✓ AEADKhôngDefault TLS 1.3
ChaCha20-Poly1305✓ AEADKhôngMobile/IoT