我们应该开始使用 SHA-3 吗?

信息安全 密码学 哈希 sha-3
2021-08-19 20:56:08

可能重复:
什么是 SHA-3,我们为什么要更改它?

SHA-3 已经完成!那么,secuirty.se 对新的哈希函数有何看法?我们应该开始用 Keccak 替换 md5/sha1/sha2 的所有用途吗?是不是太快了?还是您认为 NIST 流程足够严格。

2个回答

首先,还没有“真正的 SHA-3”。几个月后,NIST 将发布一个规范,明确定义SHA-3 是什么。除非某处出现重大错误,否则我们可以预测SHA-3 将与提交给第 3 轮比赛的 Keccak 规范进行位对位兼容。

那么就没有理由用(未来的)SHA-3 替换 SHA-2:科学上都没有(SHA-2 没有被破坏,远非如此;而且,就性能而言,Keccak 并不比 SHA-2 好很多,而且通常更糟糕的是,取决于架构),也不是管理上的(NIST 人员自己认为没有必要用 SHA-3 替换 SHA-2)。

有理由MD5 和 SHA-1 替换为 SHA-2(或将来的 SHA-3),但这些理由上周已经生效,您应该已经这样做了。

算法敏捷性是协议的一个重要品质——但这是协议设计的问题。有资格设计安全协议的人已经知道,其他人应该避免设计协议。

哈希函数是相当新的,我们仍在发现针对它们的新密码分析攻击。SHA-3 看起来很有用,所以我不同意Schneier 关于 no-award 的评论但是,我们应该计划在不久的将来举办一次 SHA-4 比赛。能够更改您所依赖的哈希函数是一项有用的功能。SSL/TLS 就是一个很好的例子。