# Аудитор MAC-конструкций: HMAC + BLAKE3 + SHA-3/Keccak + Poly1305 + BLAKE2 с ключом

Вычисляет и аудитурует MAC для HMAC-SHA-2/SHA-3, BLAKE2 с ключом, BLAKE3, KMAC и Poly1305 с официальными самотестами, проверкой длин ключа/метки и матрицей совместимости конструкций.

> Каноническая страница: https://elysiatools.com/ru/tools/hmac-blake3-sha3-keccak-keyed-hash-and-mac-construction-linter

- **Категория:** Cryptography

- **Ключевые слова:** аудит hmac, mac-конструкции, blake2 с ключом, blake3 ключевой хеш, kmac, cshake, poly1305 одноразовый, sha3 keccak, векторы rfc 4231, усечение метки

## Обзор

Каждую метку выдаёт проверенная реализация: HMAC — через OpenSSL в node:crypto; BLAKE2/BLAKE3/KMAC/Poly1305 — чистый TypeScript, сверенный с официальным KAT BLAKE2, векторами BLAKE3, образцами NIST SP 800-185, RFC 8439 §2.5.2 и FIPS 202. Уровни безопасности — по NIST SP 800-107 (сила HMAC = min(биты ключа, биты выхода хеша), граница подделки 2^(t/2)) и SP 800-185 (KMAC = min(ключ, 2·метка, c/2) бит).

## Входные данные

- **Сообщение** (textarea): Payload to authenticate (e.g. webhook body, JWT signing input)
- **Кодировка сообщения** (select)
- **Ключ (hex)** (text): e.g. 0b0b0b... (20 bytes) or 000102...1f (32 bytes)
- **Длина сохраняемой метки (байты)** (number)
- **Метка разделения доменов (KMAC custom / контекст BLAKE3)** (text): e.g. myapi/v1/webhook

## Когда использовать

- При валидации и отладке подписей входящих и исходящих вебхуков или API-запросов между различными микросервисами.
- При выборе криптографической конструкции MAC для нового сервиса с учетом требований к производительности и стойкости ключа.
- При проверке безопасности длины усечённых меток аутентификации в соответствии с рекомендациями NIST SP 800-107 и NIST SP 800-185.

## Как это работает

- Пользователь вводит полезную нагрузку (в формате UTF-8 или Hex), секретный ключ в hex-формате, желаемую длину итоговой метки и опциональную строку доменного разделения.
- Инструмент параллельно вычисляет значения MAC для поддерживаемых алгоритмов, применяя проверенные криптографические реализации и контексты доменной изоляции.
- Алгоритмы сопоставляются со встроенными эталонными векторами KAT (Known-Answer Tests), после чего формируется подробный отчет с оценкой битовой стойкости и предупреждениями линтера.

## Сценарии использования

- Сверка и аудит кодовых баз на соответствие официальным векторам RFC 4231 и FIPS 202.
- Генерация тестовых контрольных сумм с контекстным разделением доменов для API-шлюзов.
- Анализ снижения уровня криптографической стойкости при компактном хранении усечённых меток в сетевых заголовках.

## Частые вопросы

### Почему для BLAKE3 и Poly1305 требуется ключ строго 32 байта?

Спецификации BLAKE3 (в режиме keyed hash) и RFC 8439 для Poly1305 строго фиксируют размер ключа ровно в 256 бит (32 байта).

### Для чего используется поле «Метка разделения доменов»?

Оно передается как строка кастомизации S в KMAC (cSHAKE) и как контекстная строка в механизм BLAKE3 derive_key для криптографической изоляции протоколов.

### Чем опасно сильное усечение длины метки (tagBytes)?

При усечении метки ниже 16 байт (128 бит) граница сопротивления подделке снижается до 2^(t/2), что создает риски атак перебором.

### В чем отличие вычислений HMAC и KMAC?

HMAC использует блочную конструкцию с двойным хешированием надлежащей функции SHA, а KMAC основан на губкообразной функции Keccak/cSHAKE без риска удлинения сообщения.

### Как обрабатываются входные сообщения в шестнадцатеричном виде?

При выборе режима «Шестнадцатеричные байты» строка декодируется напрямую в сырые байты перед передачей в MAC-конструкции.

