Генератор хеша cSHAKE256
Вычисляйте cSHAKE256 с именем функции N, строкой настройки S и любой длиной вывода. Проверено по примерам NIST SP 800-185, работает в вашем браузере.
Кратна 8, от 8 до 16384 бит.
Обычно остаётся пустым. Зарезервировано NIST для функций, построенных на cSHAKE.
Необязательная метка для разделения доменов, например название приложения. Разные строки дают никак не связанные результаты.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Генератор хеша cSHAKE256?
cSHAKE256 — настраиваемая версия SHAKE256, определённая в NIST SP 800-185. Она добавляет имя функции N и строку настройки S, чтобы одно и то же сообщение, хешируемое для разных целей, давало несвязанные результаты. Инструмент позволяет задать N, S и длину вывода.
Как пользоваться Генератор хеша cSHAKE256
- Введите или вставьте данные в Текст для хеширования — дайджест обновляется по мере ввода (пустое поле показывает хеш пустого ввода).
- Выберите Кодировка ввода: Текст (UTF-8) хеширует символы как UTF-8, Байты в hex или Base64 хешируют декодированные сырые байты.
- Задайте Длина вывода (бит) (по умолчанию 512).
- При необходимости заполните Имя функции (N) (обычно пусто) и Строка настройки (S), например название вашего приложения или протокола.
- Выберите Формат вывода (hex строчными, hex прописными или Base64) и нажмите Копировать.
Пример
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 512 bits
d008828e2b80ac9d2218ffee1d070c48b8e4c87bff32c9699d5b6896eee0edd164020e2be0560858d9c00c037e34a96937c561a74c412bb4c746469527281c8c
Пример cSHAKE #3 из NIST SP 800-185.
Когда использовать Генератор хеша cSHAKE256
Используйте cSHAKE256, когда нужно разделение доменов: несколько хешей от одних и тех же данных для разных целей (метки для выработки ключей, протокольные транскрипты, хеши с тегами). Если настройка не нужна, берите обычный SHAKE256, а если задействован секретный ключ — KMAC256. N зарезервировано за функциями, определёнными NIST; приложения обычно должны использовать только S.
Как работает Генератор хеша cSHAKE256
cSHAKE256 (NIST SP 800-185) — это SHAKE256 с разделением доменов. Перед сообщением он поглощает bytepad(encode_string(N) || encode_string(S), 136) — имя функции N и строку настройки S, каждая с префиксом из своей длины в битах, — а затем дополняет данные суффиксом 00 вместо 1111 у SHAKE. Если N и S пусты, cSHAKE256 по определению равен SHAKE256. Разные значения N или S дают независимые функции. N и S вводятся как текст и кодируются в UTF-8.
Распространенные Случаи Использования
- Воспроизвести тестовые векторы cSHAKE из NIST SP 800-185
- Получить разные значения для разных контекстов из одного ввода
- Реализовать или отладить KMAC, TupleHash или ParallelHash, построенные на cSHAKE
- Хешировать сообщения протокола с меткой, специфичной для приложения
Примечание по Безопасности
cSHAKE256 обеспечивает 256-битную стойкость, как и SHAKE256. Строка настройки публична и не является ключом — для аутентификации используйте KMAC256. Вычисления выполняются локально в браузере.
Часто Задаваемые Вопросы
Что будет, если N и S оба пусты?
По определению cSHAKE256 тогда равен SHAKE256; для abc при 512 битах вы получите 483366601360a877…, как у SHAKE256.
В чём разница между N и S?
N (имя функции) зарезервировано за функциями, определёнными NIST, такими как "KMAC" или "TupleHash". S — свободная строка настройки для приложений. На практике задают S, а N оставляют пустым.
Как кодируются N и S?
Как байты UTF-8 с префиксом из длины в битах (left_encode), затем дополняются до размера rate, как указано в SP 800-185.