Algoritmo Diffie-Hellman: Visão geral e implementação em C

Google Translate Icon

O algoritmo Diffie-Hellman é usado para estabelecer um segredo compartilhado entre duas partes que pode ser usado para comunicação secreta para trocar dados em uma rede pública.

Explicação Pictórica:

O processo começa fazendo com que as duas partes, Alice e Bob, concordem com uma cor inicial arbitrária que não precisa ser mantida em segredo (mas deve ser diferente a cada vez); neste exemplo, a cor é amarela. Cada um deles escolhe uma cor secreta – vermelho e aqua, respectivamente – que guardam para si. A parte crucial do processo é que Alice e Bob agora misturam sua cor secreta com sua cor mutuamente compartilhada, resultando em misturas laranja e azul, respectivamente, e depois trocam publicamente as duas cores misturadas. Finalmente, cada um dos dois mistura a cor que recebeu do parceiro com sua própria cor particular. O resultado é uma mistura de cores final (marrom) idêntica à mistura de cores do parceiro.

 
Diffie-Hellman_Key_Exchange

Seria impossível para a bisbilhoteira Eve determinar a cor secreta comum.

Explicação criptográfica:

O algoritmo em si é muito simples. Vamos supor que Alice queira estabelecer um segredo compartilhado com Bob. Aqui está um exemplo do protocolo com valores secretos em red.

  1. Alice e Bob concordam em usar um número primo p = 23 e base g = 5. (Esses dois valores são escolhidos dessa maneira para garantir que o segredo compartilhado resultante possa assumir qualquer valor de 1 a p-1).
  2. Alice escolhe um inteiro secreto uma = 6, então envia Bob UMA = guma mod p (UMA = 56 mod 23 = 8)
  3. Bob escolhe um inteiro secreto b = 15, então envia Alice B = gb mod p (B = 515 mod 23 = 19)
  4. Alice calcula s = Buma mod p (s = 196 modo 23 = 2)
  5. Bob calcula s = UMAb mod p (s = 815 modo 23 = 2)
  6. Alice e Bob agora compartilham um segredo (o número 2).

O número que Alice obteve no passo 4 é o mesmo que Bob obteve no passo 5 como

Bob calcula

Ab mod p = (ga mod p)b mod p = gab mod p

 
Alice calcula

Ba mod p = (gb mod p)a mod p = gba mod p

 
O algoritmo Diffie-Hellman é usado principalmente para trocar chaves de criptografia para uso em algoritmos de criptografia simétrica como AES. Por favor, observe que as informações não são compartilhadas durante a troca de chaves. Aqui as duas partes estão criando uma chave juntas.

 
Implementação:

C


Download  Executar código

Resultado:

Alice’s secret key is 2
Bob’s secret key is 2

Isso é tudo sobre o algoritmo Diffie-Hellman.

 
Referência: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

Avalie esta postagem

Classificação média 5/5. Contagem de votos: 19

Sem votos até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Diga-nos como podemos melhorar este post?




Obrigado por ler.

Por favor, use nosso compilador online para postar código em comentários usando C, C++, Java, Python, JavaScript, C#, PHP e muitas outras linguagens de programação populares.

Como nós? Indique-nos aos seus amigos e ajude-nos a crescer. Codificação feliz :)



Se inscrever
Notificar de
guest
1 Comente
Mais votados
O mais novo Mais antigo
Comentários em linha
Ver todos os comentários
NÃO siga este link ou você será banido do site!