Qiskit es parte del proyecto abierto de IBM para que cualquiera pueda experimentar con computadoras cuánticas. En esta primera parte, les cuento algunos conceptos básicos de computación cuántica.
Existe una gran cantidad de recursos para aprender y experimentar con computación cuántica. En este artículo les voy a mostrar cómo hacerlo con el proyecto de IBM.
Antes de empezar, quiero avisar que esta nota no es para nada sencilla y que para entender van a tener que leerse todas las referencias. En algunos casos hay cuadros que intentan explicar algunos conceptos y en otros es mejor recurrir a la fuentes. Advertidos están…
El mismísimo Richard Feynnman decía que si alguien cree que entendió la física cuántica es que no entiende la física cuántica. Obviamente yo no la entiendo y no pretendo que ustedes lo hagan. Sin embargo, creo que del mismo modo que para conectar, encender y apagar una lámpara led, no es necesario entender cómo se mueven los electrones en un cable o cómo un semiconductor emite fotones; tampoco necesitamos entender profundamente la mecánica cuántica para utilizar computadoras cuánticas.
Así que, vamos…
Primer interrogante:
Hago esta pregunta porque no sólo yo mismo me la hice, sino que la escuché muchísimas veces: ¿Criptografía o computación cuántica? después de todo… ¿no es lo mismo?
Bueno, definitivamente no.
Si bien en ambas áreas se utilizan las propiedades cuánticas como base, las formas de efectuar operaciones en los dos casos, son bastante diferentes. Leí decenas de textos que dicen que las computadoras cuánticas van a factorizar primos tan rápidamente, que la criptografía clásica va a morir. Y creo que es por esa conexión que muchas veces se confunden ambas disciplinas, pero no son lo mismo.
Criptografía cuántica:
Esta disciplina se refiere a los métodos y técnicas para cifrar información basándose en los principios de la mecánica cuántica. Existen varias aplicaciones de criptografía cuántica tales como dinero cuántico, generación de números aleatorios, computación segura entre dos o más partes, computación cuántica delegada. De todas estas aplicaciones, la más conocida es la distribución de claves cuánticas o QKD (Quantum Key Distribution). Su objetivo principal es el de realizar un intercambio seguro de claves simétricas entre emisor y receptor. En este caso no se realiza ninguna operación matemática, esto lo diferencia sustancialmente de la computación cuántica. (Ver QKD).
QKD
Este sistema fue presentado inicialmente por Bennet y Brassard en 1984. En su paper, los autores describen el diseño del protocolo de intercambio de claves denominado BB84, mediante la cual dos usuarios intercambian una clave aleatoria que luego se utilizará para cifrado asimétrico clásico, por ejemplo mediante AES.
El protocolo se inicia cuando el emisor genera fotones en secuencia y una secuencia de bits que corresponden a la semilla de lo que va a ser la clave. Cada bit de la clave corresponde a un dirección de polarización. El emisor entonces codifica dichos fotones uno a uno polarizándolos según la semilla de bits de la clave, llevando a cada uno a un estado de polarización relacionado con dicha secuencia.
Estos fotones se transmiten al receptor quien no conoce qué secuencia de polarización utilizó el emisor. Por este motivo, el receptor prueba aleatoriamente una secuencia de filtros para detectar el estado de cada fotón. En función de los resultados le envía al emisor la información de qué secuencia de filtros utilizó.
El emisor confirma cuáles filtros coinciden con los reales, sin decir los resultados obtenidos ya que esro se envía por un canal público. En función de esa información, ambos descartan los fotones erróneos y obtienen la clave que corresponde a una secuencia de bits que es un subconjunto de la semilla inicial.
Sin abundar en detalles, si alguien interceptara este mensaje, no podría determinar la clave debido a que tampoco conoce la secuencia de filtros utilizados. Como al leer los estados los destruye, el intruso debería regenerar los mismos fotones con la secuencia de polarizaciones que él considera válida. Como esta no lo es, tanto emisor como receptor se dan cuenta que alguien alteró la información debido a que la probabilidad total de estados correctos es menor a la que debería.
Sobre este protocolo se hallaron vulnerabilidades y se desarrollaron ataques, pero también se desarrollaron mejoras al protocolo BB84, como lo es SARG04.
Computación cuántica:
El principio básico de la computación cuántica consiste en que se pueden utilizar las propiedades cuánticas para representar y estructurar datos. Por otra parte, los mecanismos cuánticos pueden diseñarse y construirse para realizar operaciones con estos datos. Las dos principales propiedades cuánticas usadas son superposición y entrelazamiento. (Ver Propiedades Cuánticas).
La forma de modelar los datos y las operaciones son completamente diferentes a los sistemas binarios utilizados en las computadoras normales. En vez de codificar los números en bits que pueden tomar los valores 1 ó 0 como en la computación clásica, los datos se codifican en qubits. Éstos también pueden tomar valores |1〉 ó |0〉 pero en este caso, no mutualmente exclusivos, sino ambos valores al mismo tiempo. Los estados posibles de un qubit se representan en la esfera de Bloch.
Fig. 1 – Esfera de Bloch
El valor del qubit se puede representar como:
α|0〉 + β|1〉
Donde α y β son las probabilidades de cada estado y
α² + β² = 1
Como puede observarse fácilmente, la cantidad de números posibles de representar con n qubits es la misma que con n bits, es decir 2n. Sin embargo, lo disruptivo del modelo es que en computación clásica, con n bits, se puede representar sólo “un” estado dentro de los 2n posibles. En cambio con n qbits, por el principio de superposición, se pueden representar “todos” los 2n estados posibles a la vez.
Propiedades cuánticas
Superposición
Es la habilidad de un sistema cuántico de estar en múltiples estados a la vez, hasta tanto sea medido cuando la superposición se destruye. Para los que lo recuerdan de cuando lo estudiaron en física, este efecto es el que se explica con el gato de Schroedinger, que mientras el gato está dentro de la valija está vivo y muerto a la vez, hasta el momento de abrir la caja…
Entrelazamiento (Entanglement)
Propiedad por la cual dos partículas de energía o materia se correlacionan entre sí de modo que es posible predecir lo que va a hacer una si se interactúa con la otra. Esto ocurre sin importar la distancia que las separe.
Decoherencia
Pérdida de información de los qubits debido a su interacción con el medio ambiente. Si bien es una propiedad, corresponde a una vulnerabilidad para la computación cuántica y los equipos que desarrollan computadoras cuánticas trabajan constantemente para minimizarla.
En la segunda parte, hablaremos de los sistemas de procesamiento cuántico.
Jugando con Qubits (parte 2) >
Nota por Carlos Benitez