Articulo de referencia

Estándar de cifrado avanzado

Key sizes of 128, 160, 192, 224, and 256 bits are supported by the Rijndael algorithm, but only the 128, 192, and 256-bit key sizes are specified in the AES standard. "},"block ...

El Estándar de Cifrado Avanzado ( AES ), también conocido por su nombre original Rijndael ( pronunciación en neerlandés: [ ˈrɛindaːl ] , RAIN -dahl ), [ 5 ] es una especificación para el cifrado de datos electrónicos establecida por el Instituto Nacional de Estándares y Tecnología (NIST) de EE. UU. en 2001. [ 6 ]

AES es una variante del cifrado de bloques Rijndael [ 5 ] desarrollado por dos criptógrafos belgas , Joan Daemen y Vincent Rijmen , quienes presentaron una propuesta [ 7 ] al NIST durante el proceso de selección de AES . [ 8 ] Rijndael es una familia de cifrados con diferentes tamaños de clave y de bloque . Para AES, el NIST seleccionó tres miembros de la familia Rijndael, cada uno con un tamaño de bloque de 128 bits, pero con tres longitudes de clave diferentes: 128, 192 y 256 bits.

El AES ha sido adoptado por el gobierno de EE . UU. Sustituye al Estándar de Cifrado de Datos (DES), [ 9 ] publicado en 1977. El algoritmo descrito por AES es un algoritmo de clave simétrica , lo que significa que se utiliza la misma clave tanto para cifrar como para descifrar los datos.

En Estados Unidos, el NIST anunció AES como el estándar US FIPS PUB 197 (FIPS 197) el 26 de noviembre de 2001. [ 6 ] Este anuncio siguió a un proceso de estandarización de cinco años en el que se presentaron y evaluaron quince diseños competidores, antes de que el cifrado Rijndael fuera seleccionado como el más adecuado.

AES está incluido en la norma ISO / IEC 18033-3 . AES entró en vigor como estándar del gobierno federal de EE. UU. el 26 de mayo de 2002, tras la aprobación del secretario de comercio estadounidense, Donald Evans . AES está disponible en diversos paquetes de cifrado y es el primer (y único) algoritmo de cifrado de acceso público aprobado por la Agencia de Seguridad Nacional (NSA) de EE. UU. para información ultrasecreta cuando se utiliza en un módulo criptográfico aprobado por la NSA. [ nota 3 ]

Estándares definitivos

El Estándar de Cifrado Avanzado (AES) se define en estas normas:

  • FIPS PUB 197: Estándar de cifrado avanzado (AES) [ 6 ]
  • ISO/IEC 18033-3: Cifrados de bloques [ 10 ]

Descripción de los cifrados

AES se basa en un principio de diseño conocido como red de sustitución-permutación y es eficiente tanto en software como en hardware. [ 11 ] A diferencia de su predecesor DES, AES no utiliza una red de Feistel . AES es una variante de Rijndael, con un tamaño de bloque fijo de 128 bits y un tamaño de clave de 128, 192 o 256 bits. Por el contrario, Rijndael propiamente dicho se especifica con tamaños de bloque y clave que pueden ser cualquier múltiplo de 32 bits, con un mínimo de 128 y un máximo de 256 bits. La mayoría de los cálculos de AES se realizan en un campo finito particular .

AES opera sobre una matriz de orden columnar de 4 × 4 de 16 bytes b 0 , b 1 , ..., b 15 denominada estado : [ nota 4 ][b0b4b8b12b1b5b9b13b2b6b10b14b3b7b11b15]{\displaystyle {\begin{bmatrix}b_{0}&b_{4}&b_{8}&b_{12}\\b_{1}&b_{5}&b_{9}&b_{13}\\b_{2}&b_{6}&b_{10}&b_{14}\\b_{3}&b_{7}&b_{11}&b_{15}\end{bmatrix}}}

El tamaño de clave utilizado para un cifrado AES especifica el número de rondas de transformación que convierten la entrada, llamada texto plano , en la salida final, llamada texto cifrado . El número de rondas es el siguiente:

  • 10 rondas para claves de 128 bits;
  • 12 rondas para claves de 192 bits;
  • 14 rondas para claves de 256 bits.

Cada ronda consta de varios pasos de procesamiento, incluyendo uno que depende de la clave de cifrado. Se aplican varias rondas inversas para transformar el texto cifrado de nuevo en el texto plano original utilizando la misma clave de cifrado.

Descripción de alto nivel del algoritmo

  1. Expansión de claves : las claves de ronda se derivan de la clave de cifrado utilizando el esquema de claves AES . AES requiere un bloque de clave de ronda independiente de 128 bits para cada ronda, más uno adicional. 
  2. Adición de clave de la ronda inicial:
    1. AddRoundKey : cada byte del estado se combina con un byte de la clave de ronda utilizando el OR exclusivo a nivel de bits . 
  3. 9, 11 o 13 asaltos:
    1. SubBytes : un paso de sustitución no lineal donde cada byte se reemplaza por otro según una tabla de búsqueda . 
    2. ShiftRows : un paso de transposición donde las últimas tres filas del estado se desplazan cíclicamente un cierto número de pasos. 
    3. MixColumns : una operación de mezcla lineal que actúa sobre las columnas del estado, combinando los cuatro bytes de cada columna. 
    4. Agregar tecla redonda
  4. Ronda final (con un total de 10, 12 o 14 rondas):
    1. Subbytes
    2. filas de desplazamiento
    3. Agregar tecla redonda

