Перейти к содержимому
ecdsa.com

SHA-3

Семейство хеш-функций на основе Keccak из FIPS 202 (2015 год), построенное на криптографической губке (sponge), а не на конструкции Меркла — Дамгора: SHA3-224, SHA3-256, SHA3-384, SHA3-512 и функции с расширяемым выходом SHAKE128 и SHAKE256.
Другие написанияSHA3SHA3-256SHA3-512Keccak (FIPS 202)

Губка впитывает входные данные в 1600-битное состояние с помощью перестановки Keccak-f и выжимает из него выход. Состояние делится на скорость (rate, часть, с которой работают вход и выход) и ёмкость c, определяющую стойкость; в SHA3-256 скорость равна 1088 бит, а ёмкость — 512. Ёмкость никогда не попадает в выход, поэтому атака удлинения сообщения к SHA-3 неприменима, а SHA3-256(key ‖ message) — надёжная конструкция MAC, хотя стандартизованный вариант такой конструкции — KMAC.

Тестовый вектор: SHA3-256 от пустой строки — a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a. «SHA3» в Ethereum — это Keccak-256 с исходным дополнением, и он даёт другой дайджест; FIPS 202 добавил биты разделения доменов.

На процессорах с инструкциями SHA-2 программная реализация SHA-3 медленнее SHA-256: около 1,01 ГБ/с для SHA3-256 против 2,85 ГБ/с для SHA-256 на одном ядре Apple M4 Max с OpenSSL 3.6.5. SHA-3 стандартизовали как структурно иную резервную альтернативу SHA-2, а не как замену, и функции SHAKE из этого семейства — основные примитивы хеширования внутри ML-KEM, ML-DSA и SLH-DSA.

Стандарты и ссылки

Все термины