Está en la página 1de 6

Universidad de Ingeniería y Tecnología UTEC

Proyecto Interdisciplinario III - Teoría 12

Barranco, 06 junio 2022

Aceleración del proceso de encriptación AES mediante la


implementación de un sistema híbrido HW/SW usando FPGA

Arroyo F 2, Avila E 2, Custodio J 2, Mamani D 2, Medina J 1, Montes L 3, Ubaqui M 1


1 Carrera de Ingeniería Civil - Universidad de Ingeniería y Tecnología.
2 Carrera de Ingeniería Electrónica - Universidad de Ingeniería y Tecnología.
3 Carrera de Ingeniería Química - Universidad de Ingeniería y Tecnología.

Resumen: El presente trabajo de investigación tiene como objetivo detallar las etapas de
diseño, implementación y validación de un sistema híbrido que combine componentes de
hardware y software para disminuir el tiempo de cómputo del algoritmo de encriptación
Rijndael (AES) con clave de tamaño 128 bits. AES es uno de los algoritmos de criptografía
más usados en la actualidad y, con la cantidad de redes y la magnitud de información
manejada hoy en día, puede ser necesario cifrar un gran volumen de datos, para lo que se
requiere una mayor velocidad en los procesadores. Según el licenciado de la UNLP, Adrián
Pousa, esto actualmente no es posible debido a que los procesadores han llegado al límite
de velocidad por problemas térmicos y de consumo, por esta razón se ha optado por
utilizar aceleración por hardware en los equipos. Nuestro proyecto pretende presentar un
análisis de rendimiento que muestre cómo, a pesar de las limitaciones de velocidad en los
procesadores actuales, es posible, implementar soluciones hardware/software que nos
permitan acelerar los procesos computacionales.

Palabras clave: Rijndael (AES), algoritmo de cifrado.

Abstract
The objective of this research work is to detail the stages of design, implementation and validation
of a hybrid system that combines hardware and software components to reduce the computation
time of the Rijndael encryption algorithm (AES) with a key size of 128 bits. AES is one of the most
used cryptography algorithms today and, with the number of networks and the magnitude of
information handled today, it may be necessary to encrypt a large volume of data for which a
higher speed is required in the processors . According to the UNLP graduate, Adrián Pousa, this is
currently not possible because the processors have reached the speed limit due to thermal and
consumption problems, for this reason it has been decided to use hardware acceleration in the
equipment. Our project aims to present a performance analysis that shows how, despite the speed
limitations of current processors, it is possible to implement hardware/software solutions that
allow us to speed up computational processes.

Key Words: Rijndael (AES), cypher algorithm.

1
Tabla de Contenidos

ÍNDICE:
1. INTRODUCCIÓN
1.1
General………………………………………………………………………………………
……………………. 3
1.2
Aplicabilidad…………............................................................................................................................. 3
1.2.1 Ingeniería
Civil………………………………………………………………………………….. 3
1.2.1 Ingeniería
Electrónica…………………………………………..……………………………. 4
1.2.1 Ingeniería
Mecánica…………………………………………………………………………... 4
2. METODOLOGÍA Y DESARROLLO
2.1 Encriptación y desencriptación
AES………………………………………………………………….. 4
2.2
Pseudocódigo…………………………………………….…………………………………
……………...….. 4
2.2 Python….
2.3 C
2.4 Interfaz de Usuario
2.6 Microblaze
2.5 Fpga
3. RESULTADOS
4. DISCUSIÓN
5. CONCLUSIONES
6. BIBLIOGRAFÍA

2
1. Introducción
Según el Máster en Sistemas y Redes de Comunicación, Lino García, el término Computación
Híbrida se desarrolló en el ámbito del diseño HW/SW con el fin de complementar la flexibilidad
de las computadoras digitales con la velocidad de las computadoras analógicas. En la actualidad,
existen muchos avances tecnológicos que requieren de una gran capacidad de procesamiento y
velocidad en las CPU, dada la cantidad de operaciones complejas que deben ejecutar en un corto
periodo de tiempo, tales como el entrenamiento de redes neuronales Self-Organizing Feature
Map, la detección e identificación de rostros, la inteligencia artificial, etc. La aceleración de este
tipo de tareas, mediante la combinación de componentes, hardware y software (sistemas
híbridos) ya ha sido abordada por muchos autores usando diferentes ejemplos, tal y como
podremos observar en nuestra bibliografía consultada[1-3].
G. Changjian y L. Shih-Lien en [1] utilizaron una tarjeta que contaba con un FPGA Virtex 5
LX110T de Xilinx en conjunto con un software que se ejecuta en un procesador Intel Core 2 Duo
a 2.66 GHz. Los autores reportan una velocidad de detección de 37 imágenes por segundo. En
este trabajo las imágenes deben ser grabadas al FPGA como paso previo a la detección y su
tamaño de 256x192 puntos no puede variar.
L. Hung-Chih et al. en [2] utilizan un módulo hardware para implementar una pirámide de
imágenes que le permita realizar el barrido en distintas resoluciones. Los autores utilizan una
placa que contiene un FPGA Virtex-II Pro XC2VP30 e implementan 52 clasificadores en una sola
etapa. Las imágenes donde se realiza la detección deben tener un tamaño fijo de 640x480 puntos
y el conjunto de los clasificadores no puede ser modificado.
J. Cho, B. Benson, S. Mirzaei y R. Kastner en [3] emplean un FPGA de Xilinx Virtex-5 LX330 y en él
implementan la interfaz para capturar las imágenes directamente de un sensor de visión. En el
trabajo se reporta el procesamiento de 61.02 imágenes por segundo y en comparación con una
realización software equivalente a los autores logran acelerar el proceso de detección. Una de las
desventajas de esta implementación es que el tamaño de las imágenes a procesar es fijo y un
cambio en el tamaño de las mismas representaría un cambio en todo el sistema.
En el mundo de la ciberseguridad, se suelen utilizar algoritmos de encriptación de datos para
asegurar la confidencialidad de información en diferentes disciplinas, estos se denominan
algoritmos de cifrado. Si bien su número de funciones a ejecutar no es muy grande, estas se
repiten constantemente una o más veces antes de ejecutar la siguiente y nos dan la posibilidad
de optimizar el proceso ejecutándolo en un tiempo mucho menor. Para ello, emplearemos el
Advanced Encryption Standard (AES), que es uno de los algoritmos de cifrado más utilizados
para proteger los datos electrónicos, y cuyo desarrollo va ligado al tipo de datos que se requieran
cifrar. Su funcionamiento básico se da en dos procesos: el primero consiste en separar el texto sin

