生成した公開鍵で暗号化されたファイルを受信しましたが、復号化できません。
手順:
gpg --gen-key
デフォルトオプションgpg --export -a <email> > pub.key
cat <file> | gpg
エラー:
$ cat cred.gpg | gpg
gpg: key 71980D35: secret key without public key - skipped
gpg: encrypted with RSA key, ID 0D54A10A
gpg: decryption failed: secret key not available
しかし、秘密鍵は私の鍵リングに存在し、私がそれから生成した公開鍵は、同僚に送信したpub.keyのフィンガープリントと一致します。
$ gpg --list-secret-keys
/home/jcope/.gnupg/secring.gpg
------------------------------
sec 2048R/71980D35 2016-03-04
uid me <email>
ssb 2048R/0D54A10A 2016-03-04
指紋を確認する
$ gpg --with-fingerprint pub.key
pub 2048R/AF0A97C5 2016-03-04 me <email>
Key fingerprint = 17A4 63BF 5A7D D3B2 C10F 15C0 EDD6 4D8A AF0A 97C5
sub 2048R/1103CA7C 2016-03-04
$ gpg --fingerprint | grep 17a4 -i
Key fingerprint = 17A4 63BF 5A7D D3B2 C10F 15C0 EDD6 4D8A AF0A 97C5
私はgpgの初心者ですが、なぜこれが機能しないのか途方に暮れています。最も標準的な操作のようです。
エラーメッセージに注意してください。秘密鍵が欠落している(そうではない)とは表示されず、公開鍵が欠落していると表示されます。
gpg: key 71980D35:
公開鍵なしの秘密鍵- skipped
RSAでは、一部の番号(d、p、q、u)はプライベートで、その他の番号(n、e)はパブリックです。暗号化と署名の検証には2つの公開番号のみが必要ですが、復号化と署名には6つの番号すべてが必要です。したがって、後者の操作では、実際には秘密鍵と公開鍵の両方が必要です。
公開鍵は誤ってpubring
から削除されましたか?
公開鍵の再インポートを試すことができます。公開鍵は広く配布されているものなので、簡単に再取得できます。