Articulo de referencia

Ataque de la bicicleta

Un ataque biclique es una variante del método de criptoanálisis de encuentro en el medio (MITM [ 1 ] ) . Utiliza una estructura biclique para extender el número de rondas que pu...

Un ataque biclique es una variante del método de criptoanálisis de encuentro en el medio (MITM [ 1 ] ) . Utiliza una estructura biclique para extender el número de rondas que pueden ser atacadas por el ataque MITM. Dado que el criptoanálisis biclique se basa en ataques MITM, es aplicable tanto a cifrados de bloques como a funciones hash (iteradas) . Se sabe que los ataques biclique han debilitado tanto el AES completo [ 2 ] como el IDEA completo [ 3 ] , aunque solo con una ligera ventaja sobre la fuerza bruta. También se ha aplicado al cifrado KASUMI y a la resistencia a la preimagen de las funciones hash Skein-512 y SHA-2 [ 4 ] .

El ataque de la biclique aún continúa ( a partir de abril de 2019).) el mejor ataque de clave única conocido públicamente contra AES . La complejidad computacional del ataque es2126.1{\displaystyle 2^{126.1}},2189,7{\displaystyle 2^{189.7}}y2254.4{\displaystyle 2^{254.4}}para AES128, AES192 y AES256, respectivamente. Es el único ataque de clave única conocido públicamente contra AES que ataca el número total de rondas. [ 2 ] Los ataques anteriores han atacado variantes con rondas reducidas (típicamente variantes reducidas a 7 u 8 rondas).

Dado que la complejidad computacional del ataque es2126.1{\displaystyle 2^{126.1}}Se trata de un ataque teórico, lo que significa que la seguridad de AES no se ha visto comprometida y su uso sigue siendo relativamente seguro. Sin embargo, el ataque biclique es interesante, ya que sugiere un nuevo enfoque para realizar criptoanálisis en cifrados de bloques. Este ataque también ha aportado más información sobre AES, al poner en entredicho el margen de seguridad en el número de rondas utilizadas.

Historia

El ataque MITM original fue sugerido por primera vez por Diffie y Hellman en 1977, cuando discutieron las propiedades criptoanalíticas de DES. [ 5 ] Argumentaron que el tamaño de la clave era demasiado pequeño y que volver a aplicar DES varias veces con diferentes claves podría ser una solución al tamaño de la clave; sin embargo, desaconsejaron el uso de doble DES y sugirieron triple DES como mínimo, debido a los ataques MITM (los ataques MITM se pueden aplicar fácilmente a doble DES para reducir la seguridad de2562{\displaystyle 2^{56*2}}para simplemente2256{\displaystyle 2*2^{56}}, ya que se puede realizar un ataque de fuerza bruta de forma independiente al primer y al segundo cifrado DES si se tienen el texto plano y el texto cifrado).

Desde que Diffie y Hellman sugirieron los ataques MITM, han surgido muchas variaciones que son útiles en situaciones donde el ataque MITM básico no es aplicable. La variante de ataque biclique fue sugerida por primera vez por Dmitry Khovratovich , Rechberger y Savelieva para su uso con criptoanálisis de función hash. [ 6 ] Sin embargo, fueron Bogdanov, Khovratovich y Rechberger quienes mostraron cómo aplicar el concepto de bicliques al entorno de clave secreta, incluido el criptoanálisis de cifrado por bloques, cuando publicaron su ataque a AES. Antes de esto, los ataques MITM a AES y muchos otros cifrados por bloques habían recibido poca atención, principalmente debido a la necesidad de bits de clave independientes entre los dos "subcifrados MITM" para facilitar el ataque MITM, algo que es difícil de lograr con muchos esquemas de clave modernos, como el de AES.

La biclique

Para una explicación general de qué es una estructura biclique, consulte el artículo sobre bicliques .

