Cálculo da chave secreta do protocolo Diffie-Hellmann
Publicado por Reginaldo de Matias (última atualização em 13/01/2010)
[ Hits: 5.714 ]
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; }
Código C para gerar hashes DES e MD5
Faz um crash no Kernel do Linux
Cifra de Cesar - Cripto-Analise
IntensiveDoS - ferramenta de DoS para pentesting
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Instalação Uefi com o instalador clássico do Mageia [RESOLVIDO] (2)
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)