Documentos de Académico
Documentos de Profesional
Documentos de Cultura
criptográfico AES
Paola Ceminari ∗†1 , Ariel Arelovich∗2 y Martı́n Di Federico∗3
† Departamento de Ingenierı́a Eléctrica y de Computadoras, Universidad Nacional del Sur
Av. Alem 1253, Bahı́a Blanca, Argentina
∗ Centro de Micro y Nanoelectrónica del Bicentenario, Instituto Nacional de Tecnologı́a Industrial
Drago 45, Bahı́a Blanca, Argentina
1
pceminari@inti.gob.ar
2
ariela@inti.gob.ar
3
martind@inti.gob.ar
Abstract—The Advanced Encryption Standard (AES) block En este trabajo se presentan tres módulos de cifrado en
cipher is currently used in many applications such as smart bloques AES, orientados a distintos tipos de aplicaciones.
cards, e-mail and Wi-Fi. The algorithm’s purpose in any case En primer lugar se describe el algoritmo de cifrado AES,
is to provide confidentiality in the communication. However,
each of the applications imposes different constraints over considerando cada una de las transformaciones que lo com-
the cipher. The aim of this work is the design of three ponen, el proceso de expansión de llave utilizado, los modos
architectures for AES, oriented to different applications. One de operación más usados y el proceso de descifrado. A
of them maximizes the performance through the use of pipeline continuación, se plantean las estrategias de diseño utilizadas
structures, other minimizes the area through resource sharing, en cada una de las arquitecturas y se detallan los resultados
and the third one represents a trade-off between area and
throughput. de simulación y sı́ntesis obtenidos para las tres arquitecturas
Resumen— El cifrado en bloques AES (Advanced Encryp- propuestas.
tion Standard) es actualmente utilizado en diversas aplicaciones
como tarjetas inteligentes, correo electrónico y Wi-Fi. La II. D ESCRIPCI ÓN DEL ALGORITMO AES
finalidad de este algoritmo, en todos los casos, es proveer AES opera sobre bloques de texto plano y cifrado de
confidencialidad en la comunicación. Sin embargo, cada una de 128 bits; mientras que la llave secreta puede ser de 128,
estas aplicaciones impone distintos requisitos sobre el módulo
de cifrado. El objetivo de este trabajo es el diseño de tres 192 o 256 bits. Como se observa en la Fig. 1, el cifrado de
arquitecturas para un módulo de cifrado en bloques AES, un mensaje se lleva a cabo mediante la aplicación reiterada
orientadas a distintos tipos de aplicaciones. Una de ellas de transformaciones invertibles, denominadas rondas.
maximiza el desempeño mediante el uso de estructuras pipeline, En primer lugar se aplica una ronda inicial, seguida de
otra minimiza el área mediante uso compartido de recursos Nr − 1 iteraciones de una ronda general, y una iteración de
y una tercera representa una relación de compromiso entre
desempeño y área. una ronda final. La cantidad de iteraciones de ronda, Nr ,
depende de la longitud de la llave: Nr = 10 para una llave
I. I NTRODUCCI ÓN de 128 bits, Nr = 12 para una llave de 192 bits y Nr = 14
para una llave de 256 bits. Cada una de las rondas requiere
Advanced Encryption Standard (AES) es un estándar que una sub-llave, que es generada a partir de la llave secreta
establece un algoritmo de cifrado simétrico en bloques, mediante un algoritmo de expansión.
resultado de una iniciativa llevada a cabo por el Instituto Na- La ronda inicial consta de una operación XOR entre el
cional de Estándares y Tecnologı́a de Estados Unidos (NIST) bloque de texto plano y la llave de ronda, mientras que
en el año 2000 [1]. El algoritmo ganador fue Rijndael [2], las rondas generales están compuestas por cuatro etapas
que consiste en una red sustitución-permutación. denominadas SubBytes (SB), ShiftRows (SR), MixColumns
Originalmente, AES fue destinado a la protección de (MC) y AddRoundKey (ARK). La ronda final es similar a
información sensible en instituciones gubernamentales de las rondas generales, excepto que no cuenta con la transfor-
Estados Unidos, pero con el paso del tiempo se convirtió mación MixColumns. Tanto los bloques de datos de entrada
en un estándar de facto global. Una de las ventajas que y salida, como los resultados intermedios durante el cifrado
presenta este algoritmo es la posibilidad de ser implemen- pueden ser visualizados como una matriz de 4 × 4 bytes,
tado en forma eficiente sobre distintas plataformas, tanto de denominada matriz de estados. La estructura de esta matriz
hardware como software [3] [4] [5]. se muestra en la Ecuación 1.
Cada una de las aplicaciones en las que se utiliza este tipo
de cifrado impone distintos requisitos en su implementación. BF BE BD BC BB BA B9 B8 B7 B6 B5 B4 B3 B2 B1 B0
Por ejemplo, en algunos casos se requiere que el módulo m (1)
de cifrado consuma la menor cantidad de área y potencia S0,0 S0,1 S0,2 S0,3 BF BB B7 B3
posible; mientras que otras aplicaciones requieren un mayor S1,0 S1,1 S1,2 S1,3 BE BA B6 B2
S = B B B B .
2,0 S2,1 S2,2 S2,3 D 9 5 1
desempeño, independientemente del área y consumo que S3,0 S3,1 S3,2 S3,3 BC B8 B4 B0
esto implica.
0 0 0 0
S0,0 S0,1 S0,2 S0,3 S0,0 S0,1 S0,2 S0,3
0
S1,0 0 0 0
S1,1 S1,2 S1,3 S1,1 S1,2 S1,3 S1,0
0 = (2)
0 0 0
S2,0 S2,1 S2,2 S2,3 S2,2 S2,3 S2,0 S2,1
0 0 0 0 S3,3 S3,0 S3,1 S3,2
S3,0 S3,1 S3,2 S3,3
C. MixColumns
Consiste en una operación lineal que se aplica sobre cada
una de las columnas que conforman la matriz de estado.
Matemáticamente corresponde a la multiplicación entre poli-
nomios sobre el campo finito GF {28 }. Cada columna se
considera como un polinomio cuyos coeficientes pertenecen
al campo GF {28 } y se multiplica, módulo el polinomio
irreducible x4 + 1, con un polinomio constante definido en
el estándar como 03x3 + 01x2 + 01x + 02. En la Ecuación 3
se observa esta operación en forma matricial para una de
las columnas de la matriz de estado.
0
S0,j 02 03 01 01 S0,j
0
S1,j
0 = 01 02 03 01 × S1,j
S2,j 01 01 02 03 S2,j (3)
0 03 01 01 02 S3,j
S3,j
D. Expansión de llave
Con el fin de obtener las sub-llaves utilizadas en cada
ronda del proceso de cifrado, se utiliza un algoritmo recur-
Fig. 1. Diagrama de actividades que representa el cifrado en AES. sivo que depende de la longitud de la llave secreta.
Para el caso de una llave de 128 bits, la primer sub-llave
de ronda coincide con la llave secreta. A continuación, se
A continuación se presenta la descripción de cada una computa cada word de las sub-llaves restantes siguiendo el
de las transformaciones utilizadas durante el cifrado. Cada algoritmo mostrado en la Ecuación 4. La función g() es no
elemento de la matriz de estado se identifica como Si,j , lineal; consiste en un desplazamiento de los cuatro bytes
donde i y j corresponden a su fila y columna. Además, que componen el word, seguido de una sustitución (usando
se utiliza el superı́ndice 0 para representar el valor de los la misma S-BOX que en el proceso de cifrado) y la XOR
elementos de la matriz de estados luego de aplicar una entre el byte más significativo y una constante de ocho bits,
transformación. denominada RC, cuyo valor es distinto en cada iteración.
VI. C ONCLUSIONES
En este trabajo se presentaron tres arquitecturas para
la implementación de un módulo de cifrado en bloques
AES en FPGA. Los resultados obtenidos muestran que
la arquitectura pipeline presenta un aumento notable en
el desempeño del módulo siempre y cuando su estructura
interna esté completa. Por lo tanto, presenta beneficios en
las aplicaciones en las que se cifran grandes volúmenes de
datos en forma consecutiva, utilizando modos no realimen-
tados y una misma llave secreta. La arquitectura de área
mı́nima presenta una disminución en la cantidad de recur-
sos, siempre y cuando se utilicen memorias RAM para el
almacenamiento de llaves y datos intermedios, permitiendo
la selección adecuada de los words en cada ciclo de reloj
mediante su direccionamiento. En caso de no usar bloques
RAM, esta arquitectura no presenta disminución de recursos
al compararla con básica, debido a la gran cantidad de
multiplexores necesarios para la selección. Por último, la
arquitectura básica presenta una relación de compromiso
media entre velocidad y área, y admite su utilización en
modos realimentados.
R EFERENCIAS
[1] NIST, “Federal Information Processing Standards (FIPS) Publi-
cation 197: Advanced Encryption Standard (AES),” Available:
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf, Nov. 2001.
[2] J. Daemen and V. Rijmen, “AES Proposal: Rijndael,” Aug. 1998.
[3] P. Chodowiec, “Comparison of the Hardware Performance of the AES
Candidates Using Reconfigurable Hardware,” Master’s thesis, George
Mason University, 2002.
[4] A. J. Elbirt, W. Yip, and C. Paar, “An FPGA Implementation and
Performance Evaluation of the AES Block Cipher Candidate Algo-
rithm Finalists,” IEEE Transactions on Very Large Scale Integration
(VLSI) Systems, vol. 9, no. 4, pp. 545–557, Aug. 2001.
[5] T. Ichikawa, T. Kasuya, and M. Matsui, “Hardware Evaluation of
the AES Finalists ,” in The Third Advanced Encryption Standard
Candidate Conference, 2000, pp. 279–285.
[6] A. Satoh, M. Kohji, K. Takano, and S. Munetoh, “A Compact Rijndael
Hardware Architecture with S-Box Optimization,” In Advances in
Cryptology - ASIACRYPT 2001, pp. 239–254, 2001.
[7] D. Canright, “A Very Compact Rijndael S-box ,” Naval Postgraduate
School Monterey, Tech. Rep., 2005.
[8] NIST, “Special Publication 800-38A: Recommendation
for Block Cipher Modes of Operation ,” Available from:
http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf,
2001.
[9] NSA, “National Security Agency Suit B Cryptography,” Available:
https://www.nsa.gov/ia/programs/suiteb cryptography/index.shtml,
2009.
[10] ANSII, “Référentiel Général de Sécurité - Annexe B1,” Available:
http://www.ssi.gouv.fr/uploads/2015/01/RGS v-2-0 B1.pdf, 2014.
[11] NIST, “Special Publication 800-57: Recommendation
for Key Management - Part 1: General,” Available:
http://csrc.nist.gov/publications/nistpubs/800-57/sp800-
57 part1 rev3 general.pdf, 2012.
[12] ECRYPT, “ Yearly Report on Algo-
rithms and Keysizes (2011-2012),” Available:
http://www.ecrypt.eu.org/ecrypt2/documents/D.SPA.20.pdf, 2012.