0Pricing
Cryptology Academy · Aula

ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)

Compare as assinaturas em reticulados CRYSTALS-Dilithium com as assinaturas baseadas em hash SPHINCS+ e suas vantagens e desvantagens.

ML-DSA (FIPS 204) e SLH-DSA (FIPS 205) é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Origens do ML-DSA

O ML-DSA (algoritmo de assinatura digital baseado em módulos e reticulados), padronizado como FIPS 204, deriva do CRYSTALS-Dilithium. O Dilithium foi projetado por Ducas, Kiltz, Lepoint, Lyubashevsky, Schwabe, Seiler e Stehle e apresentado ao NIST em 2017. Ele usa a estrutura Fiat-Shamir com abortos aplicada ao Module-LWE, produzindo um esquema de assinatura prático com provas de segurança robustas.

Fiat-Shamir com abortos

As transformações clássicas de Fiat-Shamir convertem protocolos interativos de identificação em assinaturas. Em esquemas baseados em reticulados, uma aplicação direta revela informações sobre a chave privada por meio do vetor de resposta. A técnica “com abortos”, de Lyubashevsky, acrescenta amostragem por rejeição: o signatário verifica se a resposta revelaria informações e aborta e tenta novamente caso isso aconteça. Isso acrescenta uma pequena sobrecarga à assinatura, mas é essencial para a segurança.

Processo de assinatura do ML-DSA

Para assinar, o ML-DSA amostra um vetor de mascaramento y de uma distribuição uniforme, calcula um compromisso w = Ay, calcula o resumo de (mensagem, w) para obter um polinômio de desafio c e calcula a resposta z = y + cs. A amostragem por rejeição verifica se z revela informações sobre s. Se a verificação for aprovada, a assinatura será (c, z), juntamente com uma informação auxiliar para verificação eficiente. Caso contrário, o processo se repetirá.

Conjuntos de parâmetros do ML-DSA

O ML-DSA define três conjuntos de parâmetros: ML-DSA-44 (nível de segurança 2 do NIST, aproximadamente 128 bits), ML-DSA-65 (nível 3, aproximadamente 192 bits) e ML-DSA-87 (nível 5, aproximadamente 256 bits). Os números se referem aos postos dos módulos no esquema. Os tamanhos das chaves públicas são, respectivamente, 1312, 1952 e 2592 bytes. O tamanho da assinatura do ML-DSA-65 é de 3293 bytes, em comparação com 64 bytes da Ed25519 para 128 bits de segurança.

Compromisso entre tamanho da assinatura do ML-DSA

A desvantagem mais significativa do ML-DSA em comparação com ECDSA ou EdDSA é o tamanho da assinatura. As assinaturas do ML-DSA-65 têm 3293 bytes, contra 64 bytes da Ed25519. Em protocolos que transmitem muitas assinaturas, como cadeias de certificados TLS e assinatura de código, isso aumenta a largura de banda. No entanto, a assinatura e a verificação do ML-DSA são muito rápidas, comparáveis ou mais rápidas que as do ECDSA; portanto, o compromisso está principalmente no custo de comunicação.

Origens e projeto do SLH-DSA

O SLH-DSA (algoritmo de assinatura digital baseado em funções de resumo sem estado), padronizado como FIPS 205, deriva do SPHINCS+. Diferentemente dos esquemas baseados em reticulados, a segurança do SLH-DSA depende apenas da resistência a colisões e à segunda pré-imagem da função de resumo subjacente, SHA-256 ou SHAKE-256. Isso torna o SLH-DSA extremamente conservador: ele continua seguro mesmo que as hipóteses sobre reticulados sejam quebradas.

Assinaturas de uso único WOTS+

