0Pricing
Cryptology Academy · Aula

Assinaturas CRYSTALS-Dilithium e Falcon

Compare os esquemas de assinatura digital baseados em reticulados padronizados pela NIST.

Assinaturas CRYSTALS-Dilithium e Falcon é 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.

Necessidade de assinaturas pós-quânticas

As assinaturas RSA e ECDSA são quebradas pelo algoritmo de Shor. As assinaturas pós-quânticas devem substituí-las em: certificados TLS, assinatura de código, assinatura de e-mails (S/MIME, PGP) e autenticação de atualizações de software. O NIST padronizou dois esquemas baseados em reticulados: ML-DSA e FN-DSA.

CRYSTALS-Dilithium (ML-DSA)

Dilithium baseia-se na dificuldade de Module-LWE e Module-SIS (Solução de Inteiros Curtos). A prova de segurança está no QROM (Modelo de Oráculo Aleatório Quântico). Há três variantes: Dilithium2 (aproximadamente 128 bits), Dilithium3 (aproximadamente 192 bits) e Dilithium5 (aproximadamente 256 bits). O caminho de assinatura é simples e não usa amostragem por rejeição.

Assinatura com Dilithium

Chave privada: matrizes secretas s1, s2. Chave pública: t = As1 + s2. Assine: extraia y aleatoriamente; calcule w = Ay; calcule o desafio c = H(mu || w1), em que w1 = HighBits(w); calcule z = y + cs1; se ||z|| ou ||r0|| for grande demais, rejeite e tente novamente. Produza (z, c, indicação).

Verificação com Dilithium

Verifique (z, c, indicação): confirme que ||z|| é pequeno; calcule w' = Az - ct; use a indicação para recuperar w1; verifique c == H(mu || w1). A indicação é um pequeno número de bits obtido de MakeHint(). A rejeição garante que z não vaze s1 — o argumento de segurança é um argumento de "aborta-e-então-uniforme".

Tamanhos de chave e assinatura do Dilithium

ML-DSA-65 (Dilithium3, segurança de 192 bits): chave pública de 1952 bytes, chave privada de 4000 bytes e assinatura de 3293 bytes. Compare com ECDSA-P256: chave pública de 64 bytes e assinatura de 64 bytes. As assinaturas do Dilithium são aproximadamente 40 a 50 vezes maiores, mas são seguras contra ataques quânticos.

Falcon (FN-DSA)

Falcon baseia-se em reticulados NTRU e usa um amostrador gaussiano sobre o reticulado NTRU. As assinaturas são significativamente menores que as do Dilithium, mas a assinatura exige um amostrador gaussiano de ponto flutuante — mais difícil de implementar em tempo constante e mais complexo de programar com segurança.

Tamanhos de chave e assinatura do Falcon

Falcon-512 (segurança de 128 bits): chave pública de 897 bytes e assinatura de 666 bytes — muito menor que o Dilithium. Compromisso: Falcon é mais difícil de implementar com segurança, pois a amostragem gaussiana é suscetível a ataques de temporização. É adequado para ambientes com largura de banda limitada, mas exige uma implementação cuidadosa.

SPHINCS+ (SLH-DSA)

SPHINCS+ é um esquema de assinatura baseado em funções de resumo — uma escolha conservadora, sem premissas algébricas estruturais. A segurança depende apenas da segurança da função de resumo. Tamanho da assinatura: aproximadamente 8 a 50 KB, portanto grande. Assinatura lenta. É usado quando a confiança de longo prazo é fundamental e o desempenho é secundário.

Escolha entre os esquemas

ML-DSA (Dilithium): uso geral, implementação simples, adequado para certificados TLS e assinatura de código. FN-DSA (Falcon): ambientes com largura de banda limitada, como a Internet das Coisas e LPWAN. SLH-DSA (SPHINCS+): extremamente conservador, adequado para raízes de longa duração, como chaves CA desconectadas e a raiz de confiança de um software.

Preocupações com a implementação

Dilithium: a amostragem por rejeição pode vazar a temporização de ramificações — use comparação em tempo constante. Falcon: o amostrador gaussiano usa ponto flutuante — garanta o determinismo de FP. Ambos: evite canais laterais na aritmética polinomial. Use as implementações de referência dos pacotes de submissão do NIST.

Padrões FIPS

NIST FIPS 204: ML-DSA (Dilithium). NIST FIPS 205: SLH-DSA (SPHINCS+). NIST FIPS 206: FN-DSA (Falcon). Todos foram publicados em agosto de 2024. Bibliotecas: OpenSSL 3.x, BoringSSL e liboqs, do projeto Open Quantum Safe, implementam os três.

Verificação rápida

Qual é a principal vantagem do Falcon em relação ao Dilithium?

Recapitulação

ML-DSA (Dilithium): baseado em reticulados, simples, assinaturas de aproximadamente 3 KB. FN-DSA (Falcon): baseado em NTRU, assinaturas de aproximadamente 700 bytes, implementação complexa. SLH-DSA (SPHINCS+): baseado em funções de resumo, conservador, grande. Todos foram padronizados nos FIPS 204/205/206. A seguir: migração para PQC com abordagens híbridas.

Perguntas Frequentes

A aula “Assinaturas CRYSTALS-Dilithium e Falcon” é grátis?

Sim — o texto completo de “Assinaturas CRYSTALS-Dilithium e Falcon” é 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 “Assinaturas CRYSTALS-Dilithium e Falcon”?

Compare os esquemas de assinatura digital baseados em reticulados padronizados pela NIST. 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 “Assinaturas CRYSTALS-Dilithium e Falcon”?

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. Algoritmos de Shor e Grover explicados
  2. CRYSTALS-Kyber: KEM baseado em reticulados
  3. Assinaturas CRYSTALS-Dilithium e Falcon
  4. Migração para PQC: abordagens híbridas
← Voltar para Cryptology Academy