Quantum Computing e Crittografia

(di Alessandro Fiori)
21/08/19

L’Essere Umano, per sua natura, ha necessità di evolversi e comunicare.
La Comunicazione è uno degli aspetti fondamentali nella crescita di un essere umano e questo si riflette in ogni sua attività. Ogni attività umana necessita di relazioni che vengono mantenute tramite il Linguaggio, di qualunque tipo esso sia, con ogni mezzo e forma, a prescindere dall’attività stessa o dal mezzo di comunicazione impiegato. I mezzi di comunicazione utilizzati dall’uomo si sono evoluti nel tempo diventando sempre più complessi, fino ad arrivare ai giorni nostri, permettendo all’uomo di comunicare a grandi distanze e in tempo reale, grazie alla tecnologia.

La segretezza della comunicazione è sempre stata un fattore fondamentale, necessaria per il buon svolgimento delle attività umane. Per garantire la segretezza nasce la Crittografia, ovvero la Scienza che studia i metodi per garantire che un messaggio possa essere letto esclusivamente dal destinatario autorizzato. Questa esigenza, in realtà, era già sentita ai tempi degli Antichi Romani, quando Giulio Cesare, per comunicare gli ordini alle proprie truppe, utilizzava il proprio cifrario oggi conosciuto come il “Cifrario di Cesare”.

Un cifrario è uno strumento creato appositamente per “cifrare” e “decifrare” messaggi attraverso l’uso di un semplice algoritmo. Il Cifrario di Cesare, per fare appunto un esempio, si può utilizzare per cifrare un testo “spostando” le lettere da cifrare di tre posizioni a destra, in questo modo:La parola “CIAO”, diventa “FLDR” (in apertura un’immagine per spiegare lo “spostamento”).

Effettuando lo spostamento a ritroso di tre posizioni, il testo incomprensibile “FLDR” torna ad essere “CIAO”.
Ovviamente questo algoritmo ad oggi risulta essere molto “vulnerabile” e facilmente decifrabile, con un po’ di pazienza anche a mano, da semplici computer.

Ma soffermiamoci un secondo sul concetto di “algoritmo vulnerabile”. È facile intuire come, anche dall’esempio riportato, la Crittografia ha giocato un ruolo importante in varie Campagne Militari, in ogni Epoca.

Ovviamente due Eserciti in guerra cercano di carpire informazioni l’un l’altro, sia per poter prevedere ed annientare le strategie nemiche prima della battaglia, sia per scoprirne i movimenti durante la stessa. Per sopperire a questa esigenza è nata la “crittoanalisi”, ovvero l’insieme dei metodi e gli studi per cercare di decifrare il messaggio senza conoscerne la “chiave”.

Sempre facendo riferimento al Cifrario di Cesare, la “chiave” utilizzata da Giulio Cesare era tre (unitamente al senso orario o antiorario), ovvero il numero di posizioni per lo “spostamento” delle lettere dell’alfabeto. 
Una chiave diversa restituisce, quindi, come risultato un testo diverso, questo vuol dire che il mittente e il destinatario devono avere la stessa chiave, l’uno per cifrare e spedire il messaggio, l’altro per decifrarlo e leggerlo.
Da ciò deriva uno dei problemi principali nell’uso di questo tipo di algoritmi (crittografia simmetrica): la distribuzione della chiave.

Forse l’esempio più famoso di crittoanalisi cui possiamo fare riferimento si ebbe durante la seconda guerra mondiale, quando Alan Turing realizzò la macchina “Colossus”, lontanissima parente dei moderni computer, designata a decifrare i messaggi cifrati con la macchina Enigma (in realtà il suo perfezionamento, ovvero la Lorenz SZ40 e SZ42).

È facile intuire che tramite la Crittoanalisi, se un Esercito riesce a decifrare le comunicazioni del nemico, può ottenere un enorme e fondamentale vantaggio.

In pratica, nei casi estremi, il nemico non può effettuare più nessuna mossa né approntare una strategia in segretezza. Questa possibilità di “rompere” gli algoritmi utilizzati per garantire la segretezza del nemico, ha portato ad una inesorabile rincorsa tra i matematici, con chi ha cercato di creare algoritmi sempre più complessi e chi ha cercato di decifrarli. In quel periodo, infatti, nacque l’unico cifrario perfetto, ovvero l’unico cifrario di cui è stata matematicamente provata la sicurezza e l’inviolabilità, il One Time Pad.

