RSA-salausalgoritmi ja alkuluvut Jussi Palola

Koko: px
Aloita esitys sivulta:

Download "RSA-salausalgoritmi ja alkuluvut Jussi Palola"

Transkriptio

1 RSA-salausalgoritmi ja alkuluvut Jussi Palola Tampereen Yliopisto Tietojenkäsittelytieteiden laitos Tietojenkäsittelyoppi Pro gradu -tutkielma Ohjaaja: Martti Juhola Huhtikuu 2008

2 Tampereen yliopisto Tietojenkäsittelytieteiden laitos Tietojenkäsittelyoppi Palola, Jussi: RSA-salausalgoritmi ja alkuluvut Pro gradu -tutkielma, 40 sivua Huhtikuu 2008 Tässä tutkielmassa tarkastellaan RSA-salausalgoritmia. RSA on yleisesti käytetty julkisen avaimen salakirjoitusmenetelmä. Se perustuu lukuteoreettiseen ongelmaan, jossa kahden luvun kertominen on yksinkertaista, mutta tuloksen jakaminen tekijöihin vaikeaa. Ensimmäisessä luvussa tutustutaan itse algoritmiin ja sen matemaattiseen perustaan. Toinen luku käsittelee suuria alkulukuja ja eritoten niiden luomista. Kolmannessa luvussa paneudutaan tekijöihinjaon ongelmiin ja käytettyihin menetelmiin. Avainsanat ja -sanonnat: RSA-salausalgoritmi, alkuluvut, kryptologia, lukuteoria, algoritmit, salaus i

3 Sisällys 1 Johdanto Julkisen avaimen salakirjoitusmenetelmä RSA Jaollisuus ja alkuluvut Suurin yhteinen tekijä Kongruenssi Lineaarikongruenssi Aritmetiikan peruslause Eulerin lause RSA-algoritmi Alkulukuparin valinta Alkulukulause Onko luku x alkuluku? Kokeilu jakamalla Miller-Rabin testi AKS testi Salausavaimen alkutekijät Alkutekijöihin jakaminen Kokeilu jakamalla Fermat'n menetelmä Pollard rho -menetelmä Pollard p - 1 -menetelmä Elliptinen käyrä -menetelmä Quadratic Sieve eli neliöseula Number Field Sieve eli lukukuntaseula Tekijöihinjako laitteistot TWINKLE eli pilke TWIRL eli pyörre Muita erityislaitteita Yhteenveto Viiteluettelo ii

4 1 Johdanto Tietojen salaaminen on ollut arkipäivää jo muinaisista ajoista lähtien. Mitä enemmän tietoa liikkuu, sitä enemmän tarvitaan myös menetelmiä sen salaamiseen ja varmentamiseen. Osa salaus- ja varmennusmenetelmistä perustuvat hyvinkin vanhoihin ideoihin. Tässä tutkielmassa esiteltävä RSA-salausalgoritmi kehitettiin 1970-luvun lopulla. Jos olisi kysymys pelkästään tekniikasta, 1970-luvulla kehitetty tietokone olisi tänä päivänä lähes hyödytön. RSA:n juuret ovat vieläkin kauempana historiassa kuin 1970-luvulla, nimittäin sveitsiläisen matemaatikon Leonhard Eulerin kehittämässä lauseessa vuodelta Iästään huolimatta RSA on lähes de facto standardi alallaan. Julkisen avaimen salakirjoitusmenetelmänä se mahdollistaa tiedon salaamisen lisäksi myös digitaalisen allekirjoituksen luomisen. Tutkielman ensimmäisessä luvussa esitellään RSA-algoritmi ja sen matemaattinen perusta. Määritelmät ja lauseet noudattavat pitkälti muotoa, jossa ne on esitetty Kenneth H. Rosenin teoksessa Elementary Number Theory and Its Applications [21]. Lukijaa ei ole tarkoituksella rasitettu ylimääräisellä informaatiolla tai monimutkaisilla todistuksilla, vaan niihin on vain viitattu. Tutkielman toinen luku perehtyy RSA-algoritmin salauksen kannalta tärkeimpään osaalueeseen eli alkulukuihin. Luvussa esitellään yleisimmät algoritmit alkulukujen luomiseen. Kolmannessa luvussa perehdytään tekijöihin jakamiseen. Tämä aihepiiri liittyy kiinteästi RSA-algoritmiin sillä se tarjoaa ainoan yleisen tavan murtaa kaikki RSA-salaukset. Muut kuin tekijöiden jakamiseen perustuvat hyökkäykset RSA-salausta vastaan on tarkoituksella sivuttu. Niihin ja muihin yleisiin salaukseen liittyviin kysymyksiin voi tutustua esimerkiksi Douglas Stinsonin kirjassa Cryptography: Theory and Practice [24]. Tutkielman esimerkit ovat tekijän itsensä kirjoittamia ja ratkaisemia, vaikka niihin olisikin otettu mallia lähdeteoksista. Myös pseudokoodipätkät ovat AKS-algoritmia lukuun ottamatta tekijän itsensä kirjoittamia. 1

5 2 Julkisen avaimen salakirjoitusmenetelmä RSA Julkisen avaimen salakirjoitusmenetelmät perustuvat ideaan, että on mahdollista kehittää menetelmä, jossa salausavaimesta ek on laskennallisesti mahdotonta päätellä purkuavain dk. Jos tämä on mahdollista, niin salausavain (tai menetelmä) ek voidaan julkistaa (julkinen avain). Viestin lähettäjä voi tällöin salata viestin vastaanottajan julkisella avaimella ilman, että vastaanottajan ja lähettäjän tarvitsee etukäteen vaihtaa tietoja salaa (vaikkapa tunnussanaa). Vastaanottaja on ainut, joka voi purkaa omalla julkisella avaimellaan salatun viestin käyttämällä omaa salaista purkuavaintaan dk (henkilökohtainen avain). Ensimmäisenä idean julkisen avaimen salausmenetelmästä esittivät Diffie ja Hellman vuonna Ensimmäisen menetelmän kehittivät Rivest, Shamir ja Adleman vuonna Tämä menetelmä tunnetaan nimellä RSA-salaus. Siitä lähtien on esitelty muitakin julkisen avaimen salausmenetelmiä, joiden turvallisuus perustuu erilaisiin laskennallisiin ongelmiin. RSA-salausalgoritmin turvallisuus perustuu lukuteorian ongelmaan isojen kokonaislukujen tekijöihin jakamisesta. 2.1 Jaollisuus ja alkuluvut Määritelmä 2.1. Olkoot a ja b kokonaislukuja (a 0). Jos on olemassa sellainen luku c, että b = ac, sanotaan että luku b on jaollinen luvulla a tai luku a jakaa luvun b. Jos luku a jakaa luvun b, sanotaan, että luku a on luvun b tekijä ja luku b on luvun a monikerta. Jos luku a jakaa luvun b voidaan kirjoittaa a b, vastaavasti jos luku b ei ole jaollinen luvulla a voidaan kirjoittaa a b. Esimerkki , 7 49, 7 40, 6 33, ja Määritelmä 2.2. Positiivinen kokonaisluku on alkuluku, jos sen ainoat positiiviset kokonaislukutekijät ovat luku itse ja luku 1. Muita kokonaislukuja sanotaan yhdistetyiksi luvuiksi. 2

6 Esimerkki 2.2. Kokonaisluvut 2, 3, 7, 13, 101 ja 163 ovat alkulukuja. Esimerkki 2.3. Kokonaisluvut 6 = 3 2, 21 = 7 3, ja 1001 = ovat yhdistettyjä lukuja. Apulause 2.1. Jokaisella lukua 1 suuremmilla positiivisella kokonaisluvulla on alkutekijä. Todistus. Ks. [21] s. 66. Lause 2.1. Jos n on yhdistetty luku, niin luvulla n on alkutekijä, joka ei ole suurempi kuin (n). Todistus. Ks. [21] s Suurin yhteinen tekijä Määritelmä 2.3. Kahden kokonaisluvun a ja b (a > 0 ja b > 0) suurin yhteinen tekijä on suurin kokonaisluku c, joka jakaa sekä luvun a että b. Suurin yhteinen tekijä merkitään (a, b) = c. Siitä käytetään myös lyhennettä syt (tai englanniksi greatest common divisor, gcd). Esimerkki 2.4. (25, 10) = 5, (16, 10) = 2, (23, 10) = 1. Määritelmä 2.4. Kokonaisluvut a ja b ovat keskenään jaottomia, jos luvulla a ja b suurin yhteinen tekijä (a, b) = 1. 3

7 Määritelmä 2.5. Kahden positiivisen kokonaisluvun a ja b pienin yhteinen jaettava on pienin positiivinen kokonaisluku, joka on jaollinen sekä luvulla a ja luvulla b. Pienin yhteinen jaettava merkitään [a, b] = c. Siitä käytetään myös lyhennettä pyj (tai englanniksi least common multiple, lcm). Esimerkki 2.5. [9, 11] = 99, [2, 10] = 10 ja [12, 18] = 36. Apulause 2.2. Jos x ja y ovat reaalilukuja, niin max(x, y) + min(x, y) = x + y. Todistus. Jos x y, niin min(x, y) = y ja max(x, y) = x, joten max(x, y) + min(x, y) = x + y. Jos x < y, niin min(x, y) = x ja max(x, y) = y, joten jälleen huomataan että max(x, y) + min(x, y) = x + y. Lause 2.2. Jos a ja b ovat positiivisia kokonaislukuja, niin [a, b] = ab / (a, b), missä [a, b] on luvun a ja b pienin yhteinen jaettava ja (a, b) on lukujen a ja b suurin yhteinen tekijä. Todistus. Olkoon luvuilla a ja b alkutekijät a = p a1 an 1 p 2 a2 p n ja b = p b1 1 p 2 b2 p bn n, missä eksponentit ovat ei-negatiivisia kokonaislukuja ja kaikki alkuluvut esiintyvät kummankin luvun tekijöinä (mahdollisesti eksponentilla 0). Olkoon M j = max(a j, b j ) ja m j = min(a j, b j ). Näin ollen [a, b](a, b) = p M1 1 p 2 M2 p Mn n p m1 mn 1 p 2 m2 p n M1 + = p m1 M2 + Mn + mn 1 p 2 m2 p n a1 + = p b1 a2 + an + bn 1 p 2 b2 p n = p a1 1 p 2 a2 p an n p b1 bn 1 p 2 b2 p n = ab, 4

8 koska M j + m j = max(a j, b j ) + min(a j, b j ) = a j + b j apulauseen 2.2 mukaan. 2.3 Kongruenssi Monille ohjelmointiin tutustuneille on tuttu käsite jakojäännöksestä (%), esimerkiksi 19 % 6 = 1. Kongruenssin idea on sama, vaikka esitysmuoto onkin erilainen. Äskeinen esimerkki olisi kongruenssin avulla esitettynä 19 1 (mod 6) eli 19 on kongruentti luvun 1 kanssa modulo 6. Määritelmä 2.6. Olkoon luku m positiivinen kokonaisluku. Jos a ja b ovat kokonaislukuja, sanotaan että luku a on kongruentti luvun b kanssa modulo m, jos m (a - b). Jos on a kongruentti luvun b kanssa modulo m, kirjoitetaan a b (mod m). Jos m (a - b), kirjoitetaan a b (mod m) ja sanotaan että a ja b ovat epäkongruentteja modulo m. Esimerkki (mod 11), koska 11 (26 4) = 22. Yhtälailla (mod 9). Toisaalta 9 2 (mod 8), koska 8 (9-2) = 7. Lause 2.3. Jos a ja b ovat kokonaislukuja, niin a b (mod m), jos ja vain jos, on olemassa sellainen kokonaisluku k että a = b + km. Todistus. Jos a b (mod m), niin m (a b). Tästä seuraa, että on olemassa kokonaisluku k niin että km = a b, joten a = b + km. Käänteisesti, jos on olemassa kokonaisluku k niin että a = b + km, niin km = a b. Joten m (a b) ja tämän seurauksena a b (mod m). Lause 2.4. Olkoon m positiivinen kokonaisluku. Kongruenssit modulo m täyttävät 5

