web-dev-qa-db-ja.com

PGP秘密鍵ブロックには公開鍵も「含まれています」か?

ASCIIで保護されたPGP秘密鍵を空のGnuPG鍵リングにインポートすると(事前に~/.gnupgを削除して)、鍵リングに公開鍵と秘密鍵の両方が含まれていることに気付きました。また、ASCIIで装甲された秘密鍵ブロックは、私の公開鍵ブロックの約2倍のサイズであるため、秘密鍵ブロックには秘密鍵と公開鍵の両方が含まれているのに対し、公開鍵ブロックには後者のみが含まれていると思います。

鍵を作成してから、これまで、エクスポートした秘密鍵ブロックを含む1つのファイルと、エクスポートした公開鍵ブロックを含む別のファイルで鍵をバックアップしてきました。公開鍵ブロックのバックアップは冗長ですか?したがって、秘密鍵ファイルを保持するだけで安全ですか?

このコマンドを使用して、秘密鍵ファイルを作成します。

gpg --export-secret-keys -a > private

公開鍵ファイルを作成するためのこのコマンド:

gpg --export -a > public
13
Delan Azabani

はい、OpenPGPの「秘密鍵」パケットと「秘密サブキー」パケットには、公開パラメータと秘密パラメータの両方が含まれています。 pgpdump を使用してエクスポートされたキーを調べることにより、これを確認できます。

 $ gpg --export-secret-key grawity | pgpdump 
旧:秘密鍵パケット(タグ5)(1854バイト)
バージョン4-新
公開鍵の作成時間-Sat Oct 31 14:54:03 EET 2009 
 Pub alg-RSA Encrypt or Sign(pub 1)
 RSA n(4096ビット)-... 
 RSA e(17ビット)-.。
 Sym alg-CAST5(sym 3)
文字列からキーへの反復およびソルト(s2k3):
ハッシュalg-SHA1(ハッシュ2)
ソルト--12 24 0f e1 5b 7e e2 46 
カウント-65536(コード化されたカウント96)
 IV --91 a3 44 71 47 87 a4 ba 
 暗号化されたRSAd 
暗号化されたRSAp 
暗号化されたRSAq 
暗号化されたRSAu
暗号化されたSHA1ハッシュ

これは、OpenPGPだけでなく、ほとんどの非対称鍵システムに当てはまります。

15
user1686