• Tidak ada hasil yang ditemukan

Lukuteoria ja RSA

N/A
N/A
Protected

Academic year: 2021

Membagikan "Lukuteoria ja RSA"

Copied!
43
0
0

Teks penuh

(1)TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Ville-Matti Erkintalo. Lukuteoria ja RSA. Matematiikan ja tilastotieteen laitos Matematiikka Maaliskuu 2008.

(2) Tampereen yliopisto Matematiikan ja tilastotieteen laitos ERKINTALO, VILLE-MATTI: Lukuteoria ja RSA Pro gradu -tutkielma, 43 s. Matematiikka Maaliskuu 2008. Tiivistelmä. Tässä tutkielmassa tarkastellaan lukuteoriaa ja sen soveltamista tiedon salaamisessa. Erityisen mielenkiinnon kohteena on laajalti käytetty salausmenetelmä RSA, joka perustuu lukuteorian keskeisimpiin tuloksiin. Tieto- ja viestintätekniikan ja erilaisten sähköisten palveluiden käytön lisääntymisen myötä tiedon salaaminen on entistä tavallisempaa. Tutkielman luvussa 1 käsitellään lukuteorian peruskäsitteistä muun muassa jaollisuutta, alkulukuja ja kahden kokonaisluvun suurinta yhteistä tekijää. Luvussa 2 keskitytään kongruenssiin, sen ominaisuuksiin ja sovelluksiin. Luvussa 3 tutustutaan tiedon salaamiseen ja erityyppisiin salausmenetelmiin sekä niiden käyttöön. Tutkielman alkuosa pohjustaa lukua 4, jossa tarkastellaan salausmenetelmä RSA:ta..

(3) Sisältö Johdanto. 4. 1 Lukuteorian perusteita. 5. 1.1 1.2 1.3 1.4. Jaollisuus . . . . . . . . . . . Kokonaislukujen esitystavoista Alkuluvut . . . . . . . . . . . Suurin yhteinen tekijä . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 2 Kongruenssista 2.1 2.2 2.3 2.4 2.5. Kongruenssin ominaisuuksia . . . . . . . . . . . . . . Jäännössysteemeistä . . . . . . . . . . . . . . . . . . Lineaarisista kongruensseista . . . . . . . . . . . . . . Kongruenssiyhtälöryhmät ja Kiinalainen jäännöslause Eulerin funktio ja lause . . . . . . . . . . . . . . . . .. 3 Kryptograa. 3.1 Kryptosysteemi . . . . . . . . . . 3.2 Kryptanalyysi . . . . . . . . . . . 3.3 Julkisen avaimen kryptosysteemi 3.3.1 Idea . . . . . . . . . . . . 3.3.2 Edut . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 5 6 9 9. 15. 15 20 21 23 25. 30. 30 33 34 34 35. 4 RSA. 37. Viitteet. 43. 4.1 Kryptosysteemi . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2 Tunnettuja haavoittuvuuksia . . . . . . . . . . . . . . . . . . . 39.

(4) Johdanto Tiedon salaaminen ja salakirjoitus lienevät yhtä vanhoja kuin kirjoitustaito itse. Tieto- ja viestintätekniikan ja erilaisten sähköisten palveluiden käytön lisääntymisen myötä tiedon salaaminen on entistä tavallisempaa. Salakirjoituksen tutkimuksesta käytetään termiä kryptograa. Kirjallisuudessa käytetään joskus samasta asiasta termiä kryptologia, jolloin termi kryptograa on varattu tiedon salauksessa hyvää tarkoittavien tahojen toiminnalle. Kryptograan menetelmät perustuvat lähes poikkeuksetta lukuteoriaan, jonka tärkeimpiä tutkimuskohteita ovat positiiviset kokonaisluvut ja erityisesti alkuluvut. Viestien salaus- ja purkumenetelmästä käytetään yhteisnimitystä kryptosysteemi. Kryptosysteemit jaetaan tavallisesti klassisiin ja julkisen avaimen kryptosysteemeihin. Klassisten systeemien salausmenetelmät on pidettävä turvallisuuden säilyttämiseksi rajatun käyttäjäryhmän tietona, kun taas julkisen avaimen kryptosysteemien tapauksessa salausmenetelmät voidaan turvallisesti julkaista. Tämän tutkielman päämääränä on tarkastella julkisen avaimen kryptosysteemi RSA:ta. Tutkielman kahdessa ensimmäisessä luvussa tutustutaan RSA:n kannalta olennaisiin lukuteorian tuloksiin. Valikoiduin osin käsittely on RSA:n vaatimuksia hieman laajempaa. Luvussa yksi tutustutaan lukuteorian peruskäsitteisiin ja -tuloksiin, kuten jaollisuus, alkuluvut ja suurin yhteinen tekijä. Luvussa kaksi tarkastellaan kongruenssia ja sen ominaisuuksia eri yhteyksissä. Luku kolme esittelee kryptograaan ja kryptosysteemeihin liittyviä käsitteitä. Lisäksi luvussa tutustutaan esimerkinomaisesti historiallisesti mielenkiintoiseen Caesarin kryptosysteemin ja luodaan katsaus klassisen ja julkisen avaimen kryptosysteemien väliseen suhteeseen. Luvussa neljä keskitytään tutkielman alkuosan pohjustamana kryptosysteemi RSA:n toimintaan ja soveltamiseen. Lukijan on hyvä olla perehtynyt matemaattiseen esitystapaan, merkintöihin ja todistustekniikoihin. Matematiikan perusopinnot yliopistossa antavat varmasti riittävät valmiudet, mutta tutkielman sisällön ymmärtäminen lienee mahdollista myös lukion matematiikan pitkän oppimäärän suorittaneelle lukijalle. Lukuteorian osalta tutkielma perustuu pääosin Kenneth H. Rosenin teokseen Elementary Number Theory and Its Applications - Fifth Edition [5], kryptograan osalta päälähteenä on toiminut Arto Salomaan Public-Key Cryptography [7]. Esimerkkitehtävät ovat tutkielman kirjoittajan ratkaisemia, mutta niihin on usein otettu mallia lähdeteosten esimerkeistä. Esimerkin kohdalla on mainittu, jos tehtävä kuuluu lähdeteoksen harjoitustehtävävalikoimaan.. 4.

(5) 1 Lukuteorian perusteita Luvussa 1 tutustutaan lukuteorian peruskäsitteisiin ja -tuloksiin. 1.1. Jaollisuus. Määritelmä 1.1. Oletetaan, että a ja b ovat kokonaislukuja ja a 6= 0. Luku a jakaa luvun b, jos on olemassa sellainen kokonaisluku c, että b = ac. Tällöin luku a on luvun b jakaja tai tekijä ja luku b on luvun a monikerta.. Merkintä. Jos luku a jakaa luvun b merkitään a | b. Jos luku a ei jaa lukua. b merkitään a 6 | b.. Esimerkki 1.1. Selvästi 2 | 8, sillä 8 = 2 · 4. Toisaalta taas 3 6 | 7, sillä ei ole sellaista kokonaislukua c, että 7 = 3 · c.. Lause 1.1.. Jaollisuus on transitiivinen relaatio.. Vrt. [5, s. 37]. Olkoot a, b ja c kokonaislukuja. Jos a | b ja b | c, niin jaollisuuden määritelmän perusteella on olemassa sellaiset kokonaisluvut k ja l, että b = ak ja c = bl. Tällöin c = bl = (ak)l = a(kl), joten a | c ja lause on todistettu. Todistus.. Lause 1.2.. Olkoot. a, b , m. ja. n. kokonaislukuja. Jos. c | a. ja. c | b,. niin. c | (ma + nb).. Vrt. [5, s. 37]. Jos c | a ja c | b, niin on olemassa sellaiset kokonaisluvut k ja l, että a = ck ja b = cl. Nyt ma+nb = m(ck)+n(cl) = c(mk +nl), joten c | (ma + nb) ja lause on todistettu. Todistus.. Esimerkki 1.2. [9, s. 56, tehtävä 6]. Osoitettava, että jos a | b ja c | d, niin ac | bd.. Olkoot a, b, c ja d sellaisia kokonaislukuja, että a 6= 0 ja c 6= 0. Oletetaan, että a | b ja c | d, joten on olemassa sellaiset kokonaisluvut k ja l, että b = ak ja d = cl. Nyt bd = akcl = kl(ac), joten määritelmän perusteella ac | bd.. Ratkaisu.. Hyvinjärjestysperiaatteen mukaan jokaisella epätyhjällä joukolla positiivisia kokonaislukuja on pienin alkio. Hyvinjärjestysperiaate voidaan kokonaislukujen määrittelytavasta riippuen ottaa mukaan positiiviset kokonaisluvut määritteleviin aksioomiin tai se voidaan johtaa käytössä olevasta aksioomasysteemistä. Seuraava tulos perustuu hyvinjärjestysperiaatteeseen. [5, s. 6]. 5.

(6) Lause 1.3 (Jakoalgoritmi).. Olkoot. a. kokonaisluku ja. b. positiivinen koko-. naisluku. Tällöin on olemassa sellaiset yksikäsitteiset kokonaisluvut. q. ja. r,. että. a = bq + r,. missä. 0 ≤ r < b.. Vrt. [5, s. 38]. Olkoot a ja b kuten lauseen muotoilussa. Olkoon S = {a − bk | k ∈ Z} ja olkoon T = {x ∈ S | x ≥ 0}. Joukko T ei ole tyhjä, sillä joukon S alkiot ovat positiivisia aina, kun k < ab . Hyvinjärjestysperiaatteen nojalla joukolla T on pienin alkio r = a − bq . Määrittelyn perusteella r ≥ 0. Oletetaan, että r ≥ b, jolloin r > r − b = a − bq − b = a − b(q + 1) ≥ 0, joka on ristiriidassa sen kanssa, että r = a − bq on pienin joukon T alkioista. Tämän perusteella r < b, joten 0 ≤ r < b. Osoitetaan sitten lukujen q ja r yksikäsitteisyys ja oletetaan, että a = bq1 +r1 ja toisaalta a = bq2 +r2 , missä 0 ≤ r1 < b ja 0 ≤ r2 < b. Vähentämällä Todistus.. yhtälöt toisistaan saadaan. a − a = b(q1 − q2 ) + (r1 − r2 ),. josta edelleen r2 − r1 = b(q1 − q2 ).. Huomataan, että b | (r2 − r1 ). Lukujen r1 ja r2 määrittelyn perusteella −b < r2 − r1 < b, joten jakoyhtälö voi päteä vain, jos r2 − r1 = 0, jolloin r2 = r1 . Koska a = bq1 + r1 ja toisaalta a = bq2 + r2 , niin myös q1 = q2 . Luvut q ja r ovat siis yksikäsitteiset ja lause on todistettu.. Jakoalgoritmin käyttöä havainnollistetaan lauseen 1.4 todistuksessa ja esimerkissä 1.3.. Huomautus. Jakoalgoritmissa esiintyvää lukua q kutsutaan. osamääräksi,. Huomautus. Kahden nollasta eroavan kokonaisluvun a ja b. pienin yhtei-. lukua r. jakojäännökseksi,. lukua a jaettavaksi ja lukua b. jakajaksi.. on pienin positiivinen kokonaisluku, joka on jaollinen sekä luvulla a, että luvulla b. Lukujen a ja b pienimmästä yhteisestä monikerrasta käytetään merkintää [a, b].. nen monikerta. 1.2. Kokonaislukujen esitystavoista. Lause 1.4.. Olkoon. b. sellainen positiivinen kokonaisluku, että. nen positiivinen kokonaisluku. n. b > 1.. Jokai-. voidaan esittää yksikäsitteisesti muodossa. n = ak bk + ak−1 bk−1 + · · · + a1 b + a0 , missä. k ≥ 0, aj on sellainen kokonaisluku, että 0 ≤ aj ≤ b−1 (j = 0, 1, . . . k) ak 6= 0.. ja kerroin. 6.

