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

Samankaltaiset tiedostot
Salakirjoitusmenetelmiä

Diofantoksen yhtälön ratkaisut

Lukuteorian kertausta

2017 = = = = = = 26 1

RSA-salaus ja sen lukuteoreettinen pohja

1 Lukujen jaollisuudesta

MS-A0402 Diskreetin matematiikan perusteet

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

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

811120P Diskreetit rakenteet

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

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

LUKUTEORIA johdantoa

Testaa taitosi 1: Lauseen totuusarvo

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

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

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

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

Matematiikan mestariluokka, syksy

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

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

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

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

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

Primitiiviset juuret: teoriaa ja sovelluksia

Lineaariset kongruenssiyhtälöryhmät

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

Eulerin lauseen merkitys kryptauksen kannalta

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

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

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

Lukuteorian sovelluksia tiedon salauksessa

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

a ord 13 (a)

Alkulukujen harmoninen sarja

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

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

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

Algebra I, harjoitus 5,

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

RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita

Kryptologia Esitelmä

Diofantoksen yhtälöt Pro gradu -tutkielma Pasi Juopperi Matematiikan ja tilastotieteen laitos Helsingin yliopisto Syksy 2013

ALKULUKUJA JA MELKEIN ALKULUKUJA

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

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

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

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 6 (8 sivua) OT. 1. a) Määritä seuraavat summat:

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

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

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

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

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

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

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

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

Korkeamman asteen kongruensseista

LUKUTEORIA 1 JYVÄSKYLÄN YLIOPISTO

Todistusmenetelmiä Miksi pitää todistaa?

Matematiikan tukikurssi, kurssikerta 3

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jenny Virolainen. Kongruenssista

Aika/Datum Month and year Kesäkuu 2012

Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

a b 1 c b n c n

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

Lukuteorian kurssi lukioon

ALKULUVUISTA (mod 6)

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

Epälineaarisia Diofantoksen yhtälöitä

Johdatus matemaattiseen päättelyyn

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

d Z + 17 Viimeksi muutettu

LUKUTEORIAN ALKEET HELI TUOMINEN

Tietoturvatekniikka Ursula Holmström

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

A TIETORAKENTEET JA ALGORITMIT

Shorin algoritmin matematiikkaa Edvard Fagerholm

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

Esko Turunen Luku 3. Ryhmät

RSA Julkisen avaimen salakirjoitusmenetelmä

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

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

Sisällöstä. Oppimateriaali. 1 Lukujärjestelmät. 1.1 Jakoyhtälö

Lyhyt johdatus alkeelliseen lukuteoriaan. Esa V. Vesalainen

2 j =

Koostanut Juulia Lahdenperä ja Rami Luisto. Salakirjoituksia

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

2. Eukleideen algoritmi

(mod 71), 2 1(mod 71) (3 ) 3 (2 ) 2

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

5. Julkisen avaimen salaus

SALAUSMENETELMÄT A, 4 op

Eräitä RSA-salauksen haavoittuvuuksia

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Ekvivalenssirelaatio. Määritelmä 2 Joukon A binäärinen relaatio R on ekvivalenssirelaatio, mikäli. Jos R on ekvivalenssirelaatio ja a A, niin joukkoa

Matematiikan tukikurssi

Algebra I. Kevät 2004 Pentti Haukkanen

Transkriptio:

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

! Tiedekunta/Osasto Fakultet/Sektion Faculty Matemaattis-luonnontieteellinen Tekijä/Författare Author Laitos/Institution Department Matematiikan ja tilastotieteen laitos Terhi Korhonen Työn nimi / Arbetets titel Title Modernin kryptografian RSA-salausmenetelmä ja sen lukuteoreettinen tausta Oppiaine /Läroämne Subject Matematiikka Työn laji/arbetets art Level Aika/Datum Month and year Sivumäärä/ Sidoantal Number of pages Pro gradu -tutkielma Toukokuu 2013 Tiivistelmä/Referat Abstract 29 s. Salausmenetelmät kokivat mullistuksen 1970-luvulla, kun esiteltiin ensimmäinen käytännön sovellus julkisen avaimen salausalgoritmista. Julkisen avaimen menetelmissä on kaksi avainta, joista toinen on julkinen ja toinen salainen. Salaukseen ja purkamiseen käytetään eri avaimia, eikä niitä voida päätellä toisistaan niin kuin useimmissa perinteisissä menetelmissä. RSA-salausmenetelmä on käytetyin ja testatuin julkisen avaimen kryptosysteemi, joka tarjoaa myös mahdollisuuden digitaaliseen allekirjoitukseen. RSA-algoritmin turvallisuus nojaa erääseen lukuteorian keskeiseen tulokseen, jonka mukaan kahden ison alkuluvun tulon tekijöihinjako on laskennallisesti erittäin hankalaa. Lukuteoria tarjoaa RSA-salausmenetelmälle vankan matemaattisen pohjan. Tutkielman toisessa luvussa käydään läpi useita lukuteorian keskeisiä tuloksia, kuten jaollisuus, alkuluvut, jakoalgoritmi, suurin yhteinen tekijä, kongruenssi, Diofantoksen yhtälö, Eukleideen algoritmi, Kiinalainen jäännöslause, Eulerin funktio, Fermat n pieni lause ja Jacobin sekä Legendren symboli. Ennen RSA-menetelmän käsittelemistä, tutkielmassa tutustutaan yleisesti kryptologiaan, sen historiaan ja terminologiaan. Samaisessa luvussa käsitellään myös symmetristen ja epäsymmetristen menetelmien vastakkainasettelu. Tutkielman neljännessä luvussa syvennytään RSA-salausalgoritmiin sekä sen toimintaan. Aluksi luodaan salausta ja purkua varten tarvittava avainpari, jota myöhemmin hyödynnetään muutettaessa selvätekstiä salattuun muotoon ja purettaessa salatussa muodossa oleva viesti takaisin selvätekstiksi. Tutkielman viimeisissä luvuissa tarkastellaan avainparin alkulukujen sekä eksponenttien valintaa kryptosysteemin turvallisuuden näkökulmasta. Lopuksi tutustutaan myös useihin RSA-menetelmän kannalta keskeisiin alkulukutesteihin sekä tekijöihinjako -menetelmiin. Avainsanat Nyckelord Keywords RSA, kryptografia, salaus, lukuteoria, digitaalinen allekirjoitus, tekijöihinjako, alkuluku Säilytyspaikka Förvaringställe Where deposited Muita tietoja Övriga uppgifter Additional information

Sisältö 1 Johdanto 2 2 Lukuteoria 3 2.1 Jaollisuus ja alkuluvut................................. 3 2.2 Suurin yhteinen tekijä ja Eukleideen algoritmi.................... 5 2.3 Kongruenssi, kiinalainen jäännöslause ja modulaarinen potenssiinkorotus..... 6 2.4 Lineaarinen Diofantoksen yhtälö ja lineaarikongruenssi............... 9 2.5 Eulerin funktio, Eulerin lause ja Fermat n pieni lause................ 10 2.6 Neliönjäännös, Jacobin ja Legendren symboli..................... 11 3 Yleistä salausmenetelmistä 12 3.1 Taustaa ja terminologiaa................................ 12 3.2 Esimerkki klassisesta salausmenetelmästä....................... 13 3.3 Symmetriset vs. epäsymmetriset salausmenetelmät................. 13 4 RSA 15 4.1 Yleistä.......................................... 15 4.2 Avainparin luonti.................................... 15 4.3 Enkryptaus ja dekryptaus............................... 16 4.4 Enkryptaus ja dekryptaus -esimerkki......................... 17 4.5 Digitaalinen allekirjoitus................................ 18 5 Alkulukujen ja eksponenttien valinta 20 5.1 Kryptosysteemin turvallisuudesta........................... 20 5.2 Alkulukujen esiintymistiheys.............................. 20 5.3 Alkulukutestejä..................................... 21 5.4 Eksponenttien valinta.................................. 23 6 Tekijöihin jakaminen 24 6.1 Yleistä.......................................... 24 6.2 Fermat n menetelmä.................................. 24 6.3 Pollardin rho-menetelmä................................ 25 6.4 Pollardin p-1 -menetelmä................................ 25 6.5 Kehitys......................................... 27 6.6 Neliöseula........................................ 27 1

