Cálculo da chave secreta do protocolo Diffie-Hellmann
Publicado por Reginaldo de Matias (última atualização em 13/01/2010)
[ Hits: 5.746 ]
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; }
Faz um crash no Kernel do Linux
Script para fazer ataque DoS - use apenas como testes com sistemas de segurança
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
A area de trabalho ficou preta (16)
Agora temos uma assistente virtual no fórum!!! (244)
Servidor said: 530 5.7.0 Must issue a STARTTLS command first (in r... (0)
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (5)