O que é o algoritmo de troca de chaves Diffie-Hellman

Andrei Barroso
3 min readJan 19, 2021
Diffie e Hellman ganham o prêmio Turing
Diffie e Hellman ganham o prêmio Turing

O Algoritmo de Troca de Chaves Diffie-Hellman

Este é um algoritmo incrivelmente comum que permite a comunicação segura, normalmente entre um cliente e um servidor. Com ele, as partes podem gerar a mesma chave privada apenas trocando informações públicas. Como isso? você pode perguntar. Vamos mergulhar.

Quais são as chaves?

As chaves são usadas em algoritmos criptográficos (um conjunto de instruções complexas que permitem a criptografia e descriptografia de dados) para alterar os dados, são aceitas pelo algoritmo como um parâmetro, o que significa que determina a saída do algoritmo. Algoritmos que usam a mesma chave para criptografar e descriptografar são chamados de algoritmos de chave simétrica, se o algoritmo usar duas chaves; uma chave pública (que o proprietário compartilha) e uma chave privada (que o proprietário mantém em segredo) para criptografar e descriptografar dados, é um algoritmo de chave assimétrica. As chaves são realmente importantes no processo de criptografia e descriptografia; sem eles, a criptografia não pode ocorrer, se um intruso possuir a (s) chave (s) usada (s) para criptografar os dados, a confidencialidade dos dados foi comprometida. Imagine um intruso obtendo a chave usada para criptografar as informações do seu cartão de crédito durante uma transação, você também pode pedir o número da conta dele e enviar-lhe dinheiro. Por isso, é muito importante que essas chaves estejam protegidas de olhares indiscretos .

Explicação Conceitual

João e Fernando precisam gerar uma chave simétrica para se comunicarem com segurança, agora imagine uma mesa com 3 colunas, João à esquerda, Fernando à direita e o público ao meio (o intruso pode ver o que é transmitido pela área pública ) Você pode seguir a explicação numerada desenhando setas para significar a transferência de dados entre as colunas

  1. João e Fernando decidem publicamente sobre um valor P,
  2. João então gera um valor aleatório; vamos chamá-lo de B, Fernando faz o mesmo; E, eles não compartilham esse valor entre si.
  3. Fernando usa uma fórmula para gerar um valor usando P e seu valor secreto E; vamos chamar o valor PE, João faz o mesmo; vamos chamá-la de BP (esta combinação é um produto de uma função matematicamente complexa que a torna intensiva em recursos e difícil de derivar os valores individuais que a compõem)
  4. Fernando envia PE para João, e João envia BP para Fernando publicamente (o intruso provavelmente conhece PE e BP agora)
  5. Usando uma fórmula, João combina seu B privado com o que recebeu de Fernando; PE para fazer BPE, Fernando combina o seu valor privado E, com o que recebeu de João; BP para fazer EBP (a ordem não importa ‘BPE’ é equivalente a ‘EBP’)

Voila! Fernando e João agora têm a mesma chave e podem se comunicar com segurança, o intruso fica com pistas, mas nunca saberá o resultado final, esta chave é recalculada a cada sessão, adicionando assim uma camada extra de dificuldade para o intruso.

--

--