Chiavi simmetriche e chiavi pubbliche: differenze tra le versioni

Riga 46: Riga 46:
E si può verificare che è tornato allo stato originale.
E si può verificare che è tornato allo stato originale.


==Chiavi asimmetriche==
== Chiavi asimmetriche ==
 
=== Introduzione ===
 
In questo caso la chiave usata per cifrare e decifrare non è la stessa. Infatti una è utilizzata solo per cifrare (la chiave pubblica) e l'altra solo per decifrare (la chiave privata). Di conseguenza le due chiavi devono essere fortemente connesse tra di loro.
In questo caso la chiave usata per cifrare e decifrare non è la stessa. Infatti una è utilizzata solo per cifrare (la chiave pubblica) e l'altra solo per decifrare (la chiave privata). Di conseguenza le due chiavi devono essere fortemente connesse tra di loro.
La chiave pubblica, come dice il nome, deve esser resa pubblica a tutte le persone che vogliono parlare con me in maniera sicura. Ad esempio io posso pubblicarla sul mio sito oppure spedirla via mail. La chiave privata è solamente mia e non va assolutamente trasmessa via mail.
La chiave pubblica, come dice il nome, deve esser resa pubblica a tutte le persone che vogliono parlare con me in maniera sicura. Ad esempio io posso pubblicarla sul mio sito oppure spedirla via mail. La chiave privata è solamente mia e non va assolutamente trasmessa via mail.
Il punto focale di questo metodo è quello di eliminare la necessità di scambiarsi una chiave segreta, quindi di eliminare tutti i problemi connessi a quel tipo di operazione. Prima di passare all'utilizzo pratico è necessario avere le idee chiare su qualche aspetto teorico:
# Come già detto una sola chiave deve essere usata per criptare i dati ed una sola per decifrarli, tuttavia questo non significa che sia realmente impossibile usare la chiave dedicata alla decrittazione per criptare i dati, ma semplicemente che un messaggio può essere decriptato solo se si usano le chiavi "nel giusto ordine". Posto ad esempio che key1 sia la chiave per criptare e key2 quella per decriptare, usando key2 su un messaggio criptato con key1 si ottiene il messaggio di partenza, mentre usando key1 o key2 su un messaggio criptato attraverso key2 sarebbe impossibile ricostruire il messaggio di partenza. Ovviamente è anche impossibile usare key1 per decifarare un messaggio criptato con key1.
# I dati che si vuole inviare in modo sicuro devono essere criptati con la chiave "criptatrice" del ricevente e non con quella dello spedente, ecco perché la chiave per criptare deve necessariamente essere pubblica. Questo fatto implica anche che chi spedisce non è più in grado di leggere i (suoi) dati una volta criptati con la chiave del ricevente. Chiaramente se chi spedisce è interessato a poter accedere a tali dati deve averne una copia, in chiaro oppure criptata con un sistema di cui possieda la chiave di decrittazione.
# Sebbene la chiave di decrittazione sia sconosciuta a tutti (si spera...) eccetto che al legittimo possessore, questo non significa che sia teoricamente impossibile ricostruirla autonomamente partendo dalla chiave pubblica. Chiave pubblica e privata condividono necessariamente un legame matematico, per quanto nascosto (altrimenti sarebbe impossibile decifrare a chiunque i dati di partenza), tuttavia il tempo necessario a ricostruire autonomamente tale legame, e quindi la chiave di decrittazione, è talmente elevato da rendere la suddetta operazione concretamente impossibile. Si noti che col passare degli anni si rende necessario l'uso di chiavi più lunghe a parità di sistema di criptazione usato, infatti l'aumento delle capacità di calcolo degli elaboratori comporta che a parità di lunghezza di una chiave il tempo necessario per ricostruirla si riduce.
=== Utilizzo ===


Vediamo ora sul lato pratico come si procede.
Vediamo ora sul lato pratico come si procede.
2 894

contributi