El ataque XSL ( ing. Extended Sparse Linearization , ataque algebraico) es un método de análisis criptográfico basado en las propiedades algebraicas del cifrado . El método consiste en resolver un sistema especial de ecuaciones .
Este método fue propuesto en 2001 por Nicolas T. Courtois y Josef Pieprzyk.
Anteriormente, los ataques XSL se consideraban imposibles, pero el 26 de mayo de 2006, Courtois demostró la posibilidad de un ataque XSL contra un modelo de cifrado único similar en estructura al cifrado AES [1] .
Como dijo uno de los creadores del cifrado Rijndael en correspondencia privada: "XSL no es un ataque, es solo un sueño". "Este sueño puede convertirse en una pesadilla", respondió Nicolás Courtois [2] .
Si los ataques XSL realmente funcionan, romperán todos los cifrados existentes actualmente. Solo la pura casualidad puede evitar que la clave se rompa. Por otro lado, es muy posible (y desde nuestro punto de vista, lo más probable) que los ataques XSL no sean aplicables en la práctica, o sean aplicables solo a una pequeña cantidad de cifrados altamente estructurados.
— Nils Ferguson , Bruce Schneier Criptografía práctica [3]
En 2001, Niels Ferguson , Richard Schroeppel y D. Whiting publicaron un artículo [4] en el que pudieron representar el cifrado Rijndael como una fórmula algebraica utilizando las representaciones de las partes lineales del cifrado y S-boxes no lineales en en forma de ecuaciones de orden superior. Llegaron a la conclusión de que todos los cifrados de bloques simétricos se pueden reducir a una ecuación multidimensional sobre algún campo finito . También se preguntaron si conocer la forma algebraica ayudaría a descifrar el cifrado . Si la función que expresa S-boxes no tiene en cuenta argumentos elevados a -1, entonces el cifrado se vuelve afín y se rompe fácilmente de otras formas que no requieren linealización . Si igualamos estos argumentos a , entonces la ecuación resulta polinomialmente compleja.
En esos años aparecieron muchos ataques a las claves públicas: un ataque al sistema Matsumoto-Imai [5] , un ataque a HFE [6] . Estos ataques terminaron con éxito inmediatamente después del descubrimiento del hecho (teórico o experimental) de la existencia de ecuaciones adicionales de muchas variables, que no son obvias y no fueron proporcionadas por los desarrolladores del cifrado original [7] .
Adi Shamir en 1998 demostró que las ecuaciones cuadráticas de muchas variables (MQ) son un problema NP-completo [8] . Su complejidad disminuye notablemente cuando se redefinen las ecuaciones [7] . En el primer estudio, Nicolas Courtois y Jozef Pepshik muestran que los MQ resultantes son escasos y tienen una estructura regular [7] .
El 2 de diciembre de 2002 en ASIACRYPT-2002, Nicolas Courtois y Jozef Pepshik presentaron el artículo "Criptomálisis de cifrados en bloque con sistemas de ecuaciones sobredefinidos", donde presentaron por primera vez dos variaciones del método de ataque XSL [9] . La conclusión de este trabajo es que la seguridad de AES se basa únicamente en la imposibilidad en este momento de resolver el sistema de ecuaciones que describe la estructura algebraica de la cifra.
Generalizando la clase de cifrados SP, que consisten en cajas S y funciones de permutación de bits, Courtois y Pepchik designaron una nueva clase de cifrados SA, que consisten en cajas S y funciones afines [10] . Según un estudio realizado por Adi Shamir y Alex Biryukov , los ataques a los cifrados SA no dependen de las propiedades de un S-box en particular [11] . Después de eso, se introdujo en el artículo el cifrado XSL de la clase SA, que describe la estructura de un cifrado de bloques típico al que se puede aplicar el método.
La estructura de cifrado consta de rondas:
Las cajas S de los cifrados Rijndael y Serpent se pueden representar como una función de muchas variables de alto grado [12] , el método de Courtois reduce el grado de la función a algún número , donde generalmente se elige que sea 2, expandiendo el espacio argumental. De particular interés es el número de tales funciones . Si , tales ecuaciones describen suficientemente el bloque S. Si , entonces decimos que el sistema está redefinido.
Hay dos tipos de ataques XSL. El primero (general) opera con cifrados XSL, independientemente del algoritmo de programación de claves (ver programación de claves ). Luego, el algoritmo requiere tantos textos cifrados como S-boxes haya dentro del cifrado. La segunda versión del ataque XSL tiene en cuenta que el algoritmo de programación de claves es conocido y, por lo tanto, requiere solo un texto cifrado [13] .
Cada ronda del bloque S se escribe como una ecuación:
donde están los bits de entrada de la -ésima S-box, son los bits de salida de la -ésima S-box.
A continuación, se selecciona el parámetro de ataque crítico . Durante el ataque, la ecuación de cada caja S se multiplicará por todos los monomios posibles del subconjunto de las cajas S restantes. Además, al cambiar el número de rondas del cifrado, el parámetro no debería aumentar mucho, como lo demostraron los experimentos de Courtois y Pepshik [14] .
Luego, para encontrar un sistema para el cual existe una solución única, se escribe una nueva ecuación:
El propósito de todas estas transformaciones es llevar el sistema de ecuaciones a un sistema lineal sobredeterminado en el que no hay ecuaciones linealmente dependientes obvias.
El método de los ataques algebraicos parecía prometedor para el criptoanálisis, ya que en teoría no requería una gran cantidad de textos cifrados y ofrecía la ruptura del estándar de cifrado más utilizado (AES). Durante los últimos cinco años, se han publicado muchas investigaciones sobre el rendimiento de los ataques XSL.
Así, en el trabajo de Carlos Cid (Carlos Cid) y G. Lauren (Ga¨etan Leurent) se analizó la segunda versión del ataque XSL del artículo original - XSL compacto - sobre AES-128 [15] . El artículo analizó ejemplos en los que este algoritmo colapsa en el llamado T-block, que se utiliza para expandir el espacio de variables. Sin embargo, los científicos concluyeron que el enfoque XSL es el primer intento de encontrar una vulnerabilidad en la parte estructural del cifrado AES.
Por ejemplo, el trabajo de Chu-Wee Lim y Khoongming Khoo [16] investiga un intento de convertir la aplicación BES (Big Encryption System) en AES. Esta extensión traduce todos los cálculos al campo , lo que, en consecuencia, debería reducir el número de operaciones. Sin embargo, los cálculos teóricos han demostrado que aumenta la complejidad del algoritmo para el cifrado BES. Dificultad para las variantes de BES:
Se ha encontrado que el ataque XSL no es efectivo contra los cifrados BES.