Cloudflare TV

ūüĒí Las siete vidas de un gato post-cu√°ntico

Presented by Armando Faz, Sofía Celi
Originally aired on 

Cloudflare Research presenta un panorama de la Criptografía Post-Cuántica. Esta es una de las áreas más novedosas en criptografía y trata sobre la creación de algoritmos resistentes al cómputo cuántico. Nuestros investigadores, Sofía y Armando, presentarán el estado actual del área. Incluyendo los algoritmos propuestos, el trayecto rumbo a su estandarización y su aplicación en protocolos de comunicación.

Spanish
Privacy Week

Transcript (Beta)

Hola a todas las personas y bienvenidos a esta charla sobre criptograf√≠a poscu√°ntica que va a ser en espa√Īol y estoy muy feliz aqu√≠ de estar con Armando y por favor las diapositivas.

Bienvenidos. Hola que tal Sofía, mi nombre es Armando. Mientras les comparto las diapositivas, les damos la bienvenida a esta sesión de Cloudflare TV y el día de hoy vamos a hablar sobre computación poscuántica.

Bien, un poquito acerca de los presentadores, Sofía.

Muchas gracias Armando. Mi nombre es Sofía Celi y soy una investigadora en el equipo de criptografía de Cloudflare y especialmente me dedico ahora a experimentos con criptografía poscuántica que es justamente el tema de la charla.

Armando por favor. Sí, mi nombre es Armando, Armando Faz. Me gusta trabajar en la implementación eficiente de criptografía y ahora vamos a discutir un poquito sobre la criptografía poscuántica.

Bien, mucho se ha pensado a lo largo del tiempo cuál es el poder de cómputo que se puede llegar a lograr.

Con las computadoras como las conocemos ahora se han podido resolver bastantes problemas que tenemos en la vida cotidiana.

Sin embargo, muchas personas han pensado, bueno, ¬Ņcu√°l es el siguiente paso que tenemos con respecto ahora?

Y est√° uno de estos grandes pensadores que tenemos contempor√°neos, Richard Feynman, que cerca de la d√©cada de los ochentas, bueno, √©l es f√≠sico, √©l se preguntaba, bueno, ¬Ņser√° que existe un modelo de computaci√≥n que sea a√ļn m√°s poderoso que el modelo que conocemos?

Bueno, que se conocía en ese entonces y que ahora, bueno, conocemos como un modelo clásico de computación, pero con la variante de que este modelo de computación obedezca las leyes de la mecánica cuántica.

Y bueno, esta idea, primero él se conjeturó si realmente era esto posible.

Y bueno, desde entonces los físicos y gente que analiza la teoría de la computación ha visto formas de cómo utilizar estos recursos de la mecánica cuántica.

Bueno. Y quiz√°s ah√≠ a√Īadir una de las razones por las que se quer√≠a crear ahora una m√°quina que siga las leyes, obedeciera las leyes de la mec√°nica cu√°ntica, era precisamente para poder correr experimentos que intentaban demostrar ciertas caracter√≠sticas de la f√≠sica cu√°ntica que no pod√≠an ser corridos en computadoras cl√°sicas.

Así es que así todo comenzó en el tema del que estamos hablando.

Bien, entonces una de las propiedades de la computación cuántica con respecto a la computación clásica es el conocido principio de superposición.

Este principio, aquí lo quiero resumir por ejemplo con esta figura que va a ser una forma fácil de entenderlo, es cuando uno tiene los bits clásicos, uno empieza a hablar de esta dualidad entre 0 y 1, que representa dos estados, prendido y apagado, arriba y abajo, izquierda y derecha.

Y esta es como la unidad, esta es la unidad fundamental de información que tenemos en un esquema de computación clásica.

Sin embargo, cuando entramos a la computación cuántica, tenemos estados en la materia los cuales pueden estar en superposición.

¬ŅQu√© quiere decir esto? Que hay un estado que al determinado momento puede representar una gran cantidad de estados.

En este caso, por ejemplo, en la figura vemos un selector, por ejemplo, en el cual un qubit nos viene a representar todos los estados desde prendido hasta apagado, pero también todos los estados intermedios que hay entre estos dos estados.

A esto se le va a conocer como qubit o bit cuántico, y bueno, es uno de los principios fundamentales de la computación cuántica.

El segundo principio es la medición.

Tenemos estados en la materia, en los cuales este, recuerden, este principio de superposición es un estado, representa varios niveles o varios valores al mismo tiempo.

Sin embargo, una vez que nosotros observamos el sistema, o medimos, o tratamos de saber cuál es aquel valor que está en un determinado momento, a eso le vamos a llamar medición.

Entonces, una vez que medimos el estado, sabemos en qué estado se encuentra, pero causa un efecto muy particular, que es que en ese momento el estado ya no está más en un estado cuántico y tiende a ir hacia uno de los estados clásicos.

Entonces, es como si al empezar a ver en qué estado se encuentra, el qubit se decanta, ya sea hacia el 1 o hacia el 0, y a partir de ese momento ya no tenemos un estado cuántico.

Y quizás, Armando, podrías hablar un poco acerca del ejemplo de lanzar una moneda, que es uno de los más representativos sobre esto.

Ya, efectivamente. Nosotros, por ejemplo, tenemos el experimento de lanzar una moneda, suponemos que la moneda no est√° cargada hacia ning√ļn lado.

Al momento de lanzar una moneda y ver que azota en el suelo, nosotros podemos decir, bueno, cayó en cierto lado de la cara.

Pero aquel momento en el que la moneda está rodando en el aire, eso podría llegar a verse como una simplificación de lo que es un qubit.

Es decir, en ese momento no tenemos certeza de cu√°l va a ser el resultado final del valor de la moneda, de cu√°l cara es la que cae viendo hacia el suelo, ¬Ņcierto?

