RSA

Wikipediasta
Tämä on arkistoitu versio sivusta sellaisena, kuin se oli 14. kesäkuuta 2011 kello 22.05 käyttäjän ML (keskustelu | muokkaukset) muokkauksen jälkeen. Sivu saattaa erota merkittävästi tuoreimmasta versiosta.
Siirry navigaatioon Siirry hakuun
Tämä artikkeli käsittelee salausalgoritmia. RSA voi viitata myös brittiläiseen Royal Society of Arts -järjestöön.
RSA Securityn valmistama laite, joka tuottaa valtuutusavaimia. Laitteen algoritmi tuottaa vaihtuvan salasanan 60 sekunnin välein. RSA SecurID toimii siten, että kirjautumiseen tarvitaan käyttäjätunnus ja pääsykoodi, joka koostuu käyttäjän salasanasta (esimerkiksi 1234) ja laitteen näyttämästä koodista (esimerkiksi 567890), jolloin pääsykoodi on 1234567890.

RSA on epäsymmetrinen julkisen avaimen salausalgoritmi, jota käytetään laajalti muun muassa elektronisessa kaupankäynnissä. Ron Rivest, Adi Shamir ja Len Adleman kuvasivat algoritmin vuonna 1977; menetelmän nimi tulee heidän sukunimiensä alkukirjaimista.

Englantilainen matemaatikko Clifford Cocks kuvasi vastaavan algoritmin jo vuonna 1973 brittiläisen tiedusteluelin GCHQ:n (Government Communications Headquarters) sisäisessä muistiossa. Työ julistettiin kuitenkin salaiseksi, eikä sitä paljastettu ennen vuotta 1997.

RSA:n turvallisuus perustuu olettamukseen, jonka mukaan erittäin suurien alkulukujen (jaollinen vain itsellään) tulon tekijöihinjako on vaikeaa. Kyseessä on yksisuuntainen modulaari funktio, joka on helppo laskea mutta todella hankalaa ja aikaa vievää laskea taaksepäin.

MIT patentoi algoritmin Yhdysvalloissa vuonna 1983. Patentti raukesi syyskuussa 2000. Patentti ei koskenut muita maita, koska algoritmi oli jo julkaistu ennen patenttihakemusta.

RSA perustuu julkiseen ja yksityiseen avaimeen ja siihen, ettei yksityistä avainta voida nykytekniikalla käytännössä johtaa julkisesta avaimesta. Julkisen avaimen avulla voidaan luoda salattuja viestejä, jotka voidaan lukea ainoastaan yksityisen avaimen avulla. Näin taho, joka esimerkiksi haluaa tarjota kenelle tahansa mahdollisuuden lähettää itselleen salattuja viestejä, voi julkaista julkisen avaimen kaikille, mutta pitää yksityisen avaimen itsellään. Tällöin kuka tahansa voi lähettää kyseiselle vastaanottajalle salatun viestin, jonka ainoastaan vastaanottaja voi yksityisellä avaimellaan avata. Tätä kutsutaan epäsymmetriseksi salaukseksi[1] erotuksena vanhemmasta symmetrisestä salauksesta, jossa lähettäjällä ja vastaanottajalla on sama salausavain, jonka on pysyttävä salassa.

Toiminta

Avainten luonti

Oletetaan että Liisa haluaa Pekan lähettävän hänelle yksityisen viestin turvatonta reittiä pitkin. Hän toimii seuraavasti luodakseen julkisen avaimen ja yksityisen avaimen:

  1. Valitse kaksi suurta alkulukua pq satunnaisesti ja toisistaan riippumatta. Laske N = p q.
  2. Valitse kokonaisluku 1 < d < N jolle (p-1)(q-1) on suhteellinen alkuluku.
  3. Valitse e siten, että d e ≡ 1 (mod (p-1)(q-1)).
  4. Tuhoa kaikki p:tä ja q:ta koskevat tiedot.

N ja e muodostavat julkisen avaimen ja N sekä d muodostavat yksityisen avaimen. Huomaa, että ainoastaan d on salainen ja että N on julkisesti saatavilla. Liisa lähettää julkisen avaimen Pekalle ja pitää yksityisen avaimen salaisena.

Viestin salaaminen

Sitten lasketaan salattu viesti c kun n on Pekan alkuperäinen viesti:

Salauksen purkaminen

Liisa saa c:n Pekalta ja tietää salaisen avaimensa d. Hän voi palauttaa n:n c:stä seuraavan kaavan avulla:

Liisa voi nyt selvittää muuttujan n, koska n < N. Hän voi palauttaa alkuperäisen viestin m, mikäli hän tuntee muuttujan n.

Purku toimii, koska

ja ed ≡ 1 (mod p-1) ja ed ≡ 1 (mod q-1). Fermat'n pieni teoreema antaa

    ja    

jonka mukaan (koska p ja q ovat erisuuria alkulukuja)

Allekirjoittaminen

RSA:ta voidaan käyttää myös viestien allekirjoittamiseen. Tällöin viestistä lasketaan nk. tiiviste (engl. hash) tiivistefunktion (esimerkiksi MD5, SHA-1) avulla. Tiiviste kryptataan yksityisellä allekirjoitusavaimella. Kun viestin allekirjoitus sitten halutaan tarkastaa, puretaan tiivisteen salaus ja lasketaan viestistä uusi tiiviste. Jos uusi tiiviste on sama kuin viestin mukaan alun perin kryptattu tiiviste, viesti ei ole muuttunut matkalla, ja viesti on juuri siltä henkilöltä jolta se väittää olevansa. Katso myös digitaalinen allekirjoitus.

Algoritmit

RSA:n toteutus perustuu nopeaan potenssiinkorotusalgoritmiin jäännösluokkarenkaassa modulo . Potenssiinkorotuksen toteuttamiseksi tarvitaan nopea kertolaskualgoritmi samassa renkaassa.

Järjestelmän avainten valinnassa tarvitaan isoja alkulukuja, jotka on mahdollisimman satunnaisesti valittu. Tätä varten tarvitaan nopeita ja luotettavia alkulukutestejä.

Turvallisuus

Oletetaan että Eeva sieppaa julkisen avaimen N ja e sekä salatekstin c.

Toistaiseksi ei ole todistettu, että N:n tekijöihinjako olisi ainoa tapa päätellä n c:n perusteella. Helpompaa menetelmää ei kuitenkaan ole toistaiseksi keksitty. Niinpä yleisesti oletetaan, ettei Eeva voi lukea viestiä, jos N on tarpeeksi suuri.

Peter Shor osoitti 1993 että kvanttitietokone voisi periaatteessa suorittaa tekijöihinjaon polynomisessa ajassa. Jos kvanttitietokoneista tulee käyttökelpoisia, Shorin algoritmi tekee RSA:sta vanhentunutta teknologiaa.

Kirjallisuutta

Singh, Simon 1999. Koodikirja : salakirjoituksen historia muinaisesta Egyptistä kvanttikryptografiaan. Helsinki: Tammi

Aiheesta muualla

Lähteet

  1. Epäsymmetrinen salaus Viestintävirasto. Viitattu 14.6.2011.