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
- Abra as pastas
ML-DSA-keyGen-FIPS204,ML-DSA-sigVer-FIPS204,SLH-DSA-keyGen-FIPS205,SLH-DSA-sigVer-FIPS205,EDDSA-SigGen-1.0eEDDSA-SigVer-1.0no GitHub do NIST. - Descarregue em cada uma
internalProjection.json. - 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.