Descubre cómo las FPGAs pueden proteger tus datos frente al futuro de la computación cuántica

 

Arrancamos con una excelente noticia: el proyecto CICERO ha finalizado con éxito. Esta iniciativa, de carácter multidisciplinar, ha reunido a varios centros tecnológicos y empresas, y supone un hito importante para el ITCL, especialmente para su equipo especializado en FPGAs.

CICERO, impulsado por cinco centros tecnológicos de referencia en tecnologías de la información y ciberseguridad, marca el inicio de un camino prometedor: desarrollar e implementar algoritmos criptográficos en FPGAs. El objetivo es contar con una batería de soluciones robustas y listas para ser aplicadas en futuros proyectos y casos reales. Como veremos a lo largo del artículo, las FPGAs ofrecen ventajas únicas en términos de velocidad, seguridad y flexibilidad para este tipo de algoritmos.

Dentro del proyecto, el equipo ha trabajado con un algoritmo de criptografía postcuántica llamado ML-KEM (Module Lattice – Key Exchange Mechanism). ¿Pero qué significa exactamente «postcuántica»? ¿Y qué es un «key exchange mechanism»? ¡Y ni hablar de los «module lattice»! Vamos por partes.

ÍNDICE

¿QUÉ ES LA CRIPTOGRAFÍA POSTCUÁNTICA?

Los ordenadores cuánticos son un tema del que cada vez se oye hablar más, y no es casualidad. Estos dispositivos utilizan fenómenos de la física cuántica para ejecutar algoritmos. Estos algoritmos se ven fuertemente influenciados por la física cuántica, como no podría ser de otra manera.

En concreto, y simplificando, utilizan tres “superpoderes” fundamentales:

  • Superposición: Les permite a estos ordenadores probar todas las posibles soluciones a un problema
  • Interferencia: Las soluciones erróneas se “autodestruyan” y sólo queden en el sistema las correctas
  • Entrelazamiento: Genera relaciones entre las variables de un problema 

Estas características, por un lado hace que la creación de algoritmos para la solución de problemas (e.g. ordenar una lista en orden creciente, encontrar un elemento dentro de una lista , buscar números primos) sea mucho más complicada, o al menos requiera de otra forma de pensar, respecto a los algoritmos utilizados en ordenadores clásicos. Pero por otro lado, permite encontrar algoritmos que, dando los mismos resultados que los ordenadores clásicos (es decir, resultados correctos)  lo logran en tiempos increíblemente menores a éstos. 

Este avance tiene el potencial de revolucionar multitud de campos científicos, pero como todo, también tienen un potencial para la destrucción tal vez sólo comparable al de otros campos tan de moda hoy en día como la inteligencia artificial. 

⚠️ El mayor riesgo que plantea la computación cuántica: la ruptura de los algoritmos que hoy protegen nuestras comunicaciones.

ALGORITMOS CRIPTOGRÁFICOS: ¿POR QUÉ ESTÁN EN RIESGO?

Los algoritmos criptográficos son aquellos que utilizan los ordenadores para establecer conexiones seguras entre ellos. Al fin y al cabo, nuestros datos viajan por infraestructuras no vigiladas (por nosotros)… ¡y quién por dónde pasan nuestros preciados bits y lo que les estarán haciendo! Por suerte, hay una forma de evitar que, aunque alguien copie nuestros datos y los observe de cerca, solo el destinatario legítimo pueda entenderlos. Para el resto, no será más que un galimatías matemático imposible de resolver… por ahora.

Uno de los grandes problemas que prometen resolver los ordenadores cuánticos es el de la factorización de números primos. El problema para el mundo que conocemos es que el uso de números primos está detrás de algunos de los algoritmos criptográficos más importantes y utilizados.

Gracias a estos algoritmos:

  • Podemos confiar en que una web es la que dice ser (no una suplantación).

  • Los correos electrónicos solo pueden ser leídos por su destinatario.

  • Se protege desde una simple foto hasta cuentas bancarias, criptomonedas o servicios como HTTPS.

La llegada de los ordenadores cuánticos supone una amenaza existencial para la seguridad informática actual. Todo estaría en riesgo.

