Confusion (Gây nhiễu loạn) là nguyên tắc thiết kế mật mã (Claude Shannon, 1949) làm cho mối quan hệ giữa Khóa (Key) và Ciphertext trở nên phức tạp, không thể suy diễn tuyến tính hoặc đại số đơn giản. Mục tiêu: Kẻ tấn công không thể khôi phục khóa ngay cả khi có nhiều cặp plaintext-ciphertext.
Định nghĩa chính thức
Một cipher có confusion tốt nếu:
- Mỗi bit ciphertext phụ thuộc phức tạp (phi tuyến) vào nhiều bit khóa.
- Thay đổi 1 bit khóa → sự thay đổi lan tỏa, không đoán trước được trên nhiều bit ciphertext (avalanche effect wrt key).
- Không tồn tại xấp xỉ tuyến tính/đại số đơn giản liên kết Key, Plaintext, Ciphertext.
Cách đạt được Confusion
| Kỹ thuật | Cơ chế | Ví dụ |
|---|---|---|
| S-box (Substitution Box) | Lookup table phi tuyến: n-bit in → m-bit out. Non-linearity cao, low differential uniformity. | AES SubBytes (x⁻¹+affine), DES 8 S-box (6→4), PRESENT 4-bit S-box |
| Modular Addition | Cộng modulo 2ⁿ (n=32/64). Non-linear wrt XOR do carry propagation. | ChaCha20 (ARX), IDEA, RC5/RC6, BLAKE2/3 |
| Data-dependent Rotation | Số bit rotate phụ thuộc giá trị dữ liệu/khóa. | RC5, RC6 |
| Key-dependent S-box | S-box thay đổi theo khóa. | Twofish, Khufu |
| Finite Field Inversion | x ↦ x⁻¹ trên GF(2ⁿ) — mạnh nhất phi tuyến. | AES, Camellia, SHARK, Square |
Đặc tính S-box tốt (Cho Confusion)
- High Non-linearity: Khoảng cách Hamming đến mọi hàm tuyến tính / affine lớn nhất có thể. (AES 8-bit: 112 — tối đa).
- Low Differential Uniformity: Max #{x: S(x)⊕S(x⊕Δin)=Δout} nhỏ. APN (Almost Perfect Nonlinear) = 2 (tối đa cho even n). AES: 4.
- SAC (Strict Avalanche Criterion): Flip 1 input bit → mỗi output bit flip với prob ½.
- BIC (Bit Independence Criterion): Output bit changes pairwise independent.
- No Fixed Points: S(x) ≠ x ∀x. No Opposite Fixed Points: S(x) ≠ x̅.
- Algebraic Degree cao: Đa thức biểu diễn S-box bậc cao (AES: degree 7/8).
Ví dụ: AES SubBytes — Confusion Gold Standard
S-box(x) = Affine( x⁻¹ in GF(2⁸) ) # x=0 → 0
# Non-linearity = 112 (max for 8-bit)
# Differential uniformity = 4 (max 4 solutions for S(x)⊕S(x⊕a)=b)
# Algebraic degree = 7
# No fixed points, no opposite fixed points
# SAC, BIC satisfied
Confusion trong các cipher hiện đại
| Cipher | Confusion Mechanism | Đặc điểm |
|---|---|---|
| AES | SubBytes (S-box x⁻¹+affine) | Math-based, constant-time với AES-NI/bitslice |
| ChaCha20 | ARX: Add mod 2³² (carry = non-linear) | Không table, constant-time tự nhiên, side-channel resistant |
| Twofish | Key-dependent S-box (pre-computed) | Key-dependent confusion, chậm key setup |
| Camellia | S-box 8→8 (affine + inversion-like) | Feistel, FL/FL⁻¹ layer bổ sung |
| SM4 (China) | S-box 8→8 (affine + power map) | Feistel 32 vòng, S-box tương tự AES nhưng khác |
Tấn công nhắm vào Confusion
- Linear Cryptanalysis: Tìm xấp xỉ tuyến tính cho S-box/F-function → suy ra key bits. Phòng: S-box low linear bias, many rounds, good diffusion.
- Differential Cryptanalysis: Tìm differential characteristic high prob qua S-box. Phòng: Low differential uniformity.
- Algebraic Attack / Gröbner Basis: Mô hình cipher bằng hệ phương trình đa thức. Phòng: High algebraic degree, many rounds.
- Side-channel (Timing, Cache, Power): Khai thác leakage khi truy xuất S-box table. Phòng: Constant-time, bitslicing, AES-NI, masking.
- Related-Key Attack: Khai thác key schedule yếu → confusion yếu giữa round keys. Phòng: Strong key schedule (AES-128 tốt, AES-256 yếu hơn).
Kết luận
Confusion là yếu tố bắt buộc khiến ciphertext không tiết lộ thông tin khóa. Không có confusion → cipher tuyến tính → phá vỡ trivially. Thiết kế hiện đại: S-box math-based (AES) hoặc ARX (ChaCha20) + diffusion mạnh + key schedule tốt + số vòng đủ margin. Luôn verify confusion properties (LAT, DDT, algebraic degree) khi thiết kế/chọn cipher.