Zauważyłem, że jeśli zaimportuję mój prywatny klucz PGP w zbroi ASCII do skądinąd pustego klucza GnuPG (przez ~/.gnupg
wcześniejsze usunięcie ), klucz ten zawiera zarówno klucze publiczne, jak i prywatne. Ponadto zbrojony blok klucza prywatnego ASCII jest około dwa razy większy niż mój odpowiednik klucza publicznego, co prowadzi mnie do przekonania, że blok klucza prywatnego zawiera zarówno klucze prywatny, jak i publiczny, podczas gdy blok klucza publicznego zawiera tylko ten ostatni.
Odkąd stworzyłem swój klucz, do tej pory utworzyłem kopię zapasową jednego pliku zawierającego jeden wyeksportowany blok klucza prywatnego, a drugi z wyeksportowanym blokiem klucza publicznego. Czy kopia zapasowa mojego bloku klucza publicznego jest zbędna, a zatem czy mogę bezpiecznie przechowywać plik klucza prywatnego?
Używam tego polecenia, aby utworzyć plik klucza prywatnego:
gpg --export-secret-keys -a > private
i to polecenie, aby utworzyć plik klucza publicznego:
gpg --export -a > public
Odpowiedzi:
Tak, pakiety „tajny klucz” i „tajny podklucz” OpenPGP zawierają zarówno parametry publiczne, jak i prywatne. Możesz to sprawdzić za pomocą pgpdump do sprawdzenia wyeksportowanego klucza:
Dotyczy to większości asymetrycznych systemów kluczy, nie tylko OpenPGP.
źródło
openssl genrsa
wyjść tylko „prywatna” blok, więc blok publicznego mogą być uzyskane z niego). Można je zbadać siebie:openssl genrsa 512 | openssl asn1parse -i
. Lub sprawdź załącznik RFC 3447, który wyraźnie pokazuje moduł i publicExponent w strukturze RSAPrivateKey.