Merkle-Hellman 3 5 9 18 40 1 0 1 1 0
Merkle-Hellman 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted)
Merkle-Hellman 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 30 < 40 so first bit is 0 (Decrypt)
Merkle-Hellman 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 30 < 40 so first bit is 0 (Decrypt) 30 > 18 so second bit is 1 remainder is 12
Merkle-Hellman 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 30 < 40 so first bit is 0 (Decrypt) 30 > 18 so second bit is 1 remainder is 12 12 > 9 so third bit is 1 remainder is 3
Merkle-Hellman 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 30 < 40 so first bit is 0 (Decrypt) 30 > 18 so second bit is 1 remainder is 12 12 > 9 so third bit is 1 remainder is 3 3 < 5 so fourth bit is 0
Merkle-Hellman 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 3 5 9 18 40 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 30 < 40 so first bit is 0 (Decrypt) 30 > 18 so second bit is 1 remainder is 12 12 > 9 so third bit is 1 remainder is 3 3 < 5 so fourth bit is 0 3 == 3 so fifth bit is 1 and we are done
Merkle-Hellman 3 5 9 18 40 Public key 1 0 1 1 0 = 30 = 0 1 1 1 1 3 5 9 18 40 Public key 1 0 1 1 0 = 30 = 0 1 1 1 1 (Encrypted) 30 < 40 so first bit is 0 (Decrypt) 30 > 18 so second bit is 1 remainder is 12 12 > 9 so third bit is 1 remainder is 3 3 < 5 so fourth bit is 0 3 == 3 so fifth bit is 1 and we are done
Merkle-Hellman Problem: Anyone can decrypt the message
Merkle-Hellman Problem: Anyone can decrypt the message So, choose multiplier m and modulus p and for every number ki in the key set pki = ki*m mod p for example, if m=4571 and p=7187 then
Merkle-Hellman Problem: Anyone can decrypt the message So, choose multiplier m and modulus p and for every number ki in the key set pki = ki*m mod p for example, if m=4571 and p=7187 then 3 5 9 18 40 83 157 317 ⇒ 6526 1294 5204 3221 3165 5669 6134 4420
Merkle-Hellman Problem: Anyone can decrypt the message So, choose multiplier m and modulus p and for every number ki in the key set pki = ki*m mod p for example, if m=4571 and p=7187 then The bottom part and p are sent as the public key, the inverse of m and p are the private key. The inverse m-1 of m is 1283 (See http://gauss.ececs.uc.edu/Courses/c653/lectures/Math/Inverse/inverse.html) 3 5 9 18 40 83 157 317 ⇒ 6526 1294 5204 3221 3165 5669 6134 4420
Merkle-Hellman Problem: Anyone can decrypt the message So, choose multiplier m and modulus p and for every number ki in the key set pki = ki*m mod p for example, if m=4571 and p=7187 then The bottom part and p are sent as the public key, the inverse of m and p are the private key. The inverse m-1 of m is 1283 (See http://gauss.ececs.uc.edu/Courses/c653/lectures/Math/Inverse/inverse.html) What is an inverse? Start with msg = ∑ici*ki Encrypt: ∑ici*ki*m mod p Decrypt: ∑ici*ki*m*m-1 mod p = ∑ici*ki*1 mod p = ∑ici*ki 3 5 9 18 40 83 157 317 ⇒ 6526 1294 5204 3221 3165 5669 6134 4420
Merkle-Hellman Problem: Anyone can decrypt the message So, choose multiplier m and modulus p and for every number ki in the key set pki = ki*m mod p for example, if m=4571 and p=7187 then The bottom part and p are sent as the public key, the inverse of m and p are the private key. The inverse m-1 of m is 1283 (See http://gauss.ececs.uc.edu/Courses/c653/lectures/Math/Inverse/inverse.html) Encrypt: 10000110 as 6526+5669+6134 = 18329 3 5 9 18 40 83 157 317 ⇒ 6526 1294 5204 3221 3165 5669 6134 4420
Merkle-Hellman Problem: Anyone can decrypt the message So, choose multiplier m and modulus p and for every number ki in the key set pki = ki*m mod p for example, if m=4571 and p=7187 then The bottom part and p are sent as the public key, the inverse of m and p are the private key. The inverse m-1 of m is 1283 (See http://gauss.ececs.uc.edu/Courses/c653/lectures/Math/Inverse/inverse.html) Encrypt: 10000110 as 6526+5669+6134 = 18329 Decrypt: 18329*1283 mod 7187 = 23516107 mod 7187 = 243 -- use 3 + 83 + 157 = 243 to receive 10000110 (See http://gauss.ececs.uc.edu/Courses/c653/lectures/Java/Encrypt/A.html) 3 5 9 18 40 83 157 317 ⇒ 6526 1294 5204 3221 3165 5669 6134 4420