Geração de chaves Diffie-Hellman
Publicado por Perfil removido (última atualização em 24/09/2009)
[ Hits: 5.443 ]
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 competo para autenticação de usuarios.
Função Anti MySQL Injection - Proteja sua aplicação!
Easy Login !!! OTIMO LOGIN !!!
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Desktop Linux ganha novos apps enquanto IA invade o noticiário
Blender 5.0 Beta, Firefox 144 e avanço da IA dominam o dia no mundo Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (0)
Baixar jogos Independentes para Ubuntu [RESOLVIDO] (4)
PIP3 - erro ao instalar módulo do mariadb para o Python (1)
Linux x Plataformas de Trading - um problema (in-)solúvel? (4)