Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use feature 'say';
- use Crypt::DH;
- # parametri pubblici
- my $bigPrimeNumber='32416190071';
- my $generator='4';
- # parametri privati
- my $privateKeyAlice='4';
- my $privateKeyBob='5';
- # istanza DH di Alice
- my $dhAlice=Crypt::DH->new();
- $dhAlice->p($bigPrimeNumber);
- $dhAlice->g($generator);
- $dhAlice->priv_key($privateKeyAlice);
- my $publicKeyAlice=$dhAlice->generate_keys;
- say '-> Chiave pubblica Alice: '.$publicKeyAlice;
- # istanza DH di Bob
- my $dhBob=Crypt::DH->new();
- $dhBob->p($bigPrimeNumber);
- $dhBob->g($generator);
- $dhBob->priv_key($privateKeyBob);
- my $publicKeyBob=$dhBob->generate_keys;
- say '-> Chiave pubblica Bob: '.$publicKeyBob;
- # Alice calcola la chiave condivisa con Bob usando la chiave pubblica di Bob
- my $secretKeyAlice=$dhAlice->compute_secret($publicKeyBob);
- # Bob calcola la chiave condivisa con Alice usando la chiave pubblica di Alice
- my $secretKeyBob=$dhBob->compute_secret($publicKeyAlice);
- # le due chiavi sono uguali e possono essere utilizzate, ad es. con AES oppure FNA
- say '-> Chiave segreta calcolata da Alice: '.$secretKeyAlice;
- say '-> Chiave segreta calcolata da Bob: '.$secretKeyBob;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement