Codificación superdensa
# Codificación superdensa

La codificación superdensa, en teoría cuántica de la información, es un proceso en el cual se pueden transmitir dos bits clásicos almacenados en un qubit entre dos posiciones (lo suficientemente alejadas para que no haya influencia alguna entre los sistema) y mediante un canal cuántico. Se denomina superdensa porque podemos enviar en un solo qubit dos bits.
El estado cuántico que se transmite es lo que se llama qubit (o cúbit), que no es más que el análogo cuántico del bit. Un bit es, en resumidas cuentas, un sistema que puede existir en dos estados distintos, por ejemplo, para representar 0 y 1. Entonces, un qubit será un sistema cuántico cuyo espacio de estados tiene dimensión 2.
Uno de los requisitos es tener un qubit en cada posición, que estarán entrelazados. Este proceso es similar al de la teleportación cuántica, en la cual se quiere teleportar un estado cuántico de un sistema a otro mediante la transmisión por un canal clásico de dos bits clásicos. Se podría decir que la teleportación cuántica y la codificación superdensa son "procesos inversos" ya que, como se verá más adelante, el procedimiento para uno de ellos es similar al del otro, pero de forma inversa. Una característica que comparten ambos procesos es que necesitan de un estado entrelazado, siendo este estado uno de los pertenecientes a la base de Bell.

# Codificación superdensa
## Realización

Como se ha dicho, queremos enviar en un solo qubit la información de dos bits. Para ello, se inicia el proceso con dos sistemas, Alice y Bob (o sistemas A y B), los cuales comparten un estado entrelazado, con un qubit cada uno. Este estado suele escogerse entre uno de los estados de la base de Bell.
${\begin{cases}|\Phi ^{+}\rangle ={\frac {1}{\sqrt {2}}}(|0\rangle _{A}\otimes |0\rangle _{B}+|1\rangle _{A}\otimes |1\rangle _{B})\equiv |\beta _{00}\rangle \\|\Phi ^{-}\rangle ={\frac {1}{\sqrt {2}}}(|0\rangle _{A}\otimes |0\rangle _{B}-|1\rangle _{A}\otimes |1\rangle _{B})\equiv |\beta _{10}\rangle \\|\Psi ^{+}\rangle ={\frac {1}{\sqrt {2}}}(|1\rangle _{A}\otimes |0\rangle _{B}+|0\rangle _{A}\otimes |1\rangle _{B})\equiv |\beta _{01}\rangle \\|\Psi ^{-}\rangle ={\frac {1}{\sqrt {2}}}(|0\rangle _{A}\otimes |1\rangle _{B}-|1\rangle _{A}\otimes |0\rangle _{B})\equiv |\beta _{11}\rangle \end{cases}}$
Por facilidad, se denotará a los estados de las siguientes formas
$|0\rangle _{A}\otimes |1\rangle _{B}\equiv |0\rangle _{A}|1\rangle _{B}\equiv |01\rangle$
siendo las tres equivalentes entre sí, recordando siempre que el primer qubit del estado pertenecerá a Alice y el segundo a Bob.
Supongamos que se elige el estado $|\beta _{00}\rangle$, al que se denominará $|\Psi _{0}\rangle (=|\beta _{00}\rangle )$. Una vez elegido el estado de Bell que compartirán, se separarán una distancia suficiente tal que no pueda haber ninguna influencia entre ambos sistemas.

# Codificación superdensa
## Realización
### Codificación y transmisión

