GnuPG キーの長さを確認するにはどうすればいいですか?

GnuPG キーの長さを確認するにはどうすればいいですか?

愚かな質問かもしれませんが、今のところ答えを見つけることができていません...

以前キーペアを作成したのですが、

ls -l ~/.gnupg
  -rw------- 1 xxx xxx 7912 sept. 24 20:08 gpg.conf
  -rw------- 1 xxx xxx 1202 oct.  11  2014 pubring.gpg
  -rw------- 1 xxx xxx  600 sept. 24 20:40 random_seed
  -rw------- 1 xxx xxx 2580 oct.  11  2014 secring.gpg
  -rw------- 1 xxx xxx 1280 oct.  11  2014 trustdb.gpg

は 2580 ビットなのでsecring.gpg、キーは 2048 ビットになると思います。

これはmaven-gpgプラグインで確認されており、使用するとログに記録されます。

You need a passphrase to unlock the secret key for
user: xxx
2048-bit RSA key, ID 0F1F7C52, created 2014-10-11

しかし、キーの長さを見つける標準的な方法は何ですか? また、それに関連するアルゴリズムは何ですか?

答え1

しかし、キーの長さを見つける標準的な方法は何ですか? また、それに関連するアルゴリズムは何ですか?

すでに画面に出力されていますが、標準的な方法は、同様の出力を提供する を使用して秘密鍵のリストを印刷することですgpg --list-secret-keys(これは、使用されている GnuPG のバージョンによって若干異なります)。

 2048-bit RSA key, ID 0F1F7C52, created 2014-10-11

2048 ビットの RSA キーを使用しています。

アルゴリズムは重要であり、いくつかのアルゴリズムは異なる数学的問題に基づいているため、同等のセキュリティを得るためにより大きな鍵を必要とする。例えば、RSAではそれよりもDSA と比較するとキーは大きいですが (1024 ビットの DSA キーは適切であると考えられていますが、1024 ビットの RSA キーは少し小さいです)、エントロピーの弱さによる影響は少なくなります。楕円曲線暗号は「ビットあたりのセキュリティがさらに向上」しますが、RSA や DSA よりも新しく、経験豊富な熱分析です。

secring.gpg は 2580 ビットなので、キーは 2048 ビットになると思います。

実際には2580ですバイトなので、8倍の係数が外れています。secringには秘密の主キーだけでなく、

  • 公開鍵(OpenPGP では常に秘密鍵パケットに保存されます)
  • 秘密サブキーパケット
  • サブキーのバインディング署名
  • 自己署名付きユーザーIDパケット
  • ユーザー属性(現在、そのパケットを使用している画像のみ)

興味がある場合は、 を使用してそのファイルに含まれるすべてのパケットを一覧表示できますgpg --list-packets ~/.gnupg/secring.gpg

答え2

OpenPGPjs 秘密鍵の長さビットを検出して表示

# gpg --import your_armored.key
# gpg --list-secret-keys

/root/.gnupg/secring.gpg
------------------------
sec   4096R/1254E55E 2018-03-13
uid                  Hey <[email protected]>
ssb   4096R/BWC45268 2018-03-13

4096R 4096ビット

関連情報