d Z + 17 Viimeksi muutettu

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

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

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

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

ja jäännösluokkien joukkoa

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

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

a ord 13 (a)

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

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

Shorin algoritmin matematiikkaa Edvard Fagerholm

Primitiiviset juuret: teoriaa ja sovelluksia

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

Algebra I, harjoitus 5,

Lukuteorian kertausta

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

1 Lukujen jaollisuudesta

MS-A0402 Diskreetin matematiikan perusteet

2 j =

[E : F ]=[E : K][K : F ].

a b 1 c b n c n

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

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

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

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

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

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

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

Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta

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

Koodausteoria, Kesä 2014

Todistus. Eliminoidaan Euleideen algoritmissa jakojäännökset alhaaltaylöspäin.

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

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

Koodausteoria, Kesä 2014

ALKULUKUJA JA MELKEIN ALKULUKUJA

2017 = = = = = = 26 1

Liite 2. Ryhmien ja kuntien perusteet

Esko Turunen Luku 3. Ryhmät

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

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

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

DIFFERENTIAALI- JA INTEGRAALILASKENTA I.1. Ritva Hurri-Syrjänen/Syksy 1999/Luennot 6. FUNKTION JATKUVUUS

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

Äärellisesti generoitujen Abelin ryhmien peruslause

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

802328A LUKUTEORIAN PERUSTEET Merkintöjä ja Algebrallisia rakenteita

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

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

1 Algebralliset perusteet

Johdatus matematiikkaan

LUKUTEORIA johdantoa

6. Tekijäryhmät ja aliryhmät

VALIKOITUJA KOHTIA LUKUTEORIASTA

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

1 Lineaariavaruus eli Vektoriavaruus

Miten osoitetaan joukot samoiksi?

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

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

g : R R, g(a) = g i a i. Alkio g(a) R on polynomin arvo pisteessä a. Jos g(a) = 0, niin a on polynomin g(x) nollakohta.

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

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

802320A LINEAARIALGEBRA OSA I

Johdatus matemaattiseen päättelyyn

ei ole muita välikuntia.

7 Vapaus. 7.1 Vapauden määritelmä

5. Julkisen avaimen salaus

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

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

TOOLS. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO TOOLS 1 / 28

Johdatus matemaattiseen päättelyyn

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Diofantoksen yhtälön ratkaisut

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

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

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

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

Algebran perusteet. 44 ϕ(105) = (105). Näin ollen

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

Lineaarikuvauksen R n R m matriisi

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

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

Koodausteoria, Kesä 2014

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

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

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

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

{I n } < { I n,i n } < GL n (Q) < GL n (R) < GL n (C) kaikilla n 2 ja

Reaalifunktioista 1 / 17. Reaalifunktioista

Konvergenssilauseita

Seurauksia. Seuraus. Seuraus. Jos asteen n polynomilla P on n erisuurta nollakohtaa x 1, x 2,..., x n, niin P on muotoa

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Koodausteoria, Kesä 2014

TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Jukka Vilen. Polynomirenkaista

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

4 Yleinen potenssifunktio ja polynomifunktio

11. Jaollisuudesta. Lemma Oletetaan, että a, b R.

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Todistusmenetelmiä Miksi pitää todistaa?

