Está en la página 1de 12

IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

CRYPTOGRAPHIC IMPLEMENTATIONS FOR FPGA

Fabián Velásquez1 Fecha de envío: Noviembre de 2010


Fecha de recepción: Diciembre de 2010
Javier F. Castaño2 Fecha de aceptación: Marzo de 2011

Resumen:
Las técnicas que se requieren para proteger datos, en la actualidad,
corresponden al campo de la criptografía basada en modelación
matemática, que asegura confidencialidad en la transmisión y al-
macenamiento de la información. En este artículo, se presentan los
resultados parciales del desarrollo de una infraestructura de clave
pública, utilizando una plataforma reconfigurable basada en disposi-
tivos FPGA. La arquitectura se soporta en el criptosistema de curvas
elípticas (ECC Elliptic curve cryptosystem), además integrada por
el algoritmo Rijndael (AES) para cifrado simétrico y SHA como algo-
ritmo de integridad de la información. Se especifican los resultados
alcanzados en el desarrollo del algoritmo AES y la implementación de
1 Ingeniero Electró- criptografía de curvas elípticas en FPGA.
nico. M. Sc. (c) en
Matemática Apli-
cada. Grupo de Palabras clave: rable platform based on FPGA devices. The
Investigación Ma-
crypt, Universidad
Infraestructura de clave pública, criptografía architecture is based on the elliptic curve
de los Llanos. Co- de curvas elípticas, AES, hardware reconfi- cryptosystem (ECC), including the Rijndael
rreo: fvelasquez@ gurable. algorithm (AES) for symmetric encryption
unilla and the SHA as the data integrity algorithm.
nos.edu.co
Abstract: The results achieved when implementing
2 Ingeniero Electróni- At present, the techniques required to pro- both the AES algorithm and the elliptic cur-
co. Esp (c) en Solu- ve cryptography with FPGA are presented.
tect data correspond to the field of cryptogra-
ciones Telemáticas.
Grupo de Investiga- phy based on mathematical modeling, which
ción Macrypt, Uni- ensures confidentiality when transmitting Keywords:
versidad de los and storing information. In this article, we Public-key infrastructure PKI, elliptic cur-
Llanos. Correo: jf-
castano@unillanos. present the partial results of public-key in- ve cryptography, AES, reconfigurable
edu.co frastructure development using a reconfigu- hardware.

Universidad Distrital Francisco José de Caldas - Facultad Tecnológica


26
IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

1. Introducción elípticas, en reemplazo de las implementa-


