Algoritmi ibridi

Gli algoritmi a chiave pubblica non sono una panacea. Molti algoritmi simmetrici sono più forti dal punto di vista della sicurezza; le operazioni di criptazione e decriptazione a chiave pubblica sono più costose delle corrispondenti operazioni dei sistemi simmetrici. Ciò nonostante, gli algoritmi a chiave pubblica rappresentano uno strumento efficace per distribuire le chiavi degli algoritmi simmetrici e per questo vengono usati in sistemi di crittografia ibridi.

Un algoritmo ibrido utilizza sia un sistema simmetrico che uno a chiave pubblica. In particolare esso funziona utilizzando un algoritmo a chiave pubblica per condividere una chiave per il sistema simmetrico. Il messaggio effettivo è quindi criptato usando tale chiave e successivamente spedito al destinatario. Poiché il metodo di condivisione della chiave è sicuro, la chiave simmetrica utilizzata è differente per ogni messaggio spedito. Per questo viene detta a volte chiave di sessione.

Sia PGP che GnuPG usano algoritmi ibridi. La chiave di sessione, criptata utilizzando l'algoritmo a chiave pubblica, e il messaggio da spedire, cifrato con l'algoritmo simmetrico, sono automaticamente combinati in un solo pacchetto. Il destinatario usa la propria chiave privata per decifrare la chiave di sessione che viene poi usata per decifrare il messaggio.

Un algoritmo ibrido non è mai più forte del più debole algoritmo utilizzato, sia esso quello a chiave pubblica o quello simmetrico. In PGP e GnuPG l'algoritmo a chiave pubblica è probabilmente il più debole dei due. Fortunatamente, però, se un malintenzionato dovesse decifrare una chiave di sessione, egli sarebbe in grado di leggere solo un messaggio, quello criptato cone quella chiave di sessione. Il malintenzionato dovrebbe ricominciare di nuovo e decifrare un'altra chiave di sessione per poter leggere un altro messaggio.