El paso SubBytes

En el paso SubBytes , cada byte del estado se reemplaza con su entrada en una tabla de búsqueda fija de 8 bits, S ; b ij = S ( a ij ) .

En el paso SubBytes , cada byte a i,j en el arreglo de estado se reemplaza con un SubByte S ( a i,j ) usando una caja de sustitución de 8 bits . Antes de la ronda 0, el arreglo de estado es simplemente el texto plano/entrada. Esta operación proporciona la no linealidad en el cifrado . La caja S utilizada se deriva del inverso multiplicativo sobre GF (2 8 ) , conocido por tener buenas propiedades de no linealidad. Para evitar ataques basados ​​en propiedades algebraicas simples, la caja S se construye combinando la función inversa con una transformación afín invertible . La caja S también se elige para evitar cualquier punto fijo (y por lo tanto es un desorden ), es decir, S ( a i,j ) ≠ a i,j , y también cualquier punto fijo opuesto, es decir, S ( a i,j ) ⊕ a i,j ≠ FF 16 . Durante el proceso de descifrado, se utiliza el paso InvSubBytes (la inversa de SubBytes ), que requiere primero tomar la inversa de la transformación afín y luego encontrar la inversa multiplicativa.

El paso ShiftRows

En el paso ShiftRows , los bytes de cada fila del estado se desplazan cíclicamente hacia la izquierda. El número de posiciones que se desplaza cada byte varía de forma incremental para cada fila.

El paso ShiftRows opera sobre las filas del estado; desplaza cíclicamente los bytes de cada fila mediante un cierto desplazamiento . Para AES, la primera fila permanece sin cambios. Cada byte de la segunda fila se desplaza una posición a la izquierda. De forma similar, la tercera y la cuarta filas se desplazan dos y tres posiciones respectivamente. [ nota 5 ] De esta manera, cada columna del estado de salida del paso ShiftRows se compone de bytes de cada columna del estado de entrada. La importancia de este paso radica en evitar que las columnas se cifren de forma independiente, ya que en ese caso AES degeneraría en cuatro cifrados de bloques independientes.

El paso MixColumns

En el paso MixColumns , cada columna del estado se multiplica por un polinomio fijo c ( x ) .

En el paso MixColumns , los cuatro bytes de cada columna del estado se combinan mediante una transformación lineal invertible . La función MixColumns recibe cuatro bytes como entrada y produce cuatro bytes como salida, donde cada byte de entrada afecta a los cuatro bytes de salida. Junto con ShiftRows , MixColumns proporciona difusión en el cifrado.

Durante esta operación, cada columna se transforma utilizando una matriz fija (la matriz multiplicada por la izquierda por la columna da como resultado un nuevo valor de la columna en el estado): [b0,jb1,jb2,jb3,j]=[2311123111233112][a0,ja1,ja2,ja3,j]0j3{\displaystyle {\begin{bmatrix}b_{0,j}\\b_{1,j}\\b_{2,j}\\b_{3,j}\end{bmatrix}}={\begin{bmatrix}2&3&1&1\\1&2&3&1\\1&1&2&3\\3&1&1&2\end{bmatrix}}{\begin{bmatrix}a_{0,j}\\a_{1,j}\\a_{2,j}\\a_{3,j}\end{bmatrix}}\qquad 0\leq j\leq 3}

La multiplicación de matrices se compone de la multiplicación y la suma de las entradas. Las entradas son bytes tratados como coeficientes de un polinomio de orden x 7 . La suma es simplemente XOR. La multiplicación es módulo el polinomio irreducible x 8 + x 4 + x 3 + x + 1 . Si se procesa bit a bit, entonces, después del desplazamiento, se debe realizar un XOR condicional con 1B 16 si el valor desplazado es mayor que FF 16 (el desbordamiento debe corregirse restando el polinomio generador). Estos son casos especiales de la multiplicación usual en GF(2 8 ) .

En un sentido más general, cada columna se trata como un polinomio sobre GF(2 8 ) y luego se multiplica módulo0116z4+0116{\displaystyle {01}_{16}\cdot z^{4}+{01}_{16}}con un polinomio fijodo(z)=0316z3+0116z2+0116z+0216{\displaystyle c(z)={03}_{16}\cdot z^{3}+{01}_{16}\cdot z^{2}+{01}_{16}\cdot z+{02}_{16}}Los coeficientes se muestran en su equivalente hexadecimal de la representación binaria de los polinomios de bits de GF(2 8 )[ x ] . El paso MixColumns también puede verse como una multiplicación por la matriz MDS particular mostrada en el campo finito GF(2 8 ) . Este proceso se describe con más detalle en el artículo Rijndael MixColumns .

El paso AddRoundKey

En el paso AddRoundKey , cada byte del estado se combina con un byte de la subclave de ronda utilizando la operación XOR (⊕).

En el paso AddRoundKey , la subclave se combina con el estado. Para cada ronda, se deriva una subclave de la clave principal utilizando el esquema de claves de Rijndael ; cada subclave tiene el mismo tamaño que el estado. La subclave se agrega combinando el estado con el byte correspondiente de la subclave mediante una operación XOR bit a bit .

Optimización del cifrado

