Quantum Computing: Una bendición o una maldición (Parte 2)
En el artículo anterior sobre computación cuántica, hemos hablado de las aplicaciones de la computación cuántica en la vida real, y también hemos analizado el proceso de hardware que está permitiendo su increíble aceleración y también algunas implicaciones de software.
Hoy continuaremos con las aplicaciones de la computación cuántica en el ámbito de la ciberseguridad.
Criptografía de la computación cuántica
Sabemos que el mundo de la ciencia ficción tiende a exagerar y a crear un mundo distópico en el que se teme cada nueva tecnología. Ese ha sido el caso de la inteligencia artificial, y también es el caso de los ordenadores cuánticos.
Hemos visto que mucha gente se preocupa por la supremacía cuántica porque significaría el fin de todo lo que es seguro en Internet, pero no saquemos conclusiones todavía.
¿Cómo va a afectar la computación cuántica a la criptografía?
En criptografía, utilizamos diversas formas de cifrar un mensaje. Aquí tenemos dos categorías, el cifrado simétrico con algoritmos como AES, DES, IDEA, RC6, Blowfish o el cifrado asimétrico con algoritmos como RSA, ECC, El Gamal.
Otro enfoque de la criptografía es el hashing, que se considera un cifrado unidireccional. En este enfoque, no necesitamos una clave para descifrar el mensaje, pero sí se puede conseguir el descifrado de ese mensaje con hash, pero se necesita una gran capacidad de cálculo. De ahí viene la amenaza, porque el ordenador cuántico promete una gran potencia de cálculo, y hay algunos ejemplos notables de algoritmos cuánticos que pueden descifrar estos métodos criptográficos. Como temen Akshata Shenoy, Cambou Bernard y muchos otros, hay algunos algoritmos cuánticos que pueden romper los cifrados.
Por ejemplo, el protocolo RSA supone que los ordenadores no podrán factorizar grandes números enteros en tiempo polinómico, pero cuando hablamos de ordenadores cuánticos, eso es posible con el uso del algoritmo de Shor para los problemas de factorización. Bernand apoya la idea de que la Agencia de Seguridad Nacional debería prohibir tanto el ECC como el RSA, ya que ambos son increíblemente populares en el dominio.
No hay que asustarse todavía… esto está aún muy lejos de la realidad porque, como describe Ziegler Lynn, necesitaríamos «al menos 10.000 qubits» o «4.000 qubits y 100 millones de puertas» (Moses) para el algoritmo cuántico de Shor en un RSA de 2048 bits. Y aquí vemos que el paraíso de la computación cuántica empieza a resquebrajarse, citando a Andrea Morello (Premio Eureka de Investigación Científica 2011 y muchos más), «El mayor obstáculo en el uso de objetos cuánticos para la computación es preservar sus delicadas superposiciones el tiempo suficiente para permitirnos realizar cálculos útiles…”
Además, se piensa que el hashing es seguro o a prueba de cuánticos, pero eso no es necesariamente así porque, a fin de cuentas, el otro algoritmo cuántico increíblemente popular es el de Grover, que se describe como el mejor algoritmo para buscar en una caja negra (o para buscar en general). Pero esto no sería tan eficiente como el algoritmo de Shor en RSA porque todavía hay que buscar a través de todas las claves, por lo que reduciría las consultas de N a √𝑁, es decir, en lugar de 2256 búsquedas harás 2128 búsquedas, y todavía está lejos de ser eficaz.
Hemos hablado de las amenazas que suponen los ordenadores cuánticos, sin embargo, aún estamos lejos de conseguirlo debido a las limitaciones de hardware que se han explicado anteriormente. Por otro lado, hoy podemos aprovechar la potencia de los ordenadores cuánticos para mejorar la ciberseguridad. Por ejemplo, todos los protocolos de codificación tienen algo en común, y es su necesidad de una clave.
Incluso hay algunas funciones como HMAC que utilizan un algoritmo de hash como sha-2 combinado con una clave para generar un HMAC. Así pues, las claves se utilizan en todas partes, y dependemos de ellas, pero al final, las claves son solo una secuencia de bits. Por ejemplo, RSA utiliza claves de 1024, 2048, 4096 bits, AES utiliza claves de 128, 92, 256 bits, etc. Pero siguen dependiendo de claves que deben generarse de forma que sean seguras. Cuanto más fuerte es la aleatoriedad de una clave, más fuerte es el cifrado, más fuerte es la aleatoriedad de cada bit y más fuerte es la clave. Esto significa que el valor de los bits debe generarse aleatoriamente.
Existen dos tipos de generadores de números aleatorios:
- Generadores de números pseudoaleatorios, que utilizan una semilla inicial y, a partir de ella, calculan el número aleatorio.
- Generadores de números aleatorios verdaderos, que utilizan la radiación, la mecánica cuántica o diferentes fenómenos naturales para obtener el valor deseado.
Por supuesto, el segundo tipo de número aleatorio será nuestro enfoque. Podemos explotar el principio de incertidumbre de Heisenberg para garantizar la aleatoriedad de cada qubit al salir del estado cuántico y optimizar la generación de una secuencia de bits de tamaño fijo que se transformará en una clave para un protocolo de encriptación, pero quizá hablemos más de la aleatoriedad cuántica en otro artículo.
Otros protocolos de ciberseguridad cuántica
En la industria, hay más casos de uso positivos para la computación cuántica que negativos, como Quantum Key Distribution, Quantum coin flipping, y muchas más; pero para entenderlo, echemos un vistazo rápido a un algoritmo teórico básico de lanzamiento de monedas cuánticas que se resume en el siguiente escenario: tenemos dos partes (Alice y Bob) que deben acordar un bit aleatorio, pero cada parte intentará hacer trampa. El objetivo principal es garantizar que ambas partes puedan acordar un bit generado aleatoriamente sin que exista la posibilidad de hacer trampas.
Para este protocolo, supondremos que existe un canal cuántico que permite al usuario enviar qubits que están en superposición a través de él. Y que no hay ruido que provoque el colapso del qubit en estado cuántico.
La figura anterior muestra un pequeño esquema de cómo funcionaría el protocolo. Para empezar, ambos establecerán una conexión a través del canal cuántico. Una vez establecida la conexión, cada parte tendrá dos qubits y los entrelazará, poniéndolos en superposición. El siguiente paso es que cada parte envíe uno de sus qubits entrelazados a la otra parte a través del canal cuántico. Una vez que reciben el otro qubit, pueden medirlo.
Por ejemplo, Bob tenía los qubits Q1 y Q4 enredados y Alice Q2 y Q3, después de haber enviado un qubit a través del canal cuántico, Bob tendrá Q1 y Q2, y Alice tendrá Q3 y Q4. Ahora ambos aplicarían la puerta de Hadamard para asegurarse de que el contrario no ha influido en el resultado. El siguiente paso es medir los qubits que han recibido (que están en superposición). Al hacerlo, cada uno obtendría un valor aleatorio (pero como el qubit enviado a través del canal cuántico ya estaba enredado, la medición de uno también haría que el otro qubit colapsara y tuviera un valor binario).
En este momento, ambos enviarían los valores recibidos a la otra parte para comprobar si son idénticos. En este paso, cada parte recibirá el valor de qubit de su enredado. Si son iguales, significa que pueden confiar en la otra parte, y el valor del bit ganador se obtendría aplicando la puerta lógica XOR a los bits aleatorios que poseen. En ese momento, el protocolo termina con ambas partes teniendo el valor del bit aleatorio. Durante este tiempo, ambas partes tendrán un observador que abortará el protocolo si el qubit recibido a través del canal cuántico no está en la superposición o si uno de ellos aplica una puerta en el qubit opuesto.
Para comenzar el análisis de nuestro protocolo, hablaremos del ataque del hombre en el medio que intentaría espiar el proceso. El protocolo supervisaría el intento de espionaje de un tercero abortando el protocolo si los qubits no están en estado cuántico al salir del canal cuántico. Si alguno de los dos enviara un qubit que no está enredado al principio del protocolo, fallaría cuando ambas partes estuvieran comparando los resultados, por lo que el protocolo se abortaría. Si uno intentara aplicar puertas a su qubit para influir en el resultado, sería en vano, ya que la puerta de Hadamard establecería la probabilidad de obtener 1 o 0 al 50%. Además, la fuente de aleatoriedad está garantizada por el estado de la campana ya que cada qubit está enredado con otro. Además, la puerta lógica XOR también se utiliza ampliamente en los algoritmos pseudoaleatorios, y el XOR de dos números aleatorios garantizados también será un número aleatorio. Este protocolo es sólo teórico y proporcionaría una forma directa para que dos partes se pongan de acuerdo sobre un bit aleatorio sin que uno de ellos haga trampa.
Futuro del Quantum Computing
En esta serie, hemos hablado de las amenazas que la computación cuántica supone para el campo de la ciberseguridad, pero también hemos comprendido los retos que plantea la fabricación de un ordenador cuántico y la rapidez con la que las partículas cuánticas se enredan, así como lo pequeña que es la longitud de coherencia. Por lo tanto, una suposición educada sería confiar en la computación cuántica basada en la nube en lugar de esperar un ordenador cuántico a temperatura ambiente. Si nos aseguramos de que el procesador cuántico está oculto a cualquier tipo de ondas que puedan interferir con el estado de gato de una partícula, podemos aprovechar el poder de la mecánica cuántica e intentar escalar.
Además, tenemos toda la infraestructura de la nube, y tal vez en el futuro, las colas de espera que existen actualmente para la ejecución en un ordenador cuántico real serán más pequeñas, y podremos utilizarlo en el mundo de la ingeniería. Sé que acabo de afirmar que la computación cuántica a temperatura ambiente nunca se conseguirá, pero con la tendencia actual de investigación de los cristales de tiempo descubiertos en Google, podríamos ver algo que vuelva a cambiar nuestra percepción del mundo, así que téngalo en cuenta: «No hay verdad absoluta en el nivel cuántico» (En busca del gato de Schrodinger).