n (n 1) avainten vaihtoa. Miljoonalle käyttäjälle avainten vaihtoja tarvittaisiin

Samankaltaiset tiedostot
on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään

d Z + 17 Viimeksi muutettu

Nimittäin, koska s k x a r mod (p 1), saadaan Fermat n pienen lauseen avulla

Lukuteorian kertausta

7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

ja jäännösluokkien joukkoa

Shorin algoritmin matematiikkaa Edvard Fagerholm

rm + sn = d. Siispä Proposition 9.5(4) nojalla e d.

R : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on

Fermat n pieni lause. Heikki Pitkänen. Matematiikan kandidaatintutkielma

a ord 13 (a)

Esimerkki A1. Jaetaan ryhmä G = Z 17 H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4 4 = 16 = 1}.

802354A Algebran perusteet Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä

a b 1 c b n c n

Eräitä RSA-salauksen haavoittuvuuksia

LUKUTEORIA A. Harjoitustehtäviä, kevät (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että

R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,

MS-A0402 Diskreetin matematiikan perusteet

802354A Algebran perusteet Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä

802354A Lukuteoria ja ryhmät Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä, Antti Torvikoski, Topi Törmä

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

Algebra I, harjoitus 5,

ALKULUKUJA JA MELKEIN ALKULUKUJA

Salakirjoitusmenetelmiä

RSA-salausmenetelmä LuK-tutkielma Tapani Sipola Op. nro Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2017

pdfmark=/pages, Raw=/Rotate 90 1 LUKUTEORIAA JA MUITA TYÖKALUJA SALAUKSEEN Lukujoukot Sekalaisia merkintöjä...

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Liisa Ilonen. Primitiiviset juuret

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jarmo Niemelä. Primitiivisistä juurista ja. alkuluokkaryhmistä

6. Tekijäryhmät ja aliryhmät

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

2 j =

Liite 2. Ryhmien ja kuntien perusteet

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdoituksia harjoituksiin 8 (7 sivua)

2017 = = = = = = 26 1

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

802355A Algebralliset rakenteet Luentorunko Syksy Markku Niemenmaa Kari Myllylä Topi Törmä Marko Leinonen

Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta

koska 2 toteuttaa rationaalikertoimisen yhtälön x 2 2 = 0. Laajennuskunnan

Primitiiviset juuret: teoriaa ja sovelluksia

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi

a 2 ba = a a + ( b) a = (a + ( b))a = (a b)a, joten yhtälö pätee mielivaltaiselle renkaalle.

kaikille a R. 1 (R, +) on kommutatiivinen ryhmä, 2 a(b + c) = ab + ac ja (b + c)a = ba + ca kaikilla a, b, c R, ja

Esko Turunen MAT Algebra1(s)

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 9 (6 sivua) OT

4. Eulerin ja Fermat'n lauseet

Äärellisesti generoitujen Abelin ryhmien peruslause

Approbatur 3, demo 5, ratkaisut

Transversaalit ja hajoamisaliryhmät

[a] ={b 2 A : a b}. Ekvivalenssiluokkien joukko

1 Lukujen jaollisuudesta

LUKUTEORIA johdantoa

1 Algebralliset perusteet

4. Ryhmien sisäinen rakenne

(2) C on joukko, jonka alkioita kutsutaan sala(kirjoite)tuiksi viesteiksi (engl. ciphertext);

HN = {hn h H, n N} on G:n aliryhmä.

811120P Diskreetit rakenteet

Esko Turunen Luku 3. Ryhmät

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Jarkko Peltomäki. Aliryhmän sentralisaattori ja normalisaattori

LUKUTEORIAN ALKEET HELI TUOMINEN

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

800333A Algebra I Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä

ei ole muita välikuntia.

SALAUSMENETELMÄT A, 4 op

H = : a, b C M. joten jokainen A H {0} on kääntyvä matriisi. Itse asiassa kaikki nollasta poikkeavat alkiot ovat yksiköitä, koska. a b.

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)

Matematiikan mestariluokka, syksy

(d) 29 4 (mod 7) (e) ( ) 49 (mod 10) (f) (mod 9)

MAT Algebra I (s) periodilla IV 2012 Esko Turunen

k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0

802328A LUKUTEORIAN PERUSTEET Merkintöjä ja Algebrallisia rakenteita

Algebran ja lukuteorian harjoitustehtäviä. 1. Tutki, ovatko seuraavat relaatiot ekvivalenssirelaatioita joukon N kaikkien osajoukkojen

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jussi Tervaniemi. Primitiiviset juuret

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III

RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita

Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät sivua Heikki Koivupalo ja Rami Luisto

Koodausteoria, Kesä 2014

Ryhmäteoreettinen näkökulma Rubikin kuutioon Harjoitus 6, ratkaisuehdotus (5 sivua)

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

Algebra II. Syksy 2004 Pentti Haukkanen

ALKULUVUISTA (mod 6)

Multiplikatiivisista funktioista

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.

4 Abelin ryhmät. 4.1 Suorat tulot ja summat

Dihedraalinen ryhmä Pro gradu Elisa Sonntag Matemaattisten tieteiden laitos Oulun yliopisto 2013

Renkaat ja modulit. Tässä osassa käsiteltävät renkaat ovat vaihdannaisia, ellei toisin mainita. 6. Ideaalit

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

Multiplikatiiviset funktiot

Todistusmenetelmiä Miksi pitää todistaa?

Jäännösluokat. Alkupala Aiemmin on tullut sana jäännösluokka vastaan. Tarkastellaan

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

Luonnollisten lukujen ja kokonaislukujen määritteleminen

renkaissa. 0 R x + x =(0 R +1 R )x =1 R x = x

Transkriptio:

