Double DES คืออะไร?
DES: Symmetric Key Block Cipher Input: 64-bit Plaintext, 56-bit Key Output: 64-bit Ciphertext ประกอบ P-boxes (Transpose) และ S-boxes (Substitute) Feistel Block Cipher (LUCIFER) 16 รอบ Key ต่างกันทุกรอบ เรียนรู้ DES เพราะเป็น Foundation ของ Encryption Algorithms ปัจจุบัน (เร็วกว่า DES มาก)
การทำงาน Double DES
ใช้ 2 Instance ของ DES บน Plaintext เดียวกัน แต่ละ Instance ใช้ Key ต่างกัน (K1, K2) เข้ารหัส: Plaintext → DES(K1) → Encrypted Text → DES(K2) → Final Ciphertext ถอดรหัส: Ciphertext → DES⁻¹(K2) → Singly Encrypted → DES⁻¹(K1) → Plaintext
Key Space Analysis
- 1-bit Key: 2 Keys (0,1)
- 2-bit Key: 4 Keys (00,01,10,11)
- n-bit Key: 2ⁿ Operations สำหรับ Brute-force
- 2 Keys n-bit: 2²ⁿ Attempts
- Double DES: Key Search (2²ˣ⁵⁶) = 2¹¹² Keys
Meet-in-the-middle Attack
Double DES นำเสนอ Meet-in-the-middle Attack: Encrypt จากปลายหนึ่ง, Decrypt จากอีกปลาย, Meet ในกลาง โจมตีรู้ P (Plaintext) และ C (Ciphertext) คำนวณ:
- T = Eₖ₁(P) (Encrypt P ด้วย K1)
- C = Eₖ₂(T) = Eₖ₂(Eₖ₁(P)) (Encrypt T ด้วย K2 = Final Ciphertext)
โจมตีสร้างตาราง (T, K1) จากทุก K1 แล้วคำนวณ T' = Dₖ₂(C) จากทุก K2 หา Match ระหว่าง T และ T' → ได้ K1, K2 Complexity: 2⁵⁶ Operations + Storage แทน 2¹¹²