Transkriptio:

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) lukea kaikkea, mitä Internet-verkon kautta välitetään. Eräs varhaisimmista tällaiseen tarkoitukseen sopivista menetelmistä on peräisin W. Diffieltä ja M. E. Hellmanilta. Tämän Diffien ja Hellmanin avaintenvaihtomenetelmän turvallisuus perustuu ns. diskreettilogaritmiongelmaan. Laskettavat suureet ovat eksponenttifunktion diskreettejä sukulaisia, mutta ongelma on käänteisfunktion, diskreetin logaritmin, määrääminen. Diskreetin logaritmin käsittelyyn kaivataan kuitenkin lisätietoja kunnista Z p (p alkuluku). 5.1. Primitiivinen alkio. Tarkastellaan äärellistä kuntaa K, siis kommutatiivista rengasta, jossa jokaisella nollasta eroavalla alkiolla on käänteisalkio, ja jossa on äärellisen monta alkiota. Tällaisia ovat esimerkiksi jäännösluokkarenkaat Z p, kun p on alkuluku, mutta muitakin on (Z n ei ole kunta, jos n ei ole alkuluku). Se tarkemmin yksityiskohtiin puuttumatta mainittakoon, että jos K on äärellinen kunta, sen alkioiden lukumäärä q on muotoa q = p n, missä p on alkuluku ja n Z +. Kääntäen, jos q = p n, missä p on alkuluku ja n Z +, niin on olemassa oleellisesti yksi ja vain yksi kunta, jossa on q alkiota. ( Oleellisesti tarkoittaa, että mitkä tahansa kaksi äärellistä kuntaa, joissa on yhtä monta alkiota, ovat rengasisomorfiset.) Olkoon nyt äärellinen K kunta, jossa on q alkiota. Tällöin sen kääntyvien alkioiden joukko K = K \ {0} on kertolaskun suhteen Abelin ryhmä. (Vastaava tapahtuu jäännösluokkarenkaille Z n, mutta kääntyvien alkioiden joukko Z n on vaikeampi karakterisoida.) Ryhmän (K, ) kertaluku on q 1. Palautetaan mieleen, että (multiplikatiivinen) ryhmä on G syklinen, jos on olemassa alkio g G siten, että G = g = {g k k Z}. Osoitetaan seuraavaksi, että äärellisen kunnan multiplikatiivinen ryhmä K on syklinen. Tämän todistamiseksi riittää osoittaa, että on olemassa ainakin yksi alkio g K, jonka kertaluku on q 1. Väitteen todistus tulee antamaan hieman enemmän: jokaista luvun q 1 tekijää d kohti on olemassa alkioita, joiden kertaluku on d. Lisäksi tällaisten alkioiden lukumäärä pystytään laskemaan. Väitteen todistamiseksi tarvitaan Eulerin ϕ-funktioon liittyvä kaunis kaava: Lause 5.1. Olkoon n positiivinen kokonaisluku. Tällöin ϕ(d) = n, d Z + d n missä summa lasketaan kaikille sellaisille luvuille d Z +, jotka jakavat luvun n. Ennen lauseen todistamista yleisesti tarkastellaan yksinkertaista numeerista esimerkkiä, josta todistuksen idea selviää. Luvun n = 6 jakajat ovat d {1, 2, 3, 6} =: D. Osamäärät j, missä j {1,..., 6}, voidaan esittää supistetussa muodossa ja sen jälkeen ne voidaan ryhmitellä nimittäjän mukaan 6 seuraavasti: T := { j 6 j {1,..., 6}} = { 1 6, 1 3, 1 2, 2 3, 5 6, 1 1 } = S 1 S 2 S 3 S 6, missä S 1 = { 1}, S 1 2 = { 1}, S 2 3 = { 1, 2} ja S 3 3 6 = { 1, 5 }, t.s. yleisesti jokaiselle d D 6 6 on S d := { t t {1,..., d} ja syt(t, d) = 1}. Tässä esimerkkitilanteessa joukko d 17 Viimeksi muutettu 11.10.2012. 36

T jakautuu pistevieraisiin osiin S d, joten joukkojen alkioiden lukumääriä on helppo verrrata. Vastaava voidaan tehdä yleisesti. Todistus. Olkoot D := {d Z + d n}, T := { j j {1,..., n}} ja n S d := { t t {1,..., d} ja syt(t, d) = 1}, kun d D. d Tällöin joukon T alkioiden lukumäärä on n ja joukon S d vastaavasti ϕ(d). Osoitetaan, että T = d D S d, ja että joukot S d ovat pistevieraita. Kun tämä osoitettu, väite seuraa välittömsti. T d D S d: Joukon T jokainen luku on muotoa j jollekin j {1,..., n}. Olkoon n s := syt(j, n). Tällöin on olemassa kokonaisluvut t ja d siten, että j = t s ja n = d s. Luvuille t ja d on syt(t, d) = 1, t {1,..., d}, d {1,..., n} ja d n, joten d D ja j = t S n d d. T d D S d: Olkoot d D, jolloin tyypillinen joukon S d luku on muotoa t, missä d t {1,..., d}. Olkoot s := n ja j := t s. Tällöin s Z d +, j {1,..., n} ja t = j, d n joten t T. d S d S d =, kun d d : Tehdään antiteesi: on olemassa d, d D siten, että d d, mutta S d S d. Olkoon r S d S d. Tällöin on olemassa t {1,..., d} ja t {1,..., d } siten, että r = t = t ja syt(t, d) = 1 ja syt(t, d ) = 1. Tällöin d d t d = t d. Koska syt(t, d) = 1 ja d t d = t d, on d d, joten on olemassa k Z + siten, että d = k d. Siis t d = t d = t k d, joten t = t d = t k. Mutta tällöin luvuilla t ja d on yhteinen tekijä k, mikä on vastoin oletusta lukuunottamatta sitä tilannetta, että k = 1. Mutta jos k = 1, olisi d = d, mikä on vastoin oletusta. Siis antiteesi on väärä, ja S d S d =. Lause 5.2. Olkoon K äärellinen kunta, jossa on q alkiota. Tällöin jokaiselle luvun q 1 jakajalle d ryhmässä K on täsmälleen ϕ(d) alkiota, jonka kertaluku on d. Erityisesti ryhmässä K on ϕ(q 1) alkiota, jonka kertaluku on q 1. Todistus. Koska ryhmässä K on q 1 alkiota, on sen jokaisen alkion kertaluku luvun q 1 tekijä (lause 3.2). Olkoon d luvun q 1 tekijä. Olkoon ψ(d) kaikkien niiden ryhmän K alkioiden lukumäärä, joiden kertaluku on d. Väite seuraa, kun osoitetaan, että ψ(d) = ϕ(d). Oletetaan aluksi, että ψ(d) > 0, ja osoitetaan tämän avulla, että ψ(d) = ϕ(d). Ehto ψ(d) > 0 merkitsee, että ryhmässä K on ainakin yksi alkio, jonka kertaluku on d. Olkoon a K, jonka kertaluku on d. Alkion potenssit a e, 0 e < d, ovat keskenään erisuuria, koska alkion a kertaluku on d. Toisaalta, jokainen potenssi a e on polynomin x d 1 nollakohta, koska (a e ) d 1 = (a d ) e 1 = 0. Koska polynomin x d 1 aste on d, on sillä enintään d nollakohtaa. (Tämä kaipaa hieman lisäperusteluja; Rabinin salaimen yhteydessä nähtiin, että alkiolla [c] n Z n voi olla neljä neliöjuurta, t.s. polynomilla voi olla astelukuaan enemmän nollakohtia.) Siis tässä tilanteessa polynomilla x d 1 on täsmälleen d nollakohtaa, ja ne ovat potenssit a e, 0 e < d. Se, että alkion kertaluku on d tarkoittaa, että se on polynomin x d 1 nollakohta, joten jokainen kertalukua d oleva alkio on jokin alkion a potenssi a e. Aiemmin todistetun nojalla alkion a potenssin a e kertaluku on d, jos ja vain jos syt(e, d) = 1. Kertalukua 37

