Che cos'è la crittografia Rivest-Shamir-Adleman (RSA)?

20 Agosto 2025

Rivest–Shamir–Adleman (RSA) è uno degli algoritmi crittografici a chiave pubblica più antichi e ampiamente utilizzati.

cos'è la crittografia RSA

Che cos'è la crittografia Rivest-Shamir-Adleman (RSA)?

Rivest–Shamir–Adleman crittografia è una crittografia asimmetrica algoritmo che si basa sulla difficoltà matematica di fattorizzare numeri primi di grandi dimensioni. È stato introdotto nel 1977 da Ron Rivest, Adi Shamir e Leonard Adleman ed è considerato un metodo fondamentale per la comunicazione digitale sicura. A differenza della crittografia simmetrica, che utilizza una singola chiave sia per la crittografia che per... decrittazione, RSA utilizza una coppia di chiavi: una chiave pubblica che può essere distribuita liberamente e utilizzata per crittografare i dati, e una chiave privata che viene tenuto segreto e utilizzato per la decrittazione.

La sicurezza di RSA si basa sull'aritmetica modulare e sulla teoria dei numeri, in particolare sul fatto che, sebbene sia computazionalmente semplice moltiplicare due numeri primi grandi, è estremamente difficile invertire il processo e fattorizzare il numero grande risultante. Questa proprietà matematica unidirezionale garantisce che le informazioni crittografate non possano essere decrittografate in modo fattibile senza il possesso della chiave privata. RSA non viene utilizzato solo per crittografare i dati, ma anche per creare firme digitali, consentendo la verifica dell'autenticità e dell'integrità dei messaggi o dei documenti.

Nonostante siano stati sviluppati nuovi approcci crittografici, RSA rimane ampiamente utilizzato per proteggere le comunicazioni online, reti private virtuali, distribuzione di software e certificati digitali grazie alla sua robustezza e alla fiducia di lunga data nel suo modello di sicurezza.

Come funziona Rivest Shamir Adleman?

Il metodo Rivest–Shamir–Adleman funziona applicando i principi della teoria dei numeri per generare una coppia di chiavi e utilizzare l'aritmetica modulare per la crittografia e la decifratura sicure. Il processo inizia con la selezione di due numeri primi grandi, che vengono moltiplicati per creare un modulo che diventa parte sia della chiave pubblica che di quella privata. Viene quindi scelto un esponente pubblico, in genere un numero piccolo come 65537, che è matematicamente compatibile con il modulo. L'esponente privato viene calcolato in modo tale da essere matematicamente collegato all'esponente pubblico, ma può essere derivato solo se sono noti i numeri primi originali.

Quando un mittente desidera crittografare un messaggio, lo converte in una rappresentazione numerica e lo eleva alla potenza dell'esponente pubblico, riducendo il risultato modulo il modulo condiviso. Questa trasformazione produce un testo cifrato che può essere trasmesso in modo sicuro. Per decifrare il messaggio, il destinatario utilizza la propria chiave privata, applicando l'esponente privato al modulo condiviso. testo cifrato e riducendo ancora il modulo allo stesso modulo. Questa operazione inverte il processo di crittografia e recupera il testo in chiaro originale.

Lo stesso meccanismo può essere invertito per produrre firme digitali. In tal caso, il mittente utilizza la chiave privata per creare una firma su un messaggio e chiunque possieda la chiave pubblica può verificarla.

La sicurezza di RSA dipende dall'impossibilità computazionale di fattorizzare il grande numero composto utilizzato come modulo, garantendo che solo il detentore della chiave privata possa eseguire l'operazione di decrittazione o di firma.

Su cosa si basa l'algoritmo Rivest Shamir Adleman?

L'algoritmo di Rivest-Shamir-Adleman si basa sulla difficoltà matematica di scomporre in fattori primi numeri composti di grandi dimensioni. La sua sicurezza si basa sul principio che moltiplicare due numeri primi di grandi dimensioni è computazionalmente facile, ma invertire il processo, determinando i numeri primi originali dal loro prodotto, è estremamente difficile per valori sufficientemente grandi. Questo problema, noto come fattorizzazione degli interi, costituisce il fondamento della solidità crittografica di RSA.

