# BB84

Il BB84 è un protocollo crittografico quantistico di distribuzione delle chiavi per un sistema di crittografia sviluppato da Charles H. Bennett e Gilles Brassard nel 1984. Il protocollo fa uso di due caratteristiche fondamentali della meccanica quantistica: stati non ortogonali tra di loro, il teorema di no-cloning e il fatto che la misura possa disturbare lo stato. È stato il primo metodo di crittografia quantistica mai inventato ed è utilizzabile come metodo per comunicare in modo privato una chiave segreta tra due utenti per poi utilizzare un protocollo del tipo "cifrario di Vernam" per la crittazione.

## Descrizione

Alice, con lo scopo di mandare una chiave privata a Bob, estrae casualmente due stringhe a e b di n bit ciascuna. La prima stringa sarà il messaggio da mandare a Bob, mentre la seconda rappresenta la base in cui codificare ciascun bit della prima stringa. Alice, una volta codificata la prima stringa, avrà lo stato
    $|\psi \rangle =\bigotimes _{i=1}^{n}|\psi _{a_{i}b_{i}}\rangle .$
dove $a_{i}$ e $b_{i}$ sono rispettivamente gli $i$-esimi bit di $a$ e $b$. $|\psi _{a_{i}b_{i}}\rangle$ rappresenta lo stato che si ottiene dalla codifica del bit $a_{i}$ nella base data dal bit $b_{i}$. Se $b_{i}=1$ Alice userà la base di Hadamard, mentre se $b_{i}=0$ userà la base computazionale. Tutti i possibili casi sono i seguenti:
    $|\psi _{00}\rangle =|0\rangle$
    $|\psi _{10}\rangle =|1\rangle$
    $|\psi _{01}\rangle =|+\rangle ={\frac {1}{\sqrt {2}}}|0\rangle +{\frac {1}{\sqrt {2}}}|1\rangle$
    $|\psi _{11}\rangle =|-\rangle ={\frac {1}{\sqrt {2}}}|0\rangle -{\frac {1}{\sqrt {2}}}|1\rangle .$
I qubit sono ora in basi non mutuamente ortogonali, quindi è impossibile distinguerle tutte con certezza senza conoscere $b$.
Alice manda $|\psi \rangle$ in un canale quantistico pubblico a Bob. Bob riceve uno stato $\varepsilon \rho =\varepsilon |\psi \rangle \langle \psi |$, dove $\varepsilon$ rappresenta l'effetto del rumore nel canale e la presenza di un terzo intercettatore, chiamato Eve. Dopo che Bob ha ricevuto la stringa di qubit, tutte e tre le parti (Alice, Bob ed Eve) hanno i propri stati. Comunque, poiché solo Alice conosce $b$, è virtualmente impossibile sia per Bob che per Eve distinguere gli stati dei qubit. Inoltre, dopo che Bob ha ricevuto i qubit, sappiamo che è impossibile che Eve sia in possesso di una copia perfetta dei qubit mandati a Bob per il teorema di non clonazione, a meno che non abbia fatto una misura. La sua misura, però, rischia di disturbare il particolare qubit con probabilità ½ se lei sceglie la base sbagliata.
Bob procede nella generazione di una stringa di bit casuali $b'$ della stessa lunghezza di $b$, e quindi misura la stringa che ha ricevuto da Alice,$a'$. A questo punto Alice e Bob annunciano pubblicamente (cioè su un canale pubblico che può essere ascoltato da tutti ma modificato da nessuno) le loro stringhe rispettivamente di misura e di codifica. Sia Alice che Bob, allora, scartano i qubit in $a$ e $a'$ dove $b$ e $b'$ non corrispondono.
Per tenere conto del rumore e dell'eventuale presenza di Eve, Alice e Bob pubblicano la metà dei $k$ bit corrispondenti alla stessa base e verificano se più di una certa percentuale di questi corrisponde. Se la verifica è soddisfatta allora Alice e Bob procedono con le tecniche della correzione degli errori e dell'amplificazione privata per creare un certo numero di chiavi segrete condivise. In caso contrario significa che Eve ha alterato l'informazione, quindi devono fermare il protocollo e ricominciare dall'inizio la comunicazione in un canale più sicuro.