March 29, 2013
Computer Security
Kris Rowley
Cryptography
Diffie-Hellman Key Exchange
What it is: A specific method for exchanging cryptographic keys in which two users can communicate through a secret key and a public key (Problem).
“The simplest, and original, implementation of the protocol uses the multiplicative group of integers modulo p, where p is prime and g is primitive root mod p. Here is an example of the protocol, with non-secret values in blue, and secret values in boldface red: Alice | | Bob | Secret | Public | Calculates | Sends | Calculates | Public | Secret | a | p, g | | p,g | | | b | a | p, g, A | ga mod p = A | A | | p, g | b | a | p, g, A | | B | gb mod p = B | p, g, A, B | b | a, s | p, g, A, B | Ba mod p = s | | Ab mod p = s | p, g, A, B | b, s | | | | 1. Alice and Bob agree to use a prime number p=23 and base g=5. 2. Alice chooses a secret integer a=6, then sends Bob A = ga mod p * A = 56 mod 23 * A = 15,625 mod 23 * A = 8 3. Bob chooses a secret integer b=15, then sends Alice B = gb mod p * B = 515 mod 23 * B = 30,517,578,125 mod 23 * B = 19 4. Alice computes s = B a mod p * s = 196 mod 23 * s = 47,045,881 mod 23 * s = 2 5. Bob computes s = A b mod p * s = 815 mod 23 * s = 35,184,372,088,832 mod 23 * s = 2 6. Alice and Bob now share a secret: s = 2. This is because 6*15 is the same as 15*6. So somebody who had known both these private integers might also have calculated s as follows: * s = 56*15 mod 23 * s = 515*6 mod 23 * s = 590 mod 23 * s = 807,793,566,946,316,088,741,610,050,849,573,099,185,363,389,551,639,556,884,765,625 mod 23 * s = 2 (‘Cryptography’).”
Pros: It’s hard to perform a man-in-the-middle attack (Problem).
Cons: It doesn’t require any authentication (“Cryptography”).
General Information: The Diffie-Hellman key exchange is also