雷鸟密钥生成仍然安全吗?

雷鸟密钥生成仍然安全吗?

我找不到太多有关 Thunderbird 中涉及的 PGP 密钥生成细节的信息。该软件相当老旧,诸如“这可能需要几分钟”之类的信息或实际需要不到一秒钟的信息让我有点不解。

虽然软件经常更新,但密钥生成算法是否仍然安全,因为如果密钥生成薄弱且可预测,那么 PGP 的安全性就无关紧要了。

答案1

Crypto.SE 或 Security.SE 能够提供比我更好的答案(我不从事密码学工作),但是:

至于具体实现,如果你使用的是内置 OpenPGP 支持的最新版 Thunderbird(实际上相当新),那么它很可能是使用 NSS(Thunderbird 和 Firefox 使用的 SSL/TLS 库)提供的 RSA keygen 函数编写的。也就是说,该操作实际上不是 PGP 特有的,应用程序只需将已生成的密钥放入正确的信封中 — — 它没有理由携带几十年前的 PGP 特有的密钥生成代码。

(尽管如此,这并不意味着代码几十年来都没有被触碰过,例如 NSS 本身及其 Netscape 根源实际上是有史以来最古老的 SSL 库之一。)

另一方面,如果我没记错的话,它带有用户界面代码曾经是 Enigmail 插件的一部分;他们只是将其集成到应用程序中并替换了后端。2000 年代早期的一些消息很可能还保留了下来。

但总的来说,它速度快的原因有以下几个:

  1. 密钥生成算法与密码哈希算法不同,其强度不依赖速度慢。生成 RSA 密钥的速度过去很慢,因为 CPU速度很慢,寻找素数实际上需要时间。但无论花费多长时间,随机数生成和各种素数测试仍能以完全相同的安全级别实现完全相同的目标。

    不同程序之间的差异并不大——您可以测试任何处理 RSA 密钥的工具,它们应该会给出相同的结果。以略微过大的密钥大小为例,在 ~2005 Celeron CPU 上openssl genrsa 8192,(使用 OpenSSL) 或certtool -p --bits=8192(GnuTLS) 之类的操作确实需要一分钟以上,但在 ~2012 Xeon 上仅需 8 秒左右。

    (OpenSSL 也“相当老”,大约和 NSS 一样老,但它每天都用于创建网络上绝大多数 TLS 证书及其密钥对。)

  2. 普通的随机数生成器实际上已经变得更好了(有了更快的新算法除了更容易理解之外,更重要的是,它们也更容易获得 - 过去,程序必须自带 RNG 并负责从可疑来源收集熵(例如 Unix 中的“熵收集守护进程”或 PuTTYgen 现在仍在做的“摇动鼠标 10 秒”之类的操作),现在每个操作系统本身都提供了一个 CSPRNG,应用程序可以在需要时立即调用它来获取随机数据。

  3. 我们现在有了更广泛的非对称密钥算法,这些算法根本不基于巨大的素数——如果您选择此选项,则生成 ECDSA 密钥的方式与生成 RSA 密钥的方式完全不同,而且实际上,从设计上讲,它比 RSA 快得多。(在相同安全级别下,密钥也短得多。)

相关内容