Pomijając fakt, i tak lepiej nie wdrażać niestandardowego kodu kryptograficznego, odkrywasz na nowo koło. Funkcjonalność OpenPGP string-to-key jest konfigurowalna i może być dostosowana do twoich potrzeb, nie tracąc przy tym kompatybilności. Nie omawiam tutaj twoich wyborów w liczbie cykli, chociaż wydają się one trochę surowe. Polecam przeczytanie W którym momencie dodanie większej liczby iteracji do PBKDF2 nie zapewnia dodatkowego bezpieczeństwa? na ten temat.
Z man gpg
:
--s2k-cipher-algo name
Użyj nazwy jako algorytmu szyfrującego do szyfrowania symetrycznego z hasłem, jeśli nie podano --personal-cipher-preferences
i --cipher-algo
. Wartość domyślna to AES-128.
--s2k-digest-algo name
Użyj nazwy jako używanego algorytmu podsumowania aby zmienić hasła w celu szyfrowania symetrycznego. Wartość domyślna to SHA-1.
--s2k-mode n
Określa sposób manipulowania hasłami do szyfrowania symetrycznego. Jeśli n wynosi 0, zostanie użyte zwykłe hasło (które nie jest ogólnie zalecane), 1 dodaje sól (która nie powinna być używana) do hasła, a 3 (domyślne) iteruje cały proces kilka razy ( zobacz --s2k-count
).
--s2k-count n
Określ ile razy hasła manipulujące przy szyfrowaniu symetrycznym są powtarzane. Ta wartość może wynosić od 1024 do 65011712 włącznie. Wartość domyślna jest pytana z gpg-agent. Zwróć uwagę, że nie wszystkie wartości z zakresu 1024-65011712 są prawidłowe i jeśli zostanie wybrana niedozwolona wartość, GnuPG zaokrągli w górę do najbliższej dozwolonej wartości. Ta opcja ma znaczenie tylko wtedy, gdy --s2k-mode
jest ustawiony na wartość domyślną 3.
Na koniec następujące opcje będą miały ten sam efekt:
gpg --s2k-mode 3 --s2k-digest-algo SHA512 --s2k-count 10000000 --symmetric
--s2k-mode 3
jest domyślnym ustawieniem GnuPG (i jedynym rozsądnym ustawieniem tej opcji); Nie włączyłem --s2k-cipher-algo
, ponieważ nie jest to istotne dla wyprowadzania klucza (i nie jest obsługiwane przez opisaną przez Ciebie „pre-derywację”). Alternatywnie możesz ustawić tę opcję jako domyślną w swoim gpg.conf
:
s2k-mode 3s2k-digest-algo SHA512s2k-count 10000000
Te opcje mogą być używane nie tylko do symetrycznego szyfrowania wiadomości / plików, ale są również używane do ochrony kluczy prywatnych za pomocą hasła.