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

ส่วนประกอบที่สำคัญที่สุดของฟังก์ชันรอบ DES คืออะไร?

ส่วนประกอบของฟังก์ชันรอบ DES (Round Function f)

ฟังก์ชัน f(R, K) รับ R 32 บิต + กุญแจย่อย K 48 บิต → ให้ผลลัพธ์ 32 บิต ประกอบด้วย 4 ขั้นตอน:

1. Expansion Permutation (E-box)

  • ขยาย 32 บิต → 48 บิต (ทำซ้ำบิต 16 ตัว)
  • จุดประสงค์: ทำให้ขนาดเท่ากับกุญแจย่อย เพื่อ XOR
  • เป็น Linear Operation (ไม่เพิ่ม Non-linearity)

2. Key Mixing (XOR)

  • XOR 48 บิต (Expanded R) กับ Subkey 48 บิต
  • จุดเดียวที่กุญแจเข้ามาผสมกับข้อมูลในรอบ

3. S-box Substitution (S-boxes) ⭐ สำคัญที่สุด

  • 8 S-boxes, แต่ละตัว: 6 บิตเข้า → 4 บิตออก
  • Non-linear Component เพียงอย่างเดียวใน DES ทั้งหมด
  • ให้ Confusion (ความสับสน) ทำให้ความสัมพันธ์ Plaintext/Key/Ciphertext ซับซ้อน
  • ออกแบบโดย IBM/NSA ทน Differential & Linear Cryptanalysis
  • มีคุณสมบัติพิเศษ: P(ΔX → ΔY) ≤ 1/4 (Differential Uniformity)

4. P-box Permutation (P-box)

  • เรียงลำดับ 32 บิตจาก S-boxes
  • ให้ Diffusion (การกระจาย) กระจายผลของ S-box ไปทั่วบล็อก
  • Linear Operation

ทำไม S-box จึงสำคัญที่สุด?

  1. Non-linearity เพียงแหล่งเดียว: ทุกส่วนอื่น (E-box, P-box, XOR, Swap) เป็น Linear → ถ้าไม่มี S-box DES จะเป็น Linear Cipher แตกได้ง่ายด้วย Linear Algebra
  2. Security Margin: การออกแบบ S-box กำหนดความทนทานต่อ Differential/Linear Cryptanalysis
  3. Key Mixing ผ่าน S-box: กุญแจผสมก่อนเข้าสู่ S-box (XOR) → Non-linearity ขึ้นกับกุญแจ
  4. Avlanche Effect: เปลี่ยน 1 บิต Input → ประมาณครึ่งบิต Output เปลี่ยน (หลัง 3-4 รอบ)

ข้อเท็จจริงทางประวัติศาสตร์

  • NSA แก้ไข S-boxes ของ IBM ให้ทน Differential Cryptanalysis (ซึ่งยังไม่พบในหมู่ชนช่วงนั้น)
  • ทำให้ DES ทนทานต่อ Differential Cryptanalysis (ค้นพบ 1990) ได้ดีกว่าที่คาด
  • แต่ S-boxes มี Weaknesses เล็กน้อย (Fixed Points, Complement Properties)

สรุป

S-box Substitution คือหัวใจความปลอดภัยของ DES เป็น Non-linear Layer เพียงอย่างเดียว ให้ Confusion ทน Cryptanalysis อื่นๆ เป็น Linear Layer ให้ Diffusion และ Key Mixing