ciones tradicionales basadas en RSA [1].
La seguridad informática ha adquirido gran
importancia en las áreas de la industria, los 2. Criptografía de curvas elípticas
negocios y en la sociedad actual. Las técni-
cas básicas que se requieren para proteger Una de las mejores técnicas en criptografía
la información corresponden al campo de la es el denominado criptosistema de curvas
criptografía, debido a que esta se aplica a la elípticas (conocido formalmente como ECC,
seguridad y es una herramienta primordial por sus siglas en inglés), planteado indepen-
para asegurar confidencialidad en la trans- dientemente por Koblitz [2] y Miller [3]. Se
misión y almacenamiento de la información; han presentado numerosas investigaciones
igualmente es necesario garantizar la auten- teóricas como prácticas de esta técnica y se
ticidad de la información, para validar las han demostrado sus capacidades para cifrar
partes integrantes y del proceso, así como información y su posicionamiento como el
comprobar la integridad de la información, criptosistema que ofrece mejores condiciones
permitiendo detectar un cambio en la infor-
de seguridad, eficiencia y uso de memoria.
mación originalmente transmitida o almace-
La investigación actual en ECC se centra en
nada. Estas necesidades se resuelven con
mejorar los métodos aritméticos necesarios
algoritmos de cifrado en el caso de la con-
para operar sobre las curvas elípticas. Esto
fidencialidad, esquemas de firma digital en
implica el cálculo de los puntos sobre las cur-
el caso de la autenticidad y funciones hash
vas en un campo finito que sirven para propó-
en el caso de la integridad. La aplicación de
sitos criptográficos. Desde el planteamiento
estas técnicas se da en diversos escenarios,
del ECC, se han implementado numerosas
basados en una arquitectura general deno-
arquitecturas en ambientes como software
minada PKI (public-key infrastructure). Estas
de alto nivel en diferentes sistemas operati-
aplicaciones incluyen toda clase de servicios
vos y en dispositivos de lógica programable.
telemáticos, tales como transacciones elec-
Cada vez se destaca más la importancia de
trónicas, voto telemático, gobierno en línea,
la investigación de implementaciones eficien-
acceso y comunicación con servidores, en-
tes de ECC en embedded systems, tales como
tre otras.
smart cards, cajeros, teléfonos, entre otros.
El uso de técnicas criptográficas se ha ma-
sificado, principalmente en aplicaciones 2.1. Aritmética en el campo GF(2m) con base
independientes de un PC, lo que implica polinomial La aplicación
el desarrollo de sistemas de bajo consumo de estas técnicas
dedicados, que realicen las funciones crip- 2.1.1. Conceptos de bases polinomiales
tográficas en diferentes entornos. Estas im-
se da en diver-
plementaciones se soportan en sistemas em- Si se considera una extensión finita F=Fqm sos escenarios,
bebidos, soportados en microcontroladores del campo finito F=Fq como un espacio vec- basados en una
comerciales o en implementaciones total- torial sobre K, entonces F tiene dimensión arquitectura
mente soportadas en hardware reconfigura- m sobre K, y si (α1, α2,.... αm,) es una base de
ble, especialmente en FPGA (field program- F sobre K, entonces cada elemento α ∈ F se
general denomina-
mable gate array). La tendencia actual es a puede representar de forma única como: α = da PKI (public-key
la implementación de criptografía de curvas c1 α1+.....+ cm αm, donde cj ∈ K, 1≤ j ≤ m. infrastructure).

Revista Visión Electrónica Año 5 No. 1 pp. 26 - 37 Enero - Junio de 2011


27
FABIÁN VELÁSQUEZ – JAVIER FERNANDO CASTAÑO

Se puede establecer la siguiente correspon- El otro enfoque toma como base el polino-
dencia lineal de F en K mediante la función mio irreductible, al calcular las expresiones
traza TrF/K (α): sea K un campo finito y sea que generan cada uno de los coeficientes
TrF/K (α) una extensión finita de K , la base del resultado de la multiplicación, la cual,
polinomial (1, α, α2,.... αm–1) se construye con por tanto, se puede implementar en paralelo.
las potencias de un elemento definitorio α de Por esto, se denomina multiplicadores para-
F sobre K , donde el elemento α es un ele- lelos a este tipo de enfoques.
mento primitivo de F . Con esta base se re-
presentan los elementos de un campo finito 2.1.3. Adición en base polinomial
mediante polinomios con coeficientes ai, que
pertenecen al campo K y las potencias de Dados dos elementos:
los elementos de la base. Cada polinomio que A = a 0 + a1 x + a 2 x 2 + ... + a m x m −1
representa un término es una clase residual B = b0 + b1 x + b2 x 2 + ... + bm x m −1
módulo el polinomio irreductible, es decir en el campo finito GF(2m), entonces A + B
{
Fq m = a0 + a1 x + a 2 x + ... + a m x / ai ∈ Fq
2 m
}. = C = c 0 + c1 x + c 2 x 2 + ... + c m x m −1 , donde
ci = (ai + bi ) mod 2 , lo que equivale a la
2.1.2. Multiplicación en base polinomial operación XOR bit a bit.

Dos elementos A, B ∈GF(2m)con polinomio


