Para comprender lo que sucede con Double-DES, considere el ataque de encuentro en el medio (no relacionado con " ataques de hombre en el medio ").
Configuración: hay doble DES, donde un bloque de datos se cifra con la clave K1 , luego nuevamente con K 2 . El atacante podría tener acceso a dos bloques de texto simple / texto cifrado: el atacante sabe A , B , C = E K 2 (EK1 (A)) y D = E K 2 (E K 1 (B)) .
Luego el atacante puede calcular todos los E K (A) para todos los valores de K (hay 2 56 de ellos). Luego también puede calcular todos los D K ' (C) para todos los valores de K' (de nuevo, 2 56 claves para probar). En ese momento, tendrá aproximadamente 2 48 candidatos para el par (K 1 , K 2 ) : estos son todos los pares (K, K ') para los cuales E K (A) = D K' (C) . El "2 48 " proviene del hecho de que estamos cifrando bloques de 64 bits, por lo que aproximadamente 1 valor de bloque cada 256 es uno de los E K (A ) valores, por lo que aproximadamente 1 valor K ' cada 256 producirá un D K' (C) .
Los 2 candidatos 48 se pueden probar con el texto simple B y el texto cifrado D ; se espera que solo la correcta pase esa prueba.
Costo: 2 57 invocaciones de DES (más un promedio adicional de 2 48 para la verificación de candidatos, pero eso es insignificante), y algún almacenamiento de memoria capaz de contener 2 56 valores intermedios, y ordenados. Dado que los valores están ordenados, cada uno diferirá de los anteriores en solo 8 bits en promedio, pero también debe almacenar el correspondiente K , así que digamos que una implementación práctica usaría 10 bytes por valor. Eso es entonces 10 * 2 56 bytes de almacenamiento, que es bastante grande (unos 650 miles de terabytes ) pero se puede visualizar con la tecnología existente (aunque no sería barato) ). El paso de clasificación sería el mayor costo en una forma "académica" (aproximadamente 2 64 comparaciones) pero las 2 57 DES invocaciones aún serían, en la práctica, más caras.
No veo ningún "80 bits" aquí. De hecho, la seguridad de Double-DES debe considerarse cercana a "57 bits" . Los requisitos de almacenamiento hacen que sea más difícil de romper que un simple "cifrado de bloque de 57 bits", pero en ningún caso es tan difícil como un cifrado de bloque de 80 bits.
(Un método similar funciona para 3DES, lo que significa que 3DES tiene seguridad "alrededor de 112 bits" a pesar de sus 168 bits de clave.)