250 likes | 478 Views
Kriptografija sa javnim ključevima. Kriptografija sa javnim ključevima. Dva ključa Pošiljalac koristi javni ključ primaoca za šifrovanje Primaoc koristi s voj privat ni (tajni) k ljuč za dešifrovanje Zasniva se na trap door, ili jednosmernim ( one way ) fun kcijama
E N D
Kriptografija sa javnim ključevima • Dva ključa • Pošiljalac koristi javni ključprimaoca za šifrovanje • Primaoc koristi svoj privatni (tajni) ključza dešifrovanje • Zasniva se na trap door, ili jednosmernim (one way) funkcijama • Lako se izračunavaju u jednom smeru • Teško se izralunavaju u drugom smeru • “Trap door” se koristi za generisanje tajnog ključa • Primer: Za zadate p i q, proizvod N=pq se lako računa, ali za dato N, teško je naći p i q
Kriptografija sa javnim ključevima • Šifrovanje • Pretpostavimo da se M šifruje Bobovim javnim ključem • Samo Bobov privatni ključ može da dešifruje poruku M • Digitalni potpis • Potpisati “šifrovanjem” sa privatnim ključem • Svako može da verifikujepotpis “dešifrovanjem” sa javnim ključem • Samovlasnik privatnog ključaje mogao da potpiše • Sličan je klasičnom potpisivanju
Problem ranca • Za zadate težineW0,W1,...,Wn-1i sumu S, da li je moguće naćiai {0,1} tako da važi S = a0W0+a1W1 +...+ an-1Wn-1 (tehnički, ovo je problem “sume podskupova”) • Primer • Težine (62,93,26,52,166,48,91,141) • Problem: Naći podskup čija je suma S=302 • Odgovor: 62+26+166+48=302 • (Opšti) problem ranca (knapsack)je NP-kompletan
Problem ranca • Opšti problem ranca (general knapsac - GK) je težak za rešavanje • Alisuperincreasing knapsack (SIK) je lak za rešavanje • SIK each weight greater than the sum of all previous weights • Primer • Težine (2,3,7,14,30,57,120,251) • Problem: Naći podskupove čija je suma S=186 • Rešava se polazeći od najvećih do najmanjih težina • Odgovor: 120+57+7+2=186
Knapsack Cryptosystem • Generate superincreasing knapsack (SIK) • Convert SIK into “general” knapsack (GK) • Public Key: GK • Private Key: SIK plus conversion factors • Easy to encrypt with GK • With private key, easy to decrypt (convert ciphertext to SIK) • Without private key, must solve GK (???)
Knapsack Cryptosystem • Let (2,3,7,14,30,57,120,251) be the SIK • Choose m = 41 and n = 491 with m, n rel. prime and n greater than sum of elements of SIK • General knapsack 2 41 mod 491 = 82 3 41 mod 491 = 123 7 41 mod 491 = 287 14 41 mod 491 = 83 30 41 mod 491 = 248 57 41 mod 491 = 373 120 41 mod 491 = 10 251 41 mod 491 = 471 • General knapsack: (82,123,287,83,248,373,10,471)
Knapsack Example • Private key:(2,3,7,14,30,57,120,251) m1 mod n = 411 mod 491 = 12 • Public key:(82,123,287,83,248,373,10,471), n=491 • Example: Encrypt 10010110 82 + 83 + 373 + 10 = 548 • To decrypt, • 548 · 12 = 193 mod 491 • Solve (easy) SIK with S = 193 • Obtain plaintext 10010110
Knapsack Weakness • Trapdoor: Convert SIK into “general” knapsack using modular arithmetic • One-way: General knapsack easy to encrypt, hard to solve; SIK easy to solve • This knapsack cryptosystem is insecure • Broken in 1983 with Apple II computer • The attack uses lattice reduction • “General knapsack” is not general enough! • This special knapsack is easy to solve!
RSA • Izumljen od strane Cocks-a (GCHQ), i nezavisno od Rivest-a, Shamir-ai Adleman-a (MIT) • Neka su p i q dva velika prosta broja • Neka je N = pq modulus • Izabrati broj e uzajamno prost u odnosu na (p1)(q1) • Naći d takvo da je ed = 1 mod (p1)(q1) • Javni ključ: (N,e) • Privatni ključ: d
RSA • Da bi se šifrovala porukaMračuna se • C = Me mod N • Da bi se dešifrovaloCračuna se • M = Cd mod N • Podsetimo se da sueiNjavni • Ukoliko bi napadač faktorisao N, može zatim da upotrbi e u cilju lakog nalaženja d pošto je ed = 1 mod (p1)(q1) • Faktorizacija modulusa razbija RSA • Nije poznato da li je faktorizacija jedini način za razbijanje RSA
Dali RSA zaista radi? • Za zadatoC = Me mod Nmoramo pokazati • M = Cd mod N = Med mod N • IskoristićemoOjlerovuteoremu • Ako je x uzajamno prost u odnosu na n tada je x(n) = 1 mod n • Činjenice: • ed = 1 mod (p 1)(q 1) • Po definiciji “mod-a”, ed = k(p 1)(q 1) + 1 • (N) = (p 1)(q 1) • Tada je ed 1 = k(p 1)(q 1) = k(N) • Med = M(ed 1) + 1 = MMed 1 = MMk(N) = M(M(N))k mod N = M1k mod N = M mod N
Jednostavan RSA primer • Primer RSA • Izabrati “velike” proste brojeve p = 11, q = 3 • Tada je N = pq = 33 i (p1)(q1) = 20 • Izabrati e = 3 (uzajamno prost u odnosu na 20) • Naći d takvo da je ed = 1 mod 20, što daje d = 7 • Javni ključ: (N, e) = (33, 3) • Privatni ključ: d = 7
Jednostavan RSA primer • Javni ključ : (N, e) = (33, 3) • Privatni ključ : d = 7 • Neka je poruka M = 8 • Šifrat C se računa na sledeći način C = Me mod N = 83 = 512 = 17 mod 33 • Dešifrovanje C u cilju dobijanja M se vrši na sledeći način M = Cd mod N = 177 = 410,338,673 = 12,434,505 33 + 8 = 8 mod 33
Efikasniji RSA • Modularno stepenovanje - primer • 520 = 95367431640625 = 25 mod 35 • Bolji način: sukcesivno kvadriranje • 20 = 10100 base 2 • (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20) • Primetimo da 2 = 1 2, 5 = 2 2 + 1, 10 = 2 5, 20 = 2 10 • 51= 5 mod 35 • 52= (51)2 = 52 = 25 mod 35 • 55= (52)2 51 = 252 5 = 3125 = 10 mod 35 • 510 = (55)2 = 102 = 100 = 30 mod 35 • 520 = (510)2 = 302 = 900 = 25 mod 35 • Na ovaj način se ne susrećemo sa velikim brojevima!
Efikasniji RSA • Neka jee = 3za sve korisnike (ali ne i istoNilid) • Operacije vezane za javni ključ zahtevaju samo dva množenja • Operacije vezane za privatni ključ osatju ekstenzivne • Ako je M < N1/3 tada je C = Me = M3i tada se može preduzetinapad trećeg korena • Za svako M, ako je C1, C2, C3poslatotrima korisnicima, realan je napad trećeg korena (uz upotrebu kineske teoreme o ostacima) • Napad trećeg korena se može izbeći dopunjavanjem poruka slučajnim bitima • Primedba: e = 216 + 1se takodje koristi
Diffie-Hellman • Predložen od Williamson-a (Government Communications Headquarters - GCHQ) i, nezavisno od Diffie i Hellmana (Stanford) • Predstavlja algoritam “razmene ključeva” • Koristi se za uspostavljanje zajedničkog simetričnog ključa • Nije predvidjen za šifrovanje ili digitalno potpisivanje • Sigurnost se zasniva na težini problema diskretnog logaritma:za zadate g, p, i gk mod p naći k
Diffie-Hellman • Neka je p prost broj, i neka je g generator • Za svako x {1,2,…,p-1} postoji n takvo da je x = gn mod p • Alisa bira tajnu vrednost a • Bob selektuje tajnu vrednost b • Alisa šalje ga mod p Bobu • Bob šalje gb mod p Alisi • Oboje računaju zajedničku tajnu vrednost gab mod p • Ta zajednička tajna vrednost se može koristiti kao simetričan ključ
Diffie-Hellman • Pretpostavimo da Bob i Alisakoriste gab mod p kao simetričan ključ • Trudi može da vidi ga mod p i gb mod p • Primetimo da je ga gb mod p = ga+b mod p gab mod p • Ako bi Trudi mogla naći a ili b, sistem je razbijen • Ako bi Trudi mogla da reši problemdiskretnog logaritma, tada bi mogla da nadje a ili b
Diffie-Hellman • Javno: g i p • Tajno: Alisin eksponent a i Bobov eksponent b ga mod p gb mod p Alice, a Bob, b • Alisa računa (gb)a = gba = gab mod p • Bob računa (ga)b = gab mod p • Mogao bi se K = gab mod p koristiti kao simetričan ključ
Diffie-Hellman • Podložan je man-in-the-middle (MiM) napadu ga mod p gt mod p gt mod p gb mod p Trudy, t Bob, b Alice, a • Trudi deli tajnu gat mod p sa Alisom • Trudi deli tajnu gbt mod p sa Bob • Alisa i Bob ne mogu znati da Trudi postoji!
Diffie-Hellman • Kako osujetiti MiM napad? • Šifrovati DH razmenu sa simetričnim ključem • Šifrovati DH razmenu sa javnim ključem • Digitalno potpisati DH vrednosti sa privatnim ključem • Ostale mogućnosti? • Moramo biti svesni realnosti MiM napada na Diffie-Hellman proceduru