2.2. Aritmética de curvas elípticas
irreducible p(z) se representan en la forma
de polinomios:
Las curvas elípticas son una importante fami-
A = a 0 + a1 x + a 2 x 2 + ... + a m x m −1 lia de funciones que se originan al solucionar
B = b0 + b1 x + b2 x 2 + ... + bm x m −1 cierto tipo de ecuaciones en dos variables y
otras funciones especiales. Particularmen-
El producto C = A*B se representa como: te, las curvas elípticas se estudian desde el
enfoque de la teoría de curvas modulares y
C = c0 + c1 x + c 2 x 2 + ... + c m x m −1 con base en ellas se han dado importantes
De esta expresión puede notarse que el desarrollos en la matemática, como el méto-
producto C tiene el mismo tamaño que los do de factorización de Lenstra y la demostra-
operandos A y B, lo cual se debe a que son ción del último teorema de Fermat. Desde
elementos de un campo finito. el punto de vista de la criptografía, son de
interés las curvas elípticas definidas sobre
un campo finito.
Para realizar la multiplicación entre dos ele-
mentos de un campo finito con representación
2.2.1. Curvas elípticas sobre GF(2m)
en base polinomial, se realiza la multiplicación
normal de polinomios, lo que origina un poli- Una curva elíptica es una ecuación en don-
nomio de grado máximo 2m − 2 . Como pue- de x y y son las indeterminadas, y los a1, . . .,
de observarse, este polinomio no pertenece a5 son elementos constantes de un campo.
al campo finito, por lo cual se implementa una Para el caso de GF(2m), es de interés la cur-
reducción módulo el polinomio irreductible. va elíptica
Dado que la multiplicación de polinomios se
E ( F27 ) : y 2 + xy = x 3 + ax2 + b (1)
puede realizar paso a paso, este tipo de multi-
plicadores se denominan seriales [4]. donde a, b ∈ GF (2m), b ≠ 0.

Universidad Distrital Francisco José de Caldas - Facultad Tecnológica


28
IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

Los puntos que satisfacen (1) se denominan 2.2.2. Problema del logaritmo discreto en curvas
puntos racionales y forman una estructura elípticas (ECDLP)
de grupo abeliano con respecto a la suma de
puntos, con el punto Ο , llamado punto al in- Sea E una curva elíptica definida sobre un
finito como elemento neutro. campo finito GF(2m) y sea G ∈E(Fq) un pun-
La suma de puntos sobre la curva Ea,b se de- to sobre E de orden n (n un número primo y
fine de la siguiente manera: grande). El ECDLP, se plantea así: dados E
a. O + O = O. y un múltiplo escalar Q de G, determinar un
entero a tal que Q = aG.
b. P + O = O + P = P, para todo P∈E(F2m).
c. Si P = (x, y)∈E(F2m), entonces (x, y) + 2.2.3. Multiplicación de puntos
(x, x + y) = O. El punto (x, x + y) se de- La fundamental y más costosa operación en
nota –P y se llama el negativo de P. –P es el criptosistema de curvas elípticas es la mul-
un punto de la curva. tiplicación de puntos o multiplicación escalar
kP, donde k es un entero y P es un punto de
d. Sean P1 = (x1, y1) y P2 = (x2, y2) dos puntos la curva elíptica. La multiplicación escalar se
de la curva E(Zp), donde x1≠x 2, se tiene define en términos de la suma:
que P1 + P2 = (xs, ys) es:
kP = P + P + ... + P (2)
xs = λ2 + λ+ x1 + x2 + a
k veces
ys = λ(x1 – xs ) + xs + y1,
y 2 + y1 Para realizar esta operación se usa el méto-
donde λ = do de López-Dahab [5], el cual realiza el mis-
x 2 + x1
e. Sea P1 = (x1, y1) un punto de la curva, con mo tipo de operaciones (multiplicaciones y
y1 ≠ 0. Entonces P1 + P1 = (xs, ys), sumas) en cada ciclo, lo que permite que sea
resistente a ataques por análisis de potencia.
donde xs = λ2 + λ+ a, ys = x12 + (λ + 1)xs En términos de las operaciones en el campo
y finito, el costo aproximado del método es de
donde λ = x1 + 1
x1 6 m + 20 s para calcular kP.
La suma y duplicación de puntos se imple-
mentan en términos de la aritmética de cam- 3. AES (Advanced Encryption Standard)
pos finitos. Las curvas elípticas
La estructura del algoritmo Rijndael está for- son una impor-
En algunas aplicaciones es conveniente mada por un conjunto de rondas (conjunto
tante familia de
representar los puntos racionales en co- de iteraciones de cuatro funciones matemá-
ordenadas proyectivas, lo cual provee una ticas diferentes e invertibles). El algoritmo
funciones que
disminución en el número de inversiones re- se basa en la aplicación de un número de se originan al
queridas, lo que se traduce en mayor facili- rondas a una información en claro para pro- solucionar cierto
dad de implementación. el National Institute ducir una información cifrada. tipo de ecuaciones
of Standards and Technology (NIST), estan-
darizó las condiciones de las curvas elípticas Cada ronda está compuesta por cuatro ope-
en dos variables
para que sean eficientes en aplicaciones co- raciones basadas en transformaciones uni- y otras funciones
merciales, en cuanto a la seguridad. formes e invertibles llamadas “capas” –que especiales.

