G2A Many GEOs
SHARE
TWEET

Diffie Helmann protocol

Anakthewolf May 11th, 2014 204 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;
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top