Está en la página 1de 4

VALENCIA TOLEDO ENRIQUE

Advanced Encryption Standard (AES), tambin conocido como Rijndael (pronunciado "Rain Doll" en
ingls), es un esquema de cifrado por bloques adoptado como un estndar de cifrado por el gobierno de
los Estados Unidos. El AES fue anunciado por el Instituto Nacional de Estndares y Tecnologa (NIST)
como FIPS PUB 197 de los Estados Unidos (FIPS 197) el 26 de noviembre de 2001 despus de un
proceso de estandarizacin que dur 5 aos. Se transform en un estndar efectivo el 26 de
mayo de 2002. Desde 2006, el AES es uno de los algoritmos ms populares usados en criptografa
simtrica.

Descripcin del cifrado
Estrictamente hablando, AES no es precisamente Rijndael (aunque en la prctica se los llama de manera
indistinta) ya que Rijndael permite un mayor rango de tamao de bloques y longitud de claves; AES tiene
un tamao de bloque fijo de 128 bits y tamaos de llave de 128, 192 o 256 bits, mientras que Rijndael
puede ser especificado por una clave que sea mltiplo de 32 bits, con un mnimo de 128 bits y un mximo
de 256 bits.
La mayora de los clculos del algoritmo AES se hacen en un campo finito determinado.
AES opera en una matriz de 44 bytes, llamada state (algunas versiones de Rijndael con un tamao de
bloque mayor tienen columnas adicionales en el state).

















VALENCIA TOLEDO ENRIQUE
Aplicacin del Algoritmo: Caso Prctico
A continuacin se realiza un ejemplo para ilustrar a detalle el funcionamiento del algoritmo AES.
Considerando AES-128 se tiene:
Tamao de la clave de 128 bits.
Tamao del bloque de datos de 128 bits.
Se realizan 10 iteraciones o rondas.
MCla= 32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34
K= 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c
NOTA: Las tablas necesarias para cifrar con el algoritmo AES se encuentran en la liga "Tablas" del
men superior. Las operaciones tales como XOR, corrimientos y otras se explican en la seccin
4.1.2 (Herramientas Matemticas) del presente captulo.

Figura 4.3.4 Ejemplo del algoritmo AES

Clculo de MixColumns
La matriz MixColumns se obtiene a partir de la matriz ShiftRows de la ronda actual, se deben
calcular los valores de b1-b16 de la matriz mostrada en la figura 4.3.5:

Figura 4.3.5 Matriz MixColumns
Para obtener los valores de b, cada columna de la matriz anterior se multiplica por la matriz de
multiplicacin (la cual se muestra en la figura 4.3.6) de la siguiente manera:

Figura 4.3.6 Matriz de multiplicacin
VALENCIA TOLEDO ENRIQUE
b1= (b1 * 2) XOR (b2 * 3) XOR (b3 * 1) XOR (b4 * 1)
b2= (b1 * 1) XOR (b2 * 2) XOR (b3 * 3) XOR (b4 * 1)
b3= (b1 * 1) XOR (b2 * 1) XOR (b3 * 2) XOR (b4 * 3)
b4= (b1 * 3) XOR (b2 * 1) XOR (b3 * 1) XOR (b4 * 2)

b5= (b5 * 2) XOR (b6 * 3) XOR (b7 * 1) XOR (b8 * 1)
b6= (b5 * 1) XOR (b6 * 2) XOR (b7 * 3) XOR (b8 * 1)
b7= (b5 * 1) XOR (b6 * 1) XOR (b7 * 2) XOR (b8 * 3)
b8= (b5 * 3) XOR (b6 * 1) XOR (b7 * 1) XOR (b8 * 2)

b9= (b9 * 2) XOR (b10 * 3) XOR (b11 * 1) XOR (b12 * 1)
b10= (b9 * 1) XOR (b10 * 2) XOR (b11 * 3) XOR (b12 * 1)
b11= (b9 * 1) XOR (b10 * 1) XOR (b11 * 2) XOR (b12 * 3)
b12= (b9 * 3) XOR (b10 * 1) XOR (b11 * 1) XOR (b12 * 2)

b13= (b13 * 2) XOR (b14 * 3) XOR (b15 * 1) XOR (b16 * 1)
b14= (b13 * 1) XOR (b14 * 2) XOR (b15 * 3) XOR (b16 * 1)
b15= (b13 * 1) XOR (b14 * 1) XOR (b15 * 2) XOR (b16 * 3)
b16= (b13 * 3) XOR (b14 * 1) XOR (b15 * 1) XOR (b16 * 2)
Por ejemplo para obtener la celda [0][0] de la matriz MixColumns de la ronda 1 tenemos que calcular
b1:
b1= (b1 * 02) XOR (b2 * 03) XOR (b3 * 01) XOR (b4 * 01)
b1= (d4 * 02) XOR (bf * 03) XOR (5d * 01) XOR (30 * 01)
Para resolver la operacin "*" primero tenemos que sustituir cada uno de los operadores por sus
valores correspondientes en la tabla llamada "tabla L"; si un nmero est multiplicado por uno, el
resultado es el mismo nmero.
b1= (d4 * 02) XOR (bf * 03) XOR (5d) XOR (30)
Los resultados de la tabla L son los mostrados en la figura 4.3.7:
Ntese que b3 y b4 se quedan igual debido a que estn multiplicados por uno.
VALENCIA TOLEDO ENRIQUE

Figura 4.3.7 Resultados de tabla L
Se debe realizar la suma hexadecimal de los operadores una vez sustituidos por sus valores
correspondientes en la tabla L, el resultado de la suma debe ser sustituido por su valor
correspondiente en la tabla llamada "tabla E", ese ser el resultado final. Si la suma hexadecimal
diera como resultado un nmero mayor a FF, a ese nmero hay que restarle FF tantas veces hasta
que el resultado de menor o igual a FF.
Continuando con el ejemplo, realizando las operaciones se tienen los siguientes resultados (figura
4.3.8):

Figura 4.3.8 Resultados de tabla E
b1= (b3) XOR (da) XOR (5d) XOR (30)
b1= 04

También podría gustarte