Salve gente, tra 10 giorni avrò l'orale e tra i vari argomenti ho la crittografia.
L'unico intoppo che sto riscontrando è quello di capire praticamente come funziona la crittografia asimmetrica.
Qualcuno di voi potrebbe, in modo semplice, spiegarmi come funziona?
Ho letto su wikipedia ma non ho ancora chiaro come funziona
L'aspetto matematico direi che è un po' complesso e richiede determinate conoscenze per essere appieno compreso. Però le varia analogie e spiegazioni che si trovano dovrebbero essere sufficienti per avere un'idea del funzionamento generale e della grande utilità.
Cosa non ti è chiaro di preciso?
Non mi è chiaro come, per esempio A che invia un pacchetto a B, come fa A ad avere il "lucchetto" di B?
A, prima di inviare un messaggio invia la richiesta del lucchetto?
Questo non potrebbe essere comunque intercettato come un semplice pacchetto e dunque rendere i messaggi facili da leggere?
Forse sono dubbi stupidi ma vorrei chiarimenti, grazie.
L'esempio è quello presente su wikipedia.
Dunque, in quella analogia il lucchetto è la cosiddetta chiave pubblica. Se Alice vuole inviare un messaggio a Bob e usare la crittografia asimmetrica, deve necessariamente conoscere la chiave pubblica di Bob. Quindi o la conosce già (per esempio Bob l'ha consegnata mediante un canale sicuro, o anche personalmente) o la deve chiedere. Ovviamente se il canale mediante cui Alice richiede a Bob la propria chiave pubblica è una canale di comunicazione soggetto a manomissioni esterne, un malintenzionato quale Mallory potrebbe intercettare la chiave pubblica di Bob, tenerla per sé ed inviare ad Alice una sua chiave facendole credere che sia quella di Bob. E quindi il tutto non e sicuro in questo caso.
Se invece il canale non può essere manomesso la comunicazioni è sicura, e la cosa incredibile è che rimane sicura anche se chiunque può osservare (ma non modificare) i messaggi che vi viaggiano!
La crittografia asimmetrica è infatti asimmetrica, ossia si usa una chiave (solitamente quella pubblica) per codificare un messaggio, e l'altra (quella privata) per decodificarlo. Ma se si conosce il messaggio cifrato e la chiave utilizzata per cifrarlo non è possibile risalire al messaggio originale (se non con la forza bruta ovviamente, ossia provando a codificare tutti i possibili messaggi che si possono creare).
Quindi all'atto pratico, cosa accade quando visiti una pagina web mediante protocollo HTTPS, come ad esempio la stessa voce di Wikipedia che hai riportato? Come fa il tuo PC a conoscere la chiave pubblica del server di Wikipedia usando la rete internet, che può essere manomessa da terzi?
Gliela chiede, e la ottiene nel certificato SSL del sito, che è firmato da un ente fidato. Ossia ci sono pochi enti fidati che possono firmare i certificati di sicurezza, il browser possiede (già quando lo scarichi) le chiavi pubbliche di questi enti (Certificate Authority) e le usa per verificare le firme dei certificati dei vari siti. La firma crittografica di un qualcosa non è altro che un hash del dato da firmare codificato mediante la chiave privata (qua solitamente si usa la chiave privata per codificare, al contrario di prima).
Spero di non averti ulteriormente confuso le idee, se ti ho lasciato qualche dubbio o te ne ho fatto venire altri, chiedi pure!