El Estándar de cifrado avanzado ( AES ), también conocido por su nombre original Rijndael ( pronunciación holandesa: [ˈrɛindaːl] ), [3] es una especificación para el cifrado de datos electrónicos establecida por el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST) en 2001. [4]
General | |
---|---|
Diseñadores | Vincent Rijmen , Joan Daemen |
Publicado por primera vez | 1998 |
Derivado de | Cuadrado |
Sucesores | Anubis , Grand Cru , Kalyna |
Certificación | Ganador de AES , CRYPTREC , NESSIE , NSA |
Detalle de cifrado | |
Tamaños de clave | 128, 192 o 256 bits [nota 1] |
Tamaños de bloque | 128 bits [nota 2] |
Estructura | Red de sustitución-permutación |
Rondas | 10, 12 o 14 (según el tamaño de la tecla) |
Mejor criptoanálisis público | |
Se han publicado ataques que son computacionalmente más rápidos que un ataque completo de fuerza bruta , aunque ninguno a partir de 2013 es computacionalmente factible. [1] Para AES-128, la clave se puede recuperar con una complejidad computacional de 2 126,1 usando el ataque biclicuo . Para ataques biclices en AES-192 y AES-256, se aplican las complejidades computacionales de 2 189,7 y 2 254,4 respectivamente. Los ataques de claves relacionadas pueden romper AES-256 y AES-192 con complejidades 2 99,5 y 2 176 tanto en tiempo como en datos, respectivamente. [2] |
AES es un subconjunto del cifrado en bloque de Rijndael [3] desarrollado por dos criptógrafos belgas , Vincent Rijmen y Joan Daemen , quienes presentaron una propuesta [5] a NIST durante el proceso de selección de AES . [6] Rijndael es una familia de cifrados con diferentes tamaños de clave y bloque. Para AES, NIST seleccionó tres miembros de la familia Rijndael, cada uno con un tamaño de bloque de 128 bits, pero tres longitudes de clave diferentes: 128, 192 y 256 bits.
AES ha sido adoptado por el gobierno de EE . UU . Reemplaza el estándar de cifrado de datos (DES), [7] que se publicó en 1977. El algoritmo descrito por AES es un algoritmo de clave simétrica , lo que significa que se utiliza la misma clave para cifrar y descifrar los datos.
En los Estados Unidos, AES fue anunciado por el NIST como US FIPS PUB 197 (FIPS 197) el 26 de noviembre de 2001. [4] 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 la El cifrado de Rijndael se seleccionó como el más adecuado (consulte el proceso Estándar de cifrado avanzado para obtener más detalles).
AES está incluido en el estándar ISO / IEC 18033-3 . AES entró en vigencia como estándar del gobierno federal de EE. UU. El 26 de mayo de 2002, después de la aprobación del Secretario de Comercio de EE . UU . AES está disponible en muchos paquetes de cifrado diferentes y es el primer (y único) cifrado de acceso público aprobado por la Agencia de Seguridad Nacional de los EE. UU . (NSA) para información ultrasecreta cuando se utiliza en un módulo criptográfico aprobado por la NSA (consulte Seguridad de AES , a continuación) .
Estándares definitivos
El Estándar de cifrado avanzado (AES) se define en cada uno de:
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. [9] A diferencia de su predecesor DES, AES no utiliza una red 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 per se se especifica con bloques y tamaños de clave que pueden ser cualquier múltiplo de 32 bits, con un mínimo de 128 y un máximo de 256 bits.
AES opera en una matriz de bytes de orden principal de 4 × 4 columnas , denominada estado . [nota 3] La mayoría de los cálculos de AES se realizan en un campo finito particular .
Por ejemplo, 16 bytes, se representan como esta matriz bidimensional:
El tamaño de clave utilizado para un cifrado AES especifica el número de rondas de transformación que convierten la entrada, denominada texto sin formato , en la salida final, denominada 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, incluido uno que depende de la clave de cifrado en sí. Se aplica un conjunto de rondas inversas para transformar el texto cifrado de nuevo en el texto sin formato original utilizando la misma clave de cifrado.
Descripción de alto nivel del algoritmo
- KeyExpansion : las claves redondas se derivan de la clave de cifrado utilizando el programa de claves AES . AES requiere un bloque de claves de ronda de 128 bits separado para cada ronda más uno más.
- Adición de clave de ronda inicial:
- AddRoundKey : cada byte del estado se combina con un byte de la clave redonda usando xor bit a bit .
- 9, 11 o 13 rondas:
- SubBytes : un paso de sustitución no lineal en el que cada byte se reemplaza por otro de acuerdo con una tabla de búsqueda .
- ShiftRows : un paso de transposición en el que las últimas tres filas del estado se desplazan cíclicamente un cierto número de pasos.
- MixColumns : una operación de mezcla lineal que opera en las columnas del estado, combinando los cuatro bytes en cada columna.
- AddRoundKey
- Ronda final (haciendo 10, 12 o 14 rondas en total):
- SubBytes
- ShiftRows
- AddRoundKey
La Paso de subBytes
En el Paso de subBytes , cada byteen la matriz de estado se reemplaza con un SubByte utilizando un cuadro de sustitución de 8 bits . Esta operación proporciona la no linealidad en el cifrado . La caja S utilizada se deriva del inverso multiplicativo sobre GF (2 8 ) , que se sabe que tiene 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 puntos fijos (y por lo tanto es un trastorno ), es decir,, y también cualquier punto fijo opuesto, es decir, . Mientras realiza el descifrado, el Paso InvSubBytes (el inverso de SubBytes ), lo que requiere tomar primero la inversa de la transformación afín y luego encontrar la inversa multiplicativa.
La Paso ShiftRows
La El paso ShiftRows opera en las filas del estado; desplaza cíclicamente los bytes de cada fila en un cierto desplazamiento . Para AES, la primera fila no se modifica. Cada byte de la segunda fila se desplaza uno hacia la izquierda. De manera similar, la tercera y cuarta filas se desplazan mediante compensaciones de dos y tres respectivamente. [nota 4] De esta manera, cada columna del estado de salida del El paso ShiftRows se compone de bytes de cada columna del estado de entrada. La importancia de este paso es evitar que las columnas se cifren de forma independiente, en cuyo caso AES degeneraría en cuatro cifrados de bloque independientes.
La Paso MixColumns
En el En el paso MixColumns , los cuatro bytes de cada columna del estado se combinan mediante una transformación lineal invertible . La La función MixColumns toma cuatro bytes como entrada y genera cuatro bytes, donde cada byte de entrada afecta a los cuatro bytes de salida. Juntos 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 columna da un nuevo valor de columna en el estado):
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 polinomio de orden. La adición es simplemente XOR. La multiplicación es un polinomio módulo irreducible. 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 habitual en.
En un sentido más general, cada columna se trata como un polinomio sobre y luego se multiplica módulo con un polinomio fijo . Los coeficientes se muestran en su equivalente hexadecimal de la representación binaria de polinomios de bits de. La El paso MixColumns también se puede ver como una multiplicación por la matriz MDS particular que se muestra en el campo finito . Este proceso se describe con más detalle en el artículo Rijndael MixColumns .
La Paso AddRoundKey
En el Paso AddRoundKey , la subclave se combina con el estado. Para cada ronda, se deriva una subclave de la clave principal utilizando el programa de claves de Rijndael ; cada subclave tiene el mismo tamaño que el estado. La subclave se agrega combinando cada byte del estado con el byte correspondiente de la subclave usando 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 el SubBytes y ShiftRows pasos con el MixColumns paso a paso transformándolos en una secuencia de búsquedas de tablas. Esto requiere cuatro tablas de 32 bits de 256 entradas (que ocupan juntas 4096 bytes). A continuación, se puede realizar una ronda con 16 operaciones de búsqueda de tablas y 12 operaciones exclusivas o de 32 bits, seguidas de cuatro operaciones exclusivas o de 32 bits en el Paso AddRoundKey . [10] Alternativamente, la operación de búsqueda de tablas se puede realizar con una sola tabla de 32 bits de 256 entradas (que ocupa 1024 bytes) seguida de operaciones de rotación circular.
Usando un enfoque orientado a bytes, es posible combinar el SubBytes , ShiftRows y MixColumns entra en una sola operación de ronda. [11]
Seguridad
La Agencia de Seguridad Nacional (NSA) revisó a todos los finalistas de AES, incluido Rijndael, y declaró que todos 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 usarse para proteger información clasificada :
El diseño y la fuerza de todas las longitudes de clave del algoritmo AES (es decir, 128, 192 y 256) son suficientes para proteger la información clasificada hasta el nivel SECRET. La información TOP SECRET requerirá el uso de claves de 192 o 256 longitudes. La implementación de AES en productos destinados a proteger los sistemas de seguridad nacional y / o la información debe ser revisada y certificada por la NSA antes de su adquisición y uso. [12]
AES tiene 10 rondas para claves de 128 bits, 12 rondas para claves de 192 bits y 14 rondas para claves de 256 bits.
En 2006, los ataques más conocidos fueron en 7 rondas para claves de 128 bits, 8 rondas para claves de 192 bits y 9 rondas para claves de 256 bits. [13]
Ataques conocidos
Para los criptógrafos, una "ruptura" criptográfica es algo más rápido que un ataque de fuerza bruta , es decir, realizar un descifrado de prueba para cada clave posible en secuencia (consulte Criptoanálisis ). Por tanto, una ruptura puede incluir resultados que no son factibles con la tecnología actual. A pesar de ser poco práctico, las rupturas teóricas a veces pueden proporcionar información sobre los patrones de vulnerabilidad. El ataque de fuerza bruta más grande y exitoso conocido públicamente contra un algoritmo de cifrado de cifrado en bloque ampliamente implementado fue contra una clave RC5 de 64 bits por distribuido.net en 2006. [14]
El espacio de clave aumenta en un factor de 2 por cada bit adicional de longitud de clave, y si cada valor posible de la clave es equiprobable, esto se traduce en una duplicación del tiempo promedio de búsqueda de clave por fuerza bruta. Esto implica que el esfuerzo de una búsqueda de 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 hay cifrados con claves muy largas que se han encontrado vulnerables.
AES tiene un marco algebraico bastante simple. [15] En 2002, Nicolas Courtois y Josef Pieprzyk anunciaron un ataque teórico, llamado " ataque XSL ", que pretendía mostrar una debilidad en el algoritmo AES, en parte debido a la baja complejidad de sus componentes no lineales. [16] Desde entonces, otros documentos han demostrado que el ataque, como se presentó originalmente, es inviable; consulte Ataque XSL a cifrados de bloque .
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". [17] Sin embargo, en octubre de 2000, al final del proceso de selección de AES, Bruce Schneier , un 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 cualquiera descubrirá un ataque que permitirá a alguien leer el tráfico de Rijndael ". [18]
Hasta mayo de 2009, los únicos ataques publicados con éxito contra el AES completo fueron los ataques de canal lateral en algunas implementaciones específicas. En 2009, se descubrió un nuevo ataque de clave relacionada que explota la simplicidad del programa de claves de AES y tiene una complejidad de 2119 . En diciembre de 2009 se mejoró a 2 99,5 . [2] Este es un seguimiento de un ataque descubierto a principios de 2009 por Alex Biryukov , Dmitry Khovratovich e Ivica Nikolić, con una complejidad de 2 96 por una de cada 2 35 teclas. [19] Sin embargo, los ataques de claves relacionadas no son motivo de preocupación en ningún protocolo criptográfico diseñado correctamente, ya que un protocolo diseñado correctamente (es decir, software de implementación) se encargará de no permitir claves relacionadas, esencialmente restringiendo los medios de un atacante para seleccionar claves para parentesco.
Otro ataque fue blogueado por Bruce Schneier [20] el 30 de julio de 2009 y publicado como preimpresión [21] el 3 de agosto de 2009. Este nuevo ataque, por Alex Biryukov, Orr Dunkelman, Nathan Keller, Dmitry Khovratovich y Adi Shamir , está en contra de AES-256 que usa solo dos claves relacionadas y 2 39 time para recuperar la clave completa de 256 bits de una versión de 9 rondas, o 2 45 time para una versión de 10 rondas con un tipo más fuerte de ataque de subclave relacionada, o 2 70 veces para una versión de 11 rondas. AES de 256 bits usa 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, [22] por ejemplo, por el documento sobre ataques de relaciones de claves elegidas en el medio en AES-128 escrito por Vincent Rijmen en 2010. [23]
En noviembre de 2009, se lanzó como preimpresión el primer ataque distintivo de clave conocida contra una versión reducida de 8 rondas de AES-128. [24] Este ataque distintivo de clave conocida es una mejora del rebote, o el ataque de comienzo desde el medio, contra permutaciones similares a AES, que ven dos rondas consecutivas de permutación como la aplicación de un llamado Super- Caja S Funciona en la versión de 8 rondas de AES-128, con una complejidad de tiempo de 2 48 y una complejidad de memoria de 2 32 . AES de 128 bits usa 10 rondas, por lo que este ataque no es efectivo contra AES-128 completo.
Los primeros ataques de recuperación de claves en AES completos fueron de Andrey Bogdanov, Dmitry Khovratovich y Christian Rechberger, y se publicaron en 2011. [25] El ataque es un ataque biclicua y es más rápido que la fuerza bruta en un factor de aproximadamente cuatro. Requiere 2 operaciones 126.2 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 se ha 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, [26] que son los mejores resultados actuales en el ataque 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 utilizar la fuerza bruta en el hardware actual y previsible. Además, los autores calculan el mejor ataque utilizando su técnica en AES con una clave de 128 bits que requiere almacenar 288 bits de datos. Eso equivale a unos 38 billones de terabytes de datos, que es más que todos los datos almacenados en todas las computadoras del planeta en 2016. Como tal, no hay implicaciones prácticas en la seguridad de AES. [27] La complejidad del espacio se ha mejorado posteriormente a 2 56 bits, [26] que es 9007 terabytes.
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. [28]
En la actualidad, no se conoce ningún ataque práctico que permita a alguien sin conocimiento de la clave leer datos cifrados por AES cuando 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 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 inadvertidamente. Hay varios ataques conocidos de este tipo en diversas implementaciones de AES.
En abril de 2005, DJ Bernstein anunció un ataque de tiempo de caché que usó para romper un servidor personalizado que usaba el cifrado AES de OpenSSL . [29] El ataque requirió más de 200 millones de textos planos elegidos. [30] El servidor personalizado fue diseñado para proporcionar tanta información de tiempo como sea posible (el servidor informa el número de ciclos de la máquina tomados por 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 las respuestas del servidor, no detiene el ataque: el cliente simplemente usa tiempos de ida y vuelta basados en su reloj local y compensa el aumento de ruido. promediando un mayor número de muestras ". [29]
En octubre de 2005, Dag Arne Osvik, Adi Shamir y Eran Tromer presentaron un documento que demostraba varios ataques de tiempo de caché contra las implementaciones en AES que se encuentran en la dm-crypt
función de cifrado de particiones de OpenSSL y Linux . [31] Un ataque pudo obtener una clave AES completa después de solo 800 operaciones que desencadenaron cifrados, en un total de 65 milisegundos. Este ataque requiere que el atacante pueda ejecutar programas en el mismo sistema o plataforma que realiza AES.
En diciembre de 2009 se publicó un ataque a algunas implementaciones de hardware que usaban análisis diferencial de fallas y permite recuperar una clave con una complejidad de 2 32 . [32]
En noviembre de 2010, Endre Bangerter, David Gullasch y Stephan Krenn publicaron un artículo que describía un enfoque práctico para una recuperación "casi en tiempo real" de claves secretas de AES-128 sin la necesidad de texto cifrado o texto plano. El enfoque también funciona en implementaciones de AES-128 que utilizan tablas de compresión, como OpenSSL. [33] Como algunos ataques anteriores, este requiere la capacidad de ejecutar código sin privilegios en el sistema que realiza el cifrado AES, lo que puede lograrse mediante una infección de malware mucho más fácilmente que apropiarse de la cuenta raíz. [34]
En marzo de 2016, Ashokkumar C., Ravi Prakash Giri y Bernard Menezes presentaron un ataque de canal lateral en las implementaciones de AES que pueden recuperar la clave AES completa de 128 bits en solo 6 a 7 bloques de texto plano / cifrado, lo cual es una mejora sustancial con respecto trabajos anteriores que requieren entre 100 y un millón de cifrados. [35] 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 la sincronización. [36] [37]
Validación NIST / CSEC
El Programa de Validación del Módulo Criptográfico (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 Establecimiento de Seguridad de las Comunicaciones (CSE) del Gobierno de Canadá. El gobierno de los Estados Unidos requiere el uso de módulos criptográficos validados para NIST FIPS 140-2 para el cifrado de todos los datos que tienen una clasificación de Sensible pero no clasificado (SBU) o superior. De NSTISSP # 11, Política Nacional que Gobierna la Adquisición de Aseguramiento de la Información: "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 confidencial serán certificados de acuerdo con NIST FIPS 140-2". [38]
El Gobierno de Canadá también recomienda el uso de módulos criptográficos validados FIPS 140 en aplicaciones no clasificadas de sus departamentos.
Aunque la publicación 197 de NIST (“FIPS 197”) es el documento único que cubre el algoritmo AES, los proveedores normalmente se acercan al CMVP bajo FIPS 140 y solicitan la validación de varios algoritmos (como Triple DES o SHA1 ) al mismo tiempo. Por lo tanto, es raro encontrar módulos criptográficos que estén validados únicamente por FIPS 197 y el propio NIST generalmente no se toma el tiempo para enumerar los módulos validados por FIPS 197 por separado en su sitio web público. En su lugar, la validación de FIPS 197 se incluye normalmente como una notación "Aprobado por FIPS: AES" (con un número de certificado FIPS 197 específico) en la lista actual de módulos criptográficos validados por FIPS 140.
El Programa de Validación del Algoritmo Criptográfico (CAVP) [39] permite la validación independiente de la correcta implementación del algoritmo AES. La validación exitosa da como resultado que se incluya en la página de validaciones del NIST. [40] Esta prueba es un requisito previo para la validación del módulo FIPS 140-2 que se describe a continuación. Sin embargo, la validación exitosa de CAVP no implica de ninguna manera 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 la aprobación específica de la NSA no se considera seguro por el gobierno de los EE. UU. Y no se puede utilizar para proteger los datos del gobierno. [38]
La validación FIPS 140-2 es un desafío tanto técnica como fiscalmente. [41] Existe una batería estandarizada de pruebas, así como un elemento de revisión del código fuente que debe aprobarse durante un período de unas pocas semanas. El costo de realizar estas pruebas a través de un laboratorio aprobado puede ser significativo (p. Ej., Más de $ 30,000 USD) [41] y no incluye el tiempo que lleva escribir, probar, documentar y preparar un módulo para su validación. Después de la validación, los módulos deben volver a enviarse y evaluarse nuevamente si se modifican de alguna manera. Esto puede variar desde simples actualizaciones de papeleo 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 determinadas. NIST distribuye la referencia de los vectores de prueba AES como vectores de prueba de respuesta conocida (KAT) de AES. [nota 5]
Actuación
Los requisitos de alta velocidad y baja RAM fueron criterios del proceso de selección de AES. Como algoritmo elegido, AES funcionó bien en una amplia variedad de hardware, desde tarjetas inteligentes de 8 bits hasta computadoras de alto rendimiento.
En un Pentium Pro , el cifrado AES requiere 18 ciclos de reloj por byte, [42] equivalente a un rendimiento de aproximadamente 11 MiB / s para un procesador de 200 MHz.
En las CPU Intel Core y AMD Ryzen que admiten extensiones de conjuntos de instrucciones AES-NI , el rendimiento puede ser de varios GB / s (incluso más de 10 GB / s). [43]
Cuando el hardware de la CPU no admite la aceleración AES, ChaCha es un cifrado alternativo con mejor rendimiento y sin sacrificar la seguridad. [44] [45]
Implementaciones
Ver también
- Modos de operación AES
- Cifrado de disco
- Cifrado de red
- Whirlpool - función hash creada por Vincent Rijmen y Paulo SLM Barreto
- Lista de paquetes de software gratuitos y de código abierto
Notas
- ^ Los tamaños de clave de 128, 160, 192, 224 y 256 bits son compatibles con el algoritmo de Rijndael, pero solo los tamaños de clave de 128, 192 y 256 bits se especifican en el estándar AES.
- ^ Los tamaños de bloque de 128, 160, 192, 224 y 256 bits son compatibles con el algoritmo de Rijndael para cada tamaño de clave, pero solo el tamaño de bloque de 128 bits se especifica en el estándar AES.
- ^ Las variantes de bloques grandes de Rijndael usan una matriz con columnas adicionales, pero siempre cuatro filas.
- ^ Las variantes de Rijndael con un tamaño de bloque más grande tienen compensaciones ligeramente diferentes. Para bloques de tamaños de 128 bits y 192 bits, el patrón de desplazamiento es el mismo. Fila se desplaza circular a la izquierda por bytes. Para un bloque de 256 bits, la primera fila no cambia 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 de Rijndael cuando se usa con un bloque de 256 bits , ya que AES no utiliza bloques de 256 bits.
- ^ 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 de octubre de 2009 en Wayback Machine.
Referencias
- ^ "Criptoanálisis Biclique del AES completo" (PDF) . Archivado desde el original (PDF) el 6 de marzo de 2016 . Consultado el 1 de mayo de 2019 .
- ^ a b Alex Biryukov y Dmitry Khovratovich, Criptoanálisis de claves relacionadas del AES-192 completo y AES-256 , "Copia archivada" . Tabla 1. Archivado desde el original el 28 de septiembre de 2009 . Consultado el 16 de febrero de 2010 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ a b Daemen, Joan; Rijmen, Vincent (9 de marzo de 2003). "Propuesta AES: Rijndael" (PDF) . Instituto Nacional de Estándares y Tecnología. pag. 1. Archivado (PDF) desde el original el 5 de marzo de 2013 . Consultado el 21 de febrero de 2013 .
- ^ a b c "Anuncio del ESTÁNDAR DE ENCRIPTACIÓN AVANZADA (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) desde el original el 12 de marzo de 2017 . Consultado el 2 de octubre de 2012 .
- ^ Joan Daemen y Vincent Rijmen (3 de septiembre de 1999). "Propuesta AES: Rijndael" (PDF) . Archivado desde el original (PDF) el 3 de febrero de 2007.
- ^ John Schwartz (3 de octubre de 2000). "EE.UU. selecciona una nueva técnica de cifrado" . New York Times . Archivado desde el original el 28 de marzo de 2017.
- ^ Westlund, Harold B. (2002). "NIST informa un éxito medible del estándar de cifrado avanzado" . Revista de Investigación del Instituto Nacional de Estándares y Tecnología . Archivado desde el original el 3 de noviembre de 2007.
- ^ "ISO / CEI 18033-3: Tecnología de la información - Técnicas de seguridad - Algoritmos de cifrado - Parte 3: Cifrados en bloque" . Archivado desde el original el 3 de diciembre de 2013.
- ^ 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) desde el original el 2 de enero de 2010.
- ^ "Implementación de software eficiente de AES en plataformas de 32 bits". Notas de la conferencia en Ciencias de la Computación: 2523. 2003
- ^ "aes orientado a bytes - Una implementación orientada a bytes de dominio público de AES en C - Alojamiento de proyectos de Google" . Archivado desde el original el 20 de julio de 2013 . Consultado el 23 de diciembre de 2012 .
- ^ 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) desde el original el 6 de noviembre de 2010 . Consultado el 15 de febrero de 2011 .
- ^ 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 desde el original el 23 de febrero de 2007 . Consultado el 6 de marzo de 2007 .
- ^ Ou, George (30 de abril de 2006). "¿El cifrado es realmente descifrable?" . Ziff-Davis. Archivado desde el original el 8 de agosto de 2010 . Consultado el 7 de agosto de 2010 .
- ^ "Sean Murphy" . Universidad de londres. Archivado desde el original el 31 de enero de 2009 . Consultado el 2 de noviembre de 2008 .
- ^ Bruce Schneier. "AES News, Crypto-Gram Newsletter, 15 de septiembre de 2002" . Archivado desde el original el 7 de julio de 2007 . Consultado el 27 de julio de 2007 .
- ^ Niels Ferguson ; Richard Schroeppel ; Doug Whiting (2001). "Una simple representación algebraica de Rijndael" . Proceedings of Selected Areas in Cryptography, 2001, Lecture Notes in Computer Science . Springer-Verlag . págs. 103-111. CiteSeerX 10.1.1.28.4921 . Archivado desde el original (PDF / PostScript ) el 4 de noviembre de 2006 . Consultado el 6 de octubre de 2006 .
- ↑ Bruce Schneier, AES Announced Archivado 2009-02-01 en Wayback Machine , 15 de octubre de 2000
- ^ Nikolić, Ivica (2009). "Distinguisher and Related-Key Attack on the Full AES-256". Avances en criptología - CRYPTO 2009 . Apuntes de conferencias en Ciencias de la Computación. 5677 . Springer Berlín / Heidelberg. págs. 231–249. doi : 10.1007 / 978-3-642-03356-8_14 . ISBN 978-3-642-03355-1.
- ^ Bruce Schneier (30 de julio de 2009). "Otro nuevo ataque AES" . Schneier on Security, un blog que cubre la seguridad y la tecnología de seguridad . Archivado desde el original el 5 de octubre de 2009 . Consultado el 11 de marzo de 2010 .
- ^ 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 desde el original el 28 de enero de 2010 . Consultado el 11 de marzo de 2010 .
- ^ Agren, Martín (2012). En algunos diseños criptográficos ligeros simétricos . Disertación, Universidad de Lund. págs. 38–39.
- ^ Vincent Rijmen (2010). "Ataque con título práctico en AES-128 utilizando relaciones de texto elegido" (PDF) . Archivado (PDF) desde el original el 2 de julio de 2010. Cite journal requiere
|journal=
( ayuda ) - ^ Henri Gilbert; Thomas Peyrin (9 de noviembre de 2009). "Criptoanálisis Super-Sbox: Ataques mejorados para permutaciones similares a AES" . Archivado desde el original el 4 de junio de 2010 . Consultado el 11 de marzo de 2010 .
- ^ Andrey Bogdanov; Dmitry Khovratovich y Christian Rechberger (2011). "Criptoanálisis Biclique del AES completo" (PDF) . Archivado desde el original (PDF) el 5 de septiembre de 2012.
- ^ a b Biaoshuai Tao y Hongjun Wu (2015). Seguridad y privacidad de la información . Apuntes de conferencias en Ciencias de la Computación. 9144 . págs. 39–56. doi : 10.1007 / 978-3-319-19962-7_3 . ISBN 978-3-319-19961-0.
- ^ Jeffrey Goldberg (18 de agosto de 2011). "El cifrado AES no está roto" . Archivado desde el original el 8 de enero de 2015 . Consultado el 30 de diciembre de 2014 .
- ^ SPIEGEL ONLINE, Hamburgo, Alemania (28 de diciembre de 2014). "Dentro de la guerra de la NSA contra la seguridad de Internet" . SPIEGEL EN LÍNEA . Archivado desde el original el 24 de enero de 2015 . Consultado el 4 de septiembre de 2015 .
- ^ a b "Índice de artículos científicos formales" . Cr.yp.to. Archivado desde el original el 17 de septiembre de 2008 . Consultado el 2 de noviembre de 2008 .
- ^ Bruce Schneier. "Ataque de sincronización AES" . Archivado desde el original el 12 de febrero de 2007 . Consultado el 17 de marzo de 2007 .
- ^ Dag Arne Osvik; Adi Shamir; Eran Tromer (20 de noviembre de 2005). "Caché de ataques y contramedidas: el caso de AES" (PDF) . Archivado (PDF) desde el original el 19 de junio de 2006 . Consultado el 2 de noviembre de 2008 . Cite journal requiere
|journal=
( ayuda ) - ^ Dhiman Saha; Debdeep Mukhopadhyay; Dipanwita RoyChowdhury. "Un ataque de falla diagonal en el estándar de cifrado avanzado" (PDF) . Archivado (PDF) desde el original el 22 de diciembre de 2009 . Consultado el 8 de diciembre de 2009 . Cite journal requiere
|journal=
( ayuda ) - ^ Endre Bangerter; David Gullasch y Stephan Krenn (2010). "Juegos de caché: llevar a la práctica los ataques de caché basados en acceso en AES" (PDF) . Archivado (PDF) desde el original el 14 de diciembre de 2010. Cite journal requiere
|journal=
( ayuda ) - ^ "Rompiendo AES-128 en tiempo real, no se requiere texto cifrado | Hacker News" . News.ycombinator.com. Archivado desde el original el 3 de octubre de 2011 . Consultado el 23 de diciembre de 2012 .
- ^ Ashokkumar C .; Ravi Prakash Giri; Bernard Menezes (2016). 2016 IEEE European Symposium on Security and Privacy (EuroS & P) . págs. 261-275. doi : 10.1109 / EuroSP.2016.29 . ISBN 978-1-5090-1751-5. S2CID 11251391 .
- ^ "¿Siguen siendo factibles los ataques de sincronización de caché AES x86?" (PDF) . cseweb.ucsd.edu . Archivado (PDF) desde el original el 9 de agosto de 2017.
- ^ "Copia archivada" (PDF) . Archivado (PDF) desde el original el 31 de marzo de 2013 . Consultado el 26 de julio de 2017 .Mantenimiento de CS1: copia archivada como título ( enlace ) Asegurar la empresa con Intel AES-NI
- ^ a b "Copia archivada" (PDF) . Archivado desde el original (PDF) el 21 de abril de 2012 . Consultado el 29 de mayo de 2012 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ "NIST.gov - División de seguridad informática - Centro de recursos de seguridad informática" . Csrc.nist.gov. Archivado desde el original el 2 de enero de 2013 . Consultado el 23 de diciembre de 2012 .
- ^ "Módulos criptográficos FIPS 140-1 y FIPS 140-2 validados" . Archivado desde el original el 26 de diciembre de 2014 . Consultado el 26 de junio de 2014 .
- ^ a b OpenSSL, [email protected]. "Notas de OpenSSL sobre la certificación FIPS" . Openssl.org. Archivado desde el original el 2 de enero de 2013 . Consultado el 23 de diciembre de 2012 .
- ^ Schneier, Bruce; Kelsey, John; Whiting, Doug; Wagner, David; Hall, Chris; Ferguson, Niels (1 de febrero de 1999). "Comparaciones de rendimiento de las presentaciones de AES" (PDF) . Archivado (PDF) desde el original el 22 de junio de 2011 . Consultado el 28 de diciembre de 2010 .
- ^ "Revisión de AMD Ryzen 7 1700X" .
- ^ "Entonces quieres usar un cifrado alternativo ..." . Algunas reflexiones sobre la ingeniería criptográfica . 9 de octubre de 2012.
- ^ Bernstein, Daniel. "¿Por qué cambiar de AES a un nuevo cifrado de flujo?" . cr.yp.to . Consultado el 17 de febrero de 2021 .
- Courtois, Nicolas; Pieprzyk, Josef (2003). "Criptoanálisis de cifrados en bloque con sistemas de ecuaciones sobredefinidos" . En Zheng, Yuliang (ed.). Advances in Cryptology - ASIACRYPT 2002: Octava Conferencia Internacional sobre la Teoría y Aplicación de la Criptología y la Seguridad de la Información, Queenstown, Nueva Zelanda, 1 al 5 de diciembre de 2002, Actas . Saltador. págs. 268-287. ISBN 978-3-540-36178-7.
- Daemen, Joan; Rijmen, Vincent (2002). El diseño de Rijndael: AES: el estándar de cifrado avanzado . Saltador. ISBN 978-3-540-42580-9.
- Paar, Christof; Pelzl, enero (2009). Comprensión de la criptografía: un libro de texto para estudiantes y profesionales . Saltador. págs. 87-122. ISBN 978-3-642-04101-3. enlace alternativo (el sitio web complementario contiene conferencias en línea sobre AES)
enlaces externos
- "Clave de 256 bits - bloque de 128 bits - AES" . Criptografía - Cifrados de 256 bits: código fuente de referencia y envíos a concursos internacionales de diseños criptográficos . 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.
- Información de archivo del algoritmo AES - (antiguo, sin mantenimiento)
- "Parte 3: cifrados en bloque" (PDF) . Tecnologías de la información - Técnicas de seguridad - Algoritmos de cifrado (2ª ed.). YO ASI. 2010-12-15. ISO / IEC 18033-3: 2010 (E).
- Animación de Rijndael - AES profundamente explicada y animada usando 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 realizada en HTML5.