Khái niệm Double DES
Double DES: phương pháp mã hóa dùng 2 lần DES trên cùng plaintext. Mỗi lần dùng khóa khác nhau. Dễ hiểu và triển khai.
Double DES dùng 2 khóa: k1 và k2. Mã hóa: DES(plaintext, k1) → văn bản mã trung gian → DES(văn bản mã trung gian, k2) → ciphertext cuối. Giải mã ngược chiều: giải mã bằng k2 → văn bản mã đơn → giải mã bằng k1 → plaintext gốc.
Không gian khóa và tấn công Meet-in-the-Middle
Nếu khóa n-bit → 2ⁿ khóa khả thi. Double DES dùng 2 khóa n-bit → brute-force cần 2²ⁿ phép thử. Double DES cần tìm khóa 2^(2×56) = 2¹¹² khóa.
Tấn công Meet-in-the-Middle (Gặp nhau ở giữa): Mã hóa từ một đầu, giải mã từ đầu kia, so khớp kết quả ở giữa.
Giả thiết: tin tặc biết P (plaintext block) và C (ciphertext block cuối cùng tương ứng).
Ký hiệu: T = Eₖ₁(P) [mã hóa P với khóa K1]. C = Eₖ₂(Eₖ₁(P)) [mã hóa T với khóa K2].
Tấn công: Tính Eₖ₁(P) cho mọi K1 có thể → lưu bảng (T, K1). Tính Dₖ₂(C) cho mọi K2 có thể → tìm T khớp trong bảng. Nếu khớp → cặp (K1, K2) là khóa. Độ phức tạp ~ 2⁵⁶ thay vì 2¹¹².