Voglio proporvi un indovinello, che forse molti di voi già conoscono:
"Bob vuole inviare un oggetto a Alice. E´ un oggetto privato e non deve essere aperto da nessuno se non da lei. Decide di spedirlo in una scatola di metallo, ma l´unico modo per chiuderla è di usare un lucchetto. Scambiarsi le chiavi sarebbe troppo pericoloso. Entrambi dispongono solo di lucchetti. Come può Bob essere sicuro che la scatola possa essere aperta solo da Alice?"
E non premete "Leggi Tutto" prima di aver trovato la soluzione...
La soluzione è abbastanza macchinosa. Bob chiude la scatola con un lucchetto e la invia ad Alice. Alice non può aprire la scatola, quindi la chiude con un altro lucchetto e la rispedisce a Bob. Ora nemmeno Bob può aprire la scatola, ma può rimuovere il suo lucchetto. Fatto questo, rispedisce la scatola, ora protetta solo dal lucchetto apposto da Alice, ad Alice stessa, che la può aprire con facilità. Nessuno può essere stato in grado di aprire la scatola, dato che non ci sono stati scambi di chiavi.
Ci siete riusciti? Complimenti, avete scoperto uno degli indovinelli che ha ispirato l´invenzione della crittografia asimmetrica, o a coppia di chiavi. Questo tipo di crittografia si basa su una coppia di complessi algoritmi non reversibili, in pratica esiste un algoritmo per decrittare e uno per criptare.
In questo modo, io ho una chiave pubblica, che posso dare a chiunque, tramite la quale chi vuole può criptare un messaggio. Questo messaggio sarà letto solo da me, tramite la chiave privata che custodisco gelosamente. Al giorno d´oggi questo è uno dei sistemi più sicuri esistenti e sta anche alla base di SSL, il protocollo che protegge le pagine internet.
Ma stiamo parlando di software Open Source, vero? Allora saltiamo al 1991, quando Phil Zimmermann sviluppa PGP (Pretty good Privacy, ovvero una riservatezza niente male), in pratica un programma per PC che consentiva a chiunque di utilizzare il metodo della cifratura asimmetrica (in particolare l´algoritmo RSA) per i bisogni quotidiani.
La sicurezza che garantiva PGP era davvero niente male, forse troppo. Infatti l´algoritmo era troppo sicuro e il governo Statunitense cercò in tutti i modi di boicottare Zimmermann, dato che le agenzie di sicurezza non erano in grado di decifrare i messaggi generati da PGP.
La situazione oggi non è ancora ben chiara, PGP esiste ma implementa algoritmi differenti e comunque resteranno sempre parecchie ombre su questa faccenda.
Ma a noi non interessa, giusto? Allora passiamo ad un altro gioco. Invertiamo le lettere di PGP e otterremo...
GPG, ovvero Gnu Privacy Guard. GPG è, in parole povere, una copia Open Source e gratuita di PGP, che implementa l´algoritmo OpenPGP ed è in grado di fornire un livello di sicurezza davvero elevato.
Tramite GPG possiamo criptare messaggi, file, insomma ogni documento digitale che vogliamo, per qualche motivo, proteggere.
Possiamo creare svariate coppie di chiavi, aggiungere altri algoritmi tramite moduli, insomma un ottimo programma che, anche se si esprime meglio su Linux, è disponibile per tutti i principali sistemi operativi.
Pronti a spedirmi le vostre chiavi pubbliche? ;)