Khái niệm Confusion (Sự nhầm lẫn) và Diffusion (Sự khuếch tán) trong mật mã học
Trong mật mã học, Confusion và Diffusion là hai thuộc tính cơ bản của hệ mật an toàn, được Claude Shannon đưa ra năm 1945. Chúng ngăn chặn các phương pháp phân tích mật mã thống kê.
Confusion (Sự nhầm lẫn)
Làm cho mối quan hệ giữa ciphertext (bản mã) và key (khóa) trở nên phức tạp, khó đoán. Thay đổi 1 bit trong khóa bí mật sẽ làm thay đổi hầu hết hoặc tất cả các bit trong bản mã. Đạt được bằng thuật toán thay thế (substitution).
Diffusion (Sự khuếch tán)
Làm lan tỏa cấu trúc thống kê của plaintext (bản rõ) trên toàn bộ bản mã. Thay đổi 1 bit trong bản rõ sẽ làm thay đổi nhiều bit trong bản mã, và ngược lại. Đạt được bằng thuật toán hoán vị (transposition/permutation).
So sánh Confusion và Diffusion
| Tiêu chí | Confusion | Diffusion |
|---|---|---|
| Mục đích | Che giấu mối quan hệ ciphertext - khóa | Lan tỏa sự dư thừa của plaintext trên ciphertext |
| Kỹ thuật | Substitution (Thay thế) | Transposition (Hoán vị) |
| Áp dụng | Block cipher | Block cipher & Stream cipher |
| Kết quả | Tăng độ mờ hồ | Tăng độ dư thừa |
Ví dụ điển hình
- Confusion only: One-time pad, substitution cipher
- Diffusion only: Double transposition (hoán vị kép)
- Kết hợp cả hai (Product cipher): AES, DES – xen kẽ các vòng substitution và permutation
Diffusion trong AES
Lớp diffusion của AES bao gồm ShiftRows và MixColumns. MixColumns sử dụng ma trận MDS (Maximum Distance Separable) để đạt branch number tối đa, đảm bảo tính tối ưu cho cả môi trường phần mềm và phần cứng.
Nguyên lý Avalanche (Sông đáy) chặt chẽ
Một cipher có diffusion tốt khi việc đảo 1 bit đầu vào làm thay đổi mỗi bit đầu ra với xác suất 50% (Strict Avalanche Criterion).