Norma de codificación avanzada - Advanced Encryption Standard


De Wikipedia, la enciclopedia libre
Norma de codificación avanzada
(Rijndael)
AES-SubBytes.svg
El SubBytes paso, una de las cuatro etapas en una ronda de AES
General
diseñadores Vicente Rijmen , Joan Daemen
Publicado por primera vez 1998
Derivado de Cuadrado
sucesores Anubis , Grand Cru
Proceso de dar un título AES ganador, CRYPTREC , NESSIE , NSA
detalle de cifrado
tamaños de clave 128, 192 o 256 bits
tamaño de los bloques 128 bits
Estructura Sustitución de red permutación
rondas 10, 12 o 14 (dependiendo del tamaño de la clave)
Mejor pública criptoanálisis
Los ataques han sido publicados que son computacionalmente más rápido que un completo ataque de fuerza bruta , aunque ninguno a partir de 2013 son computacionalmente factible. Para AES-128, la clave se puede recuperar con una complejidad computacional de 2 126,1 usando el ataque biclique . Para los ataques biclique en AES-192 y AES-256, las complejidades computacionales de 2 189,7 y 2 254,4 aplican respectivamente. Relativos a la clave ataques pueden romper AES-192 y AES-256 con complejidades 2 176 y 2 99.5 en el tiempo y de datos, respectivamente.

El Advanced Encryption Standard ( AES ), también conocido por su nombre original Rijndael ( pronunciación holandesa: [rɛindaːl] ), es una especificación para el cifrado de datos electrónicos establecidos por los EE.UU. Instituto Nacional de Estándares y Tecnología (NIST) en 2001.

AES es un subconjunto de la Rijndael cifrado en bloque desarrollado por dos belgas criptógrafos, Vicente Rijmen y Joan Daemen , que presentaron una propuesta a NIST durante el proceso de selección AES . Rijndael es una familia de sistemas de cifrado con claves diferentes tamaños y de bloque.

Para AES, NIST seleccionó tres miembros de la familia Rijndael, cada uno con un tamaño de bloque de 128 bits, sino tres diferentes longitudes de clave: 128, 192 y 256 bits.

AES ha sido adoptada por el gobierno de Estados Unidos y ahora se utiliza en todo el mundo. Se reemplaza el Data Encryption Standard (DES), que fue publicado en 1977. El algoritmo descrito por AES es un algoritmo de clave simétrica , es decir, la misma clave se utiliza tanto para cifrar y descifrar los datos.

En los Estados Unidos, AES fue anunciado por el NIST como los Estados Unidos FIPS PUB 197 (FIPS 197) el 26 de noviembre de 2001. Este anuncio se produjo tras un proceso de normalización de cinco años en el que se presentaron y evaluaron quince diseños de la competencia, antes de que el sistema de cifrado Rijndael fue seleccionada como la más adecuada (véase Advanced Encryption Standard proceso para más detalles).

AES entró en vigor como norma gobierno federal el 26 de mayo de 2002, después de la aprobación por el Secretario de Comercio . AES está incluido en el estándar ISO / IEC 18033-3. AES está disponible en muchos paquetes de cifrado diferentes, y es la primera (y única) de acceso público cifrado aprobado por la Agencia Nacional de Seguridad (NSA) de alto secreto la información cuando se utiliza en un NSA aprobado módulo criptográfico (ver Seguridad de AES , más adelante).

normas definitivas

El Advanced Encryption Standard (AES) se define en cada uno de:

  • FIPS PUB 197: Advanced Encryption Standard (AES)
  • ISO / IEC 18033-3 :: bloque cifrados

Descripción de la cifra

AES se basa en un principio de diseño conocida como una red de sustitución-permutación , y es eficiente tanto en software como hardware. A diferencia de su predecesor DES, AES no utiliza una red de Feistel . AES es una variante de Rijndael que tiene una fija tamaño de bloque de 128 bits de , y un tamaño de clave de 128, 192 o 256 bits. Por el contrario, Rijndael per se se especifica con el bloque 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 un 4 × 4 orden de columnas-major matriz de bytes, denominada el estado . La mayoría de los cálculos de AES se realizan en un determinado campo finito .

Por ejemplo, si hay 16 bytes, , estos bytes se representan como esta matriz de dos dimensiones:

