Advanced Encryption Standard (AES)
Enviado por poland6525 • 12 de Abril de 2018 • 2.332 Palabras (10 Páginas) • 407 Visitas
...
[pic 1]
Todos los bytes en el algoritmo AES pueden ser presentados como concatenaciones del valor de sus bits individuales (0 o 1) entre llaves en el siguiente orden {b7, b6, b5, b4, b3, b2, b1, b0}.
Es importante notar la conversión del valor de un byte en hexadecimales denotados por dos grupos de 4 bits cada uno que nos representan un simple carácter expresado en la siguiente tabla:
[pic 2]
-
Arrays y Bytes
Los arrays de bytes pueden ser representados de la siguiente manera:
[pic 3]
El patrón se puede extender en secuencias más largas (llaves de 192 y 256 bits), entonces en caso general tenemos:
[pic 4]
[pic 5]
-
El Estado
Internamente el algoritmo AES realizan sus procesos sobre un array de bytes de dos dimensiones llamado el estado. Este consiste en 4 filas de bytes, cada una con Nb bytes, donde este representa el tamaño del bloque dividido en 32.
Al iniciar el cifrado y el cifrado inverso, la entrada del array de bytes, es copiado en el array de estado (que se muestra en la figura a continuación). Las operaciones cifrado o cifrado inverso son conducidas al array de estado, después del cual su valor final es copiado a la salida en un array de bytes.
[pic 6]
-
PRELIMINARES MATEMATICOS
AES interpreta todos los bytes usando campos finitos. Estos campos pueden ser sumados y multiplicados. Se procederá a introducir a los conceptos necesarios.
-
Suma
La suma de dos elementos nos genera un campo finito se lo logra por “sumar” los coeficientes para los exponentes correspondientes de los polinomios para los dos elementos. La suma se la realiza con el XOR, la resta de polinomios es idéntica a la suma de polinomios.
Por ejemplo, la una expresión es equivalente a la otra:
[pic 7]
-
Multiplicación
En la representación de polinomios, correspondiente con la multiplicación de módulos polinomiales, Para el algoritmo AES, el polinomio irreducible es:
[pic 8]
Por ejemplo, [pic 9] porque,
[pic 10]
y
[pic 11]
La reducción modular por m(x) asegura que el resultado será un polinomio binario de grado menor a 8, y que podrá ser representado por un byte.
Para cualquier polinomio binario diferente de cero b(x) de grado menor a 8, el multiplicativo inverso de b(x) se denota como b-1(x), y puede ser encontrado por el algoritmo Euclidiano extendido es usado para el computo polinomial a(x) y c(x).
[pic 12]
Por lo tanto: a(x)*b(x) mod m(x) = 1, esto significa:
[pic 13]
Además, para un a(x), b(x) y c(x) en los campos,
[pic 14]
-
Multiplicación por x
Multiplicando el polinomio binario, con el polinomio de x resulta en:
[pic 15]
Si b7=0, el resultado ya está en su forma reducida. Si b7=1, la reducción se logra por restar el polinomio m(x). Esto viene seguido por la multiplicación por x que puede ser implementada a nivel de byte como un desplazamiento a la izquierda y subsecuentemente un condicional XOR bit a bit con {1b}. Esta operación sobre bytes es denotada con xtime().
-
Polinomios con coeficientes en GF(28)
Polinomios de cuatro términos pueden ser definidos con coeficientes que son elementos de campo finito como:
[pic 16]
Los coeficientes en esta sección son elementos de campos finitos, además, las multiplicaciones en un polinomio de cuatro términos usan una reducción polinómica diferente.
Para ilustrar la suma y la multiplicación, definimos:
[pic 17]
La suma se realiza por sumar los coeficientes del campo finito del mismo exponente de x. Esta suma corresponde a una operación XOR entre los bytes correspondientes para cada palabra.
-
Especificacion del algoritmo
Para el algoritmo AES, el largo del bloque de entrada, salida y estado es de 128 bits, representado +Nb=4.
El largo de la clave de cifrado K, es de 128, 192 o 256 bits. El largo de la clave es representado por Nk=4, 6 o 8.
El número de vueltas a ser realizadas durante la ejecución del algoritmo depende del tamaño de la clave. El número de vueltas es representado por Nr, donde:
Nr=10
Nk=4
Nr=12
Nk=6
Nr=14
Nk=8
Combinaciones de vueltas por llaves:
key length
(Nk palabras
Block size
(Nb palabras)
Number of Rounds (Nr)
AES-128
4
4
10
AES-192
...