En criptografía , un ataque de interpolación es un tipo de ataque criptoanalítico contra cifrados por bloques .
Tras la presentación de los dos ataques, el criptoanálisis diferencial y el criptoanálisis lineal , contra los cifrados de bloques, se introdujeron algunos nuevos cifrados de bloques que demostraron ser seguros frente a los ataques diferenciales y lineales. Entre ellos se encontraban algunos cifrados de bloques iterados, como el cifrado KN y el cifrado SHARK . Sin embargo, a finales de la década de 1990, Thomas Jakobsen y Lars Knudsen demostraron que estos cifrados eran fáciles de descifrar mediante un nuevo ataque denominado ataque de interpolación.
En el ataque, se utiliza una función algebraica para representar una caja S. Esta puede ser una función cuadrática simple , o una función polinómica o racional sobre un campo de Galois . Sus coeficientes se pueden determinar mediante técnicas estándar de interpolación de Lagrange , utilizando textos planos conocidos como puntos de datos. Alternativamente, se pueden usar textos planos seleccionados para simplificar las ecuaciones y optimizar el ataque.
En su versión más simple, un ataque de interpolación expresa el texto cifrado como un polinomio del texto plano. Si el polinomio tiene un número relativamente bajo de coeficientes desconocidos, entonces, con un conjunto de pares texto plano/texto cifrado (p/c), el polinomio puede reconstruirse. Una vez reconstruido el polinomio, el atacante obtiene una representación del cifrado, sin conocer con exactitud la clave secreta.
El ataque de interpolación también puede utilizarse para recuperar la clave secreta.
La forma más sencilla de describir el método es con un ejemplo.
Ejemplo
Sea un cifrado iterado dado por
dóndees el texto plano,el resultado de laredondo,el secretollave redonda (derivada de la llave secreta)por algún cronograma clave ), y para un-cifrado iterado de ronda,es el texto cifrado.
Consideremos el cifrado de 2 rondas. Seadenotan el mensaje ydenota el texto cifrado.
Entonces, la salida de la ronda 1 se convierte en:
y el resultado de la ronda 2 se convierte en
Expresar el texto cifrado como un polinomio del texto plano produce
donde elLas son constantes dependientes clave.
Utilizar tantos pares de texto plano/texto cifrado como el número de coeficientes desconocidos en el polinomio., entonces podemos construir el polinomio. Esto se puede hacer, por ejemplo, mediante la interpolación de Lagrange (véase polinomio de Lagrange ). Cuando se han determinado los coeficientes desconocidos, entonces tenemos una representacióndel cifrado, sin conocimiento de la clave secreta.
Existencia
Considerando uncifrado de bloques de bits, entonces hayposibles textos planos y, por lo tanto,distintoparejas. Que hayacoeficientes desconocidos en. Dado que requerimos tantospares como el número de coeficientes desconocidos en el polinomio, entonces un ataque de interpolación existe solo si.
complejidad temporal
Supongamos que el tiempo para construir el polinomiousandoLos pares son pequeños, en comparación con el tiempo necesario para cifrar los textos planos requeridos. Supongamos que haycoeficientes desconocidos enEntonces, la complejidad temporal para este ataque es, que requiereconocido distintopares.
Ataque de interpolación por Meet-In-The-Middle
A menudo, este método es más eficiente. Así es como se hace.
Dado uncifrado iterado de ronda con longitud de bloque, dejarsea la salida del cifrado despuésrondas conExpresaremos el valor decomo un polinomio del texto planoy como un polinomio del texto cifrado. Dejarser la expresión dea través dey dejarser la expresión dea través de. El polinomiose obtiene calculando hacia adelante usando la fórmula iterada del cifrado hasta la ronday el polinomio se obtiene calculando hacia atrás a partir de la fórmula iterada del cifrado comenzando desde la rondahasta ronda.
Por lo tanto, debería sostener que
y si ambosySi los polinomios tienen un número bajo de coeficientes, podemos resolver la ecuación para hallar los coeficientes desconocidos.
complejidad temporal
Supongamos quepuede expresarse porcoeficientes ypuede expresarse porcoeficientes. Entonces necesitaríamosconocido distintopares para resolver la ecuación planteándola como una ecuación matricial. Sin embargo, esta ecuación matricial es resoluble salvo una multiplicación y una suma. Por lo tanto, para asegurarnos de obtener una solución única y distinta de cero, establecemos el coeficiente correspondiente al grado más alto en uno y el término constante en cero. Por consiguiente, conocido distintoSe requieren pares. Por lo tanto, la complejidad temporal para este ataque es, que requiereconocido distintopares.
Mediante el método Meet-In-The-Middle, el número total de coeficientes suele ser menor que con el método normal. Esto hace que el método sea más eficiente, ya que se utilizan menos coeficientes. Se requieren parejas.
Recuperación de claves
También podemos utilizar el ataque de interpolación para recuperar la clave secreta..
Si eliminamos la última ronda de un-cifrado iterado de ronda con longitud de bloque, la salida del cifrado se convierte enLlamemos a este cifrado cifrado reducido. La idea es adivinar la clave de la última ronda., de tal manera que podamos descifrar una ronda para obtener la salidadel cifrado reducido. Luego, para verificar la suposición, utilizamos el ataque de interpolación sobre el cifrado reducido, ya sea mediante el método normal o mediante el método Meet-In-The-Middle. Así es como se hace.
Mediante el método normal expresamos la salidadel cifrado reducido como un polinomio del texto plano. Llama al polinomioEntonces, si podemos expresarconcoeficientes, luego usandoconocido distintopares, podemos construir el polinomio. Para verificar la suposición de la clave de la última ronda, luego verifique con uno adicionalemparejar si se mantiene eso
Si la respuesta es sí, entonces es muy probable que la adivinanza de la llave de la ronda anterior haya sido correcta. Si la respuesta es no, entonces vuelva a adivinar la llave.
Mediante el método Meet-In-The-Middle expresamos la salidade rondacomo un polinomio del texto planoy como un polinomio de la salida del cifrado reducido. Llama a los polinomiosyy que sean expresados porycoeficientes, respectivamente. Luego conconocido distintopares podemos encontrar los coeficientes. Para verificar la suposición de la última ronda clave, luego verifique con uno adicionalemparejar si se mantiene eso
Si la respuesta es sí, entonces es muy probable que la adivinanza de la llave de la ronda anterior haya sido correcta. Si la respuesta es no, entonces vuelva a adivinar la llave.
Una vez que hayamos encontrado la clave correcta de la última ronda, podremos continuar de manera similar con las claves de las rondas restantes.
complejidad temporal
Con una llave redonda secreta de longitud, entonces haydiferentes claves. Cada una con probabilidadser correcto si se elige al azar. Por lo tanto, en promedio tendremos que haceradivinanzas antes de encontrar la llave correcta.
Por lo tanto, el método normal tiene una complejidad temporal promedio., que requiereconocido distintopares, y el método Meet-In-The-Middle tienen una complejidad temporal promedio., que requiereconocido distintopares.
Aplicación en el mundo real
El ataque Meet-in-the-middle se puede utilizar en una variante para atacar S-boxes, que utiliza la función inversa, porque con un-bit S-box entoncesen.
El cifrador de bloques SHARK utiliza una red SP con una caja S.El cifrado es resistente al criptoanálisis diferencial y lineal después de un pequeño número de rondas. Sin embargo, fue descifrado en 1996 por Thomas Jakobsen y Lars Knudsen, utilizando un ataque de interpolación. Denominado SHARK.una versión de SHARK con tamaño de bloquebits usando paraleloCajas S de -bit enrondas. Jakobsen y Knudsen descubrieron que existe un ataque de interpolación en SHARK.(cifrado de bloques de 64 bits) usando aproximadamentetextos planos seleccionados y un ataque de interpolación en SHARK(cifrado de bloques de 128 bits) usando aproximadamentetextos planos seleccionados.
Asimismo, Thomas Jakobsen introdujo una versión probabilística del ataque de interpolación utilizando el algoritmo de Madhu Sudan para mejorar la decodificación de los códigos Reed-Solomon . Este ataque puede funcionar incluso cuando la relación algebraica entre los textos planos y los textos cifrados solo se cumple para una fracción de los valores.
Referencias
- Thomas Jakobsen , Lars Knudsen (enero de 1997). El ataque de interpolación a los cifrados de bloques ( PDF / PostScript ) . 4.º Taller Internacional sobre Cifrado Rápido de Software (FSE '97), LNCS 1267. Haifa : Springer-Verlag . págs. 28-40 . Consultado el 3 de julio de 2007 .
- Thomas Jakobsen (25 de agosto de 1998). Criptoanálisis de cifrados de bloques con relaciones no lineales probabilísticas de bajo grado (PDF/PostScript) . Avances en criptología — CRYPTO '98. Santa Bárbara, California : Springer-Verlag. págs. 212–222 . Consultado el 6 de julio de 2007 . ( Vídeo de la presentación en Google Video — utiliza Flash )
- Shiho Moriai; Takeshi Shimoyama; Toshinobu Kaneko (marzo de 1999). Ataques de interpolación del cifrado por bloques: SNAKE (PDF) . FSE '99. Roma: Springer-Verlag. págs. 275–289 . doi : 10.1007/3-540-48519-8_20 . Consultado el 6 de noviembre de 2022 .
- Amr M. Youssef; Guang Gong (abril de 2000). Sobre los ataques de interpolación a los cifrados de bloques (PDF) . FSE 2000. Ciudad de Nueva York : Springer-Verlag. págs. 109–120 . Recuperado el 6 de julio de 2007 .
- Kaoru Kurosawa; Tetsu Iwata; Viet Duong Quang (agosto de 2000). Ataque de interpolación para la búsqueda de raíces (PDF/PostScript) . Actas del 7.º Taller Internacional Anual sobre Áreas Seleccionadas en Criptografía (SAC 2000). Waterloo, Ontario : Springer-Verlag. págs. 303–314 . Consultado el 6 de julio de 2007 .
- ataques criptográficos
