Troca de Chaves Diffie-Hellman
O protocolo Diffie-Hellman permite que duas partes estabeleçam um segredo compartilhado através de um canal inseguro sem qualquer chave previamente compartilhada, trocando valores públicos derivados de expoentes privados.
Definition
A troca de chaves Diffie-Hellman é um protocolo no qual cada parte eleva um gerador comum a um expoente privado, troca o resultado e eleva o valor recebido ao seu próprio expoente, ambos chegando ao mesmo segredo compartilhado que um bisbilhoteiro não consegue computar de forma viável.
Scope
Este tópico abrange o protocolo de troca de chaves Diffie-Hellman e o problema do logaritmo discreto que fundamenta sua segurança, as suposições Computacional e Decisional Diffie-Hellman, a criptografia ElGamal construída sobre a mesma estrutura, a troca de chaves efêmeras para sigilo de encaminhamento (forward secrecy), e a ameaça do ataque man-in-the-middle que motiva a autenticação. Exclui RSA (baseado em fatoração) e a realização de Diffie-Hellman em curva elíptica, que é tratada sob criptografia de curva elíptica.
Core questions
- Como duas partes podem concordar em um segredo compartilhado enquanto um bisbilhoteiro vê todas as mensagens?
- Por que o problema do logaritmo discreto torna o segredo trocado difícil de recuperar?
- Qual é a diferença entre as suposições Computacional e Decisional Diffie-Hellman?
- Como o Diffie-Hellman efêmero fornece sigilo de encaminhamento (forward secrecy)?
- Por que o Diffie-Hellman não autenticado é vulnerável a um ataque man-in-the-middle?
Key concepts
- acordo de segredo compartilhado
- gerador e grupo cíclico
- expoentes privados e públicos
- problema do logaritmo discreto
- Diffie-Hellman Computacional (CDH)
- Diffie-Hellman Decisional (DDH)
- troca de chaves efêmeras e sigilo de encaminhamento (forward secrecy)
- ataque man-in-the-middle
- criptografia ElGamal
Key theories
- Dificuldade do logaritmo discreto
- Diffie-Hellman é seguro porque, embora a exponenciação modular seja fácil, recuperar o expoente privado do valor público (o logaritmo discreto) é considerado intratável em grupos adequados.
- Suposições Computacional e Decisional Diffie-Hellman
- A segurança é formalizada através da suposição CDH (computar o segredo compartilhado é difícil) e da suposição DDH mais forte (o segredo compartilhado é indistinguível do aleatório), esta última sustentando a criptografia estilo ElGamal comprovadamente segura.
Mechanisms
Sobre um grupo cíclico com gerador público g, Alice escolhe um segredo a e envia g^a, Bob escolhe b e envia g^b; cada um calcula o segredo compartilhado g^(ab) elevando o valor recebido ao seu próprio expoente. Um bisbilhoteiro vê g, g^a e g^b, mas deve resolver o problema do logaritmo discreto ou Diffie-Hellman para encontrar g^(ab). O uso de expoentes novos (efêmeros) por sessão proporciona sigilo de encaminhamento (forward secrecy): a comprometimento de chaves de longo prazo posteriormente não revela chaves de sessões passadas.
Clinical relevance
Diffie-Hellman é a base do estabelecimento de chaves em TLS, IPsec/IKE, SSH, Signal e WireGuard. As variantes efêmeras (DHE e a curva elíptica ECDHE) fornecem o sigilo de encaminhamento (forward secrecy) que protege o tráfego gravado contra futuras comprometimentos de chaves. A autenticação da troca (com certificados ou assinaturas) é o que impede o ataque man-in-the-middle ao qual o Diffie-Hellman simples está exposto.
Evidence & guidelines
Os parâmetros Diffie-Hellman de campo finito são especificados no RFC 7919 (grupos nomeados seguros); o NIST SP 800-56A padroniza o estabelecimento de chaves. A melhor prática utiliza chaves efêmeras para sigilo de encaminhamento (forward secrecy) e grupos bem avaliados. O ataque Logjam (2015) mostrou que grupos fracos de 512 bits de grau de exportação e grupos reutilizados de 1024 bits são exploráveis, impulsionando a migração para grupos de 2048 bits ou curvas elípticas.
History
Diffie e Hellman publicaram o protocolo de troca de chaves em seu artigo de 1976 que lançou a criptografia de chave pública, baseando-se na ideia anterior de quebra-cabeça de Merkle. (Malcolm Williamson havia descoberto um método equivalente no GCHQ em 1974.) ElGamal generalizou a construção em um esquema de criptografia e assinatura de chave pública em 1985. O protocolo passou de grupos de campo finito para curvas elípticas e tornou-se o meio padrão de estabelecimento de chaves de sessão na internet.
Key figures
- Whitfield Diffie
- Martin Hellman
- Ralph Merkle
- Taher ElGamal
- Malcolm Williamson
Related topics
Seminal works
- diffie1976
- katz2020
- menezes1996
Frequently asked questions
- O Diffie-Hellman por si só autentica as partes?
- Não. O Diffie-Hellman simples estabelece um segredo compartilhado, mas não verifica quem está do outro lado, então um atacante ativo pode executar duas trocas e se posicionar no meio. Protocolos reais autenticam a troca com certificados, assinaturas ou uma chave pré-compartilhada.
- O que é sigilo de encaminhamento (forward secrecy) e como o Diffie-Hellman o fornece?
- Sigilo de encaminhamento (forward secrecy) significa que o comprometimento de chaves de longo prazo posteriormente não expõe sessões passadas. O uso de expoentes Diffie-Hellman novos e efêmeros para cada sessão e seu descarte posterior garante que nenhuma chave armazenada possa reconstruir o tráfego gravado anteriormente.