ssh-keygen
默认创建 RSA 密钥,但gpg --gen-key
更喜欢 DSA/ElGamal。
RSA 和 DSA 哪一个更适合 GPG?
答案1
GPG 维护者正在考虑将默认设置更改为 RSA(来源:处理 SHA-1 中的弱点 [LWN.net])。因此,他们似乎认为 RSA 目前是更好的选择(而且他们应该比你或我更了解它)。
答案2
RSA 和 DSA - 误解和有用信息
有几个老RSA参考文献和最近的数字减影动脉造影参考,
- 差点发生的 Debian PGP 灾难-- 关于易受攻击的 debian openssl 版本
2003年,RSA 与 DSA 签名 - 获胜者是......--RSA。
因此,基本上,DSA 的密钥生成速度非常快,如果您了解算法,这是有道理的。DSA 的签名速度也更快,但速度没有那么快。RSA 的优势在于验证比DSA快得多。
最近的IETF 草案:使用 SHA-2 实现 DNSSEC 的 DSA,2010 年 1 月 7 日到期。
今天推广 DSA 而不是 RSA 有一些理由。
在 DNSSEC 中使用带有 SHA-256 的 DSA 有一些优点和 缺点相对于使用 2048 位密钥时使用 RSA 和 SHA-256。 DSA 签名比 RSA 签名短得多;在此大小下,差异是 512 位与 2048 位。在使用 2048 位密钥的典型平台上,签署 DSA 的速度比签署 RSA 快三倍左右,但验证 RSA 签名比 DSA 快十倍以上。
当 DSA 公钥和 RSA 公钥大小相同时,DSA 的加密强度通常被认为与 RSA 相当。当然,如果发现新的攻击方式更适合其中一种算法,这种评估将来可能会改变。
目前尚未发现针对本文档所选的特定 DSA 参数集的攻击。当然,这种评估将来可能会发生变化。
但这只是一个草稿眼下。
每个人都喜欢 RSA 的验证速度(!)。
答案3
答案4
此外,自 DSS 当前修订版以来,使用 SHA-2 算法也是可能的,并且是允许的;但我无法找出 GPG 遵循哪个修订版。
关于当前的DSS规范(FIPS-186-3,p. i) 可以使用 SHS(FIPS-180-3,p. iv)中指定的任何哈希函数:
决策支持系统(DSS):
应使用 FIPS 认可的数字签名算法以及 SHS 中指定的适当哈希函数。
中学高温:
该标准规定了五种安全散列算法 - SHA-1,SHA-224,SHA-256,SHA-384 和 SHA-512 - 用于计算电子数据(消息)的压缩表示。
对于这个问题:这两种算法都是基于未经证明的安全的数学问题(RSA 使用因式分解问题,而 DSA 使用离散对数问题),你不能说一个比另一个更安全,因为这两个问题都没有被解决过。
但是使用带有 SHA-1 的 DSA 可能会存在安全问题,正如页面。