Keccak-256

Keccak-256 是 2007 年由 NIST 在 SHA-3 密码学哈希函数竞赛中提出的。Keccak 胜出并最终在 2015 年成为 FIPS 202 标准。

然而,在以太坊的开发过程中,NIST 标准并没有完全确定。在标准化过程完成后,NIST 调整了 Keccak 中的一些参数,意在提升它的性能。与此同时,Edward Snowden 披露的政府文档中揭示,NIST 可能受到美国国家安全部门的影响,有意地弱化了 Dual_EC_DRBG 随机数生成器标准,在这个随机数生成器中加入了后门。这导致了公众对变更提案的强烈抵制,并极大地延缓了对应的 SHA-3 标准化进程。因此,以太坊基金会决定实现由发明者提出的最原始的 Keccak 算法,而不是在以太坊中使用经过 NIST 修改的 SHA-3 标准。

怎么判断

最简单的办法是采用测试矢量,用一个给定输入的已知结果来判断。用于测试哈希函数最通用的方法是使用空的输入。如果使用哈希函数计算输入的空字符串的哈希值,应该得到如下结果:

Keccak256("") = c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 SHA3("") = a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a