Il Cifrario di Vernam, chiamato anche “One Time Pad” (taccuino monouso), è un particolare algoritmo di cifratura, la cui sicurezza è stata matematicamente provata da Claude Shannon, ingegnere americano considerato il padre della Teoria dell’Informazione, nel 1949.

La sicurezza del One Time Pad si verifica se, e solo se:
- La chiave è lunga almeno quanto il testo da cifrare
- La chiave è “realmente randomica”, ovvero non sono ammessi programmi che generano numeri. Questo perché i software, per generare una sequenza di numeri casuali, utilizzano degli algoritmi che partono da “un punto di partenza”.

Questo punto di partenza (che può essere un numero ad esempio) fa si che la serie di numeri generati non sia realmente casuale. Per un aggressore, potrebbe essere possibile reperire il “punto di partenza” e con lo stesso algoritmo generare nuovamente tutti i numeri “casuali” generati in precedenza.Per questo motivo, i software di generazione di numeri vengono definiti come “pseudo-casuali” o “pseudo-random”.
- La chiave DEVE essere utilizzata una volta sola.
Questo fa scaturire dei problemi, in quanto è molto difficile scambiare messaggi molto lunghi, e una volta terminati i “pad”, deve essere rigenerata una chiave sempre realmente randomica, e scambiata con il destinatario.

Per sopperire a queste limitazioni, è stata ideata la “Crittografia Asimmetrica”, utilizzando dei cifrari “a chiave pubblica”.

Questo particolare tipo di algoritmi, largamente utilizzato per il web e le comunicazioni in tempo reale, come le chat, prevede che ad un individuo siano associate due chiavi, una strettamente personale (privata) ed una da condividere con tutti (pubblica). Un interlocutore può cifrare un messaggio con la chiave pubblica del destinatario, ma solo il destinatario potrà leggere il messaggio, decifrandolo grazie alla propria “chiave privata”. Dal momento che tutti i cifrari a chiave pubblica basano la propria sicurezza su funzioni matematiche complesse, per decifrare un messaggio senza conoscerne la chiave è richiesta una potenza di calcolo enormemente superiore alle macchine attualmente in commercio, rivelandosi praticamente impossibile, seppur teoricamente fattibile grazie ad un attacco brute-force (ovvero provare tutte le combinazioni possibili) oppure utilizzando una rete di computer che insieme cercano di forzare l’algoritmo tramite le vulnerabilità matematiche dello stesso.

Ad oggi la Crittografia è presente praticamente in ogni momento della nostra vita, basti pensare ad esempio ai siti web che mettono a disposizione il protocollo “HTTPS”, ovvero un sistema di interscambio di dati tra il nostro browser, il programma che usiamo per navigare in Internet, e il sito web visitato.

Un altro esempio è la Cifratura end-to-end (ad esempio la cifratura di WhatsApp), ovvero un sistema di interscambio che permette solo agli interlocutori interessati di leggere il contenuto della comunicazione.Con la crittografia end-to-end neanche il server di Whatsapp stesso può leggere il contenuto dei messaggi scambiati. È comunque doveroso ricordare come l’applicazione Whatsapp e altre simili sono a codice chiuso, di conseguenza non è dato sapere al pubblico le effettive operazioni che l’applicazione fa.

È bene ricordare infatti, che anche se l’applicazione è pubblicamente riconosciuta come affidabile, non è un mistero che alcuni governi possano chiedere alle aziende interessate l’implementazione di backdoor (letteralmente “porte di servizio” per poter leggere i messaggi) o protocolli come il “ghost protocol” (ovvero un “interlocutore fantasma”, in questo caso il governo, che facendo parte della conversazione, potrebbe leggere i messaggi senza sforzo).
È facile constatare che la corsa alle tecnologie non ha freni e ciò può far pensare che andando avanti nel tempo tali cifrari possano essere “rotti” grazie a potenze di calcolo e processori sempre più potenti, ecco perché si corre ai ripari aggiornando gli algoritmi o creandone di nuovi, sempre più resistenti e sicuri.

Questo “rincorrersi”, però, potrebbe subìre un grosso mutamento, grazie ad una nuova tecnologia che sta nascendo in questi anni, che potrebbe davvero cambiare il mondo della comunicazione e della crittografia, ovvero il “Quantum Computing”.

Il Computer Quantistico è un nuovo tipo di elaboratore, il quale sfrutta i principi della Meccanica Quantistica per poter effettuare delle operazioni ed elaborare informazioni. Per poter funzionare, infatti, il Computer Quantistico non utilizza il bit ordinario, bensì il “qubit” o “quantum bit”. Il qubit si differenzia dal bit “classico” in quanto non è un semplice “0” o “1”, bensì, codifica l’informazione in base allo stato dell’atomo che si sta osservando.

