Saltar al contenido principal

Quantum Computing: Una bendición o una maldición

En los últimos años hemos visto cómo muchas de las grandes empresas tecnológicas se han interesado por este tema y han iniciado una carrera por el primer ordenador cuántico que se utilizará en la industria. Los ordenadores cuánticos prometen ofrecer un gran aumento de la velocidad y resolver muchos de los problemas de la industria tecnológica. Por ejemplo, podría mejorar áreas como la inteligencia artificial, la ciberseguridad, el desarrollo de medicamentos y mucho más.

Aunque puede verse como un elemento de mejora, también crea algunos problemas serios al intentar solucionar los existentes, especialmente cuando pensamos en su impacto en el campo de la ciberseguridad. Compararemos su impacto en la criptografía proporcionando un buen uso de la aleatoriedad cuántica, sin olvidar el daño que podría causar al hablar de la posibilidad de romper el cifrado.

Sin embargo, como afirma John Gribbin en su libro En busca del gato de Schrödinger: La Física Cuántica y la Realidad: «Es mejor debatir una cuestión sin resolverla que resolver una cuestión sin debatirla». Por lo tanto, vamos a evaluar la aleatoriedad de una secuencia booleana que se generó en un ordenador cuántico real con la ayuda de la computación cuántica en la nube.

¿Qué es la computación cuántica?

La informática cuántica aprovecha el poder de la mecánica cuántica para ayudarnos a superar las limitaciones que el mundo informático actual ha ido encontrando. Sin embargo, como el estado cuántico de una partícula es un fenómeno natural, significa que puede reproducirse de diferentes maneras. Vamos a ver la variedad de ordenadores cuánticos e intentaremos entender cómo funciona el procesador cuántico. Comprender la parte del hardware podría ayudarnos a entender la razón por la que la computación cuántica podría estar lejos de ser completa.

Aunque estoy seguro de que la mayoría de vosotros ya conocéis los términos clave de la computación cuántica, los describiré brevemente antes de entrar en la parte de hardware y software de la computación cuántica:

  • Qubits – Pueden considerarse como los bits de un ordenador clásico. Tienen la capacidad de ser 1 y 0 al mismo tiempo (más bien una probabilidad de 1 y una probabilidad de 0).
  • Superposition – Conocido como Estado Cuántico o Cat State (es el momento en que un qubit entra en el ámbito cuántico) en física se considera como el momento en que una partícula puede ser también una onda.
  • Entanglement – Descrito por Einstein como «acción fantasmal a distancia», es el vínculo invisible que tienen dos partículas (que giran en direcciones diferentes). Desde la perspectiva de la informática, cualquier cosa que se aplique a un qubit enredado se aplicará también al otro extremo del enredo en espejo.
  • Gates – Son similares a las puertas lógicas de un ordenador clásico, pero tienen la propiedad de ser reversibles. También puede considerarse un medio para controlar los qubits.

Para una explicación más profunda de los conceptos anteriores, os sugiero leer este artículo sobre Azure Quantum.

Estado del Quantum Computing

Quantum Computing Hardware

Mientras escribo este artículo, la lucha por el primer ordenador cuántico o por la «supremacía cuántica» sigue en marcha. Hay muchas grandes empresas tecnológicas o laboratorios de investigación que intentan crear un ordenador cuántico viable. Pero este espíritu competitivo también es excelente para nuestra causa, porque cada uno de ellos está intentando un enfoque diferente.

La razón por la que hay tantos enfoques es que el objetivo final es obtener y medir el estado cuántico de una partícula que es un fenómeno natural, sin embargo, esta no es la única restricción, también tienen en cuenta la escalabilidad del ordenador cuántico. Porque, al final, para que los ordenadores cuánticos ofrezcan aumentos de velocidad significativos, tenemos que aumentar la longitud de coherencia (la cantidad de tiempo que un qubit puede mantener el estado cuántico) o aumentar el número máximo de qubits que pueden alcanzar ese estado. He realizado una encuesta sobre los tipos de ordenadores cuánticos presentes en el mercado y los he agrupado según el tipo de ordenador cuántico y aquí están los resultados:

Una cosa que merece la pena comentar es que la mayoría de los ordenadores cuánticos de empresas como Google, Intel e IBM utilizan el modelo Gates de ordenadores cuánticos, que depende de la baja temperatura para funcionar, por lo que el escalado es un reto. Por otro lado, empresas como D-wave, Qilimanjaro Quantum Tech y NEC Corporation utilizan el recocido cuántico, que se basa en las fluctuaciones cuánticas o, para explicarlo de forma sencilla, trata de encontrar estados de baja energía de un problema y, por tanto, la combinación óptima o casi óptima de elementos. Lo cual es un gran enfoque para los problemas de optimización.

Pero vamos a centrarlos en los ordenadores Trapped Ion Quantum porque  son los que Azure Quantum está utilizando como proveedores externos. En su núcleo, tenemos un Ion que es un átomo que lleva una carga eléctrica positiva o negativa. Podemos cambiar el estado del ion con pulsos de energía, es decir, podemos hacer que un Ion pase del estado 0 al estado 1 y luego utilizar un láser que no afectaría al estado 0 de nuestro Ion sino al estado 1. Al cargar el estado opuesto haremos que el ion entre en el estado cuántico y emita un fotón que es una partícula de luz que puede ser detectada. Estos iones se estabilizan mediante campos eléctricos para evitar el entrelazamiento con el entorno. Todo el proceso tiene lugar dentro de una cámara de vacío para protegerlo todo de la atmósfera. Los fotones de la computación cuántica se miden entonces para obtener un valor en nuestro sistema.

