PGP秘密鍵ブロックは、公開鍵も「含む」のですか?


13

ASCII装甲PGP秘密鍵を空のGnuPG鍵リングにインポートする場合(~/.gnupg事前に削除することにより)、鍵リングには公開鍵と秘密鍵の両方が含まれることに気付きました。また、ASCII装甲秘密鍵ブロックは、公開鍵の2倍のサイズであるため、秘密鍵ブロックには秘密鍵と公開鍵の両方が含まれ、公開鍵ブロックには後者のみが含まれると考えられます。

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

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

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

そして、公開鍵ファイルを作成する次のコマンド:

gpg --export -a > public

1
誰かがあなたの質問に答えるには、キーのエクスポートに使用するコマンドを追加する必要があります。答えはおそらくその中にあります。しかし、公開鍵をエクスポートしないことで何が得られますか?バックアップルーチンに残しておくといいでしょう。費用は一切かかりません。また、すべての目的のために、すでに公開されている公開キーのみが必要です。
ブラム

ありがとうBram; わかりやすくするために質問を編集しました。そして、はい、〜3 KBを節約しても本当の利点はありません。ただ興味があります。
デランアザバニ

回答:


15

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

$ gpg --export-secret-key grawity | pgpdump
古い:秘密鍵パケット(タグ5)(1854バイト)
    Ver 4-新規
    公開鍵作成時間-2009年10月31日14:54:03 EET
    Pub alg-RSA Encrypt or Sign(pub 1)
    RSA n(4096ビット)-...
    RSA e(17ビット)-...
    Sym alg-CAST5(sym 3)
    文字列からキーへの反復およびソルト(s2k 3):
        ハッシュアルゴリズム-SHA1(ハッシュ2)
        塩-12 24 0f e1 5b 7e e2 46 
        カウント-65536(コード化されたカウント96)
    IV-91 a3 44 71 47 87 a4 ba 
    暗号化されたRSA d
    暗号化されたRSA p
    暗号化されたRSA q
    暗号化されたRSA u
    暗号化されたSHA1ハッシュ

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


PEMでエンコードされたRSA PUBLIC KEYブロックとRSA SECRET KEYブロックには当てはまらないと思います。
vy32

2
@ vy32:これらはOpenPGPキーではないため、無関係です。しかし、それはそれらにも当てはまります。(openssl genrsa「プライベート」ブロックのみを出力する方法に注意してください。したがって、パブリックブロックそこから派生させることができます。)自分で調べることができますopenssl genrsa 512 | openssl asn1parse -i。または、RSAPrivateKey構造のモジュラスとpublicExponentを明確に示すRFC 3447付録Aを確認してください
user1686
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.