El tamaño de la clave utilizada para un cifrado AES especifica el número de rondas de transformación que convierten la entrada, llamados el texto en claro , en la salida final, llamado el texto cifrado . El número de rondas son los siguientes:

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

Cada ronda consta de varios pasos de procesamiento, incluyendo uno que depende de la clave de cifrado en sí. Un conjunto de rondas inversas se aplica para transformar texto cifrado de nuevo en el texto plano original utilizando la misma clave de cifrado.

Descripción de alto nivel del algoritmo

  1. KeyExpansion teclas -Round se derivan de la clave de cifrado usando horario clave de Rijndael . AES requiere un bloque de claves redondo de 128 bits por separado para cada ronda más uno más.
  2. Además ronda inicial de clave:
    1. AddRoundKey byte -cada del estado se combina con un bloque de la clave de ciclo usando xor bit a bit .
  3. 9, 11 o 13 rondas:
    1. SubBytes -a no lineal etapa de sustitución donde cada byte es reemplazado con otro de acuerdo a una tabla de búsqueda .
    2. ShiftRows -a paso transposición en las tres últimas filas del estado se desplazan cíclicamente un cierto número de pasos.
    3. MixColumns -a operación de mezcla lineal que opera en las columnas del estado, la combinación de los cuatro bytes en cada columna.
    4. AddRoundKey
  4. ronda final (haciendo 10, 12 o 14 rondas en total):
    1. SubBytes
    2. ShiftRows
    3. AddRoundKey

Los SubBytes paso

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

En el SubBytes paso, cada byte en el estado de matriz se sustituye con un SubByte usando un 8-bit caja de sustitución . Esta operación proporciona la no linealidad en el sistema de cifrado . El S-caja utilizada se deriva de la inversa multiplicativa sobre GF (2 8 ) , conocido por tener buenas propiedades de no linealidad. Para evitar ataques basados en las propiedades algebraicas simples, la caja S se construye combinando la función inversa con un invertible transformación afín . El S-box se elige también para evitar cualquier puntos fijos (y así es un trastorno ), es decir, y también cualquier puntos fijos opuestos, es decir, . Mientras se realiza el descifrado, la InvSubBytes paso (la inversa de SubBytes se utiliza), que requiere primero de tomar la inversa de la transformación afín y luego encontrar el inverso multiplicativo.

Los ShiftRows paso

En el ShiftRows paso, bytes en cada fila del estado se desplazan cíclicamente a la izquierda. El número de plazas es cambiado cada byte es diferente para cada fila.

El ShiftRows paso opera sobre las filas de estado; se desplaza de forma cíclica los bytes en cada fila por un cierto compensados . Para AES, la primera fila se deja sin cambios. Cada byte de la segunda fila se desplaza de la izquierda. Del mismo modo, la tercera y cuarta filas son desplazados por las compensaciones de dos y tres respectivamente. De esta manera, cada columna de la estado de salida del ShiftRows paso se compone de bytes de cada columna del estado de entrada. La importancia de este paso es evitar las columnas que se cifran de forma independiente, en cuyo caso AES degenera en cuatro cifras de bloque independientes.

El MixColumns paso

En el MixColumns paso, cada columna del estado se multiplica con un polinomio fijo .

En el MixColumns paso, los cuatro bytes de cada columna del estado se combinan utilizando un invertible transformación lineal . El MixColumns función toma cuatro bytes como entrada y da salida a cuatro bytes, donde cada byte de entrada afecta a todos los cuatro bytes de salida. Junto con ShiftRows , MixColumns ofrece la difusión en el sistema de cifrado.

Durante esta operación, cada columna se transforma usando una matriz fija (matriz-multiplicado dada por la columna da el nuevo valor de la columna en el estado):

La multiplicación de matrices se compone de multiplicación y la suma de las entradas. Las entradas son bytes de 8 bits tratados como coeficientes de polinomio de orden . Además es simplemente XOR. La multiplicación es de módulo polinomio irreducible . Si el bit procesado por bit, entonces, después de desplazar, un condicional XOR con 1B 16 debe realizarse si el valor desplazado es mayor que FF 16 (desbordamiento debe ser corregida por sustracción del polinomio generador). Estos son casos especiales de la multiplicación usual en .

