如何找出我的 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

因为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

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

答案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 位

相关内容