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