Distribución Cuántica de Claves: Protocolo BB84


Objetivo

La Distribución Cuántica de Claves (QKD : Quantum Key Distribution) es un método por el que dos partes, que comparten un canal de comunicación no seguro pueden construir, negociar y acordar una clave secreta.

En este artículo vamos a analizar este procedimiento, sin entrar en la propia generación de la clave.

Describiremos como funciona el protocolo BB84, desarrollado por Charles Bennett y Gilles Brassard en 1984.

BB84

Imaginemos que Alice y Bob necesitan compartir una clave secreta que les permita intercambiar información de manera segura. De manera segura significa que, si bien otras partes pueden acceder a los bits encriptados e intercambiados, no podrán acceder a la información en claro. Alice y Bob comparten un canal cuántico, que se entiende como aquel que permite hacer cualquier tipo de transformación físicamente válidas. Y nos encontramos también a Eve, que dispone de acceso a este canal.

Comencemos…

Alice selecciona una serie de bits

El primer paso consiste en la selección, por parte de Alice, de una serie de bits. En este ejemplo vamos a comenzar con 10 bits, es la semilla de la clave secreta que han de compartir. Los vemos en la siguiente tabla, que nos servirá de guía en este trabajo.

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101

Alice selecciona una serie de bases

A continuación Alice seleccionará una base, Z ó X, para cada uno de los bits. De tal manera que obtendría un qubit específico por cada uno de los bits elegidos.

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ

Alice envía los qubits:

Para obtener esos qubits desde los bits/base y viceversa, se aplicará este criterio:

  • Si el qubit es |0\rangle , base Z, ó |+\rangle , base X, se asignará a 0
  • Si el qubit es |1\rangle , base Z, ó |-\rangle , base X, se asignará a 1

Luego, siguiendo ese criterio, Alice enviará los qubits correspondientes por el canal cuántico:

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle

MUY IMPORTANTE: En una primera aproximación vamos a asumir que Eve no actúa en ese intercambio de información.

MUY IMPORTANTE: En una primera aproximación vamos a asumir que Eve no actúa en ese intercambio de información.

Bob recibe los qubits y selecciona bases:

Luego Bob recibirá una serie de qubits, que ha de medir. Para ello elegirá aleatoriamente bases, bien X bien Z, sobre las que realizar la medición. Pensemos que Bob no tiene información sobre que base trabajó Alice en la generación de los qubits.

Actualizamos el cuadro de estado :

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Bob, bases: ZZXZZXXZZX

Bob mide los qubits

A continuación Bob realiza las mediciones de los qubits recibidos en la base seleccionada, y asigna los qubits obtenidos a los bits correspondientes de acuerdo al criterio acordado:

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Bob, bases: ZZXZZXXZZX
Bob, medidas: |0 \rangle |0 \rangle |+ \rangle |0 \rangle |0 \rangle |- \rangle |+ \rangle |1 \rangle |- \rangle |+ \rangle
Bob, bits:0000010111

Podemos ver que, lógicamente, en los casos en los que se usa la misma base Bob obtendrá el mismo bit que seleccionó Alice: bit0, bit, bit4, bit6 y bit7. Aquí no cabe error, en un sistema fiable ambos jugadores dispondrán de una misma serie de bits.

En el resto de casos: bit1, bit3, bit5, bit8 y bit9 se han elegido diferentes bases. Pero eso no implica que el bit resultante sea diferente. ¿Cómo eso posible?. En el caso del bit5 Bob recibió un qubit |1\rangle y eligió aleatoriamente una base de medida X. ¿Qué ocurre en ese caso?. Pues como quiera que un qubit |1\rangle expresado en base X equivale a |1\rangle = \frac{1}{\sqrt{2}}(|+\rangle - |-\rangle) tras realizarse la medición obtendremos un qubit |+\rangle o un qubit |-\rangle con probabilidad equivalente al cuadrado del coeficiente (la amplitud del qubit en ese vector de la base) : \frac{1}{\sqrt{2}}^{2} = \frac{1}{2} . Dicho en otras palabras : el qubit |1\rangle medido en una base X colapsará en un qubit en |+\rangle o en un qubit |-\rangle con probabilidad 1/2 cada caso. Que equivale a decir que obtendremos un bit 0 ó un bit 1 con probablidad 1/2.

Alice y Bob comparten bases