En sistemas con palabras de 32 bits o más, es posible acelerar la ejecución de este cifrado combinando los pasos SubBytes y ShiftRows con el paso MixColumns , transformándolos en una secuencia de búsquedas en tablas. Esto requiere cuatro tablas de 32 bits con 256 entradas (que ocupan 4096 bytes en total). Una ronda se puede realizar con 16 operaciones de búsqueda en tablas y 12 operaciones OR exclusivas de 32 bits, seguidas de cuatro operaciones OR exclusivas de 32 bits en el paso AddRoundKey . [ 12 ] Alternativamente, la operación de búsqueda en tablas se puede realizar con una sola tabla de 32 bits con 256 entradas (que ocupa 1024 bytes) seguida de operaciones de rotación circular.

Utilizando un enfoque orientado a bytes, es posible combinar los pasos SubBytes , ShiftRows y MixColumns en una única operación de ronda. [ 13 ]

Seguridad

La Agencia de Seguridad Nacional (NSA) revisó todos los finalistas de AES, incluido Rijndael, y declaró que todos ellos eran lo suficientemente seguros para los datos no clasificados del Gobierno de EE. UU. En junio de 2003, el Gobierno de EE. UU. anunció que AES podría utilizarse para proteger información clasificada .

El diseño y la robustez de todas las longitudes de clave del algoritmo AES (es decir, 128, 192 y 256) son suficientes para proteger información clasificada hasta el nivel SECRETO. La información ALTO SECRETO requerirá el uso de claves de 192 o 256 bits. La implementación de AES en productos destinados a proteger sistemas o información de seguridad nacional debe ser revisada y certificada por la NSA antes de su adquisición y uso. [ 14 ]

AES tiene 10 rondas para claves de 128 bits, 12 rondas para claves de 192 bits y 14 rondas para claves de 256 bits.

Sin embargo, las directrices más recientes de la NSA solo permiten cifrar información clasificada con claves de 256 bits. Las claves de 128 y 192 bits ya no son suficientes para el cifrado de información clasificada. [ 15 ]

Ataques conocidos

Para los criptógrafos, una "ruptura" criptográfica es cualquier método más rápido que un ataque de fuerza bruta , es decir, realizar un único intento de descifrado para cada clave posible en secuencia . Por lo tanto, una ruptura puede incluir resultados inviables con la tecnología actual. A pesar de su impracticabilidad, las rupturas teóricas a veces pueden revelar patrones de vulnerabilidad. El mayor ataque de fuerza bruta conocido públicamente contra un algoritmo de cifrado por bloques ampliamente implementado fue contra una clave RC5 de 64 bits por distributed.net en 2006. [ 16 ] 

El espacio de claves aumenta en un factor de 2 por cada bit adicional de longitud de clave, y si todos los valores posibles de la clave son equiprobables, esto se traduce en que el tiempo promedio de búsqueda por fuerza bruta se duplica con cada bit adicional de longitud de clave. Esto implica que el esfuerzo de una búsqueda por fuerza bruta aumenta exponencialmente con la longitud de la clave. La longitud de la clave en sí misma no implica seguridad contra ataques, ya que se ha descubierto que existen cifrados con claves muy largas que son vulnerables.

AES tiene un marco algebraico bastante simple. [ 17 ] En 2002, Nicolas Courtois y Josef Pieprzyk anunciaron un ataque teórico, denominado " ataque XSL " , que pretendía demostrar una debilidad en el algoritmo AES, debido en parte a la baja complejidad de sus componentes no lineales. [ 18 ] Desde entonces, otros artículos han demostrado que el ataque, tal como se presentó originalmente, es inviable; véase Ataque XSL a cifrados de bloques .

Durante el proceso de selección de AES, los desarrolladores de algoritmos competidores escribieron sobre el algoritmo de Rijndael: "Nos preocupa su uso  ... en aplicaciones críticas para la seguridad". [ 19 ] Sin embargo, en octubre de 2000, al final del proceso de selección de AES, Bruce Schneier , desarrollador del algoritmo competidor Twofish , escribió que, si bien pensaba que algún día se desarrollarían ataques académicos exitosos contra Rijndael, "no creía que nadie fuera a descubrir jamás un ataque que permitiera leer el tráfico de Rijndael". [ 20 ]

Para 2006, los ataques más conocidos eran de 7 rondas para claves de 128 bits, 8 rondas para claves de 192 bits y 9 rondas para claves de 256 bits. [ 21 ]

Hasta mayo de 2009, los únicos ataques publicados exitosos contra el AES completo fueron ataques de canal lateral en algunas implementaciones específicas. En 2009, se descubrió un nuevo ataque de clave relacionada que explota la simplicidad del esquema de claves de AES y tiene una complejidad de 2 119 . En diciembre de 2009 se mejoró a 2 99,5 . [ 2 ] Este es un seguimiento de un ataque descubierto anteriormente en 2009 por Alex Biryukov , Dmitry Khovratovich e Ivica Nikolić, con una complejidad de 2 96 para una de cada 2 35 claves. [ 22 ] Sin embargo, los ataques de clave relacionada no son una preocupación en ningún protocolo criptográfico bien diseñado, ya que un protocolo bien diseñado (es decir, el software de implementación) se asegurará de no permitir claves relacionadas, esencialmente restringiendo los medios de un atacante para seleccionar claves por relación.

Otro ataque fue publicado en el blog de Bruce Schneier [ 3 ] el 30 de julio de 2009 y lanzado como preimpresión [ 23 ] el 3 de agosto de 2009. Este nuevo ataque, de Alex Biryukov, Orr Dunkelman , Nathan Keller , Dmitry Khovratovich y Adi Shamir , está dirigido contra AES-256 que utiliza solo dos claves relacionadas y 2³⁹ veces para recuperar la clave completa de 256 bits de una versión de 9 rondas, o 2⁴⁵ veces para una versión de 10 rondas con un tipo más fuerte de ataque de subclave relacionada, o 2⁷⁰ veces para una versión de 11 rondas. AES de 256 bits utiliza 14 rondas, por lo que estos ataques no son efectivos contra AES completo.

