Simo K. Kivelä, 26.1.2005

RSA-salakirjoitus

Tämän dokumentin tarkoituksena on antaa lukijalle mahdollisuus kokeilla RSA-salakirjoitusta syöttämällä itse salausavain ja vastaava purkuavain. Nämä on siis ensin itse laskettava.

Avaimet syötetään alla olevalla lomakkeella. Tämän jälkeen voidaan valita suoritettavaksi jotkin seuraavista operaatioista: 1) avainten yhteensopivuuden tarkistus (voi olla hidasta, jos avainten generoinnissa on käytetty isoja alkulukuja), 2) annetun selväkielisen tekstin salaus, 3) annetun salatun tekstin purku, 4) annetun selväkielisen tekstin salaus ja salauksen purku heti perään.

Avaimet

Salausavain:
e =       n1 =

Purkuavain:
d =       n2 =

Salattava selväkielinen teksti

Salattava teksti kirjoitetaan pienin kirjaimin, ilman välilyöntejä, numeroita tai muita erikoismerkkejä. Muuttuja m kertoo, miten pitkiin merkkijaksoihin teksti jaetaan. Salausalgoritmi edellyttää, että salattava teksti ryhmitettäessä jakautuu jaksoihin tasan, ts. viimeinenkin ryhmä on täysi jakso. Jos näin ei ole, tekstiä jatketaan liittämällä sen loppuun tarvittava määrä merkkejä tekstin alusta.

m =

Purettava salakirjoitettu teksti

Salattu teksti koostuu numeroista. Näiden käsittelyssä käytetään RSA-algoritmista määräytyvää jakoa yhtä pitkiin jaksoihin ja salatun tekstin täytyy jakautua jaksoihin tasan. Jos näin ei ole, tekstin loppuun lisätään automaattisesti tarvittava määrä nollia.

Käynnistys

Valitse toiminnot:
avainten tarkistus
tekstin salaus
tekstin avaus
salaus ja saman tekstin avaus
       

Harjoitustehtäviä

1) Tutki, miten ryhmityksen jaksonpituuden kasvattaminen vaikuttaa salaus- ja purkualgoritmien toimintaan. Tutki myös tapausta n = 15, e = 11, m = 1. Selitä saamasi tulokset.

2) Kokeile, miten algoritmi toimii tapauksessa, missä avaimet ovat virheelliset. Mitkä ehdot avainlukujen tulee täyttää, jotta ne olisivat virheettömät?

Linkkejä

RSA-salakirjoitus, Mathematica-muistikirja pdf-muodossa
RSA-salakirjoitus, Mathematica-muistikirja
RSA-algoritmin pätevyyden todistus


MatTa-projekti webMathematica