Design Issues ของ DES
DES: Block Cipher Plaintext 64-bit → Ciphertext Key 48-bit Symmetric Key Algorithm ออกแบบโดย IBM 1994 (หมายเหตุ: จริงคือ 1970s) ผ่านการทดสอบบางอย่าง แต่มี Design Issues:
1. S-Boxes (Substitution Boxes)
รับ Input 48-bit จาก XOR (Compressed Key + Expanded RPT) → Output 32-bit ด้วย Substitution Technique ใช้ 8 S-boxes คุณสมบัติ:
- แต่ละ Row: Permutation ของค่า 0-15
- Non-linear: Output ไม่ใช่ Affine Transformation ของ Input
- เปลี่ยน 1 บิต Input → Output เปลี่ยน ≥ 2 บิต
- Input ต่างกันเฉพาะ Middle 2 Bits (3,4) → Output ต่างกัน ≥ 2 บิต: S(x) ⊕ S(x⊕001100) ≥ 2 bits
- Input ต่างกัน First 2 Bits (1,2) ตรงกัน Last 2 Bits (5,6) → Output ต้องต่างกัน: S(x) ≠ S(x⊕11bc00)
2. D-Boxes (Permutation Boxes)
คล้าย Transposition Ciphers คุณสมบัติ:
- แต่ละ S-box Input มาจาก Output ของ S-box อื่น (รอบก่อน)
- ไม่มี Input ของ S-box มาจาก Output ของ S-box เดียวกัน (รอบก่อน)
- 4 Output จาก S-box → 6 S-boxes ต่างกัน (รอบถัดไป)
- ไม่มี 2 Output Bits จาก S-box เดียวไป S-box เดียวกัน (รอบถัดไป)
- แต่ละ S-box: 2 Output Bits → First/Last 2 Bits ของ S-box รอบถัดไป อีก 2 Bits → Middle Bits ของ S-box รอบถัดไป
3. Number of Rounds (จำนวนรอบ)
DES ใช้ 16 รอบ Feistel Ciphers พิสูจน์แล้ว: หลัง 8 รอบ Ciphertext แต่ละบิต = Function ของ Plaintext ทุกบิตและ Key ทุกบิต Ciphertext = Random Function ของ Plaintext/Key อย่างเข้มข้น → 8 รอบควรพอ แต่ใช้ 16 รอบเพื่อ Safety Margin