d olevia alkioita on siis yhtä monta kuin lukuja e, joille 0 e < d ja syt(e, d) = 1. Tällaisia lukuja on ϕ(d) kappaletta. Siis kertalukua d olevia alkioita on ϕ(d) kappaletta, jos sellaisia ylipäätään on olemassa. Osoitetaan lopuksi, että ψ(d) > 0 jokaiselle luvun q 1 tekijälle. Tehdään antiteesi: Luvulla q 1 on tekijä d siten, että ψ(d) = 0. Todistuksen alkuosassa osoitettiin, että jos ψ(d) > 0, niin ψ(d) = ϕ(d). Jos taas ψ(d) = 0, niin 0 = ψ(d) < ϕ(d). Koska ryhmän K jokaisen alkion kertaluku on luvun q 1 tekijä, antaa summa d Z +, d q 1 ψ(d) ryhmän K alkioiden lukumäärään. Siis edellisessä lauseessa Eulerin ϕ-funktiolle todistetun kaavan nojalla saadaan q 1 = ψ(d) < ϕ(d) = q 1. d Z +, d q 1 d Z +, d q 1 38 Päädytään ristiriitaan, jos oletetaan, että ψ(d) = 0 jollekin luvun q 1 tekijälle d. Määritelmä 5.3. Olkoon K äärellinen kunta. Alkiota g K, jonka virittämä ryhmä g = {g k k Z} on K, kutsutaan kunnan K primitiiviseksi alkioksi. Edellisen lauseen nojalla äärellisellä kunnalla, jossa on q alkiota, on ϕ(q 1) primitiivistä alkiota. Huomautus 5.4. Edellisesta lauseesta 5.2 tarvitaan ennenkaikkea tieto, että jokaisella äärellisellä kunnalla on primitiivinen alkio. Tämä voitaisiin todistaa yksinkertaisemminkin. Nimittäin, äärellisen kunnan jokaisella nollasta eroavalla alkiolla on äärellinen kertaluku. Koska näitä kertalukuja on äärellisen monta, voidaan niistä valita suurin. Olkoon se d, ja olkoon a K jokin alkio, jonka kertaluku on d. Tällöin potenssit a, a 2,..., a d = 1 ovat keskenään erisuuret. Ne ovat polynomin x d 1 nollakohtia, ja koska niitä on asteluvun mukaiset d kappaletta, muita nollakohtia polynomilla x d 1 ei ole. Jos d < q 1, on olemassa b K, joka ei ole mikään alkion a potenssi. Suurimmalla kertaluvulla d on kuitenkin se ominaisuus, että minkä tahansa muun alkion kertaluku jakaa kertaluvun d. Erityisesti alkion b kertaluvun pitäisi jakaa d. Mutta jos alkion b kertaluku jakaa luvun b, toteuttaa b yhtälön b d 1 = 0. Tällöin b olisi polynomin x d 1 nollakohtia, joten se olisi jokin potensseista a, a 2,..., a d = 1. Päädytään ristiriitaan. Katso tarkemmin [10, luku VIII, 3] tai [4, 1.7]. Edellä esitetyn todistuksen etuna tähän päättelyyn nähden on, että se kertoo jotain erilaisten alkioiden lukumääristä Eulerin ϕ-funktion avulla. Haittapuolelle jää se, että lauseelle 5.2 esitetty todistus ei ole sen konstruktiivisempi kuin tässä esitetty todistushahmotelma. RSA-menetelmän yhteydessä käytettiin tulosta (lemma 3.13), jonka todistamiseksi olisi tarvittu kunnan primitiivista alkiota: Lukuja a Z +, joille syt(a, n) = 1 ja jäännösluokkien [a k ] p ja [a k ] q kertaluvut ovat keskenään erisuuret, on ainakin (p 1)(q 1)/2 kappaletta. Kerrataan merkintöjä: Luvut p ja q ovat keskenään erisuuria parittomia alkulukuja, n = p q, e (1, ϕ(n)) on kääntyvä modulo ϕ(n) ja d (1, ϕ(n)) on luvun e käänteisalkio modulo ϕ(n). Luku s valittiin niin, että se on suurin positiivinen kokonaisluku, jolle 2 s d e 1; tällöin d e 1 = 2 s k, missä k on pariton. Tälle luvun k valinnalle alkion [a k ] n kertaluku ryhmässä Z n on muotoa 2 j jollekin j {0, 1,..., s}.

