Ataque Meet-in-the-middle para niños
El ataque por encuentro a medio camino, también conocido como meet-in-the-middle o MITM, es una técnica inteligente que se usa para "romper" sistemas que funcionan en dos pasos. Imagina que tienes un proceso general (llamémosle G) que se divide en dos partes: una primera parte (A) y una segunda parte (B). La información sale de A y entra en B.
El objetivo de este ataque es, conociendo el punto de partida (E) y el resultado final (S) del sistema completo G, descubrir cómo funcionan las partes A y B. Para lograrlo, se busca un punto intermedio (I) de tal manera que, si aplicas A a la entrada E, obtengas I, y si aplicas B a I, obtengas S. Es como resolver un laberinto empezando tanto desde la entrada como desde la salida para encontrarse en el medio.
Para que este ataque funcione, es muy importante poder "deshacer" o "invertir" el proceso B. Es decir, si conoces el resultado de B, debes poder encontrar su entrada.
Contenido
¿Cómo Funciona este Ataque?
La forma en que el ataque meet-in-the-middle trabaja es la siguiente:
- Se atacan las dos partes, A y B, por separado.
- Para la parte A, se prueban todas las posibles "claves" o configuraciones para ver qué valores intermedios (I) podría producir a partir de la entrada inicial (E). Se guardan todos estos posibles valores de I en una lista.
- Para la parte B, se hace lo mismo, pero al revés. Se prueban todas las posibles "claves" para ver qué valores intermedios (I) podrían haber producido el resultado final (S). También se guardan estos valores en otra lista.
- Si encuentras un valor de I que aparece en ambas listas, ¡bingo! Es muy probable que hayas encontrado las claves correctas para A y B.
- Para estar seguros, se debe verificar con otros ejemplos de entrada y salida para confirmar que las claves funcionan siempre.
Este tipo de ataque es un buen ejemplo de cómo se puede reducir el tiempo necesario para encontrar una solución, pero a cambio de necesitar más espacio de almacenamiento (porque hay que guardar todas las listas de valores intermedios). Es lo que se conoce como una situación de compromiso espacio-tiempo.
Fue creado en 1977 por Whitfield Diffie y Martin Hellman. Lo aplicaron para mostrar que los sistemas de cifrado que usaban el mismo método dos veces seguidas (llamado "doble cifrado") no eran tan seguros como se pensaba. Desde entonces, esta técnica se ha usado para analizar la seguridad de otros sistemas, como las funciones que generan códigos para detectar si un archivo ha sido modificado.
Ejemplos de Uso del Ataque Meet-in-the-Middle
Este ataque se ha usado principalmente en dos áreas de la criptografía (la ciencia de proteger la información): en el cifrado de información que se hace en bloques y en las funciones que generan códigos para verificar la integridad de los datos.
Cifrado de Información en Bloques
Imagina un sistema que cifra información en bloques, y que usa un "doble cifrado". Esto significa que la información se cifra una vez con una clave (k1) y luego el resultado se cifra de nuevo con otra clave (k2). La clave total sería la combinación de k1 y k2.
Si intentaras descifrar esto con un método de "fuerza bruta" tradicional (probando todas las combinaciones de k1 y k2), tendrías que hacer muchísimas pruebas. Por ejemplo, si cada clave tiene 'n' bits, la clave total tendría '2n' bits, y tendrías que probar 2 elevado a la potencia de 2n posibilidades.
En un sistema de cifrado de bloques, si conoces el algoritmo para cifrar, es fácil saber cómo descifrar (es decir, cómo invertir la función) usando la misma clave.
Con el ataque meet-in-the-middle, se pueden hacer muchas menos pruebas:
- Primero, se prueban todas las 2 elevado a la potencia de n claves para la primera parte del cifrado. Los resultados se guardan en una tabla.
- Luego, se prueban todas las 2 elevado a la potencia de n claves para la segunda parte del cifrado (pero descifrando desde el final). A medida que se obtienen los resultados, se compara si alguno de ellos coincide con los valores guardados en la tabla anterior.
- Si hay coincidencias, se han encontrado posibles claves correctas.
- De esta manera, en lugar de 2 elevado a la potencia de 2n operaciones, se hacen aproximadamente 2 elevado a la potencia de n + 2 elevado a la potencia de n = 2 elevado a la potencia de n+1 operaciones. Esto es mucho más rápido. Aunque se necesita más memoria para guardar la tabla, la reducción en el tiempo de cálculo es enorme.
A veces, este ataque puede encontrar "claves falsas" que parecen funcionar pero no son las correctas. Sin embargo, en sistemas como el Triple DES (un tipo de cifrado), la probabilidad de encontrar claves falsas es tan pequeña que el ataque es muy efectivo. Por esta razón, es mucho más común usar el triple cifrado en lugar del doble cifrado, ya que el triple cifrado es mucho más resistente a este tipo de ataque.
Códigos de Detección de Manipulaciones
En el caso de los códigos que detectan si un archivo ha sido modificado, los ataques meet-in-the-middle se usan para encontrar un valor de entrada que produzca un código específico.
Aquí, el ataque divide el algoritmo en dos partes:
- Una parte avanza desde el inicio hasta un punto intermedio, generando un conjunto de resultados.
- La otra parte trabaja hacia atrás desde el código final hasta el mismo punto intermedio, generando otro conjunto de resultados.
- Luego, se comparan ambos conjuntos para encontrar las coincidencias, lo que ayuda a descubrir la entrada original.
Véase también
En inglés: Meet-in-the-middle attack Facts for Kids
- Ataque de cumpleaños
- Triple DES