En sentido más general, cada columna se trata como un polinomio más y luego se multiplica de módulo con un polinomio fijo . Los coeficientes se muestran en su hexadecimal equivalente de la representación binaria de los polinomios de bits de . El MixColumns paso también puede ser vista como una multiplicación por el particular mostrada matriz MDS en el campo finito . Este proceso se describe con más detalle en el artículo de Rijndael MixColumns .

El AddRoundKey paso

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

En el AddRoundKey paso, la subclave se combina con el estado. Para cada ronda, una subclave se deriva de la principal clave usando horario clave de Rijndael ; cada subclave es del mismo tamaño que el estado. La subclave se añade mediante la combinación de cada byte del estado con el byte correspondiente de la subclave usando bit a bit XOR .

Optimización del sistema de cifrado

En los sistemas con 32 bits o palabras de mayor tamaño, es posible acelerar la ejecución de este sistema de cifrado mediante la combinación de los SubBytes y ShiftRows pasos con el MixColumns paso a su transformación en una secuencia de operaciones de búsqueda de tabla. Esto requiere cuatro mesas de 32 bits 256 de entrada (junto ocupan 4096 bytes). Una ronda entonces puede realizarse con operaciones de búsqueda 16 de mesa y 12 de 32 bits o-exclusiva operaciones, seguido por cuatro de 32 bits operaciones exclusivos-o en la AddRoundKey paso. Alternativamente, la operación de tabla de consulta se puede realizar con un único 256-entrada de la tabla de 32 bits (que ocupa 1024 bytes) seguido de operaciones de rotación circular.

El uso de un enfoque orientado a byte-, es posible combinar los SubBytes , ShiftRows , y MixColumns pasos en una sola operación ronda.

Seguridad

Hasta mayo de 2009, los únicos ataques exitosos contra los publicados AES completos fueron los ataques de canal lateral en algunas implementaciones específicas. La Agencia Nacional de Seguridad (NSA) revisó todos los finalistas de la AES, incluyendo el Rijndael, y afirmó que todos ellos eran lo suficientemente seguro para los datos no clasificados del gobierno estadounidense. En junio de 2003, el gobierno de Estados Unidos anunció que AES podría utilizarse para proteger la 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 secreto. información secreta requerirá el uso de cualquiera de los 192 o 256 longitudes de clave. La implementación de AES en los productos destinados a proteger los sistemas y / o información de seguridad nacional debe ser revisado y certificado por la NSA antes de su adquisición y uso.

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

Para el año 2006, los ataques más conocidos eran en 7 rondas de claves de 128 bits, 8 rondas para llaves de 192 bits, y 9 rondas de claves de 256 bits.

ataques conocidos

Para criptógrafos, una criptográfica "ruptura" es nada más rápido que un ataque de fuerza bruta - es decir, la realización de un ensayo de descifrado para cada tecla posible en secuencia (ver criptoanálisis ). Una ruptura puede pues incluir resultados que son factibles con la tecnología actual. A pesar de ser poco práctico, se rompe teórico puede a veces dar una idea de los patrones de vulnerabilidad. El mayor éxito de público conocimiento ataque de fuerza bruta contra un algoritmo de cifrado de bloques de cifrado ampliamente implementada fue contra una de 64 bits RC5 clave por distributed.net en 2006.

El espacio de clave aumenta en un factor de 2 para cada bit adicional de longitud de la clave, y si cada valor posible de la clave es equiprobable, esto se traduce en una duplicación de la tecla de fuerza bruta promedio de tiempo de búsqueda. Esto implica que el esfuerzo de una búsqueda de fuerza bruta aumenta exponencialmente con la longitud de la clave. Longitud de la clave en sí mismo no implica la seguridad contra los ataques, ya que hay sistemas de cifrado con claves muy largas que se han encontrado para ser vulnerable.

AES tiene un marco bastante simple algebraica. En 2002, un ataque teórico, llamado el " ataque XSL ", fue anunciado por Nicolas Courtois y Josef Pieprzyk , que pretende mostrar una debilidad en el algoritmo AES, en parte debido a la baja complejidad de sus componentes no lineales. Desde entonces, otros trabajos han demostrado que el ataque, tal como se presenta en un principio, no es viable; ver el ataque XSL en cifras de bloque .

