# Crittografia quantistica

La crittografia quantistica consiste in un approccio alla crittografia che utilizza peculiari proprietà della meccanica quantistica nella fase dello scambio della chiave per evitare che questa possa essere intercettata da un attaccante senza che le due parti in gioco se ne accorgano. Si utilizza questo principio per realizzare un cifrario perfetto del tipo One Time Pad, senza il problema di dover scambiare la chiave (anche se lunga quanto il messaggio) necessariamente su un canale sicuro. La prima rete a crittografia quantistica funzionante è stata il DARPA Quantum Network.
L'enorme rivoluzione introdotta da questa tecnica sembra mettere la parola fine alla perpetua lotta tra crittografia e crittanalisi, che da sempre si rincorrono, l'una per creare cifrari sempre più complessi, l'altra per sviluppare nuove tecniche atte a decriptarli. Finora l'unico cifrario perfetto (di cui quindi è stata dimostrata matematicamente l'indecifrabilità) realizzato è quello di Vernam. Il grosso problema di questa tecnica è legato però allo scambio della chiave tra l'emettitore e il ricevente, in quanto questa deve essere lunga quanto il messaggio, casuale (random), deve rimanere segreta e può essere utilizzata solo una volta; la chiave dovrà quindi essere scambiata su un canale sicuro.
È ovvio quindi che se è possibile disporre di un canale sicuro per scambiare una chiave lunga quanto il messaggio lo stesso canale sarebbe da utilizzare per scambiare il messaggio stesso. Quest'aspetto ha reso di fatto la tecnica difficilmente realizzabile su vasta scala. L'avvento della crittografia quantistica risolve definitivamente quest'aspetto rendendo possibile cifrare messaggi in maniera tale che nessuno possa decifrarli.

## Storia

Nel 2023 un gruppo di ricerca dell'Università di York ha realizzato una comunicazione con la crittografia quantistica a una distanza di 224 km all'interno di una rete sottomarina in fibra ottica ad alta efficienza.

## Il principio di indeterminazione di Heisenberg e la crittografia quantistica

Un principio chiave alla base della crittografia quantistica è il principio di indeterminazione di Heisenberg. Qui non è importante conoscerne i dettagli, ma è importante mettere in rilievo alcune caratteristiche delle particelle elementari che ne derivano. Un'interpretazione del principio di Heisenberg sostiene che non è possibile conoscere, simultaneamente e con precisione assoluta, alcune particolari coppie di caratteristiche di un oggetto quantistico, come ad esempio la posizione e la quantità di moto: se si cerca di misurare esattamente la posizione di un elettrone, si perde la possibilità di verificarne la quantità di moto. Se invece si misura con precisione assoluta la quantità di moto, si perdono inevitabilmente informazioni sul luogo in cui l'elettrone si trova. I fotoni, oggetti quantistici, sono quindi soggetti al principio di indeterminazione di Heisenberg.
Un appunto a tal riguardo va fatto per chiarire che queste sono limitazioni anche in linea di principio e quindi sussistono, per quanto possa essere buono l'apparato di misura. Secondo la meccanica quantistica, per quante tecniche nuove e più precise si possano sviluppare per eseguire queste misure, il limite non è concettualmente eliminabile.

### Applicazione

Questa caratteristica, propria di ogni sistema su scala quantistica, può essere utilizzata per valutare se un sistema di cui si conosce lo stato è stato misurato (quindi osservato) da qualcuno. Il sistema quantistico rappresenta quindi la chiave crittografica, mentre l'osservatore sarebbe un eventuale attaccante che utilizza un attacco del tipo man in the middle. Infatti in questo tipo di attacco crittoanalitico, l'attaccante s'inserisce tra l'emettitore e il ricevitore del messaggio intercettando lo scambio della chiave e riuscendo quindi successivamente a decodificare ogni messaggio codificato con essa. Realizzando però una "chiave quantistica" (cioè realizzata da elementi che rispondono alle leggi della meccanica quantistica come i fotoni) ciò risulterebbe impossibile, perché l'attaccante modificherebbe inevitabilmente la chiave, oltretutto in maniera casuale quindi incontrollabile e sarebbe certamente rilevato. Entrando un po' più nel dettaglio, il problema da parte dei due interlocutori, che da questo momento chiameremo Alice (A) e Bob (B), è quello di riuscire a creare una chiave quantistica comune ad entrambi, realizzata in un sistema binario. L'aspetto più teorico della creazione di una chiave e della sua trasmissione è stato risolto da un protocollo che verrà qui analizzato.

## Protocollo BB84

Un protocollo che permette lo scambio di una chiave tra due utenti e garantisce che questa non possa essere intercettata da terzi senza che i due se ne accorgano è chiamato BB84, dal nome dei suoi ideatori, Bennet e Brassard, che lo realizzarono nel 1984.
Immaginiamo che Alice e Bob dispongano di un canale quantistico e di uno classico (quindi passibile di intercettazione) su cui scambiare dati. Sul canale quantistico Alice invierà fotoni con una determinata polarizzazione scelta a caso tra quattro possibili, ad esempio: $0^{\circ },45^{\circ },90^{\circ },135^{\circ }$.
Queste orientazioni determinano rispettivamente le basi: $+$ e $\times$ non ortogonali tra di loro. Per ogni base, un'orientazione è interpretata come 0 e l'altra come 1 (vedi Figura 1). Bob, ricevuti i fotoni dovrà effettuare una misura su di essi per scoprire con che polarizzazione sono stati spediti.
Sarà quindi costretto a scegliere fra due diverse misure che, per il principio di indeterminazione di Heisenberg, non sono compatibili: con la prima può scoprire la polarizzazione dei fotoni se questi sono nella base $+$, con l'altra misura può scoprire la polarizzazione se i fotoni sono nella base $\times$, in nessun caso è possibile ottenere queste due misure contemporaneamente. Se Bob dovesse scegliere la misura sbagliata rispetto alla base usata da Alice, il risultato della misura sarà casuale, ovvero 0 oppure 1 con probabilità del 50%. Il punto cruciale è che anche un eventuale attaccante si troverebbe nella stessa situazione di Bob: infatti quando la spia intercetta i fotoni dovrà anch'essa scegliere tra le due misure possibili e se sceglie quella sbagliata ottiene un risultato casuale.
Inviata una quantità sufficiente di fotoni, Bob invierà ad Alice pubblicamente le basi che ha utilizzato per le misurazioni, ma non cosa ha misurato ed Alice renderà note le basi che ha utilizzato per polarizzare i fotoni, ma non la polarizzazione degli stessi. I due potranno così scartare tutti i fotoni per i quali Bob ha scelto la base sbagliata. A questo punto Alice e Bob possederanno una chiave segreta comune ad entrambi valida per cifrare il messaggio. Per essere sicuri che la spia non abbia intercettato la chiave basta notare che se questa avesse in qualche modo intercettato i fotoni nel loro tragitto tra Alice e Bob, per il principio d'indeterminazione, ne avrà necessariamente modificato le caratteristiche introducendo quindi degli errori nella misura di Bob anche nei bit che dovrebbero risultare corretti. Quindi, se dopo aver scartato i bit, la chiave di Bob risulta diversa da quella di Alice, vuol dire che la spia ha intercettato i fotoni e che la chiave non è sicura.

## Il protocollo di Ekert

Un secondo protocollo proposto da Artur Ekert nel 1991, nato per consentire lo scambio di una chiave crittografica in modo sicuro tra due utenti, si basa sul principio fisico dell'entanglement quantistico. Questo algoritmo utilizza coppie di fotoni appunto entangled, cioè fotoni con particolari caratteristiche di correlazione. Supponiamo di avere una sorgente che emette con regolarità, ad esempio ogni secondo, una coppia di fotoni entangled che si propaghino in versi opposti, uno verso il mittente (Alice) e l'altro verso il destinatario (Bob). Supponiamo inoltre che lo stato della coppia dei fotoni sia dato dall'equazione seguente: $\left|\psi \right\rangle ={\frac {1}{\sqrt {2}}}[\left|1,V\right\rangle \left|2,V\right\rangle +\left|1,O\right\rangle \left|2,O\right\rangle ]={\frac {1}{\sqrt {2}}}[\left|1,45\right\rangle \left|2,45\right\rangle +\left|1,135\right\rangle \left|2,135\right\rangle ]$
Un sistema così preparato permette di ottenere dei fotoni nello stesso stato di spin cioè, se il primo ha una certa orientazione di spin anche il secondo dovrà avere necessariamente la stessa orientazione. Alice e Bob si dovranno essere precedentemente accordati di eseguire misure di polarizzazione lungo le due direzioni prescelte (appunto 0° e 45°), ma non sulla successione delle misure da eseguire. Ciascuno dei due sceglierà quindi in maniera perfettamente casuale la direzione lungo cui eseguire ciascuna misura individuale. Si può notare che la scelta delle due direzioni lungo cui verranno eseguite le misure può essere successivamente resa tranquillamente pubblica (quest'algoritmo infatti richiede in molte parti l'utilizzo di comunicazioni non riservate).
| Alice 1     0 1   0     0   1   0 1   0   1     0 0   1     0 1   1   0   Bob   0 1   1     1   0   1 1     0 0     1   0   0 1     0 1   1     0 | Alice 1     0 1   0     0   1   0 1   0   1     0 0   1     0 1   1   0   Bob   0 1   1     1   0   1 1     0 0     1   0   0 1     0 1   1     0 | Alice 1     0   1 0     0 1     0 1   1   Bob 1     0   1 0     0 1     0 1   1 |
| A | B | C |
Tabella 1 Le operazioni necessarie ad Alice e Bob per poter ottenere una successione di bit genuinamente casuale e comune ad entrambi. Nella Tabella A vengono riportate le misure effettuate da Alice e Bob, con i relativi esiti. Il simbolo in testa alla tabella sta ad indicare che tipo di misura viene eseguita (verticale oppure a 45°). Nella tabella B vengono invece evidenziati in grigio i casi in cui Alice e Bob ottengano risultati diversi. Eliminando dunque questi casi si ottengono i risultati in tabella C. :
Per convenzione Alice e Bob si sono inoltre accordati di scrivere il numero 0 ogni volta in cui il fotone non supera il test, e il numero 1 ogni volta in cui esso lo supera. Entrambi ovviamente dovranno annotare per ciascuna misura il tipo di test eseguito (verticale oppure a 45°). Per maggiore chiarezza riportiamo la situazione in tabella 1. Alla fine di questo processo (quindi dopo aver eseguito molte misure) ognuno dei due disporrà di una tabella simile a quella mostrata in tabella 1A, in cui vengono evidenziati i fotoni che hanno superato il test e quelli che l'hanno fallito. È importante qui richiamare alcune caratteristiche di questo processo:
* i risultati delle misure sono genuinamente casuali, con probabilità 0,5 per ciascuna possibilità;
* nel caso in cui una misura venga eseguita nella stessa direzione da Alice e Bob i due esiti coincideranno inevitabilmente.
A questo punto del processo sia Alice che Bob potranno annunciare pubblicamente la direzione che hanno scelto per eseguire ciascuna misura. La spia eventualmente presente verrà quindi a sapere in questo momento come si sono alternate le scelte circa le direzioni di polarizzazione che hanno caratterizzato le misure.
A questo punto si procede ad un'operazione molto importante: Alice e Bob elimineranno dall'elenco delle loro misure tutti i casi in cui risultano aver effettuato misure lungo direzioni diverse l'uno dall'altro, mantenendo invece tutti i rimanenti risultati cioè quelli che coincidono, nel loro ordine (Tabella 1B). Mediamente Alice e Bob otterranno delle stringhe di 0 e 1 lunghe circa la metà di quelle originali (Tabella 1C), come si può calcolare facilmente: dette r ed s le due direzioni, i casi equiprobabili sono quattro: entrambi hanno scelto r, entrambi hanno scelto s, Alice ha scelto r e Bob s, Alice ha scelto s e Bob r.
A questo punto sembrerebbe che il problema di ottenere delle successioni casuali e identiche di cifre in un sistema di numerazione binaria sia risolto. Si rischierebbe però così di trascurare un importante particolare: potrebbe essere possibile che un'ipotetica spia sia venuta in possesso della stringa di cui Alice e Bob dispongono, senza che questi ne siano a conoscenza. Procediamo quindi ad un ulteriore passo, in cui entra finalmente l'aspetto quantomeccanico del processo.
Alice e Bob annunciano pubblicamente alcuni dei risultati che hanno ottenuto, ad esempio i casi dispari delle combinazioni in cui questi risultano identici (Tabella 2B). Questo passaggio ha l'unico scopo di verificare che i risultati resi pubblici siano coincidenti per entrambi; essendo stati resi noti non potranno essere utilizzati, e dovranno pertanto essere rigettati, ottenendo la Tabella 2C. Il punto concettualmente rilevante di quest'ultima operazione è dato dal fatto che, effettuando una misurazione sul sistema quantistico mirata a conoscere la stringa degli esiti o truccarne la sorgente, si ha inevitabilmente una certa probabilità di distruggere le correlazioni perfette degli esiti ottenuti da Alice e Bob.
Si può dimostrare che la probabilità che questo passi inosservato è pari a 3/4 elevato ad una potenza pari al numero di bit scartati nell'ultimo passaggio. Dimostrare il caso generale sarebbe troppo lungo da trattare in questo contesto, ma possiamo vedere brevemente il caso in cui la spia cerchi di intercettare i risultati (ad esempio) di Bob, ponendo un analizzatore di polarizzazione in una delle due direzioni. Basterà considerare solo i casi in cui Alice e Bob eseguano misure nella stessa direzione, in quanto gli altri casi come abbiamo visto, verranno scartati.
| Alice 1     0   1 0     0 1     0 1   1   Bob 1     0   1 0     0 1     0 1   1 | Alice 1     0   1 0     0 1     0 1   1   Bob 1     0   1 0     0 1     0 1   1 | Alice   0 0   1   1   Bob   0 0   1   1 |
| A | B | C |
Tabella 2 Il procedimento che consente ad Alice e Bob di essere sicuri che nessuna spia possa aver letto la chiave intercettando i fotoni. Nella colonna A si riprende la chiave ottenuta nella colonna C della tabella precedente. Vengono enunciati pubblicamente tutti gli esiti dispari della chiave (in grigio) e confrontati per verificare che siano uguali. Questi dovranno poi essere rigettati per ottenere quindi una stringa di lunghezza ridotta (colonna C) che corrisponde alla chiave finale. :
Se il fotone passa il test della spia, sappiamo dalla teoria che un attimo dopo entrambi i fotoni saranno polarizzati nella direzione scelta dalla spia stessa (in quanto entangled). Avremmo quindi due possibilità:
* sia Alice che Bob scelgono la direzione della spia, quindi i loro risultati coincideranno,
* Alice oppure Bob scelgono l'altra direzione.
Supponiamo ad esempio che la spia abbia effettuato una misura di polarizzazione verticale e che i nostri protagonisti scelgano invece una polarizzazione a 45°. La probabilità che possano comunque ottenere risultati identici risulta essere pari ad 1/2, in quanto si hanno quattro risultati tutti ugualmente probabili: entrambi i fotoni passano, entrambi vengono assorbiti, passa quello di destra e quello di sinistra no oppure viceversa. Avremmo quindi che nella metà dei casi l'intervento della spia non avrà alcun effetto, mentre nella metà dei rimanenti si avranno risultati identici nelle misure di Alice e Bob, ottenendo dunque che nei 3/4 dei casi Alice e Bob non si accorgeranno dell'intervento della spia.
Ma se Alice e Bob enunciano i risultati di N misure la probabilità che non si presenti alcun esito discorde risulta essere pari alla potenza N-sima di 3/4. Ad esempio, se Alice e Bob enunciano i risultati di 100 bit la probabilità che non si presenti alcun esito discorde nonostante vi sia un terzo osservatore tra i due è di $\left({\frac {3}{4}}\right)^{100}$ pari a circa $10^{-13}$; cioè la probabilità che 100 esiti risultino coincidenti anche con la presenza di una spia, può verificarsi solo una volta ogni diecimila miliardi di casi quindi, se ciò avviene i due possono essere sicuri al di là di ogni ragionevole dubbio che non vi sia una spia in ascolto. A questo punto il grosso problema dello scambio delle chiavi è stato risolto e si può procedere a realizzare un cifrario di Vernam, che essendo un cifrario perfetto risulta essere assolutamente inviolabile se realizzato correttamente.

## La realizzazione pratica di un sistema crittografico quantistico

A questo punto si potrebbe pensare di aver tutto per poter realizzare un sistema crittografico perfetto. Questo è vero ma solo in parte, in quanto oltre ai limiti teorici (che sono stati risolti) bisogna ora risolvere i limiti pratici relativi all'implementazione di un sistema crittografico di questo tipo. Lo scoglio principale risiede negli errori sperimentali sempre presenti in una misura reale e che possono causare la perdita o l'errata lettura dei fotoni. Risulta dunque impossibile distinguere i casi in cui l'errore introdotto sia dovuto ad un "origliamento" o ad un errore sperimentale.
Per risolvere il problema si può ricorrere ad un metodo proposto da Bennett, Bessette, Brassard, Salvail e Smolin in un articolo pubblicato nel settembre del 1991 sul Journal of Cryptology. Questa tecnica, troppo complessa per essere descritta qui, permette di eliminare gli errori nella chiave quantistica partendo dal caso limite di immaginare che siano stati causati tutti dalla presenza della spia, e permette inoltre di stimare la percentuale degli errori trovati. Se il numero è inferiore all'11% si passa alla fase successiva chiamata "Privacy Amplification" in cui la chiave è modificata secondo una procedura tale da annullare l'informazione che la spia può aver ottenuto intercettando in parte la chiave.
La prima trasmissione a rispettare i requisiti per la cifratura quantistica sicura è stata realizzata in Austria il 21 aprile 2004; nel giugno dello stesso anno, a Cambridge, è stato implementato il DARPA Quantum Network, la prima rete con più di due nodi a crittografia quantistica.