Crittografia simmetrica
Questo sistema crittografico prevede l'utilizzo di una sola chiave per la cifratura e la decifrazione.
La sua affidabilità è basata esclusivamente sulla robustezza dell'algoritmo di cifratura (di solito DES - Data Encryption Standard -).
Facciamo un esempio pratico cifrando un messaggio presente nella nostra $HOME contenuto nel file file-segreto.txt.
Prima di tutto "leggiamo" le chiavi presenti nel nostro keyring identificando i dati relativi a quella creata in precedenza:
$ gpg --list-keys /home/glider/.gnupg/pubring.gpg ------------------------------- pub 1024D/3231A5D0 2008-07-26 uid Pinco Pallino (Chiave crittografica di Pinco Pallino) \ <pinco.pallino@gmail.com> sub 2048g/3B74F97C 2008-07-26 ... [cut] ...
Procediamo quindi a cifrare il messaggio:
$ gpg -r pinco.pallino@gmail.com --symmetric --encrypt file-segreto.txt
verrà richiesto l'inserimento e la conferma di una passphrase da utilizzare al momento della decifrazione del messaggio e sarà generato il file file-segreto.txt.gpg, ossia il file cifrato.
Per decifrarlo:
$ gpg -o file-decifrato.txt --decrypt file-segreto.txt.gpg
e dopo l'inserimento della passphrase scelta in precedenza si otterrà il file file-decifrato.txt.
La debolezza di questo approccio risiede nella necessità di condivisione della chiave di cifratura.
Per questo motivo, oggi, è preferibile affidarsi alla crittografia asimmetrica che garantisce una sicurezza maggiore.
Crittografia asimmetrica
Immaginiamo di disporre di un lucchetto elettronico e di due chiavi che lo aprono: una pubblica e una privata.
Metteremo a disposizione di tutti il lucchetto e la chiave pubblica, in modo tale che ogni persona che vorrà inviarci qualcosa possa "chiuderla" in un contenitore qualsiasi che sigillerà con il nostro lucchetto elettronico.
Una volta "chiuso" il tutto (ovvero, dopo aver cifrato il contenuto con PGP), il contenitore ci potrà essere inviato sicuri che nessuno, durante il tragitto, sia in condizione di aprirlo e leggerne il contenuto.
A prima vista, un messaggio cifrato è illeggibile. Anche possedendo la chiave pubblica è impossibile decifrarlo.
È la nostra chiave privata che ci permetterà di "riportare" in chiaro il messaggio ricevuto.