En un ataque MITM, los bits de claveK1{\displaystyle K_{1}}yK2{\displaystyle K_{2}}Los subcifrados, pertenecientes al primer y segundo subcifrado, deben ser independientes; es decir, deben ser independientes entre sí, de lo contrario, los valores intermedios coincidentes para el texto plano y el texto cifrado no se pueden calcular de forma independiente en el ataque MITM (existen variantes de ataques MITM en las que los bloques pueden tener bits de clave compartidos. Véase el ataque MITM de 3 subconjuntos ). Esta propiedad suele ser difícil de explotar en un mayor número de rondas, debido a la difusión del cifrado atacado.

En resumen: cuantas más rondas ataques, más grandes serán los subcifrados. Cuanto más grandes sean los subcifrados, menor será la cantidad de bits de clave independientes que tendrás que descifrar por fuerza bruta de forma individual. Por supuesto, la cantidad real de bits de clave independientes en cada subcifrado depende de las propiedades de difusión del esquema de claves.

La forma en que la biclique ayuda a abordar lo anterior es que permite, por ejemplo, atacar 7 rondas de AES usando ataques MITM, y luego, al utilizar una estructura biclique de longitud 3 (es decir, que cubre 3 rondas del cifrado), se puede mapear el estado intermedio al comienzo de la ronda 7 al final de la última ronda, por ejemplo 10 (si es AES128), atacando así el número total de rondas del cifrado, incluso si no fuera posible atacar esa cantidad de rondas con un ataque MITM básico.

El propósito de la biclique es construir una estructura que permita mapear un valor intermedio al final del ataque MITM al texto cifrado final. El texto cifrado al que se mapea el estado intermedio depende, por supuesto, de la clave utilizada para el cifrado. La clave empleada para mapear el estado al texto cifrado en la biclique se basa en los bits de clave obtenidos mediante fuerza bruta en el primer y segundo subcifrado del ataque MITM.

La esencia de los ataques biclique es, por lo tanto, además del ataque MITM, poder construir una estructura biclique de manera efectiva, que dependa de los bits de clave.K1{\displaystyle K_{1}}yK2{\displaystyle K_{2}}puede mapear un determinado estado intermedio al texto cifrado correspondiente.

Cómo construir la biclique

Fuerza bruta

Conseguir2d{\displaystyle 2^{d}}[ 7 ] estados intermedios [ 8 ] y2d{\displaystyle 2^{d}}textos cifrados [ 9 ] , luego calcula las claves que mapean un único valor intermedio a todos los textos cifrados. Continúa ese proceso de mapeo de claves "uno a muchos" repitiéndolo para todos los valores intermedios.

Este proceso de mapeo requiere(2d)número de estados intermedios(2d)número de textos cifrados por st intermedio.=2d+d=22d{\displaystyle (2^{d})_{\text{número de estados intermedios}}\cdot (2^{d})_{\text{número de textos cifrados por estado intermedio}}=2^{d+d}=2^{2d}}recuperación de claves, ya que cada estado intermedio debe estar vinculado a todos los textos cifrados (no solo a un texto cifrado). [ 10 ]

(Este método fue sugerido por Bogdanov, Khovratovich y Rechberger en su artículo: Criptoanálisis biclique del AES completo [ 2 ] )

Preliminar: Recuerde que la función de la biclique es mapear los valores intermedios,S{\displaystyle S}, a los valores del texto cifrado,do{\displaystyle C}, basado en la claveK[i,j]{\displaystyle K[i,j]}de tal manera que: i,j:SjFK[i,j]doi{\displaystyle \forall i,j:S_{j}{\xrightarrow[{f}]{K[i,j]}}C_{i}}

Procedimiento: Paso uno: Un estado intermedio(S0{\displaystyle S_{0}}), un texto cifrado(do0{\displaystyle C_{0}}) y una clave(K[0,0]{\displaystyle K[0,0]}) se elige de tal manera que:S0FK[0,0]doo{\displaystyle S_{0}{\xrightarrow[{f}]{K[0,0]}}C_{o}}, dóndeF{\displaystyle f}Es la función que asigna un estado intermedio a un texto cifrado utilizando una clave dada. Esto se denomina cálculo base.

