2. COMPUTACIÓN Y CRIPTOGRAFÍA CUÁNTICA
El vertiginoso avance de la computación en las últimas décadas está ligado al
uso de transistores cada vez más pequeños y potentes. Pero pronto será
imposible acumular más transistores en el mismo espacio, ya que a escala
nanométrica las interacciones cuánticas son difíciles de controlar.
La computación cuántica empezó a desarrollarse en la década de los ochenta
a raíz de las propuestas de Paul Benioff, David Deutsch y Richard Feynman
(ver [3]). En 1982, sugirieron independientemente que, dado el elevado coste
computacional del cálculo de la evolución de sistemas cuánticos, la
evolución de estos sistemas se podría considerar como una herramienta de
cálculo más que como un objeto a calcular. Poco después, en 1985, y también
de forma independiente Deutsch propone la búsqueda de un ordenador que
sea capaz de simular eficientemente un sistema físico arbitrario [2]. La
conjunción de todas estas ideas ha conducido a la concepción actual de
ordenador cuántico.
APARTADO 1.1. INTRODUCCIÓN HISTÓRICA
MODELO DE COMPUTACIÓN CUÁNTICA
3. APARTADO 1.2. REPRESENTACIÓN DE LA INFORMACIÓN
En computación cuántica la unidad elemental de información es el qubit o bit cuántico,
que se define a partir de dos estados básicos denotados por |0> y |1>. Pero, además, el
estado cuántico puede ser una superposición de los dos estados básicos, que
modelizaremos por una combinación lineal. Ésta es la principal diferencia con el modelo
de computación clásico. Un estado cuántico va a ser un vector de la forma a|0>+b|1>.
Físicamente se puede utilizar el spin de un electrón o la polarización de un fotón como
soporte físico de un qubit. Un estado de polarización puede ser modelizado por un vector
unidad apuntando en la dirección adecuada y se puede representar como un vector de
norma uno en el espacio de Hilbert complejo H, que tiene como base ortonormal
B1=[|0>,|1>].
4.
5.
6. APARTADO 1.3. ESTADOS DE 2-QUBITS. ENTRELAZAMIENTO
La información que contiene un qubit es evidentemente muy pequeña. Para poder
representar más información es necesario recurrir a estados de n-qubits. Para entender
cómo son estos estados cuánticos, empezaremos con n=2: Un 2-qubit es un vector
unitario del espacio vectorial de dimensión 4, generado por los vectores de la base
ortonormal B2 =[|00>,|01>,|10>,|11>], cuyos elementos son todos los productos
tensoriales de dos elementos de B1= [|0>, |1>].
7. Un estado cuántico de n-qubits es un vector de norma 1 del espacio de Hilbert complejo Hn,
de dimensión 2n.
Se puede construir una base ortonormal de Hn, con todos los productos tensoriales de n
vectores de B1.
Los vectores de esta base se pueden identificar con todas las posibles cadenas de n bits o con
las expresiones binarias de los números 0…2n-1.
La identificación de cada vector de la base con una cadena de n bits resulta muy conveniente
para codificar la información.
APARTADO 1.4. ESTADOS DE N-QUBITS
8. APARTADO 1.5. TRANSFORMACIÓN DE LA INFORMACIÓN. PUERTAS CUÁNTICAS
La evolución de un estado cuántico se describe mediante transformaciones cuánticas,
que son operadores lineales unitarios definidos en el espacio de Hilbert correspondiente.
Si se considera una base ortonormal, cada operador lineal se identifica con una matriz
cuadrada, cuyas columnas son las coordenadas de las imágenes de los elementos de esta
base. Si M es la matriz asociada a un operador y M* su traspuesta conjugada, el operador
lineal es unitario cuando el producto de M por M* es la matriz unidad.
9. APARTADO 1.6. TEOREMA DE NO CLONING
El teorema de no cloning, de demostración sorprendentemente sencilla, fue formulado
por Wootters, Zurek y Dieks en 1982. Como consecuencia del mismo, no se puede
diseñar un dispositivo que copie un estado cuántico; sin alterar el original de algún modo.
Este hecho, que puede suponer una desventaja de la computación cuántica, ya que
impide, por ejemplo, hacer copias de seguridad, tiene una importante aplicación en
criptografía cuántica, pues un espía no puede hacer impunemente una copia de la
información cuántica que se estén intercambiando dos usuarios legítimos.
10. APARTADO 2.1. EL PROBLEMA DE LA COMUNICACIÓN SEGURA
La criptografía es una ciencia tan antigua como la humanidad, ya que desde siempre los
individuos han necesitado comunicarse de modo seguro y han ideado métodos para
ocultar sus mensajes a posibles espías, mediante procedimientos de cifrado.
CRIPTOGRAFÍA CUÁNTICA
11. La criptografía clásica se puede dividir en dos grandes ramas: criptografía simétrica o de
clave privada y criptografía asimétrica o de clave pública.
12. APARTADO 2.2. PROTOCOLO BB84
Los estados de polarización de un fotón se pueden usar para diseñar un sistema
criptográfico cuántico de un solo uso.
En el espacio de Hilbert H1 consideraremos las dos bases ortogonales más usuales: la base
B1=[|0>,|1>], que se identifica con la polarización horizontal y vertical, y la base
BX=[|+>,|->], identificada con la polarización 45º y -45º.
En la siguiente imagen se recuerda el resultado que se puede obtener al medir, con cada
una de estas bases, los cuatro estados de ambas.
13. APARTADO 2.3. SEGURIDAD DEL PROTOCOLO BB84
La seguridad de los protocolos cuánticos de distribución de claves se basa en que los
comunicantes legítimos pueden detectar la presencia de un espía porque, al medir los
estados cuánticos, éste introduce discrepancias en la clave. Así, pueden chequear un
trozo de la clave generada y rechazarla, en caso de encontrar discrepancias.
14. ALGORITMOS CUÁNTICOS
Un algoritmo es un proceso encaminado a realizar una tarea específica.
Cada etapa de un algoritmo cuántico se especifica mediante una puerta cuántica, que no
es otra cosa que una transformación unitaria en el espacio de Hilbert. Por tanto, el
algoritmo se expresa mediante composición de transformaciones unitarias y en
consecuencia siempre es reversible, porque toda transformación unitaria tiene inversa.
APARTADO 3.1. INTRODUCCIÓN
15. APARTADO 3.2. PRIMEROS ALGORITMOS CUÁNTICOS
Veremos en esta sección tres algoritmos de indudable importancia histórica, que
intentan resolver problemas relativos a funciones booleanas. Recordemos que toda
función boolena f de n bits en m bits se puede implementar mediante la puerta cuántica
Uf
16. APARTADO 3.3. BÚSQUEDA NO ESTRUCTURADA. ALGORITMO DE GROVER
Muchos problemas, que se pueden denominar problemas de búsqueda, se pueden
plantear de la siguiente forma: Hallar x en un conjunto de posibles soluciones tal que la
sentencia f(x)=1 sea cierta.
Un problema de búsqueda no estructurada es aquel para cuya resolución no se puede
usar ninguna hipótesis relativa a la estructura del espacio de soluciones. Por ejemplo, una
búsqueda en una lista alfabetizada, como la búsqueda del número de un usuario en la
guía telefónica, es un problema de búsqueda estructurada. Mientras que la búsqueda en
la misma guía del titular de un número concreto sería una búsqueda no estructurada.
17.
18. APARTADO 3.4. TRANSFORMADA CUÁNTICA DE FOURIER
La transformada cuántica de Fourier (QFT) es una transformación unitaria de Hn en Hn,
que para cada n-qubit |j>, de la base Bn, se define como:
Nótese que j es una cadena de n bits, que representa la expresión binaria de un número
entre 0 y 2n-1 y cuando no hay lugar a confusión escribimos directamente este número.
Por ejemplo, la imagen de |0> es justamente una superposición de todos los estados de la
base.
Es decir Fn(|0>)=Wn(|0>).
19. APARTADO 3.5. ALGORITMO DE SHOR
La factorización de números enteros es un problema muy actual. La dificultad de este
problema, infructuosamente atacado hasta el momento, nos permite considerar la
multiplicación de números enteros como una función de dirección única.
La aplicación más importante de este hecho es el sistema criptográfico de clave pública
RSA. La seguridad de este sistema radica en la imposibilidad práctica de factorizar
números grandes, con centenares de dígitos. Otros protocolos de clave pública como
ElGamal se basan en otro problema de alta dificultad computacional: el problema del
logaritmo discreto.
Pero la computación cuántica puede modificar radicalmente el estatus actual de la
seguridad informática, ya que Shor propuso en 1994 (ver [7]) un algoritmo cuántico para
resolver de modo eficiente tanto el problema de la factorización de un número entero
como el problema del logaritmo discreto.