Rabinin salausjärjestelmä on julkisen avaimen salausjärjestelmä, jonka turvallisuuden takaa vaikeus löytää neliöjuuria jäännösrenkaasta modulo yhdistelmälukua . Järjestelmän turvallisuus, kuten RSA -menetelmän turvallisuus , johtuu suurten lukujen huomioon ottamista vaikeudesta. Salatun viestin salaus voidaan purkaa neljällä tavalla. Järjestelmän haittana on tarve valita oikea viesti neljästä mahdollisesta.
Tammikuussa 1979 Michael O. Rabin julkaisi kuvauksen järjestelmästään. On todistettu, että selkeän tekstin palauttaminen salatekstistä on yhtä vaikeaa kuin suurten lukujen laskeminen huomioon . Rabinin järjestelmästä tuli ensimmäinen epäsymmetrinen salausjärjestelmä, jolle tällainen todistus suoritettiin. Palautuksen monimutkaisuus liittyy vaikeuteen erottaa neliöjuuren modulo yhdistelmäluku N = p · q . Tekijöintitehtävä ja neliöjuuriongelma ovat ekvivalentteja, eli:
Rabin-järjestelmä, kuten mikä tahansa epäsymmetrinen salausjärjestelmä , käyttää julkista ja yksityistä avainta. Julkista avainta käytetään viestien salaamiseen ja se voidaan luovuttaa yleisölle. Yksityistä avainta tarvitaan salauksen purkamiseen, ja sen pitäisi olla vain salattujen viestien vastaanottajien tiedossa.
Avainten luontiprosessi on seuraava:
Esimerkki. Olkoon p = 7 ja q = 11 . Silloin n = p · q = 7 · 11 = 77 . Luku n = 77 on julkinen avain ja luvut p = 7 ja q = 11 ovat yksityinen avain. Vastaanottaja kertoo lähettäjille numeron 77. Lähettäjät salaavat viestin numerolla 77 ja lähettävät sen vastaanottajalle. Vastaanottaja purkaa viestin salauksen numeroilla 7 ja 11. Annetut avaimet ovat huonoja käytännön käyttöön, koska numero 77 hajoaa helposti alkutekijöiksi (7 ja 11).
Alkuperäinen viesti m (teksti) salataan julkisella avaimella - numerolla n seuraavan kaavan mukaan:
c = m² mod n .Modulokertoimen käytöstä johtuen Rabin-järjestelmän salausnopeus on suurempi kuin RSA -menetelmän salausnopeus , vaikka jälkimmäisessä tapauksessa valitaan pieni eksponenttiarvo.
Esimerkki (jatkuu). Olkoon lähdeteksti m = 20 . Tällöin salateksti olisi: c = m² mod n = 20² mod 77 = 400 mod 77 = 15 .
Viestin salauksen purkamiseen tarvitset yksityisen avaimen - numerot p ja q . Salauksen purkuprosessi on seuraava:
Esimerkki (loppu). Dekoodauksen tuloksena saamme: . Näemme, että yksi juurista on alkuperäinen teksti m .
Tekstin purkaminen johtaa oikean tekstin lisäksi kolmeen väärään tulokseen. Tämä on Rabinin salausjärjestelmän suurin haitta ja yksi niistä tekijöistä, jotka estivät sitä löytämästä laajaa käytännön käyttöä.
Jos lähdeteksti on tekstiviesti, oikean tekstin määrittäminen ei ole vaikeaa. Kuitenkin, jos viesti on satunnaisten bittien virta (esimerkiksi avainten tai digitaalisen allekirjoituksen luomiseksi ), oikean tekstin määrittämisestä tulee todellinen ongelma. Yksi tapa ratkaista tämä ongelma on lisätä viestiin tunnettu otsikko tai jonkinlainen nimike ennen salausta.
Rabin-algoritmi on samanlainen kuin RSA-koodaus, mutta sen sijaan, että viesti nostetaan tehoon e , salaus käyttää sanomalohkon neliöintitoimintoa, mikä vaikuttaa suotuisasti algoritmin nopeuteen tinkimättä salauksen vahvuudesta.
Dekoodaukseen sovelletaan kiinalaista jäännöslausetta sekä kahta modulo- eksponentiota. Tässä tehokkuus on verrattavissa RSA:han.
Halutun tekstin valitseminen neljästä lisää laskentakustannuksia. Ja tämä varmisti, että Rabinin salausjärjestelmä ei saanut laajaa käytännön käyttöä.
Rabinin salausjärjestelmän suuri etu on se, että satunnainen teksti voidaan palauttaa kokonaan salatekstistä vain, jos salauksen purkaja pystyy ottamaan tehokkaasti huomioon julkisen avaimen n.
Rabinin salausjärjestelmä on todistetusti vastustuskykyinen kaikki tai ei mitään -hyökkäykselle, joka perustuu valittuun salakirjoitushyökkäykseen, jos ja vain, jos kokonaisluvun sisällyttäminen alkutekijöihin on vaikeasti ratkaistavissa.
Kaikki tai ei mitään -suojaus tarkoittaa, että tietyllä algoritmilla salattua tekstiä hyökkääjän on palautettava lohko alkuperäisestä tekstistä, jonka koon yleensä määrää salausjärjestelmän suojausparametri. Alkuperäinen ja salateksti huomioon ottaen hyökkääjän on palautettava koko yksityisen avaimen lohko . Tässä tapauksessa hyökkääjä joko saavuttaa täydellisen menestyksen tai ei saa mitään. Sana "ei mitään" tarkoittaa, että hyökkääjällä ei ole salaisia tietoja ennen epäonnistunutta hyökkäystä tai sen jälkeen.
Rabinin salausjärjestelmä on täysin puolustuskyvytön valittuun salatekstiin perustuvia hyökkäyksiä vastaan . Pääsääntöisesti hyökkääjä käyttää kaikkia mahdollisuuksiaan. Hän ottaa yhteyttä hyökkäyksen kohteena olevaan käyttäjään, lähettää hänelle salatekstin myöhempää salauksen purkamista varten ja vaatii alkuperäisen tekstin palauttamista.
Esimerkiksi redundanssin lisääminen, kuten viimeisten 64 bitin toistaminen, voi tehdä juurista ainutlaatuisen. Salauksenpurkualgoritmi tässä tapauksessa tuottaa yhden juuren, jonka hyökkääjä jo tietää.
Prosessi on lisäksi haavoittuvainen, koska koodauksessa käytetään vain neliömäisiä jäännöksiä. Esimerkissä, jossa n = 77, käytetään vain 23:ta 76 mahdollisesta tilasta.