Está en la página 1de 6

Diseño de tres arquitecturas para un módulo

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.

A. SubBytes W [4i] = W [4(i − 1)] + g(W [4i − 1]) (4)


Esta transformación corresponde a la capa de sustitución W [4i + j] = W [4i + j − 1] + W [4(i − 1) + j] (5)
del algoritmo y es la única operación no lineal en el estándar Independientemente del algoritmo de expansión, existen
AES. Se basa en la aplicación de una misma transformación básicamente dos formas de manejar las llaves de ronda. En
(denominada S-BOX) a cada uno de los bytes de la matriz de la primera, denominada precómputo, se generan todas las
estados. Matemáticamente, la S-BOX utilizada corresponde llaves de ronda antes de comenzar con el proceso de cifrado.
a una inversión en el campo finito GF {28 } , usando el Por otro lado, el enfoque on-the-fly consiste en generar las
polinomio irreducible x8 + x4 + x3 + x + 1, seguida de un sub-llaves a medida que se las requiere.
mapeo afı́n. Este último no tiene impacto en las propiedades
de no linealidad, pero incrementa la complejidad de la E. Descifrado
expresión y evita la presencia de puntos fijos y opuestos El descifrado de un mensaje se ilustra en la Fig.2.
en la transformación. Es decir, ningún byte es mapeado a sı́ El mismo consiste en la aplicación reiterada de rondas
mismo o a su valor negado. generales que están compuestas por transformaciones in-
Las S-BOX pueden ser implementadas mediante opera- versas (InvShiftRows, InvSubBytes, AddRoundKey e InvMix-
ciones aritméticas en campos finitos [6] [7], o mediante el Columns. Cada una de estas transformaciones inversas es
uso de lookup tables (LUTs). análoga a las utilizadas durante el cifrado, la diferencia entre
ellas generalmente son los polinomios usados en las opera-
B. ShiftRows ciones matemáticas o el sentido de los desplazamientos.
Esta operación consiste en el desplazamiento de las filas Las sub-llaves son requeridas en un orden inverso al
de la matriz de estado. Como se observa en la Ecuación 2, cifrado. Por este motivo, en caso de ser generadas on-the-fly,
la primer fila no es desplazada, la segunda es desplazada en se requiere la totalidad de las llaves antes de llevar a cabo la
forma circular un byte a la izquierda, la tercera es desplazada ronda inicial , insumiendo un tiempo adicional al compararse
en forma circular dos bytes a la izquierda, y la última tres con el proceso de cifrado. Si la llaves son pre-calculadas,
bytes a la izquierda. esta demora extra no se presenta en el descifrado.
de expansión de llave. El bloque de control también maneja
la interfaz con el entorno, mediante señales que indican si
el módulo está en condiciones de recibir un nuevo bloque
de texto plano, y si el texto cifrado a la salida es válido. La
diferencia entre las tres arquitecturas radica en la manera en
la que se implementan estos bloques, principalmente el de
cifrado.
Independientemente de las diferencias en cuanto a la
estructura utilizada al implementar el cifrado, las tres ar-
quitecturas presentan caracterı́sticas en común:
• Longitud de llave de 128 bits. Las llaves de esta
longitud continuarán siendo seguras para el cifrado
simétrico hasta el año 2030 [9] [10] [11] [12].

• Expansión de llave precalculada. El hecho de


calcular todas las llaves de ronda en forma previa al
cifrado permite paralelizar el diseño sin necesidad de
paralelizar el proceso de expansión. Además, facilita
el descifrado, en el cual las llaves son requeridas en
orden inverso al cifrado.

• Modo de operación ECB. En el modo de operación


ECB se divide el texto plano en segmentos cuya
longitud corresponde a la longitud de bloque. A
continuación, cada uno de estos segmentos es cifrado
Fig. 2. Diagrama de actividades que representa el descifrado en AES.
en forma independiente. Desde el punto de vista
criptográfico, este modo de operación es débil, ya que
preserva las caracterı́sticas estadı́sticas del texto plano.
F. Modos de operación
Sin embargo, se decidió implementarlo porque es la
Los modos de operación definen la forma en la que se base para los demás modos de operación y admite
envı́a al módulo de cifrado un texto plano cuya longitud es el cifrado de múltiples bloques en forma simultánea
mayor a la del bloque. Los modos de operación más utiliza- (paralelismo).
dos corresponden a recomendaciones emitidas por NIST [8].
Los modos modos básicos son Electronic Codebook (ECB), • Implementación de SubBytes. Debido a que
Cipher Block Chaining (CBC), Cipher Feedback (CFB), las tres arquitecturas se orientaron a FPGA, esta
Output Feedback (OFB) y Counter (CTR). transformación se implementa mediante LUTs, ya que
este tipo de plataforma cuenta con bloques de memoria
III. D ISE ÑO que pueden ser fácilmente utilizados con este propósito.
Durante el desarrollo de este trabajo los tres bloques
fueron diseñados para FPGA, ya que este tipo de plataforma • Implementación de MixColumns. Al agrupar las ex-
es rápida, admite paralelismo e implica un ciclo de diseño presiones que conforman esta transformación de ronda
flexible y de menor duración en comparación con ASICs. se obtiene la implementación que se ilustra mediante
Desde el punto de vista de la implementación de un bloque las Ecuaciones 6, 7, 8 y 9. La misma requiere un total
de cifrado, los FPGA tienen como ventaja, además, la de 144 compuertas XOR para realizar la transformación
disponibilidad de bloques de memoria RAM y la posi- de una columna y su camino crı́tico es el retardo de
bilidad de ajustar fácilmente las operaciones lógicas que tres compuertas XOR, siendo este último menor al
conforman los algoritmos (principalmente desplazamientos, compararlo con el retardo de otras implementaciones
sustituciones y operaciones XOR) a la estructura de sus de estra transformación [13].
CLBs. Para el desarrollo de este trabajo se utilizó el FPGA 0
S0,j = {02}(S0,j ⊕ S1,j ) ⊕ S1,j ⊕ S2,j ⊕ S3,j (6)
Spartan 6 XC6SLX45.
0
Las arquitecturas propuestas en este trabajo se denominan S1,j = S0,j ⊕ {02}(S1,j ⊕ S2,j ) ⊕ S2,j ⊕ S3,j (7)
0
básica, pipeline y área mı́nima. Las tres cuentan con una S2,j = S0,j ⊕ S1,j ⊕ {02}(S2,j ⊕ S3,j ) ⊕ S3,j (8)
estructura modular que consta de un bloque dedicado a 0
S3,j = S0,j ⊕ S1,j ⊕ S2,j ⊕ {02}(S3,j ⊕ S0,j ) (9)
la expansión de llave, un bloque de cifrado y un bloque
de control. El bloque de expansión genera once llaves de A. Arquitectura básica
ronda a partir de la llave secreta, siguiendo el algoritmo En esta arquitectura, todos los buses de datos en el cifrado
de expansión descripto en el estándar. Por otra parte, el son de 128 bits y se ejecuta una ronda por cada ciclo de
bloque de control maneja la comunicación entre los bloques reloj. Como se muestra en la Fig. 3, el bloque de cifrado
de expansión y cifrado, evitando errores y asegurando que consta de la implementación de una ronda general, cuya
el cifrado de un dato comience una vez finalizado el proceso salida es realimentada a la entrada mediante un registro.
La ronda general implementada se muestra en la Fig. 4,
la misma consta de dieciséis instancias de la LUT que
conforma la transformación SubBytes (una por cada byte);
cuatro instancias de la transformación MixColumns (una por
cada word), y dieciséis XORs de 8 bits para implementar
AddRoundKey. La transformación ShiftRows se lleva a cabo
mediante el direccionamiento adecuado entre las salidas de
SubBytes y las entradas a MixColumns. La diferenciación Fig. 5. Implementación de la expansión de llaves para la arquitectura
entre una ronda general y la ronda final se realiza mediante básica.
un multiplexor.
MixColumns (Fig. 4). Las diez rondas se conectan entre
sı́ mediante registros, admitiendo el procesamiento de diez
bloques de texto plano en forma simultánea (estructura fully-
pipelined). El desempeño de esta arquitectura es máximo
una vez que su estructura interna está completa, ya que en
este caso se obtiene a su salida un bloque de texto cifrado
Fig. 3. Implementación del bloque de cifrado en la arquitectura básica. por cada ciclo de reloj. La implementación del bloque de
expansión de llave en este caso es idéntica a la presentada
para la arquitectura básica.

Fig. 6. Implementación del bloque de cifrado en la arquitectura pipeline.

Al compararlo con básica, esta arquitectura presenta un


desempeño diez veces mayor, a expensas de un incremento
de igual magnitud en el área.
C. Arquitectura área mı́nima
El objetivo de esta arquitectura es reducir la cantidad
de recursos de hardware utilizados para realizar el cifrado.
Fig. 4. Implementación de la ronda general en la arquitectura básica.
Sus buses de datos son de 32 bits. La llave secreta y
cada bloque de texto plano ingresan al módulo AES de
Debido a que la expansión de llave es precalculada, no hay a 32 bits, en forma consecutiva y en sincronismo con el
restricciones fuertes en cuanto al tiempo que demora este reloj, comenzando por el word más significativo. A medida
proceso. Con el fin de obtener una relación de compromiso que ingresan al módulo de cifrado, cada bloque de datos
entre el uso de recursos y el retardo, el bloque de expansión de entrada se almacena en cuatro bloques RAM (uno por
calcula una llave de ronda por cada ciclo de reloj, resultando cada fila de la matriz de estados) [14]. El bloque de
en la arquitectura que se muestra en la Fig. 5. En la cifrado cuenta además con cuatro instancias de SubBytes,
misma se observa, además, la implementación de la ronda una instancia de MixColumns, y cuatro instancias de Ad-
de expansión. A medida que este bloque calcula las llaves dRoundKey, ilustradas en la Fig. 7. Las memorias de entrada
de ronda, las envı́a al bloque de cifrado junto con una señal y salida corresponden a dos bancos de una misma memoria.
de habilitación y una dirección que es usada en este último El cifrado se lleva a cabo mediante la lectura de uno de
para almacenar las llaves de ronda en un arreglo denominado los bancos (memoria de entrada), direccionando en forma
key table. adecuada para llevar a cabo la transformaciones ShiftRows.
Los 8 bits leı́dos en cada memoria (32 bits en total) ingresan
B. Arquitectura pipeline a la lógica combinatoria que implementa una ronda y, en el
El objetivo de esta arquitectura es obtener un mayor de- próximo ciclo de reloj, se almacena el resultado en el banco
sempeño en comparación con la arquitectura básica. Esto se de memoria de salida. Cada vez que finaliza una ronda, los
logra llevando a cabo múltiples rondas de cifrado en forma bancos de memoria intercambian sus roles, con el fin de
simultánea. En el bloque de cifrado se instancian nueve calcular la ronda siguiente.
rondas generales y una ronda final, tal como se ilustra en En esta arquitectura, el bloque de expansión también
la Fig. 6. Al igual que en la arquitectura básica, cada ronda cuenta con un bus de datos de 32 bits. La Fig. 8 ilustra
general consta de dieciséis instancias de las trasformaciones este proceso, en el que se calcula un word de sub-llave
SubBytes y AddRoundKey, además de cuatro instancias de por cada ciclo de reloj [14]. Cada word calculado se envı́a
estas dos rondas en un mismo ciclo de reloj. Además, se
observa que los valores de latencia no coinciden con el
número de rondas, debido al retardo adicional que insume
la lógica de control al asegurar una correcta comunicación
entre el bloque de cifrado y su maestro.
El valor de latencia para área mı́nima es aproximadamente
cinco veces mayor al de las demás arquitecturas. Esto se
Fig. 7. Estructura del bloque de cifrado para la arquitectura área mı́nima. debe al procesamiento de 32 bits en cada ciclo de reloj, y
a la necesidad de esperar un ciclo extra entre la escritura y
lectura de una misma dirección de memoria RAM.
hacia el bloque de cifrado, donde se almacenan en cuatro V. R ESULTADOS DE S ÍNTESIS
bloques RAM (uno por cada fila de la matriz de estado de
llave). Esta memoria RAM es accedida al llevar a cabo las La sı́ntesis lógica para las tres arquitecturas fue orientada
trasnsformaciones AddRoundKey. a FPGA y se realizó utilizando la herramienta ISE de
Xilinx. La Tabla II muestra los resultados de velocidad y
área obtenidos. El perı́odo de reloj mostrado es el mı́nimo
admisible para cada arquitectura, cuyo valor depende princi-
palmente del retardo de la lógica combinatoria que compone
las rondas generales de cifrado y expansión de llave.
TABLA II
R ESULTADOS DE S ÍNTESIS

Arquitectura Tclk Slices LUTs Registros Bloques


RAM
Fig. 8. Expansión de llave en la arquitectura área mı́nima. Básica 7.974 ns 920 1823 2072 0
Pipeline 5.243 ns 2663 8646 3244 0
Área mı́nima 8.654 ns 98 262 12 9
IV. R ESULTADOS DE SIMULACI ÓN Pipe int ext 5.280 ns 1783 4595 3905 58

Las tres arquitecturas fueron simuladas utilizando ISim


Con el fin de optimizar el uso de los recursos que ofrece
14.6 de Xilinx. El banco de prueba o test bench actúa
el FPGA, se realizó también la sı́ntesis de una nueva versión
como maestro del bloque de cifrado y tiene acceso a
para la arquitectura pipeline. En la misma se realiza la
dos archivos de texto, uno que contiene 1000 bloques de
transformación SubBytes en forma sincrónica, agregando
texto plano y otro que contiene los 1000 bloques de texto
un nuevo registro dentro de la implementación de ronda
cifrado correspondientes, obtenidos a partir de un modelo de
general, de manera que la herramienta de sı́ntesis infiera
referencia desarrollado en C. En primer instancia, el maestro
un bloque de memoria RAM al implementar las S-BOX.
envı́a la llave secreta al módulo AES y, una vez finalizado
Esta arquitectura se identifica como pipe int ext en la tabla,
el proceso de expansión, envı́a bloques de texto plano en
ya que cuenta con dos niveles de paralelismo, uno entre
los momentos en los que el módulo está en condiciones de
rondas y uno dentro de cada ronda. Al comparar ambas
recibirlos. Cuando finaliza el proceso de cifrado para cada
implementaciones de la arquitectura pipeline, se observa
bloque, el banco de prueba compara el valor devuelto por
que la utilización de los bloques RAM que ofrece el FPGA
el módulo AES con el texto cifrado obtenido del archivo
disminuye notablemente la cantidad de recursos necesarios,
correspondiente. En caso de encontrar una diferencia, la
pero también disminuye levemente la frecuencia máxima de
notifica mediante una advertencia en consola.
operación.
Para cada arquitectura se documentaron los valores de
Con el fin de minimizar el área en la arquitectura área
desempeño máximo y latencia, parámetros generalmente
mı́nima, la descripción HDL se realizó de manera que la
usados al evaluar y caracterizar bloques digitales. El de-
herramienta de sı́ntesis infiera bloques RAM para el alma-
sempeño corresponde a la cantidad de bits procesados por
cenamiento de sub-llaves y datos intermedios en el proceso
unidad de tiempo, mientras que la latencia es el tiempo
de cifrado. Este enfoque presenta una notable disminución
requerido para procesar un bloque de datos. Los resultados
en el uso de recursos al compararlo con la implementación
se presentan en la Tabla I.
de este bloque sin bloques RAM, debido a la gran cantidad
TABLA I de multiplexores necesarios para seleccionar los words de
R ESULTADOS DE SIMULACI ÓN datos y llave correspondientes en cada ciclo de reloj. Al
usar bloques RAM, esta selección se realiza de una manera
Arquitectura Latencia Desempeño
Básica 11 × Tclk 128bits/(12 × Tclk ) más eficiente, mediante su direccionamiento.
Pipeline 12 × Tclk 128bits/(Tclk ) Al comparar los resultados se observa que pipeline no
Área mı́nima 51 × Tclk 128bits/(55 × Tclk ) insume 10 veces más recursos de básica, como se esperaba.
Esto se debe a que, además de las estructuras de cifrado
El incremento en la latencia para la arquitectura pipeline, presentada en las Figs 3 y 6, ambos módulos también
al compararla con básica, se debe a que la primera cuenta cuentan con la tabla de llaves de ronda key table. Esta tabla
con un registro entre la ronda inicial y la primera ronda es igual en ambas arquitecturas, representando un porcentaje
general; mientras que en la arquitectura básica se ejecutan importante de la lógica que requieren.
Al combinar los resultados de simulación y sı́ntesis se [13] X. Zhang and K. K. Parhi, “Implementation approaches for the
obtiene para cada arquitectura los valores de desempeño y advanced encryption standard algorithm,” Circuits and Systems Mag-
azine, vol. 2, no. 4, pp. 24–46, 2002.
latencia que se muestran en la Tabla III [14] P. Chodowiec and K. Gaj, “Very Compact FPGA Implementation
of the AES Algorithm,” in Cryptographic Hardware and Embedded
TABLA III Systems-CHES 2003, 2003, pp. 319–333.
R ESULTADOS FINALES

Arquitectura Latencia Desempeño


Básica 87.71 ns 1.33 Gbps
Pipeline 62.91 ns 24.42 Gbps
Área mı́nima 441.32 ns 268.92 Mbps

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.

También podría gustarte