值得信赖的建议

值得信赖的建议

我已经发现这个比较老的问题关于 RSA 还是 DSA 是使用 GnuPG 签名和加密的首选算法。

使用时gpg --gen-key,两个相关的选择是“RSA 和 RSA”或“DSA 和 Elgamal”。哪一个具有更强大的加密算法?自 2009 年以来发生了什么变化?

答案1

值得信赖的建议

在上一篇文章发表时,关于改变默认算法的争论仍然存在仍可在网上档案中找到已经达成了大致的共识,切换到 RSA 2k 密钥已执行默认设置。

Debian建议在其文档中使用 4k RSA 密钥关于使用子密钥debian-keys自述文件。Debian 开发人员密钥环中大约四分之三的密钥中的绝大多数(仍然)是 DSA/Elgamal(通过 gpg 的输出进行 grepping 计算)。

在接受德国计算机科学杂志 iX(2013 年第 11 期)采访时,免费在线获取)PGP 的发明者菲尔·齐默曼建议“使用 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 分钟,因此请花点时间做一些工作(用于提供随机源)。

答案2

而我选择了 4K RSA 主密钥、3K RSA 签名子密钥和 4K El-Gamal 加密子密钥。目前我还没有选择更高主密钥的唯一原因是,移动设备用户普遍难以使用更大的密钥。

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

相关内容