RSA-salauslaskuri – julkisen avaimen salaus vaihe vaiheelta
RSA-salauslaskuri havainnollistaa, miten julkisen avaimen salaus toimii. Syötä kaksi alkulukua ja julkinen eksponentti, niin laskuri muodostaa avaimet, laskee yksityisen eksponentin sekä salaa ja purkaa viestin. Laskuri käyttää pieniä lukuja opetustarkoituksessa, jotta jokainen vaihe näkyy selvästi. Kyseessä on oppimistyökalu, ei oikeaan tietoturvaan tarkoitettu salain.
RSA:n idea
RSA on epäsymmetrinen salausmenetelmä: salaamiseen ja purkamiseen käytetään eri avaimia. Julkista avainta voi jakaa vapaasti, ja sillä kuka tahansa voi salata viestin. Vain yksityisen avaimen haltija voi purkaa viestin. Menetelmän turvallisuus perustuu siihen, että suuren luvun jakaminen alkutekijöihinsä on laskennallisesti erittäin vaikeaa.
Avainten muodostus
Avaimet rakennetaan kahdesta alkuluvusta p ja q seuraavasti:
n = p · q
φ(n) = (p − 1)(q − 1)
Julkinen eksponentti e valitaan niin, että se on jaoton φ(n):n kanssa eli syt(e, φ(n)) = 1. Yksityinen eksponentti d on e:n käänteisluku modulo φ(n):
d = e⁻¹ mod φ(n), eli e · d mod φ(n) = 1
Julkinen avain on pari (e, n) ja yksityinen avain pari (d, n).
Salaus ja purku
Viesti esitetään kokonaislukuna m, jonka on oltava pienempi kuin n. Salaus ja purku ovat molemmat modulaarisia potensseja:
salaus: c = mᵉ mod n
purku: m = cᵈ mod n
Koska e ja d ovat toistensa käänteislukuja modulo φ(n), purku palauttaa aina alkuperäisen viestin.
Vaiheittainen esimerkki
Otetaan p = 61 ja q = 53.
- Moduli: n = 61 · 53 = 3233.
- Totientti: φ(n) = 60 · 52 = 3120.
- Valitaan e = 17 (jaoton 3120:n kanssa). Käänteisluku on d = 2753, sillä 17 · 2753 mod 3120 = 1.
- Salataan viesti m = 65: c = 65¹⁷ mod 3233 = 2790.
- Puretaan: 2790²⁷⁵³ mod 3233 = 65 – alkuperäinen viesti palautuu.
Eulerin lause RSA:n takana
RSA:n toimivuus seuraa Eulerin lauseesta: jos syt(m, n) = 1, niin m^φ(n) mod n = 1. Koska e · d = 1 + k·φ(n) jollakin kokonaisluvulla k, saadaan m^(e·d) = m · (m^φ(n))^k ≡ m (mod n). Tämä takaa, että salaus ja purku ovat toistensa käänteisoperaatioita.
Turvallisuus ja rajoitukset
- Avainkoko: oikeassa käytössä alkuluvut ovat satoja numeroita pitkiä, jolloin n:n tekijöihinjako on käytännössä mahdotonta.
- Täyte (padding): oikea RSA muotoilee viestin standardin mukaisesti ennen salausta; pelkkä mᵉ mod n ei ole turvallinen sellaisenaan.
- Vain opetukseen: pienillä luvuilla salaus murtuu hetkessä, joten tätä laskuria ei pidä käyttää oikeiden tietojen suojaamiseen.