OpenPGP utilizza la funzione da stringa a chiave per crittografare la chiave privata con una passphrase e una crittografia simmetrica. La funzione viene utilizzata per derivare una chiave di sessione (blocco di cifratura) per la crittografia simmetrica.
Puoi facilmente analizzare le opzioni che GnuPG sta applicando utilizzando il comando --list-packets
.
Valore predefinito di AES128 (algoritmo ID 7) per l'algoritmo di crittografia:
$ 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]
Passare a AES256 utilizzando invece il parametro --cipher-algo
(cipher ID 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]
E utilizzando --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 stesso vale per l'impostazione del conteggio delle iterazioni:
$ 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]
Con altre parole: puoi utilizzare entrambe le opzioni, hanno lo stesso effetto e puoi anche utilizzare le altre opzioni --s2k-*
per la crittografia simmetrica.