Paso dos: Dos conjuntos de claves relacionadas de tamaño2d{\displaystyle 2^{d}}Se elige. Las claves se eligen de tal manera que:

  • El primer conjunto de claves son claves que cumplen los siguientes requisitos diferenciales sobreF{\displaystyle f}con respecto al cálculo base:0FΔiKΔi{\displaystyle 0{\xrightarrow[{f}]{\Delta _{i}^{K}}}\Delta _{i}}
  • El segundo conjunto de claves son claves que cumplen los siguientes requisitos diferenciales sobreF{\displaystyle f}con respecto al cálculo base:jFjK0{\displaystyle \nabla _{j}{\xrightarrow[{f}]{\nabla _{j}^{K}}}0}
  • Las llaves se eligen de tal manera que los senderos de laΔi{\displaystyle \Delta _{i}}- yj{\displaystyle \nabla _{j}}-Los diferenciales son independientes, es decir, no comparten ningún componente no lineal activo.

En otras palabras: una diferencia de entrada de 0 debería corresponder a una diferencia de salida deΔi{\displaystyle \Delta _{i}}bajo una diferencia clave deΔiK{\displaystyle \Delta _{i}^{K}}. Todas las diferencias son con respecto al cálculo base. Una diferencia de entrada dej{\displaystyle \nabla _{j}}debería asignarse a una diferencia de salida de 0 bajo una diferencia de clave deJK{\displaystyle \nabla _{J}^{K}}Todas las diferencias se refieren al cálculo base.

Paso tres: Dado que las rutas no comparten ningún componente no lineal (por ejemplo, rutas que no comparten ninguna caja S ), las rutas se pueden combinar para obtener: 0FΔiKΔijFjK0=jFΔiKjKΔi{\displaystyle 0{\xrightarrow[{f}]{\Delta _{i}^{K}}}\Delta _{i}\oplus \nabla _{j}{\xrightarrow[{f}]{\nabla _{j}^{K}}}0=\nabla _{j}{\xrightarrow[{f}]{\Delta _{i}^{K}\oplus \nabla _{j}^{K}}}\Delta _{i}}, que se ajusta a las definiciones de ambos diferenciales del paso 2. Es trivial ver que la tupla [ 11 ](S0,do0,K[0,0]){\displaystyle (S_{0},C_{0},K[0,0])}a partir del cálculo base, también se ajusta por definición a ambos diferenciales, ya que los diferenciales son con respecto al cálculo base. SustituyendoS0,do0{\displaystyle S_{0},C_{0}}K[0,0]{\displaystyle K[0,0]}en cualquiera de las dos definiciones, dará como resultado0F00{\displaystyle 0{\xrightarrow[{f}]{0}}0}desdeΔ0=0,0=0{\displaystyle \Delta _{0}=0,\nabla _{0}=0}yΔ0K=0{\displaystyle \Delta _{0}^{K}=0}Esto significa que la tupla del cálculo base también se puede combinar mediante XOR con los senderos combinados: S0jFK[0,0]ΔiKjKdo0Δi{\displaystyle S_{0}\oplus \nabla _{j}{\xrightarrow[{f}]{K[0,0]\oplus \Delta _{i}^{K}\oplus \nabla _{j}^{K}}}C_{0}\oplus \Delta _{i}}

Cuarto paso: Es obvio que: Sj=S0j{\displaystyle S_{j}=S_{0}\oplus \nabla _{j}}K[i,j]=K[0,0]ΔiKjK{\displaystyle K[i,j]=K[0,0]\oplus \Delta _{i}^{K}\oplus \nabla _{j}^{K}}doi=do0Δi{\displaystyle C_{i}=C_{0}\oplus \Delta _{i}} Si esto se sustituye en las trayectorias diferenciales combinadas anteriores, el resultado será: SjFK[i,j]doi{\displaystyle S_{j}{\xrightarrow[{f}]{K[i,j]}}C_{i}}Lo cual es lo mismo que la definición que se dio anteriormente para una biclique:i,j:SjFK[i,j]doi{\displaystyle \forall i,j:S_{j}{\xrightarrow[{f}]{K[i,j]}}C_{i}}

