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

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

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

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

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

cSHAKE128

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

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

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

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

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

Пример

Ввод
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 256 bits
Вывод
c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5

Пример cSHAKE #1 из NIST SP 800-185.

Когда использовать Генератор хеша cSHAKE128

Используйте cSHAKE128, когда нужно разделение доменов: несколько хешей от одних и тех же данных для разных целей (метки для выработки ключей, протокольные транскрипты, хеши с тегами). Если настройка не нужна, берите обычный SHAKE128, а если задействован секретный ключ — KMAC128. N зарезервировано за функциями, определёнными NIST; приложения обычно должны использовать только S.

Как работает Генератор хеша cSHAKE128

cSHAKE128 (NIST SP 800-185) — это SHAKE128 с разделением доменов. Перед сообщением он поглощает bytepad(encode_string(N) || encode_string(S), 168) — имя функции N и строку настройки S, каждая с префиксом из своей длины в битах, — а затем дополняет данные суффиксом 00 вместо 1111 у SHAKE. Если N и S пусты, cSHAKE128 по определению равен SHAKE128. Разные значения N или S дают независимые функции. N и S вводятся как текст и кодируются в UTF-8.

Распространенные Случаи Использования

  • Воспроизвести тестовые векторы cSHAKE из NIST SP 800-185
  • Получить разные значения для разных контекстов из одного ввода
  • Реализовать или отладить KMAC, TupleHash или ParallelHash, построенные на cSHAKE
  • Хешировать сообщения протокола с меткой, специфичной для приложения

Примечание по Безопасности

cSHAKE128 обеспечивает 128-битную стойкость, как и SHAKE128. Строка настройки публична и не является ключом — для аутентификации используйте KMAC128. Вычисления выполняются локально в браузере.

Часто Задаваемые Вопросы

Что будет, если N и S оба пусты?

По определению cSHAKE128 тогда равен SHAKE128; для abc при 256 битах вы получите 5881092dd818bf5c…, как у SHAKE128.

В чём разница между N и S?

N (имя функции) зарезервировано за функциями, определёнными NIST, такими как "KMAC" или "TupleHash". S — свободная строка настройки для приложений. На практике задают S, а N оставляют пустым.

Как кодируются N и S?

Как байты UTF-8 с префиксом из длины в битах (left_encode), затем дополняются до размера rate, как указано в SP 800-185.

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