Quantum Computing Software

En el pasado, la programación de un simple ordenador analógico podía significar algunos cambios directos en los componentes de hardware, de forma similar, la programación de un ordenador cuántico significa reordenar algunos componentes de la parte de hardware. En la industria, la mayoría de los enfoques eran un editor que permite reordenar directamente las compuertas y requerirían operaciones específicas como la inicialización y los reinicios para crear algo conocido como un circuito cuántico.

Tenemos varios SDK’s como Qiskit de IBM, Ocean de D-Wave, Cirq de Google, Bracket SDK de Amazon, etc., pero en mi opinión, Microsoft ofrece’ el mejor SDK con Quantum Development Kit (QDK) que está basado en Q#. ¿Pero por qué Q#? En lugar de proporcionar una forma de organizar las entidades de forma interactiva, Microsoft creó Q# que abstrae diferentes conceptos del hardware físico de un ordenador cuántico (la mayoría de ellos son procedimientos que deben ser implementados cada vez). Q# es más adecuado para los algoritmos que ofrecen una expresión limpia porque, muchas veces, los algoritmos adaptativos son delicados de expresar con el formato de circuito cuántico.

Otra característica clave del lenguaje de programación cuántica Q# es la versatilidad que supone no decidir el hardware de destino desde el principio o si un qubit es físico o lógico. Todo eso se decide en tiempo de ejecución, e incluye la transferencia de estado de cualquier qubit, los mapeos necesarios para la ejecución del algoritmo e incluso los remapeos que puedan aparecer durante la ejecución. Otro plus que aporta es su versatilidad, pudiendo ser utilizado en Jupyter Notebook (el soporte de múltiples cuadernos está en desarrollo), como aplicación independiente, en la línea de comandos, o con un lenguaje anfitrión.

El objetivo es crear un programa cuántico que pueda ejecutarse en cualquier ordenador cuántico, porque ya hemos visto cuántos tipos de ordenadores cuánticos están en desarrollo. Hemos hablado mucho de los problemas filosóficos y físicos porque están estrechamente relacionados con nuestro objetivo, pero, al fin y al cabo, estamos escribiendo esto desde la perspectiva de la Informática. El desarrollo de la informática cuántica está creciendo a gran velocidad, y podría llegar a un punto en el que tengamos múltiples variaciones de ordenadores cuánticos desde el punto de vista del hardware, lo que significa que los programas cuánticos deben ejecutarse correctamente en cualquier tipo de ordenador cuántico (descubierto o no).

El hecho de que Microsoft haya tenido esto en cuenta a la hora de desarrollar Q# es bastante notable y, por ello, Q# se centra en la abstracción del hardware, lo que permite reorganizarlo fácilmente (proporcionando construcciones reutilizables) en caso de que sea general. Además, QDK ofrece una forma de estimar los recursos necesarios sin simular el estado cuántico. Esto resulta increíblemente útil cuando pensamos en implementar un algoritmo como el de Shor o Grover, ya que podría predecir si podemos ejecutarlo en el ordenador cuántico real o no. Al hacerlo, nos ahorra muchos recursos económicos y tiempo.

El ResourcesEstimator puede ejecutarse directamente desde la CLI de .NET porque está construido sobre el Quantum Trace Simulator que forma parte del módulo quantum dentro de .NET.

Aplicaciones de Quantum Computing

Hay muchas aplicaciones para los ordenadores cuánticos en sectores como el médico (desarrollo de fármacos), la inteligencia artificial, las finanzas con la detección de fraudes, el comercio de alta frecuencia, el marketing, la ciberseguridad, y muchos más.

Desde mi punto de vista, el mayor impacto se producirá en el campo de la ciberseguridad, ya que puede ser una ayuda o una amenaza. El campo de la ciberseguridad es amplio, y hay numerosas amenazas que los ordenadores cuánticos suponen para la industria, pero nos centraremos en la criptografía.

La función principal de la criptografía es garantizar la seguridad de los datos, lo que significa que el receptor recibirá el mensaje sin temor a que sea interceptado y se filtre la información. La idea de encriptar un mensaje se utiliza desde la antigua Grecia y la idea es demasiado interesante como para no explicarla.

Por ejemplo, en medio de una guerra, había que entregar a los generales un mensaje que contenía la siguiente decisión estratégica. Si ese mensaje era interceptado por el enemigo, podía significar la pérdida de la guerra. Para evitarlo, los griegos decidieron encriptar el mensaje con una clave determinada y sólo los generales conocerían esa clave determinada y sin ella, el mensaje no tendría ningún significado.

 

Debatiremos las implicaciones exactas de la computación cuántica en la criptografía y analizaremos otros protocolos de criptografía cuántica, ¡así que permaneced atento!

Autor
Eduard Melu
Software Development Engineer