Revista Visión Electrónica Año 5 No. 1 pp. 26 - 37 Enero - Junio de 2011


29
FABIÁN VELÁSQUEZ – JAVIER FERNANDO CASTAÑO

Figura 1. Estructura del algoritmo Rijndael – AES (cifrado).

han sido diseñadas para resistir a los criptoa- vo byte. Esta transformación consiste en la
nálisis lineal y diferencial–, las cuales son: sustitución de cada byte por el resultado de
aplicarle la tabla de sustitución S-Box. Esta
• Capa de mezcla lineal: Garantiza un alto tabla lógicamente es invertible.
nivel de difusión a lo largo de las múlti-
ples rondas.
3.2. Shiftrow: Desplazamiento de filas
• Capa no lineal: Consiste en la aplicación
de S-Cajas en paralelo que tiene propie- En esta transformación se rotan cíclicamente
dades óptimas de no linealidad. las filas del estado intermedio varios lugares
a la izquierda, dependiendo de la posición de
• Capa de adición de clave: Se trata de una la fila y el tamaño de bloque cifrado. Cuando
operación OR exclusivo entre el estado. son bloques de 128 o 196 bits, la primera fila
(fila 0) no se desplaza, la fila 1 se desplaza
3.1. Bytesub: Sustitución de Byte cíclicamente un lugar, la fila 2 dos lugares
y la fila 3 tres lugares. Cuando los bloques
Consiste en una sustitución no lineal que son de 256 bits, estos desplazamientos son
se aplica a cada byte de la matriz de estado algo diferentes: 0, 1, 3 y 4 lugares, respecti-
de forma independiente, generando un nue- vamente.

Universidad Distrital Francisco José de Caldas - Facultad Tecnológica


30
IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

3.3. Mixcolumn: Mezcla de columnas que el resto de palabras se van generando a


partir de estas primeras Nk palabras [6].
Esta transformación actúa sobre los bytes de
una misma columna de la matriz de estado 3.6. Proceso de cifrado
que tiene a la entrada. En realidad, esta fun-
ción permite una mezcla de los bytes de las El algoritmo para cifrar un bloque realiza
columnas. La transformación considera las primero la transformación Addrounkey de
columnas de bytes como polinomios cuyos adición con la primera clave, luego se llevan
coeficientes pertenecen a GF(28), es decir, a cabo varias rondas, cuyo número n es 9, si
también son polinomios. La función MixCo- tanto el bloque como la clave son de 128 bits;
lumn consiste en multiplicar las columnas de 12 si la clave o el bloque son de 192 bits y nin-
bytes módulo x4+1 por el polinomio c(x). Ma- guno de ellos supera esta longitud, y 13 si la
temáticamente, C(x) está representado por: clave o el bloque son de 256 bits. Se realizan
las cuatro etapas que constituyen el ciclo bá-
C(x)=0316x3+0116x2+0116x+0216 (3) sico de Rijndael, que son: Bytesub, Shiftrow,
Mixcolumn y Addroundkey. Además se rea-
Para descifrar o invertir esta transformación, liza un ciclo extra compuesto por las trans-
se realiza el mismo procedimiento, pero con formaciones Bytesub, Shiftrow, Addroun-
el polinomio d(x), que es el inverso de c(x). dkey, pero no aparece la transformación
Mixcolumn. Para obtener las subclaves que
3.4. Addroundkey se aplican en cada ciclo se genera una serie
de expansiones de la clave original, cada una
En esta última transformación se realiza una del mismo tamaño que ésta [6].
operación OR-Exclusiva entre la matriz de
estado que proviene de la transformación 3.7. Proceso de descifrado
anterior (función MixColumn) y la subcla-
ve generada a partir de la clave del sistema En el proceso de descifrado se procede en el
para esa ronda. El bloque resultante de esta orden inverso al cifrado, realizando también
transformación es la nueva matriz de estado en cada paso la operación inversa. La trans-
para la siguiente ronda, hallando el bloque o formación Addroundkey, por estar consti-
dato de salida del algoritmo, si es la última tuida por una operación XOR, es inversa de
ronda. sí misma, pero en el caso de las otras tres
transformaciones es necesario usar la ope-
ración inversa.
3.5. Función de expansión de clave