Luku 1 Johdanto Salausmenetelmät ovat merkittävä osa nykyisen yhteiskunnan laajaa tiedonvälityksen järjestelmää. Sähköiset palvelut mahdollistavat asiakkaan palvelun ajasta ja paikasta riippumatta. Esimerkiksi internetin pelipalveluiden, sähköisen ajanvarauksen tai verkkopankin käyttö ei olisi mahdollista ilman luotettavaa tiedonsalausta. Salausmenetelmissä keskeinen rooli on lukuteorialla, joka tarjoaa salausalgoritmeille vankan matemaattisen pohjan. Salausmenetelmät voidaan jakaa symmetrisiin ja epäsymmetrisiin menetelmiin, joista RSA on esimerkki jälkimmäisestä. Muita julkisen avaimen kryptosysteemejä ovat muun muassa ElGamalsysteemi (perustuu Diffie-Hellman avaimenvaihtojärjestelmään), NTRU- ja McEliece-systeemi. Monet perinteiset salausmenetelmät, esim. Caesarin salaus, ovat puolestaan symmetrisiä menetelmiä. Nykyajan symmetrisistä menetelmistä hallitsevia ovat DES (Data Encryption Standard) ja AES (Advanced Encryption Standard). RSA on suurinta suosiota nauttiva julkisen avaimen salausmenetelmä, joka kehitettiin 1970- luvun lopulla. Jo saman vuosikymmenen alkupuolella Diffie ja Hellman ehdottivat ideaa julkisen avaimen menetelmästä, mutta RSA-algoritmi oli ensimmäinen epäsymmetrisen kryptosysteemin käytännön sovellus. Salausalgoritmin lyhenne muodostuu keksijöidensä sukunimistä; River, Shamir ja Adleman. RSA-salausalgoritmissa on kaksi avainta, joista toinen on julkinen ja toinen salainen. Jokainen kommunikaatioon osallistuja luo itse oman julkisen ja salaisen avaimensa. Salaukseen ja purkamiseen käytetään siis eri avaimia, eikä niitä voi päätellä toisistaan. Näin ollen toinen avaimista voidaan turvallisesti julkistaa. 2

Luku 2 Lukuteoria Lukuteoria käsittelee yleisesti kokonaislukuja Z =0, ±1, ±2, ±3... ja luonnollisia lukuja N = 0, 1, 2, 3,... Oletetaan tunnetuksi hyvän järjestyksen periaate, jonkamukaanjokainenpositiivisiakokonaislukuja sisältävä epätyhjä joukko sisältää aina pienimmän alkion. [7, s.6] 2.1 Jaollisuus ja alkuluvut Kun mielivaltainen kokonaisluku m jaetaan toisella kokonaisluvulla n 6= 0,osamäärä ei aina ole kokonaisluku. Esimerkki 1. Valitaan m =81, n =9Näin ollen 81/9 =9eli osamääräksi saadaan kokonaisluku. Esimerkki 2. Valitaan m =264, n =5Näin ollen 264/5 =52, 8 eli osamäärä ei ole kokonaisluku. Määritelmä 2.1. Jaollisuus [7, s.36] Olkoot a ja b positiivisia kokonaislukuja siten, että a 6= 0. Luku a jakaa luvun b, josonolemassasellainenkokonaislukuc, ettäb = ac. Jos luku a jakaa luvun b, sanotaan,ettalukua on luvun b tekijä tai jakaja, merkitään a b. Jos b ei ole jaollinen luvulla b, merkitääna - b. Huomautus 1. Olkoota jab kokonaislukuja. Jos a b, niin tekijät ±1 ja ±a. Esimerkki 3. Luvun 8 tekijät ovat ±1, ±2, ±4, ±8. Esimerkki 4. Luvun 24 ei-triviaalit tekijät ovat ±2, ±3, ±4, ±6, ±8, ±12. a b. Jokaisellaluvullaa onns. triviaalit Esimerkki 5. 2 4, 9 81, 10-93, 5-44,7-264, ja16 0. Lause 2.2. [7, s.37] Olkoot a, b, c, m ja n kokonaislukuja. Tällöin (1) jos a b ja b c, niina c. (2) jos c a ja c b, niinc (ma + nb). Todistus. [7, s. 37] (1) Koska a b ja b c,onjaollisuudenmääritelmännojallaolemassakokonaisluku d siten, että ad = b ja bf = c. Tällöin c = bf =(ad)f = a(df ). Siisa c. (2) Koska c a ja c b, onjaollisuudenmääritelmännojallaolemassakokonaisluvutd ja f siten, että a = cd ja b = cf. Tällöin ma + nb = mcd + ncf = c(md + nf). Siisc (ma + nb). Vastaavasti päättelemällä saataisiin myös, että c (ma nb). Esimerkki 6. Koska 5 15 ja 5 25, niinlauseen2.2kohdan(2)nojalla5 (2 15 + 3 25). Toisin sanoen luku 5 on luvun 2 15 + 3 25 = 30 + 75 = 105 tekijä. 3

Lause 2.3. Jakoalgoritmi [7, s.37] Olkoot a ja b kokonaislukuja siten, että b > 0.Tällöin on olemassa yksikäsitteiset kokonaisluvut q ja r siten, että a = bq + r ja 0 apple r<b. Jakoyhtälön lukua q kutsutaan osamääräksi, lukua a jakajaksi, lukua b jaettavaksi ja lukua r jakojäännökseksi. Todistus. [7, s.37-38] Olkoon S muotoa a bk olevien kokonaislukujen joukko, ja k on kokonaisluku. Olkoon T kaikkien ei-negatiivisten kokonaislukujen joukko joukossa S. T on epätyhjä, sillä a bk on positiivinen aina, kun k on kokonaisluku siten, että k < a/b. Hyvän järjestyksen periaatteen mukaisesti joukossa T on pienin alkio k = q. Asetetaanr = a bq. Luvut q ja r on määritelty kuten yllä. Nyt oletuksen nojalla r 0 ja r<b.josolisivoimassa, että r b, niinsilloin r > r b = a bq b = a b(q +1) 0, joka on ristiriidassa valinnan kanssa, että r = a bq on pienin ei-negatiivinen muotoa a bk oleva kokonaisluku. Täten 0 apple r<b. Osoitetaan vielä, että luvut q ja r ovat yksikäsitteiset. Oletetaan kaksi yhtälöä; a = bq 1 +r 1 ja a = bq 2 + r 2 siten, että 0 apple r 1 <bja 0 apple r 2 <b.vähentämälläensimmäisestäyhtälöstätoinen, saadaan eli 0=b(q 1 q 2 )+(r 1 r 2 ), r 2 r 1 = b(q 1 q 2 ). Siis r 2 r 1 on jaollinen luvulla b.koska0 apple r 1 <bja 0 apple r 2 <bsaadaan, että b<r 2 r 1 <b. Täten r 2 r 1 on jaollinen luvulla b vain jos r 2 r 1 =0,elitoisinsanoenr 1 = r 2.Koskaoletuksen nojalla bq 1 + r 1 = bq 2 + r 2 ja r 1 = r 2,niintäytyyollaq 1 = q 2.Näinollenluvutqjarovat yksikäsitteiset. Määritelmä 2.4. Alkuluku [7, s.64] Alkuluku on positiivinen kokonaisluku, joka on suurempi kuin 1 ja ei ole jaollinen muilla positiivisilla luvuilla kuin luvulla 1 ja itsellään. Esimerkki 7. Luvut 2, 3, 5, 7, 11, 13, 17, 79, 97, 151 ja 163 ovat alkulukuja. Määritelmä 2.5. Yhdistetty luku [7, s.64] Jos a>1 ja a ei ole alkuluku, niin a on yhdistetty luku. Esimerkki 8. Luvut 4, 49 ja 152 ovat yhdistettyjä lukuja, sillä 4 = 2 2, 49 = 7 7, ja 152 = 4 38. Lause 2.6. [7, s.90-92] Jokainen positiivinen kokonaisluku, joka on suurempi kuin 1, voidaan esittää lukujen järjestystä huomioon ottamatta yksikäsitteisesti alkulukujen tulona. Todistus. [7, s.90-92] 4