En el siguiente paso Alice y Bob compartirán las bases elegidas. Como manera de empezar Alice enviará a Bob la base elegida, Bob comparará con sus bases y devolverá a Alice aquellas en las que han coincidido. Eso les permitirá disponer de un conjunto de bits que saben a ciencia cierta que es idéntico. En este punto ya habrían seleccionado una clave secreta.

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Bob, bases: ZZXZZXXZZX
Bob, medidas: |0 \rangle |0 \rangle |+ \rangle |0 \rangle |0 \rangle |- \rangle |+ \rangle |1 \rangle |- \rangle |+ \rangle
Bob, bits:0000010111
Coinciden bases?NoNoNoNoNo
Clave secreta00001

Efectivamente Alice y Bob ya disponen de la clave 00001 secreta para trabajar con sus mensaje encriptados.

Como medida adicional de seguridad compartirán un subconjunto de esa clave para asegurarse de que no ha habido ningún problema o error en la generación de la misma. Podrían compartir los dos primeros bits, 00, asegurar que ven el mismo valor y usar el resto, 001, como clave secreta.

Todo simple y claro, pero ya adelantamos que tomábamos como hipótesis que Eve no actuaba.

Veamos que ocurre si Eve hace su trabajo y escucha!

Eve escucha el intercambio de información

Eve ha intervenido el canal de comunicación entre Alice y Bob, luego recibirá el qubit que envía Alice, tendrá que seleccionar una base para medirlo, y posteriormente reenviarselo a Bob.

Veamos que escenario nos encontramos :

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Eve, bases:XZXXXZZZXX
Eve , medidas:|- \rangle |0 \rangle |+ \rangle |+ \rangle |+ \rangle |1 \rangle |1 \rangle |1 \rangle |+ \rangle |0 \rangle

Eve reenviará ese qubit a Bob, que continuará con su procedimiento, desconocedor de lo que ha ocurrido. Seguirá seleccionando aleatoriamente unas bases y realizará la medida.

Bob selecciona las bases para las medidas.

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Eve, bases:XZXXXZZZXX
Eve , medidas:|- \rangle |0 \rangle |+ \rangle |+ \rangle |+ \rangle |1 \rangle |1 \rangle |1 \rangle |+ \rangle |0 \rangle
Bob bases:ZZXZZXXZZX

y procede a medir, y a seleccionar el bit correspondiente según el criterio elegido.

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Eve, bases:XZXXXZZZXX
Eve , medidas:|- \rangle |0 \rangle |+ \rangle |- \rangle |+ \rangle |1 \rangle |1 \rangle |1 \rangle |- \rangle |0 \rangle
Bob bases:ZZXZZXXZZX
Bob, medidas:|0 \rangle $latex |0
\rangle $
|+ \rangle |1 \rangle |1 \rangle |- \rangle |+ \rangle |1 \rangle |0 \rangle |+ \rangle
Bob, bits0001110100

Alice y Bob comparten bases utilizadas

De igual manera que hicimos en el primer caso, toca ahora compartir entre Alice y Bob que bases han coincidido en la elección, para, a continuación, seleccionar los bits resultantes:

AcciónBit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8Bit9
Alice : Bits 0101010101
Alice, bases: ZXXXZZXZXZ
Alice envía: |0 \rangle |- \rangle |+ \rangle |+ \rangle |0 \rangle |1 \rangle |+ \rangle |1 \rangle |+ \rangle |1 \rangle
Eve, bases:XZXXXZZZXX
Eve , medidas:|- \rangle |0 \rangle |+ \rangle |- \rangle |+ \rangle |1 \rangle |1 \rangle |1 \rangle |- \rangle |0 \rangle
Bob bases:ZZXZZXXZZX
Bob, medidas:|1 \rangle $latex |0
\rangle $
|+ \rangle |1 \rangle |1 \rangle |- \rangle |+ \rangle |1 \rangle |0 \rangle |0 \rangle
Bob, bits1001110100
Comparten bases?NoNoNoNoNo
Clave secreta según Bob10101

en este caso, la clave secreta acordada, entendido por Bob, es la 10101.

Procediendo como en el caso anterior compartirán los dos primeros bits para reconfirmar la clave. Y aquí, Alice y Bob, se encontrarán con una discrepancia, Alice tiene un 00, y Bob un 10. Han detectado una intromisión por parte de una tercera parte, Eve.