3
formato a diversos bloques para convertirlos de uno a uno en datos ininteligibles, cuya unión
conforma el texto cifrado, el segundo consiste en separar ahora el texto cifrado en bloques para
descifrar uno a uno los datos ininteligibles y obtener los datos de nuevo en su forma original. El
algoritmo AES requiere utilizar claves de cifrado de 128, 192 y 256 bits para cifrar y descifrar
datos de los bloques de 128 bits.

Aplicabilidad
La implementación de sistemas híbridos hardware/software puede ser de mucha utilidad para
las investigaciones científicas dentro de muchas carreras profesionales, y en la práctica, podría
aplicarse de manera eficiente durante el desarrollo de proyectos. Su aplicabilidad se puede
ejemplificar en diferentes ámbitos:
En la carrera de Ingeniería Civil se emplean muchos programas de software para hacer los
cálculos estructurales (AutoCAD, Revit, etc.) y, cuando se realizan bocetos en obras de gran
envergadura, estos programas suelen tardar demasiado en el proceso de renderizado, ya sea de
imágenes o modelos 3D. O, aplicado a la ciberseguridad, como en nuestro proyecto, podemos
utilizarlo para el envío de planos de proyectos únicos e innovadores, siendo así para que este
llegué a su destino final, sin ser interceptado por algún otro destino indebido, con tal de
salvaguardar la información contenida por dichos planos.

La carrera de Ingeniería Química, los productos de software y hardware para la industria de la


Ingeniería química se les facilita el diseño, la simulación y análisis químico. Estas soluciones
algunos ejemplos

2. Metodología y Desarrollo
Primero, se desarrolló el código del algoritmo AES en Python para simplificar su entendimiento.

Se hizo el pseudocódigo del algoritmo para C.

Se trabajó la interfaz de usuario.

Se crearon los bloques en MicroBlaze

####MODIFICAR si es necesario#### tema del microblaze######

Se eligió la tarjeta de desarrollo Basys 3, con el FPGA Artix 7 para implementar la encriptación
AES. En dicho FPGA se puede implementar, mediante lógica programable, el soft processor
microblaze (de propiedad intelectual de Xilinx) que ejecuta instrucciones bajo lenguaje C o C++.
En primer lugar, se ejecutará el código del AES sin ningún IP específico que acelere el proceso, es
decir, solo la parte de lógica programable se encargará de ejecutar secuencialmente el algoritmo.
En una segunda instancia se implementará bajo VHDL un IP propio (y conectado mediante el
bus AXI 4) para acelerar funciones específicas del AES.

Finalmente, se comprobó la diferencia entre ambas implementaciones (SW vs HW/SW) y se


midió los resultados en ciclos de reloj.

##############

4
Se realizaron dos implementaciones de este algoritmo, una implementación secuencial y la otra
utilizando una herramienta que representa implementación paralela, en este caso MicroBlaze,
en ambos casos el lenguaje utilizado fue C.

La implementación secuencial del algoritmo genera las subclaves a partir de la clave inicial. A
continuación, de los datos a cifrar, va tomando estados de 128 bits y aplica las rondas utilizando
las subclaves generadas inicialmente.

Las implementaciones paralelas consideran a los datos de entrada como bloques paralelos de
128 bits. Además, se tiene una cantidad determinada de procesos o hilos, y cada uno se
encargará de cifrar un conjunto de bloques.

3. Resultados

4. Bibliografía

El algoritmo especificado en este estándar puede implementarse en software, firmware,


hardware o cualquier combinación de los mismos. La implementación específica puede
depender de varios factores, como la aplicación, el entorno, la tecnología utilizada, etc.
Obtenido en: http://csrc.nist.gov/csor/.

1. G. Changjian and L. Shih-Lien, "Novel FPGA based Haar classifier face detection
algorithm acceleration," in International Conference on Field Programmable Logic and
Applications. FPL 2008. , 8-10 Sept. 2008, pp. 373-378.
2. L. Hung-Chih, M. Savvides and C. Tsuhan, "Proposed FPGA Hardware Architecture for
High Frame Rate Face Detection Using Feature Cascade Classifiers," in First IEEE
International Conference on Biometrics: Theory, Applications, and Systems. BTAS 2007.,
27-29 Sept. 2007 2007, pp. 1-6.
3. J. Cho, B. Benson, S. Mirzaei and R. Kastner, "Parallelized Architecture of Multiple
Classifiers for Face Detection," presented at the IEEE International Conference on
Application-specific Systems, Architectures and Processors, 2009.
4. https://www.academia.edu/8142049/Computaci%C3%B3n_H%C3%ADbrida_Co_dise
%C3%B1o_Hardware_Software#:~:text=Un%20sistema%20h%C3%ADbrido%20consis
te%20de%20hardware%20%28ya%20sea,software%2C%20a%20distintos%20niveles
%20de%20virtualidad%20y%20paralelismo.

5
6

También podría gustarte