9 seuraavat kriteerit. I. Refleksiivisyys. Jos a on kokonaisluku niin a a (mod m) II. Symmetrisyys. Jos a ja b ovat kokonaislukuja, niin että a b (mod m), niin b a (mod m). III. Transitiivisuus. Jos a, b ja c ovat kokonaislukuja ja a b (mod m) ja b c (mod m), niin seuraa että a c (mod m). Todistus. I. Nähdään että a a (mod m), koska m (a a) =0. II. III. Jos a b (mod m), niin m (a b). Näin ollen on olemassa kokonaisluku k, niin että km = a b. Tämä osoittaa, että (-k)m = b a, joten m (b a). Tästä seuraa b a (mod m). Jos a b (mod m) ja b c (mod m), niin m (a b) ja m (b c). Joten ovat olemassa kokonaisluvut k ja l, niin että km = a b ja lm = b c. Sen vuoksi, a c = (a b) + (b c) = km + lm = (k + l)m. Tästä seuraa m (a - c) ja a c (mod m). Lause 2.5. Jos a, b, c ja m ovat kokonaislukuja, ehdolla m > 0, niin että a b (mod m), niin 1. a + c b + c (mod m) 2. a - c b - c (mod m) 3. ac bc (mod m) Todistus. Koska a b (mod m), tiedetään että m (a b). Yhtälöstä (a + c) (b + c) = a b, nähdään että m ((a + c) (b + c)), josta seuraa (1). Yhtälailla (2) seuraa tosiseikasta, että (a c) (b c) = a b. Osoitetaan (3) merkitsemällä ac bc = c(a b). Koska m (a b), seuraa että m c(a b), ja näin ollen ac bc 6

10 (mod m). Esimerkki (mod 5), joten 19 = = 4 (mod 5). Kertolaskulla 32 = = 2 (mod 5). Lause 2.6. Jos a, b, c ja m ovat kokonaislukuja ehdolla m > 0, d = (c, m), ja ac bc (mod m) niin a b (mod m / d) Todistus. Ks. [21] s Esimerkki 2.8. Koska (mod 9) ja (6, 9) = 3, nähdään, että 30 / 6 12 / 6 (mod 9 / 3), eli 5 2 (mod 3). Seurauslause 2.1. Jos a, b, c ja m ovat kokonaislukuja ehdolla m > 0, (c, m) =1, ja ac bc (mod m) niin a b (mod m) Esimerkki 2.9. Koska 44 8 (mod 9) ja (4, 9) = 1, voidaan päätellä, että 44 / 4 8 / 4 (mod 9), tai 11 2 (mod 9). Lause 2.7. Jos a, b, c, d ja m ovat kokonaislukuja, ehdolla m > 0, niin että a b (mod m) ja c d (mod m), niin i. a + c b + d (mod m) ii. a - c b - d (mod m) iii. ac bd (mod m) Todistus. Koska a b (mod m) ja c d (mod m), tiedetään, että m (a b) ja m 7

11 (c d). Joten, ovat olemassa kokonaisluvut k ja l, että km = a b ja lm = c d. i. Huomataan, että (a + c) (b + d) = (a b) + (c d) = km + lm = (k + l)m, joten m [(a + c) (b d)], siksi a + c b + d (mod m). ii. Huomataan, että (a - c) (b - d) = (a b) - (c d) = km - lm = (k - l)m, joten m [(a - c) (b d)], siksi a - c b - d (mod m). iii. Huomataan, että ac bd = ac bc + bc bd = c(a b) + b(c d) = ckm + blm = m(ck + bl), joten m (ac bd), siksi ac bd (mod m). Esimerkki (mod 7) ja 9 2 (mod 7), joten = = 5 (mod 7). Kertolaskulla 24 9 = = 6 (mod 7). 2.4 Lineaarikongruenssi Kongruenssia muodossa ax b (mod m), jossa luku x on tuntematon kokonaisluku, kutsutaan yhden muuttujan lineaarikongruenssiksi. Esimerkki Ratkaistaan kongruenssi 83x 184 (mod 55). Kongruenssin määritelmään perustuen voidaan luvuista 81 ja 184 poistaa modulon kerrannaisia. Siis ( )x ( ) (mod 55), josta saadaan 28x 19 (mod 55). Lauseen 2.6. mukaan voidaan luvut 28x ja 19 kertoa luvulla 2, jolloin saadaan 56x = 2 28x 2 19 = 38 (mod 55). Supistetaan jälleen modulon kerrannaisia saadaan x 38 (mod 55), 8

12 joka on lineaarikongruenssin 83x 184 (mod 55) ratkaisu. Lause 2.9. Olkoon a, b ja m kokonaislukuja, niin että m > 0 ja (a, m) = d. Jos d b, niin lineaarikongruenssilla ax b (mod m) ei ole ratkaisuja. Jos taas d b, silloin lineaarikongruenssilla ax b (mod m) on ratkaisu. Todistus. Ks. [21] s Huomautus 2.1. Lauseen 2.9 mukaan kongruenssilla ax 1 (mod m) on ratkaisu jos ja vain jos (a, m) = 1. Määritelmä 2.7. Jos luvut a ja m ovat keskenään jaottomia kongruenssiyhtälön ax 1 (mod m) ratkaisua kutsutaan luvun a käänteisluvuksi mod m. Lause Olkoon p mikä tahansa alkuluku. Positiivinen kokonaisluku a on itsensä käänteisluvun modulo p, jos ja vain jos a 1 (mod p) tai a 1 (mod p). Todistus. Jos a 1 (mod p) tai a -1 (mod p), niin a 2 1 (mod p), joten a on itsensä käänteisluvun modulo p. Käänteisesti, jos a on itsensä käänteisluvun modulo p, niin a 2 = a a 1 (mod p). Joten p (a 2 1). Koska a 2 1 = (a 1)(a + 1), joko p (a 1) tai p (a + 1). Tästä seuraa, että joko a 1 (mod p) tai a -1 (mod p). 2.5 Aritmetiikan peruslause Lause (aritmetiikan peruslause) Jokainen positiivinen kokonaisluku, joka on suurempi kuin 1, voidaan kirjoittaa yksikäsitteisesti alkulukujen tulona. 9

13 Todistus. Ks. [21] s Esimerkki Kokonaisluku 420 voidaan kirjoittaa muodossa 420 = Apulause 2.3. Jos a, b ja c ovat positiivisia kokonaislukuja, että (a, b) = 1 ja a bc, niin a c. Todistus. Ks. [21] s. 97. Aritmetiikan peruslauseen mukaan kaikki kokonaisluvut voidaan siis määritellä yksikäsitteisesti niiden alkutekijöiden tuloina. Joukko alkulukuja kerrottuna keskenään tuottaa siis aina vain yhden luvun ja tätä lukua ei voida saada aikaan kertomalla mitään muuta alkulukujoukkoa keskenään. 2.6 Eulerin lause Määritelmä 2.8. Olkoon n positiivinen kokonaisluku. Eulerin funktio ϕ(n)on sellaisten positiivisten kokonaislukujen määrä, jotka eivät ole suurempia kuin luku n ja ovat keskenään jaottomia luvun n kanssa. Esimerkki ϕ(3) = 2 (luvut 1 ja 2 ovat jaottomia luvun 3 kanssa) ϕ(4) = 2 (luvut 1 ja 3 ovat jaottomia luvun 4 kanssa, luku 2 on jaollinen) ϕ(5) = 4 (1, 2, 3 ja 4 ovat jaottomia 5 kanssa) ϕ(6) = 2 (1 ja 5 ovat jaottomia 6 kanssa) ϕ(7) = 6 (1, 2, 3, 4, 5 ja 6 ovat jaottomia 7 kanssa) Eulerin funktio voidaan esittää pseudokoodilla: 10

14 phi(n): phi = 1; for (i = 2; i < n; i++) if(syt(i, n) == 1) phi++; return phi; Lause Jos p on alkuluku, niin ϕ(p) = p - 1. Jos p on positiivinen kokonaisluku ja ϕ(p) = p 1, seuraa että p on alkuluku. Todistus. Jos p on alkuluku, niin jokainen kokonaisluku pienempi kuin p on keskenään jaoton luvun p kanssa. Koska sellaisia lukuja on p 1 kappaletta, saadaan ϕ(p) = p 1. Käänteisesti, jos p on yhdistetty luku, niin luvulla p on jakaja d että 1 < d < p ja p ja d eivät ole keskenään jaottomia. Koska tiedetään, että vähintään yksi p 1 kokonaisluvuista 1, 2,, p 1, nimittäin luku d, ei ole keskenään jaoton luvun p kanssa seuraa ϕ(p) p 2. Joten jos ϕ(p) = p 1, niin luvun p on oltava alkuluku. Lause Olkoon m ja n keskenään jaottomia positiivisia kokonaislukuja, silloin ϕ(mn) = ϕ(n)ϕ(m). Todistus. Ks. [21] s Käyttämällä hyväksi lauseita 2.12 ja 2.13 voidaan todeta että, jos luvulla n on vain kaksi alkutekijää, on arvon ϕ(n) laskeminen helppoa. 11

15 Esimerkki Luku 15 = 3 5. ϕ(15) = ϕ(3) ϕ(5) = (3-1) (5-1) = 2 4 = 8 (1, 2, 4, 7, 8, 11, 13 ja 14 ovat jaottomia luvun 15 kanssa). Määritelmä 2.9. Supistettu jäännössysteemi modulo n on joukko ϕ(n) kokonaislukua, niin että jokainen joukon jäsen on keskenään jaoton luvun n kanssa ja mitkään kaksi joukon lukua eivät ole kongruentteja modulo n. Esimerkki Joukko 1, 3, 5 on supistettu jäännössysteemi modulo 7. Lause Jos r 1, r 2,, r φ(n) on supistettu jäännössysteemi modulo n, ja jos a on positiivinen kokonaisluku, niin että (a, n) = 1, silloin joukko ar 1, ar 2,, ar φ(n) on myös supistettu jäännössysteemi modulo n. Todistus. Osoitetaan, että kokonaisluku ar j on jaoton alkuluvun n kanssa, oletetaan, että (ar j, n) > 1. Silloin on olemassa alkutekijä p luvulle (ar j, n). Joten joko p a tai p r j. Tällöin joko p a ja p n tai p r j ja p n. Kuitenkaan, sekä p r j että p n eivät voi olla yhtä aikaa voimassa, koska r j kuuluu supistettuun jäännössysteemiin modulo n. Myöskään p a ja p n eivät voi olla yhtä aikaa voimassa paikkaansa, koska (a, n) = 1. Siis päätellään, että ar j ja n ovat jaottomia aina, kun j = 1, 2,, ϕ(n). Havainnollistetaan, etteivät mitkään kaksi muotoa ar j olevaa lukua voi olla kongruentteja modulo n, oletetaan, että ar j ar k (mod n), missä luvut j ja k ovat sellaisia erisuuria positiivisia kokonaislukuja, että 1 j ϕ(n) ja 1 k ϕ(n). Koska (a, n) = 1, seurauslauseen 2.1 mukaan nähdään, että r j r k (mod n). Tämä on ristiriita, koska r j ja r k kuuluvat supistettuun jäännössysteemiin modulo n, niin että r j r k (mod n). Lause (Eulerin lause) Jos m on positiivinen kokonaisluku, a on kokonaisluku ja 12