La practicidad de estos ataques con claves relacionadas más fuertes ha sido criticada, [ 24 ] por ejemplo, por el artículo sobre ataques de relaciones de clave elegidas en el medio en AES-128 escrito por Vincent Rijmen en 2010. [ 25 ]

En noviembre de 2009, se publicó como preimpresión el primer ataque de distinción de clave conocida contra una versión reducida de 8 rondas de AES-128. [ 26 ] Este ataque de distinción de clave conocida es una mejora del ataque de rebote, o de inicio desde el medio, contra permutaciones tipo AES, que consideran dos rondas consecutivas de permutación como la aplicación de una llamada Super-S-box. Funciona en la versión de 8 rondas de AES-128, con una complejidad temporal de 2 48 , y una complejidad de memoria de 2 32 . AES de 128 bits utiliza 10 rondas, por lo que este ataque no es efectivo contra AES-128 completo.

Los primeros ataques de recuperación de claves en AES completo fueron realizados por Andrey Bogdanov, Dmitry Khovratovich y Christian Rechberger, y se publicaron en 2011. [ 27 ] El ataque es un ataque biclique y es aproximadamente cuatro veces más rápido que la fuerza bruta. Requiere 2 126,2 operaciones para recuperar una clave AES-128. Para AES-192 y AES-256, se necesitan 2 190,2 y 2 254,6 operaciones, respectivamente. Este resultado ha sido mejorado aún más a 2 126,0 para AES-128, 2 189,9 para AES-192 y 2 254,3 para AES-256 por Biaoshuai Tao y Hongjun Wu en un artículo de 2015, [ 28 ] que son los mejores resultados actuales en ataques de recuperación de claves contra AES.

Esta es una ganancia muy pequeña, ya que una clave de 126 bits (en lugar de 128 bits) aún tardaría miles de millones de años en ser descifrada por fuerza bruta en el hardware actual y previsible. Además, los autores calculan que el mejor ataque utilizando su técnica en AES con una clave de 128 bits requiere almacenar 2 88 bits de datos. Eso equivale a unos 38 billones de terabytes de datos, que era más que todos los datos almacenados en todas las computadoras del planeta en 2016. [ 29 ] Un artículo de 2015 mejoró posteriormente la complejidad espacial a 2 56 bits, [ 28 ] que son 9007 terabytes (manteniendo aún una complejidad temporal de aproximadamente 2 126 ).

Según los documentos de Snowden , la NSA está investigando si un ataque criptográfico basado en la estadística tau puede ayudar a romper AES. [ 30 ]

Actualmente, no se conoce ningún ataque práctico que permita a alguien sin conocimiento de la clave leer datos cifrados con AES cuando este se implementa correctamente.

Ataques de canal lateral

Los ataques de canal lateral no atacan el cifrado como una caja negra y, por lo tanto, no están relacionados con la seguridad del cifrado tal como se define en el contexto clásico, pero son importantes en la práctica. Atacan las implementaciones del cifrado en sistemas de hardware o software que filtran datos de forma inadvertida. Existen varios ataques conocidos de este tipo contra diversas implementaciones de AES.

En abril de 2005, D.  J. Bernstein anunció un ataque de temporización de caché que utilizó para vulnerar un servidor personalizado que empleaba el cifrado AES de OpenSSL . [ 31 ] El ataque requirió más de 200 millones de textos planos seleccionados. [ 32 ] El servidor personalizado fue diseñado para proporcionar la mayor cantidad posible de información de temporización (el servidor informa el número de ciclos de máquina que tarda la operación de cifrado). Sin embargo, como señaló Bernstein, «reducir la precisión de las marcas de tiempo del servidor, o eliminarlas de sus respuestas, no detiene el ataque: el cliente simplemente utiliza tiempos de ida y vuelta basados ​​en su reloj local y compensa el aumento del ruido promediando un mayor número de muestras». [ 31 ]

En octubre de 2005, Dag Arne Osvik, Adi Shamir y Eran Tromer presentaron un artículo que demostraba varios ataques de temporización de caché contra las implementaciones de AES presentes en OpenSSL y dm-cryptla función de cifrado de particiones de Linux. [ 33 ] Un ataque logró obtener una clave AES completa tras solo 800 operaciones de cifrado, en un total de 65 milisegundos. Este ataque requiere que el atacante pueda ejecutar programas en el mismo sistema o plataforma que realiza el cifrado AES.

En diciembre de 2009 se publicó un ataque a algunas implementaciones de hardware que utilizaba análisis diferencial de fallos y permitía la recuperación de una clave con una complejidad de 2 32 . [ 34 ]

En noviembre de 2010, Endre Bangerter, David Gullasch y Stephan Krenn publicaron un artículo que describía un método práctico para la recuperación "casi en tiempo real" de claves secretas de AES-128 sin necesidad de texto cifrado ni texto plano. Este método también funciona en implementaciones de AES-128 que utilizan tablas de compresión, como OpenSSL. [ 35 ] Al igual que algunos ataques anteriores, este requiere la capacidad de ejecutar código sin privilegios en el sistema que realiza el cifrado AES, lo cual puede lograrse mediante una infección de malware mucho más fácilmente que tomando el control de la cuenta de root. [ 36 ]