Lemman 3.11 jälkeisen tarkastelun nojalla alkion [a k ] p kertaluku ryhmässä Z p on muotoa 2 t jollekin t j. Vastaava pätee myös alkion [a k ] q kertaluvulle. Lauseen 3.6 nojalla: jos alkion g kertaluku on d, alkion g j kertaluku on d/ syt(d, j). Lemman 3.13 todistus. Edellisen lauseen nojalla äärellisellä kunnalla Z p on primitiivinen alkio [g p ] p. Vastaavasti kunnalla Z q on primitiivinen alkio [g q ] q. Kiinalaisen jäännöslauseen nojalla on olemassa kokonaisluku g siten, että g g p mod p ja g g q mod q. Tällöin [g] p on kunnan Z p primitiivinen alkio ja [g] q on kunnan Z q primitiivinen alkio. Kaikille luvun g potensseille g x on syt(g x, n) = 1. Nimittäin muuten olisi syt(g x, p) > 1 tai syt(g x, q) > 1. Jos syt(g x, p) > 1, olisi p g, jolloin g 0 mod p, eikä [g] p voisi olla kunnan kunnan Z p primitiivinen alkio. Lemman 3.11 nojalla alkioiden [g k ] p ja [g k ] q kertaluvut kunnissa Z p ja Z q ovat muotoa 2 j, missä j s. Koska g antaa primitiiviset alkiot kuntiin Z p ja Z q, on luonnollista, että luvut a etsitään luvun g potensseina. Oletetaan aluksi, että jäännösluokan [g k ] p kertaluku d on suurempi kuin jäännösluokan [g k ] q, jonka kertaluku olkoon d. Olkoot x {1, 2,..., p 1} pariton ja y {0, 1,..., q 2}. Olkoon a pienin ei-negatiivinen kokonaisluku, joka ratkaisee kongruenssiparin (5.1) a g x mod p, a g y mod q. Tällöin a {1, 2,..., n 1}. Koska [a k ] p = [a] k p = [g x ] k p = [(g x ) k ] p = [(g k ) x ] p = [g k ] x p, alkion [g k ] p kertaluku d on muotoa 2 j ja x on pariton, on alkion [a k ] p kertaluku d/ syt(d, x) = d. Vastaavasti, koska [a k ] q = [g y ] k q = [g k ] y q ja alkion [g k ] q kertaluku on d, on alkion [a k ] q kertaluku d / syt(d, y) d. Koska oletettiin, että d > d, on siis alkion [g k ] p kertaluku suurempi kuin alkion [a k ] q kertaluku. Kahta eri paria (x, y) vastaavat kongruenssiparin (5.1) ratkaisut ovat keskenään erisuuret. Jos nimittäin myös pari (x, y ) toteuttaa kongruenssiparin (5.1), niin g x g x mod p ja g y g y mod q. Koska [g] p on kunnan Z p primitiivinen alkio ja x, x {1, 2,..., p 1}, on x = x. Vastaavasti y = y. Tästä seuraa, että tällä tavalla löytyviä lukuja a on (p 1)(q 1)/2 kappaletta. Oletetaan nyt, että jäännösluokkien [g k ] p ja [g k ] q kertaluvut ovat yhtä suuret. Koska ainoa alkio, jonka kertaluku on yksi, on neutraalialkio [1], on jäännösluokkien [g k ] p ja [g k ] q yhteinen kertaluku d 2. Olkoot x {1, 2,..., p 1} pariton ja y {0, 1,..., q 2} parillinen. Kuten edellä olkoon a pienin ei-negatiivinen kokonaisluku, joka ratkaisee kongruenssiparin (5.1). Koska alkion [g k ] p kertaluku d on muotoa 2 j ja x on pariton, on alkion [a k ] p = [g k ] x p kertaluku d/ syt(d, x) = d. Koska alkion [g k ] q kertaluku d on muotoa 2 j, d 2 ja y on parillinen, on alkion [a k ] q = [g k ] y q kertaluku d/ syt(d, y) d/2 < d. On helppo todeta, että kahta eri paria (x, y) vastaavat kongruenssiparin (5.1) ratkaisut ovat keskenään erisuuret. Tällä tavalla löytyviä lukuja a on (p 1)(q 1)/4 kappaletta. Loput ratkaisut a löydetään kongruenssiparin (5.1) ratkaisuina, missä nyt x {0, 1,..., p 1} on parillinen ja y {0, 1,..., q 2} pariton. 39

