El funcionamiento de dicho algoritmo puede separarse en dos partes o procesos diferentes, el primero, sería el proceso de cifrado y el segundo correspondiente al proceso de generación de subclaves, la Figura # 1 muestra la interacción de ambos procesos.
Figura # 1: Cifrado con AES.
El bloque a cifrar tiene una longitud de 128 bit, mientras que la clave puede variar de 128, 192 o 256 bits, según la cantidad de rondas estándar que se apliquen al texto 10, 12 y 14 respectivamente [2]. En general, el cifrado de AES está descrito por cuatro funciones básicas o también llamadas transformaciones, estas son:
- ByteSub
- ShiftRow
- MixColumns
- AddRoundKey
Las rondas a las que se somete el texto se pueden dividir en tres categorías: ronda inicial, rondas estándar y ronda final. Cada una de estas rondas se compone de alguna o varias combinaciones de las transformaciones antes mencionadas (ver Figura # 1). Los diferentes tipos de rondas difieren entre sí por la combinación de las transformaciones que se aplican al bloque que se desea cifrar.
AES interpreta los bloque de entrada de 128 bits, como una matriz 4x4 de entradas de bytes [3], si el bloque es de 192 bits se agregan 2 columnas, si es de 256 se agregan 4 columnas, a dichas matrices se les llama matrices de estado y su forma es como se muestra a continuación:
S-Box
Básicamente, una S-Box (substitution box) es una matriz para sustitución de valores, utilizado por los algoritmos de cifrado de clave simétrica. Las S-Boxes son seleccionadas cuidadosamente para ser resistentes al criptoanálisis. En el caso de AES, dicha matriz es el resultado de aplicar dos funciones a la matriz de estado, [aij], en primer lugar su inverso multiplicativo [aij] a aij-1 E GF(28) y posteriormente una transformación lineal:
- Todo byte puede verse como un elemento del cuerpo finito GF(28), como todo elemento tiene inverso multiplicativo, se asocia el inverso multiplicativo en GF(28), es decir [aij] a aij-1 E GF(28), al elemento cero se le asocia el mismo cero.
- La transformación lineal se aplica bit por bit con la siguiente regla: transformación lineal en GF(28)→GF(28).
en bits queda:
Esta es la operación más costosa, en cuanto a tiempo se refiere, del algoritmo AES, por esto, la operación es precalculada. Finalmente, este proceso puede resumirse en la siguiente tabla conocida como S-Box [3] que puede ser utilizada para un byte cualquiera xy.
Tabla # 1: S-Box para el cifrado.
Por otro lado, para el proceso de descifrado se calcula una tabla inversa a la utilizada en el proceso de cifrado, dicha tabla es:
Tabla # 2: S-Box para el descifrado.
Referencias
- Joan Daemen VR. AES Proposal: Rijndael. NIST AES Proposal (1998)
- J A. AES - Advanced Encryption Standard. (2005) Versión 2005
- A M. Seguridad Europea para EEUU Algoritmo criptográfico Rijndael. Madrid (2004)
- http://www.formaestudio.com/rijndaelinspector/
- http://www.cryptosystem.net/aes/
- http://www.criptored.upm.es
- http://www.kriptopolis.es