3. RSA Salausjärjestelmien käytön perusongelma oli pitkään seuraava: Kun Liisa ja Pentti haluavat vaihtaa salakirjoitettuja viestejä keskenään ja jos heidän käyttämänsä salausmenetelmä on symmetrinen, heidän pitää ensin sopia yhteisestä salaus-/avausavaimesta. Avainten vaihtoon tarvitaan esimerkiksi kuriiri. Internet-aikana tämä olisi ongelmallista. Jos verkossa on n viestin salausta hyödyntävää käyttäjää, tarvitaan 1 n (n 1) avainten vaihtoa. Miljoonalle käyttäjälle avainten vaihtoja tarvittaisiin 2 noin puoli biljoonaa! Yksi vaihtoehto ongelman ratkaisemiseen olisi luotettava avainpankki. Mutta avainpankin murtaminen olisi erittäin vahingollista. Julkisavainsalauksessa (epäsymmetrisessä salauksessa) käytetään menetelmiä, joissa avainten vaihto voidaan tehdä julkisesti. Jokaisella käyttäjällä on avainpari, julkinen avain (tai julkisavain) ja salainen avain. Julkinen avain voidaan nimensä mukaan julkaista, ja sen avulla avaimen omistajalle voidaan lähettää salakirjoitettuja viestejä. Salainen avain pitää nimensä mukaan pitää turvallisesti tallessa. Sen haltija voi avata hänelle vastaavalla julkisavaimella salatut viestit. Miten tällaiset menetelmät toimivat? Tarkastellaan aluksi tiettävästi vanhinta, RSA-menetelmää, joka on saanut nimensä löytäjiltään: Ron Rivest, Adi Shamir ja Len Adleman, jotka oivalsivat valjastaa Fermat n pienen lauseen salausmenetelmän käyttöön. Menetelmä julkaistiin vuonna 1978. 3.1. Fermat n ja Eulerin lause. Lause 3.1 (Fermat n pieni lause). Olkoot p alkuluku ja a Z, jolle syt(a, p) = 1. Tällöin a p 1 1 mod p. Lauseesta kannattaa huomata seuraava seuraus (todistus HT): a p a mod p kaikille a Z. Tämä lause on peräisin Pierre de Fermat lta vuodelta 1640 (tarkemmin lokakuun 18. päivälle päivätystä kirjeestä Bernard Frénicle de Bessylle). Fermat oli lakimies, mutta myös amatöörimatemaatikko, joka ei löytämiään tuloksia juuri todistanut [13, I.6], kirjoittelipa niistä tunnetuille matemaatikoille, jotka sittemmin ovat todistaneet kaikki Fermat lta auki jääneet tulokset. Yllä esitetty alkuperäinen Fermat n lause ei riitä RSA-menetelmään, vaan siihen tarvitaan Leonhard Eulerin lauseelle esittämä (ja todistama) yleistys vuodelta 1760. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan osajoukko Z n := {x Z n x on kääntyvä} on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään ϕ(n). Näin määriteltyä funktiota ϕ kutsutaan Eulerin ϕ-funktioksi (englanninkielessä myös Euler s totient). Kun palautetaan mieleen kääntyvyyden karakterisointi suurimman yhteisen tekijän avulla, saadaan myös ϕ(n) = joukon {a {1, 2,..., n 1} syt(a, n) = 1} alkioiden lukumäärä. 14 Viimeksi muutettu 10.10.2012. 22

Otetaan käyttöön pari yleistä nimitystä. Olkoon G äärellinen ryhmä (siis ryhmä, jossa on äärellisen monta alkiota; ryhmän laskutoimitus merkittäköön tässä kertolaskuna ja neutraalialkio e). Ryhmän G kertaluku on sen alkioiden lukumäärä. Ryhmän G alkion g kertaluku on joukon g := {g k k Z} alkioiden lukumäärä. Joukko g on itse asiassa helppo todeta ryhmäksi (laskutoimituksena alkuperäinen kertolasku). Tätä varten pitää lähinnä huomata, että ryhmän G alkion g potensseille g k on voimassa g k g l = g k+l. Muotoa g = {g k k Z} olevaa ryhmän osajoukkoa kutsutaan alkion g virittämäksi sykliseksi aliryhmäksi. Yleisemmin ryhmän G osajoukko H on aliryhmä, jos se sisältää neutraalialkion e, ja jos kaikille g, h H on voimassa g h 1 H. Yhtäpitäväksi ehdoksi voidaan osoittaa: e H ja kaikille g, h H on voimassa g h H ja h 1 H. Kun tarkastellaan äärellisen ryhmän G alkion g virittämää aliryhmää g = {g k k Z}, on selvää, että alkiot g k eivät voi olla keskenään erisuuria, vaan on olemassa k, l Z, siten, että g k = g l ja k l. Oletetaan, että k > l. Koska alkiolla g l on käänteisalkio g l, saadaan g k l = g k g l = e. Siis jokaiselle alkiolla g on olemassa k Z siten, että g k = e ja k > 0. Olkoon nyt d pienin positiivinen kokonaisluku, jolle g d = e. Osoitetaan, että alkion g kertaluku on d, tarkemmin, että g = {g k k {1, 2,..., d}}. Riittää osoittaa, että jokainen h g on esitettävissä muodossa h = g k, missä k {1, 2,..., d}. Olkoon h = g k, missä k Z. Jakoyhtälön nojalla on olemassa q, r Z siten, että k = q d + r, missä 0 r < d. Koska g d = e, saadaan g k = g q d g r = (g d ) q g r = e q g r = g r. Jos r > 0, on g k = g r vaadittua muotoa. Jos taas r = 0, on g k = g 0 = e = g d, joten g k voidaan nytkin esittää halutussa muodossa. Todetaan lisäksi, että alkiot g k, k {1, 2,..., d}, ovat kaikki keskenään erisuuria. Nimittäin, jos olisi g k = g l joillekin k, l {1, 2,..., d}, joille k l, saataisiin g k l = e. Jos k > l, on 0 < k l < d, joten g k l = e eksponentille, joka on aidosti pienempi kuin d, mikä on vastoin luvun d valintaa. Vastaavasti, jos k < l, olisi g l k = e ja 0 < l k < d. Aliryhmän g = {g k k Z} lisänimi syklinen selittyy edellisellä ominaisuudella: kuvaus Z, k g k, on d-jaksoinen. Äärellisen ryhmän alkion kertaluvun käyttäytymistä rajaa seuraava: Lause 3.2. Olkoot G äärellinen ryhmä ja g G. a) Tällöin alkion g kertaluku jakaa ryhmän G kertaluvun. b) Jos ryhmän G kertaluku on D, on g D = e kaikille g G. Todistus. a) Olkoot H := g ja x H := {x h h H}, kun x G. Osoitetaan aluksi, että jos x G ja y G, niin joko (x H) (y H) = tai x H = y H. Tätä varten oletetaan, että (x H) (y H). Olkoon g (x H) (y H). Tällöin on olemassa h H ja h H siten, että g = x h = y h. Osoitetaan, että x H y H. Tätä varten olkoon z x H. Olkoon h H siten, että z = x h. Pitäisi osoittaa, että z voidaan esittää muodossa y h, missä h H. Ehdosta x h = y h saadaan x = y h h 1, joten z = x h = y h h 1 h. Koska H on ryhmän G aliryhmä, on h h 1 h H, joten alkiolla z on vaadittu esitys. 23