RSA utilizza anche concetti tratti dall'aritmetica modulare e dalla funzione totiente di Eulero. Selezionando attentamente due numeri primi grandi e calcolandone modulo e totiente, l'algoritmo crea una coppia di chiavi: la chiave pubblica per la crittografia o la verifica e la chiave privata per la decifratura o la firma. Gli esponenti pubblico e privato vengono scelti in modo che siano matematicamente correlati, ma derivare la chiave privata dalla chiave pubblica richiede la risoluzione del problema di fattorizzazione, che è computazionalmente irrealizzabile con gli algoritmi attuali e la potenza di calcolo quando la dimensione della chiave è sufficientemente grande.

A causa di questa dipendenza dalla teoria dei numeri e dalla difficoltà di fattorizzazione, RSA rimane sicuro finché la dimensione del modulo è sufficientemente grande, in genere 2048 bit o superiore nelle implementazioni moderne.

Esempio di crittografia RSA

esempio di crittografia RSA

Ecco un esempio semplificato del funzionamento della crittografia RSA, che utilizza numeri piccoli per maggiore chiarezza. In pratica, i numeri utilizzati sono lunghi centinaia di cifre per garantire la sicurezza.

Passaggio 1: generazione di chiavi

  • Scegli due numeri primi: p=61p = 61p=61, q=53q = 53q=53.
  • Calcola il modulo: n=p×q=61×53=3233n = p \times q = 61 \times 53 = 3233n=p×q=61×53=3233.
  • Calcolare il totale di Eulero: φ(n)=(p−1)(q−1)=60×52=3120\varphi(n) = (p-1)(q-1) = 60 \times 52 = 3120φ(n)=(p−1)(q−1)=60×52=3120.
  • Scegli un esponente pubblico e=17e = 17e=17 (deve essere coprimo con 3120).
  • Calcolare l'esponente privato ddd, l'inverso modulare di eee modulo φ(n)\varphi(n)φ(n).
    Qui, d=2753d = 2753d=2753, perché (e×d)mod φ(n)=(17×2753)mod 3120=1(e \times d) \mod \varphi(n) = (17 \times 2753) \mod 3120 = 1(e×d)modφ(n)=(17×2753)mod3120=1.

Chiave pubblica: (e,n)=(17,3233)(e,n) = (17, 3233)(e,n)=(17,3233)
Chiave privata: (d,n)=(2753,3233)(d, n) = (2753, 3233)(d,n)=(2753,3233)

Passaggio 2: crittografia
Supponiamo di voler inviare il messaggio "A", rappresentato dal numero m=65m = 65m=65.

Il testo cifrato viene calcolato come:

c=memod n=6517mod 3233=2790c = m^e \mod n = 65^{17} \mod 3233 = 2790c=memodn=6517mod3233=2790

Quindi il messaggio criptato è 2790.

Passaggio 3: decrittografia
Il destinatario utilizza la chiave privata per decifrare:

m=cdmod n=27902753mod 3233=65m = c^d \mod n = 2790^{2753} \mod 3233 = 65m=cdmodn=27902753mod3233=65

Il risultato decriptato è 65, che corrisponde al messaggio originale "A".

Questo esempio mostra il ciclo completo di RSA: generazione delle chiavi, crittografia e decifratura. Nell'uso pratico, vengono utilizzati numeri primi molto più grandi (2048 bit o più) per impedire agli aggressori di fattorizzare nnn.

A cosa serve RSA?

RSA è utilizzato come metodo crittografico di base per fornire riservatezza, integrità e autenticità nelle comunicazioni digitali.

RSA è utilizzato principalmente per la sicurezza trasmissione dati, in cui le informazioni sensibili vengono crittografate con una chiave pubblica e possono essere decifrate solo con la corrispondente chiave privata. È ampiamente utilizzato anche per le firme digitali, consentendo al mittente di dimostrare la propria identità e garantire che un messaggio non sia stato alterato.

RSA è alla base di molti protocolli di sicurezza, tra cui SSL / TLS per una navigazione web sicura, SSH per connessioni remote sicure e IPsec per VPN. È inoltre fondamentale nei certificati digitali e nelle infrastrutture a chiave pubblica (PKI), dove aiuta a stabilire la fiducia tra le parti su Internet verificando le identità tramite autorità di certificazione.

Inoltre, RSA viene utilizzato negli standard di crittografia della posta elettronica come PGP e S/MIME, nella distribuzione del software per verificare l'autenticità degli aggiornamenti e negli scambi di chiavi crittografiche per stabilire in modo sicuro chiavi simmetriche per metodi di crittografia più rapidi.

