我刚刚阅读了加密大师 Bruce Schneier 撰写的文章。在文章中,他说:
优先选择对称加密而不是公钥加密。
但是,他没有说明原因。
现在,我认为公钥系统避免了一些中间人攻击和密钥分配的问题,这是对称密钥密码学的问题,对吧?
任何人都可以解释布鲁斯施奈尔的观点还是我错过了什么?
我刚刚阅读了加密大师 Bruce Schneier 撰写的文章。在文章中,他说:
优先选择对称加密而不是公钥加密。
但是,他没有说明原因。
现在,我认为公钥系统避免了一些中间人攻击和密钥分配的问题,这是对称密钥密码学的问题,对吧?
任何人都可以解释布鲁斯施奈尔的观点还是我错过了什么?
对称密码学优于非对称密码学的这种偏好是基于非对称密码学使用参数化数学对象的想法,并且有人怀疑可以专门选择这些参数以使系统变弱。例如,当使用 Diffie-Hellman、DSA 或 ElGamal 时,您必须对一个大素数p 取模。一个随机选择的素数p会很好,但可以选择一个“看起来很好”的特殊p,但对于知道该特殊p值是如何生成的人来说,可以轻松(或更容易)破坏算法。这样的素数p这使得加密弱是非常罕见的,所以你不会因为运气不好而击中一个(正如我所说,随机选择的素数会很好)。
这意味着好的密码参数不是我袖手旁观的数字。如果您查看FIPS 186-4(DSA 的标准),您将看到对 DSA 参数生成系统(即大模p、生成器g和组阶q)的描述,这显然是非恶意的. 这仅通过显示主导这些值生成的确定性 PRNG 来工作;通过揭示种子,您可以表明您忠实地制作了参数,因此没有沉迷于“特殊的素数制作”。
可以针对标准 NIST 椭圆曲线(再次参见 FIPS 186-4)制作吊臂,因为这些曲线再次具有一些参数,并且 NIST 忘记使用如上所述的确定性 PRNG(实际上,NIST 在这里没有错;这些曲线是从 SEC 继承的,所以错误可能是 Certicom 的)。Brainpool曲线试图纠正这个错误。(请注意,在 15 条 NIST 曲线中,至少有 5 条“Koblitz 曲线”不能被故意削弱,因为它们根本没有随机参数。)
Ole' Bruce 将上述所有内容都变成了对非对称密码学的普遍诅咒,因为他想要一条有力的线,而不是对组参数验证的更正确但冗长的解释,如上所述。要记住的教训是,任何密码系统的完整设计都应尽可能透明,这包括“看似随机”参数的生成。
根据他的说法,公司以无法察觉的方式巧妙地改变他们的产品以防后门。关于公钥系统,他提到在公钥交换协议中添加一个公共指数。
... 使随机数生成器不那么随机,以某种方式泄露密钥,向公钥交换协议添加一个公共指数,等等。
也许,他认为公钥密码学比对称密码学更容易被篡改。
Schneier 的博客有一些澄清声明:
与对称算法相比,NSA 在破解公钥算法方面更有可能取得一些基本的数学进步。
和
我个人担心任何我个人不信任其起源的常数。
当然,前一种陈述的理由是非常复杂的,并且在一定程度上依赖于对数学最先进水平的直觉/经验。后者是一个更直接的陈述,即某些系统比其他系统更容易受到 NSA 的影响,并且与文章中的(可能有争议的)陈述相呼应,“Prefer传统的基于离散对数的系统而不是椭圆曲线系统;后者有NSA 在可能的情况下影响的常数”。
另请记住,本文旨在为卫报读者提供经验法则。当然,存在 NSA 可能已经破坏的对称算法(或者已知可以被 NSA 破坏的),以及没有不可信常数的非对称算法。他并不是说更喜欢凯撒转向DSA。但在 Schneier 看来,标准对称算法比标准非对称算法更值得信赖。
我相信您是正确的,密钥分发难度的增加可能意味着出于许多目的,对对称加密的偏好不会转化为实际能够使用它。他可能主要考虑的是如何与朋友/同事/同谋交流,因为在这些情况下,普通用户可以自由选择算法。毫无疑问,他对那些设计完整密码系统的人的建议会更加复杂。
最后请注意,所有这些建议都是专门针对 NSA 监视的。如果您不将 NSA(或其盟友)视为您的对手,那么它不一定是相关的,尽管其中大部分都是很好的建议。典型的黑客具有更有限的一组可用攻击。
我只能猜测,但我认为这可能源于一种感觉,即非对称加密在数学上比对称加密更不稳定。
例如,众所周知,安全对称密码学在理论上是可行的:例如考虑一次性密码,有时甚至可以在实践中使用。标准对称密码在某种程度上是一种模拟这一点的方案,但密钥更短(特别是如果您考虑例如 CTR 模式)。
然后考虑任何不对称系统的情况。在这里,您需要在数学上可能有一个数学函数 F(secret-to-protect, pub key),它产生一个加密结果,即使攻击者知道 pub key,也不能用来推断要保护的秘密。即,您没有任何该函数可用于保护秘密的秘密参数(对称方案就是这种情况) - 唯一的秘密就是您要保护的内容!该函数仍然必须是双射的,否则预期的接收者无法解密它。所以所有的信息都必须在那里。实际上,知道一些与公钥(即私钥)相关的额外信息,逆向操作必须在计算上很容易。存在这样的功能就不太清楚了——不知道它们确实存在。RSA 和 ECC 本质上是这种方案的提议——但只是提议,因为它们未被证明是安全的。建立任何非对称方案的安全性,将暗示建立 P != NP,因此似乎是一个非常困难的问题。
因此,鉴于没有已知的安全非对称方案的实例是已知的(实际上,非对称方案必须满足一些比对称方案更困难的数学属性),但鉴于已知安全示例是对称方案,那么其他一切都是平等的,对不对称方案更加怀疑是合理的。
从实际的角度来看,分解和离散对数问题(在非对称密码中使用)的复杂性似乎逐年降低(即使最好的算法在时间上仍然是指数的),而 AES 和 DES(几乎)坚守阵地。DES 最大的问题是密钥太小,而不是算法被破解。3DES 仍然是安全的,但与 AES 相比相当慢。