Por lo tanto, es posible crear una biclique de tamaño22d{\displaystyle 2^{2d}}(22d{\displaystyle 2^{2d}}ya que todos2d{\displaystyle 2^{d}}Las claves del primer conjunto de claves se pueden combinar con las2d{\displaystyle 2^{d}}llaves del segundo conjunto de llaves). Esto significa una biclique de tamaño22d{\displaystyle 2^{2d}}se puede crear utilizando únicamente22d{\displaystyle 2*2^{d}}cálculos de los diferencialesΔi{\displaystyle \Delta _{i}}yj{\displaystyle \nabla _{j}}encimaF{\displaystyle f}. SiΔij{\displaystyle \Delta _{i}\neq \nabla _{j}}parai+j>0{\displaystyle i+j>0}entonces todas las llavesK[i,j]{\displaystyle K[i,j]}También será diferente en la biclique.

Así es como se construye la biclique en el ataque de biclique principal contra AES. Existen algunas limitaciones prácticas al construir bicliques con esta técnica. Cuanto más larga sea la biclique, más rondas deben cubrir las rutas diferenciales. Por lo tanto, las propiedades de difusión del cifrado desempeñan un papel crucial en la efectividad de la construcción de la biclique.

Otras formas de construir la biclique

Bogdanov, Khovratovich y Rechberger también describen otra forma de construir la biclique, llamada 'Interleaving Related-Key Differential Trails' en el artículo: "Criptoanálisis de biclique del AES completo [ 2 ] ".

Procedimiento de criptoanálisis biclique

Paso uno: El atacante agrupa todas las claves posibles en subconjuntos de claves de tamaño22d{\displaystyle 2^{2d}}para algunosd{\displaystyle d}donde la clave en un grupo se indexa comoK[i,j]{\displaystyle K[i,j]}en una matriz de tamaño2d×2d{\displaystyle 2^{d}\times 2^{d}}. El atacante divide el cifrado en dos subcifrados,F{\displaystyle f}ygramo{\displaystyle g}(de tal manera quemi=Fgramo{\displaystyle E=f\circ g}), como en un ataque MITM normal. El conjunto de claves para cada uno de los subcifrados es de cardinalidad2d{\displaystyle 2^{d}}y se llamaK[i,0]{\displaystyle K[i,0]}yK[0,j]{\displaystyle K[0,j]}La clave combinada de los subcifrados se expresa mediante la matriz antes mencionada.K[i,j]{\displaystyle K[i,j]}.

Paso dos: El atacante construye una biclique para cada grupo de22d{\displaystyle 2^{2d}}claves. La biclique es de dimensión d, ya que mapea2d{\displaystyle 2^{d}}estados internos,Sj{\displaystyle S_{j}}, a2d{\displaystyle 2^{d}}textos cifrados,doi{\displaystyle C_{i}}, usando22d{\displaystyle 2^{2d}}claves. La sección "Cómo construir la biclique" sugiere cómo construir la biclique usando "Diferenciales de claves relacionadas independientes". En ese caso, la biclique se construye usando los diferenciales del conjunto de claves,K[i,0]{\displaystyle K[i,0]}yK[0,j]{\displaystyle K[0,j]}, pertenecientes a los subcifrados.

Paso tres: El atacante toma el2d{\displaystyle 2^{d}}posibles textos cifrados,doi{\displaystyle C_{i}}y solicita a un oráculo de descifrado que proporcione los textos planos coincidentes,PAGi{\displaystyle P_{i}}.

Paso cuatro: El atacante elige un estado interno,Sj{\displaystyle S_{j}}y el texto plano correspondiente,PAGi{\displaystyle P_{i}}y realiza el habitual ataque MITM sobreF{\displaystyle f}ygramo{\displaystyle g}atacando desde el estado interno y el texto plano.

Paso cinco: Siempre que se encuentre un candidato clave que coincidaSj{\displaystyle S_{j}}conPAGi{\displaystyle P_{i}}Esa clave se prueba con otro par de texto plano/texto cifrado. Si la clave se valida con el otro par, es muy probable que sea la clave correcta.