2.2 Suurin yhteinen tekijä ja Eukleideen algoritmi Määritelmä 2.7. Suurin yhteinen tekijä [7, s.74] Suurin yhteinen tekijä kahdelle kokonaisluvulle a ja b, joistaainakintoinenonerisuurikuin0, onsuurinkokonaisluku,jokajakaasekäluvuna että luvun b. Tässä esityksessä suurinta yhteistä tekijää merkitään d =(a, b). Esimerkki 9. Lukujen 24 ja 30 suurin yhteinen tekijä on (24, 30) = 6. Määritelmä 2.8. Suhteellinen alkuluku [7, s.74] Kokonaisluvut a ja b ovat suhteellisia alkulukuja, jos lukujen a ja b suurin yhteinen tekijä on 1. Esimerkki 10. Luvut 5 ja 14 ovat suhteellisia alkulukuja, sillä (5, 14) = 1. Määritelmä 2.9. Pienin yhteinen monikerta [7, s.93] Kahden positiivisen kokonaisluvun a ja b pienin yhteinen monikerta on pienin positiivinen kokonaisluku, joka on jaollinen sekä luvulla a että luvulla b, merkitään[a, b]. Lause 2.10. [7, s. 81] Jos c ja d ovat kokonaislukuja ja c = dq + r, missäq ja r ovat kokonaislukuja, niin (c, d) =(d, r). Todistus. [7, s. 81] Jos kokonaisluku e jakaa sekä luvun c että luvun d, jar = c dq niin lauseen 2.2 kohdan (2) nojalla e r. Samallatavallajose d ja e r, janiintällöine c, silläc = dq + r. Koska yhteiset tekijät c ja d ovat samoja kuin yhteiset tekijät luvuille d ja r, voidaanpäätellä,että (c, d) =(d, r). Yksinkertainen tapa määrittää suurin yhteinen tekijä on jakaa luvut alkulukutekijöihin ja muodostaa yhteisten alkulukutekijöiden tulo. Esimerkiksi lukujen 140 = 2 2 5 7 ja 105 = 3 5 7 suurin yhteinen tekijä on 5 7 = 35. Suurimmanyhteisentekijänlaskeminenmuuttuuusein kuitenkin hankalammaksi lukujen kasvaessa. Apuna suurimman yhteisen tekijän löytämisessä voidaan käyttää Eukleideen kuvaamaa algoritmia. Lause 2.11. Eukleideen algoritmi [7, s. 80] Olkoot a = r 0 ja b = r 1 kokonaislukuja siten, että a b>0. Josjakoalgoritmiatoistuvastisoveltamallasaadaan,ettär j = r j+1 q j+1 + rj +2,jossa 0 <r j+2 <r j+1, j=0, 1, 2,...,n 2 ja r n+1 =0,niin(a, b) =r n,jokaonviimeinennollasta eroava jakojäännös. Eukleideen algoritmin avulla nähdään, että suurin yhteinen tekijä on viimeisin jakojäännös, joka on erisuuri kuin 0. Jokaisessavaiheessajaettavajajakajasiiskorvataanyhäpienemmillä luvuilla. Todistus. [7, s. 81] Esimerkki 11. Olkoot a = 1276 ja b = 21. Etsitään lukujen a ja b suurin yhteinen tekijä käyttämällä Eukleideen algoritmia: 1276 = 60 21 + 16, 21 = 1 16 + 5, 16 = 3 5+1, 5 = 5 1+0. 5

Siis (1276, 21) = 1. Lause 2.12. [7, s. 68]Olkoot a ja b kokonaislukuja siten, että ainakin toinen luvuista a ja b on nollasta poikkeava luku. Olkoon d =(a, b). Tällöinonolemassakokonaisluvutx ja y siten, että ax + by = d. Todistus. [7, s. 68] Osoitetaan yleisesti, että jos r j on Eukleideen algoritmista saatava jakojäännös niin tällöin on olemassa kokonaisluvut x j, y j siten, että r j = ax j + by j. Oletetaan ensin, että j =1.Valitsemallax 1 =1ja y 1 = q 1 ja sijoittamalla edellä mainitut luvut Eukleiden algoritmin yhtälöön a = bq 1 +r 1 saadaan, että r 1 = ax 1 +by 1.Vastaavastisijoittamalla r 1 = ax 1 + by 1 yhtälöön b = r 1 q 2 + r 2 saadaan, että r 2 = a( q 2 )+b(1 + q 1 q 2 ). Oletetaan nyt, että kaikilla i<jon voimassa r j = ax i + by i. Tällöin r j = r j 2 q j r j 1 = a(x j 2 q j x j 1 )+b(y j 2 q j y j 1 ). Samalla tavalla jatkamalla saadaan tulos kaikille arvoille j sekä erityisesti tietylle arvolle j = k. Lauseen 2.11 nojalla r k =(a, b). Luvussa 4 käsiteltävässä RSA-salausmenetelmän avainparin luonnissa keskeinen apuväline on laajennettu Eukleideen algoritmi. Laajennetun Eukleideen algoritmin avulla voidaan löytää kokonaisluvut x ja y lauseessa 2.12 määritellystä yhtälöstä ax + by =(a, b). Esimerkki 12. Laajennettu Eukleideen algoritmi [7, s. 69] Ratkaistaan 1276x+21y =(1276, 21). Esimerkin 11 nojalla saadaan osamäärät q 1 =60, q 2 =1, q 3 =3ja q 4 =5.Lauseen2.12nojalla ax n + by n =(a, b), kunn =0, 1, 2, Muodostetaan yhtälöt: Ratkaistaan x 4 ja y 4 : x 0 =1, x 1 =0, y j = q j 1 y j 1 + y j 2, y 0 =0, y 1 =1, y j = q j 1 y j 1 + y j 2. x 2 = 60 0+1=1 x 3 = 1 1+0= 1 x 4 = 3 ( 1) + 1 = 4 y 2 = 60 1+0= 60 y 3 = 1x ( 60) + 1 = 61 y 4 = 3 61 60 = 243. Saadaan, että 1276 4+21 ( 243) = 1 = (1276, 21). 2.3 Kongruenssi, kiinalainen jäännöslause ja modulaarinen potenssiinkorotus Kongruenssi on usein esillä arjessamme, ja ihminen käyttää automaattisesti laskentaa jakojäännöksillä. Esimerkiksi kellonajoista puhuttaessa voidaan puhua aritmetiikasta modulo 12 tai kalenterin päivissä aritmetiikasta modulo 7. Voidaan ajatella, että kellonajoissa luku 12 vastaa lukua 0. Määritelmä 2.13. Kongruenssi [7, s.120] Olkoot a ja b kokonaislukuja ja m positiivinen kokonaisluku. Luku a on kongruentti luvun b kanssa modulo m, josm (a b). 6

Jos luku a on kongruentti luvun b kanssa modulo m, merkitään a b (mod m).josm - (a eli a on epäkongruentti luvun b kanssa, merkitään a 6 b (mod m). b), 6) = 29.Sanotaan,ettäluku35 on epäkongruent- Esimerkki 13. 24 6(mod3),koska3 (24 luvun 6 kanssa modulo 3. Esimerkki 14. 35 6 6(mod7),koska7 - (35 ti luvun 6 kanssa modulo 7. 6) = 18. Sanotaan,ettäluku24 on kongruentti Lause 2.14. [7, s. 120] Olkoot a ja b kokonaislukuja.. Tällöin a b (mod m) jos ja vain jos on olemassa sellainen kokonaisluku k, ettäa = b + km. Todistus. [7, s. 120] Jos a b (mod m), niinm (a nojalla olemassa kokonaisluku k siten, että km = a b). Tällöin on jaollisuuden määritelmän b. Tästä saadaan, että a = b + km. Lause 2.15. Kongruenssin ominaisuuksia. [7, s. 120]. Olkoot a, b ja c kokonaislukuja, ja olkoon m positiivinen kokonaisluku. Tällöin kongruenssilla modulo m on seuraavat ominaisuudet (1) Refleksiivisyys. a a (mod m) (2)Transitiivisuus. Jos a b (mod m), niinb a (mod m). (3) Symmetrisyys. Jos a b (mod m) ja b c (mod m), niina c (mod m). Todistus. [7, s. 120] (1) Koska m (a a) =0,niina a (mod m). (2) Jos a b (mod m), niinm (a b). Tällöin on jaollisuuden määritelmän nojalla olemassa kokonaisluku k siten, että km = a b. Siistuleeolla( k)m = b a, silläm (b a). Saadaan b a (mod m). (3) Jos a b (mod m) ja b c (mod m), niinm (a b) ja m (b c). Tällön on jaollisuuden määritelmän nojalla olemassa kokonaisluvut k ja l siten, että km = a b ja lm = b c. Saadaan, että a c =(a b)+(b c) =km + lm =(k + l)m. Siism (a c) ja a c (mod m). Lause 2.16. Kongruensseilla laskeminen. [7,s.122].Jos a, b, c ja m ovat kokonaislukuja siten, että m>0 ja 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. [7, s. 122] Tiedetään, että m (a b), silläa b (mod m). (1) Koska (a + c) (b + c) =a b, niinkongruenssinmääritelmännojallam ((a + c) (b + c)). (2) Koska (a c) (b c) =a b, niinsaadaansamallatavallakuinedellisessäkohdassa, että m ((a c) (b c)). (3) Koska ac bc = c(a b),niinsaadaanvastaavastikuinedellisissäkohdissa,ettäm c(a b). Lause 2.17. [7, s. 124]. Jos a, b, c ja m ovat kokonaislukuja siten, että k>0 ja m>0, jaa b (mod m), niina k b k (mod m). Todistus. [7, s. 124] Esimerkki 15. Koska 18 2(mod4),niinlauseen2.16nojalla5832 18 3 2 3 8(mod4). Lause 2.18. [7, s. 124] Jos a b (mod m 1 ), a b (mod m 2 ),, a b (mod m k ),missäa ja b ovat kokonaislukuja ja m 1,m 2,,m k positiivisia kokonaislukuja, niin a b (mod [m 1,m 2,,m k ]), missä [m 1,m 2,...,mk] on pienin yhteinen monikerta joukossa m 1,m 2,,m k. 7

Todistus. [7, s. 124] Lause 2.19. Kiinalainen jäännöslause [7, s. 136] ) Olkoot luvut m 1, m 2,, m r kokonaislukuja ja pareittain suhteellisia alkulukuja. Tällöin kongruensseilla positiivisia x a 1 (mod m 1 ) x a 2 (mod m 2 ). x a r (mod m t ) on yksikäsitteinen ratkaisu modulo M = m 1 m 2...m r. Todistus. [7, s. 137] Esimerkki 16. [7, s. 137] Ratkaistaan x 1(mod5) x 5(mod6) x 7(mod7). Kiinalaisen jäännöslauseen nojalla yllä olevilla kongruensseilla on yksikäsitteinen ratkaisu modulo 210, silläluvut5, 6 ja 7 ovat pareittain suhteellisia alkulukuja. Lasketaan ensin M =5 6 7= 210, M 1 =210/5 =42, M 2 =210/6 =35ja M 3 =210/7 =30.Ratkaistaanseuraavaksiyhtälöt: 42y 1 1(mod5) 35y 2 1(mod6) 30y 3 1(mod7). Kongruenssien käänteisluvut ovat y 1 3(mod5), y 2 5(mod6)ja y 3 4(mod7). Tällöin saadaan, että x 1 42 3+5 35 5+7 30 4=1841 581 (mod 630) Saatu tulos pätee, sillä 581 1(mod5), 581 5(mod6)ja 581 7(mod7). Seuraavaksi esimerkin kautta luodaan nopea katsaus RSA-salausmenetelmän kannalta tärkeään keinoon, jota kutsutaan modulaariseksi potenssiinkorotusalgoritmiksi. Esimerkki 17. [9, s. 79] Lasketaan luvun 19 1033 pienin positiivinen jäännös modulo 1357: 19 19 (mod 1357), 19 2 361 (mod 1357), 19 4 49 (mod 1357), 19 8 1044 (mod 1357), 19 16 265 (mod 1357), 19 32 1018 (mod 1357), 19 64 933 (mod 1357), 19 128 652 (mod 1357), 19 256 363 (mod 1357), 19 512 140 (mod 1357), 19 1024 602 (mod 1357). Nyt saadaan, että 19 1033 =19 1024+8+1 602 1044 19 1029 (mod 1357). 8