Hoy en día existe una carrera armamentística entre potencias para lograr un ordenador cuántico capaz de romper los algoritmos existentes. De hecho, es sabido que se están almacenando comunicaciones imposibles de desencriptar ahora, para desencriptarlas en un futuro cuando exista un ordenador cuántico capaz.

Los algoritmos amenazados son los que se utilizan para dos procesos fundamentales: encriptación y autenticación. En concreto, son los algoritmos que utilizan un sistema de claves asimétricas. Todo el que participa de este tipo de criptografía tiene dos claves; una pública y una privada. La clave pública es compartida a lo largo y ancho de la red, mientras que la privada no debe ser vista por nadie más que el usuario.

Para la encriptación, se utiliza la clave pública del destinatario que se desee para encriptar el mensaje. Al hacerlo, sólo la clave privada del destinatario podrá desencriptar el mensaje, los demás no entenderán lo que pone el mensaje. Para la autenticación se realiza el proceso contrario: Se utiliza la clave pública de un destinatario conocido para encriptar un mensaje cualquiera, y sólo el destinatario legítimo podrá contestar correctamente a ese mensaje, dejando claro que él es el dueño de la clave pública. Este último es el que hay detrás de cosas como https y los certificados.

Normalmente los algoritmos de clave asimétrica se utilizan para intercambiar una clave común, para usar un algoritmo de clave simétrica, que es mucho más rápido para encriptar y desencriptar. A este proceso de le llama intercambio de claves o KEM.

Los ordenadores cuánticos pueden resolver una multitud de problemas más rápido que los clásicos, pero eso no quiere decir que puedan resolver cualquier problema de manera eficiente.

Existe hoy en día una búsqueda, provisionalmente concluída, de algoritmos de criptografía que se basen en problemas que los ordenadores cuánticos no sean tan buenos resolviendo. A estos algoritmos se les conoce como algoritmos criptográficos postcuánticos, ya que en principio serán utilizables incluso después de que la computación cuántica sea una realidad.

Por último, Module Lattice es uno basado en un cuerpo matemático relacionado con operaciones módulo y redes. Una teoría matemáticamente muy compleja que los expertos coinciden en que es resistente a los ordenadores cuánticos. Existen otros algoritmos pero hoy por hoy sólo existe uno para el intercambio de claves con  su documentación detallada, ML-KEM ( Module Lattice – Key Exchange Mechanism)

 

¿POR QUÉ USAR FPGAs PARA CRIPTOGRAFÍA?

Los algoritmos criptográficos son como cualquier otro algoritmo. Se parte de una serie de datos o números, se realiza una serie de pasos, y se obtienen otros números, que por alguna razón tienen más valor o importancia que los primeros. El problema con los algoritmos criptográficos es doble: Por un lado, son ubicuos. Es decir, nuestros ordenadores, teléfonos móviles, impresoras, etc. están constantemente haciendo uso de estos algoritmos para securizar la información que están transmitiendo. Por otro lado, la información de estos algoritmos (en especial los números iniciales de los que se parte) son tremendamente sensibles, pues de ser obtenidos por un actor malicioso podrían ser empleados para reconstruir las claves criptográficas de manera ilegítima. 

Curiosamente, ambos problemas tienen la misma solución: hardware dedicado. Todos los procesadores de móviles y ordenadores (que en realidad son lo mismo hoy en día) contienen, físicamente, en su silicio, regiones dedicadas única y exclusivamente al procesamiento de algoritmos criptográficos. Con ello logran por un lado, liberar al procesador central de la tarea de encriptación y por otro lado, logran que el mismo procesador central no tenga físicamente acceso a la información sensible de los algoritmos. Esto quiere decir que, en principio, un hacker no pueda hacer que de manera inintencionada el procesador lea estos datos sensibles y los almacene donde no deba. Esto es así sencillamente por que los datos sensibles del algoritmo no están al alcance del procesador.

Entonces, problema resuelto! Los nuevos algoritmos de criptografía postcuántica son ejecutados por los aceleradores criptográficos dedicados de los procesadores y el mundo ha sido salvado. 