16 (a,m) = 1, niin a ϕ(m) 1 (mod m). Todistus. Olkoon r 1, r 2,, r φ(m) supistettu jäännössysteemi koostuen positiivisista kokonaisluvuista, jotka ovat pienempiä kuin m ja jaottomia luvun m kanssa. Lauseen 2.14 mukaan, koska (a, m) = 1, joukko ar 1, ar 2,, ar φ(m) on myös supistettu jäännössysteemi modulo m. Joten pienimpien positiivisten jäännöksen ar 1, ar 2,, ar φ(m) täytyy olla kokonaisluvut r 1, r 2,, r φ(m) jossain järjestyksessä. Tästä seuraa, että jos kerrotaan keskenään kaikki näiden jäännössysteemien termit, saadaan ar 1 ar 2 ar φ(m) r 1 r 2 r φ(m) (mod m). Näin ollen a ϕ(m) r 1 r 2 r φ(m) r 1 r 2 r φ(m) (mod m). Koska (r 1 r 2 r φ(m), m) = 1, seurauslauseesta 2.1 voidaan päätellä, että a ϕ(m) 1 (mod m). Esimerkki Valitaan a = 5 ja m = 6. ϕ(6) = (2 1) (3 1) = 1 2 = 2, joten 2 ϕ(6) = 5 2 = 25, ja 25 = = , siis 25 = 1 (mod 6). Apulause 2.4. Jos m on positiivinen kokonaisluku ja a on kokonaisluku, että (a, m) = 1, niin a (k ϕ(m)) 1 (mod m) luvun k ollessa mikä tahansa luonnollinen luku. Todistus. Otetaan Eulerin lause: a ϕ(m) 1 (mod m) ja lausetta 2.7. hyödyntäen voidaan esittää sen muodossa: a ϕ(m) a ϕ(m) 1 1 (mod m) joka voidaan kirjoittaa uudelleen muotoon: a (ϕ(m) + ϕ(m)) 1 1 (mod m) tai a (2 ϕ(m)) 1 (mod m) 13

17 toistaen sama kertominen saadaan: a (3 ϕ(m)) 1 (mod m). Tämä on toistettavissa yhä uudelleen, joten voidaan todistaa apulause RSA-algoritmi Otetaan todistettu apulause 2.4 käyttöön: a (k ϕ(m)) 1 (mod m) ja lausetta 2.5 hyödyntäen kerrotaan molemmat puolet luvulla a a (k ϕ(m)) a 1 a (mod m) joka voidaan kirjoittaa uudelleen muotoon: a (k ϕ(m) + 1) a (mod m) Voidaan huomata, että on mahdollisuus kirjoittaa funktio, joka palauttaa oman alkuarvonsa (olettaen, että on valittu luku m etukäteen ja a ja m ovat keskenään jaottomia). Muutetaan yhtälö muotoon: T (S ϕ(r) + 1) T (mod R), Oletetaan, että voidaan löytää kaksi uutta lukua P ja Q niin että P Q = S ϕ(r) + 1, jollekin arvolle S, joka valitaan. Kirjoitetaan T (P Q) T (mod R) eli (T P ) Q T (mod R) jaetaan se kahteen osaan transitiivisuusperiaatteen mukaan: T P X (mod R), 0 T < R ja (salaaminen) X Q T (mod R). (purkaminen) T on selkoteksti, P, Q ja R ovat salausavaimia (P ja R ovat julkinen avain ja Q ja R ovat henkilökohtainen avain) ja X on salakirjoitettu teksti. Näin toimii siis RSAsalausalgoritmi [20]. 14

18 Muodostaakseen salausavainparin täytyy siis löytää sopiva arvo R. Oletetaan, että R on kahden alkuluvun tulo. Halutaan, että arvolla R on mahdollisimman vähän tekijöitä ja esimerkin 2.16 mukaisesti arvon ϕ(r) laskeminen on helppoa kahdelle alkutekijälle. Tarvitaan siis alkuluvut U ja V, että R = U V, jolloin ϕ(r) = (U 1) (V 1). Huomioitavaa on, että alkuperäisestä määritelmästä poiketen RSA-algoritmin patentin haltijana Yhdysvalloissa toimineen RSA Laboratoriesin omassa RSA-määrittelyssä [11] versiosta 2.0 lähtien on ϕ(r) korvattu arvolla λ(r) = pyt(p - 1, q - 1). Esimerkki Valitaan vaikkapa alkuluvut 5 ja 11. ϕ(55) = 40. Valitaan julkinen avain P, siten että (P, ϕ(r)) = 1. (7, 40) = 1. P = 7. Henkilökohtaisen avaimen Q ratkaisuun tarvitaan luvun 7 käänteisluku mod ϕ(55) = 40. Esimerkkiä mukaillen voidaan löytää ratkaisu 7x 1 (mod 40), joka on x 23 (mod 40). Q on siis 23. Näin saadaan avainparit (P = 7, R = 55) ja (Q = 23, R = 55). Koska luvun T täytyy olla pienempi kuin R ja myös jaoton R:n ja sen tekijöiden (5 ja 11) kanssa valitaan salausesimerkkiin seuraavanlainen merkkikoodaus A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö Salattava sanoma olkoon: TERVE koodattuna numeroiksi merkkikoodauksella: 28, 7, 26, 31, 7 15

19 28 7 (mod 55) = (mod 55) = (mod 55) = (mod 55) = (mod 55) = (mod 55) = (mod 55) = (mod 55) = (mod 55) = (mod 55) = 28 sanoma on salattuna 52, 28, 16, 26, 28. Sanoman purkaminen (mod 55) = e+39 (mod 55) = (mod 55) = e+33 (mod 55) = (mod 55) = (mod 55) = (mod 55) = e+32 (mod 55) = (mod 55) = e+33 (mod 55) = 7 RSA-algoritmin turvallisuus siis perustuu suuriin alkulukuihin U ja V. 16

20 3 Alkulukuparin valinta RSA-avaimia luotaessa käytettävät alkuluvut U ja V ovat keskeisessä osassa siinä, kuinka turvallinen tehty salaus on. Tässä luvussa esitellään turvallisten alkulukujen luonti ja muita huomioon otettavia seikkoja. 3.1 Alkulukulause Lause 3.1. (Alkulukulause) Olkoon π(x) lukua x+1 pienempien alkulukujen lukumäärä. Osamäärän π(x) log(x)/x raja-arvo on 1, kun x kasvaa rajatta. Todistus. Ks. [10] s Seurauslause Olkoot on p n järjestyksessä n:s alkuluku. Kun n on positiivinen kokonaisluku, niin p n ~ n log n. Voidaan todeta, että on olemassa noin x / log x alkulukua, jotka ovat pienempiä kuin positiivinen kokonaisluku x. Todennäköisyys, että valittu kokonaisluku on alkuluku, on siis noin (x / log x) / x = 1 / log x. Esimerkiksi todennäköisyys sille, että satunnaisesti valittu 150-numeroinen (noin 1024 bittiä) kokonaisluku on alkuluku, on 1 / log / 345. Alkulukujen määrittämiseksi ei ole olemassa kaavaa. RSA-algoritmin suuret alkuluvut määritellään yleensä valitsemalla satunnaisesti suuri kokonaisluku ja testaamalla, onko se alkuluku. 3.2 Onko luku n alkuluku? Kokeilu jakamalla Määritelmän 2.2. mukaan luvun n voidaan todeta olevan alkuluku, jos se ei ole jaollinen 17

