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 con quella chiave di sessione. Il malintenzionato
dovrebbe ricominciare di nuovo e decifrare un'altra chiave di
sessione per poter leggere un altro messaggio.