Nota SeguraBR

ECDH: o que é e como funciona

Duas pessoas trocam só chaves públicas pela internet e, mesmo assim, chegam ao mesmo segredo.

O que é

ECDH (Elliptic Curve Diffie-Hellman) é um método de troca de chaves. A ideia original foi publicada por Whitfield Diffie e Martin Hellman em 1976, com contribuições de Ralph Merkle, e mudou a criptografia: pela primeira vez, duas pessoas podiam combinar um segredo em um canal público.

O ECDH é a versão do Diffie-Hellman com curvas elípticas. Ele não cifra mensagens: ele gera um segredo compartilhado, que depois vira a chave de uma cifra como o AES.

Como funciona

Ana e Beto criam, cada um, um par de chaves na mesma curva. Eles trocam apenas as chaves públicas. Ana combina a sua chave privada com a chave pública de Beto, e Beto combina a sua chave privada com a chave pública de Ana. Pela matemática das curvas, os dois chegam ao mesmo resultado.

Quem observa a conversa vê as duas chaves públicas, mas não consegue calcular o segredo sem uma das chaves privadas. Em protocolos reais, o segredo passa por uma função de derivação de chave, como o HKDF, antes de virar a chave da cifra.

Exemplo

No playground desta página, escolha ECDH, digite um texto e clique em "Encriptar". O navegador cria as chaves de Ana e de Beto e mostra as duas chaves públicas, com 65 bytes cada. Repare nos valores "Segredo calculado por Ana" e "Segredo calculado por Beto": são iguais, com 32 bytes.

Ana usa esse segredo como chave AES-GCM para cifrar o texto. Ao clicar em "Decifrar", o playground usa o segredo calculado por Beto, e o texto volta. Nenhum dos dois enviou o segredo.

Onde é usado

Toda conexão HTTPS com TLS 1.3 começa com uma troca Diffie-Hellman, em geral com curvas elípticas. O mesmo acontece no SSH, nas VPNs e em aplicativos de mensagens, como o Signal e o WhatsApp, que usam a Curve25519.

Como as chaves de cada conexão são temporárias e descartadas no fim, quem gravar a conversa e roubar a chave do servidor no futuro não consegue decifrá-la. Essa propriedade se chama sigilo futuro (forward secrecy).

Pontos fortes e fracos

Pontos fortes: permite combinar chaves em um canal público, é rápido, usa chaves pequenas e dá sigilo futuro quando as chaves são temporárias.

Pontos fracos: o ECDH sozinho não diz com quem você está falando. Um atacante no meio do caminho, o chamado ataque do homem no meio, pode fazer uma troca com Ana e outra com Beto e ler tudo. Por isso, os protocolos assinam as chaves públicas com certificados ou assinaturas digitais. Além disso, um computador quântico grande quebraria o ECDH; os navegadores já combinam o ECDH com o algoritmo pós-quântico ML-KEM.

Quando usar

Use o ECDH, por meio de um protocolo pronto como o TLS, para combinar chaves entre duas partes que só têm um canal público. Use chaves temporárias para cada sessão, autentique as chaves públicas e passe o segredo por uma função de derivação antes de usá-lo.

Evite montar um protocolo próprio: a troca de chaves é a parte em que pequenos erros mais causam falhas graves.

Teste os algoritmos

Escolha um algoritmo, escreva um texto e veja como ele fica. Tudo acontece no seu navegador e nada é salvo.

Criptografia

Hash

Autenticação e assinatura

Troca e derivação de chaves

Codificação

Cifras clássicas

ECDH

Seguro

Troca de chaves

Troca de chaves Diffie-Hellman com curvas elípticas. Ana e Beto trocam apenas chaves públicas e chegam ao mesmo segredo, que vira uma chave AES.

Ver todos os algoritmos

0/500

Veja também

Precisa enviar um segredo?

Use uma nota segura: o texto é criptografado com AES-256-GCM e se apaga sozinho.

Criar uma nota