En marzo de 2016, C. Ashokkumar, Ravi Prakash Giri y Bernard Menezes presentaron un ataque de canal lateral contra implementaciones de AES que permite recuperar la clave AES completa de 128 bits en tan solo 6 o 7 bloques de texto plano/cifrado, lo que supone una mejora sustancial respecto a trabajos anteriores que requerían entre 100 y un millón de cifrados. [ 37 ] El ataque propuesto requiere privilegios de usuario estándar y los algoritmos de recuperación de claves se ejecutan en menos de un minuto.

Muchas CPU modernas tienen instrucciones de hardware integradas para AES , que protegen contra ataques de canal lateral relacionados con el tiempo. [ 38 ] [ 39 ]

Ataques cuánticos

AES-256 se considera resistente a la computación cuántica , ya que tiene una resistencia cuántica similar a la de AES-128 frente a ataques tradicionales no cuánticos con 128 bits de seguridad . AES-192 y AES-128 no se consideran resistentes a la computación cuántica debido a sus tamaños de clave más pequeños. AES-192 tiene una resistencia de 96 bits frente a ataques cuánticos y AES-128 tiene una resistencia de 64 bits frente a ataques cuánticos, lo que los hace inseguros. [ 40 ] [ 41 ]

Validación NIST/CSEC

El Programa de Validación de Módulos Criptográficos (CMVP) es operado conjuntamente por la División de Seguridad Informática del Instituto Nacional de Estándares y Tecnología (NIST) del Gobierno de los Estados Unidos y el Centro de Seguridad de las Comunicaciones (CSE) del Gobierno de Canadá. El Gobierno de los Estados Unidos exige el uso de módulos criptográficos validados según la norma NIST FIPS 140-2 para el cifrado de todos los datos clasificados como Sensibles pero No Clasificados (SBU) o superiores. Según la Política Nacional que rige la Adquisición de Seguridad de la Información (NSTISSP) n.° 11: «Los productos de cifrado para proteger información clasificada serán certificados por la NSA, y los productos de cifrado destinados a proteger información sensible serán certificados de acuerdo con la norma NIST FIPS 140-2». [ 42 ]

El Gobierno de Canadá también recomienda el uso de módulos criptográficos validados según la norma FIPS 140 en las aplicaciones no clasificadas de sus departamentos.

Aunque la publicación 197 del NIST ("FIPS 197") es el único documento que abarca el algoritmo AES, los proveedores suelen contactar con el CMVP bajo la norma FIPS 140 y solicitar la validación simultánea de varios algoritmos (como Triple DES o SHA1 ). Por lo tanto, es raro encontrar módulos criptográficos validados exclusivamente según la norma FIPS 197, y el propio NIST no suele publicar por separado los módulos validados según esta norma en su sitio web público. En su lugar, la validación FIPS 197 suele aparecer simplemente como "AES aprobado por FIPS" (con un número de certificado FIPS 197 específico) en la lista actual de módulos criptográficos validados según la norma FIPS 140.

El Programa de Validación de Algoritmos Criptográficos (CAVP) [ 43 ] permite la validación independiente de la correcta implementación del algoritmo AES. Una validación exitosa se refleja en la página de validaciones del NIST. [ 44 ] Esta prueba es un requisito previo para la validación del módulo FIPS 140-2. Sin embargo, una validación exitosa del CAVP no implica en modo alguno que el módulo criptográfico que implementa el algoritmo sea seguro. Un módulo criptográfico que carece de la validación FIPS 140-2 o de la aprobación específica de la NSA no se considera seguro por el Gobierno de los Estados Unidos y no puede utilizarse para proteger datos gubernamentales. [ 42 ]

La validación FIPS 140-2 es difícil de lograr tanto técnica como económicamente. [ 45 ] Existe una batería estandarizada de pruebas, así como un elemento de revisión del código fuente que debe superarse en un período de varias semanas. El costo de realizar estas pruebas a través de un laboratorio aprobado puede ser significativo (por ejemplo, bastante más de US$ 30 000 ) [ 45 ] y no incluye el tiempo que lleva escribir, probar, documentar y preparar un módulo para la validación. Después de la validación, los módulos deben volver a presentarse y reevaluarse si se modifican de alguna manera. Esto puede variar desde simples actualizaciones de documentación si la funcionalidad de seguridad no cambió hasta un conjunto más sustancial de nuevas pruebas si la funcionalidad de seguridad se vio afectada por el cambio.

Vectores de prueba

Los vectores de prueba son un conjunto de cifrados conocidos para una entrada y una clave dadas. El NIST distribuye la referencia de los vectores de prueba de AES como vectores de prueba de respuesta conocida (KAT) de AES. [ nota 6 ]

Actuación

La alta velocidad y los bajos requisitos de RAM fueron algunos de los criterios del proceso de selección de AES. Como algoritmo elegido, AES tuvo un buen rendimiento en una amplia variedad de hardware, desde tarjetas inteligentes de 8 bits hasta ordenadores de alto rendimiento.

En un Pentium Pro , el cifrado AES requiere 18 ciclos de reloj por byte (cpb), [ 46 ] equivalente a un rendimiento de aproximadamente11  MiB/s para unProcesador de 200  MHz .