(7) Vrt. [5, s. 44]. Johdetaan ensin jakoalgoritmin avulla kokonaisluvulle n esitys edellä kuvatussa muodossa ja osoitetaan sitten sen yksikäsitteisyys. Olkoon b > 1. Jaetaan luku n luvulla b, jolloin saadaan. Todistus.. 0 ≤ a0 ≤ b − 1.. n = bq0 + a0 ,. Jos q0 6= 0 niin jaetaan q0 luvulla b, jolloin 0 ≤ a1 ≤ b − 1.. q0 = bq1 + a1 ,. Jatketaan jakamista kunnes osamääräksi saadaan 0. q1 = bq2 + a2 , q2 = bq3 + a3 ,. .. .. 0 ≤ a2 ≤ b − 1, 0 ≤ a3 ≤ b − 1,. qk−2 = bqk−1 + ak−1 , 0 ≤ ak−1 ≤ b − 1, qk−1 = b · 0 + ak , 0 ≤ ak ≤ b − 1.. Osamäärien jono q0 , q1 , q2 , . . . on aidosti vähenevä ja sen jäsenet ovat einegatiivisia, joten siinä on enintään q0 jäsentä ja viimeinen niistä on 0. Edellisen perusteella n = bq0 + a0 ,. johon sijoitetaan q0 ja saadaan yhtälö n = b(bq1 + a1 ) + a0 = b2 q1 + a1 b + a0 .. Sijoittamalla edelliseen yksi kerrallaan q1 , q2 , . . ., qk−1 saadaan n = ak bk + ak−1 bk−1 + · · · + a1 b + a0 ,. missä 0 ≤ aj ≤ b − 1 (j = 0, 1, . . . , k) ja ak 6= 0, sillä ak = qk−1 on viimeinen nollasta eroava osamäärä. Haluttu esitys kokonaisluvulle n on nyt johdettu. Osoitetaan seuraavaksi esityksen yksikäsitteisyys. Oletetaan, että on olemassa kaksi luvun n kanssa yhtäsuurta esitystä. Tällöin n = ak bk + ak−1 bk−1 + · · · + a1 b + a0 = ck bk + ck−1 bk−1 + · · · + c1 b + c0 ,. missä 0 ≤ ak ≤ b − 1 ja 0 ≤ ck ≤ b − 1. Vähentämällä lausekkeet toisistaan saadaan (ak − ck )bk + (ak−1 − ck−1 )bk−1 + · · · + (a1 − c1 )b + (a0 − c0 ) = 0.. 7.

(8) Oletetaan sitten, että esitykset ovat erilaiset. Tällöin on olemassa pienin sellainen kokonaisluku j , 0 ≤ j ≤ k , että aj 6= cj . Nyt summan loppuosa indeksin arvosta j eteenpäin häviää, joten ottamalla bj tekijäksi saadaan bj ((ak − ck )bk−j + · · · + (aj+1 − cj+1 )b + (aj − cj )) = 0,. ja edelleen, koska b > 1, niin (ak − ck )bk−j + · · · + (aj+1 − cj+1 )b + (aj − cj ) = 0.. Kun yhtälö ratkaistaan luvun aj − cj suhteen ja otetaan b tekijäksi, saadaan aj − cj = b((ck − ak )bk−j−1 + · · · + (cj+1 − aj+1 )).. Selvästi b | aj − cj . Mutta oletusten perusteella 0 ≤ aj ≤ b − 1 ja 0 ≤ cj ≤ b − 1, joten −b < aj − cj < b. Tästä seuraa ristiriita aj = cj . Kokonaisluvulle n johdettu lauseke kannassa b on siis yksikäsitteinen ja lause on todistettu.. Seuraus 1.1.. Jokainen positiivinen kokonaisluku voidaan esittää yksikäsit-. teisesti luvun 2 potenssien summana. Todistus.. Tulos seuraa lauseesta 1.4 kun b = 2.. Lauseessa 1.4 esiintyvää lukua b kutsutaan esitysmuodon kantaluvuksi. Saman luvun eri esitysmuotojen erottamiseksi käytetään merkintää (ak ak−1 . . . a1 a0 )b , missä luvut ai , i = 0, 1, . . . , k , saadaan ko. luvun esityksestä kannassa b. Kannan ollessa kymmenen puhutaan kymmenjärjestelmän luvuista ja kannan ollessa kaksi on kyseessä luvun binääriesitys. Eri esitystavoilla on omat etunsa käyttötavasta riippuen. Kokonaisluvun n esitys kannassa b voidaan muodostaa soveltamalla jakoalgoritmia kuten lauseen 1.4 todistuksessa. Kertoimet ak saadaan jakoalgoritmin tuottamista yhtälöistä jakojäännöksinä. [5, s. 46] Esimerkki 1.3. Esitettävä luku 37 binäärimuodossa. Ratkaisu. Sovelletaan toistuvasti jakoalgoritmia, jolloin saadaan yhtälöt 37 = 2 · 18 + 1, 18 = 2 · 9 + 0, 9 = 2 · 4 + 1, 4 = 2 · 2 + 0, 2 = 2 · 1 + 0, 1 = 2 · 0 + 1.. Jakojäännösten perusteella (37)10 = (100101)2 . 8.

(9) 1.3. Alkuluvut. Alkuluvut ovat lukuteorian keskeisimpiä tutkimuskohteita. Ne näyttelevät tärkeää roolia myös tässä tutkielmassa.. Määritelmä 1.2. Alkuluku on positiivinen lukua 1 suurempi kokonaisluku, joka on jaollinen vain itsellään ja luvulla 1. Huomautus. Lukua 1 suurempi positiivinen kokonaisluku, joka ei ole alkuluku, on. yhdistetty luku.. Esimerkki 1.4. Lukua 10 pienemmät alkuluvut ovat 2, 3, 5 ja 7. Apulause 1.1.. Jokainen lukua. 1. suurempi kokonaisluku on jaollinen jollain. alkuluvulla. Todistus.. Ks. [5, s. 68]. Lause 1.5.. Alkulukuja on ääretön määrä.. Vrt. [5, s. 69]. Oletetaan, että on vain äärellinen määrä alkulukuja, olkoot ne p1 , p2 , . . . , pn . Olkoon lisäksi Qn = p1 p2 · · · pn + 1. Nyt apulauseen 1.1 perusteella Qn on jaollinen jollain alkuluvulla q . Jos q = pi , missä 1 ≤ i ≤ n, niin q jakaa myös luvun p1 p2 . . . pn . Nyt lauseen 1.2 perusteella q jakaa myös luvun 1. Tämä on ristiriita, joten q 6= pi , missä 1 ≤ i ≤ n. Tästä seuraa, että alkulukuja on ääretön määrä. Todistus.. Oheisen todistuksen alkulukujen määrän äärettömyydelle esitti ensimmäisenä Eukleides teoksessaan Alkeet.. Lause 1.6 (Alkulukulause). kua. x pienempien π(x). Tällöin. Olkoon. x. positiivinen reaaliluku. Merkitään lu-. tai sen kanssa yhtäsuurien alkulukujen määrää funktiolla. π(x) ln x = 1. x→∞ x lim. Todistus.. 1.4. Ks. [3, s. 308-312].. Suurin yhteinen tekijä. Määritelmä 1.3. Olkoot a ja b kokonaislukuja, joista ainakin toinen eroaa. nollasta. Lukujen a ja b suurin yhteinen jakaa molemmat luvuista a ja b.. tekijä. on suurin kokonaisluku, joka. Huomautus. Lukujen a ja b suurimmasta yhteisestä tekijästä käytetään merkintää (a, b). Lisäksi määritellään, että (0, 0) = 0. 9.

(10) Esimerkki 1.5. Helposti huomataan, että luvut ±1, ±2 ja ±4 ovat lukujen. 16 ja 44 yhteisiä tekijöitä, joten (16, 44) = 4.. Määritelmä 1.4. Luvut a ja b ovat suhteellisia alkulukuja, jos niiden suurin yhteinen tekijä (a, b) = 1.. Esimerkki 1.6. Selvästi (28, 41) = 1, joten luvut 28 ja 41 ovat suhteellisia alkulukuja.. Huomautus. Suhteellisia alkulukuja kutsutaan joissain yhteyksissä kuvaavasti keskenään jaottomiksi. Lause 1.7.. Olkoot. a. ja. b. kokonaislukuja. Jos. (a, b) = d,. niin. (a/d, b/d) = 1.. Todistus. Vrt. [5, s. 90]. Olkoot a ja b kokonaislukuja ja (a, b) = d. Todistetaan lause näyttämällä, että luvuilla a/d ja b/d on vain yksi yhteinen positiivinen tekijä. Oletetaan, että e on tämä positiivinen kokonaisluku, jolloin e | (a/d) ja e | (b/d). Jaollisuuden määritelmän perusteella on olemassa sellaiset kokonaisluvut k ja l, että a/d = ke ja b/d = le, josta nähdään, että luku de on lukujen a ja b yhteinen tekijä. Koska oletuksen mukaan (a, b) = d, on oltava de ≤ d, joten e = 1. Näin ollen (a/d, b/d) = 1 ja lause on todistettu.. Lause 1.8.. Olkoot. a, b. ja. c. kokonaislukuja. Tällöin. (a + cb, b) = (a, b).. Vrt. [5, s. 91]. Olkoot a, b ja c kokonaislukuja. Riittää osoittaa, että luvuilla a + cb ja b on samat yhteiset tekijät kuin luvuilla a ja b. Olkoon e lukujen a ja b yhteinen tekijä. Lauseen 1.2 perusteella e | a + cb, joten e on lukujen a + cb ja b yhteinen tekijä. Jos taas f on lukujen a + cb ja b yhteinen tekijä, niin vastaavasti nähdään, että se on myös lukujen a ja b yhteinen tekijä. Näin ollen (a + cb, b) = (a, b) ja lause on todistettu. Todistus.. Määritelmä 1.5. Olkoot a, b, m ja n kokonaislukuja. Muotoa ma+nb olevaa. summaa kutsutaan lukujen a ja b lineaarikombinaatioksi.. Esimerkki 1.7. Olkoot m ja n kokonaislukuja. Tällöin muun muassa luvut −3, 0 ja 3 ovat lineaarikombinaatioita 6m + 9n, sillä −3 = 6 · 1 + 9(−1), 0 = 6(−3) + 9 · 2 ja 3 = 6(−1) + 9 · 1.. 10.

