Nyt sitten edellä olleiden työkalujen esittelyn jälkeen itse salakirjoittamiseen ja sen purkamiseen.
A. Julkisen salakirjoitusavaimen muodostaminen
A1. Valitse kaksi suurta alkulukua p ja q
A2. Laske niiden tulo m = pq
A3. Laske Eulerin funktion arvo b = &phi(m)=(p-1)(q-1)
A4. Valitse jokin kokonaisluku a &ge 2, jolla ei ole yhteistä tekijää luvun b kanssa.
Luvut m ja a muodostavat sinulle lähetettävän viestin salausavaimen. Ne voidaan julkistaa vaikkapa lehdessä tai internetissä. Huomattavaa on, että julkistetun luvun m perusteella ei voida saada selville lukua b muutoin kuin löytämällä m:n tekijät p ja q. Tämä on taas ylivoimainen tehtävä tehokkaimmillekin tietokoneille jos p ja q ovat kyllin suuria. (Kts. teksti 27. elokuuta alkuluvuista)
B. henkilökohtaisen purkuavaimen muodostaminen
B1. Määritä Eukleideen algoritmilla yhtälölle ax - by = 1 jokin ratkaisu x = t ja y = u. (Kts. kirjoitukset 1. ja 10. syyskuuta)
- ratkaisu on olemassa, koska syt(a,b) = 1
- ratkaisu x = t toteuttaa yhtälön at = 1 bu = 1 + u&phi (m)
Luku t muodostaa purkuavaimen, jota ei anneta muilla vaan säilytetään tarkasti. Tämän purkuavaimen selvillesaaminen edellyttää yhtälön ax - by = 1 ratkaisemista, mikä taas edellyttää luvun b tuntemista, eikä tämä siis onnistu tietokoneellakaan, jos alun alkuluvut on valittu suuriksi.
C. Viestin salaaminen ja lähettäminen
C1. Lähettäjä kirjoittaa sanomansa luvuksi s, missä 0 &le s < m
C2. Lähettäjä kryptaa sanomansa s luvuksi
- tämä onnistuu, koska luvut a ja m ovat julkisia
C3. Lähettäjä lähettää sinulle luvun z.
D. Vastaanotetun sanoman purkaminen
D1. Saatuasi viestin z laske potenssi
käyttämällä henkilökohtaista purkuavaintasi t. Saat tulokseksi alkuperäisen sanoman s. Miksi? Siksi, että
ja Eulerin lauseen perusteella on
, joten
Seuraavalla kerralla vielä konkreettinen esimerkki yllä olevasta, tosin hyvin pienillä luvuilla, koska niilläkin siitä tulee käsin laskien aika työläs.
3 vuotta sitten
Ei kommentteja:
Lähetä kommentti