En las CPU Intel Core y AMD Ryzen que admiten extensiones del conjunto de instrucciones AES-NI , el rendimiento puede ser de varios GiB/s. [ 47 ] En una CPU Intel Westmere , el cifrado AES usando AES-NI tarda aproximadamente1,3  cpb para AES-128 y1,8  cpb para AES-256. [ 48 ]

Implementaciones

Véase también

Notas

  1. El algoritmo Rijndael admite tamaños de clave de 128, 160, 192, 224 y 256 bits, pero el estándar AES solo especifica los tamaños de clave de 128, 192 y 256 bits.
  2. El algoritmo Rijndael admite tamaños de bloque de 128, 160, 192, 224 y 256 bits para cada tamaño de clave, pero solo el tamaño de bloque de 128 bits está especificado en el estándar AES.
  3. Véase el apartado §  Seguridad a continuación
  4. Las variantes de Rijndael de bloques grandes utilizan una matriz con columnas adicionales, pero siempre cuatro filas.
  5. Las variantes de Rijndael con un tamaño de bloque mayor tienen desplazamientos ligeramente diferentes. Para bloques de 128 y 192 bits, el patrón de desplazamiento es el mismo. La fila n se desplaza circularmente a la izquierda n −1 bytes. Para un bloque de 256 bits, la primera fila permanece sin cambios y el desplazamiento para la segunda, tercera y cuarta fila es de 1 byte, 3 bytes y 4 bytes respectivamente; este cambio solo se aplica al cifrado Rijndael cuando se usa con un bloque de 256 bits, ya que AES no usa bloques de 256 bits.
  6. Los vectores de prueba de respuesta conocida (KAT) de AES están disponibles en formato Zip en el sitio del NIST aquí. Archivado el 23/10/2009 en Wayback Machine.

