Diffie–Hellman-Merkle
Key Exchange
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key: 23
Cipher: XYZABCDEFGHIJKLMNOPQRSTUVW
encrypt(x) = x + key % 26
Plaintext: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Ciphertext: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD
decrypt(x) = x - key % 26
Enigma

Enigma Codebook

..., DES, AES, ...
def encrypt(plaintext, key):
return ciphertext
def decrypt(ciphertext, key):
return plaintext
557d3b34675d2f73755f6d2436622a2b75487e5d3e5d593f742569404f
def encrypt(plaintext, key):
return ciphertext
def decrypt(ciphertext, key):
return plaintext


Key Exchange

Plaintext: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Alice: encrypt(Plaintext, 23) -> CiphertextA
CiphertextA: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD
Bob: encrypt(CiphertextA, 2) -> CiphertextB
CiphertextB: SGD PTHBJ AQNVM ENW ITLOR NUDQ SGD KZYX CNF
Alice: decrypt(CiphertextB, 23) -> CiphertextC
CiphertextC: VJG SWKEM DTQYP HQZ LWORU QXGT VJG NCBA FQI
Bob: decrypt(CiphertextC, 2) -> Plaintext
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
KeyA: OTZXBIAUQHNJFSGWCKEVPMYDLR KeyB: SMOCQAXTBIVPHGWUYNZJKREDLF THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG c1 = encrypt(p, keyA) : VUB CPQZN TKGYS IGD HPFWE GMBK VUB JORL XGA c2 = encrypt(c1, keyB) : RKM OUYFG JVXLZ BXC TUAEQ XHMV RKM IWNP DXS p1 = decrypt(c2, keyB) : VUB CPQZN TKGYS IGD HPFWE GMBK VUB JORL XGA p = decrypt(p1, keyA) : THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
KeyA: LWRDKHGYAXZUPSVOMTJCQFBIEN KeyB: HTGEJIYDXKQBWOMCNPFSUVRLAZ THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG c1 = encrypt(p, keyA) : CYK MQARZ WTVBS HVI XQPOJ VFKT CYK ULNE DVG c2 = encrypt(c1, keyB) : GAQ WNHPZ RSVTF DVX LNCMK VIQS GAQ UBOJ EVY p1 = decrypt(c2, keyA) : GIU BZFMK CNORV DOJ AZTQE OXUN GIU LWPS YOH wtf = decrypt(p1, keyB) : CFU LZSOJ PQNWV HNE YZBKD NIUQ CFU XMRT GNA
??
f(x) = Y (mod P)
x
f(x) = 7 (mod 11)
x
A = 3
B = 6
a = f(3) = 2
b = f(6) = 4
Alice: hey Bob, a = 2
Bob: hey Alice, b = 4
a = f(3) = 2
key = b (mod 11)=9
A
key = a (mod 11)=9
B
c = encrypt(p, 9)
p = decrypt(c, 9)
Diffie-Helman-Merkle
By Fergal Walsh
Diffie-Helman-Merkle
Presented @ HipoTalks March 3 2016
- 1,130