Cryptology Academy · Aula

Esquemas de assinatura DSA e ECDSA

Compare as assinaturas RSA com DSA e sua variante baseada em curvas elípticas.

Aula 3 de 413 etapas

Esquemas de assinatura DSA e ECDSA é 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.

Boas-vindas

DSA e ECDSA são esquemas de assinatura alternativos que usam a dificuldade do logaritmo discreto. ECDSA predomina nos sistemas modernos, com chaves menores e operações mais rápidas.

Visão geral de DSA

DSA (NIST, 1994) usa um grupo cíclico de ordem prima q dentro de Z*p. Geração de chaves: chave privada x; chave pública y = g^x mod p. Padrão: p de 2048 bits, q de 256 bits.

Algoritmo de assinatura DSA

1. Gere o valor aleatório k (1 < k < q) 2. r = (g^k mod p) mod q 3. s = k^(-1) × (Hash(M) + x×r) mod q 4. Assinatura: (r, s)

Verificação DSA

1. u1 = Hash(M) × s^(-1) mod q 2. u2 = r × s^(-1) mod q 3. v = (g^u1 × y^u2 mod p) mod q 4. Válida se v == r

Vulnerabilidade do valor aleatório DSA

Se o mesmo k for usado duas vezes: as duas assinaturas compartilharão r. A partir de dois pares (r,s1) e (r,s2), a chave privada x pode ser calculada diretamente. Isso destruiu o PS3 (k=1 usado todas as vezes).

Visão geral de ECDSA

ECDSA é DSA instanciado em um grupo de curva elíptica, em vez de Z*p. A curva oferece segurança equivalente com parâmetros muito menores: ECDSA-256 ≈ DSA-3072 em segurança.

ECDSA em Python

from cryptography.hazmat.primitives.asymmetric import ec from cryptography.hazmat.primitives import hashes private_key = ec.generate_private_key(ec.SECP256R1()) sig = private_key.sign(message, ec.ECDSA(hashes.SHA256())) public_key = private_key.public_key() public_key.verify(sig, message, ec.ECDSA(hashes.SHA256()))

ECDSA determinístico (RFC 6979)

RFC 6979 deriva k deterministicamente a partir da chave privada e do resumo da mensagem. Isso elimina a dependência de um gerador de números aleatórios e torna impossível o reuso do valor aleatório. Todas as implementações modernas usam RFC 6979.

EdDSA: Ed25519

Ed25519 (DSA de curva de Edwards) usa a forma Edwards torcida da Curve25519. É determinístico por projeto. Opera em tempo constante. É mais rápido que ECDSA. É recomendado para protocolos novos (chaves SSH, TLS 1.3, Signal).

Comparação do tamanho das chaves

Assinatura RSA-2048: 256 bytes. Assinatura ECDSA-256: ~71 bytes. Assinatura Ed25519: 64 bytes. Chave pública Ed25519: 32 bytes. A diferença de tamanho é importante para dispositivos com recursos limitados.

Curvas padronizadas

NIST P-256 (secp256r1): TLS, conformidade com FIPS. secp256k1: Bitcoin, Ethereum. Curve25519/Ed25519: Signal, WireGuard, SSH mais recente. Brainpool: alguns padrões europeus.

Verificação rápida

Que vulnerabilidade catastrófica é introduzida se um valor aleatório k de DSA/ECDSA for reutilizado?

Recapitulação

Você compreende DSA, ECDSA e Ed25519. Em seguida, estudaremos como as assinaturas digitais protegem aplicações reais: assinatura de código e e-mail.
Grátis para começar

Aprenda Cryptology Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
67
Aulas
261

Perguntas Frequentes

A aula “Esquemas de assinatura DSA e ECDSA” é grátis?

Sim — o texto completo de “Esquemas de assinatura DSA e ECDSA” é 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 “Esquemas de assinatura DSA e ECDSA”?

Compare as assinaturas RSA com DSA e sua variante baseada em curvas elípticas. 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 “Esquemas de assinatura DSA e ECDSA”?

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. O que é uma assinatura digital?
  2. Assinaturas RSA: assinar e verificar
  3. Esquemas de assinatura DSA e ECDSA
  4. Assinaturas na prática: assinatura de código e e-mail
← Voltar para Cryptology Academy