# Auditor de construções MAC: HMAC + BLAKE3 + SHA-3/Keccak + Poly1305 + BLAKE2 com chave

Calcula e audita MACs em HMAC-SHA-2/SHA-3, BLAKE2 com chave, BLAKE3, KMAC e Poly1305 com autotestes oficiais de resposta conhecida, verificação de comprimentos de chave/tag e matriz de compatibilidade entre construções.

> Página canônica: https://elysiatools.com/pt/tools/hmac-blake3-sha3-keccak-keyed-hash-and-mac-construction-linter

- **Categoria:** Cryptography

- **Palavras-chave:** auditoria hmac, construção mac, blake2 com chave, blake3 hash com chave, kmac, cshake, poly1305 de uso único, sha3 keccak, vetores rfc 4231, truncamento de tag

## Visão geral

Cada tag é produzida por uma implementação verificada: HMAC via OpenSSL no node:crypto; BLAKE2/BLAKE3/KMAC/Poly1305 em TypeScript puro, conferidos com o KAT oficial do BLAKE2, os vetores oficiais do BLAKE3, as amostras KMAC do NIST SP 800-185, a RFC 8439 §2.5.2 e o FIPS 202. Os níveis de segurança seguem o NIST SP 800-107 (força do HMAC = min(bits de chave, bits de saída do hash), limite de falsificação 2^(t/2)) e o SP 800-185 (KMAC = min(chave, 2·tag, c/2) bits).

## Entradas

- **Mensagem** (textarea): Payload to authenticate (e.g. webhook body, JWT signing input)
- **Codificação da mensagem** (select)
- **Chave (hexadecimal)** (text): e.g. 0b0b0b... (20 bytes) or 000102...1f (32 bytes)
- **Comprimento de tag mantido (bytes)** (number)
- **Etiqueta de separação de domínio (KMAC custom / contexto BLAKE3)** (text): e.g. myapi/v1/webhook

## Quando usar

- Validar assinaturas criptográficas de webhooks, tokens de sessão e mensagens de API em diferentes esquemas MAC.
- Avaliar o impacto de segurança e a perda de entropia ao truncar o comprimento de tags MAC.
- Verificar a conformidade de implementações de HMAC, KMAC e hashes com chave com vetores de teste oficiais (RFC 4231, NIST SP 800-185 e FIPS 202).

## Como funciona

- Recebe a mensagem de entrada em formato UTF-8 ou hexadecimal junto com a chave secreta em hexadecimal.
- Executa simultaneamente as construções suportadas (HMAC, BLAKE2, BLAKE3, KMAC, Poly1305) com suporte a rótulos de separação de domínio.
- Aplica o truncamento de bytes configurado e calcula a força teórica de bits conforme as diretrizes NIST SP 800-107 e SP 800-185.
- Gera um relatório de auditoria detalhado com validação de autotestes conhecidos (KAT) e alertas de vulnerabilidade ou incompatibilidade de chave.

## Casos de uso

- Auditar parâmetros de autenticação de webhooks para garantir que tags truncadas mantêm no mínimo 128 bits de segurança.
- Comparar tags calculadas localmente com vetores de resposta conhecida durante o desenvolvimento de bibliotecas criptográficas.
- Configurar separação de domínio e contextos seguros em arquiteturas de microsserviços usando KMAC e BLAKE3.

## Perguntas frequentes

### Quais construções MAC são avaliadas pelo auditor?

O auditor analisa variantes de HMAC (SHA-2 e SHA-3), BLAKE2 com chave, BLAKE3 com chave/contexto, KMAC128/KMAC256 e Poly1305.

### Por que o BLAKE3 ou o Poly1305 podem ser ignorados na execução?

Ambas as construções exigem rigorosamente chaves secretas de 32 bytes (256 bits). Chaves de tamanhos diferentes são ignoradas.

### Como é calculada a força de segurança contra falsificação em tags truncadas?

A segurança contra falsificação de uma tag truncada para t bits segue a estimativa teórica limitada a 2^(t/2) bits, conforme o NIST SP 800-107.

### Para que serve o campo de etiqueta de separação de domínio?

Ele é usado como string de personalização no KMAC (NIST SP 800-185) e como contexto na derivação de subchaves no BLAKE3.

### O Poly1305 pode ser reutilizado com a mesma chave em várias mensagens?

