Con l’avvento dei computer quantistici, gli algoritmi di crittografia moderna stanno vivendo un’evoluzione che modificherà notevolmente il loro attuale impiego e, al fine di sostenere la sicurezza di internet e di altre tecnologie basate sulla crittografia, è necessario incrementare le ricerche in campo matematico per costruire la crittografia del domani, resistente agli attacchi quantistici, e che diverrà nota come crittografia post-quantum o quantum-resistant.
Indice degli argomenti
La necessità di una crittografia post-quantum
L’uso moderno della crittografia persegue l’obiettivo di concorrere a garantire la riservatezza, l’autenticità, l’integrità, la disponibilità e il non ripudio nell’ambito dell’applicazione delle policy di sicurezza in un sistema informativo.
Al riguardo, in relazione al modo di interazione della chiave con l’algoritmo di cifratura, convenzionalmente, è possibile identificare due categorie principali:
- “chiave simmetrica”, o della chiave segreta, in cui la stessa chiave viene utilizzata per la fase di codifica e decodifica. Tale chiave deve essere tenuta segreta dal mittente e dal destinatario del messaggio privato. Ne consegue che la principale difficoltà della crittografia a chiave simmetrica sia quella di fornire la chiave segreta alle parti legittimamente coinvolte, senza che altri possano entrarne in possesso.
- “chiave asimmetrica”, o della chiave pubblica, che prevede l’esistenza di due chiavi, una per la codifica e l’altra per la decodifica. Le due chiavi sono matematicamente correlate e solo una delle due chiavi deve essere mantenuta segreta. La crittografia a chiave pubblica consente a chiunque di inviare un messaggio cifrato, ma solo il mittente, con la propria chiave privata, può decodificare il messaggio ricevuto. La crittografia a chiave pubblica può essere utilizzata anche per la firma digitale, in cui il mittente può impiegare la propria chiave privata per firmare un documento che chiunque può verificare con la chiave pubblica del mittente.
In particolare, negli ultimi tre decenni, la crittografia a chiave pubblica è divenuta una componente indispensabile della nostra infrastruttura digitale per le comunicazioni globali.
Queste reti supportano numerose applicazioni importanti per la nostra economia, la sicurezza e gli stili di vita di ciascuno, come gli smartphone, i social network, l’e-commerce e il cloud computing. In un mondo interconnesso, quindi, la capacità di individui, imprese e governi di comunicare in modo sicuro assume un ruolo di primaria importanza.
In tale contesto la maggior parte dei nostri protocolli di comunicazione si basa principalmente su tre funzionalità crittografiche fondamentali: crittografia a chiave pubblica, firma digitale e scambio delle chiavi.
Ciascuna di esse è facilmente decodificabile, senza il possesso della chiave, dall’algoritmo di Shor (ideato da Peter Shor nel 1994) e sono di fatto ritenute insicure con la comparsa dei computer quantistici. Il motivo per il quale l’algoritmo di Shor è in grado di “rompere” i sistemi crittografici a chiave pubblica è la conseguenza del fatto che essi si basano su determinati problemi computazionali: la fattorizzazione dei numeri interi ed il logaritmo discreto.
Sebbene si ritenga che questi problemi siano difficilmente risolvibili da un computer classico, non lo saranno per un computer quantistico. In linea generale problemi con complessità computazionale non polinomiale possono essere risolti, da un calcolatore quantistico, in un tempo polinomiale. Nello specifico, dato un intero N l’algoritmo di Shor lo fattorizza in un tempo polinomiale in log (N), mentre su un computer classico il tempo è esponenziale in N.
L’impiego attuale della crittografia a chiave pubblica
Gli algoritmi classici a chiave pubblica come l’RSA (Rivest, Shamir e Adleman) e l’ECC (Elliptic Curve Cryptography) sono utilizzati pervasivamente in molti protocolli e applicazioni di sicurezza, per fornire alcuni servizi tra i più diffusi:
- nella Public Key Infrastructure (PKI) assume la forma di Certificate Authority (CA), in cui un’entità di cui gli utenti si fidano implicitamente attesterà che una particolare chiave crittografica appartenga ad una determinata persona o entità;
- nella distribuzione sicura del software, viene impiegata per generare una firma digitale che verrà aggiunta, trasmessa e memorizzata accanto alle informazioni originali e successivamente utilizzata per l’autenticazione;
- per autorizzazione federata, metodo di “single sign on” che consente a un utente di un sito Web di immettere una sola volta le proprie credenziali di accesso ed ottenere l’autorizzazione a un numero di altri siti Web, senza diffondere ulteriormente le proprie credenziali;
- nello scambio di chiavi su un canale pubblico, quale metodo comune per stabilire una connessione protetta in alcuni dei protocolli di sicurezza di rete più diffusi, tra i quali SSL/TLS, SSH e IKE/IPsec che proteggono le comunicazioni private su internet. Questi protocolli si basano quasi esclusivamente sullo scambio di chiavi mediante RSA, Diffie-Hellman o crittografia a curva ellittica;
- per l’inoltro di e-mail protette, diffuse tra enti governativi e imprese per lo scambio di email confidenziali e autenticate. La maggior parte dei certificati S/MIME contengono chiavi pubbliche RSA;
- nelle Virtual Private Networks (VPN), utilizzate ad esempio dalle aziende per fornire ai propri dipendenti l’accesso alla rete aziendale oppure per aggirare le tecnologie di filtraggio della rete internet in taluni paesi. RSA e ECC sono comunemente impiegati per configurare il tunnel di rete sicuro usando un protocollo IKE o mobileIKE;
- nel mondo delle crypto-valute, in cui per poter disporre dei propri bitcoin, il titolare deve poter “firmare” le transazioni con la propria chiave privata.
Diversamente, nell’ambito della crittografia simmetrica, la minaccia maggiore è rappresentata dall’algoritmo di Grover (ideato da Lov Grover nel 1996 presso i Bell Labs).
Tale algoritmo in esecuzione su un quantum computer consente di eseguire ricerche di un elemento all’interno di una lista non ordinata di lunghezza N, in un tempo proporzionale a “radice di N”.
Al contrario, su un computer classico il tempo sarebbe proporzionale a N. Ciò vuol dire che per ottenere lo stesso livello di sicurezza occorre raddoppiare la lunghezza della chiave. Tra gli algoritmi a chiave simmetrica, l’Advanced Encryption Standard (AES), il Blowfish, il Twofish o il Serpent, con una lunghezza della chiave superiore o uguale a 256 bit e sotto opportune condizioni, potranno dimostrarsi quantum-safe.
Crittografia post-quantum: l’impulso propulsivo del NIST
Il National Institute of Standards and Technology (NIST) ha iniziato a sviluppare standard crittografici negli anni ‘70, con l’introduzione del Data Encryption Standard (DES). A quel tempo, la riservatezza era l’obiettivo più critico per la sicurezza delle informazioni.
Quando la sicurezza del DES venne meno, dal 1997 al 2000 il NIST avviò una competizione per selezionare un nuovo codice a blocchi da sottoporre al processo di standardizzazione. Il concorso fu aperto ai ricercatori di tutto il mondo per presentare i loro progetti sui codici a blocchi.
Al termine della competizione, l’AES è stato selezionato tra i candidati del 15° round ed oggi risulta implementato in quasi tutti i dispositivi digitali e di comunicazione.
È naturale chiedersi se una nuova competizione possa costituire un buon approccio nella selezione di algoritmi crittografici post-quantum, destinati alla standardizzazione.
Per rispondere a questa domanda, il NIST nel 2016 ha lanciato un call in seguito alla quale sono stati selezionati 69 algoritmi nel 2017, ridotti ulteriormente a 26 nel 2019. Sono basati su problemi matematici sui reticoli o codici, sistemi non lineari di equazioni polinomiali multivariate o su isogenie di curve ellittiche supersingolari.
L’obiettivo finale è chiudere la competizione nel 2024 con il conseguente rilascio di nuovi standard.
Tuttavia, studiando la letteratura si osserva facilmente che ciascun algoritmo post-quantum possieda vantaggi e svantaggi inevitabili, rendendo difficile trovare un vincitore per ognuna delle funzioni crittografiche indicate dal NIST nella call.
Inoltre, considerando le indicazioni a contorno sulle possibili applicazioni degli algoritmi proposti e fissate dai proponenti, potrebbe essere necessario individuare più di un candidato per ciascuna funzione crittografica, per soddisfare i requisiti di impiego definiti dal NIST.
La procedura è piena di incertezze insomma e dovrebbe richiede una collaborazione straordinaria tra i ricercatori mentre, seppure abbia attratto ricercatori in matematica, informatica e quantum computing ed abbia stimolato la pubblicazione di centinaia di articoli, l’atmosfera competitiva potrebbe non favorire la standardizzazione del più sicuro dei crittosistemi possibili.
Oltre alla sicurezza, un secondo fattore per determinare se un algoritmo crittografico possa essere utilizzato in un determinato ambiente applicativo è la sua efficienza. Le prestazioni non tengono conto solo della velocità di elaborazione, ma anche dei requisiti di memoria: dimensioni della chiave, velocità di espansione dei dati (cioè della dimensione del testo cifrato), dimensione della firma, etc. Per esempio, gli schemi basati su problemi matematici più strutturati tendono ad avere chiavi ridotte.
Conclusione
Se da un lato la crittografia post-quantum (Post Quantum Cryptography, PQC) potrebbe giungere nel breve periodo ad uno o più stardard implementativi, la Quantum Key Distribution (QKD) è una realtà in fase di testing già da alcuni anni.
Si caratterizzata per la presenza di un canale ottico (fibra o open space) per l’invio tramite fotoni della chiave codificata e per la non intercettabilità della chiave, garantita dai principi quantistici di Heisenberg.
Può essere associata ad un canale classico non sicuro, sul quale la chiave prodotta viene usata in modo tradizionale. Entrambe quindi, la PQC e la QKD, possono costituire due strade percorribili, due soluzioni non alternative tra loro, ma complementari e coesistenti in un singolo crittosistema.