Y solo tenemos certeza hasta el momento en el que la moneda cae y se detiene su movimiento.

Entonces, esto del qubit permite expresar varios valores con una cierta probabilidad, porque en ese momento no tenemos una forma de saber cu√°l va a ser el estado.

Solo tenemos probabilidades.

Puede ser que caiga de un lado o puede ser que caiga del otro, con cierta probabilidad.

Bueno, el entrelazamiento.

Este es una propiedad muy interesante del c√≥mputo cu√°ntico, que es al momento de que t√ļ mides o que uno mide cu√°l es el estado de un qubit, existi√≥ en los experimentos que notaron que hab√≠a cierta interferencia entre el estado de otro qubit.

Es decir, al momento de que uno mide un qubit, el valor de un qubit, algo pasa que pasa una reacción del otro lado, que puede ser a cierta distancia, inclusive a una distancia larga, y el estado de otro qubit se afecta.

Esto se conoce tambi√©n como la paradoja de Einstein, Rosen y Podolsky, la paradoja IPR, que en aquel tiempo se preguntaban, bueno, ¬Ņqu√© es lo que est√° pasando?

¬ŅC√≥mo es posible que yo mida en este punto este estado e inmediatamente pasa otra cosa en otro estado?

Y una forma de explicarse esto de forma ir√≥nica era que, bueno, ¬Ņacaso est√° ocurriendo un intercambio m√°gico de informaci√≥n ah√≠?

Y bueno, esto también puede servir para realizar un protocolo de comunicación.

Bueno, si tenemos esta forma de, digámoslo así, comunicar bits o comunicar un cierto tipo de información, entonces se pueden crear protocolos para, actualmente hay dos protocolos bien conocidos, que es el envío de dos bits clásicos de información, o el envío de un estado cuántico de un punto a otro, que también a veces se le conoce como teletransporte cuántico.

¬ŅY sabes si este segundo experimento del env√≠o de un estado cu√°ntico es usado en la vida real ahora?

Es dif√≠cil porque se tiene que mantener el estado, ¬Ņno? Primero, y√©ndonos a lo b√°sico, es primero mantener el estado y despu√©s tratar de poder enviarlo.

Pero por lo menos la construcción teórica es posible.

Y bueno, la parte de la puesta en pr√°ctica es un tema completamente diferente.

Bien, entonces, dado este poder cu√°ntico, ¬Ņqu√© es lo que se puede hacer?

¬ŅSophie, si te gusta hablar un poquito de eso?

S√≠, entonces, una de las cosas que se comenz√≥ a pensar es si es que existen estas computadoras cu√°nticas, ¬Ņse puede utilizar los poderes que nos da la mec√°nica cu√°ntica para tratar de resolver ciertos problemas matem√°ticos de forma mucho m√°s r√°pida?

Y de esta forma ya comenzamos en la presentación a ligarnos hacia lo que es la criptografía, porque estos dos algoritmos de los que vamos a hablar a continuación están ligados hacia cómo la criptografía funciona.

El primero de ellos es el algoritmo cuántico de Shor, y básicamente este algoritmo es devastador para la criptografía porque la criptografía que utilizamos ahora está basada sobre ciertos problemas matemáticos.

Básicamente la criptografía que más usamos el día de hoy es la criptografía de curvas elípticas y la criptografía RCA, que están basadas en el problema del logaritmo discreto y en el problema de la factorización de enteros.

Dichos problemas matem√°ticos no es que son imposibles de resolver, sino que toma mucho tiempo para las computadoras actuales resolver dicho problema si se utilizan n√ļmeros realmente grandes.

Pero lo que encontró Shor fue que al utilizar las técnicas de la mecánica cuántica se puede resolver mucho más fácilmente la factorización de enteros, lo que significa que se quiebran los sistemas como RCA y puede ser también extendido para resolver el problema del logaritmo discreto, lo que significa que también las curvas elípticas que nosotros utilizamos van a ser rotas.

No sé si quieres agregar algo, Armando.

Bueno, este realmente es uno de los algoritmos más devastadores, por decirlo así, en cuanto a la criptografía que conocemos.

Bueno, vamos a saltar un poco al siguiente algoritmo, que es el algoritmo de Grover.

En este caso, este tambi√©n es un algoritmo cu√°ntico, es un algoritmo de b√ļsqueda.

Este es un poco diferente, en el cual se necesita encontrar la primagen de una función, es decir, aquel elemento que al aplicar la función obtienes una salida.

Este algoritmo utiliza bastante lo que es la superposición de estados, o toma ventaja de ello.

En este caso, supongamos que tenemos una función binaria en entradas y que te arroja un bit.

Si quisi√©ramos hacer la b√ļsqueda de forma cl√°sica, bueno, si tenemos en entradas binarias, tenemos dos a la n posibles estados.

Y si quisiéramos buscar cuál es aquella entrada que produce la salida que yo quiero, tendríamos que buscar, si lo hiciéramos por fuerza bruta, pues dos a la n intentos.

Sin embargo, con el paralelismo cu√°ntico y este algoritmo de Grover, podemos reducir por la mitad en la parte del exponente, o el n√ļmero de intentos.

En la pantalla pueden ver una peque√Īa animaci√≥n de c√≥mo funcionar√≠a el algoritmo de Grover.

Imagínense por un momento que en la línea horizontal yo pongo todas las dos a la n posibilidades.

En estas dos a la n, yo sé que alguna de ellas es la respuesta.

Lo que hace el algoritmo de Grover es que iterativamente va haciendo que la respuesta salga a la luz.

Imag√≠nense, por ejemplo, como si tuviera una peque√Īa caja donde tengo arena, arena de esta muy fina, y al tratar yo de mover o de sacudir esta caja, aquellas part√≠culas que son un poco m√°s pesadas o m√°s ligeras, ellas van a variar en cuanto al peso y se van a mover diferente.

