Nel 1976 viene resa pubblica la scoperta della crittografia a chiave pubblica o asimmetrica. Un modo nuovo per crittografare i propri messaggi che non vedeva più l’esistenza di una sola chiave per cifrare e l’uso della stessa per decifrare.
Si hanno due chiavi differenti: una detta chiave privata che deve rimanere sconosciuta per tutti tranne per il proprietario mentre la chiave pubblica che può essere distribuita a tutti senza restrizioni perché è computazionalmente impossibile risalire alla chiave privata conoscendo quella pubblica.
Questo tipo di crittografia elimina il problema dello scambio delle chiavi che deve essere confidenziale. Posso assicurarvi che non è una cosa da poco.
Alla fine degli anni 80, è stato scritto un programma circolato gratuitamente che permettesse l’uso di uno dei più potenti algoritmi di crittografia a chiave pubblica ancora oggi esistenti.
Il programma si chiamava Pretty Good Privacy, abbreviato con PGP, e fu un successo. La potenza di questa crittografia era già nota allora e come Prometeo che aveva sottratto il fuoco agli dei, i primi anni di vita di PGP furono molto difficili per via di innumerevoli problemi legali.
Tuttavia la situazione si risolse verso la fine degli anni 90, anche se sfortunatamente l’ultima versione per il mercato internazionale rilasciata è PGP 8.0 datata 3 marzo 2002. Ora la suite di programmi cresciuta attorno all’originale PGP è commercializzata da Symantec.
Quella che potrebbe sembrare una storia triste, invece riserva per fortuna degli aspetti positivi: GnuPG è l’implementazione gratuita e open source delle specifiche di PGP (OpenPGP) in continuo sviluppo.
Con GnuPG è possibile cifrare un file e inviarlo tramite la rete a una persona con la sicurezza che solo quest’ultima sarà in grado di decifrarlo.
Come funziona la cifratura di un messaggio o di un file.
Per cifrare il messaggio, il mittente utilizza la chiave pubblica del destinatario, mentre il ricevente usa la propria chiave privata per decodificarlo.
Le due chiavi sono collegate in modo matematico, tuttavia è praticamente impossibile indovinare la chiave privata disponendo di quella pubblica.
I programmi per la sicurezza della posta elettronica mantengono segreta la chiave privata richiedendo all’utente una password per poterla usare.
Il metodo asimmetrico elimina un problema ma ne introduce due.
crittografare il messaggio è necessario conoscere la chiave pubblica del destinatario
le fasi di codifica e decodifica basate su questo metodo sono molto lente
Firma digitale
La crittografia asimmetrica in alcuni casi può essere usata per rilevare manomissioni o contraffazioni tramite una tecnica chiamata firma digitale dove in pratica la codifica avviene con l’ uso della chiave privata del mittente anziché con quella pubblica del destinatario come nella cifratura asimmetrica normale.
Per avvisare il destinatario in caso di manomissioni, il programma che gestisce la sicurezza genera un codice matematico del messaggio usando una funzione di hash. Una funzione di hash non fa altro che prendere il messaggio e trasformarlo in una sequenza di byte o caratteri molto più corta della dimensione del messaggio.
Il codice generato dalla funziona di hash viene codificato con la chiave privata del mittente trasmettendo quella pubblica insieme al messaggio stesso. Il destinatario la utilizzerà poi per decodificare l’hash; se quest’ultimo si rivelerà corretto, il messaggio trasmetto è integro.