5.2. Polynomien nollakohdista. Lauseen 5.2 todistus käytti vahvasti apunaan sitä tuttua tietoa, että d-asteisella polynomilla on enintään d nollakohtaa. Rabinin salaimen yhteydessä kuitenkin nähtiin, että toisen asteen yhtälöllä x 2 = c voi olla neljä ratkaisua renkaassa Z n. Tilanne kuitenkin normalisoituu, kun polynomin kertoimet ovat jonkin kunnan alkioita, eivät mielivaltaisen (kommutatiivisen) renkaan alkioita. Muistetaan, että kun K on kunta, niin K-kertoimiset polynomit f(x) ovat äärellisiä summia f(x) = a 0 + a 1 x + + a d x d, missä a 0, a 1,..., a d K. Nollasta eroavan polynomin aste on suurin luku d Z siten, että a d 0. Mekitään deg f(x) = d. Nollapolynomin asteeksi sovitaan. Polynomeista tarkemmin (todistuksineen) löytyy Algebran kurssista tai vaikka kirjoista [10, luku V, 1], [1, 2.18, 2.19] ja [2, 2.4]. Oleellinen apuväline polynomien käsittelyssä on jakoyhtälö, jonka todistus on lähinnä (induktiomuotoon kirjoitettu variantti) polynomien jakolaskusta jakokulmassa. Oleellista tässä jakolaskussa on, että nollasta eroavalla johtavalla kertoimella voidaan jakaa; tämä onnistuu, kun kertoimien joukkona on kunta. Seuraavissa päättelyissä käytetään myös tietoa deg(f(x) g(x)) = deg f(x) + deg g(x). Tämäkin pitää paikkansa, kun polynomit ovat kuntakertoimisia, mutta ei enää yleisemmin. Lause 5.5 (Polynomien jakoyhtälö). Olkoot K kunta sekä f(x) ja g(x) muuttujan x K-kertoimisia polynomeja. Oletetaan, että g(x) ei ole nollapolynomi. Tällöin on olemassa yksikäsitteisesti määrätyt K-kertoimiset polynomit q(x) ja r(x) siten, että f(x) = q(x) g(x) + r(x) ja deg r(x) < deg g(x). Alkio a K on K-kertoimisen polynomin f(x) = a 0 + a 1 x + + a d x d nollakohta (tai yhtälön f(x) = 0 juuri), jos a 0 + a 1 a + + a d a d = 0. Seuraus 5.6. Olkoot K kunta, f(x) muuttujan x K-kertoiminen polynomi ja a K. Tällöin a on polynomin f(x) nollakohta, jos ja vain jos f(x) = q(x) (x a) jollekin K-kertoimiselle polynomille q(x) (t.s. jos ja vain jos polynomi x a jakaa polynomin f(x)). Todistus. Jos f(x) = q(x) (x a), niin a on polynomin f(x) nollakohta. Kääntäen, sovelletaan polynomien jakoyhtälöä jakajaan g(x) := x a. Tällöin f(x) = q(x) (x a)+r(x), missä jakojäännökselle on deg r(x) < deg(x a) = 1, joten r(x) on vakio =: b. Koska a on polynomin f(x) nollakohta, saadaan 0 = q(a) (a a) + b = b. Siis f(x) = q(x) (x a). Seuraus 5.7. Olkoot K kunta ja f(x) nollasta eroava muuttujan x K-kertoiminen polynomi. Tällöin polynomilla f(x) on enintään deg f(x) nollakohtaa. Todistus. Olkoon d := deg f(x). Jos d = 0, on f(x) = a 0 0, joten polynomilla f(x) on nolla nollakohtaa. Olkoon d > 0. Jos polynomilla f(x) ei ole nollakohtia, on väite tosi. Oletetaan nyt, että polynomilla f(x) on nollakohta a 1 K. Edellisen seurauksen nojalla on olemassa polynomi f 1 (x) siten, että f(x) = f 1 (x) (x a 1 ). Tällöin d = deg f(x) = deg f 1 (x) + deg(x a 1 ) = deg f 1 (x) + 1, joten deg f 1 (x) = d 1. Toistamalla tätä päättelyä löydetään a 2,..., a k K ja polynomit f 2 (x),..., f k (x) siten, että f(x) = f k (x) (x a 1 ) (x a k ). Tässä alkiot a j ovat polynomin f(x) nollakohtia ja deg f k (x) = d k, joten pitää olla k d. 40

