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



Samankaltaiset tiedostot
d Z + 17 Viimeksi muutettu

2017 = = = = = = 26 1

a ord 13 (a)

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

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

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

Lukuteorian kertausta

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

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

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

Matematiikan mestariluokka, syksy

ALKULUKUJA JA MELKEIN ALKULUKUJA

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

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

MS-A0402 Diskreetin matematiikan perusteet

Primitiiviset juuret: teoriaa ja sovelluksia

Salakirjoitusmenetelmiä

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

Diofantoksen yhtälön ratkaisut

Tietoturva P 5 op

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

Shorin algoritmin matematiikkaa Edvard Fagerholm

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

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

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

Tehtävä 1. Oletetaan että uv on neliö ja (u, v) = 1. Osoita, että kumpikin luvuista u ja v on. p 2j i. p j i

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

a b 1 c b n c n

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

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

Algebra I, harjoitus 5,

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

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

1 Lukujen jaollisuudesta

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

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

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

2 j =

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

33. pohjoismainen matematiikkakilpailu 2019 Ratkaisut

(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =

LUKUTEORIA johdantoa

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Kokonaisluvun kertaluvun sovelluksia

2.2 Neliöjuuri ja sitä koskevat laskusäännöt

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

ja jäännösluokkien joukkoa

Testaa taitosi 1: Lauseen totuusarvo

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

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

811120P Diskreetit rakenteet

Latinalaiset neliöt ja taikaneliöt

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

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


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

RSA-salakirjoitus. Simo K. Kivelä, Apufunktioita

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

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

Neljän alkion kunta, solitaire-peli ja

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

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

} {{ } kertaa jotain

RSA Julkisen avaimen salakirjoitusmenetelmä

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Algebra I, Harjoitus 6, , Ratkaisut

Todistusmenetelmiä Miksi pitää todistaa?

diskreetin logaritmin laskemisen käytännössä mahdottomaksi. Olkoon γ kunnan F q primitiivinen alkio. Luku q ja alkio γ ovat julkisia suureita.

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

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.

SALAUSMENETELMÄT A, 4 op

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

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

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

Ensimmäinen induktioperiaate

IDENTITEETTIIN PERUSTUVISTA JULKISEN AVAIMEN KRYPTOSYSTEEMEISTÄ

Ensimmäinen induktioperiaate

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

Äärellisten mallien teoria

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

Vapaus. Määritelmä. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee:

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

1 Kannat ja kannanvaihto

Similaarisuus. Määritelmä. Huom.

Kuinka määritellään 2 3?

Alkulukujen harmoninen sarja

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

Luentorunko ja harjoitustehtävät. SALAUSMENETELMÄT (801346A) 4 op, 2 ov

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

Tenttiin valmentavia harjoituksia

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

7 Vapaus. 7.1 Vapauden määritelmä

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

Tehtävä 4 : 2. b a+1 (mod 3)

Koostanut Juulia Lahdenperä ja Rami Luisto. Salakirjoituksia

isomeerejä yhteensä yhdeksän kappaletta.

Transkriptio:

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 Pentille varmuuden siitä, että vain Liisa on voinut lähettää kyseisen viestin. 6.1. ElGamalin allekirjoitus. Tarkastellaan lyhyesti ElGamalin menetelmää digitaalista allekirjoitusta varten. Liisa valitsee satunnaisesti suuren alkuluvun p, kunnalla Z p jonkin primitiivisen alkion γ, satunnaisesti luvun a {0, 1,..., p 2} ja laskee A := γ a. Liisan julkisavain on pari (γ, A) ja salainen avain luku a. Kun Liisa haluaa allekirjoittaa viestin [x] p Z p, hän valitsee satunnaisesti luvun k {1,..., p 2}, jolle syt(k, p 1) = 1, laskee ϱ := γ k. Olkoon r Z luokan ϱ pienin ei-negatiivinen edustaja; siis r {1,..., p 1} ja [r] p = ϱ. Liisa määrää luvun s Z, jolle s k + a r x mod (p 1). Luku s on luku x a r kertaa luvun k käänteisalkio modulo p 1; ehdon syt(k, p 1) = 1 nojalla k on kääntyvä modulo p 1. Viestin x allekirjoitus on pari (r, s). 6.2. Allekirjoituksen varmistaminen. Kun Pentti haluaa varmistaa Liisalta saadun viestin x allekirjoituksen (r, s) avulla, hän käyttää Liisan julkisavainta (γ, A) seuraaavasti: Ensinnäkin pitää olla 1 r p 1. Toisekseen pitää olla A r ϱ s = γ x. Nimittäin, koska s k x a r mod (p 1), saadaan Fermat n pienen lauseen avulla γ k s = γ x a r (muista: primitiivisen alkion γ kertaluku on p 1), joten A r ϱ s = (γ a ) r (γ k ) s = γ a r γ k s = γ a r γ x a r = γ x. Todetaan vielä, että allekirjoitus (r, s), joka toteuttaa tarkistusehdon A r ϱ s = γ x, voidaan saada vain viestistä x ja Liisan salaisesta avaimesta a. Nimittäin, A r ϱ s = (γ a ) r (γ k ) s, missä k on alkion ϱ diskreetti γ-kantainen logaritmi. Siis A r ϱ s = γ a r+k s. Jos nyt tarkistusehto A r ϱ s = γ x toteutuu, on γ a r+k s = γ x. Koska γ on kunnan Z p primitiivinen alkio, seuraa tästä a r + k s x mod (p 1). Lukujen r ja s tulee siis toteuttaa juuri sama yhtälö, jonka avulla Liisa määräsi luvun s. Huomautus 6.1. Käytännössä allekirjoitusta ei määrätä varsinaisen viestin m avulla, vaan siitä ns. hash-funktion h avulla lasketusta suureesta x = h(m). Hashfunktio on kuvaus Σ Σ n, missä n on annettu positiivinen kokonaisluku ja Σ on käytetty aakkosto. Hash-funktio siis muuttaa mielivaltaisen pitkät viestit kiinteän pituisiksi viesteiksi. Tällainen kuvaus ei koskaan voi olla injektio. Hash-funktioon h liittyvä törmäys on pari (m, m ), jolle h(m) = h(m ). Digitaalisiin allekirjoituksiin käytettyjen hash-funktioiden toivotaan yleensä olevan törmäyksiä vastustavia (engl. 18 Viimeksi muutettu 15.10.2012. 45

collosion resistant). Tällä tarkoitetaan, että sellaisen parin (m, m ), jolle h(m) = h(m ), määräämisen pitäisi olla käytännöllisesti mahdotonta. Katso lisää [1, 10.1]. Edellä ElGamalin allekirjoitus on syytä lukea niin, että viesti x tarkoittaa varsinaisesta viestistä m laskettua hash-arvoa h(m). 46 6.3. Allekirjoituksen toistaminen. Allekirjoitusta varten Liisa valitsee satunnaisesti luvun k {1,..., p 2} ja laskee allekirjoituksen (r, s) salaisen avaimensa a ja luvun k avulla. Liisan tulee valita uusi luku k jokaista allekirjoitusta varten, koska muuten Erkki pystyy saamaan selville Liisan salaisen avaimen a. Oletetaan, että Liisa on käyttänyt samaa lukua k kahden eri viestin [x 1 ] p, [x 2 ] p Z p, allekirjoittamiseen. Alkio ϱ = γ k on siis sama kumpaakin allekirjoitusta varten, joten myös luku r, jolle r {1,..., p 1} ja [r] p = ϱ, säilyy samana. Olkoot s 1, s 2 Z, joille Siis s 1 k + a r x 1 mod (p 1) ja s 2 k + a r x 2 mod (p 1). (s 1 s 2 ) k x 1 x 2 mod (p 1) Jos tässä s 1 s 2 on kääntyvä modulo p 1, saadaan luku k ratkaistuksi tästä yhtälöstä. Jos x 1 x 2 on kääntyvä, on myös s 1 s 2 kääntyvä, koska k on kääntyvä. Kun k saadaan selville, saadaan a ratkaistuksi yhtälöstä s 1 k + a r x 1 mod (p 1) ainakin, jos r on kääntyvä modulo p 1. 6.4. Allekirjoituksen väärentämisestä. ElGamalin allekirjoituksessa viestin allekirjoitus on lukupari (r, s). Itse viesti ei sisälly tähän allekirjoitukseen, joten se pitää välittää erikseen. Tässä tärkeätä on, että allekirjoitusta ei lasketa varsinaisesta viestistä m, vaan hash-funktion h avulla lasketusta suureesta x = h(m). Jos Liisa lähettää allekirjoitetun viestin muodossa ((m, x), (r, s)), ja viestin oikeellisuus tarkistettaisiin vain ehdolla A r ϱ s = γ x, olisi allekirjoitus väärennettävissä. Kun lisäksi tarkistetaan, että h(m) = x, ja h on törmäyksiä vastustavia, ei väärentäminen ole mahdollista. Osoitetaan, että Erkki pystyy konstruoimaan viestin x ja allekirjoituksen (r, s), joka läpäisee allekirjoituksen tarkistusehdon. Jotta Pentti uskoisi allekirjoituksen perusteella viestin x tulevan Liisalta, pitää allekirjoituksen ja viestin x toteuttaa ehto A r ϱ s = γ x, missä ϱ = [r] p. Erkki valitsee kokonaisluvut u ja v siten, että syt(v, p 1) = 1 ja määrää suureet ϱ = [r] p, s ja x, joille ϱ = γ u A v, s v r mod (p 1) ja x s u mod (p 1). Näin määrätyille suureille r ja s on A r ϱ s = A r (γ u A v ) s = A r γ u s A v s = A r γ x A r = γ x. Viestin x siis läpäisee allekirjoituksen tarkistusehdon.

Edeltä ei käy selville, miksi allekirjoituksen varmistamiseksi pitää myös tarkistaa, että 1 r p 1. Jos tätä ehtoa ei vaalita, voi Erkki käyttää olemassaolevan viestin x oikeata allekirjoitusta (r, s) väärentääkseen allekirjoituksen toiseen viestiin x. Oletetaan, että x on kääntyvä modulo p 1, ja että x x mod (p 1). Erkki määrää kokonaisluvut u ja s, joille x u x mod (p 1) eli [u] p 1 = [x ] p 1 [x] 1 p 1 ja s s u mod (p 1). Luvut p 1 ja p ovat keskenään jaottomat, joten kiinalaisen jäännöslauseen avulla Erkki pystyy määräämään luvun r, jolle r r u mod (p 1), r r mod p. Viestin x allekirjoitus on nyt (r, s ). Koska r r mod p, on ϱ := [r ] p = [r] p = ϱ. Allekirjoitus (r, s ) kelpaa Pentille, sillä A r (ϱ ) s = A r u ϱ s u = γ a u r+k s u = γ (a r+k s) u = γ x u = γ x. Osoitetaan, että nyt on kuitenkin r p, jos oletetaan, että r on valittu einegatiiviseksi. Koska (r, s) on oikein laadittu allekirjoitus, on luvulle r voimassa 1 r p 1. Oletuksista seuraa, että u 1 mod (p 1), joten r r u r mod (p 1). Ehdon r r mod p nojalla luku r poikkeaa luvusta r luvun p kokonaislukumonikerran verran. Ehdosta r r mod (p 1) seuraa, että r p. 6.5. Rabinin salain allekirjoitusmenetelmänä. Edellä esitetyn ElGamalin menetelmän lisäksi monia muita salausmenetelmiä voidaan käyttää digitaaliseen allekirjoittamiseen. Palautetaan mieleen Rabinin menetelmä. Liisa valitsee satunnaisesti kaksi keskenään erisuurta alkulukua p ja q, joille p 3 mod 4 ja q 3 mod 4. Liisa laskee tulon n := p q. Liisan julkisavain on luku n ja salainen avain pari (p, q). Allekirjoitettavien viestin joukko M on nyt kaikkien renkaan Z n neliöiden joukko eli M := {x 2 x Z n }. Muistettakoon, että kun luvun n tekijät p ja q tunnetaan, on alkioiden y M neliöjuurien laskeminen helppoa, muuten ei. Kun Liisa allekirjoittaa viestin m M, hän käyttää salaista avaintaan ja laskee alkion m neliöjuuren s, t.s. hän määrää alkion s Z n, jolle s 2 = m. Liisa lähettää Pentille allekirjoitettuna viestinä alkion s. Pentti varmistaa, että viesti on Liisalta laskemalla Liisan julkisavaimen n avulla alkion s 2 Z n ; muuta ei tarvita. 7. Autentikointi Useimmissa tietokoneiden käyttöjärjestelmissä käyttäjät tunnistetaan käyttäjätunnuksen ja salasanan avulla. Salasanat talletetaan usein salakirjoitettuna, ja tunnistautumistilanteessa käyttäjän antama salasana salakirjoitetaan ja salakirjoitettua muotoa verrataan järjestelmään talletettuun salasanaan. Vaihtoehtoisia tunnistusmenetelmiä on olemassa, ja niistä eräs typpi tunnetaan haaste-vaste -menetelmänä (engl. challenge response system). Kun tällaisessa Liisa 47

haluaa tunnistautua Pentille, Pentti esittää kysymyksen (haasteen), johon Liisa tulee vastata (antaa vaste). Liisa laskee vastauksen salaisen avaimensa avulla ja Pentti varmistaa vastauksen käyttäen vastaavaa julkista avainta. Tällaisesta esimerkkinä esitellään Fiatin ja Shamirin identifiointiprotokolla. Liisa valitsee satunnaisesti kaksi keskenään erisuurta alkulukua p ja q. Näistä laskettu tulo n := p q on julkinen suure. Seuraavaksi Liisa valitsee satunnaisesti luvun s {1, 2,..., n 1} ja määrää luvun v {0, 1,..., n 1}, jolle v s 2 mod n. 19 Liisan julkinen avain on pari (n, v). Luku s on yksi luvun v neliöjuurista modulo n. Koska neliöjuurien laskemista modulo n pidetään vaikeana (ellei luvun n tekijöitä tunneta), voi Pentti varmistua Liisan identiteetistä, jos Liisa pystyy jotenkin vakuuttamaan Pentin siitä, että hän tietää luvun v neliöjuuren modulo n. Tämä voidaan tehdä seuraavasti: (1) Liisa valitsee satunnaisesti luvun r {1, 2,..., n 1} ja määrää luvun x {0, 1,..., n 1}, jolle x r 2 mod n. Liisa lähettää luvun x Pentille. (2) Pentti valitsee satunnaisesti luvun e {0, 1} ja lähettää sen Liisalle. (3) Liisa määrää luvun y {0, 1,..., n 1}, jolle y r s e mod n, ja lähettää luvun y Pentille. (Siis y = r tai y r s mod n.) (4) Pentti tarkistaa, onko y 2 x v e mod n. Jos tämä ehto toteutuu, Pentti hyväksyy Liisan vastauksen; muuten vastaus hylätään. Pystyykö Erkki esiintymään Liisana, vaikka ei tietäisi Liisan salaista avainta s? Jos Erkki tietää luvut r ja r s, hän saa selville salaisen avaimen s, sillä s r s r 1 mod n. Erkki voi kuitenkin menetellä seuraavasti: Jos Erkki arvaa, että e = 0, hän valitsee luvun r satunnaisesti ja lähettää Pentille luvun x r 2 mod n. Pentti tarkistaa, että y x mod n, kuten pitääkin. Salaista avainta s ja sen neliötä v ei tässä tarvita lainkaan. Jos Erkki arvaa, että e = 1, hän valitsee luvun r satunnaisesti, lähettää Pentille ensin luvun x r 2 v 1 mod n, ja toisena luvun y r mod n. Pentti laskee y 2 r 2 mod n ja toisaalta x v r 2 v 1 v r 2 mod n. Salaista avainta s Erkki ei pysty käyttämään, mutta sen neliötä v kylläkin. Erkin pitäisi tässä tilanteessa kuitenkin arvata etukäteen, kumman luvun e Pentti tulee valitsemaan; Erkillä luvun x valinta riippuu siitä, kumpi arvo luvulla e tulee olemaan. Koska Pentin valinta on satunnainen, pitäisi Erkin onnistua siis vain todennäköisyydellä 1. Jos tätä kysy-vastaa -menetelmää toistettaisiin r kertaa, saisi Pentti 2 Erkin huijauksen selville todennäköisyydellä 1 ( 1 2 )r. Aivan suoraan tätä kysy-vastaa -menetelmää ei kuitenkaan voida toistaa. Miksi? Harjoituksiin jätetään tarkasteltavaksi yleisempi Feigen, Fiatin ja Shamirin identifiointiprotokolla, joka vastaa r-kertaa toistettua Fiatin ja Shamirin protokollaa. Fiatin ja Shamirin protokollaa vastaa salausmenetelmänä Rabinin salain: salaavuus perustuu neliöjuurten laskemisen vaikeuteen. Identifiointimenetelmät voivat kuitenkin käyttää muitakin salausmenetelmiä. 48 19 Luonnollista olisi vaatia, että syt(s, n) = 1, jolloin myös syt(v, n) = 1; muuten luvun n tekijät on helppo löytää. Sama pätee muihinkin väliltä {1,..., n 1} satunnaisesti valittuihin lukuihin.

8. Mistä kaikesta jään paitsi? 8.1. Satunnaisluvut. Monessa yhteydessä on käytetty ilmaisua valitsee satunnaisesti kokonaisluvun sen paremmin selvittämättä, miten tällainen satunnaisvalinta tehdään. Eräs yksinkertaisimmista menetelmistä on seuraava: Olkoot m, a ja b positiivisia kokonaislukuja. Jono (x j ) j=0 konstruoidaan seuraavasti: (1) valitaan x 0 {0, 1,..., m 1}; (2) kun j 1, valitaan x j {0, 1,..., m 1}, jolle x j (a x j 1 + b) mod m. Näin muodostetussa jonossa ei voi olla enempää kuin m keskenään erisuurta lukua x j. Sen sijaan on huomattavasti vaikeampi selvittää, millä ehdoilla jonossa on juuri m eri lukua. Ei ole kovin vaikea todeta, että tässä tällaisessa tilanteessa pitää olla ainakin syt(a, m) = 1. Tarkemmin ongelmaa on selvitetty kirjassa [7, 3.2]. Katso myös [2, 17.2]. 8.2. Alkulukutestaus. Kun luvun satunnaisvalinta ei ole itsestäänselvyys, hankalampi ongelma on, miten valitaan satunnaisesti alkuluku. Tyypillinen menetelmä voisi olla seuraavanlainen: Valitaan satunnaisesti kokonaisluku n. Testataan jollakin sopivalla menetelmällä, onko n alkuluku. Jos n ei ole alkuluku, siirrytään seuraavaan (parittomaan) lukuun ja testataan, onko se alkuluku. Tätä toistetaan, kunnes alkuluku löytyy. Tämän idean taustalla on ns. alkulukulause, jonka sanomasta voidaan heuristisesti lukuea, että annetun luvun x lähellä oleva luku on alkuluku todennäköisyydellä 1/ log n. Mutta miten testataan, onko annettu luku alkuluku? Yksinkertaisimmat menetelmät (esimerkiksi Eratosteneen seula) eivät ole riittäviä silloin, kun tarvitaan isoja alkulukuja. Fermat n pientä lausetta voi käyttää apuna, mutta ei sanomaan luku p on alkuluku, vaan sanomaan, että luku p ei ole alkuluku. Nimittäin, Fermat n pienen lauseen mukaanhan on: jos p on alkuluku ja a kokonaisluku, jolle syt(a, p) = 1, niin a p 1 1 mod p. Tätä voidaan käyttää niin, että jos p on alkulukukandidaatti, niin valitaan satunnaisesti luku a {2,..., n 1}, lasketaan a p 1 mod p (toistetulla neliöinnillä modulo p). Jos a p 1 1 mod p, niin Fermat n pienen lauseen nojalla p ei ole alkuluku. Jos taas a p 1 1 mod p, niin Fermat n pieni lause ei sano mitään. Särön Fermat n pieneen lauseeseen tuovat Carmichaelin luvut. Carmichaelin luvut ovat yhdistettyjä positiivisia kokonaislukuja n, joille on voimassa a n 1 1 mod n kaikille kokonaisluvuille a, joille syt(a, n) = 1. Särön tekee se, että tällaisia lukuja on olemassa (pienin on 561 = 3 11 17), ja että tällaisia lukuja on äärettömän paljon. (Tämä todistettiin vasta 1994!). Alkutestaus on varsin tärkeä ja laaja lukuteorian osa-alue. Lukijaa kehotetaan perehtymään kirjallisuuteen, esimerkiksi [1, luku 6], [2, luku 18], [8, luku V] tai ylipäätään lukuteoriaan [5]. Alkutestauksen rinnalla kulkevat lukujen tekijöihinjakomenetelmät ([1, luku 8], [2, luku 19], [8, luku V], [8, luku VI, 4]) ja menetelmät, joilla lasketaan diskreettejä logaritmeja ([1, luku 9], [8, luku IV, 3]). 49