因为众所周知 NSA 渗透了 RSA 并使他们的密钥生成算法变得更弱
如果你知道这一点,那么你就知道错了。你混淆了两件没有任何关系的事情:
RSA 可用于非对称加密和数字签名。PRNG 两者都做不了。PRNG 会产生无穷无尽的不可预测的比特流;这是 RSA 不做的事情。这两件事真的很不一样。
现在混乱的根源是什么?它是双重的:
- 非对称加密算法使用必须在某个时间点随机生成的密钥;密钥生成算法需要一个随机位流来处理,通常由加密强的 PRNG(因此可能是 Dual_EC_DRBG 或任何其他 PRNG)提供。
- RSA Security是一家实施 Dual_EC_DRBG 并将其提供给客户的软件供应商。那家公司之所以被称为“RSA”,是因为它是由 Rivest、Shamir 和 Adleman 创立的,这三位研究人员还发明了非对称算法 RSA,并以完全相同的原因将其命名为“RSA”。基本上,Rivest 在发明密码算法时被称为 Rivest,在他创立公司时仍然被称为 Rivest。无论如何,他们在二十年前卖掉了公司。
底线是非对称算法 RSA 绝不是“后门”。可以被后门的是在密钥对生成算法的特定实现中使用的 PRNG。但是,如果您使用 Dual_EC_DRBG 来生成 ElGamal 密钥对,那么您同样会受到影响。因此,可怜的、弱 PRNG 的存在绝不是选择 ElGamal 而不是 RSA 的理由。
(如果我们想挑剔,那就反过来:如果 Dual_EC_DRBG 用于生成 ElGamal 密钥而不是 RSA 密钥,则 Dual_EC_DRBG 中的已知后门更容易利用。但总的来说,如果您的密钥生成工具故意使用弱 PRNG,那么你就输了。不管密钥的类型如何。)
密钥长度呢?碰巧的是,大小相似的 RSA、DSA 和 ElGamal 密钥提供的强度大致相似(这纯粹是运气,因为它们依赖于不同种类的数学对象)。1024 位 RSA/DSA/ElGamal 密钥目前避开了我们的密码分析能力,但它们似乎在基于地球的技术的范围内(如果您花费数亿或数十亿美元建造一台专用机器并且不介意如果破解一把钥匙需要6个月)。2048 位 RSA/DSA/ElGamal 密钥远远超出了可预见的技术所能做到的。任何超过 2048 位的密钥大小都相当于买一辆红色跑车来吸引女孩。
对于您的具体情况:
“仅签名”选项将产生仅可用于签名的密钥,而不是用于加密电子邮件。如果您想要使用密钥进行加密,则需要使用前两个选项之一。
在过去,RSA 已获得专利(在美国),因此某些实现仅支持 DSA 和 ElGamal。由于该专利于 2000 年到期,任何体面的 PGP 实现现在都可以很好地处理它。
DSA 签名比 RSA 签名短一点;基于 ElGamal 的密钥交换将比基于 RSA 的密钥交换使用更多的字节。我们这里只讨论几十个字节;如果您决定使用红色超大钥匙来彰显您的男子气概,那么任何此类优化都将相形见绌。