Durante el proceso de selección AES, los desarrolladores de algoritmos que compiten escribieron del algoritmo de Rijndael "... nos preocupa [su] ... utilizar en aplicaciones críticas para la seguridad." En octubre de 2000, sin embargo, al final del proceso de selección AES, Bruce Schneier , un desarrollador del algoritmo competir Twofish , escribió que mientras pensaba exitosos ataques académicos sobre Rijndael se desarrollarán algún día, él no "creer que alguien alguna vez descubrir un ataque que le permitirá a alguien lee el tráfico Rijndael".

En 2009, un nuevo ataque relativos a la clave se descubrió que explota la simplicidad de programación clave de AES y tiene una complejidad de 2 119 . En diciembre de 2009 se mejoró a 2 99.5 . Este es un seguimiento de un ataque descubierto a principios de 2009 por Alex Biryukov , Dmitry Khovratovich , e Ivica Nikolic, con una complejidad de 2 96 para uno de cada 2 35 teclas. Sin embargo, los ataques relativos a la clave no son de preocupación en cualquier protocolo criptográfico bien diseñado, como un protocolo diseñado correctamente (es decir, el software de puesta en práctica) tendrá cuidado de no permitir claves relacionadas, fundamentalmente por restringir los medios de un atacante de la selección de teclas para la relación.

Otro ataque se escribió en su blog por Bruce Schneier el 30 de julio de 2009 y lanzado como un pre-impresión, 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 utiliza sólo dos claves relacionadas y 2 39 tiempo para recuperar la clave completa 256 bits de una versión 9-redonda, o 2 45 tiempo para una versión 10-redonda con un tipo más fuerte de ataque subclave relacionados, o 2 70 tiempo para una la versión 11-redonda. AES de 256 bits utiliza 14 rondas, por lo que estos ataques no son eficaces contra AES completo.

La viabilidad de estos ataques con claves relacionados fuertes ha sido criticado, por ejemplo, por el documento sobre "-clave de relaciones elegidas-in-the-middle" ataques a AES-128 escritos por Vicente Rijmen en 2010.

En noviembre de 2009, el primer ataque distintiva-clave conocida contra una versión reducida de 8 rondas de AES-128 fue lanzado como un pre-impresión. Este ataque clave distintivo conocido es una mejora de la recuperación, o el ataque arranque desde el medio, contra el AES-como permutaciones, que ven dos rondas consecutivas de permutación como la aplicación de la llamada Super-Sbox. Funciona en la versión de 8 rondas de AES-128, con un tiempo de complejidad 2 48 , y una complejidad de memoria de 2 32 . AES de 128 bits utiliza 10 rondas, por lo que este ataque no es eficaz contra llena AES-128.

Los primeros ataques de recuperación de clave de AES completo se debieron a Andrei Bogdanov, Dmitry Khovratovich, y Christian Rechberger, y se publicaron en 2011. El ataque es un ataque biclique y es más rápido que la fuerza bruta en un factor de aproximadamente cuatro. Requiere 2 126,2 operaciones para recuperar una clave AES-128. Para AES-192 y AES-256, 2 190,2 y 2 254,6 se necesitan operaciones, respectivamente. Este resultado se ha mejorado aún más para 2 126,0 para AES-128, 2 189,9 para AES-192 y 2 254,3 para AES-256, que son los actuales mejores resultados en ataque clave de recuperación en contra de AES.

Este es un muy pequeño aumento, como una clave de 126 bits (en lugar de 128 bits) que todavía tienen mil millones de años a la fuerza bruta en el hardware actual y previsible. Además, los autores calculan el mejor ataque usando su técnica en AES con una clave de 128 bits requiere el almacenamiento de 2 88 bits de datos. Eso equivale a unos 38 trillón terabytes de datos, que es más que todos los datos almacenados en todos los equipos en el planeta en 2016. Como tal, se trata de un ataque serio práctico que no tiene ninguna implicación práctica en la seguridad AES. La complejidad espacio más tarde ha sido mejorado para 2 56 bits, que es 9007 terabytes.

De acuerdo con los documentos de Snowden , la NSA está haciendo la investigación sobre si un ataque criptográfico basado en estadística tau puede ayudar a romper AES.