Referencias

  1. "Criptoanálisis biclique del AES completo" (PDF) . Archivado del original (PDF) el 6 de marzo de 2016. Consultado el 1 de mayo de 2019 .
  2. 1 2 Alex Biryukov y Dmitry Khovratovich, Criptoanálisis de clave relacionada de AES-192 y AES-256 completos , "Criptoanálisis de clave relacionada de AES-192 y AES-256 completos" . Tabla 1. Archivado del original el 28 de septiembre de 2009. Recuperado el 16 de febrero de 2010 .
  3. 1 2 Bruce Schneier (30 de julio de 2009). "Otro nuevo ataque AES" . Schneier on Security, un blog sobre seguridad y tecnología de seguridad . Archivado del original el 5 de octubre de 2009. Recuperado el 11 de marzo de 2010 .
  4. Alex Biryukov; Orr Dunkelman; Nathan Keller; Dmitry Khovratovich; Adi Shamir (19 de agosto de 2009). "Ataques de recuperación de claves de complejidad práctica en variantes de AES con hasta 10 rondas" . Archivado del original el 28 de enero de 2010. Recuperado el 11 de marzo de 2010 .
  5. 1 2 Daemen, Joan; Rijmen, Vincent (9 de marzo de 2003). "Propuesta AES: Rijndael" (PDF) . Instituto Nacional de Estándares y Tecnología. pág. 1. Archivado (PDF) del original el 5 de marzo de 2013. Recuperado el 21 de febrero de 2013 . 
  6. 1 2 3 "Anuncio del ESTÁNDAR DE CIFRADO AVANZADO (AES)" (PDF) . Publicación 197 de las Normas Federales de Procesamiento de Información . Instituto Nacional de Estándares y Tecnología de los Estados Unidos (NIST). 26 de noviembre de 2001. Archivado (PDF) del original el 23 de agosto de 2024. Recuperado el 26 de agosto de 2024 .
  7. Joan Daemen y Vincent Rijmen (3 de septiembre de 1999). "Propuesta AES: Rijndael" (PDF) . Archivado del original (PDF) el 3 de febrero de 2007.
  8. Schwartz, John (3 de octubre de 2000). "EE. UU. selecciona una nueva técnica de cifrado" . The New York Times . Archivado del original el 28 de marzo de 2017.
  9. Westlund, Harold B. (2002). "El NIST informa del éxito cuantificable del Estándar de Cifrado Avanzado" . Revista de Investigación del Instituto Nacional de Estándares y Tecnología . Archivado del original el 3 de noviembre de 2007.
  10. "ISO/IEC 18033-3: Tecnología de la información – Técnicas de seguridad – Algoritmos de cifrado – Parte 3: Cifrados por bloques" . Archivado del original el 3 de diciembre de 2013.
  11. Bruce Schneier; John Kelsey; Doug Whiting; David Wagner; Chris Hall; Niels Ferguson; Tadayoshi Kohno; et al. (mayo de 2000). "Comentarios finales del equipo Twofish sobre la selección de AES" (PDF) . Archivado (PDF) del original el 2 de enero de 2010. 
  12. Bertoni, Guido; Breveglieri, Luca; Fragneto, Pasqualina; MacChetti, Marco; Marchesin, Stefano (2003). "Implementación de software eficiente de AES en plataformas de 32 bits" . Hardware criptográfico y sistemas embebidos - CHES 2002. Lecture Notes in Computer Science. Vol. 2523. pp. 159–171 . doi : 10.1007/3-540-36400-5_13 . ISBN   978-3-540-00409-7.
  13. "byte-oriented-aes – Una implementación de AES orientada a bytes de dominio público en C – Google Project Hosting" . Archivado del original el 20 de julio de 2013. Recuperado el 23 de diciembre de 2012 .
  14. Lynn Hathaway (junio de 2003). "Política nacional sobre el uso del estándar de cifrado avanzado (AES) para proteger los sistemas de seguridad nacional y la información de seguridad nacional" (PDF) . Archivado (PDF) del original el 6 de noviembre de 2010. Consultado el 15 de febrero de 2011 .
  15. Agencia de Seguridad Nacional (septiembre de 2022). "Anuncio del paquete de algoritmos comerciales de seguridad nacional 2.0" (PDF) . Consultado el 12 de abril de 2025 .
  16. Ou, George (30 de abril de 2006). "¿Es realmente posible descifrar el cifrado?" . Ziff-Davis. Archivado del original el 8 de agosto de 2010. Recuperado el 7 de agosto de 2010 .
  17. "Sean Murphy" . Universidad de Londres. Archivado del original el 31 de enero de 2009. Consultado el 2 de noviembre de 2008 .
  18. Bruce Schneier. "AES News, Boletín Crypto-Gram, 15 de septiembre de 2002" . Archivado del original el 7 de julio de 2007. Consultado el 27 de julio de 2007 .
  19. Ferguson, Niels ; Schroeppel, Richard ; Whiting, Doug (2001). "Una representación algebraica simple de Rijndael" . En Vaudenay, Serge; Youssef, Amr M. (eds.). Actas de Selected Areas in Cryptography, 2001. Lecture Notes in Computer Science . Vol. 2259. Springer-Verlag . pp. 103–111 . CiteSeerX 10.1.1.28.4921 . doi : 10.1007/3-540-45537-X_8 . ISBN    978-3-540-45537-0Archivado del original el 4 de noviembre de 2006.
  20. Bruce Schneier, Anuncio de AES Archivado el 1 de febrero de 2009 en Wayback Machine , 15 de octubre de 2000
  21. John Kelsey , Stefan Lucks , Bruce Schneier , Mike Stay , David Wagner y Doug Whiting , Criptoanálisis mejorado de Rijndael , Cifrado de software rápido , 2000 pp213–230 "Académico: Criptoanálisis mejorado de Rijndael - Schneier sobre seguridad" . Archivado del original el 23 de febrero de 2007. Recuperado el 6 de marzo de 2007 .
  22. Nikolić, Ivica (2009). "Distinguisher and Related-Key Attack on the Full AES-256" . Advances in Cryptology - CRYPTO 2009. Lecture Notes in Computer Science. Vol. 5677. Springer Berlin / Heidelberg. pp. 231–249 . doi : 10.1007/978-3-642-03356-8_14 . ISBN   978-3-642-03355-1.
  23. Alex Biryukov; Orr Dunkelman; Nathan Keller; Dmitry Khovratovich; Adi Shamir (19 de agosto de 2009). "Ataques de recuperación de claves de complejidad práctica en variantes de AES con hasta 10 rondas" . Archivado del original el 28 de enero de 2010. Recuperado el 11 de marzo de 2010 .
  24. Agren, Martin (2012). Sobre algunos diseños criptográficos ligeros simétricos . Tesis doctoral, Universidad de Lund. pp. 38–39 . 
  25. Vincent Rijmen (2010). "Ataque práctico con título a AES-128 mediante relaciones de texto elegido" (PDF) . Archivo de preimpresiones de criptología de la IACR . Archivado (PDF) del original el 2 de julio de 2010.
  26. Henri Gilbert; Thomas Peyrin (09/11/2009). "Criptoanálisis Super-Sbox: Ataques mejorados para permutaciones tipo AES" . Archivo de preimpresiones de criptología de la IACR . Archivado del original el 04/06/2010 . Consultado el 11/03/2010 .
  27. Bogdanov, Andrey; Khovratovich, Dmitry; Rechberger, Christian (2011). "Criptoanálisis biclique del AES completo". En Lee, Dong Hoon; Wang, Xiaoyun (eds.). Avances en criptología – ASIACRYPT 2011. Lecture Notes in Computer Science. Vol. 7073. pp. 344–371 . doi : 10.1007/978-3-642-25385-0_19 . ISBN   978-3-642-25385-0.
  28. 1 2 Tao, Biaoshuai; Wu, Hongjun (2015). "Mejora del criptoanálisis biclique de AES". En Foo, Ernest; Stebila, Douglas (eds.). Seguridad y privacidad de la información . Lecture Notes in Computer Science. Vol. 9144. pp. 39–56 . doi : 10.1007/978-3-319-19962-7_3 . ISBN   978-3-319-19962-7.
  29. Jeffrey Goldberg (18 de agosto de 2011). "El cifrado AES no ha sido descifrado" . Archivado del original el 8 de enero de 2015. Consultado el 30 de diciembre de 2014 .
  30. "Ojos que espían: La guerra de la NSA contra la seguridad en Internet" . Spiegel Online . Hamburgo, Alemania. 28 de diciembre de 2014. Archivado del original el 24 de enero de 2015. Consultado el 4 de septiembre de 2015 .
  31. 1 2 "Índice de artículos científicos formales" . Cr.yp.to. Archivado del original el 17 de septiembre de 2008. Recuperado el 2 de noviembre de 2008 .
  32. Bruce Schneier (17 de mayo de 2005). "Ataque de sincronización AES" . Archivado del original el 12 de febrero de 2007. Recuperado el 17 de marzo de 2007 .
  33. Dag Arne Osvik; Adi Shamir; Eran Tromer (2005-11-20). "Ataques a la caché y contramedidas: el caso de AES" (PDF) . The Cryptographer's Track en la RSA Conference 2006. Lecture Notes in Computer Science. Vol. 3860. pp. 1–20 . doi : 10.1007/11605805_1 . ISBN   978-3-540-31033-4. Archivado (PDF) del original el 19-06-2006 . Recuperado el 02-11-2008 .
  34. Dhiman Saha; Debdeep Mukhopadhyay; Dipanwita Roy Chowdhury . "Un ataque de falla diagonal al estándar de cifrado avanzado" (PDF) . Archivo ePrint de criptología IACR . Archivado (PDF) desde el original el 22 de diciembre de 2009 . Consultado el 8 de diciembre de 2009 .
  35. Endre Bangerter; David Gullasch y Stephan Krenn (2010). "Juegos de caché: llevando a la práctica los ataques de caché basados ​​en acceso a AES" (PDF) . Archivo de preimpresiones de criptología de la IACR . Archivado (PDF) del original el 14 de diciembre de 2010.
  36. "Rompiendo AES-128 en tiempo real, sin necesidad de texto cifrado" . Hacker News. Archivado del original el 3 de octubre de 2011. Consultado el 23 de diciembre de 2012 .
  37. Ashokkumar, C.; Giri, Ravi Prakash; Menezes, Bernard (12 de mayo de 2016). Algoritmos altamente eficientes para la recuperación de claves AES en ataques de acceso a caché . Simposio Europeo IEEE de Seguridad y Privacidad (EuroS&P) de 2016. Saarbrücken, Alemania. págs. 261–275 . doi : 10.1109/EuroSP.2016.29 . 
  38. Mowery, Keaton; Keelveedhi, Sriram; Shacham, Hovav (19 de octubre de 2012). ¿ Siguen siendo factibles los ataques de temporización de caché AES x86? (PDF) . CCS'12: Conferencia ACM sobre Seguridad Informática y de Comunicaciones. Raleigh, Carolina del Norte, EE. UU. pp. 19–24 . doi : 10.1145/2381913.2381917 . Archivado del original (PDF) el 9 de agosto de 2017. 
  39. "Protegiendo la empresa con Intel AES-NI" (PDF) . Intel Corporation . Archivado (PDF) del original el 31 de marzo de 2013. Consultado el 26 de julio de 2017 .
  40. ^ Bonnetain, Xavier; Naya-Plasencia, María; Schrottenloher, André (11 de junio de 2019). "Análisis de seguridad cuántica de AES" . Transacciones IACR sobre criptología simétrica . 2019 (2): 55– 93. doi : 10.13154/tosc.v2019.i2.55-93 .
  41. O'Shea, Dan (26 de abril de 2022). "AES-256 se une a la resistencia cuántica" . Fierce Electronics . Consultado el 26 de septiembre de 2023 .
  42. 1 2 "NSTISSP No. 11, Hoja informativa revisada, Política nacional de adquisición de seguridad de la información" (PDF) . Archivado del original (PDF) el 21 de abril de 2012. Recuperado el 29 de mayo de 2012 .
  43. "NIST.gov – División de Seguridad Informática – Centro de Recursos de Seguridad Informática" . Csrc.nist.gov. Archivado del original el 2 de enero de 2013. Consultado el 23 de diciembre de 2012 .
  44. "Módulos criptográficos FIPS 140-1 y FIPS 140-2 validados" . Archivado del original el 26/12/2014 . Consultado el 26/06/2014 .
  45. 1 2 OpenSSL, openssl@openssl.org. "Notas de OpenSSL sobre la certificación FIPS" . Openssl.org. Archivado del original el 2 de enero de 2013. Consultado el 23 de diciembre de 2012 .
  46. Schneier, Bruce; Kelsey, John; Whiting, Doug; Wagner, David; Hall, Chris; Ferguson, Niels (1999-02-01). "Comparaciones de rendimiento de las propuestas de la AES" (PDF) . Archivado (PDF) del original el 22-06-2011 . Recuperado el 28-12-2010 .
  47. "Análisis del AMD Ryzen 7 1700X" .
  48. "Nuevo conjunto de instrucciones del estándar de cifrado avanzado (AES) de Intel" (PDF) . Mayo de 2010.
  • "Clave de 256 bits – Bloque de 128 bits – AES" . Criptografía – Cifrados de 256 bits: Código fuente de referencia y presentaciones a concursos internacionales de diseño criptográfico . EmbeddedSW.
  • "Estándar de Cifrado Avanzado (AES)" (PDF) . Estándares Federales de Procesamiento de Información . 26 de noviembre de 2001. doi : 10.6028/NIST.FIPS.197 . 197.
  • Archivo de información del algoritmo AES (antiguo, sin mantenimiento)
  • «Parte 3: Cifrados por bloques» (PDF) . Tecnología de la información – Técnicas de seguridad – Algoritmos de cifrado (2.ª  ed.). ISO. 15/12/2010. ISO/IEC 18033-3:2010(E). Archivado (PDF) del original el 09/10/2022.
  • Animación de Rijndael : AES explicado en detalle y animado con Flash (por Enrique Zabala / Universidad ORT / Montevideo / Uruguay). Esta animación (en inglés, español y alemán) también forma parte de CrypTool 1 (menú Procedimientos individuales → Visualización de algoritmos → AES).
  • Animación HTML5 de Rijndael : la misma animación que la anterior, pero realizada en HTML5.
  • Demostración de AES en Excel : Ejemplo de implementación y demostración en Excel (sin macros) por Tim Wambach.