LEZIONE 08 · CRITTOGRAFIA ASIMMETRICA
Rendere pubblica una chiave senza pubblicare il segreto
Un sistema asimmetrico usa una coppia di chiavi correlate matematicamente. Una chiave è distribuibile; l’altra deve restare privata. Questa idea consente operazioni diverse: cifratura, firma o accordo di chiave, secondo lo schema.
- Chi?
- Bruno possiede una coppia di chiavi; Alice vuole inviargli dati o verificarne una firma.
- Che cosa?
- Operazioni distinte realizzate con chiavi pubbliche e private.
- Quando?
- Quando serve comunicare senza aver condiviso in anticipo quella chiave simmetrica o verificare una firma pubblicamente.
- Dove?
- In protocolli, documenti firmati e sistemi di distribuzione delle chiavi.
- Perché?
- Separare la capacità di verificare o cifrare dalla capacità di firmare o decifrare.
Le parole e i ruoli
- Chiave pubblica e chiave privata
- Sono parametri generati insieme per uno schema asimmetrico. La pubblica si può distribuire; la privata consente le operazioni riservate al titolare. Non deve essere praticamente ricavabile dalla pubblica con gli attacchi noti e i parametri scelti.
- Numero primo e fattorizzazione
- Un primo è un intero maggiore di 1 divisibile soltanto per 1 e per sé stesso. Fattorizzare un intero significa esprimerlo come prodotto di fattori primi, per esempio 15 = 3 × 5.
- Coprimi e inverso modulare
- Due interi sono coprimi se il loro massimo divisore comune è 1. L’inverso di e modulo t è un numero d per cui e × d dà resto 1 dividendo per t.
- Padding crittografico
- Una codifica strutturata degli ingressi, spesso con casualità, necessaria agli schemi RSA sicuri. Non è soltanto aggiungere zeri per riempire spazio.
Chi usa quale chiave?
| Obiettivo | Operazione del mittente | Operazione del destinatario |
|---|---|---|
| Riservatezza verso Bruno | Alice cifra secondo lo schema con la pubblica autentica di Bruno. | Bruno decifra con la propria privata. |
| Verificare una firma di Alice | Alice firma secondo lo schema con la propria privata. | Bruno verifica con la pubblica autentica di Alice. |
Non tutte le coppie o famiglie supportano entrambe le righe. ECDSA è uno schema di firma; X25519 serve all’accordo di chiave. Non si possono scambiare i ruoli delle chiavi e aspettarsi sempre un algoritmo utile.
RSA con numeri minuscoli, tutti controllabili
RSA prende il nome da Rivest, Shamir e Adleman. Il seguente è RSA scolastico senza padding, insicuro e da non usare in applicazioni. Serve a vedere le relazioni aritmetiche.
- Scegliamo p = 61 e q = 53. Il prodotto n = p × q vale 3233; n è il modulo, non una chiave segreta da solo.
- Calcoliamo φ(n) = (p − 1)(q − 1) = 3120. In questo caso conta gli interi tra 1 e n coprimi con n.
- Scegliamo e = 17, coprimo con 3120. Troviamo d = 2753, perché 17 × 2753 = 46801 = 15 × 3120 + 1.
- La chiave pubblica didattica è (n, e); quella privata comprende d e, nelle implementazioni, normalmente anche altri parametri segreti.
- Rappresentiamo il messaggio con m = 65, minore di n. Cifriamo c = me mod n = 2790.
- Decifriamo m = cd mod n e otteniamo di nuovo 65.
L’esponenziazione modulare calcola potenze riducendo periodicamente il risultato modulo n: non serve costruire prima un numero astronomico intero. Questi parametri sono immediatamente attaccabili: fattorizzare 3233 è banale.
Dal giocattolo a uno schema utilizzabile
RSA «grezzo» è deterministico e ha proprietà algebriche sfruttabili. Gli schemi RSA-OAEP per cifratura e RSA-PSS per firma definiscono codifiche e controlli diversi. La specifica PKCS #1 / RFC 8017 distingue questi usi. Non basta applicare una potenza al digest e chiamare il risultato «firma sicura».
La lunghezza del modulo RSA non è confrontabile direttamente con i bit di una chiave AES: gli attacchi matematici sono diversi. L’affermazione delle trascrizioni su «RSA sicuro con 150 bit» è errata. Per i progetti contemporanei si usano dimensioni di migliaia di bit, con scelte legate al periodo di protezione e alle regole del sistema. RSA-2048 viene comunemente associato a circa 112 bit di sicurezza classica; non a 2048 bit di sicurezza simmetrica. NIST SP 800-57, equivalenze di sicurezza.
Perché si usano sistemi ibridi
La cifratura ibrida combina un meccanismo a chiave pubblica per proteggere o concordare un segreto e uno simmetrico per i dati. RSA-OAEP ha anche un limite sulla quantità di dati cifrabili in una singola operazione. Per un video o un backup è naturale generare una chiave simmetrica e proteggere quella nel modo previsto dal protocollo, anziché trattare ogni pezzo con RSA.
Il vero problema della chiave pubblica
Se Eva sostituisce la pubblica di Bruno con la propria, Alice può cifrare perfettamente per la persona sbagliata. La robustezza dell’algoritmo non prova l’identità del proprietario: servono un canale di verifica, un certificato o un altro modello di fiducia.
Fattorizzare n equivale a risolvere qualsiasi variante di RSA?
Conoscere i fattori permette di ricostruire i parametri privati e rompere RSA. Non è dimostrata in generale l’equivalenza tra ogni possibile attacco a RSA e la fattorizzazione. Implementazioni, padding e protocolli possono inoltre offrire strade più facili di attaccare la matematica.
Origine: video 10 e 15. Esercizio sui calcoli RSA; specifiche e riferimenti.