21 millään kokonaisluvulla m väliltä 2 ja n 1. Lausetta 2.1. hyödyntäen voidaan todeta, että luku n on alkuluku, jos se ei ole jaollinen millään kokonaisluvulla m väliltä 2 ja (n). Näillä ehdoilla voidaan rakentaa algoritmi, joka jakamalla testattavaa lukua kaikilla luvuilla m kokeilee, onko testattava luku alkuluku. Algoritmi voidaan esittää pseudokoodilla: trial_division(n): for (m = 2; m * m <= n; m++) if(n % m == 0) return false; return true; Tämä hyvin yksinkertainen ja deterministinen tapa selvittää, onko luku n alkuluku, on myös erittäin tehoton. Jos n on alkuluku, niin menetelmä vaatii O( (n)) jako-operaatiota tai O(2 (n / 2) ) bittioperaatiota Miller-Rabin testi Lause 3.2. (Fermat'n pieni lause) Jos p on alkuluku ja a on positiivinen kokonaisluku ehdolla p a, niin a p (mod p). Todistus. Tarkastellaan p 1 kokonaislukuja a, 2a,, (p 1)a. Mikään näistä kokonaisluvuista ei ole jaollinen luvulla p, jos p ja niin apulauseen 2.3 mukaan p j, koska p a. Tämä on mahdotonta, koska 1 j p 1. Lisäksi mitkään kaksi kokonaislukua a, 2a,, (p 1)a eivät ole kongruentteja modulo p. Havainnollistetaan tämä. Oletetaan, että ja ka (mod p), missä 1 j < k p 1. Seurauslauseen 2.1 mukaan koska (a, p) = 1 saadaan j k (mod p). Tämä on mahdotonta, koska j ja k ovat positiivisia kokonaislukuja p 1. Koska kokonaisluvut a, 2a,, (p 1)a ovat p 1 kokonaislukujoukko kaikki 18

22 epäkongruentteja 0 ja mitkään kaksi ei ole kongruentteja modulo p, tiedetään, että pienimmät positiiviset jäännökset joukosta a, 2a,, (p 1)a uudelleen järjestettynä ovat kokonaisluvut 1, 2,, p 1. Tästä seuraa, että kokonaislukujen a, 2a,, (p 1)a tulo on kongruentti modulo p ensimmäisten p 1 kokonaisluvun tulolle. Siis, a 2a (p 1)a 1 2 (p 1) (mod p). Näin ollen a p 1 (p - 1)! (p -1)! (mod p). Koska ((p 1)!, p) = 1, käyttäen seurauslausetta 2.1 supistetaan (p 1)! ja saadaan a p-1 1 (mod p). Ensin varmistetaan, että kongruenssi b n (mod n), missä n on pariton kokonaisluku pitää paikkaansa. Toiseksi voidaan kirjoittaa x = b (n 1) / 2, jolloin x 2 = b n (mod n). Jos n on alkuluku, lauseen nojalla tiedetään, että x 1 (mod n) tai x -1 (mod n). Jos toinen tai molemmat kongruensseista ei päde tiedetään, että n on yhdistetty luku. Esimerkki 3.1. Valitaan b = 3 ja n = Huomataan ensimmäisen kongruenssin 4 (1105-1) 1 (mod 1105) toteutuvan. Kokeilemalla 3 (1105 1) / 2 = (mod 1105) huomataan, ettei toinen kongruenssi pidä paikkaansa, joten 1105 on yhdistetty luku. Määritelmä 3.1. Valitaan positiivinen kokonaisluku n, niin että n - 1 = 2 s t, missä s on ei-negatiivinen kokonaisluku ja t on pariton kokonaisluku. Sanotaan, että n läpäisee Millerin testin kantaluvulla b, kun joko b t 1 (mod n) tai b (2^j)t 1 (mod n), kun 0 j s 1. Lause 3.3. Jos n on alkuluku ja b on positiivinen kokonaisluku, niin että n b, niin n läpäisee Millerin testin kantaluvulla b. 19

23 Todistus. Olkoon n 1 = 2 s t, missä s on ei-negatiivinen kokonaisluku ja t on pariton positiivinen kokonaisluku. Olkoon x k = b (n 1)/2k = b 2s-k, kun k = 0, 1, 2,, s. Koska n on alkuluku, Fermat n lause kertoo, että x 0 = b n 1 1 mod (n). Lauseen 2.10 mukaan, koska x 2 1 = (b (n 1 ) / 2 ) 2 = x 0 1 (mod n), joko x 1-1 (mod n) tai x 1 1 (mod n). Jos x 1 1 (mod n), koska x 2 2 = x 1 1 (mod n), joko x 2-1 (mod n) tai x 2 1 (mod n). Yleisesti huomataan, että x 0 x 1 x 2 x k 1 (mod n), kun k < s. Koska x 2 k+1 = x k 1 (mod n), näin ollen joko x k+1-1 (mod n) tai x k+1 1 (mod n). Jatkamalla tätä menettelyä kaikille k = 1, 2,, s, huomaataan, että joko x s 1 (mod n), tai x k -1 (mod n) jollakin kokonaisluvulla k, kun 0 k s. Joten, n läpäisee Millerin testin kantaluvulla b. Lause 3.4. Miller-Rabin testi. Olkoon n positiivinen kokonaisluku. Valitaan k erilaista positiivista kokonaislukua, jotka ovat pienempiä kuin luku n ja suoritetaan Millerin testi luvulle n jokaisella valitulla kantaluvulla. Jos n on yhdistetty luku, todennäköisyys, että n läpäisee kaikki k testiä, on pienempi kuin (1 / 4) k. Todistus. Ks. [10] s Seuraavassa Miller-Rabin -algoritmi [18] apufunktioineen pseudokoodina [7]; modular_exponentation(b, e, m): result = 1; while (e > 0) if ((e & 1) == 1) result = (result * b) % m; e >>= 1; b = (b * b) % m; return result; 20

24 miller-test(b, n, t, s): x = 0; dx = modular_exponentation(b, t, n); for (i = 1; i <= s; i++) x = (dx * dx) % n; if (x == 1 && dx!= 1 && dx!= (n-1)) return true; dx = x; if (x!= 1) return true; return false; miller-rabin-test(n, k): s = 0; i = n; x = 1; do i /= 2; s++; x *= 2; while (i % 2 == 0); t = (n - 1) / x; for (j = 1; j <= k; j++) a = random(1, n-1); if (miller-test (a, n, t, s)) return false; return true; Miller-Rabin -testiä käytetään yleisesti luotaessa suuria alkulukuja RSA-algoritmin 21

25 tarpeisiin. Algoritmi ei takaa oikeata tulosta, mutta jos algoritmi suoritetaan arvolla k = 100 on virheen todennäköisyys pienempi kuin Jos n on β-bittinen luku, Miller- Rabin -algoritmi vaatii O(sβ) aritmeettista operaatiota ja O(sβ 3 ) bittioperaatiota [6 s. 779] AKS testi Intialaiset Manindra Agrawal, Neeraj Kayal ja Nitin Saxena kehittivät tällä hetkellä nopeimman tunnetun deterministisen algoritmin [1] määrittämään, onko luku n alkuluku vai yhdistetty luku. Algoritmi on suoritettavissa polynomisessa ajassa O(log 12 n). Huolimatta polynomisesta suoritusajasta eksponentiaalisen sijaan algoritmi on silti huomattavasti hitaampi kuin epädeterministiset algoritmit, kuten Miller-Rabin. AKS-algoritmi pseudokoodina: AKS(n): if (n = a^b for a ε Ν and b > 1) return false; r = 2; while (r < n) if (gcd(n, r)!= 1) return false; if (r is prime) q = largest prime factor of r 1; j = 4 * sqrt(r) * log(n); k = n^((r - 1) / q); if (q >= j && k % r!= 1) break; r++; for(a = 1; a < 2 * sqrt(r) * log(n); a++) 22

26 in Z n [X] if ((X + a)^n % (X^r - 1)!= X^(n % r) + a) return false; return true; Lause 3.5. Yllä oleva algoritmi palauttaa arvon true, jos ja vain jos n on alkuluku. Todistus. Ks. [1]. 3.3 Salausavaimen alkutekijät Yleisten suositusten mukaan [19] RSA-salausavaimen R kooksi suositellaan vähintään 1024-bittiä, mikäli suojauksen kestoksi riittää 1-2 vuotta. Yli kahdelle kymmenelle vuodelle suositellaan 2048-bittistä avainta ja yli kolmelle kymmenelle vastaavasti bittistä bittinen R on yli 300-numeroinen ja mikäli tekijät U ja V olisivat keskenään suunnilleen samansuuruisia, tulisi niiden olla noin 150-numeroisia. Alkulukujen U ja V tulisi olla samaa kokoluokkaa bittimääräisesti [4]. Tosin niiden erotus ei saa olla itseisarvoltaan pienempi kuin Nykyisille tehokkaille algoritmeille (number field sieve ja quadratic sieve) hankalimpia ovat tapaukset, joissa erotus on itseisarvoltaan pieni. Kun lukua R jaetaan tekijöihin U ja V perusmenetelmät aloittavat yleensä kokonaisluvusta x lähtien ( (n), kunnes löytyy sellainen luku x, että x 2 n = y 2. Kun tämä x löytyy, saadaan välittömästi U = x + y ja V = x y. Luvuilla U 1, V - 1, U + 1, V + 1 tulisi olla alkutekijät r u, r v, s u ja s v, jotka kaikki ovat suuruudeltaan vähintään 2 75 [4]. Myöhemmin luvuissa 4.3 ja 4.5 esiteltävät tekijöihinjakomenetelemät, elliptic curve ja Pollard rho, hyötyvät näiden lukujen pienistä alkutekijöistä. Iteroivalta salauksen purkamiselta suojautuminen vaatii, että luvuilla U 2 ja V 2 on alkutekijät tu ja tv, niin että e (U 2) / tu 1 mod (U - 2), e (V 2) / tv 1 mod (V - 2), t u t v ja t u t v on suuruudeltaan 2 75 päivityksessä [11]. bittiä [4]. Tämä on jo osin huomioita RSA-standardin 23

27 4 Alkutekijöihin jakaminen Aritmetiikan peruslauseen mukaan jokainen luku voidaan esittää yksikäsitteisesti alkulukujen tulona. RSA-algoritmissa salausavain R muodostetaan kertomalla kaksi suurta alkulukua U ja V. Mikäli luvun R alkutekijät ratkaistaan, on käytetyn julkisen- ja henkilökohtaisen avaimen selvittäminen triviaalia. 4.1 Kokeilu jakamalla Aivan kuten luvun n määrittelemisessä joko alkuluvuksi tai yhdistetyksi luvuksi, voidaan luku n jakaa alkutekijöihin jakamalla se kaikilla mahdollisilla luvuilla d, d > 2 ja d < (n). Tällä kertaa kuitenkin halutaan löytää kaikki tekijät: trial_division(n): d = 2; sqrtn = sqrt(n)+1; while (d <= sqrtn) q = n / d; r = n % d; if (r < 0) r += d; if (r == 0) print(d); n = q; continue; else if (q > d) d++; continue; 24

28 print(n); break; Jakamalla kokeilu on myös alkutekijöiden etsimisessä tehotonta. Algoritmia voidaan tehostaa jättämällä pois tiettyjä d:n arvoja (esimerkiksi kaikki parilliset luvut luvun 2 jälkeen). Toinen tapa toteuttaa algoritmi on kokeilla jakaa vain jo tunnetuilla alkuluvuilla, mutta tämän edellytyksenä on etukäteen laskettu tietorakenne alkulukuja ja tällä tavalla ei voida löytää uusia alkulukuja, vaikka yhdistettyjen lukujen pienet alkutekijät löytyisivätkin nopeammin. 4.2 Fermat'n menetelmä Apulause 4.1. Jos n on pariton positiivinen kokonaisluku, niin on olemassa yksi yhteen vastaavuus luvun n kahdella positiivisella kokonaislukutekijällä ja kahden neliön erotuksella, joka on yhtä suuri kuin n. Todistus. Ks. [10] s Fermat n menetelmä perustuu apulauseeseen 4.1. Oletetaan, että pariton kokonaisluku n = uv, missä u v. Koska n on pariton niin u ja v ovat myös parittomia. Olkoon x = (u + v) / 2, y = (v u) / 2, n = x 2 y 2 ja 0 y < x n. Esimerkki 4.1. Jaetaan luku 667 tekijöihin käyttäen Fermat'n menetelmää. Etsitään x 2 n = y 2. Koska 25 < (667) < 26, aloitetaan x = 26: = 9 = 3 2 Koska 667 = , huomataan, että 667 = (26 3)(26 + 3) = Fermat'n menetelmä ei ole aina näin tehokas vaan pahimmassa tapauksessa voi joutua kokeilemaan (n + 1) / 2 (n) kokonaislukua ennen kuin täydelliset neliöt x 2 ja y 2 25

29 löytyvät. Menetelmä toimii parhaiten, jos kokonaisluvulla on kaksi samaa suuruusluokkaa olevaa alkutekijää. Fermat'n perusidea on pohjana monelle tehokkaammalle algoritmille. Fermat'n menetelmän sovellus pseudokoodina [12]: fermat(n): x = 2 * sqrt(n) + 1; y = 1; r = (sqrt(n) * sqrt(n)) - n; while (y < sqrt(n)) if ( r > 0) r -= y; y += 2; continue; if (r == 0) print (((x - y) / 2)); break; else r = r + x; x += 2; 4.3 Pollard rho -menetelmä J. M. Pollard esitteli 1975 menetelmän luvun tekijöiden jakamiseen [4], jota kutsutaan nimellä Pollard rho -menetelmä. Menetelmä toimii millä tahansa alkuarvolla x 0 ja millä tahansa vähintään toisen asteen polynomilla f(x). Valitaan käyttöön yleisesti käytetyt x 0 = 2 ja f(x) = x 2-1. Tarkastellaan sekvenssiä x 0 = 2, 26

30 2 x i+1 x i - 1 (mod n), missä n on tekijöihin jaettava luku. Vuoroin lasketaan kolme lukua (x i, x 2i, Q i ), i = 1, 2,..., missä Q i = x 2i x i. Kun i on valittu kokonaisluvun m monikerta, suoritetaan d i = syt(q i, n) Jos 1 < d i < n on löytynyt yksi luvun n tekijöistä ja voidaan jatkaa sekvenssiä arvolla n' = n / d i. Esimerkki 4.2. Käytetään Pollard rho -menetelmää alkuluvulla 2 ja polynomilla f(x) = x löytämään tekijän luvulle n = x 0 = 2 x 1 = = 5 x 2 = = 26 x 3 = = 677 x 4 = = % 8051 = 7474 x 5 = = % 8051 = 2839 x 6 = = % 8051= 871 Q 1 = 26 5 = 21 Q 2 = = 7448 Q 3 = = 194 d 1 = syt(21, 8051) = 1 d 2 = syt(7448, 8051) = 1 d 3 = syt(194, 8051) = 97. Eräs Pollard rho -menetelmän toteutus esitettynä [5] pseudokoodilla: 27

31 pollard-rho(n): x = 5; dx = 2; k = 1; l = 1; d = 0; while (d!= n) d = gcd(dx - x, n); if (d!= 1) print(d); if (d == n) break; else n = n / d; x = x % n; if (x < 0) x += n; dx = dx % n; if (dx < 0) dx += n; continue; else k -= 1; if (k == 0) dx = x; k = l; l *= 2; x = (x * x + 1) % n; if (x < 0) x += n; 28

32 Alkuperäinen Pollard rho -menetelmä pystyi löytämään kokonaisluvulle n tekijän O(n 1 / 2 ) aritmeettisella operaatiolla. Paranneltu pseudokoodina esitetty versio pystyy samaan O(n 1 / 4 ) operaatiolla. 4.4 Pollard p - 1 -menetelmä Menetelmän kehitti J. M. Pollard vuonna 1974 [16]. Menetelmä löytää tekijän kokonaisluvulle n, kun luvulla n on alkutekijä p, niin että p 1 alkutekijät ovat suhteellisen pieniä. Olkoon n tekijöihin jaettava positiivinen kokonaisluku. Oletetaan, että luvulla n on alkutekijä p, niin että p - 1 k!, kun k on positiivinen kokonaisluku. Fermat'n lauseen perusteella tiedetään, että 2 p (mod p). Koska p - 1 k!, k! = (p 1)q jollakin kokonaisluvulla q. Joten 2 k! = 2 (p - 1)q = (2 p - 1 ) q 1 q = 1 (mod p), mikä merkitsee, että p 2 k! - 1. Olkoon M pienin positiivinen jakojäännös 2 k! - 1 modulo n, niin että M = (2 k! - 1) nt jollakin kokonaisluvulla t. Nähdään, että p M koska se jakaa kummatkin 2 k! - 1 ja n. Tekijä luvulle n löytyy laskemalla suurin yhteinen tekijä d = (M, n). Jotta tekijä d olisi ei-triviaali, tulee M arvon olla erisuuri kuin 0. Mikäli M = 0 niin luku n ei ole tekijä luvulle 2 k! - 1, tämä on todennäköistä mikäli luvulla n on suuria alkutekijöitä. Esimerkki 4.3. Etsitään luvulle 667 tekijä käyttäen Pollard p - 1 -menetelmää: r (mod 667) syt(2-1, 667) = syt(1, 667) = 1 r 2 r 2 1 = (mod 667) syt(4-1, 667) = syt(3, 667) = 1 r 3 r 3 2 = (mod 667) syt(64-1, 667) = syt(63, 667) = 1 r 4 r 4 3 = (mod 667) 29

33 syt(165-1, 667) = syt(164, 667) = 1 r 5 r 5 4 = (mod 667) syt(633-1, 667) = syt(632, 667) = 1 r 6 r 6 5 = (mod 667) syt(400-1, 667) = syt(399, 667) = 1 r 7 r 7 6 = (mod 667) syt(349-1, 667) = syt(348, 667) = 29 Pollard p - 1 -menetelmä esitettynä pseudokoodilla: pollard_p-1(n, r): d = 1; k = 1; while (d == 1) k++; r = modular-exponentation(r, k, n); d = gcd((r-1), n); if (r == 0) break; return d; Esimerkissä käytetty kantaluku oli 2. Metodilla voidaan käyttää myös muita kantalukuja ja joissain sovelluksissa myös arvoa k on rajattu kasvamaan vain tiettyyn pisteeseen kullekin kantaluvulle. Tällaisen algoritmin vaatima aika on O(B log B log 2 n), kun B on arvo mihin luvun k kasvu on rajattu. 30

34 4.5 Elliptinen käyrä -menetelmä H. W. Lenstra Jr. kehittämä elliptinen käyrä -menetelmä (Elliptic Curve method tai ECM) positiivisten kokonaislukujen jakamisesta tekijöihin [15] on yhdenmukainen Pollard p-1 -menetelmän kanssa. Kumpikin hyödyntää Fermat'n lausetta. Menetelmät valitsevat kokonaisluvun a (mod n) ja positiivisen kokonaisluvun k, joka on jaollinen monella pienellä alkuluvulla. Seuraavaksi lasketaan a k (mod n) ja toivotaan, että löydetään ei-triviaali luvun n tekijä laskemalla syt(a k - 1, n). Elliptinen käyrä -menetelmä korvaa Pollard p-1-menetelmän moninkertaistuvan joukon b k! elliptisellä käyrällä. Menetelmän kompleksisuus riippuu tekijän koosta ja voidaan esittää O(e (1 + o(1)) (ln p ln ln p) ), missä p on luvun n pienin tekijä. Menetelmän tarkempi kuvaus on monimutkaisuudeltaan tämän tutkielman ulkopuolella. Suurin raportoitu ECM:llä löydetty alkutekijä on 67-numeroinen. Löydön teki B. Dodson 24. elokuuta 2006 [25]. 4.6 Quadratic Sieve eli neliöseula Quadratic Sieve (neliöseula tai QS) -menetelmän kehitti alun perin Carl Pomerance 1981 ja se oli nopein tunnettu tekijöihinjakoalgoritmi vuoteen 1993 asti ja se on nopein tunnettu algoritmi noin alle 110-numeroisten lukujen tekijöihin jakamiseen. Algoritmista on olemassa useampi muunnelma kuten The Multiple Polynomial Quadratic Sieve (MPQS) ja The Double Large Prime MPQS. QS pyrkii löytämään sellaiset luvut x ja y, että x ±y (mod n) ja x 2 y 2 (mod n), josta seuraa, että (x y)(x + y) 0 (mod n) ja kun suoritetaan syt(x y, n) niin saadaan noin ½ todennäköisyydellä ei-triviaali tekijä luvulle n. QS hyödyntää valmiiksi laskettua alkutekijäkantaa ja optimaalinen ajoaika on O(e (ln(n)ln(ln(n)) ). [13] The Double Large Prime MPQS -algoritmilla ratkaistiin RSA-129 haaste [2] vuonna Haaste oli alun perin esitelty vuonna 1977 ja siinä oli tarkoituksena jakaa tekijöihin 129-numeroinen RSA-salausavain R. Sen aikaisella tietokoneella, käyttäen parasta tunnettua algoritmia, haasteen ratkaisuun oletettiin kuluvan 40 kvadriljoonaa vuotta. Haasteen ratkaissut joukko käytti seulontavaiheessa 220 päivää ja 1600 konetta ympäri maailmaa laskemaan x hajanaisen bittimatriisin. Varsinainen 31

35 prosessointi esigeneroidulla matriisilla kesti 45 tuntia 16K MasPar MP-1 supertietokoneella. Vuonna 1977 RSA-salakirjoitettussa viestissä luki: The Magic Words are Squeamish Ossifrage. 4.7 Number Field Sieve eli lukukuntaseula Tällä hetkellä nopein tunnettu tekijöihinjakomenetelmä on A. K. Lenstran, H. W. Lenstran, Jr., M. S. Manassen, ja J. M. Pollardin vuonna 1993 julkaisema Number Field Sieve (lukukuntaseula tai NFS) [6]. Lukukuntaseulalla viitataan kahteen eri menetelmään. Erityinen lukukuntaseula (Special Number Field Sieve) toimii ainoastaan luvuille muotoa r e s, kun r ja s ovat pieniä ja e mikä tahansa positiivinen kokonaisluku. Suurin erityisellä lukukuntaseulalla tekijöihin jaettu luku on 313- numeroinen [25]. Yleinen lukukuntaseula (General Number Field Sieve tai GNFS) laajensi alkuperäisen menetelmän mielivaltaisille kokonaisluvuille. Lukukuntaseula, kuten neliöseula ja Fermat'n menetelmä, pyrkii löytämään sellaiset luvut x ja y että x ±y (mod n) ja x 2 y 2 (mod n). Kuten neliöseula, myös lukukuntaseula koostuu useammasta vaiheesta, joista osa voidaan jakaa esimerkiksi verkon yli prosessoitavaksi useammalla eri solmulla. Seulontavaiheessa lasketaan neliöitä taulukkoon tai matriisiin ja testataan ne valitulla joukolla alkulukuja. Tarkoituksena on löytää tarpeeksi tasaisia (englanniksi smooth ) lukupareja matriisivaiheeseen. Otaksuttu aika kokonaisluvun n jakamiselle tekijöihin GNFS:llä on O(e (log n)^(1 / 3) ((64 / 9)+o(1)log log n)^(2 / 3) ). GNFS-menetelmällä ratkaistiin RSA-200 -haaste 9. toukokuuta 2005 [25]. Haasteessa selvitettiin tekijät 200-numeroiselle (663-bittiä) RSA-salausavaimelle R. Haasteeseen kului 170 vuotta Pentium 1 GHz CPU -aikaa. Todellisuudessa seulavaihe alkoi vuoden 2003 lopussa ja päättyi lokakuuhun Haasteen ratkaissut ryhmä arveli tässä vaiheessa käytetyn noin 55 2,2 GHz Opteron -vuotta. Matriisivaihe suoritettiin 80 2,2 GHz Opteronin klusterilla kolmessa kuukaudessa. 32

36 4.8 Tekijöihinjakolaitteistot TWINKLE eli pilke Yksi alkuperäisistä RSA-algoritmin kehittäjistä, Adi Shamir, esitteli helmikuussa 1999 idean optisesta laitteesta, joka pystyisi lukukuntaseulaa käyttämällä jakamaan tekijöihin jopa 512-bittisiä numeroita [22][14]. Tämä teoreettinen laite ristittiin TWINKLE:ksi (The Weizmann Institute Key Locating Engine). TWINKLE koostuu suuresta määrästä LED-valoja, jotka tuikkivat eri taajuuksilla, ja fotoilmaisimesta, joka mittaa kaikkien LED-valojen yhteensä säteilemää valon määrää millä tahansa hetkellä. Jokainen LED-valo vastaa yhtä alkulukua ja jokainen ajanhetki ehdokasta tasaiseksi ( smooth ) neliöksi. Fotoilmaisin hälyttää liitetyn PC:n, kun valon määrä ylittää tietyn kynnyksen. Näiden harvalukuisten hälytysten ajoituksesta voi PC laskea ehdokasneliön ja tarkistaa sen tasaisuuden ja käyttää sitä perinteisessä lukukuntaseulan matriisivaiheen toteutuksessa. Ideaa valojen käytöstä puoltaa useampi seikka. LED-valoilla päästään paljon muistia suurempaan kellotaajuuteen. Kun PC-laitteiden muisti toimii noin tavallisesti noin megahertsin taajuudella, päästään LED-valoilla yli 10 gigahertsin kellotaajuuksiin. Optisia osia voi olla mukana tuhansia ja todennäköisyyteen pohjautuvassa algoritmissa ei välttämättä tarvitse tarkkaa summaa. Kaikkien osien yhteistulos voidaan laskea yhdessä kellojaksossa. Digitaalinen laskin, joka laskee syötteen summan yhdessä kellojaksossa, on mahdoton TWIRL eli pyörre TWIRL (The Weizmann Institute Relation Locator) [23], kuten TWINKLE:kin, on hypoteettinen laite, jota kukaan ei ole rakentanut. Kuten edeltäjänsä, myös sen tarkoituksena on nopeuttaa yleisen lukukuntaseulan seulontavaihetta. TWIRL perustuu perinteiseen prosessoritekniikkaan, mutta se hyödyntää tehokkaasti rinnakkaista prosessointia ja muistin käyttöä. Idean kehittäjät Adi Shamir ja Eran Tromer arvioivat, että TWIRL pystyisi murtamaan 1024-bittisen RSA-salausavaimen R yhdessä vuodessa ja sen rakentaminen maksaisi noin kymmenen miljoonaa dollaria.. 33

37 4.8.3 Muita erityislaitteita TWINKLE:n ja TWIRL:in lisäksi on esitetty myös muita hypoteettisia laitteita, joilla alkutekijöihin jako olisi helppoa ja tehokasta, kuten esimerkiksi SHARK [9] ja Bernsteinin piiri [3]. Yhteistä näille laitteille on korkea hinta ja korkea teoreettisuuden aste. Kukaan ei voi varmuudella sanoa, kuinka hyvin ne toimisivat käytännössä. Teoreettinen laskentatehon lisäys tekijöidenjaossa, ja sitä kautta RSA-salauksen murtamisessa, on tavallisiin laitteisiin verrattuna huomattava. Vaikka kukaan ei näitä laitteita ole rakentanut, niin niitä ei voi jättää huomioimatta, kun arvioidaan RSA-salauksessa käytettävän avaimen suuruutta. Kymmenen miljoonaa dollaria voi olla jollekin taholle pieni hinta jonkun tietyn salauksen purkamisesta. 34

38 5 Yhteenveto On huomioitavaa, että kun salaus perustuu laskennalliseen vaikeuteen, se ei voi olla ikuinen. RSA-algoritmin tapauksessa sitä uhkaavat lukuteoreettiset mallit, lähinnä entistä tehokkaammat tekijöihinjakomenetelmät, räätälöidyt laitteistot, yksittäisten tietokoneiden laskentatehon kasvaminen ja yhä kehittyvät useiden tietokoneiden laskentatehon yhdistävät hajautetut järjestelmät tai ryppäät. Esimerkiksi -projektin hajautetun laskentajärjestelmän teho oli teraflopsia (flops = floating point operations per second), kun yksittäisen koneen epävirallinen maailmanennätys on Texasin yliopiston supertietokone Rangerin 504 teraflopsia [8]. Kun pitää huolen siitä, että käyttää tarvittavan isoja salausavaimia, eikä oleta tiedon pysyvän salattuna kvadriljoonia vuosia, on RSA algoritmi yhtä turvallinen kuin aiemminkin. Avainten kokoa voidaan kasvattaa rajatta, kunhan laskentatehoa löytyy. Yhden yksittäisen ison avaimen mahdollinen murtaminen ei tarkoita sitä, että samankokoisten avainten murtaminen olisi jokapäiväistä. 35

39 Viiteluettelo [1] M. Agrawal, N. Kayal and N. Saxena, PRIMES is in P, Annals of Mathematics 160 (2004), [2] D. Atkins, M. Graff, A. K. Lenstra and P. C. Leyland, The magic words are squeamish ossifrage, Lecture Notes in Computer Science, Volume 917 (1995), [3] Daniel Bernstein, Circuits for Integer Factorization: A Proposal, 9. marraskuuta Saatavilla [4] Antoon Bosselaers and Bart Preneel, Integrity Primitives for Secure Information Systems, Lecture Notes in Computer Science, Volume 1007 (1995), [5] Richard P. Brent, An Improved Monte Carlo Factorization Algorithm, BIT Numerical Mathematics 20 (1980), , [6] Steven Byrnes, The Number Field Sieve, Math 129: Topics in Number Theory, [7] T. Cormen, C. Leiserson, R. Rivest and C. Stein, Introduction to Algorithms, 2 nd edition, McGraw-Hill, [8] Aaron Dubrow, Powering Discoveries, 18. helmikuuta Saatavilla [9] Jens Franke, Thorsten Kleinjung, Christof Paar, Jan Pelzl, Christine Priplata and Colin Stahlke, SHARK: A Realizable Special Hardware Sieving Device for Factoring 1024-Bit Integers, Lecture Notes in Computer Science, Volume 3659 (2005), [10] G.H. Hardy and E.M. Wright, An Introduction to the Theory of Numbers, 4 th edition, Oxford University Press, [11] J. Jonsson and B. Kalinski, RFC3447: Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1. RSA Laboratories, [12] Donald E. Knut, The Art of Computer Programming, 2 nd edition, Addison Wesley, 1981, [13] Eric Landquist, The Quadatic Sieve Factoring Algorithm, Math 488: Cryptographic Algorithms,

40 [14] Arjen K. Lenstra and Adi Shamir, Analysis and Optimization of the TWINKLE Factoring Device, Lecture Notes in Computer Science, Volume 1807 (2000), [15] H. W. Lenstra Jr., Factoring integers with elliptic curves, Annals of Mathematics 126 (1987), [16] J. M. Pollard, Theorems of Factorization and Primality Testing, Proceedings of the Cambridge Philosophical Society 76 (1974), [17] J. M. Pollard, A Monte Carlo method for factorization, BIT Numerical Mathematics 15 (1975), [18] M. O. Rabin, Probabilistic algorithm for testing primality. Journal of Number Theory, Volume 12 (1980), [19] Recommendation for Key Management Part 1: general, NIST Special Publication , 2007 [20] R.L. Rivest, A. Shamir, and L.M. Adleman, A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, Volume 21 (1978), [21] Kenneth H. Rosen, Elementary Number Theory and Its Applications. Addison Wesley Longman, [22] Adi Shamir, Factoring Large Numbers with the TWINKLE Device, Lecture Notes in Computer Science, Volume 1717 (1999), [23] Adi Shamir and Eran Tromer, Factoring Large Numbers with the TWIRL Device, Lecture Notes in Computer Science, Volume 2729 (2003), [24] Douglas Stinson, Cryptography: Theory and Practice, CRC Press, [25] Paul Zimmermann, Integer Factoring Records, 9. tammikuuta Saatavilla 37

Lukuteorian kertausta

Lukuteorian kertausta Lukuteorian kertausta Jakoalgoritmi Jos a, b Z ja b 0, niin on olemassa sellaiset yksikäsitteiset kokonaisluvut q ja r, että a = qb+r, missä 0 r < b. Esimerkki 1: Jos a = 60 ja b = 11, niin 60 = 5 11 +

Lisätiedot

RSA Julkisen avaimen salakirjoitusmenetelmä

RSA Julkisen avaimen salakirjoitusmenetelmä RSA Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL Alkuluvut Alkuluvuilla tarkoitetaan lukua 1 suurempia kokonaislukuja, jotka eivät ole tasan jaollisia

Lisätiedot

Salakirjoitusmenetelmiä

Salakirjoitusmenetelmiä Salakirjoitusmenetelmiä LUKUTEORIA JA LOGIIKKA, MAA 11 Salakirjoitusten historia on tuhansia vuosia pitkä. On ollut tarve lähettää viestejä, joiden sisältö ei asianomaisen mielestä saanut tulla ulkopuolisten

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria 6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,...

Lisätiedot

Matematiikan mestariluokka, syksy 2009 7

Matematiikan mestariluokka, syksy 2009 7 Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty

Lisätiedot

Lineaariset kongruenssiyhtälöryhmät

Lineaariset kongruenssiyhtälöryhmät Lineaariset kongruenssiyhtälöryhmät LuK-tutkielma Jesse Salo 2309369 Matemaattisten tieteiden laitos Oulun yliopisto Sisältö Johdanto 2 1 Kongruensseista 3 1.1 Kongruenssin ominaisuuksia...................

Lisätiedot

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2 Tekijä Pitkä matematiikka 11 0..017 170 a) Koska 8 = 4 7, luku 8 on jaollinen luvulla 4. b) Koska 104 = 4 6, luku 104 on jaollinen luvulla 4. c) Koska 4 0 = 80 < 8 ja 4 1 = 84 > 8, luku 8 ei ole jaollinen

