Double DES และช่องโหว่
Double DES เข้ารหัส 2 รอบ: C = E_{K2}(E_{K1}(P)) กุญแจรวม 112 บิต คาดว่าจะแข็งแกร่ง 2¹¹² แต่...
หลักการ Meet-in-the-Middle (MitM) Attack
แนวคิด: โจมตีจากทั้ง 2 ด้าน พบกันกลาง ลดความซับซ้อนจาก 2¹¹² → ~2⁵⁷
ขั้นตอนการโจมตี
- โจมตีมี Known Plaintext-Ciphertext Pair (P, C) อย่างน้อย 1 คู่
- Forward (Encryption): ลองทุกค่า K1 ที่เป็นไปได้ (2⁵⁶ ค่า) คำนวณ M = E_{K1}(P) เก็บคู่ (M, K1) ในตารางแฮช
- Backward (Decryption): ลองทุกค่า K2 ที่เป็นไปได้ (2⁵⁶ ค่า) คำนวณ M' = D_{K2}(C) ตรวจสอบว่า M' อยู่ในตารางหรือไม่
- หากพบ M' = M → (K1, K2) เป็นกุญแจที่ถูกต้อง (Candidate)
- ตรวจสอบด้วยคู่ (P', C') เพิ่มเติม เพื่อกรอง False Positives
การวิเคราะห์ความซับซ้อน
| มิติ | Brute Force Double DES | Meet-in-the-Middle |
|---|---|---|
| Time Complexity | 2¹¹² | 2⁵⁷ (≈ 2⁵⁶ enc + 2⁵⁶ dec) |
| Space Complexity | O(1) | 2⁵⁶ entries (ตารางแฮช M → K1) |
| Data Required | 1 Known Pair | 1-2 Known Pairs |