OpenPGP utiliza la función de cadena a clave para cifrar la clave privada con una frase de contraseña y un cifrado simétrico. La función se utiliza para derivar una clave de sesión (bloque de cifrado) para el cifrado simétrico.
Puedes analizar fácilmente qué opciones está aplicando GnuPG usando el comando --list-packets
.
Valor predeterminado de AES128 (ID de algoritmo 7) para el algoritmo de cifrado:
$ echo foo | gpg2 -c | gpg2 --list-packets
[snip]
:symkey enc packet: version 4, cipher 7, s2k 3, hash 10
salt 6E6B107661BD9B19, count 102400 (105)
[snip]
Cambiar a AES256 en lugar de usar el parámetro --cipher-algo
(ID de cifrado 9):
$ echo foo | gpg2 --cipher-algo AES256 -c | gpg2 --list-packets
[snip]
:symkey enc packet: version 4, cipher 9, s2k 3, hash 10
salt 44F97F3EE31F2E46, count 102400 (105)
[snip]
Y utilizando --s2k-cipher-algo
:
$ echo foo | gpg2 --s2k-cipher-algo AES256 -c | gpg2 --list-packets
[snip]
:symkey enc packet: version 4, cipher 9, s2k 3, hash 10
salt 2BFDAE2630AB5D5C, count 102400 (105)
[snip]
Lo mismo se aplica a la configuración del recuento de iteraciones:
$ echo foo | gpg2 --s2k-count 2048 -c | gpg2 --list-packets
[snip]
:symkey enc packet: version 4, cipher 7, s2k 3, hash 10
salt 6A08AD73CC36741A, count 2048 (16)
[snip]
En otras palabras: puedes usar ambas opciones, tienen el mismo efecto y también puedes usar las otras opciones --s2k-*
para el cifrado simétrico.