Kriptográfiai protokollok Protokollosztályok - partnerhitelesítés - kulcskiosztás - üzenetintegritás - digitális aláírás - egyéb(titokmegosztás, zero knowledge...) 1
Shamir "háromlépéses" protokollja Titok rejtett továbbítása elozetes kulcsmegegyezés nélkül? A, B felhasználók x üzenet feltétel: 1. kommutatív tulajdonságú nyilvános kulcsú kódolás E B (E A (x)) (= E A (E B (x)). lehallgató típusú támadó 1. A B: y 1 = E A (x). B A: y = E B (E A (x)) (= E A (E B (x))) 3. A B: y 3 = D A (y ) = E B (x) Partnerhitelesítés/1 Usename: Password: A jelszavas rendszerek szokásos problémái: - a nem megfelelõ jelszóválasztás, - a jelszó nyílt alakban történõ továbbítása rendszerbe jutás pontjától (pl. terminál klaviatúra) az ellenõrzés pontjáig (pl. gazdagép), - a jelszavak nem eléggé védett tárolása felhasználó oldalán, ellenorzés oldalán (jelszófile)
Partnerhitelesítés/ Egyirányú függvényes leképezés igen/nem P f f(p) =? Jelszó tábla (ID1,f(P1)) (ID,f(P)) ID Szótáras támadás Salting Partnerhitelesítés/3 Kétirányú ellenorzés 1. A B: r1. B A: y1=f(p,r1) 3. A: y1=f(p,r1)? 4. B A: r 5. A B: y=f(p1,r) 6. B: y=f(p1,r)? - mindkét legális fél birtokában van partnere jelszavának - jelszavak nem kerülnek nyíltan átvitelre: 'kihívás és válaszvárás' módszere (challenge and response) véletlen elemek szerepe - kommunikáló páronként kell egy-egy jelszó-párt egyeztetni - a szótár alapú támadás veszélye nem csökkent 3
Partnerhitelesítés/4 Egyszer használatos jelszó Ini1. A: r generálása Ini. A B: ID A, n, y=f n (r) 1. A B: P1=f n-1 (r) 1.1 B: y=f(p1)?. A B: P=f n- (r).1 B: y=f (P)?... i. A B: Pi=f n-i (r) i.1 B: y=f i (P)? Biztos lehet B abban, hogy A-val áll szemben? (hitelesítés) Partnerhitelesítés/5 Partnerhitelesítés nyilvános kulcsú rejtjelezo függvények felhasználával 'kihívás és válaszvárás' típusú partnerazonosítási protokoll: B azonosítja magát A felé 1. B A: R. A B: y=d A (R) 3. B: R=E A (y)? A protokoll biztonságosnak tunik, de nem az: Egy C támadó dekódoltat egy lehallgatott y=e A (x)=x e mod n rejtjelezett blokkot! 4
Partnerhitelesítés/6 Partnerhitelesítés nyilvános kulcsú rejtjelezo függvények felhasználával - C választ egy R véletlen természetes számot, ahol r<n és (r,n)=1 - C a következo elokészíto számításokat végzi el: v=r e mod n w=vy mod n (y=e A (x)=x e mod n) t=r -1 mod n (r = v d mod n) - C megszemélyesíti B-t: 1'. C(B) A: w '. A C(B): u= D A (w)= wd mod n 3'. C(B): tu = r -1 w d = r -1 v d y d = v -d v d y d = y d = x mod n, ahol r = v d mod n Partnerhitelesítés/7 Partnerhitelesítés nyilvános kulcsú rejtjelezo függvények felhasználával Javított protokoll: 1. B A:. A B: R D A (R1) 3. A B: z=d A (R1 R) 4. B: R1 R = E A (z)? - C már nem képes megszemélyesíteni A-t - Ha A is azonosítani kívánja B-t, akkor ugyanezen protokollt lejátsszák fordított szereposztással. - Elkerülheto a fenti támadás olyan módon is, hogy rejtjelezésre és azonosításra más kulcskészletet használunk. 5
Partnerhitelesítés/8 Fiat-Shamir partnerazonosítás/négyzetgyökvonás mod n=pq Ha létezik oyan b természetes szám, ahol 0<b<n, amely az x = c modulo n, 0 < c < n egyenlet megoldása, akkor c számot b kvadratikus maradékának, b megoldást pedig a c négyzetgyökének nevezzük modulo n. Kérdések: Mikor van megoldás, azaz mely c számokból lehet gyököt vonni? Ha van megoldása hány különbözo megoldása van? Van-e praktikus algoritmus a gyökök kiszámítására? A válasz függ az n modulustól: két eset: n primszám, n két különbözo primszám szorzata. Partnerhitelesítés/9 Fiat-Shamir partnerazonosítás/négyzetgyökvonás mod n=pq Lemma: Ha n=p primszám, akkor az (1) egyenlet pontosan s=(p-1)/ különbözo c értékre oldható meg. Bizonyítás: 1.) Ha b megoldása (1) egyenletnek, akkor p-b is az, 0<b<p a kvadratikus maradékok száma legfeljebb s..) Belátjuk, hogy tetszoleges b 1 b, 0<b 1 <b s pár esetén b 1 b (mod p). Indirekt. Tf., hogy b 1 = b (mod p) fennáll valamely ilyen b 1,b párra, azaz p b - b 1 vagy p b -b 1 vagy p b 1 + b, ami nem lehetséges, mivel 0 < b -b 1 < p és 0 < b + b 1 < p. 6
Partnerhitelesítés/9 Fiat-Shamir partnerazonosítás/négyzetgyökvonás mod n=pq Ha n=pq, ahol p q primszámok: Ha egy c számra van megoldása a (1) egyenletnek, akkor négy megoldása van, s a megoldások {b 1, n-b 1, b, n-b }, 0 < b 1, b < n. A négy megoldást az x = c modulo p x = c modulo q egyenletek megoldásait felhasználva a kinai maradékok tétele segítségével kaphatjuk meg. Ha ismerjük n faktorjait: fenti hatékony algoritmus alkalmazha Ha nem ismerjük n faktorjait: nehéz feladat (1) megoldása Biz: köv. Partnerhitelesítés/10 Fiat-Shamir partnerazonosítás/négyzetgyökvonás mod n=pq Válasszunk véletlenszeruen egy d, 0<d<n számot és számítsuk ki a négyzetét modulo n. Legyen c=d (mod n). Indirekt. Tegyük fel, hogy a (1) egyenletnek könnyen ki tudjuk számítani egy d' megoldását. d - d' = 0 (mod n) n (d - d') (d + d') () d számot véletlenszeruen választottuk d-d'=0 (mod n): P{ P{d-d'=0 vagy d+d'=n}=1/. d-d' 0 (mod n): P {d-d' 0 (mod n)}=1/ továbbá d-d' <n, d+d'<n mindig igaz l.n.k.o.(n, d-d' ) vagy l.n.k.o.(n,d+d') faktort eredményez ellentmond annak, hogy faktorizálás nehéznek sejtett feladat 7
Partnerhitelesítés/11 Fiat-Shamir partnerazonosítás/ Kulcskiosztó központ (B): p,q primek véletlen választása n=pq modulus "A" ügyfél rendszerbe lépése (kulcsokat kap a központban): u titkos kulcs (véletlen szám) v=u (mod n) nyilvános kulcs A protokoll alapeleme a következo négy lépés: 1. A B: z=r (mod n) (0<R<n véletlen szám). B A: b (b véletlen bit) 3. A B: R,ha b=0 w=r u (mod n),ha b=1 4. B: z=r (mod n)?,ha b=0 w =z v (mod n)?,ha b=1 Partnerhitelesítés/1 Fiat-Shamir partnerazonosítás/3 Hogyan próbálhatja egy C támadó megszemélyesíteni A felet? 1.) C végrehajtja az 1. lépést, megfigyeli a. lépésbeli b bitet. b=0 : C sikeres b=1 : C nehéz feladatot kap: gyököt vonjon z v szorzatból modulo n támadás sikervalószínusége=1/.) C megpróbálja elorejelezni a. lépésben átküldésre kerülo b bitet. C sejtése b=0: 1. C B: z=r (mod n) 3. C B: w=r (mod n) C sejtése b=1: 1. C B: z=r v -1 (mod n) 3. C B: w=r (mod n) (zv négyzetgyöke mod n) b véletlen támadás sikervalószínusége=1/ 8
Partnerhitelesítés/13 Fiat-Shamir partnerazonosítás/4 Támadás sikervalószínuségének csökkentése: t számúszor megismételjük a protokoll alapelemet támadás sikervalószínusége= -t A módszer finomítása: k db kulcs pár: (v 1,v,...,v k ; u 1,u,...,u k ) v i =u i (mod n).. B A: b 1,b,...,b k 3. A B: w=r u b1 1 u b u bk k (mod n) 4. B: w =z v b1 1 v b v bk k (mod n) támadás sikervalószínusége= -tk Partnerhitelesítés/14 Fiat-Shamir partnerazonosítás/5 Alkalmazás: intelligens kártyás azonosító rendszer A: kártya és a tulajdonosa, B: azonosító terminál Biztonsági cél: hiteles terminálok biztonságosan azonosíthassák a kártyát (tulajdonosát), de csalási célú terminálok semmilyen használható titokhoz ne jussanak. (terminálok üzemeltetoje és a kártya kiállítója nem ugyanaz: pl. kártya egy pénzhelyettesíto POS (Point Of Sale) terminál felé) v=f(i,c), f : kriptográfiai hash függvény: v méret-szukítése különbözo felhasználóknak különbözo v nyilvános kulcs I : az ügyfél nyilvános azonosítója ([neve,számlaszáma,kártyaszáma]), c : (kicsi) nyilvános érték (megválasztása: v kvadr. maradék legyen) u : titkos kulcs a kártyán ki nem olvasható módon kerül elhelyezésre A kártya lehetové teszi a nyilvános adatelemek (I,c) ellenorzését (olvasását) 9
Partnerhitelesítés/15 Fiat-Shamir partnerazonosítás/6 Miért nem közvetlenül aknázzuk ki a gyökvonás fentebb taglalt nehézségét? 1. B A: R (mod n). A B: R (mod n) (Tf., hgy "A" ismeri p és q primeket is.) A félnek gyököt kellene vonnia, s ennek a számításigénye jóval meghaladja a Fiat-Shamir protokoll számításigényét, amely ügyesen kikerüli a gyökvonás feladatát. 10