Diffusion (Sự khuếch tán) là gì?
Trong mật mã học (Cryptography), Diffusion là đặc tính: một thay đổi nhỏ ở plaintext (bản rõ) hoặc key làm thay đổi nhiều bit ở ciphertext (bản mã). Mục đích: làm rải rác sự thống kê của plaintext ra toàn bộ ciphertext, khiến kẻ tấn công không thể suy ra plaintext/key từ phân tích thống kê ciphertext.
Diffusion vs Confusion (Sự nhầm lẫn) – Cặp song sinh của Shannon
| Thuộc tính | Diffusion (Khuếch tán) | Confusion (Nhầm lẫn) |
|---|---|---|
| Mục tiêu | Làm rải rác cấu trúc thống kê plaintext | Làm phức tạp mối quan hệ Key ↔ Ciphertext |
| Thao tác | Hoán vị (Permutation), Trộn bit/byte, Matrix multiplication | Thay thế (Substitution), S-box, XOR với key schedule |
| Hiệu ứng | 1 bit plaintext đổi → nhiều bit ciphertext đổi (Avalanche Effect) | 1 bit key đổi → nhiều bit ciphertext đổi |
| Ví dụ thuật toán | ShiftRows + MixColumns (AES), P-box (DES), Bit permutation | SubBytes (AES S-box), S-box (DES), Key XOR |
Diffusion trong AES (Advanced Encryption Standard)
AES đạt Diffusion tối ưu (Optimal Diffusion) nhờ 2 bước trong mỗi round:
- ShiftRows: Dịch vòng các hàng trong ma trận State 4x4 byte – lan truyền byte theo cột.
- MixColumns: Nhân ma trận State với ma trận MDS (Maximum Distance Separable) cố định trên Galois Field GF(2⁸).
Branch Number = 5 (tối đa cho ma trận 4x4) → 1 byte input đổi → ít nhất 4 byte output đổi (tổng 5). Sau 2 round: diffusion toàn bộ 16 byte (128-bit block).
Diffusion trong DES / 3DES
- Initial Permutation (IP) & Final Permutation (FP): Hoán vị bit cố định – diffusion yếu.
- Expansion Permutation (E-box): Mở rộng 32-bit → 48-bit – lan truyền bit.
- P-box (Permutation Box) sau S-box: Hoán vị 32-bit – diffusion chính.
- Cần 16 rounds để đạt diffusion tốt (AES chỉ cần 2-3 rounds).
Product Cipher (Mật mã tích) = Confusion + Diffusion
Claude Shannon (1949) chứng minh: Mật mã an toàn = xen kẽ Substitution (Confusion) + Permutation (Diffusion) qua nhiều Round.
- Substitution (S-box) → Confusion.
- Permutation (P-box, MixColumns, ShiftRows) → Diffusion.
- Key Schedule → đưa key vào mỗi round.
Tiêu chuẩn Strict Avalanche Criterion (SAC): Đảo 1 bit input → mỗi bit output đổi với xác suất 50%.
Độ tối ưu Diffusion (Diffusion Optimality)
- Đo lường bằng Branch Number của ma trận tuyến tính (MixColumns).
- MDS Matrix → Branch Number tối đa = n+1 (với ma trận n×n). AES 4x4 → Branch Number = 5 (tối ưu).
- Phần cm (Hardware): MixColumns dùng lookup table / composite field arithmetic – nhanh, chống side-channel.
- Phần mềm (Software): T-table (Pre-computed) hoặc bit-sliced implementation.
Ứng dụng ngoài Block Cipher
- Hash Function (SHA-2, SHA-3, BLAKE): Compression function dùng diffusion (message expansion, permutation) để avalanche effect.
- Stream Cipher (ChaCha20): Quarter-round (ARX: Add-Rotate-XOR) cung cấp diffusion nhanh trên 512-bit state.
- KDF (HKDF, PBKDF2, Argon2): Diffusion key material qua nhiều iteration.
- TLS/SSL Record Layer: AEAD (AES-GCM, ChaCha20-Poly1305) kết hợp diffusion (AES/ChaCha) + integrity (GMAC/Poly1305).
Tóm tắt
Diffusion làm cho mỗi bit ciphertext phụ thuộc vào nhiều bit plaintext/key. Là yếu tố then chốt tạo ra Avalanche Effect, chống phân tích tuyến tính & vi phân. AES đạt diffusion tối ưu nhờ MDS Matrix trong MixColumns. Thiết kế cipher hiện đại luôn cân bằng Confusion + Diffusion qua nhiều round.