适用于GnuPG的最佳加密和签名算法:RSA / RSA或DSA / Elgamal?[关闭]


46

我发现了一个相对古老的问题,那就是RSA还是DSA是使用GnuPG签名和加密的首选算法。

使用时gpg --gen-key,两个相关的选择是“ RSA和RSA”或“ DSA和Elgamal”。哪个更好?每种都有什么优缺点?自2009年以来发生了什么变化?


Answers:


73

值得信赖的建议

在上一篇文章发表之时,仍存在关于更改仍在Web归档文件找到的默认算法的争论,该算法已达成大致共识,因此已执行了将RSA 2k密钥作为默认选项的切换

Debian建议在其文档中使用4k RSA密钥,以了解如何使用子密钥debian-keys自述文件。在Debian开发人员中,大约四分之三的密钥中的绝大部分是(仍然)DSA / Elgamal(通过gpg输出的grepping来计算)。

在iX的采访中(德国计算机科学杂志,第11/2013期,也可以免费在线获得),PGP的发明者Phil Zimmermann建议“使用RSA时至少为3k的长度”,尽管1k的密钥尚未损坏。但是它们“在资源丰富的攻击者手中”。

关于安全

现在,据说两者对于足够的密钥大小都是安全的(对于RSA,建议为4k,对于DSA2为2k,否则,将使用使用SHA-1的DSA1)。

要选择RSA密钥长度,请查看NIST提供的实际强度概述(第64页)。不难看出,强度并不会随密钥长度(和计算时间)线性增长,因此加倍大小并不意味着“加倍安全性”。

在Debian上OpenSSL的DSA实现存在问题,但这是由于使用了错误的随机数据引起的,而RSA也可能发生。

在RSA和DSA2之间选择

前RSA

  • RSA的使用范围更广,尽管在OpenPGP标准中不是必需的,但所有主要的实现都可以处理它。DSA2尚未(尚未)
  • RSA提供了更快的签名检查

DSA2专业版

  • 较小的签名,但是无论如何它们都很小。电子邮件和代码签名可能微不足道
  • 更快的密钥创建(可能与低功耗和嵌入式设备(例如手机和路由器)相关)
  • 签名速度稍快

我自己的决定

最近创建新的OpenPGP密钥时,我决定使用8k RSA作为主密钥,将4k RSA作为子密钥用于日常使用。RSA签名无论如何都可以快速验证,巨大的8k签名仅用于签署其他密钥,但是在很长的一段时间内8k应该足够了。4k适用于当前子密钥,因为在不丢失所有签名的情况下撤销它很便宜。

在我的Core 2 Duo T9300上创建8k密钥大约花费了20分钟,因此,花点时间做一些工作(用于填充随机源)。


0

而我选择了带有3K RSA签名子密钥和4K El-Gamal加密子密钥的4K RSA主密钥。我之所以没有选择更高的主密钥,唯一的原因是由于使用移动设备的用户普遍与较大的密钥作斗争。

当然,对于某些特定的用途,我确实有较大的钥匙,但这往往不是为了与他人交流。


1
为什么用El-Gamal进行加密?
code_monk 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.