O SLH-DSA se baseia no WOTS+ (assinatura de uso único de Winternitz), um esquema baseado em funções de resumo no qual a chave privada é um conjunto de cadeias aleatórias, e a chave pública é obtida aplicando repetidamente a função de resumo a cada uma delas. A assinatura envolve aplicar parcialmente a função de resumo com base nos bits da mensagem. O WOTS+ só pode ser usado com segurança uma vez por par de chaves; usá-lo duas vezes revela informações. O SLH-DSA cria assinaturas para múltiplas utilizações sobre o WOTS+ por meio de árvores.

Árvores de Merkle para assinaturas de múltiplas utilizações

O SLH-DSA usa uma hiperárvore: uma árvore de árvores de Merkle. Cada folha é a chave pública de uma instância do WOTS+. A raiz é a chave pública do SLH-DSA. Uma assinatura consiste na assinatura WOTS+ da mensagem e no caminho de autenticação da folha até a raiz. A estrutura de hiperárvore permite gerar muitas assinaturas a partir de um único par de chaves usando folhas WOTS+ diferentes.

Conjuntos de parâmetros do SLH-DSA

O SLH-DSA possui 12 conjuntos de parâmetros que combinam a função de resumo, SHA-256 ou SHAKE-256, o nível de segurança, 128s/128f, 192s/192f ou 256s/256f, e a otimização, em que s significa assinaturas pequenas e f significa assinatura rápida. A variante 128f tem assinaturas de 7856 bytes e assinatura rápida; a 128s também tem 7856 bytes, mas é mais lenta. Todas são muito maiores que as do ML-DSA, mas têm a hipótese de segurança mais forte possível.

Quando escolher SLH-DSA em vez de ML-DSA

O ML-DSA é preferível quando o desempenho e a largura de banda são importantes e as hipóteses sobre reticulados são consideradas confiáveis. O SLH-DSA é preferível em implementações extremamente conservadoras, nas quais apenas a segurança das funções de resumo é considerada confiável, ou para proteção contra possíveis avanços futuros que quebrem os reticulados. Autoridades certificadoras e sistemas governamentais que assinam raramente, mas precisam de máxima garantia, podem preferir o SLH-DSA, enquanto servidores TLS que assinam com frequência prefeririam o ML-DSA.

FN-DSA (FALCON): outra assinatura baseada em reticulados

O FN-DSA (FIPS 206, baseado no FALCON) oferece assinaturas menores que o ML-DSA, 897 bytes no FALCON-512 para 128 bits de segurança, usando reticulados NTRU e amostragem gaussiana. No entanto, o FALCON exige uma implementação cuidadosa em tempo constante para evitar ataques de canal lateral decorrentes do amostrador gaussiano. Espera-se que o FIPS 206 seja padronizado após os FIPS 203–205 e ofereça uma opção de alto desempenho para ambientes com recursos limitados.

Quiz sobre ML-DSA e SLH-DSA

Qual é a principal vantagem de segurança do SLH-DSA em relação ao ML-DSA?

Recapitulação do ML-DSA e do SLH-DSA

O ML-DSA (FIPS 204) usa Fiat-Shamir com abortos sobre Module-LWE, oferecendo assinatura rápida com assinaturas de 3 KB, no nível de segurança de 192 bits. O SLH-DSA (FIPS 205) usa árvores de Merkle baseadas em funções de resumo (WOTS+), dependendo apenas da segurança das funções de resumo e produzindo assinaturas de 7–50 KB. O ML-DSA é preferível para aplicações sensíveis ao desempenho; o SLH-DSA, para o máximo conservadorismo. O FN-DSA (FALCON, FIPS 206) acrescentará uma opção baseada em reticulados com assinaturas menores.

Perguntas Frequentes

A aula “ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)” é grátis?

Sim — o texto completo de “ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)”?

Compare as assinaturas em reticulados CRYSTALS-Dilithium com as assinaturas baseadas em hash SPHINCS+ e suas vantagens e desvantagens. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. A Competição PQC do NIST: Processo e Critérios
  2. ML-KEM (FIPS 203): padrão CRYSTALS-Kyber
  3. ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)
  4. Planejando sua Migração para Padrões Pós-Quânticos
← Voltar para Cryptology Academy