martes, 25 de marzo de 2014

Ataque al doble DES. ¿Realmente se aumenta la seguridad al aumentar la longitud de la clave?


- La longitud efectiva de la clave.

En un principio el coste computacional para descifrar un criptograma viene dado por la longitud de la clave. La longitud de la clave nos dirá el número de posibles claves que podremos formar, siendo n la longitud, el número de posibles claves que podriamos calcular 2^n, dando lugar a lo que se denominaría ataque por fuerza bruta, es decir, probar todas las posibles combinaciones que podríamos formar con n bits de la clave.

Digamos que visto esto, podriamos decir que este sería el peor de los ataques. Pero la seguridad de un sistema no se mide por el peor de los ataques, si no que se centra en el mejor de estos...

Existen muchos ataques bien conocidos en criptografía dependiendo de si estamos ante criptografía asimétrica, simétrica, una simple sustitución monoalfabética, sustituciones polialfabéticas, funciones hash, cifradores de flujo, por bloques etc...

Para entender esto, voy a intentar explicar un caso relativamente sencillo con el cifrador doble DES.

- Ataque al doble DES.

El antecesor del doble DES como bien imaginaréis es el DES. Proyecto en el que participó W.Tuchman y C.Meyer además de la NSA en 1977 y que a grandes rasgos es un cifrado de tipo Feistel sucesor al alogirtmo Lucifer que trabaja con bloques de 64 bits y una clave de 56 bits.

Para aumentar la seguridad de cifrado se les ocurrió en el doble DES incrementar la clave efectiva a 112 bits. Para ello usaron dos claves de 56 bits siguiendo el principio de los cifrados de tipo Feistel y es que el cifrado producto debe ser criptograficamente más fuerte que la mera adicción de sus componentes en una sola etapa. Y por tanto la clave efectiva sería de 112 bits, pero la operaciones por fuerza bruta a realizar no serían 2^112 teniendo por ataque de coincidencia intermedia:

- 2^56 bits operaciones de cifrado.

-  Ordenamiento (n·log(n)) y
almacenamiento (256 claves
x 64 bits = 263 bits = 259 bytes).

- 2^56 bits operaciones de descifrado


- MITM

La forma en la que funciona el ataque es el siguiente: Se atacan de forma independiente ambas funciones, A y B, por fuerza bruta sobre el espacio de claves obteniendo por un lado el conjunto de posibles valores de I que puede producir como valor entrada E (probando todas las claves) y por el otro lado se obtiene el conjunto de posibles valores I que pueden producir como valor de salida S (probando todas las claves). Si entre estos dos conjuntos de posible valores de I, encontramos un valor que está en ambos, entonces probablemente hayamos encontrado las claves correctas. Para verificar que las claves son las correctas habría que probar con otros valores de E y S y comprobar que los resultados coinciden.

No hay comentarios:

Publicar un comentario