Algo similar está pasando aquí. Al yo hacer operaciones sobre este estado en superposición, aquel valor que es realmente la respuesta, su probabilidad se va a incrementar y va a tender a la hora que yo sacudo, va a salir automáticamente.

En este caso, por ejemplo, vemos que la respuesta que está por ahí, al momento de sacudir, como se puede ver, va creciendo, va creciendo su probabilidad.

Aquí la probabilidad está entre 0 y 1.

Y al ejecutar el algoritmo, su probabilidad va creciendo, dado que el momento que yo termino y finalizo con una medición, entonces tengo una probabilidad del 100%, una probabilidad de 1, de haber encontrado la respuesta.

Bien, entonces, dados.

Ahí existen muchos más algoritmos, pero dados para criptografía son los más importantes.

Sophie, ¬Ņnos puedes contar un poquito eso? S√≠, entonces aqu√≠ es m√°s o menos para darles un poco una l√≠nea del tiempo sobre c√≥mo todo ha sucedido en cuanto a la criptograf√≠a poscu√°ntica.

Y en general, también acerca de las computadoras cuánticas en sí mismas.

La primera cuestión es que, como vimos, la primera idea de la computadora cuántica ya vino hace mucho tiempo acerca de Richard Feynman, y tanto el algoritmo de Grover fueron desarrollados mucho antes, en 1995, me parece.

Durante todo ese tiempo, hasta el 2015, hubo muchos criptógrafos que expresaron sus preocupaciones acerca de que ya venían estos algoritmos cuánticos, que ya venían estas computadoras cuánticas que iban a romper la criptografía como es conocida ahora.

Pero no fue hasta el 2015 que la NSA, que es la Agencia de Seguridad estadounidense, expresó la necesidad de tener una criptografía que sea poscuántica.

Y esto fue uno de los primeros momentos en que realmente los organismos mundiales comenzaron a tomar en cuenta lo que era la criptografía poscuántica.

A partir de eso, en el 2016, NIST, que es el organismo, el Instituto de Estandarización, convocó a propuestas para estandarización de criptografía poscuántica, en dos áreas especialmente, para encriptación y para crear firmas digitales.

Pero sin embargo, una cuestión que todavía se discute hasta el día de hoy, a pesar de que hay un esfuerzo de generar la estandarización, es si es que es todavía necesario.

Porque todavía no hay un entendimiento de realmente cuándo las computadoras cuánticas van a venir, si es que realmente van a venir, si es que va a ser posible realmente construir computadoras cuánticas.

En el momento actual parece que s√≠ va a ser posible construir realmente computadoras cu√°nticas eficientes, pero todav√≠a no se sabe exactamente cu√°ndo, puede ser ma√Īana, como puede ser en 100 a√Īos.

Entonces, una de las preocupaciones que también la comunidad de criptografía actualmente tiene, es que no deberíamos esperar hasta que dichas computadoras cuánticas aparezcan, sino desde este momento deberíamos ser precavidos y comenzar a crear algoritmos poscuánticos, para que cuando lleguen las computadoras cuánticas no rompan todos los sistemas que utilizamos, sino que ya tengamos un reemplazo inmediatamente.

¬ŅAlgo m√°s, Armando?

Así es. Sí, lo has dicho bien. Debe haber una cierta preparación en vista pensando hacia el futuro.

Sobre todo, por ejemplo, ahora todos usamos criptografía clásica, pero si yo colecciono o recopilo cierta información que está cifrada con cifradores actuales, que pueden ser quebrados con un modelo de computación cuántica, quizás lo que yo colecte ahora quizás lo pueda descifrar en el futuro.

Es por eso que es importante tener o estar precavidos ante una posible venida de estos computadores.

Bueno, aquí hay un timeline sobre la computación cuántica.

¬ŅSophie, quieres comentarnos un poquito?

Sí. Esto solamente es una línea del tiempo, como más tener una idea de cómo sucedió.

Como les conté, recién en el 2015 es que la NSA y NIST en 2016 comienzan a pensar que realmente necesitamos estandarizar los algoritmos poscuánticos.

Pero como vemos y como Armando ya ha dicho, en 1994 se publicó el algoritmo de Shor, del que ya hablamos.

En 1996 se publicó el algoritmo de Grover, del que hablamos también.

Y desde entonces ya se comienzan esfuerzos a tratar de construir computadoras cu√°nticas que sean estables, donde se puedan realizar estos algoritmos.

Y por ejemplo en el 2001 ya el n√ļmero 15 es factorizado.

¬ŅQu√© significa esto? No significa que alguien realmente ahora en el mundo real factoriz√≥ el n√ļmero 15, porque cualquier persona puede factorizar el n√ļmero 15.

Lo que significa es que una computadora logr√≥ factorizar el n√ļmero 15. En el 2005 el QBIT, del que habl√≥ Armando, es anunciado como realmente, como ahora existe este par√°metro que se llama QBIT, m√°s o menos representa 8 QBIT, perd√≥n, un QBIT, 8 QBIT, m√°s o menos.

En el 2002 el n√ļmero 21 es factorizado. Y desde el 2017 ciertas compa√Ī√≠as han comenzado a invertir bastante en la creaci√≥n de computadoras cu√°nticas, como es IBM, como es Google.

Al mismo tiempo otras organizaciones y otras compa√Ī√≠as comenzaron a lanzar experimentos para medir qu√© tan f√°cil o qu√© tan dif√≠cil ser√≠a incluir algoritmos poscu√°nticos en, por ejemplo, TLS o en otro tipo de protocolos criptogr√°ficos que existen.

Así es.

Bien, vamos a pasar a... ¬ŅSer√° que esto realmente es un problema? Es una pregunta que hemos escuchado bastante en el √°mbito.