Lisätiedot

1 Lukujen jaollisuudesta

1 Lukujen jaollisuudesta Matematiikan mestariluokka, syksy 2009 1 1 Lukujen jaollisuudesta Lukujoukoille käytetään seuraavia merkintöjä: N = {1, 2, 3, 4,... } Luonnolliset luvut Z = {..., 2, 1, 0, 1, 2,... } Kokonaisluvut Kun

Lisätiedot

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa) Lukuteoria Lukuteoria on eräs vanhimmista matematiikan aloista. On sanottu, että siinä missä matematiikka on tieteiden kuningatar, on lukuteoria matematiikan kuningatar. Perehdymme seuraavassa luonnollisten

Lisätiedot

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

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jussi Tervaniemi. Primitiiviset juuret TAMPEREEN YLIOPISTO Pro gradu -tutkielma Jussi Tervaniemi Primitiiviset juuret Matematiikan, tilastotieteen ja filosofian laitos Matematiikka Heinäkuu 2006 Sisältö Johdanto 3 1 Lukuteorian peruskäsitteitä

Lisätiedot

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

RSA-salausmenetelmä LuK-tutkielma Tapani Sipola Op. nro Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2017 RSA-salausmenetelmä LuK-tutkielma Tapani Sipola Op. nro. 1976269 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2017 Sisältö Johdanto 2 1 Salausmenetelmien yleisiä periaatteita 3 2 Määritelmiä ja