(11) Lause 1.9. Olkoot a ja b kokonaislukuja, joista ainakin toinen eroaa nollasta. Lukujen lukujen. a ja b suurin yhteinen tekijä d a ja b lineaarikombinaatioista.. on pienin positiivinen kokonaisluku. Vrt. [9, s. 59] Olkoon T joukko kokonaislukujen a ja b positiivisia lineaarikombinaatioita. Voidaan olettaa, että a 6= 0. Jos a > 0, niin a·1+b·0 = a kuuluu joukkoon T . Toisaalta, jos a < 0, niin a · (−1) + b · 0 = −a kuuluu joukkoon T , joten T on epätyhjä. Hyvinjärjestysperiaatteen nojalla joukossa T on pienin alkio, olkoon se e = ma + nb. Jakoalgoritmin perusteella on olemassa sellaiset kokonaisluvut q ja r, että a = eq +r, missä 0 ≤ r < e. Tällöin sijoittamalla ja ottamalla a ja b tekijöiksi saadaan Todistus.. r = a − eq = a − (ma + nb)q = a(1 − mq) + b(−nq).. Jos r 6= 0, niin päädytään ristiriitaan, sillä r ∈ T ja r < e, joka on joukon T pienin alkio. Nyt r = 0, joten e jakaa luvun a. Vastaavasti voidaan osoittaa, että e jakaa luvun b. Luku e jakaa luvut a ja b, joten e ≤ d. Toisaalta e = ma + nb ja luku d jakaa molemmat luvuista a ja b, joten d jakaa luvun e. Tällöin d ≤ e, joten d = e ja lause on todistettu.. Seuraus 1.2.. Olkoot. konaisluvut. ja. m. n. a. ja. b. suhteellisia alkulukuja. Tällöin on olemassa ko-. siten, että. ma + nb = 1.. Jos luvut a ja b ovat suhteellisia alkulukuja, niin (a, b) = 1, joten edellisen lauseen perusteella on olemassa kokonaisluvut m ja n siten, että ma + nb = 1.. Todistus.. Lause 1.10. a | bc,. niin. Olkoot. a, b. ja. c. positiivisia kokonaislukuja ja. (a, b) = 1.. Jos. a | c.. Vrt. [5, s. 109]. Olkoot a, b ja c positiivisia kokonaislukuja ja (a, b) = 1. Oletetaan lisäksi, että a | bc. Oletuksen (a, b) = 1 ja seurauslauseen 1.2 perusteella on olemassa sellaiset kokonaisluvut m ja n, että ma + nb = 1. Kertomalla yhtälön molemmat puolet luvulla c saadaan cma+cnb = c. Saatu yhtälö on lukujen a ja bc lineaarikombinaatio ja a jakaa molemmat luvuista, joten a jakaa luvun c ja lause on todistettu.. Todistus.. 11.

(12) Lause 1.11. Jos. a|c. ja. Olkoot. b | c,. niin. a ja b suhteellisia ab | c.. alkulukuja ja olkoot. c. kokonaisluku.. Vrt. [9, s. 61] Olkoot a, b ja c kokonaislukuja ja (a, b) = 1. Oletetaan lisäksi, että a | c ja b | c. Oletusten ja seurauslauseen 1.2 perusteella on olemassa sellaiset kokonaisluvut d, e, m ja n, että c = ad, c = be ja ma+nb = 1. Kertomalla viimeinen yhtälö puolittain luvulla c saadaan cma + cnb = c, joka sijoittamalla saadaan muotoon bema + adnb = c. Ottamalla ab tekijäksi saadaan ab(em + dn) = c, joten ab | c ja lause on todistettu.. Todistus.. Suurimman yhteisen tekijän löytämiseksi on olemassa tehokas jakoalgoritmia käyttävä apukeino. Eukleides esitti lauseessa 1.12 kuvatun algoritmin jo teoksessaan Alkeet.. Lause 1.12 (Eukleideen algoritmi). konaislukuja, että. rj+1 qj+1 + rj+2 ,. Olkoot. a = r0. ja. b = r1. sellaisia ko-. 0 < b ≤ a. Jos jakoalgoritmia soveltamalla saadaan rj = 0 < rj+2 < rj+1 , j = 0, 1, 2, . . . , n − 2, ja rn+1 = 0,. missä. niin. (a, b) = rn .. Vrt. [5, s. 99] ja [3, s. 17]. Olkoot a = r0 ja b = r1 sellaisia kokonaislukuja, että 0 < b ≤ a. Sovelletaan jakoalgoritmia, jolloin saadaan yhtälöketju. Todistus.. r0 = r1 q1 + r2 , r1 = r2 q2 + r3 ,. .. .. 0 ≤ r2 < r1 , 0 ≤ r3 < r2 ,. rn−3 = rn−2 qn−2 + rn−1 , rn−2 = rn−1 qn−1 + rn , rn−1 = rn qn .. 0 ≤ rn−1 < rn−2 , 0 ≤ rn < rn−1 ,. Jakojäännös rn+1 = 0 saavutetaan jollakin kokonaisluvulla n, sillä jakojäännösten jono on aidosti vähenevä ja sen jäsenet ovat positiivisia kokonaislukuja. Lauseen 1.8 perusteella (a, b) = (r0 , r1 ) = (r1 , r2 ) = (r2 , r3 ) = · · · = (rn−2 , rn−1 ) = (rn−1 , rn ) = (rn , 0) = rn . Siis (a, b) = rn .. Esimerkki 1.8. Laskettava lukujen 2523 ja 672 suurin yhteinen tekijä. 12.

(13) Ratkaisu.. Käytetään Eukleideen algoritmia, jolloin saadaan yhtälöt 2523 = 3 · 672 + 507 672 = 1 · 507 + 165 507 = 3 · 165 + 12 165 = 13 · 12 + 9 12 = 1 · 9 + 3 9 = 3 · 3.. Suurin yhteinen tekijä saadaan yhtälöketjusta valitsemalla viimeinen nollasta eroava jakojäännös, joten (2523, 672) = 3. Eukleideen algoritmin avulla kokonaislukujen suurin yhteinen tekijä voidaan ilmaista ko. kokonaislukujen lineaarikombinaationa käyttäen algoritmin tuottamia yhtälöitä (ks. esimerkki 2.12). Alla määritelty Diofantoksen yhtälö liittyy läheisesti Eukleideen algoritmiin ja seuraavassa luvussa esiteltävään kongruenssiin.. Määritelmä 1.6. Olkoot a, b ja c kokonaislukuja. Lineaarinen kahden muuttujan Diofantoksen. Lause 1.13.. yhtälö. Olkoot. d = (a, b). Yhtälöllä ax + by = c ei ole kokonaislukuratkaisuja, jos d 6 | c. Jos taas d | c, niin kokonaislukuratkaisuja on ääretön määrä. Jos x = x0 , y = y0 on yhtälön eräs ratkaisu, niin a. ja. on muotoa ax + by = c.. b. kokonaislukuja ja. kaikki ratkaisut ovat muotoa. b x = x0 + n, d a y = y0 − n, d missä. n. on kokonaisluku. Vrt. [5, s. 134]. Olkoot a ja b kokonaislukuja ja d = (a, b). Oletetaan lisäksi, että x ja y ovat sellaiset kokonaisluvut, että ax + by = c, missä c on kokonaisluku. Luku d jakaa molemmat luvuista a ja b, joten d jakaa myös luvun c. Siis, jos d 6 | c, niin kokonaislukuratkaisuja ei ole ja lauseen ensimmäinen osa on todistettu. Oletetaan sitten, että d | c, jolloin on olemassa sellainen kokonaisluku e, että c = de. Lisäksi lauseen 1.9 perusteella on olemassa sellaiset kokonaisluvut s ja t, että d = as + bt. Nyt Todistus.. c = de = (as + bt)e = a(se) + b(te),. josta saadaan eräs yhtälön ratkaisu x0 = se ja y0 = te. Jos x = x0 + (b/d)n ja y = y0 − (a/d)n, missä n on kokonaisluku, niin ax + by = ax0 + a(b/d)n + by0 − b(a/d)n = ax0 + by0 = c,. 13.

(14) joten x ja y ovat yhtälön ratkaisuja ja niitä on ääretön määrä. Osoitetaan sitten, että kaikki yhtälön ax + by = c ratkaisut ovat kuvattua muotoa. Nyt (ax + by) − (ax0 + by0 ) = 0,. joten a(x − x0 ) = b(y0 − y).. Jakamalla yhtälö puolittain luvulla d saadaan b a (x − x0 ) = (y0 − y). d d. Koska d = (a, b), niin lauseen 1.7 perusteella (a/d, b/d) = 1. Edelleen, koska (a/d) jakaa luvun (b/d)(y0 −y), niin lauseen 1.10 perusteella (a/d) jakaa luvun (y0 − y). Tällöin jaollisuuden määritelmän perusteella on olemassa sellainen kokonaisluku n, että (a/d)n = (y0 − y), joten y = y0 − (a/d)n. Sijoittamalla saatu y yhtälöön a(x − x0 ) = b(y0 − y) saadaan, että x = x0 + (b/d)n, joten lause on todistettu.. Esimerkki 1.9. Etsittävä kaikki ratkaisut Diofantoksen yhtälölle 12x + 18y = 60.. Koska (12, 18) = 6 ja 6 | 60, niin lauseen 1.13 perusteella ratkaisuja on ääretön määrä. Selvästi eräs yhtälön yksittäinen ratkaisu on x0 = 2, y0 = 2. Kaikki ratkaisut saadaan lauseen 1.13 perusteella yhtälöistä. Ratkaisu.. 18 n, 6 12 y = 2 − n, 6. x=2+. missä n on kokonaisluku. Kaikki ratkaisut ovat siis muotoa x = 2 + 3n, y = 2 − 2n,. kun n on kokonaisluku.. 14.

(15) 2 Kongruenssista Luvussa 2 luodaan katsaus kongruenssiin, sen ominaisuuksiin ja siihen perustuviin tuloksiin. Johtoajatuksena on keskittyä teoriaan, johon luvussa 4 esiteltävä kyptosysteemi RSA perustuu. Valikoiduin osin käsittely on RSA:n vaatimuksia yksityiskohtaisempaa. Luku seurailee pääosin Kenneth H. Rosenin teosta Elementary Number Theory and Its Applications - Fifth Edition [5]. 2.1. Kongruenssin ominaisuuksia. Kongruenssi on tärkeä käsite lukuteoriassa. Kongruenssien avulla jaollisuussuhteita voidaan käsitellä lähes kuten tavallisia yhtäsuuruuksia.. Määritelmä 2.1. Olkoon m positiivinen kokonaisluku ja luvut a ja b kokonaislukuja. Tällöin luku a m | a − b.. on kongruentti luvun. b. kanssa. modulo m, jos. Merkintä. Jos luku a on kongruentti luvun b kanssa modulo m merkitään. a ≡ b (mod m). Jos m 6 | (a − b), niin luvut a ja b eivät ole kongruentteja modulo m, merkitään a 6≡ b (mod m). Lukua m kutsutaan kongruenssin moduliksi.. Esimerkki 2.1. Kongruenssin määritelmän mukaan 11 ≡ 3 (mod 4), sillä 4 | (11 − 3) = 8. Toisaalta 11 6≡ 4 (mod 4), koska 4 6 | (11 − 4) = 7.. Lause 2.1.. Olkoot. a. ja. b. kokonaislukuja. Tällöin. jos on olemassa sellainen kokonaisluku. k,. että. a ≡ b (mod m), a = b + km.. jos ja vain. Vrt.[5, s. 142] Olkoot a ja b kokonaislukuja ja m positiivinen kokonaisluku. Jos a ≡ b (mod m), niin määritelmän mukaan m | (a − b). Nyt on olemassa sellainen kokonaisluku k , että km = a − b. Tällöin a = b + km. Oletetaan sitten käänteisesti, että on olemassa kokonaisluku k , jolla a = b + km. Tällöin m | (a − b), joten a ≡ b (mod m).. Todistus.. Esimerkki 2.2. Selvästi 15 ≡ −1 (mod 4). Toisaalta 15 = −1 + 4 · 4. Lause 2.2.. Olkoon. m. positiivinen kokonaisluku. Kongruenssi modulo. m. on. ekvivalenssirelaatio.. Vrt. [5, s. 143] Olkoot a, b ja c kokonaislukuja ja m positiivinen kokonaisluku. Kongruenssin ja jaollisuuden määritelmien perusteella a ≡ a (mod m), joten reeksiivisyysehto toteutuu. Todistus.. 15.