Todetaan seuraavaksi, että jokaisessa joukossa x H, x G, on yhtä monta alkiota kuin joukossa H, jossa niitä on alkion g kertaluvun osoittama määrä. Tämä seuraa siitä, että kuvaus f x : H x H, f x (h) := x h, on bijektio; sen käänteiskuvaus on (f x ) 1 = f x 1. Joukko G voidaan esittää yhdisteenä G = x G x H (huomaa: x x H, koska e H ja x e = x). Olkoon N keskenään eri joukkojen x H, x G, lukumäärä (todistuksen alun nojalla kaksi joukkoa x H ovat joko samat tai pistevieraat). Valitaan nyt jokaisesta joukosta x H, x G, yksi edustaja x j siten, että vastaavat joukot x j H, 1 j N, ovat pistevieraita. Tällöin G = N j=1 x j H on pistevieraiden joukkojen yhdiste, joten joukon G alkioiden lukumäärä = N joukon x j H alkioiden lukumäärä, j=1 t.s. ryhmän G kertaluku = N joukon H alkioiden lukumäärä. Koska joukon H alkioiden lukumäärä on alkion g kertaluku, väite seuraa tästä. b) Jos alkion g kertaluku on d, on a-kohdan nojalla d D, t.s. D = d k jollekin k Z +. Tällöin g D = (g d ) k = e k = e. Huomautus 3.3. Edellisellä lauseella ja sen todistuksella on seuraava luonnollisemman oloinen yleistys, joka tunnetaan Lagrangen lauseena: Olkoot G äärellinen ryhmä ja H sen aliryhmä. Tällöin aliryhmän H kertaluku jakaa ryhmän G kertaluvun. Tämän osoittamiseksi määritellään joukkoon G relaatio asettamalla x y, jos y 1 x H. Aliryhmältä vaadittujen ominaisuuksien nojalla on helppo todeta, että relaatio on ekvivalenssirelaatio (todistus jätetään lukijan tehtäväksi). Alkion x ekvivalenssiluokka on joukko [x] = {y G y x} = {y G x 1 y H} = {y G y = x h jollekin h H} =: x H Tässä määriteltyä joukkoa x H = {x h h H} kutsutaan alkion x määräämäksi vasemmaksi sivuluokaksi. Ekvivalenssirelaation yleisten ominaisuuksien nojalla sivuluokat x H, x G, muodostavat joukon G osituksen, G = x G x H, missä kahdelle eri alkiolle x G ja x G sivuluokat x H ja x H ovat joko samat tai pistevieraat. Lauseen todistuksen mukaan kuvaus f x : H x H, f x (h) := x h, on bijektio, joten kaikissa sivuluokissa on yhtä monta alkiota kuin aliryhmässä H. Päättely päätetään kuten lauseen todistuksessa. Lause 3.4. Olkoot G äärellinen ryhmä, g G ja k Z. Tällöin g k = e, jos ja vain jos alkion g kertaluku jakaa luvun k. Todistus. Olkoon alkion g kertaluku d. Jos d k, on olemassa l Z siten, että k = d l. Tällöin g k = (g d ) l = e l = e. Oletetaan kääntäen, että g k = e. Jakoyhtälön nojalla on olemassa q, r Z siten, että k = q d + r ja 0 r < d. Tällöin e = g k = (g d ) q g r = e q g r = g r. Koska g r = e ja 0 r < d, on alkion g kertaluvun määritelmän nojalla oltava r = 0. Siis k = q d, joten d k. 24

25 Seuraus 3.5. Olkoot G äärellinen ryhmä, g G ja l, m Z. Tällöin g l = g m, jos ja vain jos l m mod d, missä d on alkion g kertaluku. Todistus. Sovelletaan edellistä lausetta lukuun k := l m. Lause 3.6. Olkoot G äärellinen ryhmä, g G ja k Z. Tällöin alkion g k kertaluku on d/ syt(d, k), missä d on alkion g kertaluku. Todistus. Olkoon alkion g k kertaluku c. Merkitään d := d/ syt(d, k) ja k := k/ syt(d, k). Ensinnäkin (huomaa: k/ syt(d, k) Z) (g k ) d/ syt(d,k) = (g d ) k/ syt(d,k) = e k/ syt(d,k) = e. Lauseen 3.4 nojalla alkion g k kertaluku c jakaa luvun d = d/ syt(d, k). Jos taas (g k ) l = e, on g k l = e, joten lauseen 3.4 nojalla alkion g kertaluku d jakaa luvun k l. Tällöin d jakaa luvun k l. Koska syt(d, k ) = 1, jakaa d luvun l. Pienin positiivinen kokonaisluku l, jolle (g k ) l = e, on alkion g k kertaluku c. Siis d jakaa myös luvun c. Koska c jakaa luvun d ja d jakaa luvun c, on c = d. Lauseesta kannattaa tulevaa ajatellen huomata seuraava: Jos alkion g G kertaluku on d, niin myös alkion g k kertaluku on d, jos ja vain jos syt(d, k) = 1. Lisäksi, koska potenssit g k, 1 k d, ovat keskenään erisuuria, on ryhmässä G ainakin ϕ(d) alkiota, jonka kertaluku on d. Palataan jäännösluokkarenkaan Z n kääntyvien alkioiden muodostamaan multiplikatiiviseen ryhmään Z n. Tämän ryhmän kertaluku on ϕ(n). Lauseen 3.2 b-kohdasta saadaan välittömästi Lause 3.7 (Fermat n ja Eulerin lause). Olkoot n Z, n 2, ja a Z, jolle syt(a, n) = 1. Tällöin a ϕ(n) 1 mod n. 3.2. RSA-salaus. Oletetaan, että Liisa haluaa lähettää Pentille salakirjoitetun viestin. Aluksi Pentin pitää luoda itselleen salainen avain ja julkisavain. Pentti valitsee satunnaisesti kaksi keskenään erisuurta 15 alkulukua p ja q, ja laskee n := p q. Seuraavaksi Pentti valitsee kokonaisluvun e, jolle 1 < e < ϕ(n) ja syt(e, ϕ(n)) = 1. Se, että jälkimmäinen jaottomuusehto toteutuu, tarkistetaan laajennetulla Eukleideen algoritmilla. Samalla Pentti saa lasketuksi luvun d, jolle 1 < d < ϕ(n) ja d e 1 mod ϕ(n). Pentin julkisavain on pari (n, e). Hänen salainen avaimensa on luku d (tai pari (n, d)). Luku n on RSA-moduli, e on salauseksponentti ja d avauseksponentti. 15 Ja myös suurta; jatkossa oletetaan melkein automaattisesti, että p ja q ovat parittomia. All primes are odd except 2 which is the oddest prime of all.