Lisätiedot

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

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Liisa Ilonen. Primitiiviset juuret TAMPEREEN YLIOPISTO Pro gradu -tutkielma Liisa Ilonen Primitiiviset juuret Matematiikan ja tilastotieteen laitos Matematiikka Joulukuu 2009 Tampereen yliopisto Matematiikan ja tilastotieteen laitos ILONEN,

Lisätiedot

Primitiiviset juuret: teoriaa ja sovelluksia

Primitiiviset juuret: teoriaa ja sovelluksia TAMPEREEN YLIOPISTO Pro gradu -tutkielma Outi Sutinen Primitiiviset juuret: teoriaa ja sovelluksia Matematiikan, tilastotieteen ja filosofian laitos Matematiikka Huhtikuu 2006 Tampereen yliopisto Matematiikan,

Lisätiedot

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

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006) Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.1 Jakojäännös ja kongruenssi Määritelmä 3.1 Kaksi lukua a ja b ovat keskenään kongruentteja (tai

Lisätiedot

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Ville-Matti Erkintalo. Lukuteoria ja RSA

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Ville-Matti Erkintalo. Lukuteoria ja RSA TAMPEREEN YLIOPISTO Pro gradu -tutkielma Ville-Matti Erkintalo Lukuteoria ja RSA Matematiikan ja tilastotieteen laitos Matematiikka Maaliskuu 2008 Tampereen yliopisto Matematiikan ja tilastotieteen laitos

Lisätiedot

Diofantoksen yhtälön ratkaisut

Diofantoksen yhtälön ratkaisut Diofantoksen yhtälön ratkaisut Matias Mäkelä Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2017 Sisältö Johdanto 2 1 Suurin yhteinen tekijä 2 2 Eukleideen algoritmi 4 3 Diofantoksen yhtälön

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A0402 Diskreetin matematiikan perusteet Osa 4: Modulaariaritmetiikka Riikka Kangaslampi 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Modulaariaritmetiikka Jakoyhtälö Määritelmä 1 Luku

Lisätiedot

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

Fermat n pieni lause. Heikki Pitkänen. Matematiikan kandidaatintutkielma Fermat n pieni lause Heikki Pitkänen Matematiikan kandidaatintutkielma Jyväskylän yliopisto Matematiikan ja tilastotieteen laitos Kevät 2009 Sisältö Johdanto 3 1. Fermat n pieni lause 3 2. Pseudoalkuluvut

Lisätiedot

2017 = = = = = = 26 1

2017 = = = = = = 26 1 JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 2, MALLIRATKAISUT Tehtävä 1. Sovella Eukleiden algoritmia ja (i) etsi s.y.t(2017, 753) (ii) etsi kaikki kokonaislukuratkaisut yhtälölle 405x + 141y = 12. Ratkaisu

Lisätiedot

Multiplikatiiviset funktiot

Multiplikatiiviset funktiot TAMPEREEN YLIOPISTO Pro gradu -tutkielma Ilona Kiiveri Multiplikatiiviset funktiot Informaatiotieteiden yksikkö Matematiikka Toukokuu 2015 Tampereen yliopisto Informaatiotieteiden yksikkö KIIVERI, ILONA:

Lisätiedot

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

3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi 3. Kongruenssit 3.1 Jakojäännös ja kongruenssi Tässä kappaleessa esitellään kokonaislukujen modulaarinen aritmetiikka (ns. kellotauluaritmetiikka), jossa luvut tyypillisesti korvataan niillä jakojäännöksillä,

Lisätiedot

ALKULUKUJA JA MELKEIN ALKULUKUJA

ALKULUKUJA JA MELKEIN ALKULUKUJA ALKULUKUJA JA MELKEIN ALKULUKUJA MINNA TUONONEN Versio: 12. heinäkuuta 2011. 1 2 MINNA TUONONEN Sisältö 1. Johdanto 3 2. Tutkielmassa tarvittavia määritelmiä ja apulauseita 4 3. Mersennen alkuluvut ja

Lisätiedot

Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.)

Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.) Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.) LUKUTEORIA JA TODISTAMINEN, MAA11 Määritelmä, yhteinen tekijä ja suurin yhteinen tekijä: Annettujen lukujen a ja b yhteinen tekijä

Lisätiedot

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

LUKUTEORIA A. Harjoitustehtäviä, kevät 2013. (c) Osoita, että jos. niin. a c ja b c ja a b, niin. niin. (e) Osoita, että LUKUTEORIA A Harjoitustehtäviä, kevät 2013 1. Olkoot a, b, c Z, p P ja k, n Z +. (a) Osoita, että jos niin Osoita, että jos niin (c) Osoita, että jos niin (d) Osoita, että (e) Osoita, että a bc ja a c,

Lisätiedot

LUKUTEORIAN ALKEET HELI TUOMINEN

LUKUTEORIAN ALKEET HELI TUOMINEN LUKUTEORIAN ALKEET HELI TUOMINEN Sisältö 1. Lukujärjestelmät 2 1.1. Kymmenjärjestelmä 2 1.2. Muita lukujärjestelmiä 2 1.3. Yksikäsitteisyyslause 4 2. Alkulukuteoriaa 6 2.1. Jaollisuus 6 2.2. Suurin yhteinen

Lisätiedot

Alkulukujen harmoninen sarja

Alkulukujen harmoninen sarja Alkulukujen harmoninen sarja LuK-tutkielma Markus Horneman Oiskelijanumero:2434548 Matemaattisten tieteiden laitos Oulun ylioisto Syksy 207 Sisältö Johdanto 2 Hyödyllisiä tuloksia ja määritelmiä 3. Alkuluvuista............................

