Inevitabilmente, l’evoluzione tecnologica si accompagna a nuovi problemi e sfide per ricercatori e operatori di settore. Abbiamo visto, ad esempio, come l’implementazione di forme di intelligenza artificiale sta cambiando il concetto stesso di cyber security.
Oggi, invece, ci soffermiamo su un altro aspetto evolutivo – lo sviluppo di sistemi di computazione quantistica – e di come questo potrà condizionare (se non lo sta già facendo) la sicurezza delle informazioni: in particolare, uno degli algoritmi crittografici più utilizzati al mondo, RSA, è ancora sicuro?
Cos’è RSA?
RSA è l’abbreviazione di Rivest-Shamir-Adleman, dal nome dei tre crittografi che hanno inventato quello che si è rivelato un sistema di crittografia straordinariamente utile e longevo, grazie al quale due persone possono comunicare in modo sicuro senza doversi prima incontrare per concordare una chiave di crittografia segreta.
In parole povere, RSA non è costituita da una sola chiave, come la serratura di una porta tradizionale, ma due chiavi diverse, una per chiudere la porta e l’altra per sbloccarla.
È possibile generare abbastanza rapidamente questa coppia di chiavi ma se ne viene fornita solamente una, allora non è possibile capire che aspetto abbia l’altra.
Quindi, una di esse viene designata come “chiave pubblica”, che viene condivisa con il mondo, mentre l’altra viene tenuta come “chiave privata”: a questo punto che chiunque voglia inviarvi un messaggio privato può proteggerlo con la vostra chiave pubblica, ma (supponendo che la vostra chiave privata sia davvero privata) solo voi potete aprirlo.
Al contrario, chi vuole provare la vostra identità può inviarvi un messaggio e chiedervi di bloccarlo con la vostra chiave privata e di rispedirlo. Se la vostra chiave pubblica lo decifra correttamente, allora la persona in questione ha ragione di credere che siate realmente chi sostenete di essere.
Principio algoritmico alla base di RSA
RSA è stato uno dei primi algoritmi di crittografia asimmetrica ad essere utilizzato ed è ancora oggi considerato un “algoritmo sicuro”. Si tenga tuttavia presente che la sicurezza di un algoritmo dipende tanto dal modo in cui è implemento quanto dalla forza delle chiavi utilizzate: con chiavi di dimensioni sufficientemente grandi[1], RSA è considerato sicuro contro le tipologie di attacco al momento note ma, comprensibilmente, la sicurezza di RSA non sarà garantita per sempre, poiché gli attacchi potrebbero diventare (e diventeranno) più sofisticati con l’evoluzione della tecnologia e della scienza.
Come funziona RSA?
RSA è un algoritmo definito di “crittografia asimmetrica” (per via delle due chiavi sopra descritte) ed utilizza le proprietà dei numeri primi per garantire la sicurezza della comunicazione[2]. In pratica, funziona come segue:
- il mittente crea due chiavi, una pubblica e una privata. La chiave pubblica può essere condivisa con chiunque, mentre la chiave privata deve essere tenuta segreta;
- il mittente utilizza la chiave pubblica del destinatario per crittografare il messaggio che vuole inviare;
- il messaggio crittografato viene inviato al destinatario, che utilizza la sua chiave privata per decrittografare il messaggio e leggerlo.
Solo il destinatario con la chiave privata corretta può decrittografare il messaggio, il che garantisce che solo lui possa leggerlo. In questo modo, RSA garantisce che solo il destinatario può leggere il messaggio, rendendo la comunicazione sicura anche se qualcuno intercetta il messaggio crittografato.

