ความเข้าใจเกี่ยวกับ Diffusion และ Confusion ในทฤษฎีการเข้ารหัส
ในทฤษฎีการเข้ารหัส (Cryptography) Confusion และ Diffusion เป็นสองหลักการสำคัญที่ Claude Shannon เสนอไว้ในปี 1945 เพื่อทำให้อัลกอริทึมเข้ารหัสมั่นคงต่อการวิเคราะห์ทางสถิติและการโจมตีต่างๆ
Confusion (การสับสน)
มีวัตถุประสงค์เพื่อทำให้ความสัมพันธ์ระหว่าง Ciphertext (ข้อความเข้ารหัส) และ Key (คีย์) ซับซ้อนและยากที่จะสรุปได้ ใช้เทคนิค Substitution (การแทนที่) เช่น S-Box ใน AES หากเปลี่ยน 1 บิตของคีย์ จะส่งผลให้ Ciphertext เปลี่ยนไปส่วนใหญ่หรือทั้งหมด
Diffusion (การกระจาย)
มีวัตถุประสงค์เพื่อกระจายสถิติของ Plaintext (ข้อความต้นฉบับ) ไปทั่วทั้ง Ciphertext ใช้เทคนิค Permutation/Transposition (การสลับตำแหน่ง) เช่น ShiftRows และ MixColumns ใน AES ทำให้การเปลี่ยน 1 บิตของ Plaintext ส่งผลหลายบิตของ Ciphertext (Avalanche Effect)
การเปรียบเทียบสรุป
| คุณสมบัติ | Confusion | Diffusion |
|---|---|---|
| เป้าหมาย | ซ่อนความสัมพันธ์ Ciphertext-Key | กระจายสถิติ Plaintext |
| เทคนิคหลัก | Substitution (S-Box) | Permutation (P-Box, ShiftRows, MixColumns) |
| ใช้ใน | Block Cipher เท่านั้น | Block Cipher และ Stream Cipher |
| ผลลัพธ์ | เพิ่มความคลุมเครือ (Vagueness) | เพิ่มความซ้ำซ้อน (Redundancy) |
การประยุกต์ในอัลกอริทึมสมัยใหม่
- AES: ใช้ SubBytes (Confusion) + ShiftRows/MixColumns (Diffusion) ซ้ำหลายรอบ (Rounds)
- DES: ใช้ S-Box (Confusion) + P-Box/Permutation (Diffusion)
- Product Cipher: สลับระหว่างรอบ Substitution และ Transposition เพื่อให้ได้ทั้ง Confusion และ Diffusion
หลักการ Strict Avalanche Criterion (SAC)
Diffusion ที่ดีควรทำให้การพลิก 1 บิตของ Input ส่งผลให้แต่ละบิตของ Output เปลี่ยนด้วยความน่าจะเป็น 50% นี่คือเกณฑ์มาตรฐานในการประเมินคุณภาพ Diffusion