Хэш 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».
Характеристики
| Параметр | Значение |
|---|---|
| Длина хэша | 256 бит (64 hex-символа) |
| Размер блока | 1024 бита |
| Раундов на блок | 80 (как у SHA-512) |
| Внутреннее состояние | 8 × 64-битных регистра, публикуются первые 4 |
| Защита от length-extension | Да (в отличие от обычного SHA-256/SHA-512) |
| Опубликован | 2015, FIPS 180-4 |
Где применяется
- Там, где нужен компактный 256-битный хэш и одновременно защита от length-extension без надстроек вроде HMAC
- Высокопроизводительные сервисы на 64-битных серверах, где важна скорость при 256-битном выводе
- Пока встречается реже полного SHA-256 — стандарт относительно новый
Криптостойкость
Обычные 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 не взломан — практических коллизий или прообразных атак не существует.