Confusion (ความสับสน)
Confusion ทำให้ความสัมพันธ์ระหว่าง Key และ Cipher ซับซ้อนและกระจายที่สุด กล่าวคือ Ciphertext ไม่ให้ข้อมูลใดๆ เกี่ยวกับ Plaintext ความสัมพันธ์ระหว่างข้อมูล Ciphertext และค่า Encryption Key ต้องซับซ้อนที่สุด ทำได้โดยการกระจาย Plaintext Digit ไปหลาย Ciphertext Digits (แม้เปลี่ยน 1 บิต Plaintext)
ใน Confusion: ควรส่งผลต่อ Ciphertext ทั้งหมด ความสัมพันธ์ระหว่างข้อมูล Ciphertext และค่า Key ทำให้ซับซ้อน ทำได้โดย Substitution เป้าหมาย: ทำให้หา Key ยากแม้มี Plaintext-Ciphertext Pairs มาก แต่ละบิต Ciphertext ต้องขึ้นกับ Key ทั้งหมด และหลายบิตของ Key เปลี่ยน 1 บิต Key → Ciphertext เปลี่ยนหมด
Diffusion (การกระจาย)
Diffusion: คุณสมบัติที่ความซ้ำซ้อนทางสถิติของ Plaintext "ระเหย" ไปในสถิติของ Ciphertext Output Bits ควรขึ้นกับ Input Bits อย่างซับซ้อน: เปลี่ยน 1 บิต Plaintext → Ciphertext เปลี่ยนหมดแบบ Unpredictable/Pseudorandom
สถิติ Plaintext กระจายไปสู่ Long-range Statistics ของ Ciphertext ทำได้โดยแต่ละ Plaintext Digit ส่งผลต่อหลาย Ciphertext Digits (มักเทียบเท่ากับ แต่ละ Ciphertext Digit ขึ้นกับหลาย Plaintext Digits)
ตารางเปรียบเทียบ
| Confusion | Diffusion |
|---|---|
| ปกป้องความสัมพันธ์ระหว่าง Ciphertext และ Key | ปกป้องความสัมพันธ์ระหว่าง Ciphertext และ Plaintext |
| เปลี่ยน 1 บิต Key → หลายบิต Ciphertext เปลี่ยน | เปลี่ยน 1 สัญลักษณ์ Plaintext → หลายสัญลักษณ์ Ciphertext เปลี่ยน |
| ความสัมพันธ์ Ciphertext-Key ซับซ้อน ทำโดย Substitution | สถิติ Plaintext กระจายไปสถิติ Ciphertext ทำโดย Permutation |
| เพิ่ม Ambiguity (ความคลุมเครือ) ในผลลัพธ์ | เพิ่ม Redundancy (ความซ้ำซ้อน) ในผลลัพธ์ |
| ซ่อนความสัมพันธ์ Ciphertext-Key | ซ่อนความสัมพันธ์ Ciphertext-Plaintext |