¬ŅSer√° que realmente tenemos un problema con la llegada de los computadores cu√°nticos?

Sí, no se puede saber realmente si es que tendremos este problema porque ahorita no tenemos computadoras cuánticas.

Tampoco sabemos si es que se van a desarrollar nuevos algoritmos cu√°nticos que rompan otros problemas matem√°ticos sobre los que los nuevos algoritmos est√°n basados.

Hay mucha incertidumbre, pero la idea en la comunidad criptográfica es que ya que no sabemos si tenemos tiempo, ya que no sabemos cuánto tiempo tenemos, lo mejor es tratar de cambiarlo ya y hacer un proceso de estandarización que sea bueno, que sea estable, para saber si es que lo que proponemos ahora va a servir en un mundo donde haya computadoras cuánticas.

Entonces es mejor estar preparado, ¬Ņcierto?

S√≠. Ok. Bueno, ¬Ņpero qu√© alternativas tenemos?

Las alternativas que tenemos yo podr√≠a decir tres alternativas. La primera es utilizar los mismos cifrados que utilizamos en llaves sim√©tricas, pero aumentar el tama√Īo de las llaves.

Y esto se corresponde con lo que estaba diciendo, que los problemas matem√°ticos sobre los que est√° basada la criptograf√≠a actual no es que son imposibles de resolver, sino que muchas veces utilizan n√ļmeros demasiado grandes para poder resolverlos en un tiempo eficiente.

Si es que utilizamos n√ļmeros m√°s grandes, obviamente una computadora va a tener que demorarse m√°s tiempo en resolverlos.

¬ŅPero cu√°l es el problema si utilizamos algoritmos con un tama√Īo de llaves gigantesco?

¬ŅQu√© es terabytes, por ejemplo? ¬ŅQu√© la transmisi√≥n de dichas llaves a trav√©s de una red va a ser imposible?

Porque tenemos que tener redes muy, muy eficientes y una actividad muy, muy eficiente en el mundo para poder funcionar con eso.

Entonces, opción no es muy viable. Hay otros algoritmos que utilizamos en la actualidad, como por ejemplo los hashes, que sí sobreviven a un modelo cuántico de la computación, porque el problema sobre el que están basados no es atacado por computadoras cuánticas.

Y de hecho, una de las propuestas para utilizar en el mundo cuántico es un algoritmo que se llama XMSS, que no fue estandarizado por NIST, fue estandarizado como un RFC, a la par incluso de la competición de NIST.

Y ni siquiera entró en la competencia, sino que fue estandarizado por sí mismo, porque sabíamos que el problema matemático sobre el que se basa iba a sobrevivir, va a sobrevivir en un mundo cuántico.

Un mundo que tiene computadoras cu√°nticas, porque el mundo ya es cu√°ntico.

Sí, efectivamente. Sí, la mecánica cuántica está en la naturaleza. El punto es saber aprovechar esa naturaleza para crear computación.

Bien, bueno, esto es acerca de cifrado simétrico.

¬ŅQu√© pasa con la parte sim√©trica?

Recordemos que, como ya hemos dicho, tanto el algoritmo de Shor aplica al quiebre de RCA o de curvas elípticas.

Entonces, bueno, tenemos que buscar alternativas que nos permitan tener de nuevo criptosistemas de llave p√ļblica confiables.

Y bueno, este tema es algo que se le conoce como criptografía poscuántica, o criptografía que es resistente al uso de computación cuántica.

Y bueno, aqu√≠ hay varias opciones en las cuales, bueno, afortunadamente hay varias opciones, no hay solo una, en las cuales se puede trazar el rumbo hacia d√≥nde vamos para los pr√≥ximos a√Īos.

Bueno, aquí enumero las categorías de las opciones más prometedoras.

Tenemos lo que es las redes, usando látices o reticulados. Tenemos otro tipo de criptografía que se basa en la teoría de códigos.

Uno m√°s que es el sistema de ecuaciones cuadr√°ticas no lineales.

Uno mucho más reciente que es el cálculo de isogenías entre curvas elípticas.

Que este es un problema diferente al problema del logaritmo discreto, solo para mencionar.

Y bueno, como ya mencionó Sophie, el problema de calcular firmas digitales pero usando hashes.

Y bueno, tenemos por ejemplo el algoritmo XMSS que ya lo mencionó Sophie.

Entonces, ante este n√ļmero de opciones, ¬Ņqu√© es lo que sigue Sophie?

Lo que sigue es describir cada uno. Bueno, vamos. Entonces, empezamos con los basados en código.

En este caso, en la teor√≠a de c√≥digos, hace algunos a√Īos fue muy reconocida por crear c√≥digos que permitan la correcci√≥n de errores al enviar informaci√≥n entre dos puntos.

Mucha gente se lanzó a tratar de estudiar este problema.

Y bueno, ya desde tiempos atrás este era un problema conocido. Enviar información de manera confiable y poder recuperar errores en la transmisión si es que lo sabían.

Entonces, está este algoritmo propuesto por Mike McKellis en la década de los 70's.

En el cual, bueno, es un código que tiene la complejidad de encontrar...

Estos códigos están generados por una matriz generadora.

Y bueno, el problema dif√≠cil es encontrar esta matriz, ¬Ņcierto?

Un punto en contra que tienen los criptosistemas basados en c√≥digos es que el tama√Īo de llaves es extremadamente grande.

En principal porque tanto el código tiene que cargar la información de la llave por sí misma o de la información por sí misma.

Pero también tiene que cargar un pedazo extra de información que es el que le permita recuperar o detectar si hubo errores o no durante la transmisión.

Entonces, este criptosistema, sí, es uno de los más antiguos que es resistente a post-quantum.

