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.

cSHAKE256

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

  1. 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).
  2. 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.
  3. Defina o Tamanho da saída (bits) (padrão 512).
  4. 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.
  5. Escolha o Formato de saída (hexadecimal em minúsculas, em maiúsculas ou Base64) e clique em Copiar.

Exemplo

Entrada
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 512 bits
Saída
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.

Explore mais categorias