Não. O Poly1305 é um MAC de uso único e a reutilização da mesma chave em mensagens distintas compromete totalmente a autenticidade.

## Ferramentas relacionadas

- [Comparador de algoritmos de hash](https://elysiatools.com/pt/tools/hash-algorithm-comparator): Aplica MD5, SHA-1, SHA-256, SHA-512, BLAKE2b e BLAKE3 à mesma entrada e compara: tamanho, digest hex/Base64, status de segurança (quebrado/moderno) e benchmark de velocidade relativa. Útil para ensino, escolha de algoritmo ou checagem de checksums.
- [Gerador de hash de texto](https://elysiatools.com/pt/tools/text-hash-generator): Calcula MD5, SHA-1, SHA-256, SHA-512 e CRC-32 de qualquer texto de uma vez. Retorna hex e Base64 sobre a codificação UTF-8.
- [Simulador de assinaturas de limiar BLS (Boneh–Lynn–Shacham) + geração distribuída de chaves](https://elysiatools.com/pt/tools/bls-boneh-lynn-shacham-threshold-signature-aggregation-distributed-key-gen-simulator): Simula BLS12-381 de ponta a ponta: cerimônias Joint-Feldman DKG, assinaturas de limiar t-de-n com interpolação de Lagrange, o ataque de chave fraudulenta e sua defesa por prova de posse, e a agregação de atestações do Ethereum 2.
- [Visualizador do fluxo OAuth 2.0 / OIDC com código de autorização e PKCE](https://elysiatools.com/pt/tools/oauth-oidc-authorization-code-pkce-flow-visualizer): Simula de ponta a ponta o fluxo de código de autorização com PKCE: geração de verifier/challenge, URL de autorização, troca de token, checklist de validação do ID Token e demonstração de ataque de interceptação.
- [Gerador de PKCE Code Verifier e Challenge](https://elysiatools.com/pt/tools/pkce-code-verifier-generator): Gera, valida e verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Três modos: (1) gerar um par novo a partir de bytes aleatórios criptográficos (256/384/512/768 bits), (2) auditar um verifier existente frente ao RFC — comprimento (43–128), charset \[A-Za-z0-9-._~\] e ≥256 bits de entropia, e (3) verificar um par recalculando BASE64URL(SHA256(verifier)). Opcionalmente constrói a URL completa de autorização e o corpo de troca de token. Complementa o nonce-generator genérico (que só emite o par) com auditoria de conformidade RFC e verificação de pares.
- [Criptografar / Descriptografar RSA](https://elysiatools.com/pt/tools/rsa-encrypt-decrypt): Criptografa texto com uma chave pública RSA ou descriptografa o texto cifrado com a chave privada correspondente, usando padding OAEP (SHA-1 ou SHA-256). Trata mensagens longas em blocos. Chaves e dados ficam locais. PKCS#1 v1.5 não é oferecido (Node o desabilita para descriptografia devido a ataques Bleichenbacher).
- [Codificador Web Push: pedido RFC 8030 + VAPID + cifragem RFC 8291](https://elysiatools.com/pt/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder): Codifica um envio Web Push completo: cifragem aes128gcm do RFC 8291, JWT ES256 do VAPID (RFC 8292), cabeçalhos RFC 8030, correspondência APNs/FCM e verificação por descriptografia de ida e volta.
- [Soma de verificação CRC32](https://elysiatools.com/pt/tools/crc32-checksum): Calcula a soma CRC32 (polinômio IEEE 802.3) de qualquer texto ou bytes. Saída em hex, decimal ou binário. Aceita texto (UTF-8) ou bytes via hex/base64.

## Exemplos

- [Exemplos de Endereços MAC](https://elysiatools.com/pt/samples/mac-address): Coleção de endereços MAC em vários formatos para testes de validação
- [Amostras de Áudio MP3 Livres de Direitos Autorais](https://elysiatools.com/pt/samples/mp3-samples): Coleção de amostras de áudio livres de direitos autorais para testes e desenvolvimento, incluindo sons da natureza, música de meditação e áudio ambiente
- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Kotlin](https://elysiatools.com/pt/samples/android-image-processing-kotlin): Exemplos de processamento de imagem Android Kotlin incluindo leitura/escrita, dimensionamento e conversão de formato