Esta función permite generar bytes útiles 4. Resultados


como subclaves a partir de la clave de siste-
ma K. Además, se puede describir como un Las implementaciones se realizaron sobre
arreglo lineal, denominado W, de palabras de un dispositivo XV5LX110T de Xilinx, usando
4 bytes y con una longitud de Nb*(Nr+1). Las una tarjeta de desarrollo XUPV5-LX110T de
primeras Nk palabras de este arreglo con- Digilent. Para el desarrollo y simulación se
tienen la clave de cifrado, ya que la clave del empleó el entorno ISE Design Suite 10.1 de
usuario se mapea en el arreglo W, mientras Xilinx.

Revista Visión Electrónica Año 5 No. 1 pp. 26 - 37 Enero - Junio de 2011


31
FABIÁN VELÁSQUEZ – JAVIER FERNANDO CASTAÑO

4.1. AES activa alta por flanco, aprovechando la capaci-


dad de describir este tipo de componentes en
La implementación hardware del algoritmo VHDL. El proceso completo de operación de
AES-Rijndael corresponde al tipo iterativo, las 10 rondas se controla mediante una má-
pues se tiene un bloque Round único, el cual quina de estado finito FSM, que se encarga
es usado para procesar iterativamente los de las siguientes operaciones:
datos obtenidos en cada una de las rondas. • En el estado inicial coloca el enable del
El funcionamiento comienza con el texto y la registro de estado en 0 y el de subcla-
clave originales, luego un registro soporta el ve en 1. Igualmente genera el valor de
almacenamiento parcial realimentado, hasta Rcon para el bloque KeySch y coloca el
llegar a completar las 10 iteraciones o ron- bit de habilitación de la transformación
das, contempladas para AES. MixColumns en 1, con la cual se efectúa
la misma.
El boque Round consiste en la interconexión
en cascada de los bloques que implementan • En el estado siguiente coloca el enable
cada una de las operaciones internas, de esta de estado en 1 y el de subclave en 0. En
manera no se tiene ningún tipo de retardo este punto la subclave correspondiente
para obtener la salida de la ronda. También queda almacenada en el registro.
es necesario contar con la clave de ronda co- • En el siguiente estado coloca ambos bit
rrespondiente; esto se logra con el bloque de enable en 0, terminando el ciclo co-
KeySch (Key Schedule). rrespondiente a una ronda.

El boque Round es modular, totalmente de- Este proceso se repite para las 10 rondas,
sarrollado en VHDL lenguaje para descrip- con una diferencia fundamental en la última,
ción y modelado de circuitos, junto con el en la cual coloca un 0 en el habilitador de
módulo InvRound, que implementa las ron- MixColumns, con lo que no se realiza esta
das en el proceso de descifrado. El boque transformación.
Round recibe un bloque de 128 bits corres-
pondiente al estado del proceso, junto con la Figura 2. Arquitectura para el cifrado AES.
clave de ronda correspondiente y un bit que
indica la realización de la transformación
MixColumns, si está en 1, o la ausencia de
esta transformación, en caso contrario.

