Lo standard OpenPGP include il formato per codificare le chiavi private come sequenze di byte e per sequenziare simmetricamente sequenze di byte con un chiave derivata da password. Mentre qualsiasi implementazione PGP è libera di memorizzare le chiavi private nel modo che ritiene opportuno, la maggior parte (se non tutte) utilizzerà i formati OpenPGP.
Il punto critico nella crittografia basata su password è il modo in cui la password viene derivata in una chiave. Questa è tutta la hashing password teoria: il processo di derivazione deve essere reso lento (ad esempio con un numero configurabile di iterazioni) e utilizzare un parametro di variazione chiamato salt . OpenPGP include una derivazione "decente" basata su password, chiamata S2K iterato e salato . Se si presta attenzione a specificare un conteggio sufficientemente alto (ovvero, quanto è tollerabile sulla macchina), è possibile ottenere una buona sicurezza. Con l'implementazione GnuP di OpenPGP, il conteggio dell'iterazione viene specificato con l'opzione della riga di comando --s2k-count
.
Naturalmente, la difesa primaria contro la forza bruta su una password è scegliere una password sicura, cioè una password con un sacco di casualità in essa. Le itterazioni e i sali sono solo dei metodi per far fronte alle password non tanto forti che esplodono nel caos aggrovigliato dei neuroni umani.