A Practical Introduction to GNU Privacy Guard in Windows推荐 DSA 和 ElGamal,但我想知道现在 RSA 是否足够好使用,如果是,我应该使用什么最小密钥大小?是否可以使用 SHA-256 进行签名(为了与电子邮件客户端兼容)?
另外,除了e-ignite: Key Types,你能指出这个主题的其他来源吗?
A Practical Introduction to GNU Privacy Guard in Windows推荐 DSA 和 ElGamal,但我想知道现在 RSA 是否足够好使用,如果是,我应该使用什么最小密钥大小?是否可以使用 SHA-256 进行签名(为了与电子邮件客户端兼容)?
另外,除了e-ignite: Key Types,你能指出这个主题的其他来源吗?
今天的 RSA/DSA 最小值实际上是 1024 位,因此椭圆曲线的使用越来越多,因为它们更快并且使用更短的密钥。
要获得与 AES256 类似的安全性,您至少需要 3072 位(384 字节)密钥...
现在使用证书的电子邮件客户端 - 所以它是单独的东西(X.509),但与 RSA/DSA 一起使用最常见的选项是 SHA-1(现在有点弱)。
我建议研究:
我知道这个话题很老了,但是在这个时候,DSA 1024 被认为太弱了,SHA-1 也是如此。您应该使用 RSA 2048(用于签名和加密)和 SHA256(用于摘要)。通常,使用的对称算法是AES256,已经足够好了。
加密时,GPG 压缩数据,创建 AES256 密钥并用它加密数据。然后,它使用接收方 RSA 或 ElGamal 公钥加密 AES 密钥,并以包的形式发送加密的 AES 密钥 + 加密数据。
据说 RSA 2048 可以保护数据到 2015 年左右,而 RSA 4096 可以保护数据到 2020 年,这取决于当时预测的计算机能力。(我不完全确定日期,但 4096 位密钥比 2048 位密钥更难破解是合乎逻辑的)
SHA-1 很弱,但没有完全损坏。SHA-256 只是 SHA-1 的扩展,目前它可能也比最初想象的要弱(考虑到同样的弱点被认为会影响整个 sha 家族),但是它仍然需要大量的计算能力才能获得匹配。
无论如何,就数字签名而言,由于这只是最后一步的方式,这不再是一个问题。还是先加密。
至于密钥大小,无论是 RSA 还是 ElGammel/DSA,我现在无论如何都会推荐 2048 位密钥。不同之处在于 RSA 基于阶乘数学,而 ElGammel/DSA 基于对数数学,两者都不一定被认为是更好或更差(尽管我认为基于椭圆曲线的东西与对数的东西密切相关)。
我会推荐带有 AES256 和 SHA512 的 RSA/RSA 4096
GPG 只能使用 RSA 进行签名,不能加密。默认值为 DSA/Elgamal 1024/2048。Elgamal 的默认密钥长度曾经是 1024,但一定有人认为这不够安全。GPG 邮件列表上的人说,大多数人不应该需要超过 2048 个。
我对各种签名算法不太清楚。我知道 SHA-1 存在问题,但这与 DSA/RSA 有什么关系?
多年来,我一直拥有使用上述默认值的相同密钥。我用的不多,但想知道生成一个新的是否合理。
如果你不知道,你应该使用 GPG 默认值!(这就是作者的意图。)