Cálculo da chave secreta do protocolo Diffie-Hellmann
Publicado por Reginaldo de Matias (última atualização em 13/01/2010)
[ Hits: 5.812 ]
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; }
IntensiveDoS - ferramenta de DoS para pentesting
Nenhum comentário foi encontrado.
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Copiar Layout do Teclado para aplicar em outra Distribuição (5)
Alguém poderia me ajudar a escolher peças pra montar um desktop? [RESO... (34)