El objetivo ahora es que Alice quiere enviar mediante un qubit a Bob dos bits, llamémoslos $M_{1}M_{2}$. Las posibilidades para cada bit son 0 o 1, por lo que tenemos cuatro conjuntos de bits que Alice puede enviar. Entonces, dependiendo de qué dos bits Alice quiera enviar, tendrá que realizar una cierta operación a su estado. Los operadores que se aplicarán a este estado pertenecerán al conjunto ($\mathrm {I}$, X, $i$Y, Z), que no son más que el operador (o matriz) identidad y las tres matrices de Pauli.
Recordar antes como actúan estos operadores sobre los estados $|0\rangle$ y $|1\rangle$
${\begin{cases}\mathrm {I} |0\rangle =|0\rangle \\\mathrm {I} |1\rangle =|1\rangle \end{cases}}$ ${\begin{cases}X|0\rangle =|1\rangle \\X|1\rangle =|0\rangle \end{cases}}$ ${\begin{cases}iY|0\rangle =-|1\rangle \\iY|1\rangle =|0\rangle \end{cases}}$ ${\begin{cases}Z|0\rangle =|0\rangle \\Z|1\rangle =-|1\rangle \end{cases}}$
Entonces, en función de los bits que se quieran enviar, se realizarán ciertas operaciones y se obtendrá un nuevo estado, que se puede ver en la tabla siguiente
| Bits que Alice quiere enviar $M_{1}M_{2}$ | Operación a aplicar | Resultado |
| 00 | $\mathrm {I}$ | $|\Psi _{1}(00)\rangle =\mathrm {I} |\Psi _{0}\rangle ={\frac {1}{\sqrt {2}}}(|00\rangle +|11\rangle )\equiv |\beta _{00}\rangle$ |
| 10 | $Z$ | $|\Psi _{1}(10)\rangle =Z|\Psi _{0}\rangle ={\frac {1}{\sqrt {2}}}(|00\rangle -|11\rangle )\equiv |\beta _{10}\rangle$ |
| 01 | $X$ | $|\Psi _{1}(01)\rangle =X|\Psi _{0}\rangle ={\frac {1}{\sqrt {2}}}(|10\rangle +|01\rangle )\equiv |\beta _{01}\rangle$ |
| 11 | $ZX=iY$ | $|\Psi _{1}(11)\rangle =ZX|\Psi _{0}\rangle ={\frac {1}{\sqrt {2}}}(|01\rangle -|10\rangle )\equiv |\beta _{11}\rangle$ |
Así, para cada elección del conjunto de bits, se tiene una operación que Alice realiza para obtener el estado $|\Psi _{1}(M_{1}M_{2})\rangle$.
Hagamos un breve apunte. Si Alice quiere enviar los bits 01, dependiendo de la bibliografía que se consulte, realizará la operación $Z$ o $X$, y lo mismo si quiere enviar los bits 10. Para un entendimiento más intuitivo, aquí se ha elegido esta convención para que el resultado final que más tarde definiremos sea de la forma $|\Psi _{3}(M_{1}M_{2})\rangle =|M_{1}M_{2}\rangle$. Esto no ocurre, por ejemplo, en el libro de M. A. Nielsen y I. L Chuang, Quantum computation and quantum information. En él, para enviar los bits 10 se realiza con el operador $X$ y los bits 01 con $Z$, al contrario de lo que hacemos aquí. El resultado obtenido entonces según esta convención sería de la forma $|\Psi _{3}(M_{1}M_{2})\rangle =|M_{2}M_{1}\rangle$, con el orden de los bits cambiado, al contrario de lo que nosotros obtenemos. También existe bibliografía en la que, para obtener los bits 11, Alice realiza la operación $XZ$, cambiando el orden de actuación de los operadores tal y como aquí se hace. Lo que provoca esto es que obtendremos $|\Psi _{3}(11)\rangle =-|11\rangle$, donde ese signo negativo no es más que una fase añadida que no altera el experimento.
Después de este inciso, recordar que Alice ha aplicado ciertos operadores a su estado inicial $|\Psi _{0}\rangle$ para obtener el estado $|\Psi _{1}(M_{1}M_{2})\rangle$. Este estado es el que Alice le enviará a Bob por un canal cuántico.

# Codificación superdensa
## Realización
### Decodificación I: Puerta CNOT

Una vez que Bob reciba el estado (o qubit) $|\Psi _{1}(M_{1}M_{2})\rangle$, lo primero que hará será aplicarle una puerta CNOT al qubit recibido de Alice y al que él ya tenía. El fundamento de una puerta CNOT es que un qubit nos sirva de control mientras que otro sea un objetivo (target).
El aplicar una puerta CNOT se puede ver como aplicar un operador a los estados, tal que la matriz con la que se puede representar a este operador sea de la forma
$\operatorname {CNOT} ={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{pmatrix}}$
Veamos qué significa aplicar este operador. Si se tiene un estado de dos qubits $|ab\rangle$, donde a y b pueden ser 0 o 1, el operador CNOT hará que si a=0, b no cambiará de valor, pero si a=1, b cambiará al valor contrario. Es decir,
${\begin{cases}CNOT|00\rangle =|00\rangle \\CNOT|01\rangle =|01\rangle \\CNOT|10\rangle =|11\rangle \\CNOT|11\rangle =|10\rangle \end{cases}}$
Es conocido el hecho de que aplicar una puerta CNOT a un estado hará que dos qubits se entrelacen. Lo que no es tan conocido es que también puede desentrelazar dos qubits. Esto es debido a que el operador CNOT es un operador unitario, es decir, su matriz inversa se corresponde con su adjunta, o lo que es lo mismo, $CNOT\cdot (CNOT)^{-1}=CNOT\cdot (CNOT)^{\dagger }=\mathrm {I}$. Si se busca cuál es la matriz adjunta, se puede demostrar que es la misma matriz CNOT, es decir, el operador inverso al operador CNOT es él mismo. Por lo tanto, el operador CNOT puede tanto entrelazar como desentrelazar dos qubits.
Tras esta explicación, Bob aplica esta puerta a los dos qubits que posee, siendo el de control el qubit de Alice y el suyo el objetivo. Veamos el estado resultante para los cuatro casos
${\begin{cases}|\Psi _{2}(00)\rangle =CNOT|\Psi _{1}(00)\rangle ={\frac {1}{\sqrt {2}}}(|00\rangle +|10\rangle )\\|\Psi _{2}(10)\rangle =CNOT|\Psi _{1}(10)\rangle ={\frac {1}{\sqrt {2}}}(|00\rangle -|10\rangle )\\|\Psi _{2}(01)\rangle =CNOT|\Psi _{1}(01)\rangle ={\frac {1}{\sqrt {2}}}(|11\rangle +|01\rangle )\\|\Psi _{2}(11)\rangle =CNOT|\Psi _{1}(11)\rangle ={\frac {1}{\sqrt {2}}}(|01\rangle -|11\rangle )\end{cases}}$