Sebbene algoritmi più recenti come la crittografia a curva ellittica (ECC) siano sempre più adottati per motivi di efficienza, RSA rimane ampiamente utilizzato per la sua affidabilità, il modello di sicurezza collaudato e la lunga storia di implementazione.

Vantaggi e svantaggi della crittografia RSA

La crittografia RSA è da decenni un pilastro della crittografia moderna, offrendo un elevato livello di sicurezza attraverso meccanismi a chiave pubblica. Come ogni tecnologia, tuttavia, presenta punti di forza e limiti che ne compromettono l'efficienza. modulabilità e utilizzo pratico. Comprendere i vantaggi e gli svantaggi dell'RSA aiuta a determinare quando e come applicarlo nei sistemi reali.

Quali sono i vantaggi della crittografia RSA?

La crittografia RSA offre diversi importanti vantaggi che l'hanno resa uno dei sistemi crittografici a chiave pubblica più ampiamente adottati. I suoi punti di forza risiedono nella sicurezza, nell'affidabilità e nella versatilità, che ne spiegano la continua rilevanza nella protezione delle comunicazioni e delle transazioni digitali. Di seguito sono riportati i principali vantaggi:

  • Modello di sicurezza forteRSA si basa sulla difficoltà matematica di fattorizzare grandi numeri composti. Con chiavi di dimensioni sufficientemente grandi (2048 bit o superiori), fornisce un elevato livello di sicurezza resistente a attacchi di forza bruta con le attuali capacità di elaborazione.
  • Compatibilità dell'infrastruttura a chiave pubblicaRSA funziona perfettamente all'interno dei sistemi PKI, consentendo l'autenticazione sicura e la convalida dei certificati digitali. Questo lo rende la spina dorsale di SSL/TLS, firme digitali e autorità di certificazione che supportano la comunicazione Internet sicura.
  • Non c'è bisogno di condividere le chiavi segreteA differenza della crittografia simmetrica, RSA non richiede che entrambe le parti si scambino preventivamente una chiave privata. La chiave pubblica può essere condivisa apertamente, riducendo i rischi associati alla distribuzione di chiavi segrete su canali non sicuri.
  • Supporto per la crittografia e le firme digitaliRSA è versatile, può crittografare i messaggi per proteggere la riservatezza e generare firme digitali per garantire autenticità e integrità, svolgendo funzioni crittografiche duali in un unico algoritmo.
  • Ampia adozione e affidabilità comprovataCon decenni di utilizzo nel mondo reale, RSA è stato ampiamente analizzato, testato e standardizzato. La sua lunga esperienza ispira fiducia e garantisce la compatibilità su un'ampia gamma di piattaforme. applicazionie protocolli.

Quali sono gli svantaggi della crittografia RSA?

Sebbene RSA sia un metodo di crittografia ampiamente affidabile e collaudato, presenta anche diversi svantaggi che ne limitano l'efficienza e la scalabilità in alcune applicazioni. Questi svantaggi derivano principalmente dalla necessità di utilizzare chiavi di grandi dimensioni e dalla complessità computazionale delle sue operazioni.

  • Rallentamento delle prestazioniRSA è significativamente più lento degli algoritmi di crittografia simmetrica come AES. Crittografare e decrittografare grandi volumi di dati con RSA è dispendioso in termini di elaborazione, motivo per cui viene spesso utilizzato solo per lo scambio di chiavi piuttosto che per crittografare grandi quantità di dati.
  • Grandi dimensioni delle chiaviPer garantire la sicurezza contro la potenza di calcolo moderna, RSA richiede chiavi molto grandi (2048 bit o più). Chiavi più grandi aumentano i tempi di elaborazione e il consumo di risorse, rendendo RSA meno efficiente rispetto ad algoritmi più recenti come la crittografia a curva ellittica (ECC).
  • Costo computazionale elevatoLe operazioni di elevazione a potenza modulare utilizzate in RSA sono matematicamente intensive. Ciò si traduce in un elevato CPU utilizzo e velocità di elaborazione più lente, che possono rappresentare un problema in ambienti con risorse di elaborazione limitate.
  • Vulnerabilità a calcolo quantisticoLa sicurezza di RSA si basa sulla difficoltà di fattorizzare numeri interi di grandi dimensioni, ma algoritmi quantistici come quello di Shor potrebbero violare RSA in modo efficiente su computer quantistici sufficientemente potenti. Questo rende RSA meno a prova di futuro rispetto ai metodi crittografici post-quantistici.
  • Gestione delle chiavi sfideGenerare, distribuire e archiviare in modo sicuro chiavi RSA di grandi dimensioni è complesso. Se le chiavi private vengono compromesse, tutte le comunicazioni crittografate e le firme digitali basate su quella coppia di chiavi sono a rischio.