Lisätiedot

RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita

RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita Simo K. Kivelä, 25.1.2005 RSA-salakirjoitus Ron Rivest, Adi Shamir ja Leonard Adleman esittivät vuonna 1978 salakirjoitusmenettelyn, jossa tietylle henkilölle osoitetut viestit voidaan salakirjoittaa hänen

Lisätiedot

Juuri 11 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

Juuri 11 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Kertaus K1. a) 72 = 2 36 = 2 2 18 = 2 2 2 9 = 2 2 2 3 3 = 2 3 3 2 252 = 2 126 = 2 2 63 = 2 2 3 21 = 2 2 3 3 7 = 2 2 3 2 7 syt(72, 252) = 2 2 3 2 = 36 b) 252 = 72 3 + 36 72 = 36 2 syt(72, 252) = 36 c) pym(72,

Lisätiedot

a b 1 c b n c n

a b 1 c b n c n Algebra Syksy 2007 Harjoitukset 1. Olkoon a Z. Totea, että aina a 0, 1 a, a a ja a a. 2. Olkoot a, b, c, d Z. Todista implikaatiot: a) a b ja c d ac bd, b) a b ja b c a c. 3. Olkoon a b i kaikilla i =

Lisätiedot

Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta

Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta TAMPEREEN YLIOPISTO Pro gradu -tutkielma Liisa Lampinen Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta Informaatiotieteiden yksikkö Matematiikka Kesäkuu 2016 Tampereen

Lisätiedot

RSA-salaus ja sen lukuteoreettinen pohja

RSA-salaus ja sen lukuteoreettinen pohja TAMPEREEN YLIOPISTO Pro gradu -tutkielma Pekka Larja RSA-salaus ja sen lukuteoreettinen pohja Informaatiotieteiden yksikkö Matematiikka Toukokuu 2011 Tampereen yliopisto Informaatiotieteiden yksikkö LARJA,

Lisätiedot

Testaa taitosi 1: Lauseen totuusarvo

Testaa taitosi 1: Lauseen totuusarvo Testaa taitosi 1: Lauseen totuusarvo 1. a) Laadi lauseen A (B A) totuustaulu. b) Millä lauseiden A ja B totuusarvoilla a-kohdan lause on tosi? c) Suomenna a-kohdan lause, kun lause A on olen vihainen ja

Lisätiedot

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

n (n 1) avainten vaihtoa. Miljoonalle käyttäjälle avainten vaihtoja tarvittaisiin 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,

Lisätiedot

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

Nimittäin, koska s k x a r mod (p 1), saadaan Fermat n pienen lauseen avulla 6. Digitaalinen allekirjoitus Digitaalinen allekirjoitus palvelee samaa tarkoitusta kuin perinteinen käsin kirjotettu allekirjoitus, t.s. Liisa allekirjoittaessaan Pentille lähettämän viestin, hän antaa

Lisätiedot

4. Eulerin ja Fermat'n lauseet

4. Eulerin ja Fermat'n lauseet 4. Eulerin ja Fermat'n lauseet 4.1 Alkuluokka ja Eulerin φ-funktio Yleensä olemme kiinnostuneita vain niistä jäännösluokista modulo m, joiden alkiot ovat suhteellisia alkulukuja luvun m kanssa. Näiden

Lisätiedot

Multiplikatiivisista funktioista

Multiplikatiivisista funktioista TAMPEREEN YLIOPISTO Pro gradu -tutkielma Marita Riihiranta Multiplikatiivisista funktioista Matematiikan ja tilastotieteen laitos Matematiikka Toukokuu 2008 Tampereen yliopisto Matematiikan ja tilastotieteen

Lisätiedot

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

R : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on 0. Kertausta ja täydennystä Kurssille Äärelliset kunnat tarvittavat esitiedot löytyvät Algebran kurssista [Alg]. Hyödyksi voivat myös olla (vaikka eivät välttämättömiä) Lukuteorian alkeet [LTA] ja Salakirjoitukset

Lisätiedot

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

(d) 29 4 (mod 7) (e) ( ) 49 (mod 10) (f) (mod 9) 1. Pätevätkö seuraavat kongruenssiyhtälöt? (a) 40 13 (mod 9) (b) 211 12 (mod 2) (c) 126 46 (mod 3) Ratkaisu. (a) Kyllä, sillä 40 = 4 9+4 ja 13 = 9+4. (b) Ei, sillä 211 on pariton ja 12 parillinen. (c)

Lisätiedot

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

pdfmark=/pages, Raw=/Rotate 90 1 LUKUTEORIAA JA MUITA TYÖKALUJA SALAUKSEEN Lukujoukot Sekalaisia merkintöjä... pdfmark=/pages, Raw=/Rotate 90 Sisältö 1 LUKUTEORIAA JA MUITA TYÖKALUJA SALAUKSEEN 0-2 2 Merkintöjä 0-3 2.1 Lukujoukot................... 0-3 2.2 Sekalaisia merkintöjä.............. 0-4 2.3 Tärkeitä kaavoja................

Lisätiedot

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

on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään 5. Primitiivinen alkio 5.1. Täydennystä lukuteoriaan. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan kääntyvien alkioiden muodostama osajoukko Z n := {x Z n x on kääntyvä}

Lisätiedot

Lukuteorian sovelluksia tiedon salauksessa

Lukuteorian sovelluksia tiedon salauksessa TAMPEREEN YLIOPISTO Pro gradu -tutkielma Aki-Matti Luoto Lukuteorian sovelluksia tiedon salauksessa Matematiikan, tilastotieteen ja filosofian laitos Matematiikka Huhtikuu 2006 Tampereen yliopisto Matematiikan,

Lisätiedot

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa) Lukuteoria Lukuteoria on eräs vanhimmista matematiikan aloista. On sanottu, että siinä missä matematiikka on tieteiden kuningatar, on lukuteoria matematiikan kuningatar. Perehdymme seuraavassa luonnollisten

Lisätiedot

Määritelmä, alkuluku/yhdistetty luku: Esimerkki . c) Huomautus Määritelmä, alkutekijä: Esimerkki

Määritelmä, alkuluku/yhdistetty luku: Esimerkki . c) Huomautus Määritelmä, alkutekijä: Esimerkki Alkuluvut LUKUTEORIA JA TODISTAMINEN, MAA11 Jokainen luku 0 on jaollinen ainakin itsellään, vastaluvullaan ja luvuilla ±1. Kun muita eri ole, niin kyseinen luku on alkuluku. Määritelmä, alkuluku/yhdistetty

Lisätiedot

Salausmenetelmät LUKUTEORIAA JA ALGORITMEJA. Veikko Keränen, Jouko Teeriaho (RAMK, 2006) 3. Kongruenssit. à 3.4 Kongruenssien laskusääntöjä

Salausmenetelmät LUKUTEORIAA JA ALGORITMEJA. Veikko Keränen, Jouko Teeriaho (RAMK, 2006) 3. Kongruenssit. à 3.4 Kongruenssien laskusääntöjä Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.4 Kongruenssien laskusääntöjä Seuraavassa lauseessa saamme kongruensseille mukavia laskusääntöjä.

Lisätiedot

a ord 13 (a)

a ord 13 (a) JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 4, MALLIRATKAISUT Tehtävä 1. Etsi asteet ord p (a) luvuille a 1, 2,..., p 1 kun p = 13 ja kun p = 17. (ii) Mitkä jäännösluokat ovat primitiivisiä juuria (mod

Lisätiedot

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

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO 8038A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 016 Sisältö 1 Irrationaaliluvuista Antiikin lukuja 6.1 Kolmio- neliö- ja tetraedriluvut...................

Lisätiedot

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

802354A Algebran perusteet Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä 802354A Algebran perusteet Luentorunko Kevät 2017 Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä Sisältö 1 Lukuteoriaa 3 1.1 Jakoalgoritmi ja alkuluvut.................... 3 1.2 Suurin yhteinen tekijä......................

Lisätiedot

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa? Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa? 2012-2013 Lasse Lensu 2 Ongelma 2: Miten tietoa voidaan (uudelleen)koodata tehokkaasti? 2012-2013 Lasse Lensu

Lisätiedot

41 s. Neljännessä luvussa käsitellään erikseen parillisia täydellisiä lukuja. Luvussa osoitetaan Eukleides Euler teoreema,

41 s. Neljännessä luvussa käsitellään erikseen parillisia täydellisiä lukuja. Luvussa osoitetaan Eukleides Euler teoreema, Tiedekunta/Osasto Fakultet/Sektion Faculty Matemaattis luonnontieteellinen tiedekunta Tekijä/Författare Author Katja Niemistö Työn nimi / Arbetets titel Title Täydelliset luvut Oppiaine /Läroämne Subject

Lisätiedot

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

802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III 802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LUKUTEORIA 1 / 77 Irrationaaliluvuista Määritelmä 1 Luku α C \ Q on

Lisätiedot

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

7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi 7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi Z p [x]/(m), missä m on polynomirenkaan Z p [x] jaoton polynomi (ks. määritelmä 3.19).

Lisätiedot

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

R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l, 2. Laajennettu Eukleideen algoritmi Määritelmä 2.1. Olkoot F kunta ja A, B, C, D F [x]. Sanotaan, että C jakaa A:n (tai C on A:n jakaja), jos on olemassa K F [x] siten, että A = K C; tällöin merkitään

Lisätiedot

2 j =

2 j = 1. Modulaariaritmetiikkaa Yksinkertaisissa salausjärjestelmissä käytettävä matematiikka on paljolti lukuteoriaan pohjautuvaa suurten lukujen modulaariaritmetiikkaa (lasketaan kokonaisluvuilla modulo n).

Lisätiedot

LUKUTEORIA johdantoa

LUKUTEORIA johdantoa LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,

Lisätiedot

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

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1) Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Modernin kryptografian RSA-salausmenetelmä ja sen lukuteoreettinen tausta. Terhi Korhonen

Modernin kryptografian RSA-salausmenetelmä ja sen lukuteoreettinen tausta. Terhi Korhonen Modernin kryptografian RSA-salausmenetelmä ja sen lukuteoreettinen tausta Terhi Korhonen ! Tiedekunta/Osasto Fakultet/Sektion Faculty Matemaattis-luonnontieteellinen Tekijä/Författare Author Laitos/Institution

Lisätiedot

Algebra I, harjoitus 5,

Algebra I, harjoitus 5, Algebra I, harjoitus 5, 7.-8.10.2014. 1. 2 Osoita väitteet oikeiksi tai vääriksi. a) (R, ) on ryhmä, kun asetetaan a b = 2(a + b) aina, kun a, b R. (Tässä + on reaalilukujen tavallinen yhteenlasku.) b)

Lisätiedot

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta: MATP00 Johdatus matematiikkaan Ylimääräisten tehtävien ratkaisuehdotuksia. Osoita, että 00 002 < 000 000. Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa. Lähdetään sieventämään epäyhtälön

Lisätiedot

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

802354A Algebran perusteet Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä 802354A Algebran perusteet Luentorunko Kevät 2018 Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä Sisältö 1 Lukuteoriaa 3 1.1 Jakoalgoritmi ja alkuluvut.................... 3 1.2 Suurin yhteinen tekijä......................

Lisätiedot

ALKULUVUISTA (mod 6)

ALKULUVUISTA (mod 6) Oulun Yliopisto Kandidaatintutkielma ALKULUVUISTA (mod 6) Marko Moilanen Opiskelijanro: 1681871 17. joulukuuta 2014 Sisältö 1 Johdanto 2 1.1 Tutkielman sisältö........................ 2 1.2 Alkulukujen

Lisätiedot

Modulaarisista laskutaulukoista

Modulaarisista laskutaulukoista Modulaarisista laskutaulukoista Visa Latvala ja Pekka Smolander Matematiikan laitos, Joensuun yliopisto Johdanto Artikkelin tarkoituksena on tutustuttaa lukija modulaariseen yhteen- ja kertolaskuun. Nämä