RSA-menetelmässä salattava, selväkielinen viesti oletetaan kokonaisluvuksi m, jolle 0 m < n. Salaus tapahtuu laskemalla viestistä m luku c, jolle 0 c < n ja (3.1) c m e mod n. RSA-salatun viestin avaamiseen Eulerin ϕ-funktiosta tarvitaan seuraava tieto: Kun n = p q on RSA-moduli, on ϕ(p q) = (p 1) (q 1). Nimittäin, lukuja a Z, joille 1 a < n ja p a, on q 1 kappaletta (nimittäin kaikki monikerrat j p, 1 j < q). Vastaavasti, lukuja a Z, joille 1 a < n ja q a, on p 1 kappaletta. Koska p ja q ovat keskenään jaottomia alkulukuja, muille luvuille on syt(a, n) = 1. Jäljelle jääviä on siis n 1 (q 1 + p 1) = (p 1) (q 1). RSA-menetelmä perustuu seuraavaan lauseeseen. Lause 3.8. Olkoot (n, e) RSA-salauksen julkisavain, d vastaava salainen avain ja c kaavalla (3.1) selväkielisestä viestistä m laskettu salattu viesti. Tällöin (3.2) c d m mod n. Todistus. Koska d e 1 mod ϕ(n), on olemassa kokonaisluku l siten, että Tällöin d e = 1 + l ϕ(n). c d (m e ) d = m 1+l ϕ(n) = m (m ϕ(n) ) l mod n. Jos p ei jaa lukua m eikä q jaa lukua m, on syt(m, n) = 1, joten Fermat n ja Eulerin lauseen 3.7 nojalla saadaan c d m (m ϕ(n) ) l m 1 l = m mod n. Joka tapauksessa Fermat n pienen lauseen 3.1 nojalla on (jos p m, ovat väitteen molemmat puolet kongruentteja nollan kanssa modulo p) Vastaavasti c d m (m p 1 ) (q 1) l m mod p. c d m (m q 1 ) (p 1) l m mod q. Koska p ja q ovat keskenään jaottomia alkulukuja, seuraa näistä kahdesta yhtälöstä 26 c d m mod n. 3.3. Toistettu neliöinti. RSA-menetelmän viestin m saalaamiseksi avaimella e laskettavassa potenssissa a e eksponentti e voi olla suurikin. Jos potenssi a e lasketaan potenssin määrittelevän rekursion a e := a a e 1, a 1 := a, avulla, tarvitaan e 1 kertolaskua. Laskemista voidaan nopeuttaa huomattavasti seuraavasti ([2, 4.3]). Yleisemmin olkoot R rengas ja a R. 1 Esitetään luku e Z + kaksikantaisena muodossa e = 2 k + d k 1 2 k 1 + + d 1 2 + d 0, missä d k 1,..., d 1, d 0 {0, 1}. 2 Asetetaan b k := a.

