Geração de chaves Diffie-Hellman
Publicado por Perfil removido (última atualização em 24/09/2009)
[ Hits: 5.341 ]
Este script é um exemplo em PHP que ilustra o artigo do Elgio - http://www.vivaolinux.com.br/artigo/Fundamentos-da-criptografia-assimetrica/
Ele está comentado, mas recomendo ler o artigo pois está bem didático.
A parte da geração de números primos eu ainda não implementei, usei os números que ele citou no artigo dele.
<?php // // para entender esse script leia o artigo sobre Fundamentos da Criptografia aqui no VOL // http://www.vivaolinux.com.br/artigo/Fundamentos-da-criptografia-assimetrica/ // // Desenvolvido por: Daniel Gianni // <?php echo "<pre>"; $p = 131; // 1o número primo $e = 5; // 2o número primo $xf =31; // número secreto (chave) do usuário F $xc = 17; // número secreto (chave) do usuário C printf( "p=%d e=%d xf=%d xc=%d \n\n" , $p, $e, $xf, $xc ); $temp = bcpow($e,$xf); // e^xf $yf = bcmod( $temp , $p ); // (e^xf) mod p // aqui temos o número (chave pública) a ser enviada ao usuário C pelo usuário F printf( "e^xf => %d ^ %d = %d mod %d = %d \n\n" , $e, $xf, $temp, $p, $yf ); $temp = bcpow($e,$xc); // e^xc $yc = bcmod( $temp , $p ); // (e^xc) mod p // aqui temos o número (chave pública) a ser enviada ao usuário F pelo usuário C printf( "e^xc => %d ^ %d = %d mod %d = %d \n\n" , $e, $xc, $temp, $p, $yc ); // aqui está a decodificação da chave para o usuário F e a decodificação da chave para o usuário C printf( "kf = %d kc = %d " , bcmod(bcpow($yc,$xf) , $p) , bcmod(bcpow($yf,$xc) , $p) ); echo "</pre>"; ?>
Sistema de área restrista PHP/MYSQL
Gravando log de erros gerados em consultas SQL
LOGIN em php utilisando session e mysql!
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Discord connection refused (0)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (4)
Não Consigo instalar o cli-visualizer no Ubuntu 24.04 (2)
compilação samba 4.22 rock linux 9.5 (1)
Posso instalar usar o grub sem ter linux instalado, para iniciar o win... (1)