FN-DSA vs ML-DSA compara os dois esquemas de assinatura baseados em reticulados que o NIST selecionou em 2022. O ML-DSA (derivado do CRYSTALS-Dilithium) se tornou o FIPS 204 em agosto de 2024. O FN-DSA, nome que o NIST deu ao Falcon, está sendo padronizado como FIPS 206, que ainda era um rascunho em outubro de 2026. O Falcon é muito mais compacto; o ML-DSA é muito mais fácil de implementar corretamente.
Visão geral
| FN-DSA-512 (Falcon-512) | ML-DSA-44 | FN-DSA-1024 (Falcon-1024) | ML-DSA-87 | |
|---|---|---|---|---|
| Categoria de segurança | 1 | 2 | 5 | 5 |
| Chave pública | 897 bytes | 1.312 bytes | 1.793 bytes | 2.592 bytes |
| Assinatura | 666 bytes (com padding) | 2.420 bytes | 1.280 bytes (com padding) | 4.627 bytes |
| Chave pública + assinatura | 1.563 bytes | 3.732 bytes | 3.073 bytes | 7.219 bytes |
| Família de reticulados | NTRU | Module-LWE / Module-SIS | NTRU | Module-LWE / Module-SIS |
| Aritmética na assinatura | Ponto flutuante (amostragem gaussiana discreta) | Apenas inteiros | Ponto flutuante | Apenas inteiros |
| Padrão | Rascunho do FIPS 206 | FIPS 204 (final, 2024) | Rascunho do FIPS 206 | FIPS 204 |
| X.509 | Ainda não padronizado | RFC 9881 | Ainda não padronizado | RFC 9881 |
Tamanhos do Falcon segundo a especificação do Falcon (as assinaturas também podem usar uma codificação comprimida de comprimento variável, de no máximo 752 e 1.462 bytes); tamanhos do ML-DSA segundo a Tabela 2 do FIPS 204. O ML-DSA-65 (categoria 3) não tem equivalente no Falcon.
Por que o tamanho importa
O Falcon produz um vetor curto em um reticulado NTRU usando um alçapão (trapdoor) e amostragem rápida de Fourier, o que resulta na menor soma de chave pública e assinatura entre todas as assinaturas pós-quânticas do NIST: cerca de 1,6 KB na categoria 1, contra 3,7 KB do ML-DSA-44. Em uma cadeia de certificados TLS, em que cada certificado carrega uma chave pública e uma assinatura e o handshake acrescenta mais assinaturas e SCTs, essa diferença separa uma cadeia que mais ou menos dobra de tamanho de uma que fica quatro vezes maior. O DNSSEC, em que as assinaturas precisam caber em respostas UDP, e as blockchains, em que cada byte custa taxas, sentem isso ainda mais.
Por que a implementação é a parte difícil
O algoritmo de assinatura do Falcon amostra de uma distribuição gaussiana discreta sobre o reticulado usando aritmética de ponto flutuante. Isso cria três problemas que o ML-DSA não tem:
- Tempo constante. Em algumas CPUs, operações de ponto flutuante podem levar um tempo que depende dos dados, e emulá-las com inteiros é lento; ataques publicados em pesquisas já mostraram que vazamentos de tempo no amostrador revelam as chaves.
- Testabilidade. Duas implementações corretas podem produzir assinaturas diferentes para a mesma entrada por causa de arredondamentos, então testes de resposta conhecida (known-answer tests) não conseguem detectar um amostrador com um viés sutil, e um amostrador enviesado continua produzindo assinaturas válidas enquanto vaza informações sobre a chave. Em setembro de 2026, a equipe do FIPS 206 no NIST propôs um procedimento de assinatura em ponto fixo justamente para que as implementações se tornem determinísticas e testáveis.
- Portabilidade. Processadores embarcados sem unidade de ponto flutuante precisam de emulação em software, o que custa velocidade e tamanho de código.
O ML-DSA usa apenas aritmética de inteiros módulo 8.380.417, com amostragem por rejeição; é simples de implementar em tempo constante, e as saídas dele são totalmente especificadas pelo FIPS 204. A verificação é fácil nos dois, e o Falcon verifica de forma especialmente rápida: a implementação de referência da equipe do Falcon informa cerca de 27.900 verificações e 5.900 assinaturas Falcon-512 por segundo em um Intel Core i5-8259U a 2,3 GHz. Em um núcleo do Apple M4 Max, o código portátil de ML-DSA-44 do OpenSSL 3.6.5 registrou cerca de 20.800 verificações e 3.900 assinaturas por segundo. As máquinas são diferentes, então leia esses números como ordens de grandeza, e não como um benchmark direto.
Status da padronização
- ML-DSA: final desde 13 de agosto de 2024 (FIPS 204), com identificadores X.509 (RFC 9881), perfis para CMS e OpenPGP, escolhido pelo CNSA 2.0 (ML-DSA-87) e com módulos validados.
- FN-DSA: o NIST anunciou em julho de 2022 que padronizaria o Falcon e planejou o FIPS 206 para depois dos FIPS 204 e 205. Em 2025, a equipe do NIST disse que o rascunho público inicial estava praticamente pronto e aguardava aprovação; em outubro de 2026 ainda não existe padrão final, e a proposta de ponto fixo de setembro de 2026 mostra que a especificação ainda está mudando. Os Internet-Drafts da IETF para FN-DSA em JOSE, COSE e X.509 acompanham o FIPS.
Como o FIPS 206 pode diferir da especificação do Falcon da rodada 3, as implementações escritas hoje podem precisar de mudanças para corresponder ao padrão final.
Quando escolher cada um
- Assinatura pós-quântica de uso geral hoje: ML-DSA (44 ou 65).
- Implantações guiadas por conformidade (FIPS 140-3, CNSA 2.0): ML-DSA; o FN-DSA não pode ser validado antes de o FIPS 206 ser finalizado.
- Protocolos com muitos certificados, no futuro (cadeias TLS, DNSSEC, atualizações de IoT com recursos limitados): acompanhe o FN-DSA; ele é o caminho mais provável para manter sob controle a sobrecarga das assinaturas sem mudar a estrutura do protocolo.
- Hardware sem ponto flutuante ou com requisitos rígidos contra canais laterais: ML-DSA, ou o Falcon apenas com uma implementação em inteiros, de tempo constante e auditada.
- Raízes de longa duração em que o tamanho é irrelevante: SLH-DSA, cuja segurança se apoia apenas em funções de hash, ou ML-DSA; as assinaturas pequenas do FN-DSA não trazem nenhuma vantagem nesse caso.
Notas de migração
- Projete pensando em agilidade criptográfica: inclua identificadores de algoritmo, evite tamanhos fixos de assinatura e esteja pronto para adicionar o FN-DSA como segunda opção pós-quântica ao lado do ML-DSA.
- Prototipe com cuidado: use bibliotecas que implementem o amostrador do Falcon em tempo constante e marque a saída delas como pré-padrão; não as coloque em produção onde um padrão for exigido.
- Meça o orçamento de tamanho do seu protocolo com o ML-DSA hoje; se couber, talvez você nunca precise do FN-DSA ali.
- Acompanhe a versão final do FIPS 206: nomes de parâmetros, codificações e o procedimento de assinatura podem diferir do Falcon da rodada 3, e, com isso, os vetores de teste também vão mudar.
- Considere os híbridos: assinaturas compostas combinam um esquema pós-quântico com ECDSA ou EdDSA durante a transição, qualquer que seja o esquema de reticulado escolhido.