# Diffie Hellman

UserA needs to talk to UserB

They start out by agreeing on a Prime Number and an Integer –> (p and n)

Let’s use 13 and 6  (You can pick your own)

I FORGOT TO SET SOME RULES FOR OUR LITTLE COMPUTATION:

1.  p has to be greater than 2

2. n has to be less than p

3. The SECRET S has to be less than p-1

Without these rules the algorithm will not work.

Note that the negotiation of 13 and 6 can be on a public network.  A hacker can eavesdrop and find 13 and 6. It has no significance on the SECRET

Now UserA has to come up with a RANDOM SECRET and the same thing for USERB. Note these are SECRET.

UserA picks 3 and UserB picks 10 (So far…so good)

Let STOP for a second and catch our breath!!!!!!!

WHAT DOES UserA know?

13 <- the prime

6  <- the integer

3 <- the secret

UserA now computes the following:

6^3 MOD 13 -> 8  (Try it )

GUESS WHAT –> 8 IS THE PUBLICK KEY AND IT  IS SENT TO UserB.

NOW what does UserB know?

Well the agree upon Prime -> 13

The Integer -> 6

and the Secret -> 10

AND!!!!!!!!!!!!!!!….the Public KEY of UserA which is 8

Now UserB computes

6^10 MOD 13 (Just like user A did earlier) -> 4

4 IS THE PUBLIC KEY of UserB and is sent to UserA

AT THIS STAGE WE HAVE BEEN ABLE TO GENERATE THE PUBLIC KEYS OF UserA and UserB and share them. NO BIG DEAL IF A HACKER WERE TO GET HOLD OF THEM.

User A has the following now:

13 <- the prime

6  <- the integer

3 <- the secret

4 <- Public Key of UserB

User B has the following now:

13 <- the prime

6  <- the integer

10 <- the secret

8 <- Public Key of UserA

UserA computes the following:

4^3 MOD 13 = 12————-> THIS IS THE SECRET KEY FOR UserA

UserB computes the following:

8^10 MOD 13 = 12 ———–> THIS IS THE SECRET KEY FOR UserB

Pick a partner.
Negotiate p and n
Come up with a secret
Computer the Public Key and send it to your partner