Criptografia

Verificação NIST: confirme o ML-DSA-87, o SLH-DSA e o Ed25519 por si próprio

O instituto de normalização norte-americano NIST publica vetores de teste oficiais para ML-DSA (FIPS 204) e SLH-DSA (FIPS 205): entradas com os resultados que uma implementação correta tem de produzir, incluindo assinaturas manipuladas de propósito. Aqui, o seu navegador recalcula esses casos com exatamente o mesmo módulo que verifica as nossas avaliações.

Iniciar o teste

Os ficheiros de teste são carregados diretamente do NIST no GitHub, não dos nossos servidores. O ficheiro de teste do SLH-DSA tem cerca de 30 MB, pelo que o carregamento pode demorar um pouco.

Ou: descarregue os ficheiros e selecione-os
  1. Abra as pastas ML-DSA-keyGen-FIPS204, ML-DSA-sigVer-FIPS204, SLH-DSA-keyGen-FIPS205, SLH-DSA-sigVer-FIPS205, EDDSA-SigGen-1.0 e EDDSA-SigVer-1.0 no GitHub do NIST.
  2. Descarregue em cada uma internalProjection.json.
  3. Selecione aqui os ficheiros (todos ou apenas alguns):

O que o teste mostra e o que não mostra

  • Geração de chaves (keyGen): a partir de cada valor inicial do NIST (semente), o nosso módulo cria uma assinatura. Esta só é válida com a chave pública indicada pelo NIST se o nosso módulo tiver calculado exatamente a mesma chave.
  • Verificação de assinaturas (sigVer): o nosso módulo tem de chegar ao mesmo veredito que o NIST em todos os casos, incluindo assinaturas, mensagens e contextos alterados de propósito.
  • SLH-DSA-SHA2-256f: a partir dos três valores iniciais do NIST (skSeed, skPrf, pkSeed), o nosso módulo tem de gerar exatamente a mesma chave privada e pública que o NIST — comparadas byte a byte. Na verificação de assinaturas aplica-se o mesmo que acima. Só é avaliado o conjunto de parâmetros SHA2-256f, que a McGesund utiliza.
  • Ed25519: aqui não se testa o nosso próprio código, mas a criptografia integrada no navegador e a nossa biblioteca de reserva noble, que verifica as avaliações em navegadores sem Ed25519. Testa-se Ed25519 puro, sem pré-hash nem contexto, tal como assinamos. O NIST fornece apenas poucos casos manipulados; os restantes são assinaturas válidas que têm de ser aceites.
  • Não abrangido: a gestão de chaves, os servidores e os processos em torno da assinatura. O teste comprova que a matemática cumpre a norma, nada mais.
  • FN-DSA (Falcon): a norma FIPS 206 ainda não é definitiva, por isso o NIST ainda não publicou vetores de teste oficiais. Assim que forem publicados, acrescentá-los-emos aqui.

← Voltar à visão geral de criptografia