El bloque KeySch se implementa completa-


mente en paralelo, logrando una optimiza- GENERACIÓN
ción significativa al no presentar retardos en
el cálculo de la subclave correspondiente. A
este bloque ingresan la clave anterior y el
valor de Rcon correspondiente a la ronda, te-
niendo como salida la subclave que se lleva al
bloque Round para su operación interna. Los
registros de almacenamiento de matriz esta-
do y subclave se habilitan mediante una señal

Universidad Distrital Francisco José de Caldas - Facultad Tecnológica


32
IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

Para el proceso de descifrado se diseñó una Es posible considerar algunos factores que
arquitectura semejante, con las siguientes influyen en los resultados obtenidos. Existen
consideraciones: ventajas inherentes a los dispositivos FPGA,
dadas su arquitectura paralela y la posibili-
• La entrada del bloque es el texto cifrado dad de procesamiento concurrente. Este he-
y la clave de cifrado original. A partir de cho se evidenció en la implementación del
esta se calcula la décima subclave (10), prototipo, en el cual predominan los bloques
con la cual se inicia un proceso similar al paralelos y las conexiones masivas de ele-
del cifrado, hasta llegar a la clave inicial. mentos en cascada, logrando flujo de datos
Este proceso se implementa conectando sin retardos significativos. De igual manera,
en cascada 10 bloques KeySch y almace- se debe tener en cuenta la optimización lo-
nando la salida en el registro correspon- grada en el bloque KeySch, el cual se imple-
diente. mentó completamente en paralelo, logrando
la generación de la subclave directamente y
• El proceso interno del bloque Ronda, en
sin retardos. Otro punto importante de op-
el caso del descifrado, en inverso al del
timización es el uso de multiplicadores pa-
cifrado.
ralelos en la transformación mixcolumns del
• La FSM de control es similar a la de ci- descifrado, logrando también reducir el área
frado, con excepción de la generación de ocupada por dicho bloque. Estos multiplica-
la señal Rcon, que va en orden inverso, y dores se desarrollan teniendo en cuenta las
del uso del bit de habilitación de MixCo- características del campo finito empleado.
lumns, que también se maneja en orden
inverso, ya que en la primera ronda no se 4.2. Curvas elípticas
realiza dicha operación.
Se ha implementado en primer lugar la aritmé-
La Tabla 1 presenta la comparación de los tica de campos finitos, específicamente sobre
resultados obtenidos con otras implementa- el campo GF(2163). Este campo está estan-
ciones reportadas. darizado por NIST y se considera aún seguro

Tabla 1. Comparación con otras implementaciones.

Cifrado Descifrado
Autor Through-
CLs Throughput CLs
put Mbps
Liberatori [7] 637,24 1.584 500,28 2.506
Standaert et al. [8] 1450 542 No implementa NI
Segredo et al. [9] 417 496 NI NI
López [10] 6,8 2.500 4,5 2.400
J. López et al. [11] 1067,62 633
Este trabajo 660 410 660 840

Revista Visión Electrónica Año 5 No. 1 pp. 26 - 37 Enero - Junio de 2011


33
FABIÁN VELÁSQUEZ – JAVIER FERNANDO CASTAÑO

tiplicación en el campo finito, se implementa


Figura 3. Algoritmo de López-Dahab. un multiplicador bit-serial [12], el cual realiza
la operación en 163 ciclos de reloj.

Una operación importante en campos finitos,


que se requiere para la multiplicación escalar
en curvas elípticas, es el cálculo del inverso
multiplicativo. Para esta operación se imple-
menta el algoritmo de Itoh-Tsuji [13]. Dado
que este algoritmo emplea elevaciones al cua-
drado, se implementa esta operación a través
de una simplificación del multiplicador en
campos finitos.

En cuanto a la aritmética de curvas elípticas,


se implementa el algoritmo de López-Dahab
para realizar la operación kP (multiplicación
escalar). Este algoritmo emplea operaciones
en el campo finito en cada una de sus etapas.

