0Pricing
Cryptology Academy · Aula

ECDH: curvas elípticas para troca de chaves

Aplique a multiplicação escalar em curvas elípticas ao acordo de chaves ECDH.

ECDH: curvas elípticas para troca de chaves é 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

ECDH substitui o grupo multiplicativo de DH por um grupo de curva elíptica. O resultado: segurança equivalente com chaves 10 vezes menores e operações 10 vezes mais rápidas.

Operações de grupo EC

Em ECDH, a “multiplicação” é a multiplicação escalar em uma curva elíptica: multiplicar um ponto P por um escalar k significa somar P a si mesmo k vezes: k×P. Essa é a analogia em EC de g^k mod p.

Protocolo ECDH

Concorde sobre a curva E e o ponto base G (públicos). Alice: chave privada a, chave pública A = a×G Bob: chave privada b, chave pública B = b×G Alice: S = a×B = a×b×G Bob: S = b×A = b×a×G Ambos derivam o mesmo ponto S.

ECDLP

Dado A = a×G em uma curva elíptica, encontre a. Esse é o problema do logaritmo discreto em curvas elípticas. Não se conhece nenhum algoritmo subexponencial para curvas gerais, o que torna o ECDLP mais difícil que o DLP com tamanhos de chave iguais.

Curve25519

Projetada por Bernstein em 2005. Forma de Montgomery: y²=x³+486662x²+x sobre o primo 2^255-19. Projetada para ser rápida e resistente a erros de implementação. Usada em WireGuard, Signal e SSH.

Troca de chaves X25519

X25519 é a função ECDH que usa Curve25519. Somente a coordenada x do ponto compartilhado é usada (a multiplicação pelo cofator trata os casos extremos). A RFC 7748 padronizou X25519 e X448.

ECDH em Python

from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey alice_priv = X25519PrivateKey.generate() bob_priv = X25519PrivateKey.generate() alice_pub = alice_priv.public_key() bob_pub = bob_priv.public_key() shared_alice = alice_priv.exchange(bob_pub) shared_bob = bob_priv.exchange(alice_pub) assert shared_alice == shared_bob

Do ponto compartilhado à chave simétrica

O ponto compartilhado bruto não é usado diretamente como chave (ele não é distribuído uniformemente). Use HKDF para derivar uma chave simétrica apropriada: from cryptography.hazmat.primitives.kdf.hkdf import HKDF key = HKDF(SHA256, 32, salt, info).derive(shared_secret)

Tamanhos de chave: ECDH versus DH

Nível de segurança de 128 bits: - DH: primo de 3072 bits - ECDH: curva de 256 bits Proporção dos tamanhos das chaves: aproximadamente 12:1. Chave pública ECDH: 32 bytes (Curve25519). Chave pública DH: 384 bytes. As operações com chaves privadas ECDH são aproximadamente 50 vezes mais rápidas.

Ataque por cofator em curvas inadequadas

Ataques de subgrupo pequeno exploram curvas com cofatores não triviais. Curve25519 tem cofator 8, mas X25519 trata isso corretamente. As curvas P da NIST têm cofator 1. Utilize sempre implementações padronizadas.

ECDH no TLS 1.3

TLS 1.3 oferece suporte a X25519, X448, P-256, P-384 e P-521 para troca de chaves. X25519 é o mais comum — rápido, seguro e de tempo constante. Ambas as partes geram chaves efêmeras para cada sessão.

Verificação rápida

Qual é a principal vantagem do ECDH sobre o Diffie-Hellman clássico?

Recapitulação

ECDH dominado! Em seguida, entenderemos o sigilo de encaminhamento e por que a troca de chaves efêmeras é essencial no TLS.

Perguntas Frequentes

A aula “ECDH: curvas elípticas para troca de chaves” é grátis?

Sim — o texto completo de “ECDH: curvas elípticas para troca de chaves” é 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 “ECDH: curvas elípticas para troca de chaves”?

Aplique a multiplicação escalar em curvas elípticas ao acordo de chaves ECDH. 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 “ECDH: curvas elípticas para troca de chaves”?

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 problema da distribuição de chaves
  2. Matemática da troca de chaves Diffie-Hellman
  3. ECDH: curvas elípticas para troca de chaves
  4. Sigilo de encaminhamento e troca efêmera de chaves
← Voltar para Cryptology Academy