Y que bien se estudi√≥ hace alg√ļn tiempo, ahora est√° tomando una relevancia de nuevo por tener esta propiedad.

¬ŅSophie nos comenta sobre Lattice?

Sí. Entonces, otro de los problemas que se piensa utilizar como parte de algoritmos que sea que funcione en un mundo donde hay todas las cuanticas es el problema de si utilizamos redes, Lattice en inglés, para firmas, que puede servir tanto para firmas digitales como en criptación.

Primero es bueno notar que ciertos de esos problemas que estamos describiendo pueden ser aplicables para cifrado, en criptación.

Otros pueden ser aplicados para firmas y algunos pueden ser aplicados para los dos.

Pero algunos solo pueden ser aplicados para uno de ellos.

Entonces, los basados en una red fue primero propuesto por tres investigadores, por Hobson, Piper y Silverman, un sistema que ellos nombraron Entru.

Y básicamente funciona casi de la misma forma de la forma que fue descrita el sistema basado en códigos, en el sentido de que un punto se esconde, se encripta en una red, pero en vez de cambiar ciertas coordinadas, se cambia todas las coordinadas.

Este es uno de los sistemas que más apoyo ha tenido e incluso de los finalistas de la tercera fase de NIST, la mayoría están basados en este problema.

Entonces, una de las cosas que se puede decir ahorita a futuro es que quiz√°s este es el sistema que va a ser utilizado en el futuro.

Entonces, si quieres agregar algo.

Sí, bueno, en su parte Entru, como bien lo dijo Sofía, es también bastante conocido, bastante estudiado.

Una variante que utiliza un problema parecido es el aprendizaje con errores, o RWE, en el cual usan la R por ring, anillo.

B√°sicamente son utilizar polinomios sobre un cuerpo finito, esto genera lo que es un anillo, una estructura algebraica, y de estos polinomios, que son los ciudadanos de este universo, se les define un concepto de norma, entonces podemos diferenciar, usando esta norma, cu√°les son polinomios que son peque√Īitos con respecto a polinomios grandes, dependiendo de esta norma.

Y bueno, eso nos permite que podamos, a nuestro texto cifrado, poderle agregar errores, errores que son peque√Īitos suficientes, que al momento de tomar la norma, este error se puede desaparecer.

Entonces, al agregar este error, nosotros escondemos la información, y al tomar la norma, nos deshacemos del error.

Un punto importante, por ejemplo, en este tipo de criptograf√≠a, es que la generaci√≥n de polinomios necesita un generador de n√ļmeros con una distribuci√≥n gaussiana, lo cual es algo diferente, y tambi√©n es un problema que se est√° estudiando bastante.

Porque normalmente, en sistemas clásicos, sistemas comunes, lo que queremos es una distribución uniforme, donde, bueno, dada todos los elementos de un conjunto, queremos recuperar a alguno con la misma probabilidad de haber escogido uno u otro.

La distribución gaussiana, recuerdan, es esta forma de campana, y bueno, algunos tendrán mucha más probabilidad de ser escogidos que otros.

Entonces, bueno, este es un buen punto a tomar en cuenta. Ahora, tenemos las isogenías.

Bueno, este es un problema un poco m√°s nuevo, m√°s reciente, que es encontrar una conexi√≥n matem√°tica entre dos curvas el√≠pticas de determinado tama√Īo.

Este problema, como mencioné, es diferente al problema del logaritmo discreto, en el cual uno necesita encontrar un elemento que genera a otro punto en una curva.

Entonces, bueno, el usar isogen√≠as hereda bastante del uso de curvas, que es el menor tama√Īo de llave posible.

Entre los candidatos que existen, su rendimiento, bueno, hay algunas fuentes que dicen que es equiparable al rendimiento de RCA para tama√Īos grandes de llaves.

Pero si se compara, por ejemplo, con el uso de redes o l√°tices, es bastante lento, porque los l√°tices son bastante r√°pidos.

De este tenemos algunas variantes, como lo es Psyche, que es un sistema de encapsulamiento de llaves.

Tenemos otro m√°s reciente, que es SysAid, que es una encapsulaci√≥n de llaves, pero permite validar llaves p√ļblicas.

Y bueno, uno muy muy reciente, que en este mes fue publicado, que es SQI Sign, que es un esquema de firmas digitales usando isogenías.

Pero a√ļn estos esquemas se quedan un poco atr√°s en cuanto a la cantidad de computador que es necesaria para ejecutarse.

Quiz√°s ah√≠ podemos tambi√©n a√Īadir que una de las cosas que tenemos en la criptograf√≠a actual es que existe este sistema que se llama el protocolo de Higelman, que todo el mundo ama por su simplicidad.

Todos los otros algoritmos que hemos visto, en la forma en que por el momento han sido dise√Īados, no se equiparan en la misma simplicidad.

Pero con estos, especialmente con las isogenías, hay una forma de tratar de hacer la misma simplicidad de Diffie -Hellman, con un algoritmo poscuantio.

Los algoritmos que están basados en hash, que un poco ya lo hablamos, básicamente el problema sobre el que están basados es que encontrar la imagen de un hash es difícil.

Es decir, si a ti te dan el hash, encontrar el texto sobre el que fue generado es una cuestión difícil.

Básicamente estos algoritmos son exactamente igual a cómo funcionan hoy los hashes.

La √ļnica diferencia es que al momento en que se genera hash tambi√©n hay que cambiar un estado.

Entonces hay que tener en cuenta siempre el estado que uno tiene que cambiar.

Esto al menos en el caso de XMSS, pero en el caso de por ejemplo Sphinx, no es necesario mantener el estado.

Este algoritmo solamente va a funcionar para firmas digitales y probablemente va a ser el que yo pienso al menos que va a ser más utilizado por su simplicidad también, pero solamente es aplicable a firmas digitales.

