RSA-salauksen ymmärtäminen: miten se toimii ja sen rajoitukset
RSA (Rivest-Shamir-Adleman) on laajalti käytetty julkisen avaimen salausalgoritmi, joka perustuu suurten alkulukujen laskemisen vaikeuteen. Ron Rivest, Adi Shamir ja Leonard Adleman kuvasivat sen ensimmäisen kerran vuonna 1978. RSA:n perusajatuksena on käyttää kahta suurta alkulukua, toista salaukseen ja toista salauksen purkamiseen. Salauksen alkuluku on julkisesti saatavilla, kun taas salauksen alkuluku pidetään yksityisenä. Viestin salaamiseksi sanoma kerrotaan salauksen alkuluvulla ja sitten tulos moduloidaan salauksen purkamisen alkuluvulla. Tämä tuottaa salatekstin, jonka voi purkaa vain joku, jolla on vastaava salauksen alkuluku.
RSA:ta käytetään laajalti suojatuissa viestintäprotokollissa, kuten SSL/TLS, PGP ja SSH. Sitä käytetään myös monissa muissa sovelluksissa, kuten digitaalisissa allekirjoituksissa ja suojatuissa äänestysjärjestelmissä.
Yksi syy, miksi RSA on niin laajalti käytössä, on se, että sitä pidetään erittäin turvallisena. Itse asiassa sitä on testattu laajasti vuosien varrella, eikä kukaan ole vielä löytänyt tapaa ottaa tehokkaasti huomioon suuria RSA-avaimia. Tämä tarkoittaa, että RSA:ta pidetään "yksisuuntaisena" toimintona siinä mielessä, että tietojen salaaminen RSA:n avulla on helppoa, mutta tietojen salauksen purkaminen ilman vastaavaa salauksenpurkuavainta on erittäin vaikeaa.
RSA:lla on kuitenkin joitakin rajoituksia. Se voi esimerkiksi olla suhteellisen hidas muihin salausalgoritmeihin verrattuna ja vaatii huomattavan määrän muistia suurten avaintoimintojen suorittamiseen. Lisäksi RSA on alttiina tietyntyyppisille hyökkäyksille, kuten sivukanavahyökkäyksille ja kvanttihyökkäyksille. Tämän seurauksena monet asiantuntijat suosittelevat muiden salausalgoritmien käyttöä tietyissä tilanteissa, kuten elliptisen käyrän salakirjoitusta tai hilapohjaista salausta.