Computadoras cuánticas y criptografía

Lo más complicado de una computadora cuántica es su programación. Es decir, el software es más difícil de implementar que el hardware. Esto se debe, entre otras cosas, a que la computadora cuántica no puede leer los resultados intermedios (pues si lo hiciera, los qubits dejarían de estar en un estado de superposición, colapsarían, y se acabó el procesamiento cuántico). Por eso la computadora trabajaría “a ciegas”, lo que provoca que los bucles y saltos condicionales de la programación convencional no puedan llevarse a cabo de una manera sencilla.

Sin embargo, ya existe algún algoritmo escrito para ellas. El más famoso es el de Shor, que permitiría romper claves y contraseñas. Para comprender su importancia es necesario conocer cómo se codifica la información que enviamos y recibimos por Internet. A grandes rasgos, cada uno poseemos una clave pública. Cuando alguien quiere mandarnos alguna información, la codifica con esa clave, que está a disposición de todo el mundo. Esta clave pública es un número muy grande, que se ha obtenido básicamente multiplicando dos números primos también muy grandes. La información así codificada no puede decodificarse con la clave pública, por supuesto. Hace falta un algoritmo en el que intervienen esos dos números primos, que sólo nosotros conocemos. Es muy fácil calcular la clave pública multiplicando los dos números primos, pero el proceso inverso (conocer los números primos a partir de la clave, es decir, factorizar) es muy complicado. Con los tamaños de números que se emplean (de cientos de dígitos) a una computadora convencional le llevaría muchos millones de años conseguirlo mediante prueba y error.

Para una computadora cuántica esto no sería tan complicado. A Peter Shor se le ocurrió utilizar patrones de repetición en el número que deseamos factorizar, mediante un proceso conocido como análisis de Fourier (se trata de encontrar patrones que se repitan cada dos dígitos, cada tres, cada cuatro, etc.). Una vez conocidos estos patrones, a una computadora clásica le resultaría fácil encontrar los números primos que lo producen.

El día que se llegue a implementar una computadora cuántica capaz de llevar a cabo el algoritmo de Shor, toda la información codificada de nuestros correos, contraseñas, datos bancarios, etc., quedaría fácilmente al descubierto. Y, de hecho, ya se ha construido alguna capaz de hacerlo. Eso sí, debido a sus limitaciones (de tamaño, pues aún no hay computadoras cuánticas de muchos qubits), sólo ha sido capaz de factorizar el número 15, y ha encontrado, acertadamente, que los números primos que lo producen son el 3 y el 5.

Sin embargo, la propia mecánica cuántica resolvería este problema de necesidad de privacidad en nuestras comunicaciones. La criptografía cuántica es un campo en el que se han hecho grandes avances. Se basa en la propiedad de los sistemas cuánticos de que no es posible realizar una observación sin provocar la decoherencia, es decir, alterar el propio sistema. De esta manera, dos personas que se comuniquen utilizando un sistema de criptografía cuántico podrían saber fácilmente si están siendo espidados.

Para saber más: John Gribbin. “Computing with Quantum Cats”. Prometheus Books, 2014 / Quantum Computers and the end of Security / Criptografía cuántica

Computadoras Cuánticas

coprocesador cuántico D-Wave

D-Wave Systems Inc. / CC-BY 3.0

Actualmente diversos equipos trabajan intensamente afanados en construir una computadora cuántica. A muy grandes rasgos, el modo de trabajar de estas computadoras es el siguiente: El programa pone los qubits del registro de entrada en una superposición de estados. Entonces se desarrolla el cómputo a través de las puertas lógicas de la computadora, que están también en un estado de superposición. De esta manera la información se procesa simultáneamente en todas las historias (universos paralelos) representados por esa superposición de estados. Distintas partes del cálculo se desarrollan en diferentes historias o mundos paralelos, y la interferencia controlada de éstos produce una respuesta, que queda almacenada en un registro de salida. Ésto debe suceder antes de que se produzca la decoherencia, es decir, que las distintas historias “pierdan contacto” unas con otras.

Hay varios aspectos de la construcción de una computadora cuántica que pueden considerarse resueltos o casi resueltos, y otros en los que aún queda camino por recorrer.

Entre los primeros, existen ya varias formas de implementar qubits: desde los que emplean átomos o partículas individuales, como las trampas de iones (un ión aislado en una cámara a muy baja temperatura), núcleos atómicos, e incluso electrones (puntos cuánticos) o fotones, hasta los que utilizan elementos macroscópicos, como los anillos de superconductor (en los que puede circular una corriente eléctrica, sin necesidad de aplicar un voltaje, en un sentido o en el otro, o bien en ambos a la vez si está en superposición) o algunas técnicas de resonancia magnética nuclear. El estado de estos qubits puede cambiarse (entre 0, 1 o una superposición de ambos) mediante la aplicación de campos eléctricos o magnéticos, o bien de pulsos de láser (fotones).

También se han logrado construir puertas lógicas cuánticas. Las puertas de un solo qubit (como la negación, no, que cambia el estado de un qubit de 0 a 1 o de 1 a 0) no son muy difíciles de implementar, pero aquéllas que tienen varias entradas (que manejan varios qubits) son algo más complicadas. Sin embargo, ya se han construido puertas no controladas (CNOT). Éstas tienen dos entradas, una de ellas de control, de manera que si la entrada de control vale 0 la salida vale lo mismo que la otra entrada, y si la entrada de control vale 1, la salida tiene el valor contrario a la otra entrada. Ésto es importante, pues se ha demostrado que con puertas CNOT y puertas de un solo qubit podría implementarse cualquier circuito lógico.

Entre las dificultades quizás la principal sea la de la escalabilidad: hoy por hoy resulta complicado hacer trabajar muchos qubits conjuntamente y al unísono. Otra es la de los tiempos de decoherencia, que todavía son muy pequeños (las diferentes historias o mundos paralelos pierden contacto demasiado pronto). Además, la mecánica cuántica es, por definición, probabilística, por lo que las puertas cuánticas no pueden implementarse perfectamente, y es inevitable que se produzcan errores. Por lo tanto son necesarios más qubits y más tiempo de cómputo para poder detectarlos y corregirlos. En todos estos aspectos se producen avances casi a diario, y las previsiones parecen indicar que las computadoras cuánticas serán una realidad en muy pocos años.

Sin embargo, lo de que aún no existe una computadora cuántica no es del todo verdad. Una empresa canadiense llamada D-Wave ha construido ya lo que es algo más que un prototipo. Con un procesador de 512 qubitsD-Wave presenta su producto como un coprocesador cuántico, diseñado para operar junto con una computadora convencional. Funcionaría más o menos así: en una computadora convencional uno programa su problema, de manera que éste produzca una Instrucción de Máquina Cuántica. Con esta instrucción se alimenta el coprocesador cuántico, que a su vez optimiza la solución para ese problema.

La de D-Wave  no es una computadora de propósito general, pues sólo sirve para resolver problemas de optimización. Sin embargo, a pesar de los 10 millones de dólares que cuesta, algunas grandes empresas, como Google, la han adquirido.

Para saber más: John Gribbin. “Computing with Quantum Cats”. Prometheus Books, 2014 / D-Wave Systems