Я разрабатываю функцию губки keccak и имею некоторое странное поведение относительно результата хеширования.Различные хеши для Keccak/SHA-3 с несколькими программами?
Я использую строку «abc» с 24 битами (3 байта). Тестовые векторы для SHA-3 на http://www.di-mgt.com.au/sha_testvectors.html говорят, что результат SHA3-512 следующая:
SHA3-512 от Тестовые Вектор b751850b1a57168a 5693cd924b6b096e 08f621827444f70d 884f5d0240d2712e 10e116e9192af3c9 1a7ec57647e39340 57340b4cf408d5a5 6592f8274eec53f0
Я также б cryptopp версия 5,62, и это дает мне этот выход:
CryptoPP 18587dc2ea106b9a1563e32b331242 1ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96
Я использую HashTab 5.2.0.14 на Windows, и это дает мне для файла с "ABC" и тот же выход:
HashTab 5.2.0.14 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96
Итак, есть некоторые ссылки, но один из них отличается от других. На веб-сайте объяснено, что входное сообщение прикреплено двумя битами «10», определенными в черновике FIPS-202. Таким образом, CryptoPP и HashTab используют, возможно, другую реализацию, но какой?
Теперь у меня есть программа и «эталонный код» с сайта keccak, а также другую реализацию в Python:
Моя программа возвращает этот хэш-значение «ABC»:
Моя программа 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760
Это ссылка keccak код (http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip) на http://keccak.noekeon.org/files.html, который рассчитывает то же значение:
Keccak-Reference 3.2 Сообщение от размера 2040 битов с Keccak [г = 1024, с = 576] 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760 (усекается до той же длины)
Это реализация Python из https://github.com/mgoffin/keccak-python/blob/master/Keccak.py приводит к тому же значению:
keccak-питон Значение после отжима: 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E67601173D04BF5AEC3EBBCA87696355C5FB4D72D00D2CC4F843A0A3A0ED8924A16FC377 69A3DB7C3A84F31E92375A7D74A0136D80A647FBC5AF8D733B43873A3709F
Так мои вопросы:
1) Верно ли, что Keccak и SHA-3 имеют разные выходы на основе спецификации NIST сделал с FIPS 202?
2) Почему у меня есть три разных значения хэша, которые не уникальны?
3) Является ли емкость изменена в SHA3-512 так, чтобы она имела емкость 512 бит и 1600-512 битрейт? Это еще одна разница, которую я прочитал в презентации о SHA-3, но я не нашел ее в документе FIPS-202.
спасибо!
Привет,
BURAK