Así es. Bien, vamos a pasar ahora a... Ah bueno, nos falta uno.

Las ecuaciones... Y este, que es de los basados en ecuaciones multivariantes cuadráticas, es tanto para encriptación y firmas.

Es el que parece más complejo, pero de hecho, a excepción del basado en hashes, es uno de los basados, el uno que puede decir el más simple de entender en relación a los otros problemas matemáticos.

Fue propuesto por primera vez en 1998 por Matsumoto, pero fue roto y un nuevo sistema fue creado.

Y b√°sicamente la idea es que utiliza sistemas de ecuaciones cuadr√°ticas en varias variables, n variables y m ecuaciones.

¬ŅY cu√°l es el problema? Es encontrar una soluci√≥n para todas ellas. ¬ŅCu√°l es el problema en usar este sistema?

Que el tama√Īo de las aves es kilobytes, entonces no representa una buena viabilidad.

De todas maneras, uno de los finalistas de hecho de la competición utiliza ese sistema, así que es bueno tenerlo en cuenta.

Pero vamos a ver luego que de hecho hay un peque√Īo ataque ah√≠. Uy.

Bien, ahora sí, tenemos este slide, vamos a mover un poco a lo que es el NIST y la competición actual.

Bien, tenemos aquí actualmente, bueno, ya desde 2016 que se inició esta competición, para tratar de encontrar cuáles serían los algoritmos que sean aplicables o que tengan un uso en nuestro mundo actual, en vista de estar preparados ante la llegada del cómputo cuántico.

Hay dos categorías principales, la cual es ya sea el cifrado o el encapsulamiento de llaves y las firmas digitales.

Estos dos servicios principalmente son los principales usados al momento de realizar conexiones seguras con un servidor.

Por ejemplo, en el caso de TLS, cuando quieres entrar a una p√°gina web de forma segura, estos dos primitivos son los principales que tienes que tener.

En cuanto al cifrado y encapsulamiento de llaves, ahora hay cuatro finalistas, que son los que est√°n, digamos, actualmente en una de las √ļltimas fases de la competici√≥n.

Como ya mencionamos, el criptosistema MacElise, basado en códigos, Kyber, Entro y Saber, todos ellos están basados en redes, permiten encapsulamiento y cifrado de información.

Y del lado de las firmas hay, en este caso, tres contendientes, que es Dilithium y Falcon, que son basados en redes también, y Rainbow, que está basado en ecuaciones cuadráticas.

Bien, entonces, dados estos siete candidatos, la idea es, bueno, ya están estos, ahora tratar de ver cómo integrar estos en aplicaciones reales.

Bueno, algo importante para mencionar es el tama√Īo de las llaves.

En esta tabla, bueno, sumarizamos lo que son los algoritmos y el tama√Īo de las llaves p√ļblicas y de las firmas, por ejemplo.

Y, bueno, en este caso, para que ustedes tengan un contraste en cuanto a lo que es actual, que es, por ejemplo, las firmas usando RCA o usando curvas el√≠pticas, que son los dos primeros renglones, si ven, el tama√Īo de las llaves es ronda o no va m√°s all√° de cientos de bytes, o sea, son realmente peque√Īos.

Pero cuando vamos a estos nuevos esquemas postcu√°nticos, vemos que el tama√Īo de llaves se incrementa bastante en algunos casos, ya sea que el tama√Īo de llaves es muy alto o que las firmas digitales son m√°s grandes.

Bien, entonces, bueno, esta peque√Īa sutileza se vuelve importante al momento de aplicarlo en el desarrollo de conexiones seguras.

Bien, ¬Ņqu√© nos puedes comentar aqu√≠, Sof√≠a?

Entonces, el hecho de que ahorita NIST haya resolvido que hay ciertos siete algoritmos que quizás puedan ser utilizados para un mundo donde hay computadoras cuánticas, no significa que ya no haya inseguridades, porque la competición todavía sigue en curso.

Y, de hecho, creo que este mes o hace un mes, se publicó un paper sobre un ataque a uno de los algoritmos de los que hablamos, que es el algoritmo Rainbow, que está basado sobre ecuaciones cuadráticas.

¬ŅCu√°l es el ataque? B√°sicamente est√° basado en una idea anterior por otros investigadores, por Shamir, me parece, y b√°sicamente lo que dice es que, como sabemos, el sistema de Rainbow est√° basado en un sistema que tiene ecuaciones y variables.

Cuando las variables son dos veces el n√ļmero de las ecuaciones, hay una forma de romperlo.

Si es que se cambia el parámetro a algo que no es seguro, entonces hay formas de romperlo, que es uno de los puntos importantes al hablar de la estandarización de NIST, que los parámetros, cómo escoger los parámetros, a veces todavía no hay mucho entendimiento de exactamente cómo escoger ciertos parámetros para los algoritmos que están propuestos.

Y en el caso de Rainbow, se notó que quizás todavía se necesita más investigación acerca de cómo escoger, por ejemplo, el parámetro de cuántas variables y cuántas ecuaciones.

Así es que la competición va a seguir encontrando ataques.

S√≠, efectivamente, toda la retroalimentaci√≥n y los nuevos estudios que haya sobre estos nuevos, sobre estos candidatos, creo que es importante y no deber√≠a sorprendernos que alg√ļn d√≠a de estos, bueno, alguno de ellos caiga por ya sea un nuevo ataque o alguna vulnerabilidad o algo.

Esto es investigaci√≥n de √ļltima l√≠nea y tenemos que estar preparados ante esto y es bueno tener opciones.

Bien, aquí voy a presentar un poquito, vamos a presentar un poquito, manos a la obra usando Go.

