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

จุดอ่อนของมาตรฐานการเข้ารหัสข้อมูล (DES)

จุดอ่อนของ DES

1. จุดอ่อนในการออกแบบซิเฟอร์ (Cipher Design Weaknesses)

S-boxes (มี 3 จุดอ่อน)

  • S-box 4: บิตเอาต์พุต 3 ตัวสุดท้าย สามารถคำนวณได้เหมือนบิตแรก โดยรวมบิตอินพุตบางตัว
  • อินพุต 2 ค่าที่เลือกพิเศษ → ให้เอาต์พุตเหมือนกัน (Collision ใน S-box)
  • สามารถได้เอาต์พุตเดียวกันในรอบเดียว โดยเปลี่ยนบิตใน 3 S-boxes ที่ติดกัน

D-boxes / Permutation (มี 1 ความลับ 1 จุดอ่อน)

  • จุดประสงค์ของ Initial/Final Permutation ไม่ชัดเจน (ไม่เพิ่มความปลอดภัย)
  • Expansion Permutation (E-box): บิตที่ 1 และ 4 ของแต่ละ 4 บิต ถูกทำซ้ำ (Redundancy)

2. จุดอ่อนของกุญแจ (Key Weaknesses)

ขนาดกุญแจ 56 บิต (Critical)

  • Brute-force: 2⁵⁶ ≈ 7.2×10¹⁶
  • 1 ล้านกุญแจ/วินาที → >100 ปี (คอมพิวเตอร์เครื่องเดียว)
  • 1 ล้านชิปขนาน → ~20 ชั่วโมง (เป็นจริง 1998: EFF Deep Crack)
  • เครือข่าย 3500 เครื่อง → 120 วัน (1977 RSA Challenge)
  • องค์กรลับ 42,000 สมาชิก → ~10 วัน

Weak Keys (4 กุญแจจาก 2⁵⁶)

  • หลังตัดพาริตี้: เป็นทั้ง 0, ทั้ง 1, ครึ่ง 0 ครึ่ง 1
  • Round Keys ทั้ง 16 รอบ เหมือนกันทุกรอบ
  • ตัวอย่าง: กุญแจที่ทำให้ครึ่งซ้าย/ขวาเป็น 0 ทั้งหมด หรือ 0101... ซ้ำ
  • Semi-weak Keys: คู่กุญแจที่เข้ารหัส-ถอดรหัสสลับกันได้

3. จุดอ่อนอื่นๆ

  • Complement Property: E_K(P) = C → E_{K̅}(P̅) = C̅ (ลดการค้นหากุญแจครึ่งหนึ่ง)
  • Meet-in-the-Middle: Double DES แตกได้ 2⁵⁷
  • Linear Cryptanalysis (Matsui 1993): 2⁴³ Known Plaintexts
  • Differential Cryptanalysis (Biham & Shamir 1990): 2⁴⁷ Chosen Plaintexts

สรุป

DES มีจุดอ่อนร้ายแรงที่ ขนาดกุญแจ 56 บิต และ บล็อก 64 บิต จุดอ่อน S-boxes/P-boxes น่าสนใจทางทฤษฎีแต่ไม่ใช้โจมตีจริงได้ ห้ามใช้ในระบบใหม่ ต้องย้ายไป AES