(16) Jos a ≡ b (mod m), niin kongruenssin ja jaollisuuden määritelmien perusteella on olemassa sellainen kokonaisluku k , että a − b = km. Tällöin b − a = (−k)m, joten m | (b − a). Edelleen b ≡ a (mod m), joten kongruenssi modulo m on symmetrinen. Oletetaan sitten, että a ≡ b (mod m) ja b ≡ c (mod m). Tällöin on olemassa kokonaisluvut k ja l, joilla a − b = mk ja b − c = ml. Nyt a − c = (a − b) + (b − c) = mk + ml = m(k + l),. joten a ≡ c (mod m). Kongruenssi on siis transitiivinen. Reeksiivisyyden, symmetrisyyden ja transitiivisuuden perusteella kongruenssi on ekvivalenssirelaatio.. Lauseen 2.2 perusteella kongruenssi modulo m jakaa kokonaisluvut ekvivalenssiluokkiin, joita on m kappaletta. Kongruenssin tapauksessa ekvivalenssiluokkia kutsutaan jäännösluokiksi.. Määritelmä 2.2. Jäännösluokka modulo m on niiden kokonaislukujen joukko, jotka ovat keskenään kongruentteja modulo m. Esimerkki 2.3. Jäännösluokat modulo 3 ovat · · · ≡ −6 ≡ −3 ≡ 0 ≡ 3 ≡ 6 ≡ · · · · · · ≡ −5 ≡ −2 ≡ 1 ≡ 4 ≡ 7 ≡ · · · · · · ≡ −4 ≡ −1 ≡ 2 ≡ 5 ≡ 8 ≡ · · ·. (mod 3), (mod 3), (mod 3).. Huomautus. Jakoalgoritmin perusteella kokonaisluvulla a ja positiivisella. kokonaisluvulla m pätee a = bm + r, missä 0 ≤ r ≤ m − 1. Luvun r sanotaan olevan luvun a pienin ei-negatiivinen jäännös modulo m. Luku r saadaan sieventämällä a moduloon m. Jos m 6 | a, niin r on luvun a pienin positiivinen jäännös modulo m.. Lause 2.3. Olkoot a, b ja c kokonaislukuja sekä m positiivinen kokonaisluku. Jos. a≡b. (mod. m),. niin seuraavat ominaisuudet ovat voimassa.. (i) a + c ≡ b + c (mod m), (ii) a − c ≡ b − c (mod m), (iii) ac ≡ bc (mod m). 16.

(17) Todistus. Vrt. [5, s.144]. Olkoot a, b ja c kokonaislukuja sekä m positiivinen kokonaisluku. Oletetaan, että a ≡ b (mod m). Oletuksen perusteella m | a − b. Selvästi (a + c) − (b + c) = a − b, joten m | ((a + c) − (b + c)) ja kohta (i) on todistettu. Kohta (ii) todistetaan vastaavasti, kun huomataan, että a − b = (a − c) − (b − c). Kohdan (iii) todistamiseksi huomataan, että ac − bc = c(a − b). Nyt oletuksen perusteella m | a − b, joten m | c(a − b). Siis ac ≡ bc (mod m) ja kohta (iii) on todistettu.. Esimerkki 2.4. Sovelletaan lausetta 2.3 kongruenssiin 11 ≡ 3 (mod 4),. jolloin kongruenssit. 16 = 11 + 5 ≡ 3 + 5 = 8 (mod 4), 6 = 11 − 5 ≡ 3 − 5 = −2 (mod 4) ja 55 = 11 · 5 ≡ 3 · 5 = 15 (mod 4). ovat voimassa. Kongruenssin jakaminen puolittain ei ole yhtä yksinkertaista kuin puolittain kertominen. Seuraava lause kertoo milloin kongruenssin jakaminen kokonaisluvulla on mahdollista.. Lause 2.4. Olkoot a, b ja c kokonaislukuja sekä m positiivinen kokonaisluku. Jos. d = (c, m). ja. ac ≡ bc. (mod. m),. niin. a≡b. (mod. m/d).. Vrt. [5, s. 145] Olkoot a, b ja c kokonaislukuja sekä m positiivinen kokonaisluku. Oletetaan, että d = (c, m) ja ac ≡ bc (mod m). Oletuksen perusteella m | (ac − bc) = c(a − b), joten on olemassa sellainen kokonaisluku k , että c(a − b) = km. Jakamalla puolittain luvulla d saadaan (c/d)(a − b) = k(m/d). Koska (m/d, c/d) = 1 (lause 1.7), niin lauseen 1.10 perusteella m/d | (a − b). Tällöin a ≡ b (mod m/d) ja lause on todistettu. Todistus.. Esimerkki 2.5. 60 ≡ 24 (mod 9) ja (6, 9) = 3, joten lauseen 2.4 perusteella 10 ≡ 4 (mod 3).. Seuraus 2.1.. Olkoot. luku. Jos. a, b ja c kokonaislukuja sekä m positiivinen (c, m) = 1 ja ac ≡ bc (mod m), niin a ≡ b (mod m).. Todistus.. Tulos seuraa suoraan lauseesta 2.4.. 17. kokonais-.

(18) Esimerkki 2.6. 90 ≡ 27 (mod 7) ja (9, 7) = 1, joten seurauslauseen 2.1 perusteella 10 ≡ 3 (mod 7).. Lause 2.5. luku. Jos. Olkoot. a, b, c ja d kokonaislukuja sekä m positiivinen kokonaisa ≡ b (mod m) ja c ≡ d (mod m), niin seuraavat ominaisuudet. ovat voimassa.. (i) a + c ≡ b + d (mod m), (ii) a − c ≡ b − d (mod m), (iii) ac ≡ bd (mod m). Vrt. [5, s. 145] Olkoot a, b, c ja d kokonaislukuja sekä m positiivinen kokonaisluku. Oletetaan, että a ≡ b (mod m) ja c ≡ d (mod m). Oletuksen mukaan a ≡ b (mod m) ja c ≡ d (mod m), joten m | (a − b) ja m | (c − d). Siis on olemassa kokonaisluvut k ja l siten, että a − b = km ja c − d = lm. Nyt (a + c) − (b + d) = (a − b) + (c − d) = km + lm = m(k + l), joten m | ((a + c) − (b + d)) ja kohta (i) on todistettu. Vastaavasti (a − c) − (b − d) = (a − b) − (c − d) = km − lm = m(k − l), joten m | ((a − c) − (b − d)) ja kohta (ii) on todistettu. Edelleen ac − bd = ac − bc + bc − bd = c(a − b) + b(c − d) = ckm + clm = m(ck + cl), joten m | (ac − bd) ja kohta (iii) on todistettu. Todistus.. Esimerkki 2.7. Sovelletaan lausetta 2.5 kongruensseihin 11 ≡ 3 (mod 4) ja. 6 ≡ 2 (mod 4), jolloin kongruenssit. 17 = 11 + 6 ≡ 3 + 2 = 5 (mod 4), 5 = 11 − 6 ≡ 3 − 2 = 1 (mod 4) ja 66 = 11 · 6 ≡ 3 · 2 = 6 (mod 4). ovat voimassa.. Lause 2.6. kuja. Jos. Olkoot. a≡b. a. (mod. ja. b. m),. kokonaislukuja sekä niin. k. a ≡b. k. (mod. k ja m m).. positiivisia kokonaislu-. Vrt. [5, s. 147] Olkoot a ja b kokonaislukuja sekä k ja m positiivisia kokonaislukuja. Oletetaan, että a ≡ b (mod m). Oletusten perusteella m | (a − b). Toisaalta Todistus.. (ak − bk ) = (a − b)(ak−1 + ak−2 b + · · · + abk−2 + bk−1 ),. joten (a − b) | (ak − bk ). 18.

(19) Lauseen 1.1 perusteella jaollisuus on transitiivinen, joten m | (ak − bk ) ja lause on todistettu.. Esimerkki 2.8. 6 ≡ 2 (mod 4), joten lauseen 2.6 perusteella 216 = 63 ≡. 23 = 8 (mod 4).. Lause 2.7. Olkoot a ja b sellaisia kokonaislukuja, että a ja b ovat kongruentteja modulo. m. ja modulo. n.. Jos. (m, n) = 1,. niin. a≡b. (mod. mn).. Vrt.[2, s.17]. Olkoot m ja n positiivisia kokonaislukuja sekä a ja b sellaisia kokonaislukuja, että a ≡ b (mod m) ja a ≡ b (mod n). Oletetaan lisäksi, että (m, n) = 1. Oletusten perusteella m | a − b ja n | a − b. Lisäksi m ja n ovat suhteellisia alkulukuja, joten lauseen 1.11 perusteella mn | a − b. Näin ollen a ≡ b (mod mn) ja lause on todistettu.. Todistus.. Esimerkki 2.9. Selvästi 39 ≡ 4 (mod 5), 39 ≡ 4 (mod 7) ja (5, 7) = 1. Lauseen 2.7 perusteella 39 ≡ 4 (mod 35).. Kryptosysteemi RSA:n yhteydessä on tarpeellista käsitellä kokonaislukujen suuria potensseja ja niiden kongruensseja. Esitetään seuraavassa modulaariseksi potenssiinkorotukseksi kutsuttu keino, jota käyttämällä kongruenssien laskeminen on suoraviivaísta tapaa nopeampaa. Modulaarisessa potenssiinkorotuksessa käytetyt luvut pysyvät verrattain pieninä [7, s. 127]. Luvun bN pienimmän positiivisen jäännöksen modulo m laskemiseksi, missä b, m ja N ovat positiivisia kokonaislukuja, käytetään luvun N binääk riesitystä (ak ak−1 . . . a1 a0 )2 . Ensin lasketaan lukujen b, b2 , . . . , b2 pienimmät positiiviset jäännökset modulo m neliöimällä ja sieventämällä moduloon m. j Sitten kerrotaan keskenään sellaiset lukujen b2 pienimmät positiiviset jäännökset modulo m, joilla luvulle j pätee, että aj = 1. Jokaisen tulon jälkeen sievennetään moduloon m. [5, s. 148]. Esimerkki 2.10. Lasketaan luvun 1737 pienin positiivinen jäännös modulo. 77 käyttäen edellä kuvattua modulaarista potenssiinkorotusta. Esimerkin 1.3 perusteella (37)10 = (100101)2 . Lasketaan ensin lukujen 2, 22 , . . . , 232 pienim-. 19.