para implementaciones prácticas. La opera- En la Figura 4 se presenta la arquitectura


ción de suma en el campo finito simplemente desarrollada.
es una operación XOR bit a bit, entre dos pala-
bras de 163 bits, operación que se implementa El funcionamiento de la arquitectura se so-
completamente en paralelo aprovechando las porta en una (FSM) que controla las señales
ventajas de los dispositivos FPGA. Para la mul- y el flujo de los datos requeridos.

Figura 4. Arquitectura del procesador EC.

Universidad Distrital Francisco José de Caldas - Facultad Tecnológica


34
IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

Tabla 2. Comparación con otras implementaciones de EC.

Autor Dispositivo Bits kP (ms) Gates (K)


Leung et al. [14] FPGA XCV300 113 3,7 320
Ernst et al. [15] FPGA XC4085XLA 155 1,3 180
Okada et al. [16] FPGA EPF10K 163 80,7 310
Orlando et al. [17] FPGA XCV400E 167 0,21 570
Trujillo et al. [18] FPGA EP2A70B724C7 163 0,819 110
Este trabajo FPGA XV5LX110T 163 0,75 100

5. Conclusiones del proceso de Key Schedule (generación


de subclaves); esta mejor implementación
En el presente trabajo se obtuvieron impor- redunda en una reducción de los recursos
tantes resultados implementando la arqui- usados en la FPGA (área ocupada).
tectura iterativa del algoritmo AES-Rijndael
y las operaciones sobre curvas elípticas. En En la implementación de curvas elípticas se
este caso se pudieron notar las ventajas de observa aún más la ventaja del uso de hard-
trabajar en hardware, sobre todo aprove- ware reconfigurable, ya que las operaciones
chando las características de los dispositivos se realizan sobre bloques de 163 bits, sin
FPGA. posibilidad de subdividir en bloques más
pequeños, tarea que se dificulta al usar las
Si se compara el throughput y el desempeño ALU de los microprocesadores convencio-
en general de las aplicaciones en software y nales. De esta manera se logra un mejor
hardware reportadas, es evidente la superio- rendimiento en las diferentes operaciones,
ridad de estas últimas, pues permiten una tanto en el campo finito como en la aritméti-
mayor tasa de transferencia de información ca de curvas elípticas.
para los procesos de cifrado y descifrado.
6. Trabajo futuro
La mayor parte de la optimización resultan-
te en las aplicaciones hardware se debe al El trabajo desarrollado hace parte de un
uso del paralelismo, como en el caso de la proyecto en el cual se pretende implementar Una operación
transformación Bytesub de AES, que se rea-
liza sin ningún tipo de retardo, mientras que
una arquitectura segura de voto telemático, importante en
soportada en FPGA, incluyendo una PKI in-
en una aplicación software se requieren 16 campos finitos, que
tegrada por AES, ECC y SHA (Secure-hash
operaciones secuenciales para AES-128, ya algorithm). El trabajo continuará integrando se requiere para
que está definida en el nivel de byte. las implementaciones AES y EC logradas, la multiplicación
aplicadas en un servidor web soportado en escalar en curvas
En la implementación de AES se lograron un sistema embebido sobre FPGA y un dis-
optimizaciones adicionales, principalmente elípticas, es el
positivo USB que soporta el acceso de los
por una comprensión de la naturaleza estruc- clientes a través de Internet desde cualquier cálculo del inverso
tural de ciertos módulos, como en el caso PC. multiplicativo.

Revista Visión Electrónica Año 5 No. 1 pp. 26 - 37 Enero - Junio de 2011


35
FABIÁN VELÁSQUEZ – JAVIER FERNANDO CASTAÑO

Referencias and Design Tradeoffs”. Crypto-


