Informatika | Felsőoktatás » RSA titkosítási algoritmus

Alapadatok

Év, oldalszám:2012, 3 oldal

Nyelv:magyar

Letöltések száma:58

Feltöltve:2017. október 07.

Méret:643 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

RSA titkosı́tási algoritmus 1. Történeti áttekintés Az RSA betűszó az első nyilvános kulcsú (aszimmetrikus) titkosı́tási rendszer publikálóinak nevéből származik. Ronald Rivest, Adi Shamir és Leonard Adleman 1978-ban ı́rták le az algoritmusukat, s adtak elsőként olyan gyakorlati eljárást, amely bizonyı́totta, hogy a Diffie és Hellman által két évvel korábban felfedezett nyilvános kulcsú titkosı́tási elv a gyakorlatban is működik. Az ötlet jövedelmezővé tételére céget alapı́tottak, s a jó marketingjüknek is köszönhetően az RSA eljárás azóta nagy karriert futott be, a leginkább használt asszimmetrikus rendszernek számı́t. Sok kutató foglalkozik vele, s bár biztosságát ezideig nem bizonyı́tották, a legmegbı́zhatóbb nyilvános kulcsú titkosı́tási szisztéma. A nyilvános kulcsú titkosı́tási rendszert valójában már a 1960-as évek végén

felfedezték Angliában, de nemzetbiztonsági okokból nem került nyilvánosságra. Diffie és Hellman újrafelfedezése után is csak az állami titkosszolgálatok használhatták, majd 1991-ben Phil Zimmermann elkészı́tette az algoritmus PC-n használható változatát – melynek egyik része az RSA algoritmust használta – és feltette az Internetre. Ez volt a PGP (Pretty Good Privacy) program, mellyel az e-maileket lehetett tikosı́tani, és megnehezı́tette az nemzetbiztonsági hivatalok számára az e-mail forgalom megfigyelését. 1993-ban Zimmermannt az RSA cég és az amerikai vámhivatal beperelte, az első az RSA algoritmus licenc nélküli, jogosulatlan használatért, a másik a fegyverexportra vonatkozó törvények megsértéséért. Végül az ügy vádemelés nélkül zárult 1996-ban 2. Előkészı́tés Tételezzük fel, hogy van egy társaság, akik az egymás közötti kommunikációhoz az

RSA algoritmuson alapuló nyilvános kulcsú kriptorendszert szeretnék használni. Ahhoz, hogy az elképzelést megvalósı́tsák, a technikai feltételeken túl szükségük van a nyilvános, valamint a titkos kulcsok generálására. Ezt általában egy erre a célra szakosodott intézmény végzi el, s adja ki a felhasználók számára. Az RSA eljárás esetében a következőképpen zajlik le a kulcsok előállı́tása. 1. p és q két különböző, előre meghatározott nagyságrendű (jelenleg kb 150 decimális jegyűnél nagyobb) prı́mszám előállı́tása; 2. legyen n = p · q, és ϕ(n) = (p − 1)(q − 1) = n + 1 − p − q; 3. e ∈ N választása úgy, hogy 0 < e < ϕ(n) és gcd(e, ϕ(n)) = 1; 4. d ∈ N kiszámı́tása, melyre 0 < d < ϕ(n) és ed ≡ 1 (mod ϕ(n)); 5. p, q, ϕ(n) megsemmisı́tése, (n, e) lesz a nyilvános kulcs, d a titkos kulcs Megjegyzések (az

előkészı́tés egyes lépéseihez). 1. Ha p és q például pontosan 150 jegyűek, akkor 10150 < p, q < 10151 Ebben az intervallumban átlagosan minden 173-adik páratlan szám prı́m Mivel létezik gyors eljárás annak eldöntésére, hogy egy adott szám prı́m vagy összetett, ezért néhány próbálkozás után, rövid időn belül lehet a feltételeknek megfelelő prı́mszámokat generálni. 2. Nyilvánvalóan ebben a lépésben nincs sem elvi, sem gyakorlati nehézség 1 3. Először véletlenszerűen választanak egy e-jelöltet az adott intervallumból, majd az Euklideszi-algoritmus segı́tségével kiszámı́tják a legnagyobb közös osztót Ha az 1, akkor e megfelel, ha nem akkor a következő e-jelölt az előző jelölt plusz 1 lesz. Mivel az Euklideszialgoritmus gyors, ı́gy belátható időn belül eljutnak egy alkalmas e értékhez 4. e multiplikatı́v inverzének