(20) mät positiiviset jäännökset modulo m ja saadaan seuraavat kongruenssit 17 ≡ 17 (mod 77), 172 ≡ 58 (mod 77), 174 ≡ 582 (mod 77) ≡ 53 (mod 77), 8 17 ≡ 532 (mod 77) ≡ 37 (mod 77), 16 17 ≡ 372 (mod 77) ≡ 60 (mod 77), 32 17 ≡ 602 (mod 77) ≡ 58 (mod 77).. Edelleen 1737 = 1732 174 17 ≡ 58 · 53 · 17 = 3074 · 17 ≡ 71 · 17 = 1207 ≡ 52 (mod 77),. joten 1737 ≡ 52 (mod 77). 2.2. Jäännössysteemeistä. Määritelmä 2.3. Täydellinen jäännössysteemi modulo m on joukko sellaisia kokonaislukuja, että jokainen kokonaisluku on kongruentti modulo m täsmälleen yhden tämän joukon alkion kanssa.. Esimerkki 2.11. Kokonaisluvut 0, 1, 2, . . . , m − 1 muodostavat täydellisen jäännössysteemin modulo m. Apulause 2.1. kuja modulo Todistus.. m. Joukko, jossa on. m. kappaletta ei-kongruentteja kokonaislu-. muodostaa täydellisen jäännössysteemin modulo. m.. Ks. [5, s. 146].. Lause 2.8. Olkoot a ja m sellaisia positiivisia kokonaislukuja, että (a, m) = 1 ja olkoon modulo. b. m,. kokonaisluku. Jos niin myös. teemi modulo. r1 , r2 , . . . , rm on täydellinen jäännössysteemi ar1 + b, ar2 + b, . . . , arm + b on täydellinen jäännössys-. m.. Vrt. [5, s. 146]. Olkoot a ja m sellaisia positiivisia kokonaislukuja, että (a, m) = 1 ja olkoon b kokonaisluku. Oletetaan, että luvut r1 , r2 , . . . , rm muodostavat täydellisen jäännössysteemin modulo m Osoitetaan ensin, etteivät luvut ar1 + b, ar2 + b, . . . , arm + b ole pareittain kongruentteja modulo m. Nyt jos arj + b ≡ ark + b (mod m), niin lauseen 2.3 perusteella olisi arj ≡ ark (mod m). Edelleen, koska (a, m) = 1, niin seurauksen 2.1 perusteella. Todistus.. 20.

(21) rj ≡ rk (mod m). Oletuksen perusteella rj 6≡ rk (mod m), jos j 6= k , joten täytyy olla j = k . Luvut ar1 +b, ar2 +b, . . . , arm +b eivät ole keskenään kongruentteja modulo m ja niitä on m kappaletta, joten ne muodostavat apulauseen 2.1 perusteella täydellisen jäännössysteemin modulo m ja lause on todistettu.. 2.3. Lineaarisista kongruensseista. Kongruenssia, joka on muotoa ax ≡ b (mod m). kutsutaan yhden muuttujan lineaariseksi kongruenssiksi. Tutkitaan seuraavassa lineaaristen kongruenssien ratkeavuutta.. Lause 2.9.. Olkoot. (a, m) = d ja olkoon m positiivinen kokonaisluku. Jos d 6 | b, niin kongruenssilla ax ≡ b (mod m) ei ole ratkaisuja. Jos d | b, niin kongruenssilla ax ≡ b (mod m) on täsmälleen d kappaletta ei-kongruentteja ratkaisuja modulo m. a. ja. b. sellaisia kokonaislukuja, että. Vrt. [5, s. 154]. Olkoot a ja b sellaisia kokonaislukuja, että (a, m) = d ja olkoon m positiivinen kokonaisluku. Kongruenssi ax ≡ b (mod m) saadaan lauseen 2.1 perusteella muotoon ax − my = b, missä y on kokonaisluku. Huomataan, että saatu yhtälö on kahden muuttujan lineaarinen Diofantoksen yhtälö. Kokonaisluku x on käsiteltävän kongruenssin ratkaisu, jos ja vain jos on olemassa kokonaisluku y , jolle ax − my = b. Nyt lauseen 1.13 perusteella ratkaisuja ei ole, jos d 6 | b. Jos taas d | b, niin yhtälöllä on äärettömän monta ratkaisua. Edelleen lauseen 1.13 perusteella kaikki yhtälön ax − my = b ratkaisut ovat muotoa x = x0 + (m/d)t ja y = y0 + (a/d)t, missä t on kokonaisluku ja x = x0 ja y = y0 eräs ratkaisu. Nyt arvot x ovat myös kongruenssin ax ≡ b (mod m) ratkaisuja. Osoitetaan sitten, että ei-kongruentteja ratkaisuja modulo m on täsmälleen d kappaletta. Tutkitaan milloin ratkaisut x1 = x0 + (m/d)t1 ja x2 = x0 + (m/d)t2 ovat kongruentteja modulo m. Tällöin (m/d)t1 ≡ (m/d)t2 (mod m). Nyt (m/d) | m, joten (m, m/d) = m/d ja lauseen 2.4 perusteella t1 ≡ t2 (mod d). Tämän perusteella suurin mahdollinen joukko ei-kongruentteja ratkaisuja modulo m saadaan valitsemalla ratkaisut x = x0 + (m/d)t, missä t käy läpi täydellisen jäännössysteemin modulo d. Eräs kyseeseen tuleva jäännössysteemi saadaan, kun valitaan ratkaisut, joissa t = 0, 1, 2, . . . , d − 1. Näin Todistus.. 21.

(22) ollen ei-kongruentteja ratkaisuja modulo m on d kappaletta ja lause on todistettu.. Seuraus 2.2. Jos. Olkoot. (a, m) = 1, niin m.. a. ja. b. kokonaislukuja ja. kongruenssilla. ax ≡ b. m. (mod. positiivinen kokonaisluku.. m). on yksikäsitteinen rat-. kaisu modulo Todistus.. Tulos seuraa lauseesta 2.9.. Esimerkki 2.12. Etsittävä kongruenssin 8x ≡ 12 (mod 14) kaikki ratkaisut. Koska (8, 14) = 2 ja 2 | 12, niin lauseen 2.9 perusteella kongruenssilla on täsmälleen kaksi ei-kongruenttia ratkaisua modulo 14. Kongruenssi 8x ≡ 12 (mod 14) voidaan muuntaa kongruenssin ja jaollisuuden määritelmien perusteella muotoon 8x − 14y = 12, missä y on kokonaisluku. Saatu yhtälö on lineaarinen Diofantoksen yhtälö, joka voidaan ratkaista Eukleideen algoritmin tuottamia yhtälöitä hyödyntämällä. Eukleideen algoritmia käyttäen saadaan yhtälöt. Ratkaisu.. 14 = 8 · 1 + 6 8=6·1+2 6 = 2 · 3,. joista takaisin sijoittamalla saadaan 2 = 8−6·1 = 8−(14−8·1) = 8·2−14·1. Siis 2 = 8 · 2 − 14 · 1, josta edelleen luvulla 6 puolittain kertomalla saadaan 12 = 8 · 12 − 14 · 6. Edellisen perusteella yhtälön 8x − 14y = 12 eräs ratkaisu on x0 = 12 ja y0 = 6. Lauseen 2.9 todistuksen perusteella kongruenssin 8x ≡ 12 (mod 14) eikongruentit ratkaisut modulo 14 ovat x = x0 ≡ 12 (mod 14) ja x = x0 + (14/2) = x0 + 7 ≡ 19 ≡ 5 (mod 14).. Määritelmä 2.4. Olkoot a kokonaisluku ja (a, m) = 1. Kongruenssin ax ≡ 1 (mod m) ratkaisua kutsutaan. luvun. a. käänteisluvuksi modulo. m.. Esimerkki 2.13. Ratkaistava luvun 13 käänteisluku modulo 60. Ratkaisu. Ratkaistaan kongruenssi 13x ≡ 1 (mod 60). Koska (13, 60) = 1, niin lauseen 2.9 perusteella kongruenssilla on yksikäsitteinen ratkaisu modulo 60. Kongruenssi voidaan ratkaista Eukleideen algoritmia käyttäen kuten esimerkissä 2.12. Eukleideen algoritmin tuottamista yhtälöistä saadaan takaisin sijoittamalla yhtälö 1 = 13 · (−23) + 60 · 5, jonka perusteella x = −23 ≡ 37 (mod 60).. 22.

(23) 2.4. Kongruenssiyhtälöryhmät ja Kiinalainen jäännöslause. Lineaarisia kongruensseja on mahdollista käsitellä ryhmissä muiden yhtälötyyppien tapaan. Tarkastellaan tässä yhden muuttujan lineaarisia kongruensseja, joilla on eri moduli. Alla todistettu Kiinalainen jäännöslause on keskeinen tulos lukuteoriassa.. Apulause 2.2. luvuille. a. ja. b. Olkoot. m. ja. n. positiivisia kokonaislukuja. Kaikille kokonais-. on olemassa sellainen kokonaisluku. x,. että. x ≡ a (mod m) ja x ≡ b (mod n), jos ja vain jos Jos. x. a ≡ b (mod (m, n)).. on em. yhtälöryhmän ratkaisu, niin kokonaisluku. vain jos. Todistus.. y. on ratkaisu, jos ja. x ≡ y (mod [m, n]).. Ks. [3, s. 62]. Lause 2.10 (Kiinalainen jäännöslause). Olkoon k sellainen kokonaisluku, että. k ≥ 2.. Jos luvut. a1 , a2 , . . . , ak. ovat kokonaislukuja ja luvut. m1 , m2 , . . . , mk x,. pareittain suhteellisia alkulukuja, niin on olemassa sellainen kokonaisluku että Jos. x ≡ ai (mod mi ), x. missä. i = 1, 2, . . . , k.. on eräs kongruenssiyhtälöryhmän ratkaisu, niin kokonaisluku. y. on rat-. kaisu, jos ja vain jos. x ≡ y (mod m1 m2 · · · mk ).. Vrt. [3, s. 63] Olkoon k sellainen kokonaisluku, että k ≥ 2. Oletetaan, että luvut a1 , a2 , . . . , ak ja luvut m1 , m2 , . . . , mk ovat kuten lauseen muotoilussa. Todistetaan lause induktiolla luvun k suhteen. Oletetaan ensin, että k = 2. Tällöin [m1 , m2 ] = m1 m2 , joten kyseessä on edellisen apulauseen erikoistapaus. Olkoon siis k ≥ 3 ja oletetaan, että lause on tosi, kun ryhmässä on k − 1 kappaletta kongruensseja. Tällöin on olemassa kokonaisluku z siten, että z ≡ ai (mod mi ) indeksin i arvoilla 1, 2, . . . , k − 1. Nyt oletuksen perusteella luvut m1 , m2 , . . . , mk ovat pareittain suhteellisia alkulukuja, joten (m1 m2 · · · mk−1 , mk ) = 1. Edelleen, kun pidetään mielessä tapaus k = 2, huomataan, että on olemassa sellainen kokonaisluku x, että Todistus.. x ≡ z (mod m1 m2 · · · mk−1 ) ja x ≡ ak (mod mk ),. 23.