Per fare un esempio, il bit ordinario può essere rappresentato dal lancio della moneta nel classico “testa o croce”.
Il risultato del lancio rappresenta “0” o “1”, andando a codificare i bit.

Ora immaginate di prendere la stessa moneta, e di farla ruotare su se stessa, e immaginate che la moneta non si fermi mai. La moneta avrà due stati, che possono essere rappresentati come informazione binaria “0” o “1”. La stessa moneta può trovarsi, però, in “sovrapposizione di stati”, ovvero gli stati “0” e “1” possono combinarsi tra loro per dar vita ad un certo numero di nuovi stati.
Questa combinazione, ovvero il principio di sovrapposizione degli stati, permette di ampliare la codifica delle informazioni, permettendo di ampliare esponenzialmente le possibilità di calcolo.

Il principio di sovrapposizione è il primo postulato della meccanica quantistica. Esso afferma che due o più “stati quantici” possono essere sommati (sovrapposti), generando uno stato quantico valido. Ogni stato, inoltre, è la somma (sovrapposizione) di più stati quantici.

Uno “stato quantistico”, o “stato quantico” è la rappresentazione matematica di un sistema fisico, ovvero una “porzione di universo” o un fenomeno, oggetto di studio.

Basandosi sui principi della Meccanica Quantistica, sono stati costruiti dei sistemi molto complessi, denominati appunto “Computer Quantistici”.

La prima realizzazione di questo sistema risale al 2001, quando IBM crea il primo computer quantistico a 7 qubit.

Nel 2007, l’azienda “D-Wave Systems” realizza il primo elaboratore quantistico a 16 qubit.

Sempre D-Wave Systems, realizza nel 2011 il “D-Wave One”, ovvero un elaboratore a 128 qubit, il primo elaboratore quantistico ad essere commercializzato.

Nel 2013 viene prodotto il “D-Wave Two”, elaboratore a 512 qubit.

Tra il 2016 e il 2019, IBM mette a disposizione la cosiddetta “Quantum Experience” ovvero una piattaforma in Cloud, che mette a disposizione processori e network quantistici.

Le due piattaforme (D-Wave e IBM) sono molto diverse tra di loro.

In dettaglio, il D-Wave Two è formato da circuiti di superconduttori.

Ogni superconduttore rappresenta un qubit.

Il sistema è mantenuto alla temperatura di -271 gradi centigradi.

All’innalzamento della temperatura, gli elettroni possono ruotare su se stessi, con uguale probabilità, sia in senso orario che antiorario, generando così la sovrapposizione di stati, necessaria al funzionamento del computer quantistico.

IBM Quantum Experience, invece, presenta un’infrastruttura connessa in Cloud la quale permette di poter programmare fino a 5 qubit ed eseguire il proprio software quantistico su di un processore quantistico, o su di un simulatore collegato in Cloud. Il Quantum Experience permette la creazione di software quantistici fino a 5 righe di “codice”, una per qubit.

È facile notare come sia iniziata una “corsa al quantistico”, ma perché questo?
Il motivo principale di tale corsa al “quantum bit”, è da ricercarsi nell’ambito bellico, ovvero la “conquista” dell’informazione del nemico. Chiunque abbia un interesse bellico cerca di “rompere” i sistemi crittografici del nemico e , l’enorme potenza di calcolo del computer quantistico sembra promettere miracoli. Come ogni tecnologia, però, ogni strumento può essere utilizzato sia da chi attacca, sia da chi difende.

Ma torniamo per un attimo al Cifrario Perfetto, il One Time Pad.
Questo Cifrario non è utilizzato in ambito comune, in quanto la distribuzione della chiave è un problema non facilmente risolvibile in una normale rete informatica. Si è passati, quindi, a studiare tramite gli stessi principi della meccanica quantistica la possibilità di utilizzare il One Time Pad in un modo mai visto prima.

Due ricercatori e docenti universitari (Geraldo A. Barbosa - University of Southern California e Jeroen van de Graaf - Universite de ´Montreal) nel 2015 hanno presentato un sistema di creazione e distribuzione della chiave del One Time Pad, sfruttando il “rumore” presente in un cavo in fibra ottica al passaggio del fotone.

Il rumore è un’interferenza, una lieve alterazione, rispetto al segnale originario.
Il rumore è perfettamente casuale per cui può essere utilizzato per generare un numero illimitato di chiavi e anche per distribuirle facilmente, risolvendo i problemi del One Time Pad finora presentati.