No del todo. Existen dos problemas importantes para este enfoque. El primero es que los aceleradores que hay físicamente en nuestros procesadores no tienen porqué tener la capacidad de ejecutar algoritmos para los que no fueron diseñados y en segundo lugar, los algoritmos criptográficos son seguros… hasta que se demuestre lo contrario. La ciberseguridad siempre ha sido así: no hay un fallo de seguridad hasta que va alguien y demuestra lo contrario. Los algoritmos convencionales llevan décadas sin haber sido rotos (con la excepción del ordenador cuántico) lo cual nos hace confiar en que mañana esto seguirá así. Sin embargo, los algoritmos de criptografía postcuántica llevan estandarizándose desde aproximadamente el 2016, no es tanto tiempo y no han recibido la misma cantidad de ataques que los que hoy en día están protegiendo cosas importantes.

Es por ello que los aceleradores criptográficos de hoy en día necesitan (y prometo que este es el último palabro) criptoagilidad, es decir, han de tener la capacidad de poder cambiar el algoritmo que están implementando sin que estos cambios afecten al resto del sistema. Para esto, las FPGAs son un dispositivo privilegiado. Por un lado, se puede instanciar un diseño criptográfico totalmente customizado, de manera que las partes sensibles del algoritmo estén inaccesibles por el procesador, que ejecuta en este caso Linux. Además, como la FPGA se puede reprogramar, siempre puede cambiarse el acelerador criptográfico, generalizarse o sustituirse por otro diseño totalmente distinto. De hecho, en un entorno real, podría cambiarse mediante una actualización de software.

GENERACIÓN DE CLAVES SEGURAS: EL OSCILADOR DE ANILLO

Muchos algoritmos criptográficos son 100% deterministas salvo por el uso de números aleatorios. Este es el caso de ML-KEM. Esto quiere decir que si los números aleatorios se filtran, se podría reconstruir los cálculos que generan las claves publica y privada que se han mencionado anteriormente. Es por lo tanto crucial que se generen los números aleatorios dentro de la propia FPGA, sin ayuda del procesador, si queremos mantenernos en un nivel tan estricto de seguridad como el que hemos prometido. Para ello se ha utilizado una función inclonable (otro palabro!), en este caso la conocida como oscilador de anillo. El oscilador de anillo consiste en un circuito digital que a priori no tiene mucho sentido: Es una triple negación (1->0, 0->1) retroalimentada, como se muestra en la figura, en los recuadros RO (Ring Oscillator).

Una triple negación equivale en realidad a una única negación, pero al ser triple, la señal tarda un tiempo no despreciable en propagarse. Además al retroalimentarse, un bit =1 se transforma en un 0, luego en un 1 otra vez, y así sucesivamente. Esto es una oscilación. La frecuencia de esta oscilación dependerá de lo que tarde la señal en propagarse a través de los negadores; y este tiempo depende de defectos microscópicos dentro del propio chip. Esto quiere decir que, si instanciáramos el mismo circuito, utilizando los mismos elementos FPGA, en otra FPGA de la misma marca y modelo, las frecuencias de estos osciladores serían impredeciblemente distintas. De ahí el título, se mira pero no se copia; porque aunque le regaláramos este diseño a un “hacker” y este lo instanciara en su FPGA, las claves criptográficas que le saldrían serían totalmente distintas de la nuestra. Consideramos que el oscilador de anillo es un diseño clave y diferenciador en nuestros cores criptográficos.

 

RESULTADOS Y SIGUIENTES PASOS

Lo que se ha hecho para el proyecto CICERO ha sido un demostrador, que ha consistido en que dos FPGAs diferentes logren intercambiarse una clave. En cierto modo es como ver hacer un truco de magia, de esos en los que eliges una carta y el mago te descubre la carta que has elegido, solo que en este caso las FPGAs se descubrirían 256 cartas.
Este algoritmo sirve para el intercambio de claves (encriptación) pero no para la autenticación. Para esta funcionalidad existe otro parecido, el ML-DSA, que también implementaremos próximamente.
Por último buscamos que las FPGAs puedan usarse como tarjetas encriptadoras, que sean capaces de securizar conexiones con todas las ventajas de la aceleración hardware, sin necesitar prácticamente de instalación. Estamos actualmente trabajando en sacar este proyecto adelante.

 

Artículos relacionados

ITCL Centro Tecnológico

Los diferentes tipos de tecnologías cuánticas y sus aplicaciones

ITCL Centro Tecnológico

FPGA: la última frontera de la industria electrónica

IRC eficiencia energética en la industria

¿Qué son los Gemelos Digitales?