Gerador de hash cSHAKE128
Calcule o cSHAKE128 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 cSHAKE128?
O cSHAKE128 é a versão personalizável do SHAKE128, 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 cSHAKE128
- 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 256).
- 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", 256 bits
c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5
Exemplo nº 1 de cSHAKE do NIST SP 800-185.
Quando usar Gerador de hash cSHAKE128
Use o cSHAKE128 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 SHAKE128 simples se não precisar de personalização, e o KMAC128 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 cSHAKE128
O cSHAKE128 (NIST SP 800-185) é o SHAKE128 com separação de domínio. Antes da mensagem, ele absorve bytepad(encode_string(N) || encode_string(S), 168) — 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 cSHAKE128 é definido como igual ao SHAKE128. 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 cSHAKE128 oferece segurança de 128 bits, como o SHAKE128. A string de personalização é pública, não é uma chave — use o KMAC128 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 cSHAKE128 passa a ser igual ao SHAKE128; para abc com 256 bits você obtém 5881092dd818bf5c…, o mesmo que o SHAKE128.
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.