5.3. Gaussin algoritmi primitiivisen alkion määräämiseksi. Seuraavassa alkion a kertalukua ryhmässä G merkitään ord G (a) tai lyhyesti ord(a). Lauseen 3.6 nojalla ryhmästä G valitun alkion a potenssien a k kertaluvut ovat enintään alkion a kertaluvun suuruisia. Etsittäessä äärelliselle kunnalla K primitiivistä alkiota, tarvitaan jokin menetelmä, jolla jo valitun alkion kertalukua voidaan nostaa. Seuraava lemma antaa idean siihen, miten kertaluku saadaan kasvamaan nopeimmin. Ryhmän laskutoimitus olkoon kertolasku, vaikka ryhmä oletetaankin kommutatiiviseksi (tulosta on tarkoitus soveltaa ryhmään (K, )). Lemma 5.8. Olkoot G äärellinen Abelin ryhmä ja a, b G siten, että niiden kertaluvut ovat keskenään jaottomat, syt(ord(a), ord(b)) = 1. Tällöin ord(a b) = ord(a) ord(b). Todistus. Olkoot n := ord(a), m := ord(b) ja k := ord(a b). Tällöin (a b) n m = a n m b n m = (a n ) m (b m ) n = e m e n = e, joten k n m. Toisaalta e = e n = (a b) n k = (a n ) k b n k = e k b n k = b n k, joten m n k. Koska syt(n, m) = 1, on m k. Vastaavalla tavalla todetaan, että n k. Koska syt(n, m) = 1, on n m k. Siis k = n m. Gaussin algoritmi antaa menetelmän, jolla löydetään jono alkioita a j K siten, että ord(a 1 ) < ord(a 2 ) <.... Koska alkioiden kertaluvut ovat kokonaislukuja ja kunnassa K on vain äärellisen monta alkiota, näin saatu jono päättyy alkioon, jonka pitää olla kunnan primitiivinen alkio. 1 Valitaan a 1 K, a 1 0. Olkoon t 1 := ord(a 1 ). 2 Jos t 1 = q 1, niin a 1 on kunnan K primitiivinen alkio. 3 Jos t 1 < q 1, valitaan b K \ a 1. Olkoon s := ord(b). Jos s = q 1, niin b on kunnan K primitiivinen alkio. 4 Jos s < q 1, määrätään luvut d ja e Z + siten, että d t 1, e s, syt(d, e) = 1 ja d e = pyj(t 1, s). Asetetaan a 2 := a t 1/d 1 b s/e ja t 2 := pyj(t 1, s). Vaihdetaan edellä alion a 1 tilalle a 2 ja luvun t 1 tilalle t 2, ja toistetaan kohdasta 2. Todistuksen sijasta tyydytään muutamaan selittävään kommentiin: (i) Alkion b kertaluku s ei voi olla luvun t 1 tekijä; muutoin olisi b t 1 = 1, jolloin b olisi yhtälön x t 1 1 = 0 juuri. Mutta tällä yhtälöllä on jo t 1 eri juurta a j 1, 1 j t 1, ja b siis kuuluisi joukkoon a 1. Tästä seuraa myös, että pyj(t 1, s) > t 1. (ii) Kohdan 4 väite luvuille d ja e on yleinen: Kun m Z + ja n Z +, niin on olemassa luvut d ja e siten, että d m, e n, syt(d, e) = 1 ja d e = pyj(m, n). Väite on helppo todistaa esimerkiksi aritmetiikan peruslauseen avulla (ja jätetään lukijan tehtäväksi). (iii) Kohdassa 4 alkion a t 1/d 1 kertaluku on d ja alkion b s/e kertaluku on e. Edellisen lemman nojalla näiden tulon kertaluku on d e = pyj(t 1, s) > t 1. 41

