I computer quantistici, che si differenziano da quelli classici per l’uso di alcune proprietà della fisica quantistica per velocizzare l’esecuzione di determinati calcoli, stanno per arrivare.
Indice degli argomenti
Le minacce dei computer quantistici alla sicurezza digitale
Gli studiosi e gli esperti del settore sanno che bisogna prepararsi fin da oggi alla minaccia che tale tecnologia porterà con sé, sia perché i tempi di aggiornamento dei sistemi informatici sono spesso estremamente lunghi, sia perché già si conoscono attacchi devastanti esclusivamente eseguibili usando queste nuove macchine.
Il modo migliore per prepararsi all’arrivo dei computer quantistici è aggiornare i sistemi informatici ad algoritmi crittografici che siano eseguibili su computer tradizionali odierni e che resistano agli attacchi lanciabili tramite computer quantistici. Questi speciali algoritmi sono spesso chiamati post-quantistici, o alternativamente si dice che tali algoritmi appartengono alla crittografia post-quantistica (in inglese, Post-Quantum Cryptography, acronimo PQC).
La storia ci ha insegnato a sottoporre a scrutinio pubblico ogni proposta di nuovo algoritmo sicuro, e infatti si è recentemente conclusa una gara pubblica mondiale per selezionare algoritmi post-quantistici. Dopo anni di studio, 4 algoritmi sono stati inizialmente selezionati. Poi, nel 2022, è stata intrapresa una nuova fase di valutazione per un ulteriore algoritmo. Questa fase si è conclusa nel marzo 2025, e l’algoritmo HQC è stato selezionato. In questo articolo, capiremo come mai tale fase di valutazione sia stata intrapresa e scopriremo i motivi che hanno portato alla selezione di questo HQC.
Come funziona una comunicazione sicura via internet
Per comprendere a fondo la superficie di attacco principale dei computer quantistici, ci conviene prima introdurre un generico esempio pratico. Supponiamo di aver appena cambiato banca, e che dopo un mese, il sistema informatico ci voglia inviare per la prima volta il resoconto mensile delle entrate e delle uscite in formato PDF. Con alta probabilità, la banca offre una propria applicazione, scaricabile sul nostro cellulare, all’interno della quale riceviamo documenti e notifiche varie. Questa applicazione, quasi sicuramente, usa come canale di comunicazione sia l’Internet della banca sia la nostra rete cellulare o Wi-Fi.
Algoritmi di firma digitale e scambio di chiave
Chiaramente, per costruzione stessa della rete Internet, essa non fornisce un canale di comunicazione sicuro a priori. Per inviarci un file PDF in maniera sicura, il sistema informatico esegue tipicamente una serie di algoritmi crittografici appartenenti a 3 famose categorie.
Innanzitutto, il sistema applica un algoritmo di firma digitale sul documento. Tale algoritmo crea, appunto, una firma digitale. Come una firma fatta su un foglio di carta, la firma digitale consiste in una serie di dati aggiuntivi da inviare insieme al PDF per far sì che l’applicazione della banca che abbiamo scaricato possa: verificare autonomamente l’origine del documento; avere una garanzia che tale documento non sia stato modificato durante la trasmissione; e dimostrare in futuro che è stato proprio il sistema informatico bancario a generare tale firma.
Dopo aver generato la firma, essendo la prima volta che il sistema informatico bancario ci invia un messaggio, viene eseguito un algoritmo di scambio di chiave. In crittografia, con la parola “chiave” si intende una singola informazione digitale conosciuta esclusivamente tra due entità e ignota a qualsiasi altra. Un algoritmo di scambio di chiave ha come unico scopo quello di far ottenere una medesima chiave alle due entità in comunicazione. In questo esempio bancario, l’algoritmo fa ottenere la stessa chiave alla nostra applicazione e al sistema informatico. Questa operazione di scambio di informazioni segreta risulta possibile anche attraverso un canale di comunicazione insicuro come l’Internet. Però, le procedure e i meccanismi usati per effettuare in pratica un simile scambio usano numerosi messaggi e computazioni aggiuntive così costose da rallentare enormemente gli algoritmi di scambio di chiave. È proprio per questo che tali tipi di algoritmi sono usati esclusivamente per scambiare piccole chiavi alla volta.
La crittografia simmetrica completa il processo
Appena conclusa la procedura di scambio di chiave, il sistema informatico applica un algoritmo di crittografia simmetrica sul PDF e sulla firma associata usando la propria copia della chiave. Gli algoritmi di questa categoria sono progettati per essere di piccola dimensione, facili da implementare e veloci da eseguire appositamente affinché due entità possano agevolmente scambiarsi grandi file o un grande numero di messaggi. Sfruttando la chiave, l’algoritmo simmetrico critta il PDF e la firma, mescolandoli ed applicando loro una maschera che li rende illeggibili ad entità esterne. A questo punto, il sistema informatico bancario può inviare questi dati mascherati alla nostra applicazione. Questa li riceve, usa la propria copia della chiave scambiata per estrarre il PDF e la firma, e verifica la firma. A questo punto, noi riceviamo la notifica che ci avverte di aver appena ottenuto il nostro primo resoconto mensile.
L‘algoritmo di Shor e l’attacco ai sistemi attuali
Ci sono numerosi aspetti utili in cui i computer quantistici possono aiutare. Essi hanno il potenziale di poter accelerare lo sviluppo di nuove medicine, di simulare il movimento e la struttura di molecole complesse, e di trovare facilmente la strada più efficiente per passare attraverso numerose destinazioni (il cosiddetto “problema del commesso viaggiatore”).
I computer quantistici hanno iniziato effettivamente a prendere forma in alcuni prototipi fisici solo in questi ultimi anni, ma è da tempo che sono studiati dal piano teorico. Questo studio teorico ha portato alla scoperta del cosiddetto algoritmo di Shor già nel 1994. Senza entrare nei dettagli, sottolineiamo solo che tale algoritmo è in grado di devastare tutti i più comuni algoritmi di scambio di chiave (quali RSA ed ECDSA) e di firma digitale. Dunque, riprendendo l’esempio bancario di sopra, questo sarebbe a significare che un attaccante dotato di computer quantistico è in grado sia di imitare la firma digitale della banca, sia di recuperare la chiave che doveva essere solo nostra e della banca con cui siamo in contatto. Il recupero della chiave implica che l’attaccante è in grado di rimuovere la maschera dai messaggi che ci scambiamo con la banca, o in altre parole, può leggere agevolmente tutti i messaggi che ci scambiamo con la banca.
L’attacco “conserva ora decritta dopo”
Il problema dell’esistenza dell’algoritmo di Shor non riguarda solo attacchi su dati informatici inviati tramite l’Internet dopo l’avvento dei computer quantistici. Infatti, esiste pure il cosiddetto attacco chiamato “conserva ora, decritta dopo” (“store now, decrypt later”), che funziona come segue. I dati sensibili di oggi che rimangono tali per lungo tempo (per esempio, dati clinici o sanitari) sono tipicamente inviati tramite Internet “mascherati” (in gergo, crittati) per essere protetti contro i computer tradizionali. Se un attaccante conservasse questi dati fino alla commercializzazione di un computer quantistico, egli sarebbe potenzialmente in grado di “smascherare” (in gergo, decrittare) questi dati conservati, riuscendo a leggere le informazioni in maniera chiara.
L’urgenza della transizione entro il 2040
Questo attacco diventa ancora più minaccioso pensando a quanto vicino è stimato l’arrivo dei computer quantistici nel mercato globale. La nuova “Tabella di Marcia per la transizione alla crittografia post-quantistica” recentemente rilasciata dall’Unione Europea cita uno studio dell’ufficio tedesco BSI (acronimo che si traduce con “Ufficio Federale per la Sicurezza Informatica”) e un documento della Global Risk Institute canadese (istituto che si concentra sulla gestione del rischio per il settore dei rischi finanziari), e questi ultimi due testi affermano quanto segue: entro il 2040 c’è una probabilità maggiore del 50 percento che i computer quantistici siano abbastanza potenti da rompere la sovra-categoria di algoritmi crittografici di cui fanno parte quelli di firma e quelli di scambio di chiave.
Risulta quindi evidente l’urgenza di aggiornare i sistemi informatici per mitigare il pericolo causato dall’algoritmo di Shor. Ed è in questo frangente che rientra il lavoro svolto dal NIST e gli standard che questo istituto rilascia.
Il NIST e il processo di standardizzazione degli algoritmi post-quantistici
L’istituto statunitense NIST (National Institute of Standard and Technology) spicca sicuramente tra i vari enti che hanno sottolineato la necessità di standardizzare nuovi algoritmi crittografici in grado di resistere agli algoritmi quantistici finora conosciuti. Tale Istituto si occupa specificatamente di rilasciare linee guida e standard che devono essere seguiti attentamente da ogni ente governativo USA che tratta dati sensibili. I suoi standard sono presi in considerazione in tutte le parti del mondo, sia perché sono frutto di una selezione aperta a chiunque studioso e tecnico informatico, sia perché i sistemi informatici attuali puntano ad essere interoperabili con i sistemi degli Stati Uniti.
I quattro algoritmi già selezionati
Per intuire quanto gli standard del NIST siano presi in considerazione nella sfera globale, basta pensare che i nuovi algoritmi PQC consigliati dall’Unione Europea nella propria Tabella di Marcia sono esattamente quei 4 algoritmi che il NIST ha scrutinato e selezionato tra il 2016 e il 2024 in maniera pubblica.
Questi 4 algoritmi, che coincidono con quelli che abbiamo accennato nell’introduzione, sono suddivisi come segue. Uno, ML-KEM, è un algoritmo di scambio di chiavi di nuova generazione. Visto che usa un concetto di funzionamento completamente nuovo rispetto agli algoritmi di scambio di chiave tradizionali, esso rientra in una categoria a sé stante chiamata “meccanismi di incapsulamento”. Gli altri 3 (rispettivamente ML-DSA, SLH-DSA, e Falcon) sono l’evoluzione degli algoritmi di firma digitale tradizionali.
La necessità di diversificare le difese
Detto così, sembra come che la situazione sia rosea. E in un certo senso, l’esistenza di questi 4 standard fornisce modo alle aziende informatiche e agli sviluppatori di tutto il mondo di iniziare subito il lento e laborioso processo di categorizzazione di rischi e di aggiornamento dei sistemi informatici mondiali.
Ma il NIST non era ancora pienamente soddisfatto del lavoro svolto. Infatti, dopo l’annuncio dei primi 4 vincitori nel 2024, l’Istituto ha dichiarato che era ancora necessario definire una robusta varietà di meccanismi di difesa, specie per quanto riguarda i meccanismi di incapsulamento di chiave. I 4 algoritmi forniscono la loro garanzia di sicurezza basandosi su uno dei due seguenti concetti matematici e crittografici: i reticoli strutturati (in inglese, la sigla ML si traduce con “reticoli modulari”) o le funzioni di hash. Avere più di una possibile soluzione garantisce sia una maggiore flessibilità e possibilità di scelta da parte degli sviluppatori, sia una maggiore garanzia di resistenza futura. Saremmo davvero nei guai se, in futuro, si concretizzasse la remota possibilità in cui i reticoli o le funzioni di hash risultino compromissibili da un algoritmo quantistico di cui non siamo ancora a conoscenza e in cui non esistesse alcuna altra tipologia di algoritmi post-quantistici.
La selezione di HQC nel 2025
E dunque, dopo altri mesi di studio e di scrutinio, e precisamente nel Marzo del 2025, il NIST ha selezionato un algoritmo di incapsulamento di chiave basato su una struttura matematica completamente diversa dai precedenti: HQC.
HQC e i codici di correzione di errore
HQC è un acronimo che significa “Hamming Quasi-Ciclici”. Per capire cosa significano queste parole, bisogna prima brevemente introdurre il concetto che fornisce la garanzia di sicurezza crittografica di HQC: i cosiddetti codici di correzione di errori.
Invece di soffermarci a indicare come funzionino matematicamente i codici di correzione di errori, ci soffermeremo invece sulla loro funzionalità. Questi codici, infatti, sono utilizzati praticamente fin dalla nascita dei primi computer per assicurare la ricostruzione precisa di un messaggio inviato su Internet o conservato sulla memoria di un dispositivo elettronico. In parole facili, i codici sono delle tecniche usate per capire se un certo dato informatico contiene un errore e in quale posizione si trova tale errore, in modo tale da poterlo correggere in maniera efficiente una volta riscontrato in futuro.
Come funzionano i bit e la memoria
Ricordiamo che qualsiasi immagine, audio, video, testo o messaggio conservato su un dispositivo elettronico può essere inteso come una sequenza più o meno lunga di bits, di zeri e di uni insomma. Ogni sequenza di bit corrisponde al fatto che in una certa area fisica del dispositivo elettronico (la sua “memoria”) si trovano delle celle in cui, rispettivamente, non passa (“0”) o passa (“1”) corrente elettrica.
Un esempio pratico di codice di correzione
Tenendo a mente questo, un esempio molto banale di codice di correzione di errore può essere il seguente. Immaginiamo di voler conservare per lungo tempo su un dispositivo elettronico la sequenza “1-0-0-1-0”. Una maniera poco efficiente ma molto robusta per conservare questa sequenza sarebbe conservare nella memoria effettiva del dispositivo una sequenza più lunga (in gergo, “ridondante”), seguendo una certa regola. Ad esempio, potremmo decidere di triplicare ogni numero. Invece di conservare la sequenza originale, sulla memoria possiamo conservare invece “111-000-000-111-000”. Questa sequenza indubbiamente occupa più spazio di quella originale, ma possiede un’ulteriore proprietà.
Supponiamo che, dopo anni, ci siamo dimenticati la sequenza iniziale, ma ci ricordiamo la tecnica che abbiamo usato per salvare tale sequenza sul nostro dispositivo e proviamo a rileggerla dalla sua memoria fisica. Tale memoria, per quanto costruita in maniera robusta, è leggermente imperfetta e vagamente prona ad errori. È dunque possibile che i primi 3 numeri della sequenza salvata sulla memoria che leggiamo siano “110” (invece degli originali “111”).
“110” è una terna di numeri che non era prevista nella nostra tecnica di salvataggio. Però possiamo applicare il seguente ragionamento. “110”, originariamente, sarà stato “111” oppure “000”. Per leggere “110” al posto di “111” vuol dire che, in tutti questi anni, solo il terzo numero ha subito un errore. Invece, per leggere “110” al posto di “000”, vuol dire che sia il primo che il secondo numero hanno subito un errore. Visto che è molto più probabile che solo il terzo numero sia errato, decidiamo che il messaggio originale conteneva “1” come primo elemento della sequenza. È possibile applicare un ragionamento analogo per ogni terna di numeri salvata.
Se ci pensiamo, questo qui sopra è un esempio di codice di correzione di errore, perché siamo riusciti a capire che, con alta probabilità, la terna “110” conteneva un errore, e siamo anche riusciti a capire che il terzo numero è probabilmente quello sbagliato. Più in generale, ogni codice di correzione di errore è costruito sfruttando una certa “ridondanza”, ed è tramite questo allungamento della sequenza originale che siamo in grado di capire dove si trovi un errore e come correggerlo.
Il meccanismo di funzionamento di HQC
Notiamo che l’esempio precedente può essere anche estendibile a un messaggio inviato tramite Internet. Infatti, basta immaginare che al posto della memoria del nostro dispositivo ci sia il destinatario del messaggio, e che il mittente del messaggio decida la sequenza iniziale di bits.
Ora siamo finalmente in grado di intuire come funzioni HQC. Hamming è stato l’inventore e il pioniere dei primi codici di errori intorno al 1950, e il suo nome è utilizzato per indicare una certa categoria di codici di errori ancora oggi. Quasi-ciclici, invece, si riferisce a una proprietà particolare di certi codici. Per incapsulare la chiave, HQC crea un codice molto complicato, inserisce una grande quantità di errori (per evitare che il codice stesso sia facilmente indovinabili), e invia le informazioni piene di errori riguardo questo codice a una seconda entità. Questa seconda entità crea la propria copia della chiave, la ingarbuglia usando le informazioni piene di errori per creare una chiave crittata, e invia tale informazione crittata al proprietario del codice originale. A questo punto, il proprietario del codice originale riesce a togliere gli errori e a decrittare la chiave, recuperando la propria copia.
Conclusioni e prospettive future
La maggior parte delle comunicazioni via Internet utilizzano algoritmi di firma digitale e di scambio di chiave per poter instaurare una comunicazione sicura. Le garanzie di sicurezza degli algoritmi di queste categorie attualmente utilizzati verranno meno quando entreranno in commercio i computer quantistici. Questi dispositivi ci saranno molto utili in campi quali la creazione di nuovi medicinali, ma i sistemi informatici mondiali devono iniziare già da oggi ad aggiornare i propri sistemi per resistere al devastante algoritmo di Shor.
L’urgenza di questo aggiornamento è ben sottolineata sia negli standard dell’istituto statunitense NIST sia nella “Tabella di Marcia per la transizione alla crittografia post-quantistica” dell’Unione Europea. Gli algoritmi consigliati in questi documenti (ML-KEM, ML-DSA, SLH-DSA e Falcon) servono da linea guida agli sviluppatori mondiali per comprendere in che direzione muoversi. Il nuovo arrivato, HQC, basandosi su un concetto matematico diverso per garantire la propria sicurezza, porta una nuova flessibilità nella scelta di algoritmi post-quantistici da implementare e una maggiore certezza del fatto che siamo pronti a ogni evenienza futura. Lo studio dei ricercatori e degli esperti di crittografia mondiale continua tutt’oggi nella competizione del NIST ancora aperta per selezionare algoritmi di firme digitali aggiuntivi.



































































