Gerador de hash cSHAKE256
Calcule o cSHAKE256 com nome de função N, string de personalização S e qualquer tamanho de saída. Validado com os exemplos do NIST SP 800-185, roda no navegador.
Um múltiplo de 8, de 8 a 16384 bits.
Normalmente fica vazio. Reservado pelo NIST para funções construídas sobre o cSHAKE.
Rótulo opcional de separação de domínio, por exemplo o nome do seu aplicativo. Strings diferentes geram saídas sem relação.
Executa totalmente no seu navegador. Seus dados nunca são enviados.
O que é Gerador de hash cSHAKE256?
O cSHAKE256 é a versão personalizável do SHAKE256, definida no NIST SP 800-185. Ele acrescenta um nome de função N e uma string de personalização S, de modo que a mesma mensagem processada para finalidades diferentes gera saídas sem relação entre si. Esta ferramenta permite definir N, S e o tamanho da saída.
Como usar Gerador de hash cSHAKE256
- Digite ou cole sua entrada em Texto para gerar o hash — o resumo é atualizado enquanto você digita (com a caixa vazia aparece o hash de uma entrada vazia).
- Escolha a Codificação de entrada: Texto (UTF-8) gera o hash dos caracteres em UTF-8; Bytes em hexadecimal ou Base64 geram o hash dos bytes brutos decodificados.
- Defina o Tamanho da saída (bits) (padrão 512).
- Opcionalmente, preencha o Nome da função (N) (normalmente vazio) e a String de personalização (S), por exemplo o nome do seu aplicativo ou protocolo.
- Escolha o Formato de saída (hexadecimal em minúsculas, em maiúsculas ou Base64) e clique em Copiar.
Exemplo
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 512 bits
d008828e2b80ac9d2218ffee1d070c48b8e4c87bff32c9699d5b6896eee0edd164020e2be0560858d9c00c037e34a96937c561a74c412bb4c746469527281c8c
Exemplo nº 3 de cSHAKE do NIST SP 800-185.
Quando usar Gerador de hash cSHAKE256
Use o cSHAKE256 quando precisar de separação de domínio: vários hashes derivados dos mesmos dados para finalidades diferentes (rótulos de derivação de chaves, transcrições de protocolo, hashes com tag). Use o SHAKE256 simples se não precisar de personalização, e o KMAC256 se houver uma chave secreta envolvida. N é reservado para funções definidas pelo NIST; aplicações normalmente devem usar apenas S.
Como funciona Gerador de hash cSHAKE256
O cSHAKE256 (NIST SP 800-185) é o SHAKE256 com separação de domínio. Antes da mensagem, ele absorve bytepad(encode_string(N) || encode_string(S), 136) — o nome da função N e a string de personalização S, cada um precedido do seu tamanho em bits — e depois aplica o padding com o sufixo 00 em vez do 1111 do SHAKE. Se N e S estiverem vazios, o cSHAKE256 é definido como igual ao SHAKE256. Valores diferentes de N ou S geram funções independentes. N e S são digitados como texto e codificados em UTF-8.
Casos de Uso Comuns
- Reproduzir os vetores de teste cSHAKE do NIST SP 800-185
- Derivar valores separados para contextos diferentes a partir de uma mesma entrada
- Implementar ou depurar KMAC, TupleHash ou ParallelHash, que são construídos sobre o cSHAKE
- Gerar o hash de mensagens de protocolo com um rótulo específico da aplicação
Nota de Segurança
O cSHAKE256 oferece segurança de 256 bits, como o SHAKE256. A string de personalização é pública, não é uma chave — use o KMAC256 para autenticação. O cálculo é feito localmente no seu navegador.
Perguntas Frequentes
O que acontece se N e S estiverem vazios?
Por definição, o cSHAKE256 passa a ser igual ao SHAKE256; para abc com 512 bits você obtém 483366601360a877…, o mesmo que o SHAKE256.
Qual a diferença entre N e S?
N (nome da função) é reservado para funções definidas pelo NIST, como "KMAC" ou "TupleHash". S é a string de personalização livre para aplicações. Na prática, você define S e deixa N vazio.
Como N e S são codificados?
Como bytes UTF-8, precedidos do seu tamanho em bits (left_encode) e depois completados até a taxa (rate), conforme especificado no SP 800-185.