Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lezione 20: crittografia asimmetrica (o a chiave pubblica) - Coggle Diagram
Lezione 20: crittografia asimmetrica (o a chiave pubblica)
Utilizza due chiavi diverse per crittografia e decrittografia, una
pubblica
e l'altra
privata
Deve essere computazionalmente impossibile per un attaccante determinare la chiave di decrittografia conoscendo soltanto l'algoritmo e la chiave di crittografia
Si può scegliere arbitrariamente quale delle due chiavi usare per la crittografia e la decrittografia
Si basa su
funzioni matematiche
invece che su trasformazioni/permutazioni viste nella crittografia simmetrica
Non è vero che sia più resistente e che rende obsoleta la crittografia simmetrica, ma ne risolve alcuni problemi
Distribuzione delle chiavi
: progettare sistemi crittografici sicuri e poi doversi affidare a un KDC esterno per la trasmissione delle chiavi sembra un po' un controsenso
Firma digitale
: con essa si può finalmente garantire che un determinato messaggio provenga da una certa entità
Un utente genera due chiavi: una viene inserita in un registro pubblico e l'altra viene tenuta segreta
Crittografia
Se A vuole mandare un messaggio a B, va a prendersi la chiave pubblica di B e la usa per cifrare il messaggio. A questo punto solo B, con la sua chiave privata, potrà decifrare il messaggio ricevuto
Un attaccante può solamente osservare il testo cifrato e cercare di stimare il messaggio in chiaro o la chiave provata aiutandosi con la chiave pubblica
Autenticazione
A, per autenticarsi a B, cifra un messaggio di autenticazione con la sua chiave privata e lo invia a B. A questo punto solo la chiave pubblica di A potrà decifrare il messaggio e B verificherà questo per confermare l'identità di A
In questo caso non vi è segretezza, il messaggio di autenticazione può essere decifrato da chiunque
Queste due funzionalità vengono eseguite in serie per ottenere sia autenticazione del mittente che la cifratura del messaggio
Requisiti
Deve essere computazionalmente facile decifrare il messaggio utilizzando la chiave privata
Deve essere computazionalmente impossibile per un attaccante determinare la chiave privata conoscendo la pubblica
Deve essere computazionalmente facile conoscere la chiave pubblica e il messaggio da cifrare
Con
facile
si intende di complessità polinomiale. Non c'è infatti bisogno di rendere gli algoritmi complessi
Deve essere computazionalmente impossibile per un attaccante determinare la chiave privata e il testo cifrato
Deve essere computazionalmente facile generare la coppia di chiavi
Le due chiavi possono essere applicate in qualsiasi ordine
Vulnerabilità
Occorre utilizzare chiavi molto lunghe per contrastare attacchi a forza bruta
Questo però impatterà sulla complessità delle operazioni di cifratura e decifratura
Esistono attacchi specifici, seppur molto complessi, che consentirebbero di ricavare la chiave privata partendo da quella pubblica