2.4 Lineaarinen Diofantoksen yhtälö ja lineaarikongruenssi Muotoa ax + by = c olevia yhtälöitä, missä a, b ja c ovat kokonaislukuja, kutsutaan kahden muuttujan lineaarisiksi Diofantoksen yhtälöiksi. Lause 2.20. [7, s. 113] Olkoot a ja b kokonaislukuja, ja d =(a, b). Josd - c, niinyhtälöllä ax + by = c ei ole kokonaislukuratkaisua. Jos d c, niinkokonaislukuratkaisujaonääretönmäärä. Lisäksi, jos x = x 0, y = y 0,onyhtälöneräsratkaisu,niinkaikkiratkaisutsaadaanyhtälöistä x = x 0 +(b/d)n, y = y 0 (a/d)n, jossa n on kokonaisluku. Todistus. [7, s. 113] Esimerkki 18. Diofantoksen yhtälöllä 34x+44y =7ei ole kokonaislukuratkaisua, koska (34, 44) = 2, ja2-7. Esimerkki 19. Diofantoksen yhtälöllä 40x +24y = 88 on ääretön määrä ratkaisuja, koska (24, 40) = 8 ja 8 88. Suurin yhteinen tekijä saatiin Eukleideen algoritmin avulla seuraavasti: 40 = 24 1+16, 24 = 16 1+8, 16 = 2 8+0. Diofantoksen yhtälön eräs ratkaisu (x = x 0,y = y 0 ) saadaan hyödyntämällä Eukleideen algoritmia vastakkaiseen suuntaan. Koska 8=24 16 1 =24 1 (40 24) = 24 2 1 40, niin voidaan päätellä, että 11 40 + 22 24 = 88. Eräs ratkaisu on siis x 0 = 11 ja y 0 =22.Lauseen2.18 nojalla yhtälön 40x+24y =88kaikki ratkaisut saadaan yhtälöistä x = 11+(24/8)n = 11+3n ja y =22 (40/8)n =22 5n. Lause 2.21. [7, s. 131] Olkoot a ja b kokonaislukuja ja m positiivinen kokonaisluku siten, että (a, m) =d. Josd - b, niinkongruenssillaax b (mod m) ei ole ratkaisua. Jos d b, niin kyseenomaisella kongruenssilla on täsmälleen d epäkongruenttia ratkaisua modulo m. Kongruenssia, joka on muotoa ax b (mod m), ja jossa x on tuntematon kokonaisluku, kutsutaan yhden muuttujan lineaarikongruenssiksi. Todistus. [7, s. 131] Esimerkki 20. Lineaarikongruenssilla 16x 37 (mod 6) ei ole ratkaisua, sillä (16, 6) = 2, ja (2-37). Lineaarikongruenssin suhteen olemme erityisesti kiinnostuneita tapauksista, jolloin b =1. Määritelmä 2.22. [7, s. 132] Olkoon a kokonaisluku ja olkoon m positiivinen kokonaisluku siten, että (a, m) =1. Tällöin kongruenssiyhtälön ax 1(modm) ratkaisua kutsutaan luvun a käänteisluvuksi modulo m. Esimerkki 21. Koska kongruenssiyhtälön 19x 1(mod5)ratkaisu on x 4(mod5),lukua4 ja kaikkia kokonaislukuja, jotka ovat kongruentteja 4 modulo 5, kutsutaan luvun 19 käänteisluvuiksi modulo 5. 9

2.5 Eulerin funktio, Eulerin lause ja Fermat n pieni lause Määritelmä 2.23. Eulerin funktio [7, s. 201] Olkoon n positiivinen kokonaisluku. Eulerin - funktio on niiden positiivisten kokonaislukujen a apple n määrä, jotka ovat luvun n kanssa suhteellisia alkulukuja. Esimerkki 22. ( )(8) = 4, koska(1, 8) = (3, 8) = (5, 8) = (7, 8) = 1 ja ( )(6) = 2, koska (1, 6) = (5, 6) = 1. Lause 2.24. Eulerin lause [7, s. 203] Jos a on kokonaisluku ja m on positiivinen kokonaisluku siten, että (a, m) =1,niina (m) 1(modm). Todistus. [7, s. 203] Esimerkki 23. Koska (5, 6) = 1 ja ( )(6) = 2, niin5 2 =5 ( )(6) 1(mod6). Lause 2.25. [1, s. 208] Jos p on alkuluku, niin ( )(p) =p kokonaisluku ja ( )(p) =p 1, niinp on alkuluku. 1. Vastaavasti,josp on positiivinen Todistus. [7, s. 208] Jos p on alkuluku niin jokainen positiivinen kokonaisluku, joka on pienempi kuin p, onsuhteellinenalkulukuluvullep. Koskatällaisialukujaonp 1 kappaletta, saadaan, että ( )(p) =p 1. Todistetaan nyt, että jos p on positiivinen kokonaisluku ja ( )(p) =p 1, niinp on alkuluku. Tehdään vastaoletus, eli jos p on yhdistetty luku, niin luvulla p on tekijä d siten, että 1 <d<p,ja p ja d eivät ole suhteellisia alkulukuja. Koska tiedetään, että ainakin yksi luvuista 1, 2,,p 1 ei ole suhteellinen alkuluku luvun p kanssa, niin ( )(p) apple p 2. Saatutulosonristiriidassa oletuksen kanssa, joten saadaan, että luku p on alkuluku. Lause 2.26. [7, s. 209] Olkoot m ja n suhteellisia alkulukuja ja positiivisia kokonaislukuja. Tällöin ( )(mn) =( )(m)( )(n). Todistus. [7, s. 209] Lause 2.27. Jos p ja q ovat alkulukuja, niin ( )(pq) =(p 1)(q 1). Todistus. Todistus seuraa suoraan lauseista 2.23 ja 2.24. Lauseen 2.23 mukaan ( )(p) =p 1 ja ( )(q) =q 1, silläluvutp ja q ovat alkulukuja. Lauseen 2.24 nojalla ( )(pq)=( )(p)( )(q). Tällöin ( )(pq) =(p 1)(q 1). Lause 2.28. Fermat n pieni lause [7, s. 187] Jos p on alkuluku ja a on positiivinen kokonaisluku siten, että p - a niin a (p 1) 1(modp). Todistus. [7, s. 187] Esimerkki 24. Olkoot p =5ja a =8. Tällöin lauseen 2.26 nojalla 8 (5 1) 1(mod5),eli8 4 1 (mod 5). 10