Lisätiedot

Valitse kuusi tehtävää! Kaikki tehtävät ovat 6 pisteen arvoisia.

Valitse kuusi tehtävää! Kaikki tehtävät ovat 6 pisteen arvoisia. MAA11 Koe 8.4.013 5 5 1. Luvut 6 38 ja 43 4 jaetaan luvulla 17. Osoita, että tällöin jakojäännökset ovat yhtäsuuret. Paljonko tämä jakojäännös on?. a) Tutki onko 101 alkuluku. Esitä tutkimuksesi tueksi

Lisätiedot

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

rm + sn = d. Siispä Proposition 9.5(4) nojalla e d. 9. Renkaat Z ja Z/qZ Tarkastelemme tässä luvussa jaollisuutta kokonaislukujen renkaassa Z ja todistamme tuloksia, joita käytetään jäännösluokkarenkaan Z/qZ ominaisuuksien tarkastelussa. Jos a, b, c Z ovat

Lisätiedot

802354A Lukuteoria ja ryhmät Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä, Antti Torvikoski, 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ä 802354A Lukuteoria ja ryhmät Luentorunko Kevät 2014 Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä, Antti Torvikoski, Topi Törmä Sisältö 1 Ekvivalenssirelaatio 3 2 Lukuteoriaa 4 2.1 Lukuteorian

Lisätiedot

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

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen

Lisätiedot

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT Tehtävä 1. (i) Olkoot n, d 1 ja d n. Osoita, että (k, n) d jos ja vain jos k ad, missä (a, n/d) 1. (ii) Osoita, että jos (m j, m k ) 1 kun

Lisätiedot

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Heikki Hietava. Neliöiden summat

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Heikki Hietava. Neliöiden summat TAMPEREEN YLIOPISTO Pro gradu -tutkielma Heikki Hietava Neliöiden summat Informaatiotieteiden yksikkö Matematiikka Kesäkuu 2011 Tampereen yliopisto Informaatiotieteiden yksikkö HIETAVA, HEIKKI: Neliöiden

Lisätiedot

Jokainen kokonaisluku n voidaan esittää muodossa (missä d on positiivinen kok.luku) Tässä q ja r ovat kokonaislukuja ja 0 r < d.

Jokainen kokonaisluku n voidaan esittää muodossa (missä d on positiivinen kok.luku) Tässä q ja r ovat kokonaislukuja ja 0 r < d. Jakoyhtälö: Jokainen kokonaisluku n voidaan esittää muodossa (missä d on positiivinen kok.luku) n = d*q + r Tässä q ja r ovat kokonaislukuja ja 0 r < d. n = d * q + r number divisor quotient residue numero

Lisätiedot

Täydelliset totienttiluvut

Täydelliset totienttiluvut TAMPEREEN YLIOPISTO Pro gradu -tutkielma Tuukka Hyvärinen Täydelliset totienttiluvut Informaatiotieteiden yksikkö Matematiikka Toukokuu 2015 Tampereen yliopisto Informaatiotieteiden yksikkö HYVÄRINEN,

Lisätiedot

. Silloin 1 c. Toisaalta, koska c on lukujen a d ja b d. (a 1,a 2,..., a n )

. Silloin 1 c. Toisaalta, koska c on lukujen a d ja b d. (a 1,a 2,..., a n ) Lukuteorian alkeita Matematiikkakilpailuissa on yleensä tehtäviä, joiden aiheala on alkeellinen lukuteoria. Tässä esitellään perustellen ne lukuteorian tiedot, joihin lukuteoria-aiheisissa tehtävissä yleensä

Lisätiedot

5. Julkisen avaimen salaus

5. Julkisen avaimen salaus Osa3: Matematiikkaa julkisen avaimen salausten taustalla 5. Julkisen avaimen salaus Public key cryptography 5. 1 Julkisen avaimen salausmenetelmät - Diffien ja Hellmannin periaate v. 1977 - RSA:n perusteet

Lisätiedot

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

Esimerkki A1. Jaetaan ryhmä G = Z 17 H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4 4 = 16 = 1}. Jaetaan ryhmä G = Z 17 n H = 4 sivuluokkiin. Ratkaisu: Koska 17 on alkuluku, #G = 16, alkiona jäännösluokat a, a = 1, 2,..., 16. Määrätään ensin n H alkiot: H = 4 = {1, 4, 4 2 = 16 = 1, 4 3 = 4 = 13, 4

Lisätiedot

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta. Väitelause Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta. Tässä P:tä kutsutaan oletukseksi ja Q:ta väitteeksi. Jos yllä oleva väitelause on totta, sanotaan, että P:stä

Lisätiedot

d Z + 17 Viimeksi muutettu

d Z + 17 Viimeksi muutettu 5. Diffien ja Hellmanin avaintenvaihto Miten on mahdollista välittää salatun viestin avaamiseen tarkoitettu avain Internetin kaltaisen avoimen liikennöintiväylän kautta? Kuka tahansahan voi (ainakin periaatteessa)

Lisätiedot

Törmäyskurssi kilpailulukuteoriaan pienin välttämätön oppimäärä

Törmäyskurssi kilpailulukuteoriaan pienin välttämätön oppimäärä Törmäyskurssi kilpailulukuteoriaan pienin välttämätön oppimäärä Anne-Maria Ernvall-Hytönen 14. tammikuuta 2011 Sisältö 1 Jaollisuus, alkuluvut, ynnä muut perustavanlaatuiset asiat 2 1.1 Lukujen tekijöiden

Lisätiedot

LUKUTEORIA 1 JYVÄSKYLÄN YLIOPISTO

LUKUTEORIA 1 JYVÄSKYLÄN YLIOPISTO LUKUTEORIA 1 JYVÄSKYLÄN YLIOPISTO Matemaatikot eivät ole tyytyväisiä tietäessään asioita neljästä miljoonasta tai neljästä miljardista kokonaisluvusta. He haluavat tietää asioita jokaisesta äärettömän

Lisätiedot

ja jäännösluokkien joukkoa

ja jäännösluokkien joukkoa 3. Polynomien jäännösluokkarenkaat Olkoon F kunta, ja olkoon m F[x]. Polynomeille f, g F [x] määritellään kongruenssi(-relaatio) asettamalla g f mod m : m g f g = f + m h jollekin h F [x]. Kongruenssi

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Kokonaisluvun kertaluvun sovelluksia

Kokonaisluvun kertaluvun sovelluksia TAMPEREEN YLIOPISTO Pro gradu -tutkielma Timo D. Talvitie Kokonaisluvun kertaluvun sovelluksia Matematiikan ja tilastotieteen laitos Matematiikka Huhtikuu 2008 Tampereen yliopisto Matematiikan ja tilastotieteen

Lisätiedot

Lukuteorian kurssi lukioon

Lukuteorian kurssi lukioon TAMPEREEN YLIOPISTO Pro gradu -tutkielma Sini Siira Lukuteorian kurssi lukioon Informaatiotieteiden yksikkö Matematiikka Huhtikuu 2015 Tampereen yliopisto Informaatiotieteiden yksikkö SIIRA, SINI: Lukuteorian

Lisätiedot

Matematiikan tukikurssi, kurssikerta 3

Matematiikan tukikurssi, kurssikerta 3 Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Todistusmenetelmiä Miksi pitää todistaa?

Todistusmenetelmiä Miksi pitää todistaa? Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

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

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 Renkaat Tarkastelemme seuraavaksi rakenteita, joissa on määritelty kaksi binääristä assosiatiivista laskutoimitusta, joista toinen on kommutatiivinen. Vaadimme muuten samat ominaisuudet kuin kokonaisluvuilta,

Lisätiedot

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

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jarmo Niemelä. Primitiivisistä juurista ja. alkuluokkaryhmistä TAMPEREEN YLIOPISTO Pro gradu -tutkielma Jarmo Niemelä Primitiivisistä juurista ja alkuluokkaryhmistä Matematiikan, tilastotieteen ja filosofian laitos Matematiikka Marraskuu 2000 2 TAMPEREEN YLIOPISTO

Lisätiedot

Lyhyt johdatus alkeelliseen lukuteoriaan. Esa V. Vesalainen

Lyhyt johdatus alkeelliseen lukuteoriaan. Esa V. Vesalainen yhyt johdatus alkeelliseen lukuteoriaan Esa V. Vesalainen Sisällysluettelo 1 Aritmetiikan peruslause 0 Jakoyhtälö.................................. 0 Jaollisuus.................................. 0 Alkuluvut..................................

Lisätiedot

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku

Lisätiedot

Alkulukujen teoriaa ja Goldbachin otaksuma

Alkulukujen teoriaa ja Goldbachin otaksuma TAMPEREEN YLIOPISTO Pro gradu -tutkielma Teemu Lehtonen Alkulukujen teoriaa ja Goldbachin otaksuma Matematiikan, tilastotieteen ja losoan laitos Matematiikka Maaliskuu 2004 Sisältö 1 Johdanto 2 2 Alkuluvuista

Lisätiedot

LUONNOLLISTEN LUKUJEN JAOLLISUUS

LUONNOLLISTEN LUKUJEN JAOLLISUUS Luonnollisten lukujen jaollisuus 0 Calculus Lukion Täydentävä aineisto Alkuluv,,,,,,,..., ut 11 1 1 1 411609 -, 4 6 8 9 10 11 1 1 14 1 16 1 18 19 0 1 4 6 8 9 0 1 4 6 8 9 40 41 4 4 44 4 46 4 48 49 0 1 4

Lisätiedot

Epälineaarisia Diofantoksen yhtälöitä

Epälineaarisia Diofantoksen yhtälöitä TAMPEREEN YLIOPISTO Pro gradu -tutkielma Maarit Viikari Epälineaarisia Diofantoksen yhtälöitä Matematiikan ja tilastotieteen laitos Matematiikka Toukokuu 2009 Tampereen yliopisto Matematiikan ja tilastotieteen

Lisätiedot

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa - johdanto - matemaattinen induktiotodistus - matriisien kertolaskun käyttömahdollisuus - käsinlaskuesimerkkejä - kaikki välivaiheet esittävä

Lisätiedot

Jaollisuus kymmenjärjestelmässä

Jaollisuus kymmenjärjestelmässä Jaollisuus kymmenjärjestelmässä Lauseen 4.5 mukaan jokaiselle n N on yksikäsitteiset kokonaisluvut s 0 ja a 0, a 1,..., a s, joille n = a s 10 s + a s 1 10 s 1 + + a 1 10 + a 0 = a s a a 1... a 0, (1)

Lisätiedot

Yhtäpitävyys. Aikaisemmin osoitettiin, että n on parillinen (oletus) n 2 on parillinen (väite).

Yhtäpitävyys. Aikaisemmin osoitettiin, että n on parillinen (oletus) n 2 on parillinen (väite). Yhtäpitävyys Aikaisemmin osoitettiin, että n on parillinen (oletus) n 2 on parillinen (väite). Toisaalta ollaan osoitettu, että n 2 on parillinen (oletus) n on parillinen (väite). Nämä kaksi väitelausetta

Lisätiedot

Shorin algoritmin matematiikkaa Edvard Fagerholm

Shorin algoritmin matematiikkaa Edvard Fagerholm Edvard Fagerholm 1 Määritelmiä Määritelmä 1 Ryhmä G on syklinen, jos a G s.e. G = a. Määritelmä 2 Olkoon G ryhmä. Tällöin alkion a G kertaluku ord(a) on pienin luku n N \ {0}, jolla a n = 1. Jos lukua

Lisätiedot

SALAUSMENETELMÄT. Osa 2. Etätehtävät

SALAUSMENETELMÄT. Osa 2. Etätehtävät SALAUSMENETELMÄT Osa 2 Etätehtävät A. Kysymyksiä, jotka perustuvat luentomateriaaliin 1. Määrittele, mitä tarkoitetaan tiedon eheydellä tieoturvan yhteydessä. 2. Määrittele, mitä tarkoittaa kiistämättömyys

Lisätiedot