Skip to content

j-p-d-e-v/execism-diffie-hellman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Instructions

Diffie-Hellman key exchange.

Alice and Bob use Diffie-Hellman key exchange to share secrets. They start with prime numbers, pick private keys, generate and share public keys, and then generate a shared secret key.

Step 0

The test program supplies prime numbers p and g.

Step 1

Alice picks a private key, a, greater than 1 and less than p. Bob does the same to pick a private key b.

Step 2

Alice calculates a public key A.

A = gᵃ mod p

Using the same p and g, Bob similarly calculates a public key B from his private key b.

Step 3

Alice and Bob exchange public keys. Alice calculates secret key s.

s = Bᵃ mod p

Bob calculates

s = Aᵇ mod p

The calculations produce the same result! Alice and Bob now share secret s.

Instructions append

One possible solution for this exercise is to implement your own modular exponentiation function. To learn more about it refer to the following page.

For bonus points

Many implementations do not work for the entire domain of inputs. There are additional optional tests defined which help ensure that all valid inputs produce valid results.

To run the bonus tests, remove the #[ignore] flag and execute the tests with the big-primes feature, like this:

$ cargo test --features big-primes

About

Diffie-Hellman key exchange.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages