Какую криптографическую хеш-функцию использует Ethereum?

Многие источники ссылаются на использование криптографической хеш-функции «SHA3» в Ethereum, но проект Ethereum начался до того, как был завершен стандарт SHA3, и был некоторый путаница /противоречие вокруг окончательных параметров, выбранных для стандарта. Какая функция специально сделала Ethereum на самом деле в конечном итоге? Является ли это тем же, что и фактический стандарт SHA3, или один из вариантов в стандарте? Или это параметризация Keccak , которая не соответствует ни одному из вариантов?

74 голоса | спросил Jeff Coleman 24 Jam1000000amSun, 24 Jan 2016 11:32:14 +030016 2016, 11:32:14

2 ответа


104

Ethereum использует KECCAK-256 . Следует отметить, что это не следует стандарт FIPS-202 (он же SHA-3), который был завершен в августе 2015 года.

В соответствии с этим , NIST изменил дополнение на SHA3-256(M) = KECCAK [512] (M || 01, 256); который отличался от первоначального дополнения, предложенного командой Keccak. Кажется, что теперь люди называют «оригинальное» SHA3 Keccak хэширование «Keccak» и новый стандарт NIST SHA3 как «SHA-3».

Используя этот онлайн-генератор и Solidity Online Compiler , я проверил разницу между Keccak-256 и SHA3-256. Я хэшировал слово тестирование с помощью Ethereum и двух алгоритмов хэширования SHA3:

Функция Ethereum SHA3 в Solidity = 5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02

Keccak-256 = 5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02

SHA3-256 (стандарт NIST) = 7f5979fb78f082e8b1c676635db8795c4ac6faba03525fb708cb5fd68fd40c5e

ответил Hudson Jameson 24 Jpm1000000pmSun, 24 Jan 2016 12:17:29 +030016 2016, 12:17:29
12

Чтобы сделать более понятным, что Ethereum использует KECCAK-256 вместо стандартизованной хэш-функции SHA-3 NIST, Solidity 0.4.3 ввел keccak256 . (Это псевдоним sha3, что означает, что keccak256 дает идентичные результаты sha3, но с намерением избежать путаница , особенно для разработчиков, новых для Ethereum .) Рекомендуется использовать новый код keccak256 вместо sha3.

ответил eth 11 52016vEurope/Moscow11bEurope/MoscowFri, 11 Nov 2016 14:02:33 +0300 2016, 14:02:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132