Ejemplo de ataque

El siguiente ejemplo se basa en el ataque biclique contra AES del artículo "Criptoanálisis biclique del AES completo [ 2 ] ". Las descripciones del ejemplo utilizan la misma terminología que los autores del ataque (por ejemplo, para los nombres de las variables, etc.). Para simplificar, a continuación se describe el ataque a la variante AES128. El ataque consiste en un ataque MITM de 7 rondas, donde el biclique cubre las últimas 3 rondas.

Particionamiento de claves

El espacio de claves se divide en2112{\displaystyle 2^{112}}grupos de claves, donde cada grupo consta de216{\displaystyle 2^{16}}claves. Para cada una de las2112{\displaystyle 2^{112}}grupos, una clave base únicaK[0,0]{\displaystyle K[0,0]}Se selecciona la base para el cálculo. La clave base tiene dos bytes específicos establecidos a cero, como se muestra en la tabla siguiente (que representa la clave de la misma manera que lo hace AES en una matriz de 4x4 para AES128):

[00]{\displaystyle {\begin{bmatrix}-&-&-&0\\0&-&-&-\\-&-&-&-\\-&-&-&-\end{bmatrix}}}

Luego se enumeran los 14 bytes restantes (112 bits) de la clave. Esto produce:2112{\displaystyle 2^{112}}claves base únicas; una para cada grupo de claves. La ordinaria216{\displaystyle 2^{16}}Las claves de cada grupo se eligen con respecto a su clave base. Se eligen de manera que sean casi idénticas a la clave base. Solo varían en 2 bytes (ya sea eli{\displaystyle i}de o elj{\displaystyle j}'s) de los 4 bytes que se muestran a continuación:

[iijj]{\displaystyle {\begin{bmatrix}-&-&i&i\\j&-&j&-\\-&-&-&-\\-&-&-&-\end{bmatrix}}}

Esto da28K[i,0]{\displaystyle 2^{8}K[i,0]}y28K[0,j]{\displaystyle 2^{8}K[0,j]}, que combinado da216{\displaystyle 2^{16}}diferentes claves,K[i,j]{\displaystyle K[i,j]}. estos216{\displaystyle 2^{16}}Las claves constituyen las claves del grupo para una clave base respectiva.

Construcción biclique

2112{\displaystyle 2^{112}}La biclique se construye utilizando la técnica de "Diferenciales de claves relacionadas independientes", como se describe en la sección "Cómo construir la biclique". El requisito para utilizar esa técnica era que las rutas diferenciales hacia adelante y hacia atrás que debían combinarse no compartieran ningún elemento no lineal activo. ¿Cómo se sabe que este es el caso? Debido a la forma en que se eligen las claves en el paso 1 en relación con la clave base, las rutas diferencialesΔi{\displaystyle \Delta _{i}}usando las teclasK[i,0]{\displaystyle K[i,0]}nunca comparten ninguna caja S activa (que es el único componente no lineal en AES), con los rastros diferencialesj{\displaystyle \nabla _{j}}usando la claveK[0,j]{\displaystyle K[0,j]}. Por lo tanto, es posible aplicar la operación XOR a las trayectorias diferenciales y crear la biclique.

ataque de intermediario (MITM)

Cuando se crean las bicliques, el ataque MITM casi puede comenzar. Antes de realizar el ataque MITM,2d{\displaystyle 2^{d}}Valores intermedios del texto plano: PAGiK[i,0]vi{\displaystyle P_{i}{\xrightarrow[{}]{K[i,0]}}{\xrightarrow[{v_{i}}]{}}}, el2d{\displaystyle 2^{d}}Valores intermedios del texto cifrado: vjK[0,j]Sj{\displaystyle {\xleftarrow[{v_{j}}]{}}{\xleftarrow[{}]{K[0,j]}}S_{j}}y los estados intermedios y subclaves correspondientes.K[i,0]{\displaystyle K[i,0]}oK[0,j]{\displaystyle K[0,j]}Sin embargo, se calculan y almacenan previamente.

Ahora se puede llevar a cabo el ataque MITM. Para probar una claveK[i,j]{\displaystyle K[i,j]}, solo es necesario recalcular las partes del cifrado, que se sabe que variarán entrePAGiK[i,0]vi{\displaystyle P_{i}{\xrightarrow[{}]{K[i,0]}}{\xrightarrow[{v_{i}}]{}}}yPAGiK[i,j]vi{\displaystyle P_{i}{\xrightarrow[{}]{K[i,j]}}{\xrightarrow[{v_{i}}]{}}}Para el cálculo hacia atrás desdeSj{\displaystyle S_{j}}avj{\displaystyle {\xleftarrow[{v_{j}}]{}}}, esto son 4 cajas S que necesitan ser recalculadas. Para el cálculo hacia adelante desdePAGi{\displaystyle P_{i}}avi{\displaystyle {\xrightarrow[{v_{i}}]{}}}, son solo 3 (una explicación detallada de la cantidad de recálculos necesarios se puede encontrar en el artículo "Criptoanálisis biclique del AES completo [ 2 ] ", del cual se toma este ejemplo).

Cuando los valores intermedios coinciden, un candidato claveK[i,j]{\displaystyle K[i,j]}entrePAGi{\displaystyle P_{i}}ySj{\displaystyle S_{j}}Se encuentra. A continuación, la clave candidata se prueba con otro par de texto plano/texto cifrado.

Resultados

Este ataque reduce la complejidad computacional de AES128 a2126.18{\displaystyle 2^{126.18}}, que es de 3 a 5 veces más rápido que un enfoque de fuerza bruta. La complejidad de los datos del ataque es288{\displaystyle 2^{88}}y la complejidad de la memoria es28{\displaystyle 2^{8}}.

Referencias

  1. No confundir con el ataque de intermediario ( también conocido como MITM) .
  2. 1 2 3 4 5 6 Bogdanov, Andrey; Khovratovich, Dmitry; Rechberger, Christian. "Criptoanálisis biclique del AES completo" (PDF) . Archivado del original (PDF) el 14 de junio de 2012.
  3. Khovratovich, Dmitry; Leurent, Gaëtan; Rechberger, cristiano (2012). "Narrow-Bicliques: criptoanálisis de IDEA completa" . Eurocripta 2012 . págs. 392– 410. CiteSeerX 10.1.1.352.9346 .  
  4. Bicliques para preimágenes: Ataques a Skein-512 y la familia SHA-2
  5. Diffie, Whitfield; Hellman, Martin E. "Criptoanálisis exhaustivo del estándar de cifrado de datos del NBS" (PDF) . Archivado del original (PDF) el 3 de marzo de 2016. Consultado el 11 de junio de 2014 .
  6. Khovratovich, Dmitry; Rechberger, Christian; Savelieva, Alexandra. "Bicliques para preimágenes: ataques a Skein-512 y la familia SHA-2" (PDF) .
  7. d{\displaystyle d}se supone que es la longitud (implícita por la2[...]{\displaystyle 2^{[...]}}parte,d{\displaystyle d}se expresa en unidades de bits o bytes ) de un único texto cifrado, que, principalmente por razones de conveniencia, también se supone que tiene la misma longitud que el estado intermedio que generó el texto cifrado.
  8. es decir, cifrados parcialmente completados (en curso) de un fragmento de texto
  9. es decir,cifrados completamente terminados de un fragmento de texto
  10. La complejidad espacial es aproximadamente de la escala dednorte2{\displaystyle d\cdot n^{2}}, dóndenorte{\displaystyle n}es la cantidad de textos cifrados (yd{\displaystyle d}es de nuevo la longitud por texto cifrado). Comod{\displaystyle d}Si el tamaño de la muestra crece ligeramente, la cantidad de memoria necesaria para almacenar estos valores aumenta significativamente.
  11. En lenguaje sencillo, una tupla es "una lista de cosas" (pero donde importa el orden en que se organizan).