Las implementaciones de OpenPGP aplican el hashing de la contraseña durante el proceso S2K. Permiten ajustar el algoritmo y el número de iteraciones.
Por defecto, GnuPG 1.4.12 usa SHA1 para realizar hashing con 65536 rondas. El algoritmo se puede cambiar a MD5, RIPEMD160 o SHA2s. Número de iteraciones se pueden cambiar también. La configuración actual se puede ver escribiendo gpg --list-packets ~/.gnupg/secring.gpg
Sin embargo, todos los algoritmos compatibles con GnuPG 1.4.12 pueden ser implementados de manera eficiente on GPU . Y por lo tanto, no son las mejores opciones para el hashing de contraseñas.
Será mejor usar bcrypt
o scrypt
en lugar de --s2k-*
GnuPG opciones. Como no son compatibles con GnuPG, puedes usar una implementación lateral de la misma.