# Codificación superdensa
## Realización
### Decodificación II: Operador de Hadamard y obtención del mensaje

A continuación Bob aplicará una puerta u operador de Hadamard. El operador de Hadamard representa una rotación de ángulo $\pi$ sobre el eje $({\hat {x}}+{\hat {z}})/{\sqrt {2}}$, y está representado en forma matricial de la siguiente manera
$\operatorname {H} ={\frac {1}{\sqrt {2}}}{\begin{pmatrix}1&1\\1&-1\end{pmatrix}}$
o lo que es lo mismo
${\begin{cases}H|0\rangle ={\frac {1}{\sqrt {2}}}(|0\rangle +|1\rangle )\equiv |+\rangle \\H|1\rangle ={\frac {1}{\sqrt {2}}}(|0\rangle -|1\rangle )\equiv |-\rangle \end{cases}}$
Donde $|+\rangle$ y $|-\rangle$ son las componentes de una base denominada base de Hadamard, muy utilizada en mecánica cuántica. Entonces Bob aplicará este operador sobre el qubit de Alice, es decir, el primer qubit. Se puede comprobar que, tras unas operaciones básicas, se obtiene lo siguiente
${\begin{cases}|\Psi _{3}(00)\rangle =H|\Psi _{2}(00)\rangle =|00\rangle \\|\Psi _{3}(10)\rangle =H|\Psi _{2}(01)\rangle =|10\rangle \\|\Psi _{3}(01)\rangle =H|\Psi _{2}(10)\rangle =|01\rangle \\|\Psi _{3}(11)\rangle =H|\Psi _{2}(11)\rangle =|11\rangle \end{cases}}$
Es decir, tras aplicar una puerta CNOT y una puerta de Hadamard, Bob obtendrá un estado de la forma $|m_{1}m_{2}\rangle$, con el cual podrá saber qué dos bits le ha enviado Alice interpretando $m_{1}=M_{1}$ y $m_{2}=M_{2}$. Recordar el apunte que se ha hecho justo después de la anterior tabla. Si se hubiera elegido la convención de que para los bits 10 se aplica el operador $X$ y para los bits 01 el $Z$, se hubiesen obtenido los estados de la forma $|m_{2}m_{1}\rangle$.
Así, se ha visto como se puede enviar dos bits clásicos a partir de la transmisión de un qubit de un sistema a otro mediante el proceso de codificación superdensa.
La figura que se tiene a la derecha representa un circuito cuántico, simbolizando las operaciones seguidas en la codificación superdensa. La primera parte consiste en entrelazar los qubits de Alice y Bob, el cual en este proceso ya se ha supuesto como condición inicial, pero se puede ver en el proceso de teleportación cuántica, aplicando un operador CNOT y de Hadamard. En la segunda parte Alice codifica los dos bits en un qubit, representado por los operadores $X$ (el círculo en $b_{2}$) y $Z$ (el cuadrado en $b_{1}$). Por último, una vez que Bob ya tiene los dos qubits, este realiza una puerta CNOT para desentrelazar los dos qubits, representada por la línea conectando los dos qubits, y una operador de Hadamard sobre el qubit de Alice (representado por el cuadrado con $H$). Los últimos dos cuadrados con un segmento de curva y una flecha atravesándolo se interpretan como una medida, obteniendo los bits que Alice quería enviar.

# Codificación superdensa
## Estado de N-dimensiones

Todo esto que se ha realizado ha sido para dos dimensiones, es decir, cuando tenemos bits y qubits. Pero se puede generalizar para N dimensiones, teniendo dits y qudits (que viene del inglés por ser d-dimensional), como por ejemplo, trits y qutrits. Para dos dimensiones, se tiene que las componentes de la base de dimensión 2 del espacio de Hilbert (que no la única base, si no la usual o canónica) son $|0\rangle$ y $|1\rangle$, entonces, para N dimensiones, la base estará formada desde $|0\rangle$ hasta $|N-1\rangle$.
Entonces, si se tienen dos qudits, tendremos un espacio de $N^{2}$ dimensiones (en el caso de dos qutrits, la dimensión es 9). Para codificación superdensa, el proceso descrito no cambia: Alice sigue haciendo ciertas operaciones sobre su qudit, en la base N-dimensional, para luego enviárselo a Bob, que aplicará los debidos operadores a los dos qudits en la base de $N^{2}$ dimensiones, obteniendo los dos dits que Alice quería enviar. Destacar que, como no se está en 2 dimensiones, los operadores utilizados aquí ($CNOT,H,X,Y,Z$) tendrán que ser redefinidos para cada dimensión.