ส่วนประกอบของฟังก์ชันรอบ 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 จึงสำคัญที่สุด?
- Non-linearity เพียงแหล่งเดียว: ทุกส่วนอื่น (E-box, P-box, XOR, Swap) เป็น Linear → ถ้าไม่มี S-box DES จะเป็น Linear Cipher แตกได้ง่ายด้วย Linear Algebra
- Security Margin: การออกแบบ S-box กำหนดความทนทานต่อ Differential/Linear Cryptanalysis
- Key Mixing ผ่าน S-box: กุญแจผสมก่อนเข้าสู่ S-box (XOR) → Non-linearity ขึ้นกับกุญแจ
- 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