Генератор кода аутентификации сообщений KMAC256
Вычисляйте код аутентификации сообщения KMAC256 с вашим ключом (текст или hex), строкой настройки и длиной вывода. Совпадает с примерами NIST SP 800-185.
Кратна 8, от 8 до 16384 бит.
Необязательная метка для разделения доменов, например название приложения. Разные строки дают никак не связанные результаты.
Ключ пуст. Без секретного ключа KMAC ничего не аутентифицирует.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Генератор KMAC256?
KMAC256 — код аутентификации сообщения на основе Keccak из NIST SP 800-185, аналог HMAC в мире SHA-3. По секретному ключу, необязательной строке настройки и длине вывода он создаёт тег, который могут вычислить только обладатели ключа. Инструмент вычисляет KMAC256 текста или сырых байтов.
Как пользоваться Генератор KMAC256
- Введите данные в Сообщение; для бинарных данных выберите Байты в hex или Base64 как кодировку ввода.
- Введите Секретный ключ и выберите его Кодировка ключа (Текст (UTF-8) или Байты в hex).
- При необходимости введите Строка настройки (S) и измените Длина вывода (бит) (по умолчанию 512).
- Выберите Формат вывода и нажмите Копировать, чтобы использовать тег.
Пример
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) в качестве байтов ключа используются сами символы.
Ключ куда-нибудь отправляется?
Нет. Ключ и сообщение обрабатываются только в вашем браузере.