El aprovechamiento de las FPGA para la aceleración de la Criptografía
“En la era digital, la criptografía es la llave de la confianza en línea, garantizando que nuestras interacciones en la red sean seguras y privadas.”

La seguridad informática ha adquirido gran importancia en las áreas de la industria, los negocios y en la sociedad actual. Las técnicas básicas que se requieren para proteger la información corresponden al campo de la criptografía, debido a que esta se aplica a la seguridad y es una herramienta primordial para asegurar confidencialidad en la transmisión y almacenamiento de la información. Igualmente es necesario garantizar la autenticidad de la información, para validar las partes integrantes y del proceso, así como comprobar la integridad de la información, permitiendo detectar un cambio en la información originalmente transmitida o almacenada.
Un FPGA o field programable gate array (arreglo de compuertas programables en campo) es un conjunto de circuitos integrados, como puede ser cualquier chip, que está pensado para el cliente sin configurarlo para que cada uno lo personalice y lo programe de acuerdo sus necesidades
Se componen de bloques lógicos (resuelven funciones simples y, opcionalmente, guardan el resultado en un registro) y una potente matriz de interconexión. pueden considerarse circuitos integrados en blanco, con gran capacidad de paralelismo, que pueden adaptarse para resolver tareas específicas.
“Los FPGA tiene una gran capacidad de programarse y personalizarse para hacer cualquier tarea.”
Tras la utilización de esta tecnología, es concreto en un algoritmo complejo computacionalmente demandante, se mueva de una aplicación ejecutándose sobre el CPU a un acelerador implementado sobre la FPGA. Cuando la aplicación requiere una tarea acelerada, el CPU transmite los datos y sigue con sus tareas, la FPGA los procesa y los retorna para su posterior utilización, liberando al CPU de dicha tarea y ejecutándola en menor tiempo.
El factor de aceleración a obtener, dependerá del algoritmo, la cantidad y tipo de datos. Puede esperarse desde unas pocas veces hasta miles, que en procesos que llevan días de cómputo se traduce bajarlo a horas o minutos. Esto no solo es una mejora en la experiencia de usuario, sino que también una disminución del costo energético y de infraestructura

Caso de uso de las FPGA
- DEEP/MACHINE LEARNING E INTELIGENCIA ARTIFICIAL EN GENERAL
- ANÁLISIS DE MODELOS FINANCIEROS
- VISIÓN POR COMPUTADOR
- BIG DATA
- DATA CENTERS
- SEGURIDAD
Criptografía
Es una gran herramienta de seguridad informática que se ocupa de las técnicas para almacenar y transmitir información impidiendo el acceso o la interferencia no autorizados.
Tipos de Criptografía
- Criptografía de clave simétrica (o «clave secreta»): en este tipo de sistema, tanto el emisor como el receptor comparten la misma clave, que se utiliza para cifrar y descifrar el mensaje.
- Criptografía de clave asimétrica (o «clave pública»): en este tipo de sistemas criptográficos, se emplean dos claves, una pública y otra privada; forman una pareja y están relacionadas matemáticamente. Para aplicar la criptografía de clave pública, el remitente utiliza la clave pública del destinatario previsto para codificar el mensaje y luego lo envía.

Aceleración criptográfica
Con la rápida expansión de las operaciones criptográficas y los servicios de cifrado que no muestran signos de ralentización, la criptografía se ha convertido en una parte esencial de cualquier sistema de seguridad cibernética, tanto en la protección de datos personales como de negocios.
Criptomoneda
Los servicios de encriptación se están convirtiendo rápidamente en un nuevo estándar en la seguridad de datos y muchos proveedores se apresuran a garantizar que sus sistemas estén equipados con las ofertas criptográficas más recientes a fin de proporcionar una protección adecuada tanto para los datos como para las transacciones. A medida que los servicios de cifrado y descifrado han ido ganando popularidad, la fuerza del cifrado que ofrecen se ha convertido en el centro de atención de muchos consumidores.
Es un activo digital que emplea un cifrado criptográfico para garantizar su titularidad y asegurar la integridad de las transacciones, y controlar la creación de unidades adicionales, es decir, evitar que alguien pueda hacer copias como haríamos, por ejemplo, con una foto. Estas monedas no existen de forma física: se almacenan en una cartera digital.
cuentan con diversas características diferenciadoras respecto a los sistemas tradicionales: no están reguladas ni controladas por ninguna institución y no requieren de intermediaros en las transacciones
Se usa una base de datos descentralizada, blockchain o registro contable compartido, para el control de estas transacciones.
Un monedero digital o wallet es, en realidad, un software o aplicación donde es posible almacenar, enviar y recibir criptomonedas. Lo cierto es que a diferencia de un monedero de dinero físico, lo que realmente se almacena en los wallets o monederos digitales son las claves que nos dan la propiedad y derecho sobre las criptomonedas, y nos permiten operar con ellas.
Selección de algoritmos
se seleccionarán los algoritmos criptográficos, utilizados en el protocolo TLS, a implementar en hardware utilizando los recursos del FPGA. Para realizar esta selección se tuvieron en cuenta los siguientes parámetros:

-Cantidad de tiempo consumido por la ejecución del algoritmo.
-Frecuencia de utilización de los algoritmos.
-Selección realizada por otros fabricantes y desarrolladores.
La criptografía asimétrica consume más tiempo de procesamiento con respecto al resto de las primitivas criptográficas utilizadas por el protocolo TLS
Durante la selección de los algoritmos a implementar con los recursos hardware del FPGA está relacionado con decisiones que han tomado algunos fabricantes e investigadores en relación a este tema.
Los algoritmos de cifrado simétrico y las funciones hash (los utilizados durante la etapa de intercambio de datos en TLS) se encuentran implementados en sistemas de cómputo que tienden a manejar menor cantidad de conexiones con relación a la cantidad de información que intercambian con el otro extremo de la conexión.

Algoritmo naive
El método naive para el cálculo del módulo de un número se basa principalmente en la idea primitiva de la división. El algoritmo resta sucesivas veces el valor del módulo a un resultado parcial, que toma el valor de la entrada al principio, hasta que tiene un valor inferior al del módulo.
Algoritmo de Barret
El algoritmo de reducción de Barret se basa principalmente en la pre-computación de una constante μ que conociendo la entrada del módulo puede ser guardado en un registro o bien, mediante señales fijas
Resultados Teóricos
Algoritmo de Sumas y Desplazamientos
La simulación del primer multiplicador muestra como una multiplicación de 8 bits tarda 8 ciclos de reloj. Estos corresponden al número de bits de ancho de las entradas. La frecuencia del reloj en esta simulación no corresponde a la frecuencia que soporta el componente, sino que se ha reducido para poder mostrarlo.

Algoritmo de Booth
La simulación del multiplicador de Booth muestra como multiplicación de 8 bits que tarda 12 ciclos de reloj. Estos corresponden a la ecuación vista 2+x+2y y el número 22 en binario (00010110). La ecuación con los datos quedaría de la siguiente forma: 2+4+2*3. La frecuencia del reloj en esta simulación no corresponde a la frecuencia que soporta el componente, sino que se ha reducido para poder mostrarlo

Autores:
RUPERTO VILLALPANDO JOSÉ DANIEL
CÓRDOBA BELTRÁN DULCE ARISBETH
“Estudiantes de Ingeniería Informática del Tecnológico de Estudios Superiores de Chalco”
Contacto:

https://www.linkedin.com/in/jose-daniel-ruperto-villalpando0447b82a1
