## Diffie-hellman

## Modulo

Given two numbers, *a* (the dividend) and *n* (the divisor), *a* modulo *n* (abbreviated as *a* mod *n*) is the remainder from the division of *a* by *n*. For instance, the expression “7 mod 5” would evaluate to 2 because 7 divided by 5 leaves a remainder of 2, while “10 mod 5” would evaluate to 0 because the division of 10 by 5 leaves a remainder of 0

1- Each Host A and B must agreed on a Prime Modulo and a Generator .

Lets say the Prime Modulo is 17 and the Generator is 3 :

then Host A and B select a Private number .

Lets say Host A choose 15 and Host B choose 13 ,

So host A calculate 3 to the power of 15 Mod 17 = 6

in detail :

3x3x3x3x3x3x3x3x3x3x3x3x3x3x3 = 14348907

So to do the modulo calculation : 14348907 / 17 = 844053.xxxxxxxxxxxxx

Then you multiply 844053*17 = 14348901

Then you subtract 14348907 from 14348901 = 6

So host B calculate 3 to the power of 13 Mod 17 = 12

in detail :

3x3x3x3x3x3x3x3x3x3x3x3x3x = 1594323

So to do the modulo calculation : 1594323 / 17 = 93783.xxxxxxxxxxxxx

Then you multiply 93783*17 = 1594311

Then you subtract 1594323 from 1594311 = 12

Then Host A send publicly his result to Host B and vice versa .

And now the TRICK !

Host A take Host B public result ( 12 ) and calculate it to the power of his private number ( 15 ) Mod 17 = 10

12x12x12x12x12x12x12x12x12x12x12x12x12x12x12x =15407021574586368

So to do the modulo calculation :

15407021574586368 / 17 =906295386740374.xxxxxxxxxxxxx

Then you multiply 844053*17 = 15407021574586358

Then you subtract 15407021574586368 from 15407021574586358 = 10

Host B take Host A public result ( 6 ) and calculate it to the power of his private number ( 13 ) Mod 17 = 10

6x6x6x6x6x6x6x6x6x6x6x6x6x =13060694016

So to do the modulo calculation :

15407021574586368 / 17 =768276118.xxxxxxxxxxxxx

Then you multiply 768276118*17 = 13060694006

Then you subtract 13060694016 from 13060694006 = 10

And we have obtain the Share Secret ( 10 )

TALAAAAAAAAAAA !