(24) joten. x ≡ z ≡ ai (mod mi ), missä i = 1, 2, . . . , k.. Osoitetaan sitten lauseen jälkimmäinen osa. Jos y on kongruenssiyhtälöryhmän toinen ratkaisu, niin mi | x − y , missä i = 1, 2, . . . , k . Edelleen, koska luvut m1 , m2 , . . . , mk ovat pareittain suhteellisia alkulukuja, havaitaan, että m1 m2 · · · mk | (x − y), joten x ≡ y (mod m1 m2 · · · mk ) ja lause on todistettu.. Seuraavassa esimerkissä ratkaistaan historiallisesti mielenkiintoinen vanha kiinalainen ongelmatehtävä.. Esimerkki 2.14. [5, s. 158]. Kun luku jaetaan luvuilla 3, 5 ja 7 jakojäännöksiksi saadaan luvut 1, 2 ja 3 tässä järjestyksessä. Mikä luku on kyseessä? Merkitään kysyttyä lukua kirjaimella x. Tehtävänannon perusteella x toteuttaa samanaikaisesti kongruenssit Ratkaisu.. x ≡ 1 (mod 3), x ≡ 2 (mod 5) ja x ≡ 3 (mod 7).. Modulit 3, 5 ja 7 ovat keskenään suhteellisia alkulukuja, joten Kiinalaisen jäännöslauseen perusteella kongruenssiyhtälöryhmälle on olemassa yksikäsitteinen ratkaisu modulo 3 · 5 · 7 = 105. Ensimmäisen kongruenssin perusteella 3t = x − 1 jollakin kokonaisluvulla t, joten x = 3t + 1. Sijoitetaan saatu x toiseen kongruenssiin, jolloin saadaan 3t + 1 ≡ 2 (mod 5),. jonka perusteella t ≡ 2 (mod 5). Kongruenssin määritelmästä seuraa, että on olemassa kokonaisluku u, jolla 5u = t − 2. Nyt x = 3(5u + 2) + 1 = 15u + 7. Sijoitetaan saatu x kolmanteen kongruenssiin ja saadaan 15u + 7 ≡ 3 (mod 7),. josta voidaan edelleen ratkaista u ≡ 3 (mod 7). Kuten edellä, kongruenssin perusteella on olemassa kokonaisluku v , jolla 7v = u − 3 ja edelleen x = 15(7v + 3) + 7 = 105v + 52. Muuntamalla viimeinen yhtälö kongruenssiksi saadaan ratkaisu x ≡ 52 (mod 105). Helposti huomataan, että saatu x toteuttaa kongruenssiyhtälöryhmän, sillä 52 ≡ 1 (mod 3), 52 ≡ 2 (mod 5) ja 52 ≡ 3 (mod 7). 24.

(25) 2.5. Eulerin funktio ja lause. Määritelmä 2.5.. Aritmeettinen funktio. killa positiivisilla kokonaisluvuilla.. on funktio, joka on määritelty kai-. Määritelmä 2.6. Aritmeettista funktiota sanotaan multiplikatiiviseksi funktioksi,. jos f (mn) = f (m)f (n) kun m ja n ovat suhteellisia alkulukuja. Funktio on täydellisesti multiplikatiivinen, jos sama pätee kaikilla positiivisilla kokonaisluvuilla m ja n.. Esimerkki 2.15. Funktio f (n) = n2 on multiplikatiivinen, ja itse asiassa. täydellisesti multiplikatiivinen, sillä f (mn) = (mn)2 = m2 n2 = f (m)f (n), missä m ja n ovat positiivisia kokonaislukuja.. Määritelmä 2.7. Olkoon n positiivinen kokonaisluku.. Eulerin funktio. φ. ilmaisee kuinka moni lukua n pienemmistä positiivisista kokonaisluvuista on suhteellinen alkuluku luvun n kanssa. Formaalimmin φ(n) = |{a : 1 ≤ a < n, (a, n) = 1}| ,. a, n ∈ Z+ .. Esimerkki 2.16. Taulukkoon 1 on koottu Eulerin funktion φ(n) arvot, kun 1 ≤ n ≤ 10.. n 1 2 3 4 5 6 7 8 9 10 φ(n) 1 1 2 2 4 2 6 4 6 4. Taulukko 1: Eulerin funktion φ(n) arvot, kun 1 ≤ n ≤ 10.. Lause 2.11.. Jos. kokonaisluku ja Todistus.. p on alkuluku, niin φ(p) = p − 1. φ(p) = p − 1, niin p on alkuluku.. Jos. p. on positiivinen. Vrt. [5, s. 241] Lauseen alkuosa seuraa suoraan funktion φ määri-. telmästä. Jos p ei ole alkuluku, niin p = 1 tai p on yhdistetty luku. Koska φ(1) = 1, niin φ(p) 6= p − 1, joten p = 1 ei tule kyseeseen. Jos taas p on yhdistetty luku niin jokin luku d, 1 < d < p, jakaa luvun p. Tällöin luonnollisesti (p, d) 6= 1. Koska ainakin yksi kokonaisluvuista 1, 2, . . . , p−1 ei ole suhteellinen alkuluku luvun p kanssa, huomataan, että φ(p) ≤ p − 2. Siis, jos φ(p) = p − 1, niin p on alkuluku.. Lause 2.12. Olkoon p alkuluku ja a positiivinen kokonaisluku. Tällöin φ(pa ) =. pa − pa−1 .. 25.

(26) Vrt. [5, s. 241] ja [9, s. 164]. Todistetaan lause tutkimalla sellaisten lukua pa pienempien tai sen kanssa yhtäsuurten positiivisten kokonaislukujen määrää, jotka eivät ole suhteellisia alkulukuja luvun pa kanssa. Tällaiset lukua pa pienemmät tai sen kanssa yhtäsuuret luvut ovat jaollisia luvulla p, joten ne ovat muotoa kp, missä 1 ≤ k ≤ pa−1 . Kuvatunlaisia lukuja on täsmälleen pa−1 kappaletta, joten lukua pa pienempiä luvun pa kanssa suhteellisia alkulukuja on pa −pa−1 kappaletta. Funktion φ määritelmän perusteella. Todistus.. φ(pa ) = pa − pa−1 .. Esimerkki 2.17. Luku 3 on alkuluku, joten φ(33 ) = 33 − 32 = 18. Lause 2.13.. Eulerin funktio on multiplikatiivinen.. Vrt. [5, s. 242]. Oletetaan, että m ja n ovat suhteellisia alkulukuja ja osoitetaan, että φ(mn) = φ(m)φ(n). Esitetään mn ensimmäistä kokonaislukua seuraavalla tavalla.. Todistus.. 1 2 3. m + 1 2m + 1 · · · m + 2 2m + 2 · · · m + 3 2m + 3 · · ·. (n − 1)m + 1 (n − 1)m + 2 (n − 1)m + 3. r. m + r 2m + r · · ·. (n − 1)m + r. .. .. .. .. m. .. .. .. .. .. .. .. .. 2m. 3m. ···. .. . .. .. mn. Oletetaan, että r on sellainen kokonaisluku, jolle 1 ≤ r ≤ m ja (r, m) = d > 1. Nyt r:nnen rivin jäsenet ovat muotoa km+r, missä k on kokonaisluku, jolle 1 ≤ k ≤ n − 1. Edelleen d jakaa luvut m ja r, joten d jakaa luvut km + r. Tästä seuraa, että ko. rivin jäsenistä mikään ei ole suhteellinen alkuluku luvun mn kanssa. Luvun mn kanssa suhteellisia alkulukuja löytyy siis r:nneltä riviltä vain jos (r, m) = 1. Oletetaan siis, että (r, m) = 1 ja 1 ≤ r ≤ m ja tutkitaan montako luvun mn kanssa suhteellista alkulukua ko. riviltä löytyy. Kaikki rivin luvut ovat suhteellisia alkulukuja luvun m kanssa, sillä (r, m) = 1. Rivin kokonaisluvut ovat muotoa r, m + r, 2m + r, . . . , (n − 1)m + r ja muodostavat täydellisen jäännössysteemin modulo n lauseen 2.8 perusteella. Tällöin φ(n) kappaletta näistä kokonaisluvuista on suhteellisia alkulukuja luvun n kanssa. Edelleen koska luvut ovat suhteellisia alkulukuja luvun m kanssa, ne ovat suhteellisia alkulukuja myös luvun mn kanssa. 26.

(27) Siis esityksessä on φ(m) riviä joissa jokaisessa on φ(n) kappaletta luvun mn kanssa suhteellista alkulukua. Tämän perusteella φ(mn) = φ(m)φ(n) ja lause on todistettu.. Seuraus 2.3. Todistus.. Olkoot. p. ja. q. alkulukuja. Tällöin. φ(pq) = (p − 1)(q − 1).. Olkoot p ja q alkulukuja. Tällöin lauseiden 2.13 ja 2.11 perusteella φ(pq) = φ(p)φ(q) = (p − 1)(q − 1).. Eulerin funktion multiplikatiivisuus ja sen seurauslause alkuluvuille on keskeinen luvussa 4 esiteltävän kryptosysteemi RSA:n kannalta.. Määritelmä 2.8.. n on joukko kokonaislukuja, joista jokainen on suhteellinen alkuluku luvun n kanssa. Lisäksi joukon mitkään kaksi eri alkiota eivät ole kongruentteja modulo n. Supistettu jäännössysteemi modulo. Esimerkki 2.18. Luvut 1, 2, 4, 5, 7 ja 8 muodostavat supistetun jäännössysteemin modulo 9.. Lause 2.14.. Olkoot a ja n sellaisia positiivisia kokonaislukuja, että (a, n) = 1. Jos r1 , r2 , . . . , rφ(n) on supistettu jäännössysteemi modulo n, niin myös ar1 , ar2 , . . . , arφ(n) on supistettu jäännössysteemi modulo n.. Vrt. [5, s. 234]. Olkoot a ja n sellaisia positiivisia kokonaislukuja, että (a, n) = 1. Oletetaan, että luvut r1 , r2 , . . . , rφ(n) muodostavat supistetun jäännössysteemin modulo n. Osoitetaan ensin, että kokonaisluvut arj ja n ovat suhteellisia alkulukuja. Tehdään vastaoletus, että (arj , n) > 1. Tällöin on olemassa alkuluku p siten, p | (arj , n). Tällöin p | a tai p | rj , joten p | a ja p | n tai p | rj ja p | n. Tästä seuraa ristiriita, sillä rj kuuluu oletuksen perusteella supistettuun jäännössysteemiin modulo n, joten molemmat p | rj ja p | n eivät voi toteutua. Samaten, koska (a, n) = 1, molemmat p | a ja p | n eivät voi toteutua. Näin ollen arj ja n ovat suhteellisia alkulukuja, kun j = 1, 2, . . . , φ(n). Osoitetaan sitten, että mitkään kaksi lukua arj eivät ole kongruentteja modulo n. Tehdään jälleen vastaoletus, että arj ≡ ark (mod n), missä j ja k ovat erillisiä kokonaislukuja, joille 1 ≤ j, k ≤ φ(n). Oletuksen perusteella (a, n) = 1, joten seurauslauseen 2.1 mukaan rj ≡ rk (mod n). Oletuksen perusteella rj ja rk kuuluvat supistettuun jäännössysteemiin modulo n, joten tämä on ristiriita. Todistus.. 27.

