Gerador de código de autenticação de mensagem KMAC128
Calcule um código de autenticação de mensagem KMAC128 com sua chave (texto ou hex), string de personalização e tamanho de saída. Confere com os exemplos do NIST SP 800-185.
Um múltiplo de 8, de 8 a 16384 bits.
Rótulo opcional de separação de domínio, por exemplo o nome do seu aplicativo. Strings diferentes geram saídas sem relação.
A chave está vazia. Sem uma chave secreta, o KMAC não autentica nada.
Executa totalmente no seu navegador. Seus dados nunca são enviados.
O que é Gerador KMAC128?
O KMAC128 é o código de autenticação de mensagem baseado em Keccak do NIST SP 800-185, o equivalente do HMAC no mundo SHA-3. A partir de uma chave secreta, uma string de personalização opcional e um tamanho de saída, ele produz uma tag que só quem tem a chave consegue calcular. Esta ferramenta calcula o KMAC128 de texto ou de bytes brutos.
Como usar Gerador KMAC128
- Digite os dados em Mensagem; para dados binários, escolha Bytes em hexadecimal ou Base64 como codificação de entrada.
- Informe a Chave secreta e selecione a Codificação da chave (Texto (UTF-8) ou Bytes em hexadecimal).
- Opcionalmente, informe uma String de personalização (S) e altere o Tamanho da saída (bits) (padrão 256).
- Escolha o Formato de saída e clique em Copiar para usar a tag.
Exemplo
Message 00010203 (Hex bytes), key 404142…5E5F (32 bytes, hex), S = "My Tagged Application", 256 bits
3b1fba963cd8b0b59e8c1a6d71888b7143651af8ba0a7070c0979e2811324aa5
Exemplo nº 2 de KMAC do NIST SP 800-185.
Quando usar Gerador KMAC128
Use o KMAC128 para autenticar mensagens ou derivar chaves em sistemas baseados em SHA-3, ou para verificar tags KMAC de uma especificação ou de outra implementação. Se o outro lado espera HMAC-SHA256, o KMAC não vai interoperar — nesse caso, use HMAC. Não use uma chave vazia ou fácil de adivinhar; um MAC é tão forte quanto a sua chave.
Como funciona Gerador KMAC128
O KMAC128 (NIST SP 800-185) é o cSHAKE128 com nome de função "KMAC". Ele absorve bytepad(encode_string(K), 168) — a chave completada até um bloco inteiro —, depois a mensagem e depois right_encode(L) com o tamanho de saída solicitado L, e extrai L bits. Como L faz parte da entrada, um KMAC de 256 bits e um de 512 bits dos mesmos dados não têm relação entre si (ao contrário do SHAKE). O design de esponja torna segura a construção simples de prefixar a chave, então o KMAC não precisa da estrutura aninhada do HMAC.
Casos de Uso Comuns
- Verificar os vetores de teste KMAC do NIST SP 800-185
- Depurar uma implementação de KMAC em outra linguagem
- Gerar uma tag de autenticação para uma API ou mensagem em um protocolo baseado em SHA-3
- Derivar uma chave com KMAC como KDF (no estilo do SP 800-108) para testes
Nota de Segurança
O KMAC128 oferece até 128 bits de segurança quando a chave é aleatória e tem pelo menos 16 bytes. Use uma chave nova e secreta e compare as tags em tempo constante no seu próprio código. Nunca cole chaves de produção em ferramentas em que você não confia; esta roda localmente e não envia nada.
Perguntas Frequentes
Qual a diferença entre o KMAC128 e o HMAC?
O HMAC envolve um hash duas vezes para evitar os problemas de extensão de comprimento do SHA-2. O Keccak não é vulnerável à extensão de comprimento, então o KMAC simplesmente prefixa a chave completada. Os resultados não são intercambiáveis.
Por que alterar o tamanho da saída muda todos os bits?
O tamanho de saída L é codificado na entrada, então KMAC com 256 e com 512 bits são valores independentes — o mais curto não é prefixo do mais longo.
Como devo informar uma chave binária?
Defina a Codificação da chave como Bytes em hexadecimal e cole a chave em hex (espaços são permitidos). Com Texto (UTF-8), os próprios caracteres são usados como bytes da chave.
Minha chave é enviada para algum lugar?
Não. A chave e a mensagem são processadas apenas no seu navegador.