Confusion (การสับสน) หลักการสำคัญในการออกแบบอัลกอริทึมเข้ารหัส
Confusion เป็นหนึ่งในสองหลักการพื้นฐานของ Cryptography (อีกหนึ่งคือ Diffusion) ที่ Claude Shannon เสนอในปี 1945 วัตถุประสงค์คือทำให้ความสัมพันธ์ระหว่าง Ciphertext (ข้อความเข้ารหัส) และ Key (คีย์) ซับซ้อนยากที่สุด จนโจมตีไม่สามารถสรุปคีย์จาก Ciphertext ได้
กลไกการทำงาน
- ใช้เทคนิค Substitution (การแทนที่) แทนค่าบิต/ไบต์หนึ่งด้วยอีกค่าหนึ่งตามตาราง (S-Box / Substitution Box)
- S-Box ต้องมีคุณสมบัติ: Non-linearity, Strict Avalanche Criterion (SAC), Bit Independence Criterion (BIC)
- การเปลี่ยน 1 บิตของคีย์ ควรส่งผลให้ หลายบิตของ Ciphertext เปลี่ยนไป (Ideal: ทุกบิตเปลี่ยนด้วยความน่าจะเป็น 50%)
Confusion vs Diffusion
| คุณสมบัติ | Confusion | Diffusion |
|---|---|---|
| เป้าหมาย | ซ่อนความสัมพันธ์ Ciphertext-Key | กระจายสถิติ Plaintext ทั่ว Ciphertext |
| เทคนิคหลัก | Substitution (S-Box) | Permutation / Linear Transformation (P-Box, MixColumns, ShiftRows) |
| ผลต่อ Ciphertext | ทำให้ Ciphertext ดูสุ่ม ไม่เกี่ยวข้องกับ Key | ทำให้ 1 บิต Plaintext ส่งผลหลายบิต Ciphertext |
| ใช้ใน | Block Cipher (หลัก) | Block Cipher และ Stream Cipher |
ตัวอย่างในอัลกอริทึมจริง
- AES:
SubBytesstep ใช้ S-Box 1 ไบต์ → 1 ไบต์ (Non-linear) = Confusion หลัก - DES: 8 S-Boxes (6-bit → 4-bit) ในฟังก์ชัน Feistel = Confusion
- ChaCha20: ARX (Add-Rotate-XOR) rounds ทำให้เกิด Confusion และ Diffusion พร้อมกัน
- Stream Cipher: ใช้ Confusion เป็นหลัก (Keystream Generation) Diffusion น้อย/ไม่มี
Product Cipher: รวม Confusion + Diffusion
อัลกอริทึมสมัยใหม่ (AES, DES) ใช้ Product Cipher คือ สลับรอบ (Rounds) ระหว่าง:
- Confusion Layer (Substitution/S-Box)
- Diffusion Layer (Permutation/Linear Mixing)
ทำซ้ำหลายรอบ (AES-128: 10 รอบ, AES-256: 14 รอบ) เพื่อให้ได้ Avalanche Effect ที่แข็งแกร่ง
การโจมตีที่เกี่ยวข้องกับ Confusion
- Linear Cryptanalysis: หาความสัมพันธ์เชิงเส้นระหว่าง Plaintext, Ciphertext, Key (S-Box ที่ดีต้องทนทาน)
- Differential Cryptanalysis: ศึกษาความแตกต่างของ Input/Output ผ่าน S-Box
- Side-channel Attacks: Timing, Power, EM การทำงานของ S-Box ในฮาร์ดแวร์/ซอฟต์แวร์
สรุป
Confusion คือ "การทำให้ Key และ Ciphertext ไม่มีความสัมพันธ์ที่เข้าใจง่าย" ผ่าน Substitution/Non-linear Transformation เป็นหัวใจของ Block Cipher ทำงานคู่กับ Diffusion เพื่อสร้าง Cipher ที่มั่นคง