Generalidades de AES (Advanced Encryption Standard): II Parte

Rate this item
(0 votes)

En la I Parte de Generalidades de AES (Advanced Encryption Standard) se describieron los aspectos más relevantes de AES y las S-Box. Ahora, comentaremos algunos detalles de las llamadas transformaciones (ByteSub, ShiftRow, MixColumns y AddRoundKey) y el proceso de generación de subclaves. Para ver más detalles de una manera más dinámica se recomienda la aplicación Rijndael Animation.

 

ByteSub

Esta transformación realiza una sustitución byte por byte en cada uno de los elementos de la matriz de estado, es decir, la matriz de estado [aij] se sustituye por la matriz [Sij], la Figura # 1 muestra dicho proceso. Utilizando la aplicación Rijndael Animation de [1], se puede observar como el primer byte de la matriz de estado ([a00]) se divide en dos grupos de cuatro bits cada uno y se utilizan como apuntadores a filas y columnas de la S-Box, respectivamente, para realizar la sustitución, en la Figura # 1 se muestra como el valor 19 será reemplazado por d4.

 

Figura # 1: Utilización de S-Box [1].

ShiftRow

ShiftRow aplica corrimientos circulares a la izquierda, a cada una de las filas de la matriz de estado de la siguiente forma: primera fila cero corrimientos, segunda fila un corrimiento, tercera fila dos corrimientos y cuarta fila tres corrimientos, de esta forma, la matriz resultante se puede apreciar en la Figura # 2.

 

Figura # 2: Transformación ShiftRow [2].

 

MixColumns

Esta función permite la mezcla de los bytes de las columnas, considerando los bytes de cada columna, como polinomios cuyos coeficientes pertenecen a GF(28). Dicha función consiste en multiplicar las columnas módulo x4+1 por el polinomio c(x) donde:

c(x)=03x3+01x2+01x+02

O bien, en forma matricial,

Utilizando la aplicación Rijndael Animation [1], se puede comprobar el resultado de aplicar el procedimiento anterior, a la primera columna de una matriz de estado (ver Figura # 3), la cual va ha ser sustituida en la primera columna de la nueva matriz.

 

Figura # 3: Transformación MixColumns [1].

 

AddRoundKey

Sea la matriz [aij] la matriz de estado y [kij] la matriz de la clave correspondiente a dicha ronda. La función AddRoundKey consiste en realizar una xor entre las matrices de estado y la de la clave (Figura # 4), para luego, sustituir con el valor correspondiente.

AddRoundKeyAES128bits=[aij]xor[kij]

 

Figura # 4: Transformación AddRoundKey [2].

 

Generación de subclaves

Este proceso permite generar subclaves a partir de la clave del sistema. La clave se extiende a una lista de palabras de 4 bytes que llamados W y que contiene Nb(Nr+1) palabras, donde,

Nr=Max(Nk,Nb)+6=Número de rondas

Los primeros Nk elementos de W corresponden a la clave. El resto de los elementos de W se definen recursivamente utilizando la función SubByte, desplazamientos cíclicos y operaciones xor. En la Figura # 5 se puede apreciar W en forma de arreglo.

 

Figura # 5: Expanción de claves [3].

 

Ahora, se utiliza la función RotByte, la cual devuelve una palabra, cuyos bytes se han desplazado cíclicamente una posición a la izquierda. Se utilizan unas constantes cuyos valores son:

Rcon[i]=(RC[i],0x00,0x00,0x00)

Siendo RC[i] un elemento de GF[28] definido por:

RC[1]=0x01, RC[i]=0x02*RC[i-1]

Ahora bien, para Nk<=6 y para todo i que no sea múltiplo de Nk, las palabras claves se calculan:

W(i)=W(i-Nk) xor W(i-1)

y para todo i que sea múltiplo de Nk, las palabras claves se calculan:

W(i)=W(i-Nk) xor [ByteSub(RotByte[W(i-1)]) xor Rcon(i/Nk)]

Para el caso de Nk>6 el funcionamiento es el mismo que para Nk<=6 excepto que cuando i satisface i mod Nk=4 las subclaves se calculan:

W(i)=W(i-Nk) xor ByteSub(W[i-1])

 

Referencias

  1. http://www.formaestudio.com/rijndaelinspector/
  2. J A. AES - Advanced Encryption Standard. (2005) Versión 2005: .
  3. A M. Seguridad Europea para EEUU Algoritmo criptográfico Rijndael. Madrid (2004) : .
  4. Joan Daemen VR. AES Proposal: Rijndael. NIST AES Proposal (1998) : .
  5. http://www.cryptosystem.net/aes/
  6. http://www.criptored.upm.es
  7. http://www.kriptopolis.es
3116 Last modified on Jueves, 22 Septiembre 2016 20:13
More in this category:
Luis Sequeira

Luis Sequeira is an IT professional with experience in cloud environments, quality of service and network traffic analysis, who loves looking for solutions to engineering challenges, share knowledge. At work, the main challenge is to integrate different network and software technologies to provide solution in a wide range of areas, e.g., virtual network functions, machine learning, autonomous driving, robotics and augmented reality.

Website: https://www.luissequeira.com

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.