No OpenPGP, existem duas possibilidades para derivar a chave simétrica (sessão) da frase secreta: usando diretamente a frase secreta para derivar a chave, ou gerando uma chave aleatória que é criptografada com a chave gerada. Ainda assim, em ambos os casos, a chave simétrica é sempre armazenada junto com o texto cifrado e a chave simétrica não pode ser separada sem perder a compatibilidade com o formato OpenPGP. No final, a chave também pode ser forçada pela frase-senha, não importa que tipo de armazenamento a chave seja usada.
O OpenPGP força a senha com força bruta, gerando uma grande entrada para hash (iterando a senha várias vezes para a entrada hash). Desta forma, forçar a senha é muito mais caro. De RFC 4880, OpenPGP, 3.7.1.3. S2K iterado e salgado :
This includes both a salt and an octet count. The salt is combined with the passphrase and the resulting value is hashed repeatedly. This further increases the amount of work an attacker must do to try dictionary attacks.
No GnuPG, o número de vezes para repetir a senha (e algumas outras opções) pode ser tweaked usando as opções --s2k-*
.