Sempre per l’utilizzo del One Time Pad è stata ideata la cosiddetta “Quantum Key Distribution” o QKD. Tramite la Quantum Key Distribution, è possibile, tramite i principi della meccanica quantistica, generare chiavi e distribuirle in maniera sicura, questo perché una qualsiasi misurazione su di un sistema quantistico ne altera lo stato (principio di indeterminazione), di conseguenza gli interlocutori scoprirebbero subito che qualcuno sta cercando di captare la chiave distribuita (e ovviamente, essendo la misurazione alterata, la chiave “catturata” non sarebbe quella corretta).

Per quanto riguarda gli utilizzi in ambito militare, gli scenari sono in costante evoluzione.
Se nel 2016 la Cina ha lanciato in orbita il primo satellite, il Micius, per comunicazioni quantistiche, in tutto il mondo si stanno studiando le possibilità di questi nuovi sistemi.

In dettaglio il satellite Micius (nome derivante da un antico filosofo cinese) è il primo satellite sperimentale facente parte di un progetto molto più grande di nome “QUESS” (Quantum Experiments at Space Scale), un progetto internazionale di ricerca nel campo della fisica quantistica. Gli obiettivi del progetto sono quelli di portare entro il 2020 una rete quantistica cifrata tra Asia e Europa, ed entro il 2030 di estendere tale network a livello globale.

Il progetto QUESS mira a creare una rete non solo “crittograficamente” sicura, bensì anche impossibile da intercettare e ciò è possibile grazie ad un altro principio della fisica quantistica non presente nella fisica classica, detto “entanglement”.

L’entanglement quantistico è un fenomeno che si verifica in particolari condizioni in cui uno “stato” quantistico non può essere studiato o descritto singolarmente, ma solo come “sovrapposizione di stati”.
Da questo ne consegue che la misurazione di uno stato determina simultaneamente anche il valore degli altri.
Un gruppo di ricercatori di Glasgow è riuscito a fotografare l’entanglement tra due fotoni (immagine).

Grazie a questo speciale fenomeno, il progetto QUESS è riuscito ad eseguire grazie al satellite Micius il primo teletrasporto di fotoni. Attualmente il progetto QUESS è in fase di sviluppo, e nonostante i limiti (la rete non può essere utilizzata con la presenza di luce solare), nel 2016 è stata effettuata la prima video-chiamata sulla rete quantistica. Ottenere, quindi, la supremazia in questo ambito potrebbe comportare un vantaggio enorme sui competitor.

Data la potenza di calcolo dei computer quantistici e il rischio effettivo che i cifrari attualmente in uso non possano resistere, i crittografi stanno studiando degli algoritmi, appositamente creati per resistere a questi elaboratori estremamente potenti. Da questo studio, nasce il termine “post-quantum cryptography”.

Ci sono, tuttavia, degli algoritmi che già possono resistere ad un attacco di un computer quantistico, se utilizzati con una chiave sufficentemente lunga.

Uno di questi è l’AES, ovvero l’Advanced Encryption Standard, il quale è utilizzato dal Governo Americano per proteggere i Documenti classificati come “top secret”, utilizzabile da chiunque ed incluso in numerosi Framework, ovvero dei pacchetti, per sviluppatori, per creare software.

Le varie aziende, come Microsoft e IBM, stanno rilasciando al grande pubblico anche dei simulatori del computer quantistico, per poter imparare a programmare su questo tipo di macchine.

Microsoft ha rilasciato anche un linguaggio apposito, chiamato “Q#” (Q-sharp) e degli esercizi, chiamati “Katas”, per imparare ad utilizzare questa nuova tecnologia.

E voi, siete pronti per il futuro? …perché, in fondo in fondo, è già qui!

Per approfondire:

https://www.dwavesys.com/home
https://www.research.ibm.com/ibm-q/
https://docs.microsoft.com/en-us/quantum/language/?view=qsharp-preview
https://www.difesaonline.it/evidenza/cyber/difendersi-dai-computer-quanti...
https://www.difesaonline.it/evidenza/eventi/enigma-la-macchina-cifrante-c...ò-gli-eventi-della-2agm
https://arxiv.org/abs/1406.1543
https://en.wikipedia.org/wiki/Q_Sharp
https://cloudblogs.microsoft.com/quantum/2018/07/23/learn-at-your-own-pa... 
https://www.difesaonline.it/recensioni/andrew-hodges-alan-turing-storia-d...