graphic Hardware and Embedded
[1] M. Merino Martínez. “Una introduc- Systems. CHES 2003, 2003, pp. 334-
ción a la criptografía. El criptosiste- 350.
ma R.S.A”. I.E.S Cardenal López de
[9] A. Segredo. “Diseño de un procesa-
Mendoza, 2004.
dor criptográfico Rijndael en FPGA”.
[2] N. Koblitz. “Elliptic curve cryptosys- X Workshop Iberchip, 2004, p. 64.
tems”. En Mathematics of Computa-
[10] E. López. “Implementación eficiente
tion. Vol. 48. Boston, American Math-
en FPGA del modo CCM usando
ematical Society, 1987, pp. 203-209.
AES”. Tesis de Maestría en Ciencias,
[3] V. Miller. “Uses of elliptic curves in Centro de Investigación y de Estu-
cryptography”. Advances in Cryptol- dios Avanzados del Instituto Politéc-
ogy. Crypto 85, Proceedings, Lecture nico Nacional, México, 2005.
Notes in Computer Science, 218,
[11] J. López et al. “Implementación en
Springer-Verlag, pp. 417-426, 1986.
hardware del algoritmo Rijndael”.
[4] D. Hankerson, A. Menezes y S. Van- Grupo de Bioelectrónica y Nanoelec-
stone. “Guide to elliptic curve cryp- tronica, Escuela IEEE, Universidad
tography”. Springer-Verlag, 2004. del Valle, 2003.

[5] J. Lopez y R. Dahab. “Fast multipli- [12] D. Hankerson, A. Menezes y S. Van-


cation on elliptic curves over GF(2n) stone. “Guide to Elliptic Curve Cryp-
without precomputation”. Crypto- tography”. Springer-Verlag, 2004, pp.
graphic Hardware and Embedded 230-233.
Systems. CHES`99, Lecture Notes in
[13] T. Itoh y S. Tsujii. “A fast algorithm
Computer Science, 1717, 2002, pp.
for computing multiplicative inverses
316-327.
in GF(2m) using nomal bases”. Infor-
[6] J. Daemen y V. Rijmen. “AES Propo- mation and Computation, 78 (1988):
sal: Rijndael”. Rijndael Tecjnical Re- 171-177.
port, 1999. En línea: http://csrc.nist.
[14] K. H. Leung, K. W. Ma, W. K. Wong
gov/archive/aes/rijndael/Rijndael-
y P. H. W. Leong. “FPGA Implemen-
ammended.pdf
tation of a microcoded elliptic curve
[7] M. Liberatori. “Desarrollo de en- cryptographic processor”. Proc.
criptado AES en FPGA”. Tesis de IEEE FCCM 2000, pp. 68-76, Napa
Maestría en Redes de Datos, Univer- Valley.
sidad de la Plata, 2004.
[15] M. Ernst, S. Klupsch, O. Hauck y
[8] F. Standaert. “Efficient Implementa- S. A. Huss. “Rapid prototyping for
tion of Rijndael Encryption in Recon- hardware accelerated elliptic curve
figurable Hardware: Improvements public-keycryptosystems”. Proc. 12th

Universidad Distrital Francisco José de Caldas - Facultad Tecnológica


36
IMPLEMENTACIONES CRIPTOGRÁFICAS EN FPGA

IEEE Workshop on Rapid System Notes in Computer Science, 1965,


Prototyping (RSP01), Monterey, CA, Springer-Verlag, 2000, pp. 25-40.
2001.
[17] G. Orlando. “Efficient elliptic curve
[16] S. Okada, N. Torii, K. Itoh y M. Tak- processor architectures for field pro-
grammable logic”. Tesis, Worcester
enaka. “Implementation of Elliptic
Polytechnic Logic, 2002.
Curve Cryptographic Coprocessor
over GF(2m) on an FPGA”. C. K. Koc [18] V. Trujillo et al. “Design of an el-
y C. Paar (eds.). Workshop on Cryp- liptic curve cryptoprocessor over
tographic Hardware and Embed- GF(2163)”. XI Workshop Iberchip,
ded Systems (CHES 2000), Lecture Salvador de Bahía, marzo de 2005.

Revista Visión Electrónica Año 5 No. 1 pp. 26 - 37 Enero - Junio de 2011


37

También podría gustarte