Advertisement
Anakthewolf

Diffie Helmann protocol

May 11th, 2014
318
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use feature 'say';
  6.  
  7. use Crypt::DH;
  8.  
  9. # parametri pubblici
  10. my $bigPrimeNumber='32416190071';
  11. my $generator='4';
  12.  
  13. # parametri privati
  14. my $privateKeyAlice='4';
  15. my $privateKeyBob='5';
  16.  
  17. # istanza DH di Alice
  18. my $dhAlice=Crypt::DH->new();
  19. $dhAlice->p($bigPrimeNumber);
  20. $dhAlice->g($generator);
  21. $dhAlice->priv_key($privateKeyAlice);
  22. my $publicKeyAlice=$dhAlice->generate_keys;
  23. say '-> Chiave pubblica Alice: '.$publicKeyAlice;
  24.  
  25. # istanza DH di Bob
  26. my $dhBob=Crypt::DH->new();
  27. $dhBob->p($bigPrimeNumber);
  28. $dhBob->g($generator);
  29. $dhBob->priv_key($privateKeyBob);
  30. my $publicKeyBob=$dhBob->generate_keys;
  31. say '-> Chiave pubblica Bob: '.$publicKeyBob;
  32.  
  33. # Alice calcola la chiave condivisa con Bob usando la chiave pubblica di Bob
  34. my $secretKeyAlice=$dhAlice->compute_secret($publicKeyBob);
  35.  
  36. # Bob calcola la chiave condivisa con Alice usando la chiave pubblica di Alice
  37. my $secretKeyBob=$dhBob->compute_secret($publicKeyAlice);
  38.  
  39. # le due chiavi sono uguali e possono essere utilizzate, ad es. con AES oppure FNA
  40. say '-> Chiave segreta calcolata da Alice: '.$secretKeyAlice;
  41. say '-> Chiave segreta calcolata da Bob: '.$secretKeyBob;
Advertisement
RAW Paste Data Copied
Advertisement