Advanced Encryption Standard (AES)
Enviado por Franklin Lara • 13 de Octubre de 2016 • Documentos de Investigación • 2.549 Palabras (11 Páginas) • 285 Visitas
ADVANCED ECRYPTION STANDARD (AES)
Lara Franklin
Hernández Bladimir
Facultad de Ingeniería
Universidad de Cuenca
Cuenca, Ecuador
franklin.lara@ucuenca.ec
blidimir.hernandez92@ucuenca.ec
Abstract—Advanced Encryption Standard (AES) es el estándar actual para el cifrado de clave simetrica. AES fue creado por dos criptógrafos belgas, Vicente Rijmen y Joan Daemen, reemplazando el antiguo estándar de cifrado de datos (DES). La Federal Information Processing Standard (FIPS) 197 utiliza una versión estandarizada del algoritmo llamado Rijndael para el estándar de cifrado avanzado. El algoritmo utiliza una combinación de operaciones OR exclusivo (XOR), la sustitución octeto con un S-cuadro, fila y rotaciones de columna y la MezclaColumna. Tuvo éxito porque era fácil de implementar y podría ejecutarse en un plazo de tiempo razonable en un ordenador con características estándares.
Keywords—matriz, cifrado, llave.
Introducción
La Federal Infomation Processing en su publicación 197 anuncia el Advanced Ecryption Standard (AES) aprobando el algoritmo de criptográfico que puede ser usado para proteger datos electrónicos. El AES es un algoritmo de bloques simétricos cifrados para cifrar los datos y descifrarlos. Para cifrar convierte los datos en un texto no legible conocido como texto cifrado, en caso contrario toma el texto cifrado y le pasa a un texto en claro.
Debemos tener claro que AES es capaz de usar claves de 128, 192, y 256 bits para cifrar y descifrar los bloques de datos de 128 bits. El “algoritmo AES”, dicho algoritmo viene en diferentes “sabores” como el “AES-128”, “AES-192” y “AES-256”.
En este artículo de incluirá las siguientes secciones:
Definiciones de términos, acrónimos, y parámetros del algoritmo, símbolos y funciones.
Notación y conversiones especificadas en el algoritmo.
Las propiedades matemáticas incluidas en el algoritmo.
Especificación del algoritmo, conversión de las claves de expansión, las rutinas de cifrado y descifrado.
Implementaciones usadas, el tamaño de la clave soportada, restricciones para la clave y adicional block/key/round tamaño.
GLOSARIO DE TERMINOS Y ACRONIMOS
affine transformation .- Una transformación consiste en la multiplicación por una matriz, seguido de la adición de un vector.
block .- Secuencia de bits binarios que componen la entrada, salida, Estado, y la clave aleatoria. La longitud de una secuencia es el número de bits de contains. Blocks también se interpretan como matrices de bytes.
Cipher.- Serie de transformaciones que convierte texto claro en texto cifrado utilizando la clave de cifrado.
Cipher key.- secreto, la clave criptográfica que se utiliza por la rutina de expansión de teclas para generar un conjunto de claves aleatorias; puede representarse como una matriz rectangular de bytes, que tiene cuatro filas y columnas NK.
Ciphertext.- de salida de datos desde el cifrado o la entrada a la inversa de cifrado.
Inverse cipher.- serie de transformaciones que convierte el texto cifrado de texto plano usando la clave de cifrado.
Key Expansion.- rutina utilizada para generar una serie de teclas de la Ronda de la clave de cifrado.
Rijndael .- algoritmo criptográfico especificado en este estándar de cifrado avanzado (AES).
Pound key.- son valores derivados de la clave de cifrado utilizando la rutina de expansión de teclas; que se aplican al Estado en el Cipher y inverse cipher.
Estado .- resultado intermedio de cifrado que puede ser representado como una matriz rectangular de bytes, que tiene cuatro filas y columnas Nb.
s-box.- tabla de sustitución no lineal utilizado en varias transformaciones de sustitución de bytes y en la rutina de expansión de teclas para realizar una sustitución de uno por uno de un valor de byte.
DEFINICIONES
Parámetros del algoritmo, símbolos y funciones
Los siguientes parámetros, símbolos y funciones son utilizados durante el siguiente estándar:
AddRoindKey(): Transformación en el cifrado y cifrado inverso en cual una llave cíclica se añade al estado usando una operación de XOR.
InvMixColumns(): Transformación en el cifrado inverso que es el inverso de MixColumns().
InvShiftRows(): Transformación en el cifrado inverso que es el inverso de ShiftRows()
InvSubBytes(): Transformación en el cifrado inverso que es el inverso de SubBytes().
K: Llave de cifrado y descifrado.
MixColumns(): Transformación en el cifrado que toma todas las columnas del estado y mezcla sus datos para producir nuevas columnas.
Nb: número de columnas (palabras de 32-bit) que comprende el estado. Para este estándar Nb=4.
Nk: número de palabras de 32-bit que comprende la llave de cifrado. Para este estándar Nk=4, 6 o 8
Rcon[]: la ronda matriz de palabras constantes.
RotWord(): función usada en la rutina de expansión de llave que toma una palabra de 4 bytes y realiza una permutación cíclica.
ShiftRows(): transformación en el cifrado que procesa el estado desplazando cíclicamente las tres últimas filas del estado por diferentes compensaciones.
SubBytes(): transformación en el cifrado que procesa el estado usando una tabla de substitución de byte no lineal (S-box) que opera en cada estado del byte independientemente
SubWord(): función usada en la rutina de expansión de llave que toma a una entrada de 4bytes y aplica un S-box a cada uno de los cuatro bytes para producir una palabra de salida.
XOR: operación exclusiva de OR
NOTACIONES Y CONVENCIONES
Entradas y salidas
Las entradas y salidas por el algoritmo AES consisten en secuencias de 128 bits, que se refieren a bloques y los números de bits. La llave de cifrado para el algoritmo AES es una secuencia de 128, 192 o 256 bits.
Bytes
La unidad básica utilizada por el algoritmo AES es el byte, una secuencia de ocho bits. Para la entrada, salida y una llave cifrada se denotará como “a”, los bytes que resulten en el array serán referenciados de 2 formas: an o a[n], donde “n” está en unos de los siguientes rangos.
...