meghatározásához az Euklideszi-algoritmus folytatását használják, amely pillanatok alatt megadja a d értéket. 5. Az adott felhasználó (n, e) publikus kulcsát minden felhasználó számára elérhető módon nyilvánosságra hozzák, d pedig csak az adott felhasználó által ismert titkos kulcs lesz. Az előkészı́téshez szükséges, de a felhasználás szempontjából felesleges értékeket biztonsági okokból megsemmisı́tik. Jelöljük most a felhasználókat az A, B, . betűkkel Az alábbi táblázat összefoglalja a kulcsok kiosztását. Felhasználók Nyilvános kulcsok Titkos kulcsok A (nA , eA ) dA B . . (nB , eB ) . . dB . . 1. táblázat Nyilvános és titkos kulcsok 3. Az RSA algoritmus részletezése 3.1 Üzenetküldés Tegyük fel, hogy az A felhasználó üzenetet szeretne küldeni B-nek. A következőket kell tennie. 1. Kikeresi a nyilvános ”telefonkönyvből” B

nyilvános (nB , eB ) kulcsát 2. A küldendő M üzenetet A felszabdalja M1 , M2 , azonos hosszúságú blokkokra, majd kódolással előállı́tja belőlük az x1 , x2 , . természetes számokat (nyı́lt üzenet) A blokkok hosszát úgy kell méretezni, hogy a belőlük származó xi számok nB -nél kisebbek legyenek (i = 1, 2, . ) 3. Jelölje x = xi az Mi szegmenshez rendelt természetes számot Az üzenet titkosı́tása a y ≡ xeB ( mod nB ) hatvány kiszámı́tásával történik. Ezután A elküldi B-nek az y1 , y2 , természetes számokból álló titkosı́tott üzenetet. 3.2 Üzenet fogadása B megkapja az y1 , y2 , . természetes számokból álló titkosı́tott üzenetet 2 1. Legyen y = yi (i = 1, 2, ) B felhasználva a dB titkos kulcsát kiszámı́tja az z ≡ y dB ( mod nB ) számot. Később megmutatjuk, hogy z éppen x lesz Ezzel B hozzájutott az x1 , x2 , természetes

számokból álló nyı́lt szöveghez. 2. A kódolási séma ismeretében B dekódolja az x1 , x2 , nyı́lt szöveget, és visszakapja belőlük az M1 , M2 , . szövegblokkokat 3. M1 , M2 , -t összeolvasva B megkapja az A felhasználó által küldött M üzenetet 3.3 Az algoritmus helyességének igazolása Azt kell megmutatni, hogy y dB ≡ x ( mod nB ). Az egyszerűség kedvéért a bizonyı́tás hátralevő részében mindenhonnan lehagyjuk a B indexet. Mivel d multiplikatı́v inverze e-nek, ezért e · d ≡ 1 (mod ϕ(n)), azaz ϕ(n) |(e · d − 1). Tehát létezik k ∈ N, melyre k · ϕ(n) = e · d − 1, vagyis e · d = k · ϕ(n) + 1. Ezt felhasználva y d ≡ (xe )d = xe·d = xk·ϕ(n)+1 ( mod n). I. Ha most gcd(x, n) = 1 akkor az Euler-Fermat tétel szerint ¡ ¢k xk·ϕ(n)+1 = xϕ(n) · x ≡ 1k · x = x ( mod n). II. Ha gcd(x, nB ) 6= 1, akkor p |x vagy q |x Mindkét esetben ugyanúgy kell eljárni Tehát tegyük

fel, hogy p |x. Ekkor q nem oszthatja x-et, mert ellenkező esetben p · q = n is osztaná x-et, de az lehetetlen mivel x < n. Vegyük észre, hogy p |x miatt p |xk·ϕ(n)+1 is teljesül, következésképpen ¡ ¢ p | xk·ϕ(n)+1 − x . (1) Másrészt ¡ ¢k·(p−1) xk·ϕ(n)+1 = xk·(p−1)(q−1)+1 = xq−1 · x ≡ 1k·(p−1) · x = x ( mod q), tehát ¡ ¢ q | xk·ϕ(n)+1 − x . Az (1) és (2) relációkból adódóan p · q = n is osztja a közös jobb oldalt, és ı́gy xk·ϕ(n)+1 ≡ x ( mod n). 4. Mintapélda A mintapélda a mintafeladatok.pdf fileban található 3 (2)