Cual es el detalle de lo ocurrido?

  • Alice seleccionó un 0, como primer bit de la cadena
  • Alice seleccionó Z como base
  • Alice envió un qubit |0\rangle de acuerdo con el criterio elegido de asociación bits~qubits.
  • Eve interceptó ese qubit, y eligió la base X de medida
  • El qubit recibido colapsó a |-\rangle en la medida (recordemos que podía haber sido |+\rangle con igual probabilidad.
  • Bob recibió el qubit y eligió Z como base
  • El qubit recibido por Bob colapsó a |1\rangle en la medida (de igual manera: podría haber salido |0\rangle con igual probabilidad 1/s.

Alice y Bob eligieron la misma base, luego ese bit cualificó para la selección de la clave secreta, pero fue interceptado, como todos, por Eve, que eligió (por suerte!!) otra base, X. Tanto si en la medida de Eve se hubiera obtenido un |+\rangle, o un |+\rangle, lo cierto es que Bob tenía también un 1/2 de probabilidad de haber medido un |1 \rangle o un |0\rangle. Es decir, ¿fue fruto del azar que Alice y Bob se dieran cuenta de que la comunicación había sido interceptada?: sí, así es…

Veámoslo con poco más de detalle. Rehacemos un poco la pregunta es ¿que posibilidades hay de que la escucha de Eve pase desapercibida?

¿qué opciones tiene Eve de que no se detecte que está escuchando?

La respuesta se obtiene agregando dos escenarios:

  • Eve elige por azar la misma base que ha elegido Alice
  • Eve elige otra base, pero Bob, en su medida, obtiene el mismo qubit que Alice envió.

Poniendo números:

p(Eve elige X) + p(Eve elige Z y Bob mide 0) = 1/2 + 1/2*1/2 = 3/4

Si chequean un solo bit la probabilidad de que Alice y Bob no se den cuenta de que la comunicación ha sido intervenida es de 3/4. Luego la probabilidad de detección es equivalente a su complementario, es decir 1-3/4 = 1/4, pero ¿25% es un porcentaje más bien bajo, no?. Absolutamente cierto, pero aquí jugamos con la extensión del modelo. En este ejemplo, por afán de dar claridad, hemos jugado con 10 bits, de los cuales solo son utilizables 5 (aquellos en los que coindieron las bases), y de ellos se rechequean 2. La probabilidad de detección es la complementaria al escenario de no detección en cada uno de los bits : \frac{1}{2}^n

Luego en nuestro caso la probabilidad de detección es de 1-\frac{3}{4}^2= 31,25\% , sin embargo si aumentamos el número de bits chequeados ese porcentaje disminuye brutalmente. En un escenario de clave secreta de 1024 bits en el que se generan inicialmete 1024+26 y esos 26 se rechequean tendremos una probabilidad de detección de 1-\frac{3}{4}^26 = 99.94\%, aumentemos ese número de bits chequeados y podremos alcanzar el nivel de confianza que necesitemos.

Resumen

Recordemos el procedimiento :

  • Alice selecciona una serie de bits
  • Alice selecciona un número igual de bases
  • Envía los correspondientes qubits por el canal cuántico
  • Bob los recibe y selecciona otro conjunto aleatorio de bases
  • A partir de ahí mide los qubits recibidos y obtiene los bits asociados
  • Alice y Bob comparten las bases utilizadas, y se quedan con los bits asociados a los casos en los que han usado la misma base
  • Quedándose con los bits asociados a esas bases ya disponen de la primera versión de la clave secreta
  • Seleccionan un subconjunto de esa clave y la comparten por el canal público
  • Correctamente dimensionado podrán asegurarse de que no ha habido interceptación de las comunicaciones

Esta tecnología QKD está actualmente disfrutando de un considerable auge. Obviamente BB84 se ha ido evolucionando en estos años (E91 por ejemplo), pero se mantiene la esencia del mismo: gracias a trabajar en un canal cuántico no es posible realizar una escucha sin modificar las características físicas de la particula que transporta la información. Si hay una intervención no autorizada es posible armar un procedimiento para detectar, con el nivel de confianza deseado, esa brecha.

Para el siguente trabajo añadiremos la variable de canal de comunicación no fiable desde el punto de vista señal/ruido, veremos los procedimientos de recuperación ante estos escenarios.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.