Domande frequenti sulla crittografia RSA

domande frequenti su rsa

Ecco le risposte alle domande più frequenti sulla crittografia RSA.

Quanti dati può crittografare RSA?

RSA può crittografare direttamente solo una quantità limitata di dati, e tale limite è determinato dalla dimensione della chiave e dallo schema di padding utilizzato. Nello specifico, la lunghezza massima del messaggio che può essere crittografata con RSA è leggermente inferiore alla dimensione della chiave in bytes.

Per esempio:

  • Con un Chiave a 1024 bit (128 byte), la dimensione massima del testo in chiaro è di circa 117 byte quando si utilizza il padding PKCS#1 v1.5.
  • Con un Chiave a 2048 bit (256 byte), la dimensione massima del testo in chiaro è di circa 245 byte.
  • Con un Chiave a 4096 bit (512 byte), la dimensione massima del testo in chiaro è di circa 501 byte.

La crittografia RSA è sicura?

La crittografia RSA è considerata sicura se implementata correttamente con dimensioni delle chiavi sufficientemente grandi e schemi di padding sicuri. La sua sicurezza si basa sulla difficoltà matematica di fattorizzare numeri composti di grandi dimensioni, un problema computazionalmente irrealizzabile con i computer classici quando il modulo è di almeno 2048 bit. Le raccomandazioni moderne suggeriscono di utilizzare Chiavi da 2048 bit come minimo e 3072-4096 bit per una sicurezza a lungo termine.

Tuttavia, la sicurezza di RSA dipende da diversi fattori. L'utilizzo di chiavi obsolete o di piccole dimensioni (come chiavi a 512 o 1024 bit) rende il sistema vulnerabile agli attacchi di fattorizzazione, poiché i progressi nella potenza di calcolo e negli algoritmi hanno reso possibile la decifrazione di chiavi più piccole. Anche schemi di padding impropri, come RSA grezzo senza PKCS#1 o OAEP, possono esporre le implementazioni ad attacchi basati su testo cifrato scelto.

In pratica, vulnerabilità spesso non derivano dall'algoritmo RSA in sé, ma da implementazioni deboli, scarsa generazione di numeri casuali e incapacità di seguire le migliori gestione delle chiavi pratiche.

Qual è la differenza tra AES e RSA?

Ecco un chiaro confronto tra AES e RSA:

caratteristicaAES (Standard di crittografia avanzata)RSA (Rivest-Shamir-Adleman)
TipoCrittografia simmetrica (stessa chiave per la crittografia e la decrittografia).Crittografia asimmetrica (coppia di chiavi pubblica/privata).
Dimensioni chiave128, 192 o 256 bit.In genere 1024, 2048 o 4096 bit (molto più grandi).
VelocitàMolto veloce, adatto per crittografare grandi quantità di dati.Molto più lento, adatto solo per piccoli scambi di dati o chiavi.
Base di sicurezzaRete di sostituzione-permutazione, resistente alla forza bruta quando le chiavi sono grandi.Difficoltà matematica nella scomposizione in fattori di numeri primi grandi.
Limite di dimensione dei datiPuò crittografare in modo efficiente dati di lunghezza arbitraria.Può crittografare solo piccoli blocchi (limitati alla dimensione della chiave meno il padding).
Utilizzo TipicoCrittografia di dati in blocco, VPN, crittografia del disco, comunicazioni sicure.Scambio di chiavi sicuro, firme digitali, certificati, autenticazione.
Sovraccarico delle prestazioniBasso, efficiente su hardware e software.Alto, richiede calcoli complessi (esponenziale modulare).
Minacce futureResistente agli attacchi quantistici se la dimensione della chiave è sufficiente (l'algoritmo di Grover dimezza la lunghezza effettiva della chiave).Vulnerabile agli attacchi quantistici (l'algoritmo di Shor può violare RSA in modo efficiente).

Anastasia
Spasojevic
Anastazija è una scrittrice di contenuti esperta con conoscenza e passione per cloud informatica, informatica e sicurezza online. A phoenixNAP, si concentra sulla risposta a domande scottanti su come garantire la robustezza e la sicurezza dei dati per tutti i partecipanti al panorama digitale.