Генератор хеша cSHAKE256

Вычисляйте cSHAKE256 с именем функции N, строкой настройки S и любой длиной вывода. Проверено по примерам NIST SP 800-185, работает в вашем браузере.

Кратна 8, от 8 до 16384 бит.

Обычно остаётся пустым. Зарезервировано NIST для функций, построенных на cSHAKE.

Необязательная метка для разделения доменов, например название приложения. Разные строки дают никак не связанные результаты.

cSHAKE256

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Что такое Генератор хеша cSHAKE256?

cSHAKE256 — настраиваемая версия SHAKE256, определённая в NIST SP 800-185. Она добавляет имя функции N и строку настройки S, чтобы одно и то же сообщение, хешируемое для разных целей, давало несвязанные результаты. Инструмент позволяет задать N, S и длину вывода.

Как пользоваться Генератор хеша cSHAKE256

  1. Введите или вставьте данные в Текст для хеширования — дайджест обновляется по мере ввода (пустое поле показывает хеш пустого ввода).
  2. Выберите Кодировка ввода: Текст (UTF-8) хеширует символы как UTF-8, Байты в hex или Base64 хешируют декодированные сырые байты.
  3. Задайте Длина вывода (бит) (по умолчанию 512).
  4. При необходимости заполните Имя функции (N) (обычно пусто) и Строка настройки (S), например название вашего приложения или протокола.
  5. Выберите Формат вывода (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.

Другие категории