Bueno, Go es un lenguaje de programaci√≥n, fue creado aproximadamente hace 10 a√Īos, se utiliza bastante para crear aplicaciones y servidores web, y bueno, es bastante f√°cil de aprender y f√°cil de usar, y en Cloudflare lo usamos bastante para nuestros sistemas.

La pregunta aqu√≠ es, bueno, ¬Ņc√≥mo utilizo Go para hacer experimentos utilizando criptograf√≠a poscu√°ntica?

Bueno, atención aquí, estos algoritmos que mencionamos, a pesar de ser poscuánticos, son algoritmos que pueden correr en cualquier computador, o sea, lo que es difícil es el problema de resolver estos algoritmos o de quebrar estos algoritmos, que necesita una computadora cuántica, pero no quiere decir que uno necesita una computadora cuántica para correr algoritmos poscuánticos.

Sí, sí existen algoritmos que son cuánticos en sí mismos, pero no han sido investigados, muy investigados, no hay una idea realmente de si funcionan, pero existen.

S√≠, y bueno, entonces, yendo detr√°s de esta investigaci√≥n de algoritmos poscu√°nticos, bueno, necesitamos utilizar Go, utilizar implementaciones que sean lo suficientemente r√°pidas, a veces necesitamos utilizar ensamblador cuando es necesario, y bueno, necesitamos tener esta habilidad, poder hacerlo de forma √°gil, y tambi√©n, ¬Ņpor qu√© no?, retribuir a la comunidad con c√≥digo abierto, c√≥digo que est√° disponible para todo el mundo.

Es por eso que, una de las razones por que creamos esta biblioteca criptogr√°fica, que se llama Circle, y que contiene una cantidad de algoritmos, tanto poscu√°nticos como algoritmos cl√°sicos, dentro de los cuales est√°, por ejemplo, Cyc, CyDH, CyCy, tenemos Dilithium y Kyber.

Entonces, vamos a hacer un peque√Īo demo de esta librer√≠a, y van a ver c√≥mo es simple, utilizando Go, utilizando c√≥digo que ya est√° listo para todo el mundo usar, y poder instanciar estos algoritmos.

Bien, aqu√≠ del lado izquierdo tenemos una peque√Īa funci√≥n en Go, que lo que hace es la generaci√≥n de llaves, utilizando el esquema Cyc.

En este caso, por ejemplo, tenemos a Bob, que él quiere generar un par de llaves.

La llave, lo que es su llave p√ļblica, digamos esta llave con nubecita, y su llave privada, que es esta llave m√°s antigua.

Lo √ļnico que tiene que hacer Bob, de su lado, es importar el paquete Circle, el m√≥dulo Circle, en este entorno, y generar tanto su llave privada como su llave p√ļblica.

Y esto crea los objetos por s√≠ mismos, y llamar√° a la generaci√≥n utilizando una fuente de n√ļmeros aleatorios.

Y finalmente, Bob tendr√° su par de llaves correspondientes.

Una vez que Bob ya tiene sus llaves, ¬Ņqu√© es lo que puede hacer con ellas?

Bueno, digamos Alice, o una otra persona, lo que quiere hacer es encapsular una llave.

¬ŅQu√© quiere decir esto? A final de cuentas, Alice quiere que esta llave sea compartida tanto por Bob y por ella.

Entonces lo que hace es, bueno, toma esta llave, la cifra, con la llave p√ļblica de Bob, y se la manda.

Una vez que Bob recibe esto, tiene la habilidad de desencapsular esta llave, es decir, abrir este sobrecito que viene cifrado, y utilizar su llave privada para obtener esta llave.

Finalmente, bueno, después de ejecutar este protocolo, ambos tendrán la misma llave, al final, compartida.

Y esto, bueno, es utilizando Psyche, que es un criptoestado postcuantico.

Ahora tenemos la generación, por ejemplo, de firmas.

¬ŅQuieres? Funciona casi de la misma forma como Armando dijo, porque para la generaci√≥n de firma igual necesitamos generar, en este caso Alice necesita generar una llave p√ļblica y una llave privada.

Genera dichas firmas, y utiliz√°ndola, su llave privada, toma un texto, que en este caso es hasta la lista Baby, y lo firma, y genera la firma, y manda su firma.

Entonces, cuando Bob lo va a recibir, hay una funci√≥n que se llama Verifica, y lo que hace Bob es que toma la llave p√ļblica de Alice, porque Alice la public√≥ en alg√ļn lado, o la mand√≥ tambi√©n como parte de su transmisi√≥n, y verifica la firma, y si es que retorna un booleano usualmente que dice, s√≠, est√° muy bien, verdadero, la firma es verificada, y si no, retorna falso, y es falsa.

Sí, como ven la interfaz es muy simple, entonces pueden utilizar, en este caso estamos utilizando el Deletion para calcular lo que es una firma digital.

Y bien, los invitamos tanto a usar como a contribuir en este proyecto, el código es código libre, tiene implementaciones que están optimizadas para ABI, AVX2, o para arquitectura ARM64.

Aparte de los algoritmos poscuánticos, hay algoritmos clásicos sobre quantum, que es lo clásico, la aritmética de curvas elípticas, aritmética de cuerpos y de grupos primos, y también algunos otros protocolos más avanzados, que es la interpretación híbrida, o el cálculo de OPRFs, métodos de encapsulación, y también ejecución en paralelo.

Hasta ahora, ¬Ņcu√°l es tu experiencia en Go, Sophie?

Al utilizar el lenguaje de programación es muy eficiente el momento de programar, en el sentido de que una de las cuestiones que Go, en su inicio, cuando decidieron escribir el lenguaje de programación, lo que quisieron primero enfocarse es que sea un lenguaje simple, por lo tanto su sintaxis es demasiado simple, es un lenguaje seguro en el sentido de que utiliza un recolectador de basura que implementa un compilador con un algoritmo de tres colores, entonces manda la memoria que necesita bastante eficientemente, entonces para escribir criptografía es un lenguaje de programación muy eficiente.

