Introduzione
La crittografia moderna è uno dei pilastri della sicurezza informatica. Tra i suoi algoritmi più iconici c’è RSA, un sistema a chiave pubblica che ha rivoluzionato il modo in cui proteggiamo le informazioni. Questo articolo esplora le origini storiche di RSA, i concetti matematici alla base, aneddoti curiosi e esempi pratici per comprenderne il funzionamento.
Le Origini di RSA
RSA è l’acronimo dei cognomi dei suoi inventori: Ron Rivest, Adi Shamir e Leonard Adleman, tre ricercatori del MIT. Nel 1977 pubblicarono un rivoluzionario algoritmo di crittografia a chiave pubblica. Tuttavia, la storia ha un colpo di scena: prima della pubblicazione di RSA, i servizi segreti britannici (GCHQ) avevano già scoperto un algoritmo simile, ma lo mantennero segreto. Il matematico Clifford Cocks è considerato il “padre segreto” di RSA, avendo ideato una versione simile nel 1973.
Perché RSA è Rivoluzionario
Prima di RSA, la crittografia era quasi esclusivamente simmetrica: la stessa chiave veniva usata per cifrare e decifrare. Questo comportava un grosso problema: la distribuzione sicura delle chiavi.
RSA ha introdotto la crittografia asimmetrica, basata su due chiavi:
- Chiave pubblica: usata per cifrare.
- Chiave privata: usata per decifrare.
Chiunque può inviare un messaggio cifrato, ma solo il destinatario con la chiave privata può leggerlo.
I Fondamenti Matematici di RSA
RSA si basa su concetti fondamentali della teoria dei numeri, in particolare:
1. Numeri primi grandi
La sicurezza di RSA si fonda sulla difficoltà di fattorizzare grandi numeri. Sia:
- due numeri primi molto grandi:
peq - il loro prodotto:
n = p × q
Il numero n fa parte della chiave pubblica, ma recuperare p e q da n è computazionalmente proibitivo.
2. Funzione di Eulero
La funzione di Eulero φ(n) per numeri primi p e q è:
φ(n) = (p - 1)(q - 1)
3. Esponenziazione modulare
- Si sceglie un esponente pubblico
etale che1 < e < φ(n)egcd(e, φ(n)) = 1 - Si calcola l’inverso modulo di
e, cioèd, tale che:
e * d ≡ 1 mod φ(n)
4. Cifratura e decifratura
Per un messaggio M (numerico, con M < n):
- Cifratura:
C = M^e mod n - Decifratura:
M = C^d mod n
Un Esempio Semplificato
p = 61,q = 53n = 61 × 53 = 3233φ(n) = (61-1)(53-1) = 3120
Scegliamo e = 17, che è coprimo con 3120.
Calcoliamo d: l’inverso modulo di 17 mod 3120 è d = 2753
Messaggio: M = 123
- Cifratura:
C = 123^17 mod 3233 = 855 - Decifratura:
M = 855^2753 mod 3233 = 123
Sicurezza e Limiti
La sicurezza di RSA dipende dalla lunghezza delle chiavi. Con chiavi da 2048 bit, la fattorizzazione richiederebbe secoli con i computer attuali. Tuttavia, l’arrivo dei computer quantistici (con l’algoritmo di Shor) minaccia di rendere la fattorizzazione un compito banale.
Applicazioni Pratiche
- HTTPS: RSA protegge lo scambio di chiavi nei protocolli web sicuri.
- Firma Digitale: L’autore firma con la chiave privata, il ricevente verifica con la chiave pubblica.
- Email e VPN: sistemi come PGP usano RSA per garantire riservatezza e autenticazione.
Aneddoti Interessanti
- Il primo messaggio cifrato con RSA fu il testo: “Ceci n’est pas un message secret.”
- La scoperta di Clifford Cocks rimase segreta fino al 1997, vent’anni dopo la pubblicazione di RSA.
Conclusione
RSA rappresenta uno degli esempi più brillanti di come la matematica astratta possa rivoluzionare la vita quotidiana. Dalla teoria dei numeri alla sicurezza delle transazioni online, RSA rimane un simbolo dell’eleganza crittografica, anche mentre si avvicina una nuova era quantistica.
Vuoi provare a generare una coppia di chiavi RSA o vedere un’applicazione interattiva? Scrivicelo nei commenti!
