Generalmente, OpenPGP utilizza un approccio ibrido: il messaggio stesso è crittografato con un algoritmo di crittografia simmetrica come AES e una distinta chiave di sessione (un numero casuale ampio creato individualmente per ciascun messaggio crittografato), e quindi la chiave di sessione viene crittografata utilizzando la crittografia a chiave pubblica / privata. Ciò combina i vantaggi di entrambi i concetti: la crittografia simmetrica è molto veloce, mentre la crittografia a chiave pubblica / privata consente funzionalità avanzate di gestione delle chiavi (ovvero, avendo diviso le chiavi pubbliche e private).
Quindi, mentre tecnicamente il file è crittografato con crittografia simmetrica, questo non è direttamente visibile all'utente. Non è totalmente sbagliato se si dice che il file è crittografato tramite crittografia a chiave pubblica / privata, in quanto la chiave di sessione non è accessibile senza la chiave privata.
OpenPGP consente anche la semplice crittografia simmetrica, in cui la chiave di sessione è derivata da una passphrase senza alcuna crittografia a chiave pubblica / privata.