Генератор кода аутентификации сообщений KMAC256

Вычисляйте код аутентификации сообщения KMAC256 с вашим ключом (текст или hex), строкой настройки и длиной вывода. Совпадает с примерами NIST SP 800-185.

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

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

Ключ пуст. Без секретного ключа KMAC ничего не аутентифицирует.

KMAC256

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

Что такое Генератор KMAC256?

KMAC256 — код аутентификации сообщения на основе Keccak из NIST SP 800-185, аналог HMAC в мире SHA-3. По секретному ключу, необязательной строке настройки и длине вывода он создаёт тег, который могут вычислить только обладатели ключа. Инструмент вычисляет KMAC256 текста или сырых байтов.

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

  1. Введите данные в Сообщение; для бинарных данных выберите Байты в hex или Base64 как кодировку ввода.
  2. Введите Секретный ключ и выберите его Кодировка ключа (Текст (UTF-8) или Байты в hex).
  3. При необходимости введите Строка настройки (S) и измените Длина вывода (бит) (по умолчанию 512).
  4. Выберите Формат вывода и нажмите Копировать, чтобы использовать тег.

Пример

Ввод
Message 00010203 (Hex bytes), key 404142…5E5F (32 bytes, hex), S = "My Tagged Application", 512 bits
Вывод
20c570c31346f703c9ac36c61c03cb64c3970d0cfc787e9b79599d273a68d2f7f69d4cc3de9d104a351689f27cf6f5951f0103f33f4f24871024d9c27773a8dd

Пример KMAC #4 из NIST SP 800-185.

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

Используйте KMAC256 для аутентификации сообщений или выработки ключей в системах на основе SHA-3, а также для проверки тегов KMAC из спецификации или другой реализации. Если другая сторона ожидает HMAC-SHA256, KMAC не будет совместим — там нужен HMAC. Не используйте пустой или легко угадываемый ключ: MAC так же надёжен, как его ключ.

Как работает Генератор KMAC256

KMAC256 (NIST SP 800-185) — это cSHAKE256 с именем функции "KMAC". Он поглощает bytepad(encode_string(K), 136) — ключ, дополненный до полного блока, — затем сообщение, затем right_encode(L) с запрошенной длиной вывода L и выжимает L бит. Поскольку L входит в данные, 256-битный и 512-битный KMAC одних и тех же данных никак не связаны (в отличие от SHAKE). Губчатая конструкция делает безопасным простой префикс из ключа, поэтому KMAC не нуждается во вложенной структуре HMAC.

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

  • Проверить тестовые векторы KMAC из NIST SP 800-185
  • Отладить реализацию KMAC на другом языке
  • Сгенерировать тег аутентификации для API или сообщения в протоколе на основе SHA-3
  • Получить ключ с помощью KMAC как KDF (в духе SP 800-108) для тестов

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

KMAC256 обеспечивает стойкость до 256 бит, если ключ случаен и не короче 32 байт. Используйте новый секретный ключ и сравнивайте теги за постоянное время в собственном коде. Никогда не вставляйте боевые ключи в инструменты, которым не доверяете; этот работает локально и ничего не отправляет.

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

Чем KMAC256 отличается от HMAC?

HMAC дважды оборачивает хеш, чтобы избежать проблем SHA-2 с удлинением сообщения. Keccak к удлинению не уязвим, поэтому KMAC просто ставит в начало дополненный ключ. Результаты не взаимозаменяемы.

Почему при изменении длины вывода меняются все биты?

Длина вывода L кодируется во входных данных, поэтому KMAC на 256 и 512 бит — независимые значения: короткое не является префиксом длинного.

Как ввести бинарный ключ?

Установите Кодировка ключа в Байты в hex и вставьте ключ в hex (пробелы допускаются). При Текст (UTF-8) в качестве байтов ключа используются сами символы.

Ключ куда-нибудь отправляется?

Нет. Ключ и сообщение обрабатываются только в вашем браузере.

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