(28) Näin ollen mitkään kaksi lukua arj eivät ole kongruentteja modulo n ja lause on todistettu.. Esimerkki 2.19. Luvut 1, 2, 4, 5, 7 ja 8 muodostavat supistetun jäännössysteemin modulo 9, joten luvut 1 · 5 = 5, 2 · 5 = 10, 4 · 5 = 20, 5 · 5 = 25, 7 · 5 = 35 ja 8 · 5 = 40 muodostavat supistetun jäännössysteemin modulo 9.. Lause 2.15 (Eulerin lause). naisluku. Jos. (a, m) = 1,. niin. Olkoon. a. φ(m). m positiivinen ≡ 1 (mod m).. kokonaisluku ja. a. koko-. Vrt. [5, s. 235]. Olkoot a kokonaisluku ja m positiivinen kokonaisluku, joilla (a, m) = 1. Olkoot luvut r1 , r2 , . . . , rφ(m) sellainen supistettu jäännössysteemi modulo m, että 0 ≤ ri ≤ m ja (ri , m) = 1, missä 1 ≤ i ≤ φ(m). Oletuksen mukaan (a, m) = 1, joten edellä todistetun lauseen 2.14 perusteella myös luvut ar1 , ar2 , . . . , arφ(m) muodostavat supistetun jäännössysteemin modulo m. Nyt luvut r1 , r2 , . . . , rφ(m) ovat lukujen ar1 , ar2 , . . . , arφ(m) pienimmät positiiviset jäännökset modulo m. Tämän ja kongruenssin ominaisuuksien perusteella saadaan kertolaskun avulla kongruenssiyhtälö Todistus.. aφ(m) r1 r2 · · · rφ(m) ≡ r1 r2 · · · rφ(m) (mod m).. Nyt (r1 r2 · · · rφ(m) , m) = 1, joten seurauslauseen 2.1 perusteella aφ(m) ≡ 1 (mod m) ja lause on todistettu.. Eulerin lauseen avulla voidaan laskea käänteislukuja modulo m, sillä jos. (a, m) = 1, niin. a · aφ(m)−1 = aφ(m) ≡ 1 (mod m).. Tällöin aφ(m)−1 on luvun a käänteisluku modulo m.. Esimerkki 2.20. 3φ(5)−1 = 33 = 27 ≡ 2 (mod 5), joten 2 on luvun 3 käänteisluku modulo 5.. Seuraus 2.4 (Fermat'n pieni lause). kokonaisluku. Jos. p 6 | a,. niin. a. p−1. ≡1. Olkoon (mod. p. alkuluku ja. a. positiivinen. p).. Todistus. Vrt. [3, s. 68] Jos p on alkuluku ja a sellainen positiivinen kokonaisluku, että p 6 | a, niin (a, p) = 1 ja φ(p) = p − 1. Eulerin lauseen perusteella. ap−1 ≡ aφ(p) ≡ 1 (mod p),. 28.

(29) joten lause on todistettu.. Huomautus. Kronologisesti katsoen Pierre de Fermat esitti Fermat'n pieneksi lauseeksi kutsutun tuloksen ennen Eulerin lausetta. Leonhard Euler julkaisi ensimmäisenä todistuksen Fermat'n pienelle lauseelle ja esitti Eulerin lauseena tunnetun yleistyksen vasta muutama vuosikymmen myöhemmin. Fermat'n pienen lauseen todistus, jossa ei hyödynnetä Eulerin lausetta, esitetään mm. teoksessa [5, s. 217].. 29.

(30) 3 Kryptograa Luvussa 3 käydään läpi kryptograaan liittyviä käsitteitä ja esitellään esimerkein miten viestien salaaminen yksinkertaisessa perustilanteessa tapahtuu. Aliluvussa 3.3 tutustutaan julkisen avaimen kryptosysteemin ideaan. Luvun tiedot perustuvat pääosin Arto Salomaan teokseen Public-Key Cryptography [7]. 3.1. Kryptosysteemi. Yksinkertaisimmassa perustilanteessa salausmenetelmiä tarvitaan, kun salassa pidettävä viesti on lähetettävä turvatonta viestintäkanavaa käyttäen. Turvattomalla viestintäkanavalla tarkoitetaan kanavaa, jota käytettäessä jollain kolmannella taholla on mahdollisuus lukea lähetetyt viestit. Kommunikoivien tahojen on sovittava käytettävästä salaus- ja purkumenetelmästä etukäteen. Perustapaus on hyvin yksinkertainen: lähettäjä salaa ja lähettää viestin, jonka jälkeen vastaanottaja purkaa sen. Viestin salaamisesta ja purkamisesta käytetään termejä kryptaaminen ja dekryptaaminen. Alkuperäisessä, salaamattomassa muodossa olevaa viestiä kutsutaan selvätekstiksi ja sitä vastaavaa salattua viestiä kryptotekstiksi. Selvä- ja kryptotekstit jaetaan tavallisesti viestilohkoiksi, joiden koko määräytyy käytettävän salausmenetelmän mukaan. Prosessia voidaan kuvata lyhyemmin ja yksinkertaisemmin seuraavalla formalismilla, missä w on selväteksti, c sitä vastaava kryptoteksti, E salaus- ja D purkumenetelmä: E(w) = c ja D(c) = w. [7, s. 1] Oheinen kuva 1 kokoaa edellä esitetyn ja kuvailee kryptosysteemin toimintaa.. Kuva 1: Kryptosysteemin toiminta.. 30.

(31) Määritelmä 3.1. Vrt. [7, s. 3] Kryptosysteemi muodostuu kolmikosta (P T, CT, K),. missä. (i) Selvätekstiavaruus P T on selvätekstien joukko (ii) Kryptotekstiavaruus CT on kryptotekstien joukko (iii) Avainavaruus K on joukko avaimia k , joista jokainen määrittää jonkin tietyn salausmenetelmän Ek ja sitä vastaavan purkumenetelmän Dk . Hyvällä kryptosysteemillä tulee olla tiettyjä ominaisuuksia. Otetaan tässä esimerkkinä Sir Francis Baconin ehdottama kolmekohtainen lista edellä esiteltyä terminologiaa käyttäen. (i) Kun tunnetaan salausmenetelmä ja selväteksti, kryptotekstin muodostaminen on helppoa. Kun tunnetaan purkumenetelmä ja kryptoteksti, selväteksti on helposti selvitettävissä. (ii) Selvätekstin selvittäminen kryptotekstistä on mahdotonta ilman purkumenetelmän tuntemista (iii) Kryptoteksti ei saa erottua muusta viestiliikenteestä. Ensiksikään kryptosysteemin ei siis tulisi olla liian monimutkainen ja sen käyttö ei saisi vaatia suurta määrää laskentatehoa. Vaatimus systeemin yksinkertaisuudesta korostui erityisesti ennen tietokoneita ja niiden tarjoamaa laskentatehoa. Toiseksi, systeemin murtamisen tulisi olla vaikeaa. Tietokoneiden merkitys kryptograassa on suuri, joten sana mahdoton tulisi korvata termillä laskennallisesti hankalaa. Tulee siis olettaa, että systeemin murtaminen ei onnistu järkevässä ajassa, vaikka laittomia purkuyrityksiä tekevillä tahoilla olisikin käytössään tehokkaita tietokoneita. Kolmannella kohdalla ei enää nykyään ole suurta merkitystä, sillä sekä selvä-, että kryptotekstit ovat hyvin samankaltaisia. Tietokoneita käytettäessä viestit ovat sekä salaamattomassa että salatussa muodossaan tavallisimmin bittijonoja, joita on vaikea erotella toisistaan silmämääräisesti. [7, s. 5] Esitetään seuraavassa esimerkki yksinkertaisesta kryptosysteemistä havainnollistamaan edellä käsiteltyä. Lähde [7, s. 5] kuvaa tässä esiteltävää kryptosysteemiä vain yleisellä tasolla; tässä esitettävä matemaattinen muotoilu perustuu pääosin lähteeseen [5, s. 279]. Esimerkkisysteemi perustuu kirjainten korvaamiseen toisilla kirjaimilla. Selväteksti salataan korvaamalla jokainen kirjain erikseen aakkosissa k askelta sitä edempänä olevalla kirjaimella. Luonnollisesti k aakkoston viimeistä kirjainta korvataan k :lla ensimmäisellä. Olkoon w salattavan kirjaimen numeerinen vastine, c sitä vastaavan salatun kirjaimen numeerinen vastine ja k avain. Tällöin kongruenssia käyttäen merkitään c ≡ w + k (mod 29). 31.

(32) Tässä on käytetty suomalaista aakkostoa siten, että kirjainta A vastaa luku 0, kirjainta B luku 1 ja edelleen kirjainta Ö vastaa luku 28. Viestin salaamiseksi valitaan avain k joukosta 0, 1, . . . , 28, muunnetaan jokainen kirjain sitä vastaavaksi luvuksi, lasketaan kongruenssit ja muunnetaan saadut luvut takaisin niitä vastaaviksi aakkoston kirjaimiksi. Salatun viestin purkaminen tapahtuu vastaavasti, tosin kirjaimet korvataan k askelta taaempana olevilla. Edellä käytetyin merkinnöin w ≡ c − k (mod 29). Kuvattuun kryptosysteemiin viitataan usein Caesarin kryptosysteemin nimellä ensimmäisen oletetun käyttäjänsä Julius Caesarin mukaan. Caesar käytti systeemiä avaimen k arvolla 3 modulin ollessa 26. Havainnollistetaan esitellyn systeemin käyttöä seuraavassa esimerkissä.. Esimerkki 3.1. Salataan viesti RSA PERUSTUU LUKUTEORIAAN käyttäen edellä kuvattua Caesarin kryptosysteemiä ja 29 kirjainta käsittävää aakkostoa. Selväteksti jaetaan ensin viiden kirjaimen mittaisiin lohkoihin ja kirjaimet korvataan yksitellen numeerisilla vastineillaan, jolloin saadaan RSAPE RUSTU ULUKU TEORI AAN ja 17 18. 0. 19. 14 17 8. 4. 15 4. 17 20 18 19 20 0. 0. 20 11 20 10 20. 13.. Lohkoihin jaolla pyritään tässä estämään sanojen tunnistaminen. Seuraavaksi viesti salataan laskemalla luku kerrallaan kongruenssit c ≡ w + 3 (mod 29), josta saadaan kryptotekstilohkot 20 21. 3. 22. 17 20 11. 7. 18. 7. 20 23 21 22 23 3. 3. 23 14 23 13 23. 16,. jotka tulevat takaisin kirjaimiksi muunnettuina muotoon UVDSH UXVWX XOXNX WHRUL DDQ. Viestin purkaminen tapahtuu vastaavasti, kuten jo edellä todettiin, käyttäen laskuissa kongruenssia w ≡ c − 3 (mod 29). Yllä esitellyssä tapauksessa kryptosysteemin selvätekstiavaruus P T ja kryptotekstiavaruus CT muodostuvat suomalaisesta 29 kirjaimen aakkostosta. Vastaavasti avainavaruus K = {0, 1, . . . , 28}. Systeemin turvallisuuteen 32.

(33) palataan seuraavassa aliluvussa mutta on hyvä huomata, että avain k = 0 on selvästi erittäin huono valinta, sillä tällöin c ≡ w + 0 ≡ w (mod 29). Tällaisia viestejä, jotka pysyvät salattaessa ennallaan, kutsutaan kiintopisteviesteiksi. [7, s. 5] Caesarin kryptosysteemi on esimerkki klassisesta kryptosysteemistä. Tällaisille kryptosysteemeille on ominaista, että purkumenetelmän selvittäminen salausmenetelmän perusteella on helppoa. Julkisen avaimen kryptosysteemien suurin etu onkin juuri siinä, että salausmenetelmä voidaan julkistaa ilman pelkoa systeemin murtumisesta. Edellä mainitun vuoksi klassisista kryptosysteemeistä käytetään joskus termejä symmetrinen tai kaksisuuntainen ja julkisen avaimen systeemeistä termejä epäsymmetrinen ja yksisuuntainen. Palaamme julkisen avaimen systeemeihin tarkemmin aliluvussa 3.3. [7, s. 6, 10] 3.2. Kryptanalyysi. Kryptanalyysilla tarkoitetaan pyrkimyksiä murtaa salattu viesti ilman purkumenetelmän tai sen määrittävän avaimen tuntemista. Kryptanalyysilla ja viestin normaalilla purkamisella on sama päämäärä, selvätekstin selvittäminen, mutta keinoissa ja luultavasti myös motiiveissa on merkittävä ero. Aliluvun sisältö perustuu Salomaan esitykseen lähteessä [7, s. 7, 10]. Oletetaan jatkossa, että kryptanalyysin tekijä tuntee käytetyn kryptosysteemin, muttei käytettyä avainta. Systeemin murtaminen on helppoa, jos mahdollisia avaimia on vain vähän. Edellä esitelty Caesarin kryptosysteemi on hyvä esimerkki tilanteesta, jossa oikean avaimen löytäminen kokeilemalla on helppoa. Kryptosysteemin murtaminen voi tapahtua monella eri tavalla. Jo edellä mainittiin vaatimus hyvälle kryptosysteemille, jonka mukaan kryptotekstiä ei tulisi pystyä purkamaan ilman purkumenetelmän tuntemista. Esitetään tässä tarkemmin joitain erilaisia keinoja systeemin murtamiseksi. Hyökkäys tai murtoyritys pelkän kryptotekstin osan perusteella on yksinkertaisille systeemeille kohtalokas (vrt. Caesar), jo lyhyt osa kryptotekstiä voi paljastaa käytetyn salausavaimen. Tehokas pelkkään kryptotekstin osaan perustuva kryptanalyysi pohjaa usein selvätekstin kirjainten esiintymistiheyteen. Eri kielillä kirjoitetuissa tekstipätkissä kirjaimilla on usein havaittavissa tietty esiintymistiheys, jonka perusteella niitä vastaavat kryptatut kirjaimet on mahdollista päätellä. Kryptanalyysin kannalta on tietenkin parempi, mitä pidempi käytettävissä oleva kryptotekstin osa on. Kryptanalyysi selvätekstin osien perusteella tarkoittaa sitä, että kryptanalyysin tekijä tuntee ennalta joitain selvä- ja kryptotekstipareja (w, Ek (w)). Valmiiden parien tunteminen voi helpottaa kryptotekstin analysointia merkittävästi. Erityisesti Caesarin kryptosysteemin kaltaiset salausmenetelmät murtuvat näin helposti. Systeemin murtamismahdollisuudet paranevat, jos kryptanalyysin tekijän on mahdollista valita käytössään olevat selvätekstin 33.

(34) osat. Erityisesti, jos on olemassa aiempaa tietoa käytetystä avaimesta, systeemin murtaminen on todennäköisempää. Kryptosysteemejä pyritään tietenkin murtamaan myös pelkän salausmenetelmän tuntemisen perusteella ilman tietoja kryptotekstistä. Tilanne on tyypillinen erityisesti edellä käsiteltävien julkisen avaimen kryptosysteemien tapauksessa, sillä tällöin salausmenetelmä on usein hyvissä ajoin kryptanalyysin tekijän tiedossa. Systeemin analysointi on tällöin mahdollista tehdä etukäteen. Joissakin tapauksissa purkumenetelmää on mahdotonta löytää pelkän salausmenetelmän perusteella, sillä oikean purkumenetelmän valitseminen suuresta joukosta kandidaatteja on mahdotonta. Kryptosysteemi RSA:n yhteydessä tarkastellaan joitain tunnettuja haavoittuvuuksia (aliluku 4.2), jotka on hyvä ottaa huomioon systeemin käyttöä valmisteltaessa. 3.3. Julkisen avaimen kryptosysteemi. Toisin kuin klassisissa kryptosysteemeissä, julkisen avaimen kryptosysteemeissä salausmenetelmä voidaan julkistaa ilman riskiä siitä, että sen avulla voitaisiin muodostaa salattujen viestien avaamisessa tarvittava purkumenetelmä järkevässä ajassa. Julkisen avaimen kryptosysteemeissä käytetyt salausmenetelmät ovat tunnettuja, toisin sanoen salattujen viestien turvallisuus ei riipu käytetyn salausalgoritmin tunnettuudesta. Idean julkisen avaimen kryptosysteemistä esittivät 1970-luvulla Whiteld Die ja Martin Hellman. [7, s. 55] Viestin salaaminen ja purkaminen ovat toisilleen käänteisiä toimenpiteitä, joten todellisuudessa purkumenetelmä voidaan saada selville salausmenetelmän avulla. Kryptosysteemiä voidaan kuitenkin pitää turvallisena siinä mielessä, että purkumenetelmän selvittäminen tarjolla olevin keinoin voi viedä jopa satoja vuosia. Julkisen avaimen kryptosysteemien turvallisuudella ei siis tässä tarkoiteta sitä, että viesti pysyisi salassa ikuisesti. [7, s. 55]. 3.3.1 Idea Julkisen avaimen kryptosysteemin idea liittyy läheisesti yksisuuntaisen funktion ideaan. Tällöin muuttujan x avulla on helppoa laskea funktion arvo f (x), mutta muuttujan x arvon laskeminen funktion arvosta tulisi olla hankalaa. Kryptosysteemin kannalta on olennaista, että muuttujan arvon x laskeminen on vaikeaa vain systeemin murtajalle, ei viestin tarkoitetulle purkajalle. Tällaisesta funktiosta, jossa on olemassa ns. salaluukku, käytetään termiä kryptogranen funktio. Kryptograsia funktioita ei tunneta, sillä on erittäin hankalaa todistaa, että jokin tietty laskennallinen ongelma olisi hankala vaativuusteorian mielessä. Funktioita, joita pidetään kryptograsina, on kuitenkin olemassa. Kryptogranen tai ei, muuttujan arvon laskeminen funktion arvosta ei ole ainoa tapa murtaa kryptosysteemiä. On mahdollista, että 34.

(35) löytyy jokin parempi keino, jolla oletettu laskennan hankaluus vältetään. [7, s. 57] Kuvataan seuraavassa julkisen avaimen kryptosysteemin ideaa tarkemmin. Asiaa kuvataan monissa lähteissä hyvin samankaltaisesti. Oletetaan, että yhteisössä on n kappaletta henkilöitä, jotka haluavat kommunikoida keskenään käyttäen salattuja viestejä, ja että käytetty kryptosysteemi on yleisesti tiedossa. Jokainen heistä muodostaa käytettävän kryptosysteemin perusteella henkilökohtaiset avaimensa, joiden avulla viesti voidaan salata ja purkaa. Tämän jälkeen salaukseen käytettävät avaimet k1 , . . . , kn julkaistaan. Kun henkilö, olkoon hän tässä i, haluaa lähettää viestin henkilölle j , hän muuntaa ensin viestinsä salauksen kannalta tarkoituksenmukaiseen muotoon. Sitten hän salaa viestin käyttäen j :n julkisen avaimen ja valitun kryptosysteemin määräämää salausmenetelmää Ekj . Vastaanottaja j purkaa viestin käyttäen purkumenetelmää Dkj , jonka vain hän itse tuntee, ja muuntaa viestin luettavaan muotoon. [5, s. 308] Edellä käytetyin merkinnöin Dkj (c) = Dkj (Ekj (w)) = w.. 3.3.2 Edut Julkisen avaimen kryptosysteemien käytön suurimpia etuja on avaintenhallinta. Koska klassisten systeemien tapauksessa avaimia ei voida julkaista, pitää osapuolten sopia salauskäytännöistä etukäteen varmasti turvallisella tavalla. Julkisen avaimen systeemissä tätä ongelmaa ei ole, koska käytetty kryptosysteemi ja tietyn salausmenetelmän määrittävät avaimet ovat julkisia. Osapuolien ei tarvitse tavata, eikä edes tuntea toisiaan. Salattujen viestien välityksellä kommunikointi on näin ollen helppoa, erityisesti jos salatulle viestinnälle on yhteisössä suuri tarve. [7, s. 71] Julkisen avaimen systeemit ovat yleisesti ottaen klassisia systeemejä hitaampia käyttää. Muun muassa tästä syystä julkisen avaimen kryptosysteemiä hyödynnetään klassisten systeemien avaintenvaihdossa. Tällöin saadaan hyödynnettyä molempien systeemien etuja tehokkaasti. [7, s. 156] Tarvittavien avaimien määrä on seikka, joka tulee ottaa huomioon. Oletetaan, että n henkilöä kommunikoi käyttäen salattuja viestejä. Salattu kommunikointi julkisen avaimen kryptosysteemiä käyttäen vaatii tällöin henkilökohtaisten salassapidettävien avainten lisäksi vain n kappaletta julkisia avaimia. Klassisen kryptosysteemin tapauksessa vastaava tilanne vaatii n(n−1)/2 (aritmeettisen jonon summa) avainta, jolloin jokaisen tulee säilyttää n − 1 kappaletta salaisia avaimia. Avaimien määrän lisäksi klassiset ja julkisen avaimen kryptosysteemit voivat erottua käytettyjen avaimen pituuden osalta. Klassisen kryptosysteemin käyttäjien tulee vaihtaa avaimia turvallista kanavaa käyttäen, joten on järkevää, että avain on jatkossa välitettävää kryptotekstiä lyhyempi. Jos näin ei olisi, voitaisiin koko kommunikointi hoitaa käytössä olevaa turvallista kanavaa pitkin. Julkisen avaimen kryptosystee35.

Referensi

Dokumen terkait

Kenyataan setelah 15 tahun, masih banyak hal yang harus dilakukan untuk memajukan sistem kebijakan dan manajemen untuk mengatasi masalah kesehatan di Indonesia.. • Situasi di

Penelitian Kebijakan untuk Evaluasi Kebijakan (2) Penetapan agenda Perumusan Kebijakan Pelaksanaan Kebijakan Monitoring Pelaksanaan Evaluasi Kebijakan... Penelitian Kebijakan

Dibuat dengan menggunakan konsentrasi ekstrak yang lebih tinggi serta dilakukan formulasi sediaan semi-solid lain menggunakan ekstrak kulit nanas sebagai tabir

interpersonal, terutama teman sesama penyuluh, kontak tani/peternak maju, dan Kepala Dinas. Sumber informasi yang tingkat penggunaannya rendah antara lain konsultasi

Profesionalisme guru yang dimaksud adalah: gambaran unjuk kerja yang telah ditampilkan oleh guru-guru pendidikan jasmani SMU N di Kabupaten DIY lulusan Prodi PJKR FIK UNY, dilihat

Pembukuan Perusahaan dan anak perusahaan, kecuali Thai Indo Kordsa Co.,Ltd.(TIK), diselenggarakan dalam mata uang Rupiah. Transaksi-transaksi selama tahun berjalan

Permasalahan-permasalahan yang dihadapi dalam penelitian ini diantaranya adalah, berapakah dimensi alat RBCs perancangan (design) dengan skala laboratorium yang

Bagi usaha ritel, tentu ada beberapa perubahan yang terjadi selama masa pandemi  seperti misalnya ​jam operasional​ maupun ​layanan​ yang ditawarkan oleh usaha Anda.  Penting