2.6 Neliönjäännös, Jacobin ja Legendren symboli Määritelmä 2.29. Neliönjäännös [7, s. 331] Olkoon n on positiivinen kokonaisluku. Sanotaan, että kokonaisluku a on neliönjäännös modulo n, jos(a, n) =1ja kongruenssilla x 2 a (mod n) on ratkaisu. Jos kongruenssilla x 2 a (mod n) ei ole ratkaisua, sanotaan, että a on neliönepäjäännös modulo n. Määritelmä 2.30. Jacobin symboli [9, s. 90] Olkoot n pariton positiivinen kokonaisluku ja olkoot a 6= 0kokonaisluku siten, että (a, n) =1.Olkootluvunn jako alkutekijöihin n = p b 1 1 p b 2 2...p br r. Tällöin a n = b1 b2 a a p 1 p 2... a br, p r missä oikealla puolella olevat symbolit ovat määritelmässä 2.30 esitettyjä Legendren symboleita. Esimerkki 25. Olkoot n =45=3 2 5. Täten 2 45 = 2 3 2 2 5 =( 1) 2 ( 1) = 1. Määritelmä 2.31. Legendren symboli [9, s. 90] Olkoot p pariton alkuluku ja olkoot a epäkongruentti luvun 0 kanssa modulo p. Legendrensymboli määritellään seuraavasti: a p ( a +1, jos kongruenssilla x 2 a (mod p) on ratkaisu. = p 1, jos kongruenssilla x 2 a (mod p) ei ole ratkaisua. 11

Luku 3 Yleistä salausmenetelmistä 3.1 Taustaa ja terminologiaa Kryptografian perusongelmana on, kuinka viesti voidaan välittää vastaanottajalle turvatonta reittiä niin, ettei mahdollinen kolmas osapuoli ymmärrä viestiä. Kryptografia tutkii ja pyrkii kehittämään salausmenetelmiä, kun taas kryptoanalyysi tutkii vastakkaisesti salausmenetelmien murtamista. Kryptologia on salakirjoitusta tutkiva tieteenala, jonka muodostavat kryptografia ja kryptoanalyysi. Kryptografia voidaan myös määritellä tietoturvanäkökulmasta matemaattisten menetelmien oppina. Kryptografian neljä keskeistä tavoitetta tietoturvassa ovat luotettavuus, tiedon eheys, todennus ja kiistämättömyys. [5, s.4] Kryptografian perinteisessä kommunikaatiotilanteessa kaksi osapuolta haluavat kommunikoida toistensa kanssa, mutta jos viesti lähetetään turvatonta kanavaa pitkin niin on mahdollista, että kolmas osapuoli voi salakuunnella ja saada viestin käsiinsä. Alkuperäistä viestiä kutsutaan "selvätekstiksi" ja salatussa muodossa olevaa vastaavaa tekstiä kutsutaan "kryptotekstiksi". Viestin salausta kutsutaan termillä "enkryptaus" ja viestin purkua termillä "dekryptaus". Näin ollen kommunikaatiotilanteessa lähettäjä enkryptaa selvätekstin kryptotekstiksi, joka lähetetään turvatonta kanavaa pitkin vastaanottajalle. Viestin saaja dekryptaa eli purkaa viestin, minkä jälkeen hän pystyy lukemaan alkuperäisen selvätekstin. Viestin salaamisessa ja purkaamisessa käytetään niihin tarkoitettua avainta k. Tapahtumaa voidaan kuvata myös lyhyemmin symbolien avulla; E k (st) =kt ja D k (kt) =st. [8,s.6] Kuva 3.1: Perinteinen kahden osapuolen kommunikaatiotilanne kryptografiassa [8, s.6]. Usein salausmenetelmä on mahdolliselle viestin salakuuntelijalle tuttu, ja viesti ei pysy salassa menetelmän vaan avaimen avulla. Vain vastaanottajalla on purkamiseen tarvittava avain. Enkryptaus ei ole yksiselitteinen vaan sama selväteksti voi tuottaa valtavan määrän erilaisia kryptotekstejä, kun taas jokainen kryptoteksti vastaa ainoastaan yhtä ja ainutta selvätekstiä. Kaikilla avaimilla k ja kaikilla selväteksteillä st on voimassa: D k (E k (st)) = D k (kt) =st. [8,s.6] 12

3.2 Esimerkki klassisesta salausmenetelmästä Salausmenetelmillä on vuosituhanten pituinen historia. Kryptausta eli salausta käytettiin aluksi lähinnä sotilaallisiin tai diplomaattisiin tarkoituksiin. Idea oli kuitenkin sama kuin nykyisinkin; kuinka välittää viesti vastaanottajalle salakirjoitetussa muodossa siten, ettei mahdollinen kolmas osapuoli ymmärtäisi sen sisältöä. Yksi vanhimmista tunnetuista salausmenetelmistä oli Julius Caesarin aakkoston kiertoon perustuva salausmenetelmä, joka on klassinen esimerkki erittäin vanhanaikaisesta eikä kovin turvallisesta salausmenetelmästä. Caesarin menetelmässä viesti salataan kiertämällä aakkostoa salausavaimen k ilmaiseman luvun verran. Esimerkki 26. Caesarin salaus Olkoot k =3. Tällöin salaus voidaan helposti lukea seuraavasta taulukosta: Kuva 3.2: Aakkoston kierto salausavaimen ollessa k =3. Nyt viesti "JULKISEN AVAIMEN SALAUS" olisi salatussa muodossa "MXONLVHQDYDLPHQVDODXV". Viestit voidaan purkaa käyttäen samaa salausavainta aakkoston kierrossa vastakkaiseen suuntaan. Caesarin menetelmän heikkoudet liittyvät salaus- ja purkuavaimiin. Menetelmässä käytetyt avaimet ovat helposti pääteltävissä toisistaan, avaimien tulee pysyä salassa kaikilla kommunikaation osapuolilla ja kaikkien mahdollisten avainten määrä on pieni. Myös kirjainten järjestys säilyy täysin samana salatussa muodossa. 3.3 Symmetriset vs. epäsymmetriset salausmenetelmät Kryptografiset tekniikat jaetaan yleisesti ottaen kahteen tyyppiin; symmetrisiin ja epäsymmetrisiin salausmenetelmiin. Kaikki klassiset salausmenetelmät, toisin sanoen kaikki menetelmät, jotka kehitettiin ennen 1970-lukua ovat symmetrisiä menetelmiä. Kyseenomainen vuosikymmen oli salausmenetelmien mullistuksen aikaa, kun ensimmäinen käytännön sovellus julkisen avaimen salausmenetelmästä tuli ilmi. Symmetrisissä salausmenetelmissä purku- ja salausavain ovat joko samoja tai viestin purkuavain voidaan helposti päätellä salausavaimesta. [9, s.4] Julkinen eli toisin sanoen epäsymmetrinen menetelmä tarjoaa vaihtoehtoisen ratkaisun symmetriselle menetelmälle. Epäsymmetrinen salaus on yksisuuntainen, kun taas symmetrinen salaus 13

on kaksisuuntainen. Julkisen avaimen salausmenetelmän ideaa voidaan kuvata hyvin yksisuuntaisen funktion f(x) avulla. Kun annetaan luku x, onhelppopäätelläfunktionf(x) arvo, kun taas toisinpäin luvun x päättely funktion arvosta f(x) on hankalaa. Funktiolla f(x) on kuitenkin niin kutsuttu "salaovi", eli pienellä lisätiedolla voidaan helposti ratkaista y = f(x). Ratkaiseminen on kuitenkin helppoa ainoastaan jos tämä "salaovi"on tiedossa. Yleisesti "salaoven" pitäisi olla sellainen tieto, joka kenenkään muun kuin funktion luojan on vaikea päätellä. [8, s.57] Sekä symmetrisissä että epäsymmetrisissä salausmenetelmissä on omat heikkoutensa ja vahvuutensa. Symmetriset salausmenetelmät ovat suoritusteholtaan korkeampia ja avaimet ovat suhteellisen lyhyitä. Usein jos halutaan salata todella suuria määriä tietoja, käytetään symmetrisiä menetelmiä. Esimerkiksi DES-salausmenetelmä sopii mainiosti tilanteisiin, joissa pitää prosessoida suuri määrä tietoa. Puolestaan symmetristen salausmenetelmien suurin heikkous on avainten siirto, hallinta sekä salassapysyvyys kommunikaation kaikilla eri osapuolilla. Usein epäsymmetrisiä menetelmiä, esimerkiksi RSA-algoritmia käytetään lähettämään symmetristä salausmenetelmää varten tarvittu avain. Epäsymmetrisiä menetelmiä käytetäänkin lähinnä salaukseen tilanteissa, joissa prosessoitavan tiedon määrä on pienempi, esimerkkinä avaimet ja digitaaliset allekirjoitukset. [9, s.6] [5, s.31] 14

Luku 4 RSA 4.1 Yleistä RSA on suosituin, käytetyin ja testatuin julkisen avaimen kryptosysteemi. Menetelmä pohjautuu erääseen lukuteorian keskeiseen tulokseen, jonka mukaan kaksi todella suurta eri alkulukua on helppo kertoa keskenään, mutta saadun tulon tekijöihin jakaminen on äärimmäisen vaikeaa ja aikaa vievää. Tämän vuoksi toinen avaimista voidaan julkistaa. Luvussa 3.3 mainittu epäsymmetriselle kryptosysteemille tärkeä "salaovi-informaatio on siis RSA-salausmenetelmässä luvun n tekijöihinjako. Jos tekijöihinjako paljastuu, yksityinen avain voidaan helposti johtaa alkuluvuista samalla periaatteella kuin avainpari luodaan. RSA-salausmenetelmässä salausmenetelmä ja purkumenetelmä sekä purkuavaimen määrittäminen ovat julkista tietoa. Menetelmän turvallisuus nojaa olettamukseen, että purkuavaimen määrittäminen on laskennallisesti äärimmäisen hankalaa. Julkisen avaimen salakirjoitusmenetelmän turvalliseksi todistaminen on kuitenkin vaikeaa. Ei ole olemassa muodollista todistusta, jonka mukaan tekijöihinjakoa tarvitaan RSA-menetelmässä viestin purkamiseen tai että tekijöihinjako olisi hankalaa ja hidasta. Kuitenkin on olemassa huomattavasti empiiristä todistusaineistoa, jotka puolustavat yllä mainittuja väitteitä. [8, s.125] 4.2 Avainparin luonti Avainpari luodaan seuraavasti: 1. Valitaan satunnaiset isot alkuluvut p ja q siten, että p 6= q. 2. Lasketaan n = pq. 3. Valitaan purkueksponentiksi luku d > 1 siten, että (d, ( )(n)) = 1. Lauseen2.27nojalla ( )(n) =(p 1)(q 1). 4. Valitaan enkryptauseksponentiksi luku e siten, että 1 < e < ( )(n) ja luku e toteuttaa kongruenssin ed 1(mod( )(n)). 5. Saadaan julkinen avain P =(e, n). 6. Saadaan salainen avain S =(d, n). Luvut e ja n voidaan julkistaa, koska niistä ei voida päätellä alkulukuja p ja q. Luvut p,q, d ja ( )(n) puolestaan ovat salaisia ja muodostavat tärkeän "salaovi-informaation tulon n = pq tekijöihinjaosta. Jos yksikin salaisista luvuista paljastuu niin salatun tiedon turvallisuus on vaarassa. Luvut p ja q valitaan satunnaisesti, mutta lukuja valittaessa on hyvä olla tietoinen RSA- kryptosysteemin tunnetuista haavoittuvuuksista (luvut 5 ja 6). Valinnassa käytetään apuna alkulukutestejä (luku 5.3). Alkulukujen suuruus riippuu yleensä vaadittavan turvallisuuden asteesta sekä muista avaimen tulevaan käyttöön liittyvistä asioista, esimerkiksi käyttöiästä. Tyypillisesti alkulukujen p ja q desimaaliesitys on noin 100 merkkiä pitkä. 15

Luvun d valinnassa on tärkeää huomioida avainparin luonnin asettama ehto: (d, ( )(n)) = 1. Ilman tätä ehtoa enkryptauseksponenttia e ei olisi olemassa, sillä kongruenssin määritelmän nojalla tulo de on kongruentti luvun 1 kanssa modulo ( )(n), jos ja vain jos(d, ( )(n)) = 1. Luku e voidaan ratkaista laajennetun Eukleideen algoritmin avulla. [9, s.167] Esimerkki 27. Avainparin luonti Esimerkissä käytetään luettavuuden vuoksi pienempiä lukuja kuin oikeassa tilanteessa käytettäisiin. 1. Valitaan ensin alkuluvut p =23ja q =59. 2. Lasketaan n = pq =1357,jostasaadaan,että( )(n) =1276. 3. Valitaan seuraavaksi d =21,sillä(21, 1357) = 1. 4. Etsitään luku e, joka toteuttaa kongruenssin 21e 1(mod1276). Käytetään apuna laajennettua Eukleideen algoritmia, jonka avulla voidaan löytää kokonaisluvut x ja y siten, että ax + by =(a, b). Nytkongruenssinmäärittelynnojallaa =( ), b = d ja y = e. Saadaan,että Esimerkin 11 nojalla saadaan, että x + dy =(, d). 1276 4+21 ( 243) = 1 = (, d). Koska saatu enkryptauseksponentti e = 243 on negatiivinen, niin e on 243 + =1033. 5. Saadaan julkinen avain P =(1033, 1357) 6. Saadaan salainen avain S =(21, 1357). 4.3 Enkryptaus ja dekryptaus Kirjoitetaan selväteksti lukuna w ja oletetaan, että 0 apple w < n.oletus seuraa kongruenssin määritelmästä. Jos w<n, selväteksti koodataan ennen viestin salaamista ja luku jaetaan sopivan kokoisiksi lohkoiksi, jotka salataan toisistaan erillään. Näin ollen salauksen purkaminen on yksikäsitteistä. Avainparin luonnista tiedetään, että enkryptauksessa käytettävä julkinen avain on P =(e, n) ja dekryptauksessa käytettävä salainen avain on S =(d, n). Josw on selvätekstilohko ja c on vastaava kryptotekstilohko niin salaus voidaan esittää seuraavalla yhtälöllä [8, s.126] c =(w e, (mod n)). Salattu teksti voidaan siis laskea avainparin luonnista saadun julkisen avaimen P =(e, n) avulla korottamalla selvätekstilohko w potenssiin e, ja laskemalla kongruenssi modulo n. Merkitään enkryptausta c w e (mod n). Viesti voidaan puolestaan purkaa salaisen avaimen S =(d, n) avulla korottamalla saatu kryptotekstilohko c potenssiin d, ja laskemalla kongruenssi modulo n. Merkitään dekryptausta [8, s.126] 16

w c d (mod n). Apulause 4.1. [8, s. 126]. Oletetaan, että c ja w on määritelty kuten yllä. Tällöin w c d (mod n). Näin ollen, jos dekryptaus on yksikäsitteinen, niin w =(c d, (mod n)). Todistus. [8, s. 126] Koska ed 1(mod( )(n)) niin on olemassa positiivinen kokonaisluku j siten, että ed = j( )(n)+1. Oletetaan ensin, että kumpikaan alkuluvuista p tai q ei ole luvun w tekijä. Tällöin (w, n) =1, sillä n = pq. Eulerin lauseen nojalla saadaan, että w ( )(n) 1(modn). Edelleen w ed 1 1 (mod n), jakertomallakongruenssipuolittainluvullaw saadaan, että w ed w (mod n). Näin ollen c d w (mod n). Oletetaan seuraavaksi, että alkuluvuista p ja q vain luku p on luvun w tekijä. Tällöin (w, q) =1, joten Eulerin lauseen nojalla w q 1 1(modq). Saadaan,että w ( )(n) 1(modq), w j( )(n) 1(modq), w ed w (mod q). Koska oletuksen nojalla luku p on luvun w tekijä, saadaan edelleen, että on voimassa w ed w (mod p) ja w ed w (mod q). Tällöin on voimassa w ed w (mod n), sillän = pq. Näinollen apulauseen väite w c d (mod n) pitää paikkansa. Samalla tavalla voitaisiin todistaa tapaus, jossa alkuluvuista p ja q vain luku q on luvun w tekijä. Jos molemmat alkuluvut p ja q ovat luvun w tekijöitä, nähdään helposti, että w ed w (mod n), sillä n (w ed w). Näinollenapulauseenväitew c d (mod n) pitää paikkansa. Sekä enkryptaus että dekryptaus tapahtuvat kryptosysteemin rajoissa. Julkisen avaimen salausmenetelmässä kryptosysteemi koostuu seuraavista komponenteista: 1. Joukko W,kaikkienmahdollistenselvätekstienjoukko 2. Joukko C, kaikkienmahdollistenkryptotekstienjoukko.joukoncelementitsaadaansoveltamalla enkryptausfunktiota E k selvätekstiin w 2 W. 3. Joukko K,jokaonavaintenjoukko.Joukkoeisisälläainoastaanenkryptaukseenjadekryptaukseen käytettäviä avaimia vaan k =(e, d, n) siten, että ed 1(mod( )(n)). Jokaiselleavaimelle on olemassa enkryptays funktio E k ja purkufunktio D k.josnäitäkahtafuntiotasovelletaantoisiinsa, saadaan selväteksti w. ToisinsanoenE k (D k (w)) = w = D k (E k (w)) kaikille w 2 W ja jokaisella k 2 K. [9,s.190][8,s.3] 4.4 Enkryptaus ja dekryptaus -esimerkki Esimerkki 28. Enkryptaus ja dekryptaus Lähetetään viesti "SYT" vastaanottajalle. Salataan viesti soveltamalla esimerkissä 27 luotua avainparia P =(1033, 1357) ja S =(21, 1357). Käytetään seuraavaa merkkikoodausta: 17

Kuva 4.1: Esimerkissä käytettävä merkkikoodaus. Merkkikoodaukseen käytetyssä taulukossa on hyvä huomioida, ettei se olisi oikeassa salauksessa turvallinen, kuten eivät myöskään pienet alkuluvut p ja q, mutta ne toimivat RSA-menetelmän toimintaperiaatetta kuvaavassa esimerkissä mainiosti. Nyt siis S =19, Y =25, T =20.Jokainenkirjainsalataanerikseen,sillämuutoinolisi w =192520>n.Salauksessajapurkamisessahyödynnetäänmodulaaristapotenssiinkorotusta. Lähettäjä salaa viestin laskemalla: 19 1029 (mod 1357), 25 127 (mod 1357), 20 383 (mod 1357). Seuraavaksi lähetetään kryptotekstit 1029, 127, 383 vastaanottajalle. Vastaanottaja purkaa viestit laskemalla: 1029 21 19 (mod 1357), 127 21 25 (mod 1357), 383 21 20 (mod 1357). 4.5 Digitaalinen allekirjoitus Eräs RSA-salausmenetelmän suurimmista eduista on sen tarjoama mahdollisuus digitaaliseen allekirjoitukseen. Näin voidaan varmistua siitä, että allekirjoittaja on todella lähettänyt ja luonut viestin. Allekirjoituksen voi helposti tarkistaa kuka tahansa, mutta sitä ei ole helppo väärentää. Jos viestiä yritetään muuttaa, se menettää kelpoisuutensa välittömästi. Viestin allekirjoittamisessa käytetään hyödyksi aiemmin luotua avainparia P =(e, n) ja S = (d, n). Oletetaan,että lähettäjä A haluaa allekirjoittaa viestin w. Hän käyttää tällöin viestin allekirjoittamiseen omaa salaista avaintaan S A =(d A,n). LähettäjänA allekirjoitus on muotoa x w d A (mod n). Allekirjoittamisen jälkeen henkilö A julkistaa allekirjoitusparin (w, x).nyt kuka tai ketkä tahansa voivat tarkistaa allekirjoituksen käyttämällä allekirjoittajan julkisen avaimen enkryptauseksponenttia e A,jalaskemalla y x e A (mod n). 18

Jos y = w,niinviestinvastaanottajavoipäätelläviestintodellaolevanhenkilöna allekirjoittama. [9, s. 245] Tärkeää on huomioida, että yllä oleva allekirjoitettu viesti ei ole salatussa muodossa. Yhdistämällä RSA-menetelmän tarjoaman salauksen ja viestin allekirjoituksen, voidaan luoda viestejä, jotka ovat sekä allekirjoitettuja että salattuja. Tällöin viesti allekirjoitetaan ennen sen salaamista, ja puolestaan vastaanottaja purkaa viestin ensin omalla salaisella avaimellaan, jonka jälkeen hän voi vielä tarkistaa allekirjoituksen käyttämällä viestin lähettäjän julkista avainta. [3, s. 884] 19

Luku 5 Alkulukujen ja eksponenttien valinta 5.1 Kryptosysteemin turvallisuudesta Sopivien alkulukujen p ja q valinta liittyy keskeisesti RSA-kryptosysteemin onnistuneeseen luomiseen. Alkulukujen p ja q tulisi olla satunnaisesti valittuja eikä esimerkiksi alkulukujen yleisesti jaossa olevista taulukoista poimittuja, sillä yritettäessä jakaa lukua n tekijöihin voidaan helposti käydä läpi taulukoita tai tietyn muotoisten alkulukujen sarjoja. Luvussa 6.2 mainittavasta syystä olisi myös hyvä, että luvut p ja q ovat hieman eri pituisia, ja ettei luvun n jakavalla alkuluvulla p 1 olisi vain pieniä alkutekijöitä. Kryptosysteemiin valittavat alkuluvut eivät saisi olla liian lähellä toisiaan. Jos p q>0on pieni, niin p q/2 on pieni ja p + q/2 on vain vähän suurempi kuin p n.lisäksi, p + q 2 /4 n = p q 2 /4, ja täten vasen puoli on täydellinen neliö. Kun halutaan löytää luvun n alkutekijät p ja q,testataan jokainen kokonaisluku x> p n,kunneslöytyysellainenlukux, ettäx 2 n = y 2 on neliö. Tällöin saadaan alkutekijät p = x + y ja q = x y. Alkulukujen p ja q valinnassa tulisi huomioida kryptosysteemissa muodostettava Eulerin funktio ( )(n). Koskafunktion( )(n) muodostavat luvut p 1 ja q 1 ovat parillisia, niin saadaan, että ( )(n) on jaollinen luvulla 4. Oletetaannyt,ettälukujenp 1 ja q 1 suurin yhteinen tekijä on suuri ja vastaavasti ko. lukujen pienin yhteinen jaettava on pieni suhteessa Eulerin funktion ( )(n) arvoon. Merkitään pienintä yhteistä jaettavaa kirjaimella u. Tällöin purkueksponenttina toimii mikä tahansa luvun e käänteisluku modulo u. Merkitään kyseenomaista käänteisalkiota kirjaimella d. Koskatässätapauksessakäänteislukud voidaan löytää helposti kokeilemalla niin on suositeltavaa, ettei luvuilla p 1 ja q 1 olisi suurta yhteistä tekijää. Tämä ongelma voidaan välttää käyttämällä vain niin kutsuttuja turvallisia alkulukuja. Kaikille sellaisille alkuluvuille on aina voimassa, että myös (p 1)/2 on alkuluku. [8, s. 134-135] Alkulukutestit ovat keskeinen työväline lukujen p ja q löytämisessä. Löytämistä varten valitaan pariton kokonaisluku, joka on samaa suuruusluokkaa kuin etsittävän alkuluvun toivotaan olevan, ja testataan, onko valittu luku alkuluku. Suurten alkulukujen p ja q löytämiseen vaikuttaa myös alkulukujen esiintymistiheys, jota lukuteorian keskeinen alkulukulause käsittelee. Alkulukulause kertoo meille sen, että alkulukuja on paljon. Niitä on paljon enemmän kuin esimerkiksi täydellisiä neliöitä. [2, s. 18] 5.2 Alkulukujen esiintymistiheys Alkulukulausetta varten määrittelemme ensin funktion (x). Määritelmä 5.1. [8, s. 66] Olkoon x positiivinen reaaliluku. Funktio (x) ilmaisee niiden alkulukujen määrän, jotka ovat pienempiä kuin luku x. 20

Esimerkki 29. Koska 2, 3, 5, 7, 11 ja 13 ovat lukua 16 pienempiä alkulukuja, niin (16) = 6. Lause 5.2. Alkulukulause [8, s. 67] Funktioiden (x) ja x/log x osamäärä lähestyy lukua 1, kun luku x kasvaa rajatta. Merkitään lim x!1 = (x)/ x logx =1. Alkulukulausetta voidaan käyttää arvioimaan todennäköisyyttä, että satunnaisesti valittu kokonaisluku n on alkuluku todennäköisyydellä 1/ln n. Esimerkiksi, jos halutaan löytää noin 100 merkkiä pitkä alkuluku, voidaan merkitä, että x = 10 100. Tällöin osamäärä on arviolta 1/log(10 100 )=1/230. Kun jätetään vielä parilliset numerot huomioimatta, saadaan tulos puolet suuremmaksi, eli 1/115. [9,s.179] 5.3 Alkulukutestejä Seuraavaksi tutustutaan muutamaan alkulukutestiin; Fermat n-, Millerin-Rabinin ja Solovayn- Strassenin alkulukutestiin. Tässä tutkielmassa käsiteltävät alkulukutestit ovat niin kutsuttuja "todennäköisyystestejä". Nimestään huolimatta monet alkulukutestit itseasiassa kertovat meille täysin varmasti ainoastaan, onko tutkittu kokonaisluku yhdistetty luku. Jos testin mukaan tutkittu luku on alkuluku, niin luku on todennäköisesti alkuluku, mutta on olemassa mahdollisuus, että testi epäonnistui. Lause 5.3. Fermat n alkulukutesti [9, s. 177] Olkoot n>1 kokonaisluku. Valitaan kokonaisluku a siten, että 1 <a<n 1. Josa n 1 on epäkongruentti luvun 1 kanssa modulo n niin n on yhdistetty luku. Jos a n 1 1 n 1 (mod n) niin n on todennäköisesti alkuluku. On olemassa lukuja, jotka läpäisevät Fermat n alkulukutestin, vaikka ovat yhdistettyjä lukuja. Näitä kutsutaan pseudoalkuluvuiksi, toisin sanoen näennäisalkuluvuiksi kannan a suhteen. Pseudoalkuluvut ovat kuitenkin suhteellisen harvinaisia suhteessa alkulukujen määrään.. Esimerkiksi lukua miljoona pienempiä näennäisalkuluja kannan 2 suhteen on vain 245, kun taas vastaavia alkulukuja on 78498. [4,s.32] Näennäisalkulukujen paljastamiseksi voidaan esimerkiksi testata lukua n eri kantojen suhteen. Esimerkiksi, jos luku n on alkuluku kannan 3 suhteen, katsotaan läpäiseekö luku Fermat n testin myös kannan 7 tai kannan 11 suhteen. Kuitenkin on olemassa yhdistettyjä lukuja, jotka toteuttavat Fermat n alkulukutestin minkä tahansa kannan a suhteen aina, kun (a, n) =1. Tällaisia lukuja kutsutaan Carmichaelin luvuiksi. Lause 5.4. Millerin-Rabinin alkulukutesti [9, s. 178] 1. Oletetaan, että luku m on pariton luku ja luku n > 1 on pariton kokonaisluku. Lasketaan n 1=2 k m. 2. Valitaan satunnainen kokonaisluku a siten, että 1 < a < n 1. 3. Lasketaan b 0 a m (mod n). Josb 0 1(modn) tai b 0 1(modn), niinn on todennäköisesti alkuluku. Jos luku b 0 on epäkongruentti luvun +1 tai 1 kanssa modulo n niin jatketaan. 4. Oletetaan, että b 1 b 2 0 (mod n). Josb 1 1(modn) niin n on yhdistetty luku ja luvun n epätriviaali tekijä löydetään laskemalla (b 0 1,n). Josb 1 1(modn) niin n on todennäköisesti alkuluku. Muussa tapauksessa jatketaan testaamista. 5. Oletetaan, että b 2 b 2 1 (mod n). Josb 2 1(modn) niin n on yhdistetty luku. Jos b 2 1 (mod n) niin n on todennäköisesti alkuluku. Muussa tapauksessa jatketaan testaamista. 21

6. Jatketaan samalla tavalla, kunnes saadaan, että n on todennäköisesti alkuluku tai saavutetaan b k 1.Josb k 1 on epäkongruentti luvun 1 kanssa modulo n niin n on yhdistetty luku. Esimerkki 30. Millerin-Rabinin alkulukutesti 1. Olkoon n =881. Tällöin n 1=880=2 4 55. Nytsiisk =4ja m =55. 2. Olkoon a =2. 3. Tällöin b 0 2 55 1(modn). Näin ollen Miller-Rabin testin nojalla luku 881 on todennäköisesti alkuluku. Esimerkki 31. Millerin-Rabinin alkulukutesti 1. Olkoon n =481. Tällöin n 1=480=2 5 15. Nytsiisk =5ja m =15. 2. Olkoon a =2. 3. Tällöin b 0 2 15 60 (mod 481). 4. Oletetaan, että b 1 b 0 2 (mod 481). Näinollenb 1 60 2 233 (mod 481). 5. Oletetaan, että b 2 b 1 2 (mod 481). Näinollenb 2 233 2 417 (mod 481). 6. Oletetaan, että b 3 b 2 2 (mod 481). Näinollenb 3 417 2 248 (mod 481). 7. Oletetaan, että b 4 b 3 2 (mod 481)). Näin ollen b 4 248 2 417 (mod 481). Näin ollen Millerin-Rabinin testin nojalla luku 481 on yhdistetty luku. Jos luvut a ja n ovat sellaisia, että lyhdistetty luku n läpäisee Millerin-Rabinin testin, sanotaan, että luku n on vahva näennäisalkuluku kannan a suhteen. Millerin-Rabinin testi on vahvin tässä tutkielmassa esiteltävistä alkulukutesteistä. Pariton yhdistetty luku n läpäisee kyseenomaisen alkulukutestin ja luku n onkin vahva näennäisalkuluku kannan a suhteen enintään 25% todennäköisyydellä, kun 1 apple a<n.[9, s. 142] Lause 5.5. Solovayn-Strassenin alkulukutesti [9, s. 180] Olkoot n pariton kokonaisluku. Valitaan muutama satunnainen kokonaisluku a, jotkatäyttävätehdon1 < a < n 1. Josjollaina on voimassa, että a 6 n a(n 1)/2 (mod n), niin n on yhdistetty luku. Jos kaikilla a on voimassa niin n on todennäköisesti alkuluku. a n a(n 1)/2 (mod n), Esimerkki 32. Solovayn-Strassenin alkulukutesti Valitaan a =2. Olkoot n =45. Esimerkin 25 nojalla 2 45 =1.Luku45 on Solovayn-Strassenin alkulukutestin nojalla yhdistetty luku, sillä 2 =16 34 2 (45 1)/2 (mod 45). 45 Solovayn-Strassenin alkulukutestissä hyödynnetään luvussa 2.6 esiteltyjä Jacobin ja Legendren symboleja. Fermat n ja Milerin-Rabinin testin tavoin, myös Solovayn-Strassenin testin luvulle a on olemassa arvoja, jotka läpäisevät testin, vaikka ovat yhdistettyjä lukuja. Näitä arvoja kutsutaan Eulerin näennäisalkuluvuiksi. On olemassa testejä, jotka todistavat, että tutkittava luku on alkuluku, mutta kyseenomaiset testit ovat kuitenkin paljon hitaampia ja käytännössä hankalampia kuin esimerkiksi Millerin- Rabinin ja Solovayn-Strassenin testit. Tarkkoja testejä käytetään ainoastaan tilanteissa, joissa käytettävän luvun todistaminen alkuluvuksi on keskeistä. Muuten alkulukumenetelmät nojaavat oletukseen, että testien epäonnistumisen todennäköisyys on pieni, vaikka tuloksen täyttä varmuutta ei koskaan voida taata. 22