En la actualidad, no se conoce ningún ataque práctico que permita a alguien sin conocimiento de la clave para leer los datos cifrados por AES cuando se implementa correctamente.

ataques de canal lateral

Ataques de canal lateral no atacan el sistema de cifrado como un cuadro negro , y por lo tanto no están relacionados con la seguridad de cifrado como se define en el contexto clásico, pero son importantes en la práctica. Atacan implementaciones del sistema de cifrado en los sistemas físicos o lógicos que sin darse cuenta de fuga de datos. Hay varios ataques conocidos en diversas implementaciones de AES.

En abril de 2005, DJ Bernstein anunció un ataque caché-tiempo que utiliza para romper un servidor personalizado que utiliza OpenSSL cifrado AES 's. El ataque requiere más de 200 millones de textos planos escogidos. El servidor personalizado fue diseñado para dar información tanto de temporización posible (los informes servidor de servicios el número de ciclos de la máquina tomadas por la operación de cifrado); sin embargo, como Bernstein señaló, "la reducción de la precisión de las marcas de tiempo del servidor, o eliminarlos de las respuestas del servidor, no detener el ataque: el cliente simplemente utiliza los tiempos de ida y vuelta en función de su reloj local, y compensa el aumento de ruido promediando sobre un mayor número de muestras ".

En octubre de 2005, Dag Arne Osvik, Adi Shamir y Eran Tromer presentaron un documento que demuestra varios ataques de caché-calendario con respecto a las implementaciones en AES se encuentran en OpenSSL y de Linux dm-cryptfunción de cifrado de particiones. Un ataque fue capaz de obtener toda una clave AES después de sólo 800 operaciones de disparo cifrados, en un total de 65 milisegundos. Este ataque requiere que el atacante será capaz de ejecutar programas en el mismo sistema o plataforma que está realizando AES.

En diciembre de 2009 se publicó un ataque a algunas implementaciones de hardware que utiliza el análisis de fallos diferencial y permite la recuperación de una llave con una complejidad de 2 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 necesidad de ya sea texto cifrado o texto plano. El método también funciona en AES-128 implementaciones que utilizan tablas de compresión, como OpenSSL. Al igual que algunos ataques anteriores éste requiere la capacidad de ejecutar código sin privilegios en el sistema que realiza el cifrado AES, que se puede conseguir por la infección de malware mucho más fácilmente que comandando la cuenta root.

En marzo de 2016, Ashokkumar C, Ravi Prakash Giri y Bernard Menezes presentaron un ataque de canal lateral muy eficiente en las implementaciones de AES que puede recuperar la clave de 128 bits AES en tan sólo 6-7 bloques de texto plano / texto cifrado que es una mejora sustancial sobre trabajos previos que requieren entre 100 y un millón cifrados. El ataque propuesto requiere privilegios de usuario estándar como los ataques anteriores y algoritmos de clave de recuperación se ejecutan bajo un minuto.

Muchas CPU modernas han incorporado en las instrucciones de hardware para AES , que protegerían contra los ataques de canal lateral relacionados con el tiempo.

validación NIST / ESC

El programa de validación de módulo criptográfico (CMVP) es operado conjuntamente por el Gobierno de Estados Unidos Instituto Nacional de Estándares y Tecnología de la División de Seguridad (NIST) del ordenador y el Communications Security Establishment (CSE) del Gobierno de Canadá. El uso de módulos criptográficos validados a NIST FIPS 140-2 es requerido por el Gobierno de los Estados Unidos para el cifrado de todos los datos que tienen una clasificación de los Sensible pero sin clasificar (SBU) o superior. De NSTISSP # 11, la Política Nacional para la adquisición de aseguramiento de la información: "Los productos de cifrado para proteger la información clasificada será certificado por la NSA, y productos de cifrado destinados a proteger la información sensible será certificado de acuerdo con el NIST FIPS 140-2."

El Gobierno de Canadá también recomienda el uso de FIPS 140 módulos criptográficos validados en aplicaciones no clasificados de sus departamentos.

