RS z algoritmus. Véltlnszrűn választunk két "nagy" prímszámot: p, p, p p. m= pp, φ ( m) = ( p -)( p -)., < φ( m), ( φ( m ),) = - 3. d = ( mod φ( m) ) 4. k p s = ( m,), = ( d, p, p ) k. Kódolás: y = x ( mod m) x Dkódolás: d x = y ( mod m), < m, y < m
Előismrtk (Inf. és kódlm. tankönyv 38-33.o.) Tétl 7 (maradékos osztás tétl): Ttszőlgs a és b, a > 0, b > 0 gészkr gyértlműn létzik q és r gész, hogy a = b q + r, ahol 0 < r < b, q > 0. Euklidszi l.n.k.o. algoritmus l.n.k.o. algoritmus kövtkzmény: Ttszőlgs b és c gészkr, amlyk közül lgalább gyik nm nulla, létznk s és t gészk, hogy (b,c ) = s b + t c Tétl 8: b szám modulo m invrz akkor és csak akkor létzik, ha (b, m) =. Ha létzik invrz, akkor az gyértlmű az m-nél kisbb pozitív gészk között. Tétl 9 (Frmat): Ha a c gész nm osztható a p primml, akkor c p - = (mod p ) Tétl 0 (Frmat-tétl általánosítása): Ha p és p különböző primk, és az c gészr tljsül, hogy (c, pp) =, akkor c (p - )(p - ) = (mod p p). Tétl (kínai maradékok tétl): Ha az m,m,, mr pozitív gészk páronként rlatív prímk, és a,a,, a r ttszőlgs gész számok, akkor az x = ai ( mod m i ), i =,,, r rndszrnk van közös mgoldása. ármly két mgoldás azonos modulo m m. mr
dkódolás bizonyítása: y d = d d (m)+ ( x ) = x = x ( mod m) Estk: ( x, m) =, ( x, m) > a.) ( x, m) = x (m) = ( mod m) d y (m)+ φ (m) q = x = x(x ) = x ( mod m ) b.): ( m) x, >, m = p p x < m p x vagy p x (wlog) p x, x = wp, ( w, m) =. x (m)+ = w (m)+ p (m)+ ( mod m) ( w, m) = w (m)+ = w ( mod m) () p ( m) ( p = p p q [ ] ( p ) = p ( mod ) (m)+ = p p p () p ( m) + 0 p ( mod ) p (3) () p ( m) + p - p ( m) + pp p - p m + p = p (m)+ (), (4) = wp = x ( mod m) x, (3) p ( ) ( mod m) ( m) + p - p (4) 3
Primszámkrsés PRIME P Manindra grawal, Nraj Kayal and Nitin Saxna: "PRIMES is in P" http://www.cs.iitk.ac.in/nws/primality.html Erasztotnész szita: kimrítő krsés (lassú, nm alkalmazható) Mkkora annak P valószínűség, hogy gy véltlnszrűn választott m bit hosszú n gész ( m- < n < m ) prímszám? Csbisv számlmélti tétl: Π(n ) az n pozitív gésznél kisbb primk számának nagyságrndj: ) n ln n P = ( m ) m ( m m ) m ( m ln m ( m ln() (P triviálisan mgduplázható, mivl az adott számtartomány fl páros szám, amlyk nm prímk csak xx...xxx alakú számok közül sorsolunk véltlnszrűn). 4
Hogyan dönthtjük l, hogy a véltlnül kisorsolt gész szám prím vagy sm? Véltlnül sorsolt számok valószinűségi alapon történő szűrés (prímtszt algoritmus) n sorsolása cikl=0 cikl=cikl+ prímtszt nm prím lht, hogy prím N cikl<m? I nagyon valószínû, hogy n prímszám Prímszűrés Frmat-tszt: Frmat-álprím: Egy n összttt szám álprím gy b bázisra nézv, ha b n - = (mod n ) 5
ahol b Zn, Zn={z : < z < n és (z, n) = }. Carmichal-szám: olyan összttt szám, amly ttszőlgs szóbajövő bázisra "átmgy" a Frmat-próbán? (lgkisbb ilyn szám 56) Tétl (Frmat-szűrés rj): Ha gy n összttt szám nm Carmichal-szám, akkor a b, b Zn bázisok lgalább flér nm lsz Frmat-álprím. Kövtkzmény: Ha gy n összttt szám Carmichal-szám, továbbá b, b Zn gy véltlnszrűn választott alapszám, akkor annak valószínűség, hogy n "átmgy" a Frmat-próbán M alkalommal, kisbb, mint -M. Lmma: Ha n álprím b bázisra, akkor álprím b - (mod n) bázisra is. Ha n álprím b és b bázisokra, akkor álprím zk modulo n szorzatára azaz bb (mod n) bázisra is. izonyítás: Álprím dfiníciója alapján közvtln (Hf). ❶ izonyítás (Tétl ): Lgyn = {b, b,...,bs } azon bázisok halmaza, amlykr n álprím. n nm Carmichal-szám halmaz nm ürs Lgyn b Zn \. Áll: b = {b b (mod n ), b b (mod n ),... b b s (mod n )} halmaz lmir, mint bázisokra n nm álprím. 6
indirkt: Lmma alapján, ha n b bi (mod n ) bázisra álprím lnn, akkor (b bi)bi - (mod n ) = b bázisra is annak klln lnni, ami llntmondás. Kövtkzésképpn azon bázisok száma, amlykr n nm álprím, lgalább s. ❶ Millr-Rabin tszt: n - = v u, ahol u páratlan ( x ( x ( x ( x n ν u = ( x / / + )[( x / ν u / 4 / 4 + )...( x + )...( x u / = / 4 / u ] =... = v / v (5) Lgyn Rn azon b Zn számok halmaza, amlykr vagy b u = (mod n ) (6) vagy létzik olyan 0 j < v, mlyr b j u = (modn) (7). Ha n prím, akkor n (b n - -), b Zn (5) vagy (6) vagy (7) fnnáll n összttt, ha ttszőlgs b stén b Rn. Millr-Rabin tszt: Véltlnszrűn választunk gy b bázist n prímgyanús, ha b Rn, 7
n összttt, ha b Rn. Tétl : nnak a valószínűség, hogy véltlnszrűn választott bázis mlltt gy összttt szám mgállja a Millr-Rabin-tsztt lgfljbb /4. Kövtkzmény: Ha az M darab bázist gymástól függtlnül választjuk mg, akkor a tévs prímgnrálás valószínűség -M. RS biztonsága. Hatékony gész szám faktorizációs algoritmus ismrtébn az RS rjtjlzés hatékonyan fjthtő lnn (nm ismrünk ilyn algoritmust). iz: m modulus p, p faktorjainak mgkrsés dkódoló kulcs kiszámítása. Nm tudjuk, hogy az RS törés fladata rdukálható- a faktorizációs fladatra. (ha nm rdukálható, az azt jlnti, hogy RS hatékonyan törhtő lht akkor is, ha nm létzik hatékony faktorizációs algoritmus) Kivétl: = st (mgj: később visszatérünk rá) 3. Implmntáció során sok részltr kll figylni! Számos hatékony támadás ismrt az nyílt üznthalmaz, a prímpár, a kódoló és dkódoló kulcs spciális választása kapcsán. RS biztonság/példák:. φ(m) is titokban tartandó (Hf). Kicsi annak a P valószínűség, hogy véltlnszrűn olyan x üzntt találunk, amlyr (x,m)>, (Hf) 8
3. Lgyn =3, m= 04. Üzntink hossza lgfljbb 40 byt. z RS rjtjlző kódolás közvtln alkalmazása jlntht- biztonsági lyukat? (Hf) 4. kódolás és dkódolás számításhoz az "ismétlt négyztrmlés és szorzás" módszrét alkalmazzuk. Lgrosszabb stbn mnnyi blokkmértű moduláris szorzást kll végrhajtani m=048 modulus stén? (Hf) 5. Nm légségs, hogy p p: a két prím nm lht közli. Frmat-faktorizáció: n = a b, a b > 0. Lgyn t = (a +b ) /, s = (a -b ) / a = t+s, b = t-s. n = t - s = (t+s)(t-s ) Ötlt: ha a-b különbség "kicsi", akkor s is "kicsi " t n /. Találgatás t-r : t = n / +, t = n / +,... Ellnőrzés: ti -n négyztszámot? Ha ign, akkor ti -n = s t, s a, b. 6. Kicsi kódoló kulcsok problémája 9
zonos nyilvános kulcs választása több flhasználó által: Támadó ismrt: y = x mod ( ) ( mod ) m = x m y... yr = x ( mod mr ) ahol r. Ha m,m,, mr modulusok páronként rlatív prímk, a kínai maradékok tétl alkalmazható hatékonyan kiszámíthatjuk z=x hatványt, ui. { } x < min m i 0 < x < mm mr z gész szám -dik gyökét kiszámítva x nyílt szövgt mgkapjuk! Milyn módon krülhtő ki z a probléma anélkül, hogy a transzformációkat mgváltoztatnánk? (Hf) 7. Közös modulus problémája rjttt Támadó ismrt: y = x ( mod m), y = x ( mod m) szövgk, ahol (, ) = t,s: t + s =, ahol t s<0, mivl > 0, > 0. (wlog) t < 0, azaz t = - t. (wlog) ( y,m) = ( y,m) = ( y, m) = y ( mod m) Ā 0
t s - t s t s ( y ) ( y ) = ( x ) ( x ) = x + = x ( mod m), F: z RS kódolás stén a CF illtv az OF blokk rjtjlzés módok alkalmazhatók-? Mgoldás: Nm. z RS nyilvános kulcsú, s a CF illtv OF mód stén mind az adási, mind a vétli oldalon (!) csak kódolást végzünk, s így a nyilvános kódoló kulcs miatt a támadó által is lvégzhtő művltk. F: Egy játék RS algoritmus stén p=3, p= prímkt választottuk. dja mg a lhtő lgkisbb kódoló kulcsot, s az hhz tartozó dkódoló kulcsot! Kódolja az x=5 üzntt! (Hf)