บทบาทของ S-boxes ใน DES
DES เป็น Symmetric-key Block Cipher มาตรฐานจาก NIST (FIPS 46, มกราคม 1977) NIST กำหนด DES เป็นมาตรฐานสำหรับ Software ไม่分类 DES เป็น Block Cipher Symmetric ที่ใช้กว้างที่สุด Block Size 64 บิต Key 56 บิต (ตัด Parity 8 บิตจาก 64 บิต) เป็น Feistel Cipher 16 รอบ
กระบวนการเข้ารหัส
Block → Initial Permutation (IP) → Key-dependent Computation → Inverse Initial Permutation (IP⁻¹) Permutation: ย้ายตำแหน่ง j → k Key-dependent Computation แสดงได้ด้วย Function f (Cipher Function) และ Function KS (Key Schedule)
บทบาท S-boxes ใน Function F
Substitution ใช้กลุ่ม S-boxes 8 ตัว แต่ละตัวรับ Input 6 บิต → Output 4 บิต:
- บิตแรกและสุดท้ายของ Input → สร้างเลข Binary 2 บิต เลือก 1 ใน 4 แถว (Row) ในตาราง Si
- บิตกลาง 4 บิต → เลือก 1 ใน 16 คอลัมน์ (Column)
- ค่าทศนิยมในเซลล์ที่เลือก → แปลงเป็น Binary 4 บิต = Output
- ตัวอย่าง: S1, Input 011001 → Row 01 (1), Column 1100 (12) → ค่า 9 → Output 1001
หลักการออกแบบ S-boxes
- แต่ละ S-box: Input 6 บิต, Output 4 บิต
- Output Bit ไม่ควรใกล้เคียง Linear Function ของ Input Bits (S-boxes = ส่วน Non-linear 唯一ของ DES เป็นจุดแข็ง)
- แต่ละ Row ของ S-box ต้องมี Output ทุกค่าที่เป็นไปได้ (Randomize Output)
- Input ต่างกัน 1 บิต → Output ต้องต่างกัน ≥ 2 บิต
- Input ต่างกันเฉพาะบิตกลาง 2 บิต → Output ต่างกัน ≥ 2 บิต
- Input ต่างกันบิตแรก 2 บิต ตรงกันบิตสุดท้าย 2 บิต → Output ต้องต่างกัน