如果他们在一个公平的竞争环境中进行密码分析,你更愿意相信一个被广泛采用的算法还是一个失败者?

信息安全 哈希 密码
2021-08-12 03:57:58

如果涉及散列或加密算法提供的安全性,我们永远不会知道完整的故事。我们(分别是公共研究)理解并可以推理的那部分,但我们也知道可能存在我们不知道的弱点,虽然我们无法推理我们不知道的事情,但仍然是未知的部分是相关的并且受某些参数的影响。

例如,如果您有两个对称加密密码,比如 AES-256 和 TwoFish,它们在概念上应该提供大致相同的安全性,您更愿意信任哪一个?

AES-256 比 TwoFish 使用更广泛。这意味着打破它的动机要高得多(并且可能会投入更多的资源来实现这一目标)。这可能是为什么偏爱弱者的论据。另一方面,人们也可以争辩说,出于同样的原因,更多的公共研究正在进入 AES-256,因此,如果某些东西从根本上被破坏,它被公众所知的机会就更高。

或者这些属性是否会相互抵消,因此算法的采用率与安全考虑完全无关?

你会更信任什么,为什么?

4个回答

相信广泛接受的算法。

不是因为算法更好。好吧,这确实很重要:如果一个算法太弱了,它就没有经过足够的审查,所以没有理由相信它。但主要是因为比较算法,只要它们有合理的声誉,是没有意义的:它们很好,就是这样。杀死你的不是算法,而是实现。

使用广泛使用的算法,您可以获得更好的实现选择,并且实现本身具有更好的审查。这才是最重要的。所以不要使用只有一两个实现并且没有人真正查看他们的代码的失败者。使用流行算法的流行实现。流行的 AES 实施比任何其他分组密码都受到更多的审查。在密码中,只有 ChaCha20 受到了同样多的审查。

如果您担心 NSA 级别的对手,情况尤其如此。我们有一些关于 NSA 能力的历史数据。我们知道,当他们为DES的设计提供建议时,他们使其对当时不为人知的攻击技术(差分密码分析)更加健壮,并且仅在预算有限的情况下易受暴力攻击,但有信心先于其他人到达。我们知道,当 GCHQ 发明Diffie-Hellman时,它在不到十年后被公开重新发现。斯诺登的爆料中我们知道,在 2010 年代初期,NSA 无法破解流行的加密原语,但由于实施错误,可以有效地破解大多数软件。

就我而言,我不仅关心算法。我会相信一个众所周知的、经过良好测试和广泛使用的实现魔鬼隐藏在细节中,所以如果我对实施没有任何保证,我什至不会相信一个良好的声誉算法。

它可能不是您问题的直接答案,但它解释了为什么我们通常选择广泛使用的算法,因为它们有更高的机会拥有广泛使用和广泛测试的实现

在非技术方面,相信广泛采用的技术的原因是,如果发生不好的事情,你不能因为选择了不受欢迎的技术而受到指责。青蒿素;)

我可能会相信广泛使用的算法,因为必须进行大量研究以发现它的弱点,并且由于广泛使用,大多数发现的弱点必须已被修补。此外,广泛使用的算法可能更容易实现,因为更多的人使用它们并提供有关实现的提示。