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

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

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

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

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

KMAC128

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

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

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

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

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

Пример

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

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

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

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

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

KMAC128 (NIST SP 800-185) — это cSHAKE128 с именем функции "KMAC". Он поглощает bytepad(encode_string(K), 168) — ключ, дополненный до полного блока, — затем сообщение, затем 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) для тестов

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

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

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

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

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

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

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

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

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

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

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

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