## Связанные инструменты

- [Сравнение хеш-алгоритмов](https://elysiatools.com/ru/tools/hash-algorithm-comparator): Хеширует один и тот же вход с помощью MD5, SHA-1, SHA-256, SHA-512, BLAKE2b и BLAKE3 и сравнивает их: длину, hex/Base64-дайджест, статус безопасности (взломан/современный) и относительный бенчмарк скорости. Полезно для обучения, выбора алгоритма и проверки контрольных сумм.
- [Генератор хешей текста](https://elysiatools.com/ru/tools/text-hash-generator): Вычисляет MD5, SHA-1, SHA-256, SHA-512 и CRC-32 любого текста сразу. Возвращает hex и Base64 по UTF-8 кодировке.
- [Симулятор пороговых подписей BLS (Boneh–Lynn–Shacham) + распределённой генерации ключей](https://elysiatools.com/ru/tools/bls-boneh-lynn-shacham-threshold-signature-aggregation-distributed-key-gen-simulator): Полный цикл BLS12-381: церемонии Joint-Feldman DKG, пороговые подписи t-of-n с интерполяцией Лагранжа, атака мошенническим ключом и защита доказательством владения, агрегация аттестаций Ethereum 2.
- [Визуализатор потока OAuth 2.0 / OIDC с кодом авторизации и PKCE](https://elysiatools.com/ru/tools/oauth-oidc-authorization-code-pkce-flow-visualizer): Сквозная симуляция потока кода авторизации с PKCE: генерация verifier/challenge, URL авторизации, обмен токенами, чек-лист проверки ID Token и демо атаки перехвата.
- [Генератор PKCE Code Verifier и Challenge](https://elysiatools.com/ru/tools/pkce-code-verifier-generator): Создание, проверка и верификация пар code_verifier / code_challenge PKCE (RFC 7636) для OAuth2 / OIDC. Три режима: (1) создать новую пару из криптостойких случайных байт (256/384/512/768 бит), (2) аудит имеющегося verifier по RFC — длина (43–128), набор \[A-Za-z0-9-._~\] и ≥256 бит энтропии, (3) проверить пару, пересчитав BASE64URL(SHA256(verifier)). При желании строит полный URL запроса авторизации и тело обмена токена. Дополняет универсальный nonce-generator (только выдаёт пару) аудитом соответствия RFC и проверкой пар.
- [Шифрование / Расшифрование RSA](https://elysiatools.com/ru/tools/rsa-encrypt-decrypt): Шифрует текст открытым ключом RSA или расшифровывает шифртекст соответствующим закрытым ключом, с OAEP-паддингом (SHA-1 или SHA-256). Длинные сообщения бьются на блоки. Ключи и данные обрабатываются локально. PKCS#1 v1.5 не предлагается (Node отключает его для расшифровки из-за атак Bleichenbacher).
- [Кодировщик Web Push: запрос RFC 8030 + VAPID + шифрование RFC 8291](https://elysiatools.com/ru/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder): Кодирует полную отправку Web Push: шифрование aes128gcm по RFC 8291, VAPID ES256 JWT по RFC 8292, заголовки RFC 8030, соответствие APNs/FCM и проверку расшифровкой в оба направления.
- [Контрольная сумма CRC32](https://elysiatools.com/ru/tools/crc32-checksum): Вычисляет CRC32 (полином IEEE 802.3) для текста или байтов. Вывод в hex, десятичном или двоичном виде. Принимает текст (UTF-8) или байты через hex/base64.

## Примеры

- [Примеры MAC-адресов](https://elysiatools.com/ru/samples/mac-address): Коллекция MAC-адресов в различных форматах для тестирования валидации
- [MP3 Аудио Образцы Без Авторских Прав](https://elysiatools.com/ru/samples/mp3-samples): Коллекция аудио образцов без авторских прав для тестирования и разработки, включая звуки природы, медитативную музыку и фоновое аудио
- [Примеры Обработки Изображений Android Java](https://elysiatools.com/ru/samples/android-image-processing-java): Примеры обработки изображений Android Java включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Android Kotlin](https://elysiatools.com/ru/samples/android-image-processing-kotlin): Примеры обработки изображений Android Kotlin включая чтение/сохранение, масштабирование и преобразование формата
