如何找出我的 GnuPG 密钥长度?

gtu*_*rri 5 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
Run Code Online (Sandbox Code Playgroud)

因为secring.gpg是 2580 位,我想我有一个 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
Run Code Online (Sandbox Code Playgroud)

但是,找到我的密钥长度的规范方法是什么?以及它的相关算法?

Jen*_*rat 7

但是,找到我的密钥长度的规范方法是什么?以及它的相关算法?

您已经将它打印在屏幕上,尽管规范方法宁愿使用gpg --list-secret-keys提供类似输出来打印密钥列表(这略微取决于所使用的 GnuPG 版本)。

 2048-bit RSA key, ID 0F1F7C52, created 2014-10-11
Run Code Online (Sandbox Code Playgroud)

您使用的是 2048 位 RSA 密钥。

算法很重要,一些算法需要更大的密钥来实现可比的安全性,因为它们建立在不同的数学问题上。例如,与 DSA 相比,RSA 需要相当大的密钥(并且 1024 位 DSA 密钥被认为很好,而 1024 位 RSA 密钥有点小),但受弱熵的影响较小。椭圆曲线加密提供“每比特更高的安全性”,但比 RSA 和 DSA 更新且经验丰富。

由于 secring.gpg 是 2580 位,我想我有一个 2048 位的密钥。

实际上不是,它是 2580 bytes,所以你的因素是 8。 secring 不仅包含秘密主键,而且

  • 公钥(始终存储在 OpenPGP 中的密钥包中)
  • 秘密子密钥包
  • 子密钥的绑定签名
  • 带有自签名的用户 ID 数据包
  • 用户属性(目前,只有图像使用该数据包)

如果您很好奇,可以使用 列出该文件中包含的所有数据包gpg --list-packets ~/.gnupg/secring.gpg