Хэш SHA-512/256 онлайн — калькулятор и разбор алгоритма | lavarden.ru
Войти

Хэш SHA-512/256 онлайн

SHA-512 с урезанным до 256 бит выводом и другим IV — в отличие от SHA-256 защищён от length-extension атак. Считается прямо в браузере — текст никуда не отправляется.

Вычислить SHA-512/256

Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.

История SHA-512/256

SHA-512/256 — самый молодой член семейства SHA-2, добавлен в стандарт позже остальных, в редакции FIPS 180-4 (2015). Задача была конкретная: получить компактный 256-битный хэш (как у SHA-256), но с внутренней 64-битной арифметикой SHA-512 — на 64-разрядных процессорах она зачастую быстрее 32-битной. Заодно разработчики закрыли известную теоретическую слабость обычных SHA-256/SHA-512 — уязвимость к length-extension атакам (когда, зная только хэш сообщения без самого сообщения, можно вычислить хэш «сообщение + что-то ещё» без знания исходного текста).

По сути это третий способ получить 256-битный отпечаток данных в семействе SHA-2 — наравне с полным SHA-256 и с «SHA-256 на 64-битном движке».

Как устроен алгоритм

SHA-512/256 — это SHA-512 (1024-битные блоки, восемь 64-битных регистров, 80 раундов) со своим начальным вектором и усечением вывода до первых четырёх 64-битных регистров (4 × 64 = 256 бит). Важная деталь именно этого варианта: усечение — не единственная защита. Начальный вектор SHA-512/256 выведен специальной процедурой (описанной в стандарте как «SHA-512 в режиме t», где t = 256) так, чтобы получить IV, гарантированно не совпадающий ни с одним другим вариантом SHA-2 — это дополнительная защита от атак, использующих совпадение промежуточных состояний разных функций семейства.

Из-за усечения атакующий никогда не видит все 512 бит внутреннего состояния — только первые 256 — а без полного состояния классический трюк с length-extension не работает: недостающие биты невозможно восстановить и продолжить вычисление «как будто читал полный SHA-512».

СООБЩЕНИЕ, РАЗБИТОЕ НА 1024-БИТНЫЕ БЛОКИ M₁ M₂ … Mₙ особый IV (режим "t=256") f f f 4 слова ✕ 256 бит в хэш 4 слова никогда не публикуются
Половина внутреннего состояния никогда не покидает алгоритм — отсюда защита от length-extension

Характеристики

ПараметрЗначение
Длина хэша256 бит (64 hex-символа)
Размер блока1024 бита
Раундов на блок80 (как у SHA-512)
Внутреннее состояние8 × 64-битных регистра, публикуются первые 4
Защита от length-extensionДа (в отличие от обычного SHA-256/SHA-512)
Опубликован2015, FIPS 180-4

Где применяется

Криптостойкость

💡

Обычные SHA-256 и SHA-512 «в лоб» уязвимы к length-extension: зная только H(secret || message) и длину secret, можно вычислить H(secret || message || padding || extra) без знания самого secret — это реальная проблема для наивных самодельных MAC-схем (решается HMAC-обёрткой). SHA-512/256 закрывает эту дыру на уровне самого алгоритма, без HMAC.

Как и весь SHA-2, SHA-512/256 не взломан — практических коллизий или прообразных атак не существует.

Пример

СтрокаHello, world!
SHA-512/256330c723f25267587db0b9f493463e017011239169cb57a6db216c63774367115
Пустая строкаc672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a