Il problema della distribuzione delle chiavi
La crittografia simmetrica è efficiente e sicura — ma ha un difetto strutturale fondamentale: mittente e destinatario devono condividere la stessa chiave segreta prima di poter comunicare. Come si scambiano questa chiave in modo sicuro su un canale non sicuro?
Se usano un canale sicuro per scambiarsi la chiave, potrebbero usare quel canale direttamente per il messaggio. Se il canale non è sicuro, la chiave viene compromessa. Il problema si amplifica quando Ada deve comunicare con decine di interlocutori diversi: servirebbe una chiave diversa per ognuno.
“Se l’aveste chiesto a tutti i crittografi del mondo nel 1975, vi avrebbero risposto che era impossibile cifrare un messaggio senza aver prima condiviso una chiave segreta.”
La rivoluzione — crittografia asimmetrica
Nel 1976 Whitfield Diffie e Martin Hellman pubblicarono “New Directions in Cryptography”, dimostrando teoricamente la possibilità di scambiare informazioni in modo sicuro senza mai condividere un segreto. L’anno successivo, nel 1977, Rivest, Shamir e Adleman ne fornirono la prima implementazione pratica: l’algoritmo RSA.
L’idea rivoluzionaria è usare due chiavi matematicamente collegate ma diverse:
Può essere distribuita liberamente a chiunque. È come pubblicare il proprio numero di telefono sull’elenco.
- Chiunque può cifrare messaggi per te
- Chiunque può verificare la tua firma digitale
Rimane segreta e non lascia mai il tuo sistema. Come la chiave fisica di casa — non si consegna a nessuno.
- Solo tu puoi decifrare messaggi cifrati con la tua chiave pubblica
- Solo tu puoi firmare digitalmente documenti
Un messaggio cifrato con la chiave pubblica può essere decifrato solo con la corrispondente chiave privata — e viceversa. Nonostante le due chiavi siano matematicamente collegate, deve essere computazionalmente impossibile ricavare la chiave privata conoscendo quella pubblica.
Requisiti di un crittosistema asimmetrico (Diffie-Hellman)
Generazione di una coppia di chiavi pubblica/privata computazionalmente facile
Cifratura con la chiave pubblica computazionalmente facile
Ricavare la chiave privata dalla chiave pubblica computazionalmente impossibile — funzione one-way
Decifratura con la chiave privata computazionalmente facile — funzione trapdoor one-way
Risalire al testo in chiaro conoscendo solo algoritmo e chiave pubblica computazionalmente impossibile
I tre scenari d’uso della crittografia asimmetrica
Scenario 1 — Confidenzialità
Ada vuole inviare un messaggio segreto a Brian che solo Brian possa leggere:
Brian pubblica la sua chiave pubblica (visibile a tutti)
Ada cifra il messaggio T con la chiave pubblica di Brian → ottiene X
Ada invia X sul canale non sicuro
Brian decifra X con la sua chiave privata → ottiene T
Scenario 2 — Autenticazione e Firma Digitale
Brian vuole provare che un messaggio proviene davvero da lui (autenticità) e che non è stato modificato (integrità):
Brian cifra il messaggio T con la sua chiave privata → firma digitale X
Chiunque decifra X con la chiave pubblica di Brian e ottiene T
Se la decifratura ha successo → il messaggio proviene certamente dal titolare della chiave privata di Brian
Scenario 3 — Confidenzialità + Autenticazione combinate
Per ottenere entrambe le garanzie si applicano le chiavi in sequenza:
L’algoritmo RSA
L’RSA (Rivest-Shamir-Adleman, 1977) è il primo e ancora il più diffuso crittosistema asimmetrico. La sua sicurezza si basa sull’asimmetria computazionale tra due operazioni:
Moltiplicare due grandi numeri primip × q = n
Fattorizzare n per trovare p e qn → p × q = ?
Generazione delle chiavi RSA — passo per passo
(n, e) = (187, 7)Distribuita liberamente
(n, d) = (187, 23)Mai rivelata — protetta con cura
Cifratura e decifratura RSA
M è il messaggio convertito in numero intero con M < n
Le proprietà dell’aritmetica modulare garantiscono M = (Me)d mod n
Esempio numerico completo — Bob cifra “CIAO” per Alice
Perché RSA è sicuro — e quali sono i suoi limiti
Per ricavare d (chiave privata) un attaccante deve fattorizzare n in p×q. Con chiavi da 2048 o 4096 bit (standard attuale), questo richiede tempo superiore all’età dell’universo con tecnologia classica.
RSA è molto più lento di AES: cifrare 1 MB con RSA-2048 richiede secondi, con AES-256 microsecondi. Non adatto per cifrare grandi quantità di dati direttamente.
L’algoritmo di Shor (1994) dimostra che un computer quantistico sufficientemente potente potrebbe fattorizzare grandi numeri in tempo polinomiale, rendendo RSA insicuro. Per questo il NIST ha avviato la standardizzazione di algoritmi post-quantistici (CRYSTALS-Kyber, CRYSTALS-Dilithium) che resistono anche agli attacchi quantistici. RSA rimane sicuro con tecnologia classica attuale, ma la transizione è già iniziata.
Crittosistemi ibridi
La soluzione definitiva combina i vantaggi di entrambi i mondi: la crittografia asimmetrica per scambiare la chiave in modo sicuro, e la crittografia simmetrica (AES) per cifrare i dati in modo efficiente. Questo è il modello alla base di TLS, HTTPS, SSH e di quasi tutti i protocolli sicuri moderni.
Brian ottiene la chiave pubblica di Ada
Genera una chiave di sessione K (AES, 256 bit) casuale e unica
Cifra il messaggio con K tramite AES → crittogramma C₁
Cifra K con la chiave pubblica di Ada tramite RSA → C₂
Invia C₁ + C₂ ad Ada sul canale non sicuro
Ada riceve C₁ (messaggio cifrato) e C₂ (chiave cifrata)
Decifra C₂ con la sua chiave privata RSA → ottiene K
Decifra C₁ con K tramite AES → messaggio originale ✓
- La crittografia asimmetrica risolve il problema della distribuzione delle chiavi usando una coppia pubblica/privata matematicamente collegata
- Chiave pubblica del destinatario = confidenzialità; chiave privata del mittente = autenticità; entrambe combinate = confidenzialità + autenticità
- RSA si basa sulla difficoltà computazionale della fattorizzazione di grandi numeri. Chiavi consigliate oggi: 2048 o 4096 bit
- RSA è lento per grandi quantità di dati → i sistemi ibridi usano RSA solo per scambiare la chiave di sessione AES
- Il calcolo quantistico (algoritmo di Shor) minaccia RSA — la transizione verso algoritmi post-quantistici è già in corso