3 155
contributi
Wtf (discussione | contributi) |
Wtf (discussione | contributi) |
||
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. |
contributi