Y algo que realmente ha sido muy bueno es que cuando nosotros lo hemos utilizado con la suite que est√° escrita en Go, que es la suite de TLS, ha sido muy f√°cil incorporar experimentos a esa suite.

Así es, bueno, entonces ya tenemos esta librería lista, ahora necesitamos pasar a la experimentación.

Bueno, ahora vamos a ver lo que es los experimentos de TLS. Entonces obviamente hablamos ya bastante acerca de las máquinas cuánticas y lo que significan, y obviamente si es que una máquina cuántica comienza a aparecer, el primer punto donde todo va a colapsar es TLS, porque TLS es este protocolo de comunicación segura que utilizamos básicamente cuando visitamos casi toda página web.

Espero que en el futuro sea toda p√°gina web, pero ahora es casi toda p√°gina web.

Para hacer transacciones seguras, para visitar, para hacer login, para todo usualmente se utiliza TLS.

Entonces si es que existen máquinas cuánticas en un momento, TLS va a ser roto porque usa algoritmos que son de curvas elípticas o RCA.

¬ŅCu√°l ha sido la idea? Han habido varias ideas de bastantes personas de incorporar algoritmos poscu√°nticos a la suite de TLS, y han habido propuestas de, por ejemplo, hacer un TLS h√≠brido en donde en la misma handshake de TLS se incluyan algoritmos poscu√°nticos a la par de algoritmos cl√°sicos.

¬ŅCu√°l es el problema con esto? Es que usualmente solo genera cierta protecci√≥n transitoria, pero no realmente una protecci√≥n completa en un mundo donde hay computadoras cu√°nticas.

Entonces la idea con un experimento que ahora estamos corriendo en el Cloudflare es no solamente dar esta protección transitoria, sino realmente dar una protección completa si es que las computadoras cuánticas van a aparecer.

Dale, siguiente. El experimento es QEM-TLS.

¬ŅQu√© es QEM? QEM es este mecanismo que viene de las siglas en ingl√©s que significa Key Encapsulation Mechanism.

Es similar a lo que intenta hacer Vicky Gelman en el sentido de que utiliza valores p√ļblicos para generar un secreto compartido.

¬ŅCu√°l es la idea en el experimento? La idea en el experimento es que tanto el secreto compartido que se genera en TLS sea protegido en un mundo donde hay computadoras cu√°nticas, como tambi√©n la parte de la autentificaci√≥n.

Entonces tanto una seguridad frente a computadoras cuánticas en la autentificación y en la confidencialidad.

¬ŅQu√© es lo que hacemos? Es que en vez de utilizar firmas digitales poscu√°nticas, utilizamos QEMs.

¬ŅPor qu√© utilizamos QEMs?

Porque son, porque generan valores mucho m√°s peque√Īos que utilizar firmas digitales.

Como vimos en una de las tablas que mostró Armando, los valores más grandes generados por los algoritmos poscuánticos son en firmas.

Entonces no quer√≠amos utilizar firmas, sino utilizar QEMs que dan valores mucho m√°s peque√Īos.

El experimento de Clawflare es integrar estos QEMs y esta seguridad poscuántica, tanto en autentificación como en confidencialidad, a la suite de TLS en su versión 1.3 y ver cómo funciona en el mundo real.

Es decir, quizás tomar ciertas conexiones y ver qué es lo que sucede si se incorporan algoritmos poscuánticos durante estas conexiones.

B√°sicamente ahorita estamos haciendo el experimento en Golan y estamos utilizando la suite de TLS de Golan.

Nuestro propio fork del lenguaje de Golan, porque no podíamos cambiar directamente el lenguaje de Golan porque es un experimento y cambiar un lenguaje en producción con un experimento no es muy razonable.

Pero decidimos hacer nuestro propio fork para poner los experimentos. Y básicamente, como ya les dije, el experimento de seguridad poscuántica todavía usa certificados, porque de cierta forma todavía hay que publicar cuál es la firma poscuántica que se está utilizando.

Obviamente como un experimento no podemos cambiar todas las autoridades de certificación para que utilicen algoritmos poscuánticos, porque tomaría mucho tiempo y convencimiento y no creo que realmente pase.

Pero lo que podemos utilizar es una extensión de TLS que se llama credenciales delegados.

Los detalles de las implementaciones se encuentran en estas dos pull requests que pueden ver.

Una de esas no está completa, pero de todas maneras pueden ver cómo el experimento se va desarrollando.

Y con eso creo que tenemos los √ļltimos pensamientos finales.

Sí, bueno, de mi parte agradecerles a todos por su atención.

Espero que este tema les interese bastante. Tenemos ahora lo que es la investigación de estos parámetros, de este algoritmo poscuántico usando QEM.

Y bueno, como siempre, esperamos les haya gustado.

Igual que esperamos que les haya gustado. Todavía hay bastantes cosas que necesitan ser pensadas en cuanto a la criptografía poscuántica.

Todavía hay bastantes cosas que pensar, pero vamos en un buen camino y todos estos experimentos son hechos precisamente para lograr incorporar algoritmos poscuánticos a las suites y los protocolos criptográficos que ahorita nosotros tenemos.

Porque como les dijimos, como parte de la comunidad criptogr√°fica es mejor ser prevenidos antes de que vengan las computadoras cu√°nticas y destruyan toda la Internet.

Bueno, ojal√° eso pase en alg√ļn tiempo porque a√ļn estoy cifrando con curvas el√≠pticas.

Entonces es un poco scary esto. Bueno, agradecemos su atención y bueno, los esperamos y ojalá utilicen, lean los blog posts que están marcados ahí.

Y muchas gracias. Muchas gracias, Juan. Gracias.