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

บทบาทของ S-boxes ใน DES

บทบาทของ 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 ต้องต่างกัน