Cálculo da chave secreta do protocolo Diffie-Hellmann
Publicado por Reginaldo de Matias (última atualização em 13/01/2010)
[ Hits: 6.024 ]
Homepage: http://mundodacomputacaointegral.blogspot.com/
Download protocoloDiffieHellman.c
O presente programa escrito em C, calcula a chave secreta do protocolo Diffie-Hellmann.
Explicação:
- Alice escolhe um valor para x
- Bob escolhe um valor para y
- Alice envia a mensagem para Bob: (n,g, g^x mod n)
- Bob envia a mensagem para Alice: (g^y mod n)
- Alice calcula (g^y mod n)^x mod n = g^x*y mod n
- Bob calcula (g^x mod n)^x mod n = g^x*y mod n
Assim obtém-se a chave secreta compartilhada.
/*Este pequeno programa faz o cálculo do protocolo Diffie-Hellmann
Alice escolhe um valor para x
Bob escolhe um valor para y
Alice envia a mensagem para Bob: (n,g, g^x mod n)
Bob envia a mensagem para Alice: (g^y mod n)
Alice calcula (g^y mod n)^x mod n = g^x*y mod n
Bob calcula (g^x mod n)^x mod n = g^x*y mod n
Assim obtém a chave secreta compartilhada
Autor: Reginaldo de Matias
Disciplina: Segurança em Redes - UDESC
Exemplo de teste - exercício
n=59 p=14 x=2 e y=5
chave secreta=46
compilar: gcc protocoloDiffieHellman -o dh -lm
executar: ./dh
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,g,x,y, gx, gy, GX,GY,mdgx,mdgy,mdgx2,mdgy2, chave_secreta;
printf("Protocolo Diffie-Hellmann\n\n");
printf("Digite um valor para x:");
scanf("%i", &x);
printf("Digite um valor para y:");
scanf("%i", &y);
printf("Digite um valor para n:");
scanf("%i", &n);
printf("Digite um valor para g: ");
scanf("%i", &g);
printf("(%i,%i, %i^%i mod %i)", n, g, g,x,n);
/*inicio do cálculo do protoloco Diffie-Hellmann*/
gx = pow(g,x); //gx = g^x
gy = pow(g,y); //gy = g^y
mdgx = gx%n; //gx = g^x mod n
mdgy = gy%n; //gy = g^y mod n
mdgx2 = pow(mdgx,y);
mdgy2 = pow(mdgy,x);
GX = mdgx2%n; //(g^x mod n)^y mod n
GY = mdgy2%n; //(g^y mod n)^x mod n
chave_secreta=GX;
printf("GX= %i e GY=%i\n", GX, GY);
printf("\nPortanto a chave segreta eh: %i\n", chave_secreta);
return 0;
}
DoS criado em C para uso didáticos
Esse código pode ser considerado um vírus?
Spieluhr - esse código pode ser considerado um vírus?
Nenhum comentário foi encontrado.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (15)
Após todos esses anos... youtube! (2)
archlinux resolução abaixou após atualização [RESOLVIDO] (19)









