ภาพรวมของ DES
มาตรฐานการเข้ารหัสข้อมูล (DES) ใช้อัลกอริทึมบล็อกไซเฟอร์ที่ประมวลผลข้อมูลในบล็อกขนาด 64 บิต โดยใช้โครงสร้างไฟสเทล (Feistel) ซึ่งประกอบด้วย 16 รอบ การเข้ารหัสที่เหมือนกันทุกรอบ
ขั้นตอนหลักในแต่ละรอบ
แต่ละรอบของ DES ประกอบด้วยขั้นตอนหลัก 4 ขั้นตอน ดังนี้
1. การแปลงกุญแจ (Key Transformation)
- กุญแจเริ่มต้น 64 บิต จะถูกตัดให้เหลือ 56 บิต โดยการนำบิตที่ 8, 16, 24, 32, 40, 48, 56, 64 ออก (ใช้เป็นบิตเช็คพาริตี้)
- กุญแจ 56 บิต จะถูกแบ่งเป็น 2 ส่วน ครึ่งละ 28 บิต
- แต่ละครึ่งจะถูกเลื่อนวนซ้าย (Circular Left Shift) ตามตารางกำหนด:
รอบที่ 1, 2, 9, 16 เลื่อน 1 บิต | รอบอื่นๆ เลื่อน 2 บิต - จาก 56 บิตที่เลื่อนแล้ว จะผ่านการบีบอัด/เรียงลำดับ (Compression Permutation) เพื่อสร้างกุญแจย่อย (Subkey) ขนาด 48 บิต สำหรับแต่ละรอบ
2. การเรียงลำดับขยาย (Expansion Permutation)
- ข้อความต้นฉบับ 64 บิต หลังการเรียงลำดับเริ่มต้น (IP) จะถูกแบ่งเป็น Left Plain Text (LPT) 32 บิต และ Right Plain Text (RPT) 32 บิต
- RPT จะถูกขยายจาก 32 บิต เป็น 48 บิต โดยการทำซ้ำบิตบางส่วน ตามตาราง E-box
- จุดประสงค์: ทำให้ขนาดข้อมูลเท่ากับกุญแจย่อย 48 บิต เพื่อทำ XOR ได้
3. การแทนที่ S-box (S-box Substitution)
- ผลลัพธ์ 48 บิตจาก XOR (ระหว่าง RPT ที่ขยายแล้วกับกุญแจย่อย) จะถูกแบ่งเป็น 8 ส่วน ส่วนละ 6 บิต
- แต่ละส่วน 6 บิต จะเข้าสู่ S-box (มีทั้งหมด 8 ตัว) ซึ่งแต่ละตัวมีตารางแทนที่ 4 แถว × 16 คอลัมน์
- บิตที่ 1 และ 6 กำหนดแถว (0-3), บิตที่ 2-5 กำหนดคอลัมน์ (0-15)
- แต่ละ S-box ให้ผลลัพธ์ 4 บิต รวมเป็น 32 บิต
- นี่คือส่วนที่ให้ความสับสน (Confusion) ในระบบ
4. การเรียงลำดับ P-box (P-box Permutation)
- เอา 32 บิตจาก S-box ผ่านการเรียงลำดับคงที่ (Fixed Permutation) ตามตาราง P-box
- ไม่มีการขยายหรือบีบอัด แค่สลับตำแหน่งบิตเท่านั้น
- ให้การกระจาย (Diffusion) ให้บิตหนึ่งบิตส่งผลต่อหลายบิตในรอบถัดไป
5. การ XOR และสลับ (XOR and Swap)
- นำ LPT เดิม (32 บิต) มา XOR กับผลลัพธ์จาก P-box (32 บิต) → ได้ RPT ใหม่
- RPT เดิมจะกลายเป็น LPT ใหม่ (Swap)
- ขั้นตอนนี้ทำซ้ำ 16 รอบ
สรุป
DES ใช้ 16 รอบการเข้ารหัส แต่ละรอบประกอบด้วยการแปลงกุญแจ, การขยายบิต, การแทนที่ด้วย S-box, การเรียงลำดับ P-box และการ XOR พร้อมสลับครึ่งบล็อก โครงสร้างนี้ให้ความปลอดภัยผ่านการสับสน (Confusion) และการกระจาย (Diffusion) ตามหลักการของ Claude Shannon