Aunque publicación NIST 197 ( "FIPS 197") es el único documento que cubre el algoritmo AES, los vendedores típicamente se acercan a la CMVP bajo FIPS 140 y pedir que tienen varios algoritmos (tales como Triple DES o SHA1 ) validado al mismo tiempo. Por lo tanto, es raro encontrar módulos criptográficos que son únicamente FIPS 197 validados y el propio NIST por lo general no se toman el tiempo para enumerar FIPS 197 módulos validados por separado en su sitio web público. En su lugar, la validación FIPS 197 es típicamente solo aparece como un "FIPS aprobados: AES" notación (con un número específico FIPS 197 certificado) en la lista actual de FIPS 140 módulos criptográficos validados.

El programa de validación de algoritmo criptográfico (CAVP) permite la validación independiente de la aplicación correcta del algoritmo AES a un costo razonable. resultados de la validación de éxito en que se enumeran en la página validaciones NIST. Esta prueba es un pre-requisito para la validación módulo FIPS 140-2 describe a continuación. Sin embargo, el éxito de la validación CAVP de ninguna manera implica que el módulo criptográfico aplicación del algoritmo es seguro. Un módulo criptográfico que carecen de validación FIPS 140-2 o aprobación específica por la NSA no se considera seguro por el Gobierno de Estados Unidos y no se pueden utilizar para proteger los datos del gobierno.

Validación FIPS 140-2 es difícil de lograr, tanto técnica como fiscalmente. Hay una batería estándar de pruebas, así como un elemento de revisión de código fuente que se debe pasar por un período de unas pocas semanas. El costo para realizar estas pruebas a través de un laboratorio autorizado puede ser significativo (por ejemplo, además de Estados Unidos más de $ 30.000) y no incluye el tiempo que se tarda en escribir, probar, documentar y preparar un módulo para su validación. Después de la validación, los módulos deben presentarse de nuevo y volver a evaluar si se cambian de ninguna manera. Esto puede variar desde simples cambios papeleo si la funcionalidad de seguridad no cambió a un conjunto más importante de volver a probar si la funcionalidad de seguridad se vio afectado por el cambio.

vectores de prueba

vectores de prueba son un conjunto de sistemas de cifrado conocidos para una entrada y una clave dada. NIST distribuye la referencia de los vectores de prueba AES como AES Conocido respuesta Test (KAT) Vectores.

Actuación

Alta velocidad y bajos requerimientos de RAM eran los criterios del proceso de selección AES. A medida que el algoritmo elegido, AES tuvo un buen desempeño en una amplia variedad de hardware, de 8 bits tarjetas inteligentes para ordenadores de alto rendimiento.

En un Pentium Pro , el cifrado AES requiere 18 ciclos de reloj por byte, equivalente a un rendimiento de aproximadamente 11 MB / s para un procesador de 200 MHz. En un 1,7 GHz Pentium M rendimiento es de unos 60 MB / s.

En Intel Core i3 / i5 / i7 y Ryzen AMD CPUs apoyo AES-NI conjunto de instrucciones extensiones, el rendimiento puede haber múltiples GB / s (incluso por encima de 10 GB / s).

implementaciones

Ver también

notas

  1. ^ Tamaños de clave de 128, 160, 192, 224, y 256 bits están soportados por el algoritmo Rijndael, pero sólo los tamaños de clave 128, 192, y 256 bits se especifican en la norma AES.
  2. ^ Tamaños de bloque de 128, 160, 192, 224, y 256 bits están soportados por el algoritmo Rijndael para cada tamaño de la clave, pero sólo el tamaño de bloque de 128 bits se especifica en la norma AES.
  3. ^ Variantes-bloque grande de Rijndael utilizar una matriz con columnas adicionales, pero siempre de cuatro filas.
  4. ^ Rijndael variantes con un tamaño de bloque más grandes tienen ligeramente diferentes compensaciones. Para bloques de tamaños de 128 bits y 192 bits, el patrón de desplazamiento es el mismo. Filase desplaza circular izquierda porbytes. Para un bloque de 256 bits, la primera fila es sin cambios y el cambio de marcha para la segunda, tercera y cuarta fila es 1 byte, 3 bytes y 4 bytes, respectivamente-este cambio sólo se aplica para el sistema de cifrado Rijndael cuando se utiliza con un bloque de 256 bits , como AES no utiliza bloques de 256 bits.
  5. ^ La respuesta AES Conocido prueba (KAT) vectores están disponibles en formato Zip dentro del sitio NIST aquí Archivado 2009-10-23 en la Wayback Machine .

referencias

enlaces externos