Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ความแตกต่างระหว่าง Confusion และ Diffusion ในความปลอดภัยข้อมูล

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)

ตารางเปรียบเทียบ

ConfusionDiffusion
ปกป้องความสัมพันธ์ระหว่าง Ciphertext และ Keyปกป้องความสัมพันธ์ระหว่าง Ciphertext และ Plaintext
เปลี่ยน 1 บิต Key → หลายบิต Ciphertext เปลี่ยนเปลี่ยน 1 สัญลักษณ์ Plaintext → หลายสัญลักษณ์ Ciphertext เปลี่ยน
ความสัมพันธ์ Ciphertext-Key ซับซ้อน ทำโดย Substitutionสถิติ Plaintext กระจายไปสถิติ Ciphertext ทำโดย Permutation
เพิ่ม Ambiguity (ความคลุมเครือ) ในผลลัพธ์เพิ่ม Redundancy (ความซ้ำซ้อน) ในผลลัพธ์
ซ่อนความสัมพันธ์ Ciphertext-Keyซ่อนความสัมพันธ์ Ciphertext-Plaintext