42 900 800 700 600 500 400 300 200 100 0 0 100 200 300 400 500 600 700 800 900 Kuva 5.1. Diskreetti eksponettifunktio kunnalle Z p, kun p = 997 ja g = 7. Kuvasta käy hyvin ilmi, että kun [A] p Z p on annettu (yakselilta), ei diskreetin logaritmin a (x-akselilta), jolle [A] p = [g] a p, löytäminen ole lainkaan ilmeistä. Kuvaan on merkitty pisteet (a, A), joille 445 A 455. 5.4. Diskreetti logaritmi. Olkoon p alkuluku. Edellä todistetun nojalla kunnalla Z p on primitiivinen alkio, t.s. on olemassa kokonaisluku g {1, 2,..., p 1} siten, että {[g] k p k Z} = Z p. Koska primitiivisen alkion kertaluku on p 1, on Z p = {[g] k p k {0, 1,..., p 2}}. Jokaiselle kokonaisluvulle A {1, 2,..., p 1} on olemassa yksi ja vain yksi a {0, 1,..., p 2} siten, että [A] p = [g] a p t.s. A g a mod p. Lukua a kutsutaan luvun A g-kantaiseksi diskreetiksi logaritmiksi; merkitään a =: dlog g A. (Yhtä hyvin, tai paremminkin voitaisiin sanoa, että luku a on alkion [A] p [g] p - kantainen diskreetti logaritmi, jolloin diskreettiä logaritmia olisi luonnollista merkitä a = dlog [g]p [A] p.) Kuvausta Z Z p, a [g] a p, on vastaavasti luonnollista kutsua diskreetiksi [g] p -kantaiseksi eksponenttifunktioksi. Huomaa, että tämä kuvaus on jaksollinen, jakson pituutena alkion [g] p kertaluku. Huomautus 5.9. Diskreetti eksponenttifunktio ja diskreetti logaritmifunktio ovat luonnollisia käsitteitä minkä tahansa sykliselle ryhmälle G = g. Jos virittävän alkion g kertaluku on d, on kuvaus Z G, a g a, d-jaksoinen diskreetti g-kantainen eksponenttifunktio, ja kuvaus G {1, 2,..., d}, A dlog g A = a, kun A = g a ja a {1, 2,..., d}, on g-kantainen diskreetti logaritmi. Eräs varsin tärkeä ryhmä saadaan

ns. elliptisistä käyristä, kun ne varustetaan näihin käyriin liittyvällä yhteenlaskulla. Katso [1, 12.2], [8, luku VI], [9, luku 6] tai [16]. Jos ryhmäksi valitaan additiivinen ryhmä (Z n, +), jolla on virittäjä g = [1] n, on diskreetti eksponenttifunktio kuvaus Z Z n, a a [1] n = [a] n. Alkion A Z n diskreetti logaritmi on a {1, 2,..., n}, jolle A = a [1] n. Ryhmän (Z n, +) muut virittäjät ovat g = [c] n, missä syt(c, n) = 1. Tälle kanta-alkiolle alkion A Z n diskreetin logaritmin määrääminen palautuu Eukleideen algoritmiin: pitää määrätä a {1, 2,..., n}, jolle A = a [c] n = [a] n [c] n, t.s. [a] n = [c] 1 n A. Se, että diskreetilla eksponenttifunktiolla ja diskreetillä logaritmifunktiolla on merkitystä salausmenetelmissä, perustuu siihen, että kunnan Z p tapauksessa diskreetin eksponenttifunktion laskeminen on helppoa (muista toistettu neliöinti), mutta diskreetin logaritmin määräämiseen ei tunneta nopeita menetelmiä. 5.5. Diffien ja Hellmanin avaintenvaihto. Kun Liisa ja Pentti haluavat sopia yhteisestä salausavaimesta, he voivat menetellä seuraavasti: Aluksi valitaan (suuri) alkuluku p ja kunnan Z p primitiivinen alkio γ := [g] p. Luku p ja alkio γ ovat julkisia suureita. Luvulta g voidaan olettaa, että 2 g p 2. Muistettekoon, että primitiiviselle alkiolle γ on voimassa {γ k k {0, 1,..., p 2}} = Z p = Z p \ {0}. Liisa valitsee satunnaisesti luvun a {0, 1,..., p 2} ja laskee A := γ a. Liisa pitää luvun a salaisena avaimenaan ja lähettää Pentille alkion A. Pentti valitsee satunnaisesti luvun b {0, 1,..., p 2} ja laskee B := γ b. Pentti pitää luvun b salaisena avaimenaan ja lähettää Liisalle alkion B. Liisa ja Pentti pystyvät nyt määräämään yhteisen salausavaimen: Liisa pystyy laskemaan B a = (γ b ) a = γ a b. Vastaavasti Pentti voi laskea A b = (γ a ) b = γ a b. Yhteinen salausavain on siis K = γ a b. On selvää, että Erkki pystyy saamaan selville Liisan ja Pentin yhteisen salausavaimen K, jos Erkki pystyy ratkaisemaan ns. diskreettilogaritmiongelman: Kun on annettuna kunnan Z p primitiivinen alkio γ ja C Z p, on määrättävä c {0, 1,..., p 2} siten, että γ c = C. Diskreettilogaritmiongelman ratkaiseminen ei ole välttämätöntä sille, että Erkki saisi selville Liisan ja Pentin yhteisen salausavaimen. Riittää, että Erkki pystyy ratkaisemaan Diffien ja Hellmanin ongelman: Kun on annettuna kunnan Z p primitiivinen alkio γ sekä alkiot A = γ a ja B = γ b, on määrättävä K = γ a b suureiden γ, A ja B avulla. On helppo todeta, että jos Erkki pystyy ratkaisemaan diskreettilogaritmiongelman, pystyy hän ratkaisemaan Diffien ja Hellmanin ongelman. Ei kuitenkaan tiedetä, voidaanko Diffien ja Hellmanin ongelma ratkaista muuten kuin ratkaisemalla diskreettilogaritmiongelma, t.s. laskemalla diskreettejä logaritmeja. 43

