Cálculo da chave secreta do protocolo Diffie-Hellmann
Publicado por Reginaldo de Matias (última atualização em 13/01/2010)
[ Hits: 5.624 ]
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
Código C para gerar hashes DES e MD5
Cifra de Cesar - Cripto-Analise
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba