¿Cómo funciona el AES?
El estándar de cifrado avanzado (AES, por sus siglas en inglés) describe una fórmula matemática o algoritmo, para la conversión de datos electrónicos en una forma ininteligible, denominada texto cifrado. El texto cifrado no puede ser leído por cualquier persona que no sea el destinatario. El AES funciona alimentando una clave de cifrado, esencialmente una cadena de dígitos en el algoritmo de cifrado y realizando de una serie de operaciones matemáticas basadas en esa clave de cifrado.
Operación básica
El AES puede ser descrito como un bloque cifrado iterativo y simétrico. El AES utiliza una estructura de bucle para realizar repetidamente reordenamientos de datos, o permutaciones. El bucle reemplaza una unidad de datos con otra para datos de entrada. La rutina de cifrado utiliza la misma clave para cifrar y descifrar los datos, y aplica esa clave a los bloques de datos de longitud fija.
Programa clave
La rutina de cifrado de AES almacena la clave de cifrado principal en una matriz. Una matriz es un grupo de objetos con los mismos atributos que pueden ser abordados de forma individual. La matriz consta de cuatro filas, conteniendo cada uno cuatro, seis u ocho bytes, dependiendo del tamaño de la clave. Tras bambalinas, la rutina de cifrado utiliza esta matriz para generar una tabla, conocida como un programa clave, que contiene varias claves. Estas claves se denominan claves redondas para distinguirlas de la llave maestra original.
Matriz de estado
El AES utiliza una clave de cifrado que puede ser 128, 192 o 256 bits de largo, y se aplica en unidades de datos, llamados bloques, cada uno de los cuales es de 128 bits de largo. El algoritmo AES comienza copiando cada bloque de 16 bits en una matriz bidimensional llamada el Estado, para crear una matriz de bytes de 4x4. El algoritmo realiza una operación exclusiva "O" que devuelve "verdadero" si uno u otro de sus operandos es verdadero. Esto se conoce como "AddRoundKey", y está entre las primeras cuatro filas del programa clave y la matriz de Estado.
Operaciones matemáticas
Tras la operación inicial exclusivo "O", el algoritmo de cifrado AES entra en su bucle principal, en el que realiza repetidamente cuatro operaciones matemáticas diferentes en la matriz de Estado: "SubBytes", "ShiftRows", "MixColumns" y "AddRoundKey". Estas operaciones emplean una combinación de suma, multiplicación, rotación y sustitución para cifrar cada byte en la matriz de Estado. El bucle principal se ejecuta 10, 12 o 14 veces dependiendo del tamaño de la clave de cifrado. Una vez que se completa la ejecución, el algoritmo copia la matriz de estado a su salida en forma de texto cifrado.