【问题标题】:What's the difference between the hash algorithms SHA-2 and SHA-3? [closed]哈希算法 SHA-2 和 SHA-3 有什么区别? [关闭]
【发布时间】:2012-12-30 15:51:30
【问题描述】:

我知道 SHA-224、SHA-256、SHA-384 和 SHA-512 都是 SHA-2 hash function family 的一部分。但现在还有一种新的 SHA-3 哈希算法。

您能告诉我 SHA-2 和 SHA-3 之间的区别吗?何时以及为什么应该使用 SHA-3? SHA-3 实际包含哪些安全哈希算法?

【问题讨论】:

  • @xuinkrbin。真遗憾,因为它不在这个论坛上的主题 - 这个问题在crypto.stackexchange上会更好。请注意,我们现在只有一个答案,不能添加其他答案。因此,这不可能成为谷歌的有用打击——即使 Ilmari 的回答还不错。但我已经删除了我相当冒犯的言论。
  • 这对我很有用。 :-)

标签: hash cryptography cryptographic-hash-function


【解决方案1】:

SHA-3,也称为Keccak(它在被选为NIST SHA-3 competition的获胜者之前的原名),是一种与SHA-1和SHA-2无关的全新哈希算法。

确实,NIST 之所以选择 Keccak 而不是其他 SHA-3 竞赛决赛入围者,原因之一是它与现有的 SHA-1/2 算法不同;有人认为,这种不同使其成为对现有 SHA-2 算法(仍被 NIST 认为是安全且推荐的)的更好补充,并且使得未来任何密码分析突破都​​不太可能危及 SHA-2 算法的安全性。 2 和 SHA-3。

在某些背景下,SHA-3 哈希函数竞赛最初是由 NIST 在 2007 年宣布的,当时一些新的密码分析攻击使 SHA-1 的安全性受到质疑。虽然当时对 SHA-1 的攻击主要是理论上的兴趣,但人们担心这些技术的进一步改进可能会允许对 SHA-1 进行实际的碰撞发现攻击,并且相同的技术也可能适用于 SHA-2,它与 SHA-1 具有相似的设计。因此,NIST 决定举办一场竞赛来选择 SHA-2 的继任者,将其命名为 SHA-3。

但是,虽然对 SHA-1 was finally demonstrated in 2017 进行了现实世界的碰撞攻击,但对 SHA-2 的可怕攻击却未能实现。现在人们普遍认为,破解 SHA-2 不会像十年前那样容易,因此在可预见的未来,SHA-2 的所有变体仍然被认为是安全的。然而,由于 NIST 已承诺 SHA-3 将在 2012 年被选中,并且由于很多人花费了相当多的时间和精力来提交和评估新的哈希函数以供竞赛,并且因为有一些非常好的设计在决赛选手中,毕竟不选择他们中的任何一个作为获胜者似乎是一种耻辱。因此 NIST 决定选择 Keccak 作为 SHA-3,并推荐它作为 SHA-2 散列函数的替代品(不是继任者)。

这意味着,如果您想要一个安全且标准化的哈希函数,您可以选择 SHA-2 或 SHA-3。如果你感觉真的偏执,你甚至可能想要同时使用这两种方法,并设计你的密码系统,以便即使其中一个哈希函数被破坏,它也能保持安全。

【讨论】:

  • 如果您不知道自己在做什么,同时使用这两个哈希函数可能会有点危险。当然,这取决于您想要实现的目标。
  • 危险怎么办? (不确定这里的潜在陷阱......)
  • 这里不是密码分析师,但我认为危险可能意味着碰撞 sha3(sha2(X)) 比碰撞 sha2(X) 或 sha3(X) 更容易,或者它可能意味着同时提供 sha2(X) 和 sha3(X) 可能会泄露更多关于 X 的信息,从而使猜测 X 变得更容易。
猜你喜欢
  • 2014-02-03
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 2020-05-22
  • 2020-04-16
  • 2014-08-19
相关资源
最近更新 更多