【问题标题】:Different hashes for Keccak / SHA-3 with several programs?Keccak / SHA-3 的不同哈希与几个程序?
【发布时间】:2014-10-21 03:50:15
【问题描述】:

我正在开发 keccak 海绵函数并且对哈希结果有一些奇怪的行为。

我使用 24 位(3 个字节)的字符串“abc”。 http://www.di-mgt.com.au/sha_testvectors.html 上的 SHA-3 测试向量表明 SHA3-512 的结果如下:

来自测试向量的 SHA3-512 b751850b1a57168a 5693cd924b6b096e 08f621827444f70d 884f5d0240d2712e 10e116e9192af3c9 1a7ec57647e39340 57340b4cf408d5a5 6592f8274ec>

我还使用了 cryptopp 5.62 版,它给了我这样的输出:

加密PP 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96

我在 Windows 上使用 HashTab 5.2.0.14,它为我提供了具有“abc”相同输出的文件:

HashTab 5.2.0.14 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a1a65b19d77aa51

因此,有一些参考资料,但其中一个与其他参考不同。网站上解释说,输入消息附加了 FIPS-202 草案中定义的 2 位“10”。那么,CryptoPP 和 HashTab 可能使用另一种实现,但是是哪一种呢??

现在我有我的程序和来自 keccak 站点的“参考代码”,还有另一个 python 实现:

我的程序为“abc”返回这个哈希值:

我的程序 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760

这是http://keccak.noekeon.org/files.html 上的 keccak 参考代码 (http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip),它计算相同的值:

Keccak-参考 3.2 Keccak[r=1024, c=576] 大小为 2040 位的消息 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760(截取相同长度)

这是来自https://github.com/mgoffin/keccak-python/blob/master/Keccak.py 的python 实现,结果相同:

keccak-蟒蛇 挤压后值:20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E67601173D04BF5AEC3EBBCA87696355C5FB4D72D00D2CC4F843A0A3A0ED8924A16FC37769A3DB7C3A84F31E92375A7D74A0136D80A647FBC5AF8D733B43873A3709F P>

所以我的问题:

1) 根据 NIST 使用 FIPS 202 制定的规范,Keccak 和 SHA-3 是否具有不同的输出?

2) 为什么我现在有三个不唯一的不同哈希值?

3) SHA3-512 的容量是否改变为 512 位容量和 1600-512 位速率?这是我在有关 SHA-3 的演示文稿中读到的另一个区别,但我在 FIPS-202 文档中没有找到它。

非常感谢!

问候,

布拉克

【问题讨论】:

    标签: hash sha-3 keccak


    【解决方案1】:

    2) 就像https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub中提到的那样 FIPS 202 于 2014 年 4 月 7 日更改。

    CryptoPP 的最后一个版本是 2013 年 2 月 20 日(这是第一个包含 SHA3 的版本) 见http://www.cryptopp.com/

    这解释了为什么 CryptoPP 产生与实际测试向量不同的哈希值。我认为这同样适用于 HashTab。

    【讨论】:

      猜你喜欢
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多