Il grande merito di RSA è proprio di aver introdotto un sistema a due chiavi, in cui una chiave non può essere calcolata dall’altra, in contrasto con il tradizionale sistema a una chiave, con la stessa che viene usare sia per bloccare che per sbloccare le informazioni criptate, in uso da secoli.
Anche se al giorno d’oggi esistono alternative all’RSA che consentono di avere chiavi pubbliche e private più piccole e che si basano su algoritmi più veloci, l’RSA è ancora ampiamente utilizzato e diffuso e ci sarebbero dunque enormi quantità di dati potenzialmente violabili se l’algoritmo dovesse essere “bucato”.
Dettaglio tecnico
Per capire il principio di funzionamento di RSA basta quanto detto finora ma se siete interessati ad un veloce approfondimento sulla teoria matematica alla base della sua implementazione, ecco come avviene la creazione della coppia di chiavi utilizzate per la cifratura/decifratura.
Il processo di generazione delle chiavi inizia scegliendo due numeri primi, p e q, molto grandi. Quindi si calcola n = p * q, che diventa parte della chiave pubblica. La dimensione di n è indica il tipo di implementazione dell’algoritmo (es. per RSA-2048 la dimensione di n è di 2048 bit).
Successivamente si calcola φ(n) = (p-1)*(q-1)
Dopodiché si sceglie un numero e compreso tra 1 e φ(n) che sia co-primo con φ(n) (cioè che non abbia altri fattori comuni con φ(n) tranne 1) questo numero diventa la chiave privata d.
Infine si calcola d’inverso mod φ(n) che diventa la chiave pubblica e.
Per cifrare un messaggio si utilizza la chiave pubblica e e n per calcolare (messaggio^e) mod n. Per decifrare il messaggio, si utilizza la chiave privata d e n per calcolare (cifrato^d) mod n.
“Fattorizzazione di numeri interi con risorse sub-lineari su un processore quantistico superconduttore”
Ebbene, come ha osservato di recente l’esperto di cybersicurezza Bruce Schneier, un nutrito gruppo di informatici cinesi ha appena pubblicato un articolo intitolato Factoring integers with sublinear resources on a superconducting quantum processor.
Il punto cruciale della fattorizzazione dei numeri interi (in cui si scopre, per esempio, che 15 = 3×5, o che 261980999226229 = 15538213 × 16860433) è che questa operazione è alla base del cracking di RSA, che si basa su calcoli che coinvolgono due enormi numeri primi casuali.
Nell’RSA, tutti conoscono il numero che si ottiene moltiplicando questi numeri (chiamato prodotto), ma solo la persona che ha originariamente creato i numeri di partenza sa come è stato creato il prodotto: i fattori insieme formano in sostanza la sua chiave privata.
Quindi, se si riuscisse a scomporre il prodotto nella sua univoca coppia di fattori primi (come sono definiti), si riuscirebbe a decifrare la crittografia di quella persona.
Il fatto è che se i numeri primi iniziali sono abbastanza grandi (al giorno d’oggi, 1024 bit ciascuno o più, per un prodotto di 2048 bit o più), non si avrà abbastanza potenza di calcolo per separare il prodotto. Questo a meno che non si riesca a costruire, comprare o noleggiare un computer quantistico abbastanza potente.
Dimensione dei prodotti primi
Sembra che il prodotto primo più grande mai fattorizzato da un computer quantistico sia solo 249919 (491 × 509), che anche un portatile di dieci anni fa sarebbe in grado di gestire in modo convenzionale.
Inoltre, come riferiscono gli stessi ricercatori cinesi, i metodi standard di approccio al cracking RSA con un computer quantistico richiederebbero milioni di cosiddetti qubit (l’equivalente dei bit per il computer quantistico), mentre il più grande computer di questo tipo oggi conosciuto ha poco più di 400 qubit.
Come si può notare, se RSA-2048 ha bisogno di milioni di qubit per essere decifrato, occorrono molti più qubit di quanti siano i bit del numero che si vuole decifrare.
Ma i ricercatori sostengono di aver trovato un modo per ottimizzare il processo di cracking in modo da richiedere non solo meno di un milione di qubit, ma addirittura meno qubit del numero di bit del numero che si sta cercando di decifrare:
Riteniamo che sia necessario un circuito quantistico con 372 qubit fisici e una profondità di qualche migliaio per affrontare RSA-2048 anche nella più semplice implementazione. È molto probabile che una tale scala di risorse quantistiche possa essere essere raggiunta su dispositivi NISQ[3] nel prossimo futuro.
Prospettive di sviluppo
In realtà già in passato alcuni lavori di ricerca erano stati pubblicati a dimostrazione del fatto RSA non è più da considerarsi un algoritmo inviolabile: in particolare, in un paper del 2021 dal titoto Fast Factoring Integers by SVP Algorithms, Claus Peter Schnorr afferma che l’esito della dissertazione è quello di validare la “distruzione del sistema di criptazione RSA”. E il lavoro di ricerca cinese si basa proprio su una modifica di questo algoritmo.
Quanto sostenuto dai ricercatori cinesi è quindi plausibile? Nel giro di poco tempo una manciata di qubit sarà sufficiente a superare la crittografia di RSA?
Il già citato Bruce Schneier afferma in prima persona che l’annuncio dei ricercatori cinesi è da “qualcosa da prendere sul serio: potrebbe non essere corretto, ma non è sbagliato in modo palese”. Vale a dire che l’ipotesi presentata dai cinesi non è né inaspettata né incoerente con le prospettive di sviluppo della tecnologia quantistica: prima o poi RSA (ma anche altri algoritmi tradizionali) sarà superato.
I ricercatori cinesi d’altronde non fanno affermazioni inverosimili: dicono di aver utilizzato un algoritmo quantico universale per fattorizzare alcuni interi fino a 2048 bit e stimano di poter sfidare RSA 2048 (che richiede “solo” 372 qubits, mentre sono 205, ancor meno, per RSA 1024) nel prossimo futuro.
Concludono infine che al momento una prospettiva di sfida realistica è verso RSA 581, mentre per avere una soluzione valida anche per RSA a chiavi più grandi l’attesa sarà, come detto, più lunga. Anche per questo, l’esperto di cyber security Bruce Schneier sottolinea la necessità di una certa cautela circa la notizia, ma si dice pronto a seguirne con la giusta attenzione gli sviluppi.
La sicurezza delle informazioni nel prossimo futuro
Abbiamo visto che, ad oggi, non c’è motivo sostanziale di temere un prossimo problema di sicurezza correlato all’uso di RSA.
Tuttavia, vi è una chiara linea di tendenza: nel giro di pochi anni sarà necessario rivedere l’uso degli algoritmi classici di crittografia.
Le indicazioni della comunità internazionale
Al momento la strategia di aumentare il numero di bit della chiave garantisce una buona prospettiva di sicurezza: ad esempio, il report CNSA (Commercial National Security Suite 2.0) della National Security Agency di settembre 2022 raccomanda RSA con minimo 3072 bit. Il NIST (National Institute for Standards and Technology) raccomanda RSA 2048 fino al 2030 e RSA 3072 per tempi ancora più lunghi[4].
Infine anche ENISA, l’Agenzia Europea per la Cybersicurezza, già nel 2013 raccomandava l’adozione di RSA 3072 nella prospettiva di un rafforzamento della sicurezza della cifratura.
Per un futuro meno prossimo – ma non troppo remoto – sarà invece necessario interpretare il concetto di cifratura con un approccio totalmente nuovo che tenga in considerazione le capacità dei nuovi sistemi di computazione quantistica.
La stessa ENISA ha pubblicato nel settembre 2022 un documento incentrato sull’analisi degli scenari correlati alla crittografia post-quantistica. Anche l’amministrazione USA ritiene il tema di primaria importanza: ne è la dimostrazione la recente trasformazione in legge di una una direttiva sull’adozione del Quantum Computing Cybersecurity Preparedness Act, che impone l’obbligo di accelerare la migrazione alla crittografia post-quantum a partire dal momento stesso in cui il NIST definirà gli algoritmi appropriati.
E’ quindi chiaro il messaggio: l’evoluzione e la diffusione dei computer quantistici porteranno a dover ridefinire standard di sicurezza e best-practices della crittografia. A quel punto la sfida sarà mettere in sicurezza l’enorme numero di sistemi legacy presente e, nel mentre, difendere la riservatezza delle informazioni dagli attori antagonisti.
Riferimenti
↑1 | Ci sono anche altri algoritmi di crittografia asimmetrica come ECC (Elliptic Curve Cryptography) che sono considerati più efficienti e più sicuri rispetto a RSA perché utilizzano chiavi più corte per ottenere la stessa sicurezza. |
---|---|
↑2 | Questo tipo di processo viene anche definito crittografia a chiave pubblica o crittografia pubblico-privata (la crittografia simmetrica, invece, prevede l’uso della stessa chiave per bloccare e sbloccare i dati). |
↑3 | Lo stato attuale dell’informatica quantistica è definito l’era del noisy intermediate-scale quantum (NISQ), caratterizzata da processori quantistici contenenti 50-100 qubit che non sono ancora abbastanza avanzati da garantire una reale fault-tolerance o abbastanza potenti da conquistare la supremazia quantistica. |
↑4 | Ad esempio nel documento Transitioning the Use of Cryptographic Algorithms and Key Lengths. |