3 Kun j = k 1, k 2,..., 1, 0, asetetaan { b j := b 2 j+1 a, jos d j = 1, b j := b 2 j+1, muuten. Edellä lasketun jonon viimeinen alkio b 0 = a e (todistus jätetään lukijan tehtäväksi; tätä varten kannattaa osoittaa, että b j = a e/2j kaikille j = k, k 1,..., 0). Kun potenssi a e lasketaan tällä algoritmilla, tarvitaan k = log 2 e neliöintiä ja enintään yhtä monta kertolaskua (log 2 e on luvun n kaksikantainen logaritmi). Kaikenkaikkiaan neliöintien ja kertolaskujen lukumäärä on enintään 2 log 2 e. Esimerkiksi, jos e = 10 100, tarvittaisiin potenssin määrittelevän rekursion mukaisesti laskettaessa googolin verran kertolaskuja, mutta tässä esitetyllä toistetulla neliöinnillä päästään enintään 664 neliöinnillä ja kertolaskulla. Koska laskeminen tapahtuu varsinaisesti jäännösluokkarenkaassa Z n, pystytään laskemaan pienehköillä luvuilla; jos a = [m] n ja b j = [m j ] n, missä 0 m j < n, on b 2 j = [m 2 j] n, missä 0 m 2 j < n 2 ja b 2 j a = [rem(m 2 j, n) m] n, missä 0 rem(m 2 j, n) m < n 2. 3.4. Eulerin ϕ-funktion laskeminen. Edellä todettiin, että kun p ja q ovat keskenään erisuuria alkulukuja, on (3.3) ϕ(p q) = (p 1) (q 1). Vielä helpommin on todettavissa, että alkuluvulle p on ϕ(p) = p 1. Alkuperäinen Fermat n pieni lause 3.1 seuraa tästä (lukijaa kehotetaan tarkistamaan tämä huolellisesti). Osoitetaan, että kun p on alkuluku ja e Z +, on (3.4) ϕ(p e ) = p e p e 1. Tätä varten olkoon a Z, 0 a < p e. Esitetään luku a p-kantaisena muodossa a = a 0 + a 1 p + a 2 p 2 + + a e 1 p e 1, missä a j {0, 1,..., p 1}, 0 j e 1. Nyt syt(a, p e ) 1, jos ja vain jos p a. Tälle yhtäpitävää on, että a 0 = 0. Siis syt(a, p e ) = 1, jos ja vain jos a 0 0. Lukuja a 1 p + a 2 p 2 + + a e 1 p e 1 = (a 1 + a 2 p + + a e 1 p e 2 ) p missä a j {0, 1,..., p 1}, 1 j e 1, on p e 1 kappaletta (kaikki lukujen b Z, 0 b < p e 1, p-monikerrat), joten lukuja a Z, 0 a < p e, joille syt(a, p e ) = 1, on p e p e 1 = (p 1) p e 1 kappaletta. Eulerin ϕ-funktiolla on seuraavan lauseen mukainen ominaisuus, joka tunnetaan nimellä multiplikatiivisuus: Lause 3.9. Olkoot m 1,..., m n positiivisia kokonaislukuja, joille syt(m j, m k ) = 1, kun j k. Tällöin (3.5) ϕ(m 1 m n ) = ϕ(m 1 ) ϕ(m n ). Tämän lauseen todistus jätetään myöhempään ajankohtaan (kiinalaisen jäännöslauseen yhteyteen). 27

Seuraus 3.10. Olkoot p 1,..., p n keskenään erisuuria alkulukuja ja e 1,..., e n Z +. Tällöin n (3.6) ϕ(p e 1 1 p en n ) = (p 1 1) p e 1 1 1 (p n 1) p en 1 n = p e p 1 1 p en j 1 n. p j Todistus. Väite seuraa välittömästi kaavoista (3.4) ja (3.5). Aritmetiikan peruslauseen nojalla jokainen positiivinen kokonaisluku m voidaan esittää alkulukujen tulona muodossa m = p e 1 1 p en n. Tätä esitystä ei kuitenkaan pystytä määräämään laskennallisesti tehokkaasti. Edellä Eulerin ϕ-funktiolle saatu kaava perustuu juuri aritmetiikan peruslauseen mukaisen tuloesityksen käyttöön. Onko Eulerin ϕ-funktion arvojen laskeminen siis myös käytännössä mahdotonta? Jos oletetaan, että luku n on kahden keskenään erisuuren alkuluvun p ja q tulo, n = p q, niin kaavan (3.3) nojalla voidaan sanoa: jos tekijät p ja q voidaan määrätä laskennallisesti tehokkaasti, niin myös Eulerin ϕ-funktion arvo ϕ(n) saadaan helposti lasketuksi. Lukijalla jätetään osoitettavaksi, että myös käänteiselle väitteelle on perusteita: jos Eulerin ϕ-funktion arvo ϕ(n) saadaan laskettua laskennallisesti tehokkaasti, niin luvun n tekijät p ja q voidaan määrätä helposti. Siis luvun alkutekijöiden määrääminen ja Eulerin ϕ-funktion arvon laskeminen ovat yhtä vaikeita ongelmia. 3.5. Salainen avain. RSA-menetelmän pitäisi olla epäsymmetrinen salain siinä mielessä, että salaista avainta d ei saada selville julkisen avaimen (n, e) avulla. Edeltä käy ilmi, että jos luvun n tekijät p ja q saadaan selville, on myös helppo laskea ϕ(n) = (p 1)(q 1). Kun e ja ϕ(n) tunnetaan, laajennetun Eukleideen algorimilla voidaan määrätä luku d, jolle 1 < d < ϕ(n) ja d e 1 mod ϕ(n). Luvun alkutekijöiden määräämistä pidetään kuitenkin vaikeana ongelmana. Seuraavassa pyritään selvittämään, missä mielessä luvun n alkutekijöiden määrääminen ja salaisen avaimen d määrääminen ovat yhtä vaikeita ongelmia. Osoitetaan, että jos julkisen avaimen (n, e) lisäksi tunnetaan salainen avain d, niin luvun n alkutekijät p ja q saadaan selville helposti. Tätä varten oletetaan, että p ja q ovat parittomia (niidenhän pitäisi olla suuria alkulukuja). Olkoon s := max{t Z + 2 t jakaa luvun d e 1}. Koska p ja q ovat parittomia, on ϕ(n) = (p 1)(q 1) parillinen. Ehdon d e 1 mod ϕ(n) nojalla luku d e 1 on parillinen, siis muotoa d e 1 = 2 s k, missä luvuksi s valitaan suurin mahdollinen positiivinen kokonaisluku niin, että 2 s d e 1. Luku k on tällöin pariton. Lemma 3.11. Olkoon a Z + ja syt(a, n) = 1. Tällöin jäännösluokan [a k ] n kertaluku ryhmässä Z n on muotoa 2 j jollekin j {0, 1,..., s}. Todistus. Lauseen 3.8 nojalla a d e 1 1 mod n. Koska d e 1 = 2 s k, saadaan (a k ) 2s = a 2s k 1 mod n. Lauseen 3.4 nojalla alkion [a k ] n kertaluku jakaa luvun 2 s. Kertaluvun on siis oltava muotoa 2 j jollekin j {0, 1,..., s}. j=1 28

Jos jäännösluokan [a k ] n kertaluku ryhmässä Z n on 2 j, on [a k ] 2j n = [1] n (ja k.o. eksponentti on pienin positiivinen, jolle näin käy), t.s. (a k ) 2j 1 mod n. Koska p n, on tällöin myös (a k ) 2j 1 mod p, joten lauseen 3.4 nojalla jäännösluokan [a k ] p kertaluku ryhmässä Z p on 2 t, jollekin t j. Vastaavasti jäännösluokan [a k ] q kertaluku ryhmässä Z q on 2 t, jollekin t j. Lause 3.12. Olkoon a Z + ja syt(a, n) = 1. Oletetaan, että jäännösluokkien [a k ] p ja [a k ] q kertaluvut ovat keskenään erisuuret. Tällöin jollekin t {0, 1,..., s 1}. 1 < syt(a 2t k 1, n) < n Todistus. Olkoot jäännösluokkien [a k ] p ja [a k ] q kertaluvut 2 t ja 2 t, missä t j ja t j (ja j s; 2 j on jäännösluokan [a k ] n kertaluku). Oletetaan, että t < t. Tällöin [a k ] 2t p = [1] p, mutta [a k ] 2t q [1] q. Siis p (a k ) 2t 1, mutta q (a k ) 2t 1. Koska luvun n ainoat ei-triviaalit tekijät ovat p ja q, on syt(a 2t k 1, n) = p. Luvun n tekijöitä voidaan nyt etsiä seuraavalla menetelmällä (algoritmilla): (1) Valitaan satunnaisesti luku a {1, 2,..., n 1}. (2) Lasketaan g := syt(a, n). (3) Jos g = 1, niin lasketaan g := syt(a 2t k 1, n) arvoille t = s 1, s 2,... kunnes 1 < g < n tai t = 0. (4) Jos 1 < g < n, niin g = p tai g = q, jolloin haluttu luvun n tekijä on löydetty. Jos taas g = 1 tai g = n, on luvun a valinta epäonnistunut. Huomautus kohtiin (2) ja (3). Jos kohdassa (2) on g > 1, on g = p tai g = q, koska luvulle a {1, 2,..., n 1} on syt(a, n) {1, p, q}. Kun kohdassa (3) lasketaan g := syt(a 2t k 1, n), voidaan käyttää seuraavaa suurimman yhteisen tekijän ominaisuutta, jonka todistaminen jätetään lukijalle: syt(u, n) = syt(u j n, n) kaikille j Z. Tämä tarkoittaa erityisesti, että jos r on jäännösluokan [u] n pienin positiivinen edustaja, on syt(u, n) = syt(r, n). Luvun syt(a 2t k 1, n) laskemiseksi tämä tarkoittaa, että jäännösluokka [a k ] 2t n lasketaan toistetulla neliöinnillä renkaassa Z n, ja tuloksesta poimitaan jäännösluokan pienin positiivinen edustaja τ. Tällöin syt(a 2t k 1, n) = syt(τ 1, n). Tätä menetelmää pitäisi ajatella käytettäväksi myös lauseen 3.12 suurimman yhteisen tekijän laskemisessa. Jotta edellinen menetelmä olisi mielekäs, pitäisi luvun a valinta onnistua edes kohtuullisen usein. Edellisen lauseen 3.12 nojalla luvun a valinta voi epäonnistua vain, jos jäännösluokkien [a k ] p ja [a k ] q kertaluvut ovat yhtäsuuret. Osoitetaan, että luvulle a valinta osuu oikeaan todennäköisyydellä, joka on vähintään 1/2. Lemma 3.13. Lukuja a Z +, joille syt(a, n) = 1 ja jäännösluokkien [a k ] p ja [a k ] q kertaluvut ovat keskenään erisuuret, on ainakin (p 1)(q 1)/2 kappaletta. Tämän väitteen todistaminen jätetään myöhemmäksi (kunnes käytettävissä on kunnan primitiivinen alkio). Tämän lemman nojalla luvun a valinnan epäonnistumisen todennäköisyys on enintään (p 1)(q 1) 2 ϕ(n) = 1 2. 29

Kun edellistä algoritmia toistetaan r kertaa, on todennäköisyys sille, että jokaisella kerralla luvun a valinta epäonnistuu, enintään (1/2) r. Todennäköisyys sille, että r toiston jälkeen luvun a valinta on onnistunut, on tällöin vähintään 1 (1/2) r. Huomautus 3.14. Edellinen algoritmi antaa hyvän esimerkin kahdesta lukuteoriaan (ja salausjärjestelmien teoriaan) liittyvästä päättelystä. Ensinnäkin, kun tavalla tai toisella on löydetty luku a (tai a 2t k 1), voidaan luvun n alkutekijöitä etsiä Eukleideen algoritmin avulla: jos 1 < syt(a, n) < n, on luvun n alkutekijä löydetty (olettaen, että n on kahden keskenään erisuuren alkuluvun tulo). Toisekseen, luvun a etsiminen tapahtuu probabilistisesti eli hakuammunnalla, jolla voidaan varmistaa, että haetun kaltainen luku löydetään riittävän suurella todennäköisyydellä. Eukleideen algoritmi puolestaan on deterministinen: lähtöarvoista päästään haluttuun tulokseen riittävän monen askeleen päästä. 3.6. RSA lohkosalaimena. Tarkastellaan lyhyesti, miten RSA-salainta käytetäään lohkosalaintyyppisesti. Olkoon aakkostona Σ := Z N, missä N on annettu positiivinen kokonaisluku. Aakkoston merkit samaistetaan lukujen µ {0, 1,..., N 1} kanssa. Yleensä RSA-salaimessa käytetty n on huomattavasti suurempi kuin N. Olkoon k := log N n. Sanaa (m 1,..., m k ) Σ k vastaa N-kantainen luku 30 m = k m j N k j. j=1 Luvun k valinnan nojalla on 0 m (N 1) k N k j = N k 1 < n. j=1 Seuraavassa sanat (m 1,..., m k ) Σ k samaistetaan vastaavien kokonaislukujen m = k j=1 m j N k j kanssa. Jokainen k-pituinen Σ-sana on siis kelvollinen RSAsalaukseen. RSA-menetelmässä viesti m {0, 1,..., n 1} salataan laskemalla c = rem(m e, n). Koska 0 c < n < N k+1, on luvun c N-kantaisessa esityksessä enintään k + 1 numeroa, joten k c = c j N k j, j=0 missä c j Σ, 0 j k. Salattua viestiä c vastaa nyt sana (c 0,..., c k ) Σ k+1. RSAmenetelmässä siis k-pituiset sanat (m 1,..., m k ) Σ k kuvataan (k + 1)-pituisiksi sanoiksi (c 0,..., c k ) Σ k+1. Alkuperäisen lohkosalaimen määritelmän mukainen lohkosalain RSA ei siis ole, mutta esimerkiksi elektroninen koodikirjatila tai salauslohkojen ketjutustila on pienin muutoksin sovitettavissa myös tähän tilanteeseen.

4. Rabinin salain RSA-menetelmän käsittelystä käy selville, että jos luvun n alkutekijät p ja q saadaan helposti selville, myös RSA-salatut viestit on helppo avata. Ei kuitenkaan tiedetä, ovatko lukujen alkutekijöihin jakaminen ja RSA-salauksen murtaminen yhtä vaikeita ongelmia. Ei siis tiedetä, onko RSA-salauksen murtamiseen joitain alkutekijäjakoa oleellisesti helpompia tapoja. Seuraavassa tarkasteltava Rabinin salain perustuu myös lukujen alkutekijäjakoon, mutta Rabinin salaimen murtaminen ja alkutekijäjako on osoitettavissa yhtä vaikeiksi tehtäviksi. Tällaista vertailua, salausongelma matemaattinen ongelma, pidetään tärkeänä siksi, että parin matemaattisella puolella käsitteet ovat yleensä täsmällisemmin määriteltyjä ja käsitteiden välisiä suhteita on tutkittu pitkään. Näin ongelmasta saadaan parempi yleiskuva, ja mahdolliset heikkoudet on helpommin paljastettavissa. Rabinin menetelmässä Pentti valitsee satunnaisesti kaksi keskenään erisuurta alkulukua p ja q, joilta lisäksi vaaditaan, että p 3 mod 4 ja q 3 mod 4. Pentti laskee tulon n := p q. Pentin julkisavain on luku n ja salainen avain pari (p, q). Rabinin menetelmää voidaan soveltaa myös muille alkuluvuille p ja q, siis sellaisillekin, jotka eivät toteuta yllä asetettua kongruenssiehtoa, mutta tämä kongruenssiehto helpottaa salattujen viestien avaamista oleellisesti. Kuten RSA-menetelmässä selväkielisten viestien joukko on {0, 1,..., n 1}. Kun Liisa haluaa salata viestin m {0, 1,..., n 1}, hän käyttää Pentin julkiavainta n ja määrää luvun c {0, 1,..., n 1}, jolle c m 2 mod n. Viestin joukkona käytetty {0, 1,..., n 1} on siis joukon Z n pienimpien ei-negatiivisten edustajien joukko. Koska p ja q ovat parittomia (niiden tulisi olla isoja), on myös n pariton, joten joukon Z n edustajiksi voitaisiin yhtä hyvin valita kokonaisluvut väliltä [ n 1, n 1]. Selvää on, että salausfunktio [m] 2 2 n [m] 2 n ei tässä tilanteessa ole injektio, joten Rabinin salain ei ole salausjärjestelmän määritelmän mielessä salausfunktio. Rabinin salainta voidaan kuitenkin käyttää joissakin tilanteissa, joissa salatun viestin avaaminen ei ole menetelmän keskeisin tavoite. 4.1. Kiinalainen jäännöslause. Rabinin salaimella salatun viestin avaamisessa tarvitaan apuna seuraavaa tulosta: Lause 4.1 (Kiinalainen jäännöslause). Olkoot m 1,..., m n keskenään jaottomia positiivisia kokonaislukuja (siis syt(m j, m k ) = 1, kun j k), ja a 1,..., a n Z. Tällöin on olemassa x Z, joka ratkaisee konguenssiyhtälöryhmän x a 1 mod m 1 (4.1). x a n mod m n Lisäksi, jos x Z on konguenssiyhtälöryhmän (4.1) toinen ratkaisu, niin x x mod m, missä m := m 1 m n (t.s. konguenssiyhtälöryhmän ratkaisu on yksikäsitteinen modulo m). 31

Todistus. Olkoon M j := m/m j = k:k j m k, missä m = m 1 m n. Koska luvut m j ovat keskenään jaottomia, on syt(m j, M j ) = 1 Laajennetun Eukleideen algoritmin avulla löydetään luvut s j ja t j Z siten, että s j m j + t j M j = 1. Tällöin t j M j 1 mod m j. Asetetaan n x := a k t k M k. k=1 Osoitetaan, että x ratkaisee konguenssiyhtälöryhmän (4.1). Koska t j M j 1 mod m j, on a j t j M j a j mod m j. Toisaalta, koska m j jakaa luvun M k, kun k j, on jokaiselle k {1,..., n}, jolle k j, voimassa a k t k M k 0 mod m j. Näiden tietojen perusteella n x = a j t j M j + a k t k M k a j mod m j. k=1 k j Siis x on konguenssiyhtälöryhmän (4.1) ratkaisu. Osoitetaan vielä, että ratkaisu on yksikäsitteinen modulo m. Olkoon x Z toinen ratkaisu konguenssiyhtälöryhmälle (4.1). Tällöin m j x a j ja m j x a j, joten m j x x kaikille j {1,..., n}. Koska luvut m j ovat keskenään jaottomia, seuraa tästä, että m = m 1 m n x x. (Tämä seuraa induktiolla harjoituksissa käsitellystä tehtävästä: kun p ja q ovat keskenään erisuuria alkulukuja ja a b mod p ja a b mod q, niin a b mod p q. Se, että p ja q ovat alkulukuja, on epäoleellista; tärkeää on, että syt(p, q) = 1.) Siis x x mod m. Olkoot R ja R renkaita ja f : R R annettu kuvaus. Sanotaaan, että f on rengashomomorfismi, jos kaikille r 1, r 2 R on voimassa f(r 1 + r 2 ) = f(r 1 ) + f(r 2 ) ja f(r 1 r 2 ) = f(r 1 ) f(r 2 ). Jos rengashomomorfismi f on bijektio, sitä sanotaan rengasisomorfismiksi ja, että renkaat R ja R ovat isomorfiset. Jos R 1,..., R n ovat renkaita, saadaan niiden karteesisesta tulosta R 1 R n rengas määrittelemällä summa ja tulo komponenteittain (r 1,..., r n ) + (s 1,..., s n ) := (r 1 + s 1,..., r n + s n ) ja (r 1,..., r n ) (s 1,..., s n ) := (r 1 s 1,..., r n s n ). Lause 4.2. Olkoot m 1,..., m n keskenään jaottomia positiivisia kokonaislukuja ja m := m 1 m n. Tällöin kuvaus on rengasisomorfismi. f : Z m Z m1 Z mn, f([x] m ) := ([x] m1,..., [x] mn ), Todistus. Lukijan tehtäväksi jätetään tarkistaa, että kuvaus f on hyvinmääritelty (tämä tarkoittaa, että jos x, y Z ja [x] m = [y] m, niin f([x] m ) = f([y] m )). Lukijalle jätetään myös tarkistettavaksi, että f on rengashomomorfismi. 32

Surjektiivisuuden osoittamiseksi olkoon ([a 1 ] m1,..., [a n ] mn ) Z m1 Z mn. Kiinalaisen jäännöslauseen nojalla on olemassa x Z siten, että x a j mod m j. Tämä tarkoittaa, että [x] mj = [a j ] mj, joten f([x] m ) = ([a 1 ] m1,..., [a n ] mn ). Myös injektiivisyys seuraa kiinalaisesta jäännöslauseesta: jos f([x] m ) = f([x ] m ), on [x] mj = [x ] mj kaikille j {1,..., n}, joten x x mod m j kaikille j {1,..., n}. Jäännöslauseen jälkimmäisen osan nojalla x x mod m, joten [x] m = [x ] m. 4.1.1. Eulerin ϕ-funktion multiplikatiivisuus. RSA-menetelmän yhteydessä todistamatta jäi Eulerin ϕ-funktion multiplikatiivisuutta käsittelevä lause 3.9: Olkoot m 1,..., m n keskenään jaottomia positiivisia kokonaislukuja. Tällöin ϕ(m 1 m n ) = ϕ(m 1 ) ϕ(m n ). Ennen todistusta on hyvä huomata seuraava yleinen tulos: Jos f : R R on rengasisomorfismiksi, niin renkaan R alkio r on kääntyvä, jos ja vain jos sen kuva f(r) on renkaan R kääntyvä alkio. Jos r on kääntyvä, on olemassa s R siten, että r s = 1 (ja myös s r = 1, jos R ei ole kommutatiivinen). Rengashomomorfismissa ykkösalkion 1 R kuva f(1) on renkaan R ykkösalkio 1 (tämän todistaminen jätetään lukijan tehtäväksi). Siis rengashomomorfisuuden nojalla 1 = f(1) = f(r s) = f(r) f(s) (ja vastaavasti 1 = f(s r) = f(s) f(r)). Tästä seuraa, että f(r) on kääntyvä ja sen käänteisalkio (f(r)) 1 = f(s) = f(r 1 ). Käänteinen puoli ( jos f(r) on kääntyvä... ) jätetään lukijan tehtäväksi. Lauseen 3.9 todistus. Käytetään apuna edellä saatua kiinalaisen jäännöslauseen seurausta ja edellistä huomiota. Koska kuvaus f : Z m Z m1 Z mn on rengasisomorfismi, on [x] m Z m kääntyvä, jos ja vain jos f([x] m ) = ([x] m1,..., [x] mn ) on kääntyvä. Tulorenkaan Z m1 Z mn alkio ([a 1 ] m1,..., [a n ] mn ) on kääntyvä, jos ja vain jos jokainen [a j ] mj on kääntyvä (tämän toteaminen jätetään lukijan tehtäväksi). Siis kuvauksen f rajoittuma kääntyvien alkioiden joukkoon antaa bijektion Z m Z m 1 Z m n. Tässä vasemman ja oikean puolen joukkojen alkioiden lukumäärät ovat ϕ(m) ja ϕ(m 1 ) ϕ(m n ). Bijektiivisyyden nojalla nämä ovat samat. 4.1.2. Pienten eksponenttien hyökkäys. RSA-menetelmään liittyy moninaisia heikkouksia, joista yksi liittyy julkisen avaimen (n, e) valintaan. Koska ϕ(n) = (p 1)(q 1) on parillinen ja avaimelle e on oltava syt(e, ϕ(n)) = 1, on luvun e oltava pariton. Pienin kyseeseen tuleva julkinen avain on siis e = 3. Jos julkiseksi avaimeksi e valitaan pieni luku, voi RSA-salaus joutua ns. pienten eksponenttien hyökkäyksen kohteeksi. Tämä toimii seuraavasti: Jos Liisa lähettää saman viestin m e kertaa niin, että julkisina avaimina käytetään pareja (n j, e), 1 j e, Liisa laskee luvut c j, joille c j m e mod n j, 1 j e. Nyt Erkki laskee 1 kiinalaisen jäännöslauseen avulla luvun c, jolle c c j mod n j, 1 j e, ja 0 c < n 1 n e ; 2 luvun e c. e Erkin laskema juuri c on juuri alkuperäinen viesti m: Lause 4.3. Olkoot n 1,..., n e keskenään jaottomia positiivisia kokonaislukuja. Oletetaan, että kokonaisluvulle m on 0 m < n j kaikille j {1,..., e}. Olkoon c Z, c m e mod n j kaikille j {1,..., e} ja 0 c < n 1 n e. Tällöin c = m e. 33

Todistus. Olkoon c := m e. Tällöin c m e mod n j, 1 j e. Koska 0 m < n j kaikille j {1,..., e}, on 0 c < n 1 n e. Toisaalta, myös luvulla c on nämä kaksi ominaisuutta. Kiinalaisen jäännöslauseen 4.1 nojalla c c mod n 1 n e. Koska 0 c, c < n 1 n e, on c = c, joten c = m e. 4.2. Rabinin salain: avaus. Pentti on valinnut keskenään erisuuret alkuluvut p ja q, joille p 3 mod 4 ja q 3 mod 4, ja laskenut julkisavaimekseen n = p q. Liisa on lähettänyt viestin m {0, 1,..., n 1} Pentille salattuna muodossa c m 2 mod n eli [c] n = [m] 2 n. Pentin pitäisi ratkaista tämä yhtälö tuntemattoman m suhteen, t.s. Pentin pitäisi osata laskea alkion [c] n neliöjuuri jäännösluokkarenkaassa Z n. Pentin salainen avain, jota nyt tarvitaan viestin c avaamiseen, on pari (p, q). Pentti määrää aluksi luvut m p ja m q, joille m p c (p+1)/4 mod p ja m q c (q+1)/4 mod q. Tällöin [±m p ] p ovat alkion [c] p neliöjuuret kunnassa Z p ja vastaavasti [±m q ] q ovat alkion [c] q neliöjuuret kunnassa Z q (tämän osoittaminen jätetään lukijan tehtäväksi). Seuraavaksi Pentti käyttää kiinalaista jäännöslausetta ja ratkaisee kongruenssiparin m m p mod p ja m m q mod q: Aluksi määrätään kokonaisluvut s ja t siten, että Sitten lasketaan s p + t q = 1 µ := s p m q + t q m p ja ν := s p m q t q m p. Nyt pienellä laskulla nähdään (kannattaa laskea), että [±µ] n ja [±ν] n ovat alkion [c] n neliöjuuria renkaassa Z n. 16 Jokin näistä on antaa alkuperäisen luokan [m] n, joten jos luokille [±µ] n ja [±ν] n valitaan edustajat joukosta {0, 1,..., n 1}, jokin näistä on alkuperäinen viesti m. 4.3. Rabinin salain vs. tekijöihinjako. Rabinin salaimen käsittelyn nojalla on selvää, että jos Erkki osaa jakaa luvun n alkutekijoihinsä, hän pystyy avaamaan Liisan Pentille lähettämän viestin yhtä helposti kuin Pentti. Osoitetaan seuraavaksi, että jos Erkki pystyy murtamaan Rabinin salaimen, niin hän pystyy määräämään luvun n tekijät. (Päättelystä on hyvä huomata, että tämäkin menetelmä on probabilistinen.) Oletetaan nyt, että Erkki pystyy tavalla tai toisella murtamaan Rabinin salaimen. Olkoot p, q ja n kuten edellä. Olkoon R menetelmä (funktio), jolla Erkki saa avatuksi salakirjoitetut viestit. Siis jos c {0, 1,..., n 1} ja [c] n on jonkin renkaan Z n alkion neliö (jollaisia salakirjoitettujen viestien tulee olla) ja m := R(c), on m {0, 1,..., n 1} ja [m] n alkion [c] n neliöjuuri renkaassa Z n. Erkki valitsee satunnaisesti luvun x {1,..., n 1}. Jos syt(x, n) 1, on Erkki löytänyt toisen luvun n tekijöistä. Jos taas syt(x, n) = 1, Erkki määrää luvun c {0, 1,..., n 1}, jolle c x 2 mod n ja laskee m := R(c). 16 Toisen asteen yhtälöllä on neljä ratkaisua!? 34

Luvulle m on siis m 2 c mod n. Koska näin on myös luvulle x, on m 2 x 2 mod n. Tästä seuraa, että parille (m, x) on voimassa jokin seuraavista kogruensseista: (4.2) (4.3) (4.4) (4.5) m x mod p ja m x mod q, m x mod p ja m x mod q, m x mod p ja m x mod q, m x mod p ja m x mod q. Jos pari (m, x) toteuttaa yhtälöparin (4.4), on syt(m x, n) = p. Jos pari (m, x) toteuttaa yhtälöparin (4.5), on syt(m x, n) = q. Ainakin kahdessa tapauksessa neljästä on siis 1 < syt(m x, n) < n. Koska Erkki ei tunne tekijöitä p ja q, ei hän myöskään tiedä, mikä tapauksista (4.2) (4.5) tulee kyseeseen. Hän voi vain laskea suurimman yhteisen tekijän syt(m x, n). Koska hän valitsee luvun x satunnaisesti, hänellä on ainakin 50% todennäisyys päätyä tapaukseen 1 < syt(m x, n) < n. Mutta toistamalla tätä päättelyä (=luku x valitaan satunnaisesti ja lasketaan syt(m x, n)), hän on r toiston jälkeen löytänyt luvun n tekijät todennäköisyydellä 1 (1/2) r. 35