5.6. ElGamalin salain. W. Diffien ja E. M. Hellmanin avaintenvaihtomenetelmä on (kirjoittajan käsityksen mukaan) peräisin vuodelta 1976 ja on ensimmäinen julkisavaimen vaihtoon esitetty menetelmä. Siihen läheisesti liittyvä T. ElGamalin salausmenetelmä on vuodelta 1985. ElGamalin menetelmän hyvänä puolena on mm. se, että se soveltuu yhtä hyvin elliptisten käyrien avulla tapahtuvaan salaukseen kuin tässä esiteltävään kunnan Z p tilanteeseen. ElGamalin menetelmässä Liisa valitsee satunnaisesti luvun a {0, 1,..., p 2} ja laskee A := γ a. Liisan julkisavain on pari (γ, A) ja salainen avain luku a. Selväkielisten ja salattujen viestien joukko on Z p = {0, 1,..., p 1} (tässä [x] p Z p ja x Z samaistetaan). Kun Pentti haluaa lähettää Liisalle viestin m Z p, hän valitsee satunnaisesti luvun b {0, 1,..., p 2} ja laskee B := γ b. Penti salaa viestin m laskemalla c := A b m. Pentti lähettää Liisalle parin (B, c). Liisa avaa vastaanottamansa viestin (B, c) laskemalla m := (B a ) 1 c. Tässä esiintyvän käänteisalkion laskemiseen sijasta Liisa voi laskea m = B p 1 a c. Nimittäin B p 1 = (γ b ) p 1 = (γ p 1 ) b = 1 b = 1, joten B p 1 a = B p 1 B a = B a. Liisan laskema suure m alkuperäinen viesti m, sillä m = (B a ) 1 c = (γ b ) a A b m = (γ a ) b (γ a ) b m = m. Huomautus 5.10. Vaikka Diffien ja Hellmanin avaintenvaihtomenetelmä tuleekin tässä yhteydessä esiin lähinnä ElGamalin salausmenetelmän apuvälineenä, voidaan sitä käyttää yleisemminkin. Diffien ja Hellmanin avaintenvaihto mahdollistaa yhteisen salausavaimen K määräämisen. Kun avain K Z p tulkitaan bittijonoksi (b 1,..., b k ) Z k 2 (tietokoneelle se on valmiiksi sitä), voidaan bittijono (m 1,..., m k ) Z k 2 salata yksinkertaisesti komponenteittaisella Z 2 -yhteenlaskulla, (m 1,..., m k ) (m 1,..., m k ) (b 1,..., b k ) = (m 1 + b 1,..., m k + b k ). Tämän menetelmän etuihin kuuluu laskennallinen tehokkuus; käytetty komponenteittainen Z 2 -yhteenlasku (tietokoneelle bittikohtainen XOR), on tietokoneelle lähes ilmainen laskutoimistus. 44