28

SHA3​​84 是 SHA512 的截断版本。但为什么会有人使用它?推论:如果 SHA384 和 SHA512 一样好,那么使用 512 位版本有什么理由吗?

我打算使用其中一种算法来验证文件完整性,所以我主要对碰撞安全感兴趣。

我很高兴听到有人在实践中如何使用 SHA2 摘要,以及您为什么选择一个版本而不是另一个版本。

4

5 回答 5

28

SHA512、SHA256、SHA1 和 MD5 容易受到长度扩展攻击。SHA224 和 SHA384 不会因为将输出减少到内部状态,所以 SHA3 也不容易受到攻击。考虑到这一点,SHA512 是一个很好的加密抗冲突哈希函数。

于 2013-06-28T13:57:39.427 回答
26

出于实际目的和可预见的未来,SHA384 和 SHA512 对于几乎任何可以想象的抗碰撞应用都足够好。通常,一旦我们超过 256 位并且对于实际目的而言抗碰撞性是无限的,您将使用什么哈希的主要决定因素就是您需要多少位输出。例如,如果您需要哈希来生成 256 位 HMAC 密钥和 128 位加密密钥,则 SHA384 是自然的选择。如果您需要尽可能多的输出来计算计算成本,比如 PRNG 的输出或随机填充,那么 SHA512 是有意义的。

于 2012-04-08T09:19:13.850 回答
11

使用 SHA512 签名的证书似乎不适用于 Windows 上的 TLS 1.2(请参阅此处

因此,我将使用 SHA-384(或者我想我可以使用 SHA-256)重新创建我的证书链。

虽然谢天谢地,我还没有发布任何证书,但链接页面中的线程确实为那些被 SHA-512 卡住的人提出了一个解决方法/修复。

于 2016-04-27T09:30:21.880 回答
11

SHA512 容易受到长度扩展攻击,而 SHA384 则不然。来源

于 2017-04-07T11:07:57.257 回答
1

我能想到使用 SHA-384 与 SHA-512 的唯一原因是因为 Digest 需要签名。例如,如果您采用 ECDSA-384 签名,它需要 384 哈希摘要,而不是 512 位。理想情况下,您可以从 512 位中丢弃任何 128 位。但是接收端需要知道你扔掉了哪个 128 位。因此,SHA384 和 SHA512 之间的唯一区别是定义需要丢弃的 128 位。

于 2019-01-09T17:29:38.417 回答