5.4 Eksponenttien valinta Kryptosysteemin onnistuneessa suunnittelussa on tärkeää huomioida myös eksponenttien e ja d valinta. Purkueksponentti d tulisi valita tarpeeksi suureksi, jottei sitä voida määrittää niin kutsutulla raa an voiman hyökkäyksellä. Kyseenomaisessa hyökkäyksessä salauksen purkamista yritetään kokeilemalla jokaista mahdollista avainta. Jotta tällaiselta hyökkäykseltä vältyttäisiin, eksponentin d tulisi olla tarpeeksi suuri. Puolestaan myös pieni enkryptauseksponentti e voi olla turvallisuusriski. Oletetaan, että henkilöillä A, B, jac on kaikilla sama enkryptauseksponentti e =3.Olkootosapuoltenjulkiset avaimet tällöin P A =(3,n A ), P B =(3,n B ) ja P C =(3,n B ). Tällöin lähetetään enkryptattu viesti (w 3,modn i ), i = A, B, C... Kolmas osapuoli voi tällöin purkaa salauksen kiinalaisen jännöslauseen (lause 2.19) avulla laskemalla w 1 =(w 3, (mod n A n B n C )). Koska selväteksti w on pienempi kuin jokainen yksittäinen jakojäännös niin pätee, että w 3 = w 1. Tällöin hyökkääjä voi saada selvätekstilohkon w selville ottamalla kuutiojuuren luvusta w 1.[8, s.135] 23

