Introdução ao algoritmo de troca de chaves Diffie Hellman

O algoritmo de troca de chaves Diffie Hellman é uma das primeiras implementações práticas da troca de chaves públicas no campo da criptografia. O algoritmo de troca de chaves Diffie Hellman é uma das maneiras de gerar uma chave compartilhada e compartilhar segredos entre duas partes, de forma que possamos ter certeza de que ninguém será capaz de bisbilhotar a comunicação. Há um fato importante a ser lembrado sobre o algoritmo: não estamos compartilhando as informações na troca; em vez disso, estamos criando uma chave que pode ser usada posteriormente para trocar informações. Como essa técnica nos permite criar uma chave de criptografia com a outra parte, podemos começar a criptografar as mensagens em andamento e as recebidas. Estabelecido, mesmo que alguém registre os dados de transmissão, não há como os dados serem descriptografados.

Algoritmo de troca de chaves Diffie Hellman para geração de chaves

O algoritmo é baseado na Criptografia de curvas elípticas, que é um método de realizar criptografia de chave pública com base na estrutura de álgebra das curvas elípticas sobre campos finitos. O DH também usa a função alçapão, assim como muitas outras maneiras de fazer criptografia de chave pública. A idéia simples de entender o algoritmo DH é a seguinte

1. A primeira parte escolhe dois números primos ge ep e os informa à segunda parte.

2. O segundo participante escolhe um número secreto (vamos chamá-lo de) e, em seguida, calcula g mod mod e envia o resultado de volta para o primeiro participante, vamos chamar o resultado A. Lembre-se de que o número secreto não é enviado para qualquer um, apenas o resultado é.

3. Em seguida, a primeira pessoa faz o mesmo, seleciona um número secreto be calcula o resultado B semelhante ao

4. etapa 2. Em seguida, este resultado é enviado para a segunda parte.

5. A segunda parte pega o número recebido B e calcula B um mod p

6. A primeira parte pega o número recebido A e calcula A b mod p

É aqui que fica interessante, a resposta na etapa 5 é igual à resposta na etapa 4. Isso significa que ambas as partes obterão a mesma resposta, independentemente da ordem de exponenciação.

(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p

O número que chegamos nas etapas 4 e 5 será considerado a chave secreta compartilhada. Agora, essa chave pode ser usada para fazer qualquer criptografia de dados que serão transmitidos, como blowfish, AES etc.

Algoritmo de Diffie Hellman

1. tecla = (Y A ) XB mod q -> é o mesmo que calculado por B

2. Elementos públicos globais

  • q: q é um número primo
  • a: a <q e α é a raiz primitiva de q

3. Geração de chaves para o usuário A

  • Selecione uma chave privada X A Aqui, X A

Agora, Cálculo da chave pública Y A Y A = um mod XA q

4. Geração de chaves para o usuário B

  • Selecione uma chave privada X B Aqui, X B
  • Agora, Cálculo da chave pública Y B Y B = a Xb mod q

5. Cálculo da chave secreta por A

  • chave = (Y B ) XA mod q

6. Cálculo da chave secreta por B

  • chave = (Y A ) XB mod q

Exemplo

1. Alice e Bob usam números públicos P = 23, G = 5

2. Alice selecionou a chave privada a = 4 e Bob selecionou b = 3 como a chave privada

3. Alice e bob agora calculam o valor de x e y da seguinte maneira:

  • Alice: x = (5 4 mod 23) = 4
  • Bob: y = (5 3 mod 23) = 10

4. Agora, Alice e Bob trocam números públicos entre si.

5. Alice e Bob agora calculam as chaves simétricas

  • Alice: k a = y a mod p = 10 4 mod 23 = 18
  • Bob: k b = x b mod p = 4 3 mod 23 = 18

6. 18 é a chave secreta compartilhada.

Usos do algoritmo Diffie Hellman

Além de usar o algoritmo para gerar chaves públicas, existem outros locais onde o Algoritmo DH pode ser usado:

  • Criptografia: o algoritmo de troca de chaves Diffie Hellman pode ser usado para criptografia, um dos primeiros esquemas a fazer foi a criptografia ElGamal. Um exemplo moderno disso é chamado Integrated Encryption Scheme, que fornece segurança contra ataques de texto simples e de área de transferência.
  • Contrato autenticado por senha: Quando duas partes compartilham uma senha, um contrato de chave autenticado por senha pode ser usado para impedir o ataque do homem no meio. Este Contrato-chave pode estar na forma de Diffie-Hellman. O Protocolo de senha remota segura é um bom exemplo baseado nessa técnica.
  • Segredo de encaminhamento: Os protocolos baseados em sigilo de encaminhamento podem gerar novos pares de chaves para cada nova sessão e podem descartá-los automaticamente no final, quando a sessão também terminar. Nestes protocolos de sigilo, mais frequentemente, a troca de chaves Diffie Hellman é usada.

Vantagens do algoritmo Diffie Hellman

  • O remetente e o destinatário não precisam de nenhum conhecimento prévio um do outro.
  • Uma vez que as chaves são trocadas, a comunicação dos dados pode ser feita através de um canal inseguro.
  • O compartilhamento da chave secreta é seguro.

Desvantagens do algoritmo Diffie Hellman

  • O algoritmo não pode ser processado por nenhuma troca de chaves assimétrica.
  • Da mesma forma, não pode ser usado para assinar assinaturas digitais.
  • Como não autentica nenhuma parte da transmissão, a troca de chaves de Diffie Hellman é suscetível a um ataque do tipo homem do meio.

Conclusão

Devido às suas vantagens, a troca de chaves Diffie Hellman provou ser um sistema útil de troca de chaves. Embora seja realmente difícil alguém espionar a rede descriptografar os dados e obter as chaves, ainda é possível se os números gerados não forem inteiramente aleatórios. Além disso, o sistema de troca de chaves torna possível fazer um homem no ataque do meio; para evitá-lo, ambas as partes devem ter muito cuidado no início da troca.

Artigo recomendado

Este foi um guia para o algoritmo de troca de chaves Diffie Hellman. Aqui discutimos os usos, diferentes algoritmos, vantagens e desvantagens. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Algoritmos de aprendizado de máquina
  2. Algoritmo de criptografia
  3. Algoritmos de classificação
  4. Tipos de algoritmos