Una panoramica sul mondo della Sicurezza Informatica, del Networking, della Virtualizzazione e non solo. Blog particolarmente indicato per i reparti IT che comunque alterna articoli scritti per specialisti con articoli formulati con linguaggio semplice e comprensibile a tutti.

Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione, anche parziale, è vietata salvo autorizzazione.

venerdì 21 giugno 2013

Crittografia quantistica e algoritmi matematicamente sicuri

Partiamo da un presupposto: ad oggi c'è un solo protocollo matematicamente sicuro, tutti gli altri si basano su problemi matematici irrisolti o la cui elaborazione è estremamente onerosa in termini di risorse, richiedendo un tempo di elaborazione irragionevole o simile a quello di un Brute Force Attack.
Detto questo, il protocollo matematicamente sicuro si chiama OTP (One Time Pad), ed è ormai quasi non più utilizzato se non per applicazioni specifiche. Ma come?? C'è un motivo.

Come funziona OTP

OTP è un algoritmo molto semplice.
Data una stringa da cifrare, data una chiave di pari valore, si effettua uno XOR. Il risultato derivante sarà una stringa apparentemente randomica, reversibile solo mediante la medesima chiave.

Lo XOR prevede che: 
1 XOR 1 restituisca 0
1 XOR 0 restituisca 1
0 XOR 1 restituisca 1
0 XOR 0 restituisca 0


Facciamo quindi un esempio:

Il dato è :                           1101101000100110
La chiave è :                      0111001001001011
La stringa risultante sarà:   1010100001101101

Quest'ultima è il dato che viaggia tra i due interlocutori, ossia il messaggio cifrato. Apparentemente è randomico e non reversibile se non con l'apposita chiave.

Proviamo a simulare cosa accade, quindi, quando il dato arriva al destinatario in possesso della chiave:

Stringa crittografata:    1010100001101101
La chiave:                    0111001001001011
Il dato originario:          1101101000100110


Proprio per via della sua semplicità e della sua "robustezza matematica", questo è l'unico algoritmo, ad oggi, ad essere stato dichiarato "matematicamente sicuro".
Perchè quindi non viene quasi più utilizzato?

Semplicemente perchè:
  1. La chiave deve essere usata una sola volta, altrimenti diventa "relativamente facile" stabilire correlazioni tra più dati e la stringa crittografata, quindi, diviene sempre meno apparentemente randomica (ci sono casi storici e documentati di violazioni dovute, appunto, all'aver utilizzato di frequente la stessa chiave per più dati)
  2. I due interlocutori devono essere in possesso della chiave; oltretutto tale algoritmo non prevede meccanismi di scambio chiave (è proprio durante lo scambio delle chiavi che si verifica un numero significativo di incidenti di sicurezza)
  3. E' necessario fare molta attenzione alla randomicità della chiave. Il concetto di casualità informatica è molto relativo ed è uno dei nodi più complessi del problema (seed ricorrenti, pseudocasualità, etc..), per rendere sicuro OTP dobbiamo essere assolutamente certi della casualità della chiave.
Salvo applicazioni molto rare, quindi, risulta estremamente scomodo (o persino spesso insicuro) utilizzare l'algoritmo OTP. 

Cosa centra la crittografia quantistica?

La crittografia quantistica o QKD (Quantum Key Distribution) interviene esclusivamente nello scambio delle chiavi (il dato poi viaggia secondo mezzi tradizionali) e, grazie alle proprietà della meccanica quantistica (che non approfondiremo in questo articolo) abbiamo delle caratteristiche estremamente importanti ed alcune assolutamente uniche ed irraggiungibili mediante soluzioni attualmente in uso:
  1. Le particelle elementari possono essere rilevate tramite metodi indiretti ed in ogni caso alterano inevitabilmente il comportamento delle stesse. Da questo ne deriva che qualsiasi attacco di tipo Man-In-The-Middle altererà inevitabilmente lo scambio delle chiavi, portando a conoscenza il mittente ed il destinatario di un tentativo di eavesdropping.
  2. La meccanica quantistica genera e ci consente di avere un livello di casualità estremamente elevato, non è possibile, infatti, predire matematicamente la polarizzazione dei fotoni generati.
Questi due aspetti, uniti a quanto descritto nel protocollo OTP, rendono una trasmissione estremamente sicura.


Anche qui però abbiamo delle scomodità che è bene quantomeno accennare:
  • La comunicazione quantistica può avvenire esclusivamente via fibra ottica o via etere tra due punti a vista
  • C'è un margine di errore strumentale abbastanza elevato (intorno al 20%) e ci sono recenti risvolti per cui la misurazione potrebbe rientrare sotto questo margine d'errore, vanificando in parte la protezione contro Eavesdropping e Man-In-The-Middle. Tuttavia sono risvolti che dovrebbero tendere a scomparire con la realizzazione di macchine più precise, oltretutto ci sono meccanismi di "Riconciliazione" che correggono gli errori tra mittente e destinatario preservando il principio per cui un MITM rimane comunque riconoscibile
  • Lo sviluppo è ancora acerbo, nonostante se ne parli fin dagli anni 80

L'argomento, estremamente interessante, ha suscitato l'attenzione di enti governativi. Il SECOQC è un ente finanziato dall'Unione Europea con lo scopo di sviluppare le tecnologie di crittografia quantistica al fine di rendere sicure le comunicazioni critiche (http://www.secoqc.net/html/project/).

Nel prossimo articolo approfondiremo quali sono i problemi matematici irrisolti a cui inizialmente si faceva riferimento.