Luku 6 Tekijöihin jakaminen 6.1 Yleistä RSA-menetelmän turvallisuus nojautuu olettamuksen, jonka mukaan kahden alkuluvun tulon tekijöihin jakaminen on todella työlästä ja aikaa vievää. Lauseen 2.6 nojalla tiedetään, että jokainen positiivinen kokonaisluku voidaan esittää alkutekijöiden tulona. Tämä ei kuitenkaan ole niin yksiselitteistä kuin miltä kuulostaa. Alkulukutestien avulla voidaan helposti osoittaa luku n yhdistetyksi luvuksi, mutta kyseenomaiset testit eivät useimmiten kerro meille luvun n tekijöitä. 6.2 Fermat n menetelmä Fermat n menetelmää käytetään nykypäivänä enää harvemmin, mutta kyseinen tekijöihinjako on kuitenkin mielenkiintoinen käsitellä, sillä se tarjoaa pohjan monille muille nykypäivän tehokkaille menetelmille. Fermat n tekijöihinjako pohjautuu seuraavaan lauseeseen. Lause 6.1. [7, s. 105] Jos n on pariton positiivinen kokonaisluku niin luvun n kahdella positiivisella kokonaislukutekijällä ja lukua n vastaavan kahden neliön erotuksen välillä on olemassa yksi-yhteen vastaavuus. Todistus. [7, s. 105] Fermat n tekijöihinjaon ideana on siis ilmaista luku n kahden neliön erotuksena. Oletetaan, että luku n on pariton kokonaisluku ja etsitään kokonaislukuja x ja y siten, että n = x 2 y 2. Ratkaistaan yhtälö etsimällä muotoa x 2 n olevia täydellisiä neliöitä kokonaislukujonosta t 2 n, t +1 2 n, t +2 2 n,..., missä t on pienin lukua p n suurempi kokonaisluku. Prosessi päättyy varmasti, koska viimeisenä vaihtoehtona triviaali tekijöihinjako n = n 1 johtaa yhtälöön n =(n +1)/2 2 (n 1)/2 2.[7,s.105] Esimerkki 33. Fermat n menetelmä Olkoon n =731. Etsitään muotoa x 2 neliöitä aloittaen luvusta x =28,sillä27 < p 731 < 28. Saadaanyhtälöt: n olevia täydellisiä 28 2 731 = 53, 29 2 731 = 110, 30 2 731 = 169 = 13 2. 24