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

Samankaltaiset tiedostot
d Z + 17 Viimeksi muutettu

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

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

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

1 Lineaariavaruus eli Vektoriavaruus

Koodausteoria, Kesä 2014

802320A LINEAARIALGEBRA OSA I

2 j =

Koodausteoria, Kesä 2014

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

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

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

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

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

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

Koodausteoria, Kesä 2014

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

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Esko Turunen Luku 3. Ryhmät

Kanta ja Kannan-vaihto

Koodausteoria, Kesä 2014

Avaruuden R n aliavaruus

ja jäännösluokkien joukkoa

Lineaarikuvausten. Lineaarikuvaus. Lineaarikuvauksia. Ydin. Matriisin ydin. aiheita. Aiheet. Lineaarikuvaus. Lineaarikuvauksen matriisi

(2) C on joukko, jonka alkioita kutsutaan sala(kirjoite)tuiksi viesteiksi (engl. ciphertext);

MS-A0004/A0006 Matriisilaskenta

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

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

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Lineaarikuvauksen R n R m matriisi

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

Kanta ja dimensio 1 / 23

Determinantti 1 / 30

1 Matriisit ja lineaariset yhtälöryhmät

802320A LINEAARIALGEBRA OSA II

1 Sisätulo- ja normiavaruudet

a b 1 c b n c n

(1.1) Ae j = a k,j e k.

Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44

MAB3 - Harjoitustehtävien ratkaisut:

Luento 8: Epälineaarinen optimointi

MAB3 - Harjoitustehtävien ratkaisut:

2017 = = = = = = 26 1

Kuvaus. Määritelmä. LM2, Kesä /160

Ennakkotehtävän ratkaisu

7 Vapaus. 7.1 Vapauden määritelmä

Esko Turunen MAT Algebra1(s)

Päättelyn voisi aloittaa myös edellisen loppupuolelta ja näyttää kuten alkupuolella, että välttämättä dim W < R 1 R 1

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

802320A LINEAARIALGEBRA OSA III

Algebra I, harjoitus 5,

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

Matriisilaskenta, LH4, 2004, ratkaisut 1. Hae seuraavien R 4 :n aliavaruuksien dimensiot, jotka sisältävät vain

Johdatus matematiikkaan

Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.

Lineaariavaruudet. Span. Sisätulo. Normi. Matriisinormit. Matriisinormit. aiheita. Aiheet. Reaalinen lineaariavaruus. Span. Sisätulo.

Insinöörimatematiikka D

Lineaariset kongruenssiyhtälöryhmät

Koodausteoria, Kesä 2014

Lineaarinen yhtälöryhmä

MS-A0402 Diskreetin matematiikan perusteet

Insinöörimatematiikka D

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

Insinöörimatematiikka D

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

Ominaisarvo-hajoitelma ja diagonalisointi

Ominaisvektoreiden lineaarinen riippumattomuus

LUKU 3. Ulkoinen derivaatta. dx i 1. dx i 2. ω i1,i 2,...,i k

Johdatus tekoälyn taustalla olevaan matematiikkaan

Liite 2. Ryhmien ja kuntien perusteet

Latinalaiset neliöt ja taikaneliöt

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

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

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

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

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

ECC Elliptic Curve Cryptography

Luonnollisten lukujen ja kokonaislukujen määritteleminen

JAKSO 2 KANTA JA KOORDINAATIT

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

MS-C1340 Lineaarialgebra ja

Yhtenäistettyjen yhteenlaskukaavojen käyttö elliptiseen kryptosysteemiin kohdistuvan yksinkertaisen sivukanavahyökkäyksen torjunnassa

Ominaisarvot ja ominaisvektorit 140 / 170

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

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

Insinöörimatematiikka D

5 OMINAISARVOT JA OMINAISVEKTORIT

isomeerejä yhteensä yhdeksän kappaletta.

MS-C1340 Lineaarialgebra ja

Ortogonaaliprojektio äärellisulotteiselle aliavaruudelle

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Transkriptio:

6. Sovelluksia 6.1. Diffien ja Hellmanin avainten vaihto julkisavainsalauksessa. (Whitfield Diffie ja Martin E. Hellman (1976)) Oletetaan, että Liisa haluaa lähettää Pentille luottamuksellisen viestin. Liisa salakirjoittaa viestinsä, koska epäilee, että Erkki yrittää lukea kyseisen viestin. 14 Liisa käyttää viestin salaamiseen salausavainta e ja Pentti vastaavasti sen avaamiseen avausavainta d. Jos salausjärjestelmässä on aina d = e tai avausavain d on helposti laskettavissa, kun salausavain e tunnetaan, salausjärjestelmää kutsutaan symmetriseksi. Symmetrisessä salausjärjestelmässä Liisan ja Pentin pitää ennen viestinvaihto sopia salausja avausavaimista. Tämän avainten vaihtamisen turvallisuus on keskeinen ongelma symmetrisessä järjestelmässä. Epäsymmetrisessä salausjärjestelmässä d e ja avausavaimen d määrääminen salausavaimen e avulla (ilman erityisiä lisätietoja) on käytännöllisesti katsoen mahdotonta. Tällaisessä järjestelmässä salausavain e voidaan julkistaa. Jokainen, joka haluaa lähettää Pentille salakirjoitetun viestin, voi käyttää avainta e. Koska avausavaimen d määrääminen on mahdotonta, eivät muut (=Erkki) kuin ne, jotka tuntevat avaimen d, pysty avaamaan avaimella e salattuja viestejä. Tällaisessa järjestelmässä salausavainta e kutsutaan myös julkiseksi avaimeksi (tai julkisavaimeksi), avainta d salaiseksi avaimeksi ja järjestelmää julkisavainsalaukseksi. Diffien ja Hellmanin avaintenvaihtomenetelmä on julkisavainhenkinen, vaikka se sopii varsin hyvin symmetrisiin salausjärjestelmin. Kun Liisa ja Pentti haluavat sopia yhteisestä salausavaimesta, he voivat menetellä seuraavasti: Aluksi valitaan alkuluku p ja n Z + niin, että q := p n on riittävän suuri tekemään myöhempänä määriteltävän diskreetin logaritmin laskemisen käytännössä mahdottomaksi. Olkoon γ kunnan F q primitiivinen alkio. Luku q ja alkio γ ovat julkisia suureita. Muistettakoon, että primitiiviselle alkiolle γ on voimassa {γ k k {0, 1,..., q 2}} = F q = F q \ {0}. Liisa valitsee satunnaisesti luvun a {0, 1,..., q 2} ja laskee A := γ a. Liisa pitää luvun a salaisena avaimenaan ja lähettää Pentille alkion A. Pentti valitsee satunnaisesti luvun b {0, 1,..., q 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. 13 Viimeksi muutettu 6.10.2013. 14 Salausjärjestelmien kuvaamisessa käytetään usein apuna kolmea henkilöä : Liisa (engl. Alice), Pentti (engl. Bob) ja Erkki (eng. Eve eavesdrop). 36

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 F q primitiivinen alkio γ ja C F q, on määrättävä c {0, 1,..., q 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 F q 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. 6.2. Diskreetti logaritmi. Olkoon q = p n alkuluvun p positiivinen kokonaislukupotenssi. Aiemmin todistetun nojalla (ks. lause 5.7) kunnalla F q on primitiivinen alkio, t.s. on olemassa alkio γ F q siten, että {γ k k Z} = F q. Koska primitiivisen alkion kertaluku on q 1, on F q = {γ k k {0, 1,..., q 2}}. Jokaiselle alkiolle A F q on olemassa yksi ja vain yksi a {0, 1,..., q 2} siten, että A = γ a. Lukua a kutsutaan alkion A γ-kantaiseksi diskreetiksi logaritmiksi; merkitään a =: dlog γ A. Kuvausta Z F q, a γ a, on vastaavasti luonnollista kutsua diskreetiksi γ-kantaiseksi eksponenttifunktioksi. Huomaa, että tämä kuvaus on jaksollinen, jakson pituutena alkion γ kertaluku. Huomautus 6.1. Diskreetti eksponenttifunktio ja diskreetti logaritmifunktio ovat luonnollisia käsitteitä minkä tahansa sykliselle ryhmälle G = g = {g k k Z}. Jos virittävän alkion g kertaluku on d, on kuvaus Z G, a g a, d-jaksoinen ryhmän G diskreetti g-kantainen eksponenttifunktio, ja kuvaus G {0, 1, 2,..., d 1}, A dlog g A = a, kun A = g a ja a {0, 1, 2,..., d 1}, on ryhmän G 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 [11, 12.2], [14, luku VI], [13, luku 6] tai [15]. Jos ryhmäksi G 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 {0, 1, 2,..., n 1}, 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 {0, 1, 2,..., n 1}, 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 F q tapauksessa diskreetin eksponenttifunktion laskeminen on helppoa (seuraavaksi esiteltävän toistetun neliöinnin avulla), mutta diskreetin logaritmin määräämiseen ei tunneta nopeita menetelmiä. 37

38 900 800 700 600 500 400 300 200 100 0 0 100 200 300 400 500 600 700 800 900 Kuva 6.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. 6.3. Toistettu neliöinti. Diffien ja Hellmanin avaintenvaihtomenetelmässä avaimen γ a laskemiseksi valittu eksponentti e voi olla suurikin. Jos potenssi γ e lasketaan potenssin määrittelevän rekursion γ e := γ γ e 1, γ 1 := γ, avulla, tarvitaan e 1 kertolaskua. Laskemista voidaan nopeuttaa huomattavasti seuraavasti ([1, 4.3]). Yleisemmin olkoot R rengas ja γ R. 1 Esitetään luku e Z + kaksikantaisena muodossa e = 2 k + d k 1 2 k 1 + + d 1 2 + d 0, missä d k 1,..., d 1, d 0 {0, 1}. 2 Asetetaan β k := γ. 3 Kun j = k 1, k 2,..., 1, 0, asetetaan { β j := βj+1 2 γ, jos d j = 1, β j := βj+1, 2 muuten. Edellä lasketun jonon viimeinen alkio β 0 = γ e (todistus jätetään lukijan tehtäväksi; tätä varten kannattaa osoittaa, että β j = γ e/2j kaikille j = k, k 1,..., 0). Kun potenssi γ e lasketaan tällä algoritmilla, tarvitaan k = log 2 e neliöintiä ja enintään yhtä monta kertolaskua (log 2 e on luvun n kaksikantainen logaritmi). Kaikenkaikkiaan neliöintien ja kertolaskujen lukumäärä on enintään 2 log 2 e. Esimerkiksi, jos e = 10 100, tarvittaisiin potenssin määrittelevän rekursion mukaisesti laskettaessa

googolin verran kertolaskuja, mutta tässä esitetyllä toistetulla neliöinnillä päästään enintään 664 neliöinnillä ja kertolaskulla. 6.4. ElGamalin salain. (T. ElGamal (1985)) 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 F q tilanteeseen. ElGamalin menetelmässä Liisa valitsee satunnaisesti luvun a {0, 1,..., q 2} ja laskee A := γ a. Liisan julkisavain on pari (γ, A) ja salainen avain luku a. Selväkielisten ja salattujen viestien joukko on F q. Kun Pentti haluaa lähettää Liisalle viestin m F q, hän valitsee satunnaisesti luvun b {0, 1,..., q 2} ja laskee Pentti salaa viestin m laskemalla B := γ b. 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 q 1 a c. Nimittäin B q 1 = (γ b ) q 1 = (γ q 1 ) b = 1 b = 1, joten B q 1 a = B q 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. 6.5. Elliptiset käyrät. (V. Miller (1985) ja Neal Koblitz (1987)) Seuraavassa esitetään vain hyvin lyhyt ja heuristinen johdanto elliptisiin käyriin. Olkoon F kunta (joksi aluksi kannattaa ajatella tavallinen R). Olkoot a 1, a 2, a 3, a 4 ja a 6 F. Parametrien a 1,..., a 6 määräämä elliptinen käyrä E on yhtälön (6.1) y 2 + a 1 x y + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 määrittelemä tason F F osajoukko. Yhtälö (6.1) on lähes yleisin elliptisen käyrän määrittelemiseen käytetty yhtälö, ns. Weierstrassin yhtälö. Tätä yhtälöä voidaan yksinkertaistaa neliöön ja kuutioon täydentämällä. Kumpaankin täydentämiseen liittyy ongelmia yleisen kunnan tapauksessa, mikä nähdään helposti esimerkiksi kunnille F 2 n. Kunnan F 2 n karakteristika on kaksi, joten 2 x = 0 kaikille x F 2 n. Tästä seuraa, että kahdella jakaminen ei ole mahdollista, ja jos lauseke y 2 + a 1 x y + a 3 y haluttaisiin täydentää neliöksi tavalliseen tapaan, pitäisi muuttujan y kerroin a 1 x + a 3 esittää muodossa 2 1 2 (a 1 x + a 3 ). Ilman todistuksia mainittakoon, että yhtälö (6.1) voidaan sopivin muuttujan vaihdoin saattaa johonkin seuraavista muodoista: a) y 2 = x 3 + a 4 x + a 6, jos char F {2, 3}; 39

40 4 4 4 3 3 3 2 2 2 1 1 1 0 0 0-1 -1-1 -2-2 -2-3 -3-3 -4-2 -1 0 1 2 3 4-4 -2-1 0 1 2 3 4-4 -2-1 0 1 2 3 4 Kuva 6.2. Tasoon R 2 elliptiset käyrät y 2 = x 3 3 x+1, y 2 = x 3 3 x+2 ja y 2 = x 3 3 x + 3. 4 L 3 2 B A 1 0-1 -2-3 C -4-2 -1 0 1 2 3 4 Kuva 6.3. Elliptinen käyrä y 2 = x 3 3 x + 1, sen pisteet A ja B sekä C = A B. b) y 2 = x 3 + a 2 x 2 + a 6 tai y 2 = x 3 + a 4 x + a 6, jos char F = 3; c) y 2 + x y = x 3 + a 2 x 2 + a 6 tai y 2 + a 3 y = x 3 + a 4 x + a 6, jos char F = 2. Yksinkertaisuuden vuoksi jatkossa käyrän E oletetaan olevan yhtälön (6.2) y 2 = x 3 + a 4 x + a 6 määräämä, ja että char F {2, 3}. Elliptisten käyrien merkitys salausjärjestelmille piilee niiden ryhmästruktuurissa: elliptisen käyrän pisteille voidaan määritellä yhteenlasku, jota selvyyden vuoksi seuraavassa merkitään, ja että käyrä E varustettuna yhteenlaskulla muodostaa Abelin ryhmän.

Se, miten elliptisen käyrän pisteiden yhteenlasku määritellään, selviää kuvasta 6.3. Käyrän E määritelköön yhtälö (6.2). Olkoot A, B E. Oletetaan aluksi, että A B, ja että pisteitä A ja B yhdistävä suora leikkaa käyrän E kolmannessa pisteessä L. Piste C olkoon pisteen L kautta kulkevan y-akselin suuntaisen suoran ja käyrän E toinen leikkauspiste. Asetetaan A B := C. Ennenkuin selvitetään, millainen lauseke pisteellä C on, pari sanaa määritelmästä. Kun yhtälöön (6.2) sijoitetaan y = k x + b, saadaan muuttujalle x kolmannen asteen yhtälö. Tavanomaisessa tapauksessa tällaisella yhtälöllä on kolme keskenään erisuurta ratkaisua (tai: on kolme kompleksista ratkaisua, kun jokainen ratkaisu lasketaan kertalukunsa mukaan moninkertaisen juuren tapauksessa). Jos siis pisteitä A ja B yhdistävä suora ei ole y-akselin suuntainen, leikkaa k.o. suora käyrän E kolmessa pisteessä (ainakin, jos leikkaus lasketaan kertalukunsa mukaan; esimerkiksi, jos A = B eli jos suora on käyrän E tangentti, on piste kaksinkertainen). Vastaavasti useimmille käyrän pisteille L, y-akselin suuntainen, pisteen L kautta kulkeva suora leikkaa käyrän kahdessa pisteessä. (Kuvasta 6.3 löytyy kolme pistettä, joihin sijoitettuna pisteen L kautta kulkeva suora leikkaa käyrän E vain yhdessä kaksinkertaisessa pisteessä.) Selvitetään seuraavaksi, miten pisteen C = A B koordinaatit saadaan selville pisteiden A ja B koordinaattien avulla. Olkoot A = (x 1, y 1 ), B = (x 2, y 2 ), L = (x, y ) ja C = (x 3, y 3 ). Pisteiden A ja B kautta kulkevan suoran kulmakerroin on k = (y 2 y 1 )/(x 2 x 1 ) ainakin, kun x 2 x 1, ja suoran yhtälö on y y 1 = k (x x 1 ). Kun käyrän E yhtälöön (6.2) sijoitetaan y = k x+l, missä l := y 1 k x 1 = (y 1 x 2 y 2 x 1 )/(x 2 x 1 ), on piste (x, y) E, jos ja vain jos (k x + l) 2 = x 3 + a 4 x + a 6. Koska A = (x 1, y 1 ) E, B = (x 2, y 2 ) E ja L = (x, y ) E, jokainen luvuista x 1, x 2 ja x on kolmannen asteen polynomin x 3 (k x + l) 2 + a 4 x + a 6 juuri. Kun kolmannen asteen polynomilla on kolme keskenään erisuurta juurta x 1, x 2 ja x, ja polynomin johtava kerroin on yksi, on x 3 (k x + l) 2 + a 4 x + a 6 = (x x 1 ) (x x 2 ) (x x ). Vertaamalla toisen asteen termejä keskenään, saadaan Koska x 1 ja x 2 tunnetaan, saadaan k 2 + a 4 = (x 1 + x 2 + x ). x = k 2 x 1 x 2 ja y = k x + l. Pisteelle C = (x 3, y 3 ) on x 3 = x ja y 3 = y, t.s. 41 (6.3) (6.4) x 3 = k 2 x 1 x 2 ja y 3 = k x 3 l, missä k := y 2 y 1 x 2 x 1 ja l := y 1 x 2 y 2 x 1 x 2 x 1. Jos A = B, korvaataan pisteiden A ja B kautta kulkeva suora pisteen A kautta kulkevalla tangentilla, kunhan tangentti ei ole y-akselin suuntainen. Tangentin kulmakerroin k saadaan yhtälöstä (6.2) implisiittisellä derivoinnilla, k = (3 x 1 + a 4 )/(2 y 1 ). Sijoittamalla tangentin yhtälöön y = k x + l piste A = (x 1, y 1 ), saadaan l = y 1 k x 1.

42 Pisteen A A = C = (x 3, y 3 ) koordinaateille saadaan (6.5) x 3 = k 2 2 x 1 ja y 3 = k x 3 l, missä (6.6) k := 3 x 1 + a 4 2 y 1 ja l := y 1 k x 1. Edeltä: käyrä E varustettuna yhteenlaskulla muodostaa Abelin ryhmän. Tämä tarkoittaa, että kaikille käyrän pisteille A, B ja C on a) A B = B A (kommutatiivisuus); ja b) (A B) C = A (B C) (assosiatiivisuus). Kommutatiivisuus on helppo todeta. Sen sijaan assosiatiivisuuden osoittaminen on hankalaa (eikä kirjoittaja tiedä yhtään yleispätevää todistusta väitteelle). Mutta eräs tärkeä kohta on vielä täysin selvittämättä: mikä on käyräyhteenlaskun neutraalialkio O? Neutraalialkion O tarkempi tarkastelu veisi meidät kauas, joten tyydytään seuraavaan lyhyeen selitykseen: piste O on y-akselin suunnassa äärettömän kaukana oleva piste. 15 Edellä esitetyssä käyrän pisteiden yhteenlaskussa eräs tapaus on jäänyt käsittelemättä. Jos x 2 = x 1 ja y 2 = y 1 (kuvassa 6.3 pisteitä A ja B yhdistävä suora tai pisteen A kautta kulkeva tangentti on y-akselin suuntainen), asetetaan A B := O. Tästä saadaan myös pisteen A vasta-alkioksi B. Näin täydennettynä pari (E, ) on Abelin ryhmä, jonka yhteenlaskun neutraalialkio on piste O. Edellinen käyräyhteenlaskun määrittely perustuu paljolti kuvan tarjoamaan geometriaan tapauksessa F = R. Miten määrittely olisi tehtävä, jos kunta F on jokin muu kunta, esimerkiksi äärellinen kunta F q? Edellä pisteiden A = (x 1, y 1 ) ja B = (x 2, y 2 ) summan A B = C = (x 3, y 3 ) koordinaateille saatiin lausekkeet tavanomaisten rationaalisten laskutoimitusten avulla esitettynä. Nämä kaavat käyvät suoraan minkä tahansa kunnan tapauksessa! Olkoot nyt F äärellinen kunta F q (jonka karakteristika on > 3) ja E yhtälön (6.2) määrittelemä elliptinen käyrä, missä a 4, a 6 F q. Kun käyrältä kiinnitetään piste P 1 muodostavat sen monikerrat k P 1 := P 1 P 1, missä yhteenlaskettavia on k kpl, jos k Z +, k P 1 := ( k) ( P 1 ), jos k Z, ja 0 P 1 := O, syklisen ryhmän P 1. Koska F q F q on äärellinen joukko, on myös E äärellinen ja P 1 sen osajoukkona äärellinen. Lukijan tehtäväksi jätetään kerrata Diffien ja Hellmanin avaintenvaihtomenetelmä, Diskreetti logaritmiongelma ja ElGamlin salain, ja esittää näitä vastaavat käsitteet yms pisteen P 1 määräämän syklisen ryhmän tapauksessa. Kirjallisuudessa asiaa käsitellään usein nimellä Elliptic Curve Cryptography, lyh. ECC. Mitä etua elliptisistä käyristä on salausjärjestelmissä verrattuna esimerkiksi alussa käsiteltyjen äärellisen kunnan F q varaan rakentuviin Diffien ja Hellmanin avaintenvaihtomenetelmään ja ElGamlin salaimeen? Äärellisen kunnan F q tapauksessa ainoa parametri on luku q, kunnan alkioiden lukumäärä. Tärkeää on luvun q bittien lukumäärä, ei niinkään luvun q esityksessä muodossa q = p n olevien lukujen p ja n valinta. 15 Äärettömän kaukana olevien pisteiden kunnollinen määrittely kaipaa projektiivista tasoa P 2 (F ), jonka pisteet ovat kolmikoiden (x, y, z) F 3 \ {0} ekvivalenssiluokkia relaatiossa (x, y, z) (x, y, z ) : (x, y, z) = λ (x, y, z ) jollekin λ F \ {0}. Taso F 2 upotetaan projektiiviseen tasoon P 2 (F ) kuvauksella (x, y) [(x, y, 1)] = {λ (x, y, 1) λ F \ {0}}. Pisteen (x, y) F 2 suunnassa, äärettömän kaukana oleva piste on [(x, y, 0)] P 2 (F ).

43 Kuva 6.4. Funktion b B = β b 1/3 (log(b log 2)) 2/3 kuvaaja, eli elliptisen käyrän ja tavallisen äärellisen kunnan avulla toteutetun salausjärjestelmän lukujen q bittien lukumäärän vastaavuus. Elliptisten käyrien tapauksessa, vaikkapa vain yhtälön (6.2) tapauksessa, parametreja ovat kunnan F q alkioiden lukumäärä ja luvut a 4, a 6 F q. Joitain rajoituksia parametrien a 4 ja a 6 valintaan on. Esimerkiksi kuvassa 6.2 keskimmäinen käyrä ei ole hyvä; yhteenlaskun geometrisessa tarkastelussa käyrän leikkauskohdassa ei ole hyvin määriteltyä tangenttia. Keskeisimpiä heikkouksia kummassakin etsitään diskreetistä logaritmista. Kirjassa [12, I.3] mainitaan lyhyesti kaava B = β b 1/3 (log(b log 2)) 2/3, missä β := 2 c 0 /(log 2) 2/3 ja c 0 := (64/9) 1/3, kunnan F q salausmenetelmissä tarvittavien bittien lukumäärän b ja vastaavan turvan takaavien elliptisten käyrien kunnan F q bittien lukumäärän B väliseksi suhteeksi. Funktion B = B(b) kuvaaja on esitetty kuvassa 6.4. Elliptisille käyrille bittejä tarvitaan huomattavasti vähemmän, joten elliptisiin käyriin pohjautuvia salausmenetelmiä voidaan käyttää vähemmän laskentatehoa tarjoavissa laitteissa. Kuvassa 6.5 on äärellisen kunnan Z 997 elliptinen käyrä y 2 = x 3 x 6 (vasen kuva) ja osa valitun pisteen P 1 virittämää syklistä aliryhmää (oikea kuva). Kuva pyrkii vakuuttamaan lukijan siitä, että pisteiden P 1 ja P k = k P 1 avulla ei ole helppoa selvittää, mikä kerroin k on. Elliptisiä käyriä on tarkasteltu perusteellisemmin esimerkiksi kirjoissa [15], [11, 12.2], [14, luku VI], [13, luku 6], [1, 19.7, 20.6], [12], sekä varsinkin seuraavissa (joista ensin mainittuun kannattaa tutustua ensin): Joseph H. Silverman ja John Tate: Rational Points on Elliptic Curves, toinen painos, Undergraduate Texts in Mathematics, Springer, 1994; ja

44 900 800 700 600 500 400 300 200 100 0 100 200 300 400 500 600 700 800 900 Kuva 6.5. Elliptinen käyrä y 2 = x 3 x 6 äärellisen kunnan Z 997 suhteen. Vasempaan kuvaan on merkitty käyrän kaikki 1011 pistettä nollapistettä O lukuunottamatta. Oikean puoleiseen pisteet P 1 := (187, 379) ja sen monikerrat P k := k P 1, 1 k < 100, on merkitty numeroin, ja peräkkiset pisteet on yhdistetty janoin. Mikä on k, jos k P 1 = (524, 601)? Pisteelle P 1 on 506 P 1 = O (ja k P 1 O, kun 1 k < 506), joten pisteen P 1 kertaluku on 506. Joseph H. Silverman: The Arithmetic of Elliptic Curves, toinen painos, Graduate Texts in Mathematics, Springer, 1992.... in mathematics you don t understand things, you just get used to them. John von Neumann 6.6. BCH-koodaus. (R. C. Bose ja D. K. Ray-Chaudhuri (1960) ja A. Hocquenhem (1959)) Koodausteoria pyrkii tarjoamaan välineitä tiedonsiirrossa tapahtuvien virheiden tunnistamiseen ja automaattiseen korjaamiseen. Tarkastellaan paria yksinkertaista esimerkkiä. Tietokoneella esitettävän tiedon perusyksikkö on bitti, jonka arvona voi olla nolla tai yksi, ja bitit on tapana ryhmitellä kahdeksan bitin muodostamiksi tavuiksi. Tällaiset kahdeksan bitin jonot (b 7, b 6,..., b 1, b 0 ) voidaan tulkita luvuksi käyttämällä kaksikantaista lukujärjestelmää, (b 7, b 6,..., b 1, b 0 ) b 7 2 7 + b 6 2 6 + + b 1 2 + b 0. Lukuna yhtä tavua vastaa siis luvut 0, 1, 2,..., 2 7 +2 6 + +2+1 = 255. Tietokoneiden varhaiskaudella käytössä oli lähinnä ascii-merkistö, joka koostuu ohjausmerkeistä, numeroista, välimerkeistä ja kirjaista a za Z. Ääkköstöä ascii-merkistössä ei ole, ja merkistön esittämiseen riittävät seitsemän bitin b 0,..., b 6 avulla muodostetut bittijonot. Kahdeksas bitti b 7 = 0. Tätä kahdeksatta bittiä saatettiin käyttää tiedonsiirrossa tarkistusmerkkinä: Kun lähetetään merkki (b 6,..., b 0 ), lasketetaan b 7 := b 6 + + b 0 (modulo 2 tai bitit tulkitaan kunnan Z 2 alkioiksi. Tiedonsiirrossa vastaanotetusta

tavusta (b 7, b 6,..., b 0 ) tarkistetaan, onko b 7 = b 6 + + b 0, tai yhtäpitävästi pariteetintarkistusyhtälön b 7 + b 6 + + b 0 = 0 avulla. Tämä yhden tarkistusbitin lisäys pystyy havaitsemaan, jos siirrossa tapahtuu yksi virhe, mutta ei esimerkiksi kahta virhettä. Tarkastellaan hieman mutkikkaampaa pariteettibittien laskentatapaa. Oletetaan, että bitit lähetetään neljän jonoissa (b 0, b 1, b 2, b 3 ), ja että tarkistusbitit b 4, b 5 ja b 6 lasketaan kaavoilla (bitit tulkitaan taas kunnan Z 2 alkioiksi): (6.7) b 4 := b 0 + b 2 + b 3 b 5 := b 0 + b 1 + b 3 b 6 := b 0 + b 1 + b 2 tai yhtäpitävästi b 0 + b 2 + b 3 + b 4 = 0 b 0 + b 1 + b 3 + b 5 = 0 b 0 + b 1 + b 2 + b 6 = 0 Lähetettävä tavu on nyt (b 0,..., b 6 ). Tässä kuvaus (b 0,..., b 3 ) (b 0,..., b 6 ), Z 4 2 Z 7 2, voidaan esittää Z 2 -alkioisena matriisina 1 0 0 0 0 1 0 0 0 0 1 0 G := 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 Kun vastaanottaja saa bittijonon x = (x 0,..., x 6 ), hän voi tutkia bittijonon virheellisyyttä seuraavan pariteetintarkistusmatriisin avulla: H := 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 Nimittäin, bittijonolle x yhtälöparin (6.7) oikeanpuoleinen yhtälö on yhtäpitävä yhtälön Hx T = 0 kanssa, missä x T on rivivektorin x transpoosi eli vastaava sarakevektori. Tämä ns. Hammingin (7, 4)-koodi pystyy korjaamaan yhden bitin virheen. Jos b = (b 0,..., b 6 ) on oikea koodisana eli bittijono, jolle Hb T = 0, ja vastaanotettu bittijono on x = b + e j, missä e j on bittijono, jossa j.s komponentti on yksi ja muut nollia, niin Hx T = Hb T + He T j = He T j = matriisin H j.s sarake. Koska matriisin H sarakkeina ovat kaikki nollasta eroavat kolmen bitin jonot, voi vastaanottaja tarkistaa lasketusta vektorista Hx T, ns. vektorin x syndroomasta, mikä komponenteista x j on virheellinen. Virheen korjaaminen Z 2 -tapauksessa on helppoa. Tarkastellaan yleisempää tilannetta. Olkoon annettuna äärellinen kunta F q, 1 k < n, ja F q -alkioinen, n k-matriisi G. Oletetaan, että matriisin G sarakkeet ovat lineaarisesti riippumattomat. Vektorit u F k q vastatkoot Hammingin (7, 4)-koodin neljän bitin dataa ja vektorit Gu F n q koodisanoja, joihin matriisin G avulla on lisätty n k tarkistusmerkkiä. Lineaarinen (n, k)-koodi C on matriisin G kuva-avaruus, C = G(F k q), ja matriisi G puolestaan koodin C virittäjämatriisi. (n k) n-matriisi 45

H, jonka ydin ker H = {x F n q Hx = 0}, on sama kuin koodi C, on koodin C pariteetin tarkistusmatriisi. 16 Lukijalle jätetään tehtäväksi todeta seuraava Hammingin (7, 4)-koodin virittäjämatriisin ja pariteetin tarkistusmatriisin [ ] välisen yhteyden yleistys: Jos koodin virittäjämatriisi on muotoa G =, missä I Ik A k on k k-yksikkömatriisi ja A on (n k) k- matriisi, on koodilla pariteetin tarkistusmatriisi H = [ A I n k ]. Olkoon nyt C F n q lineaarinen (n, k)-koodi, G sen virittäjämatriisi ja H pariteetin tarkistusmatriisi. Kun koodisana c C siirretään häiriöllistä kanavaa pitkin ja vastaanottaja saa vektorin y F n q, muodostuu virhe z := y c. Jos virhe ei ole kovin suuri, voi vastaanottaja korjata virheen valitsemalla vektoria y lähimmän koodisanan. Tätä varten vektoreille x = (x 1,..., x n ), y = (y 1,..., y n ) F n q tarvitaan etäisyyden mittausväline. Määritellään Hammingin etäisyys (tai metriikka) asettamalla d(x, y) := niiden indeksien j lukumäärä, joille x j y j. Tällöin on metriikka siinä mielessä, että d toteuttaa ehdot (i) d(x, y) 0, ja d(x, y) = 0, jos ja vain jos x = y (definittisyys); (ii) d(x, y) = d(y, x) (symmetrisyys); ja (iii) d(x, z) d(x, y) + d(y, z) (kolmioepäyhtälö). Jos vektorin x = (x 1,..., x n ) F n q painoksi määritellään luku w(x) := niiden indeksien j lukumäärä, joille x j 0, niin d(x, y) = w(x y). Lineaariselle koodille C määritellään vielä minimietäisyys d min = d min (C) ja minimipaino w min = w min (C) asettamalla d min (C) := min{d(x, y) x, y C, x y} ja w min (C) := min{w(x) x, y C, x 0}. Tällöin d min (C) = w min (C). Jos nyt siirretyssä vektorissa y on enintään e virhettä, t.s. virhevektoreissa z on enintään e nollasta eroavaa komponenttia, on w(z) e eli d(y, c) e. Jos koodin C minimietäisyys d min 2e + 1, mille tahansa muulle koodisanalle c C on d(c, c) d min 2e + 1, joten vektorin y etäisyydelle on d(c, y) d(c, c) d(y, c) 2e + 1 e > e. Vastaanottaja pystyy siis korjaamaan kaikki enintään e virheen vektorit z valitsemalla vektoria y lähimmän koodisanan c. Lause 6.2. Olkoon C F n q lineaarinen (n, k)-koodi ja H sen pariteetin tarkistusmatriisi. Tällöin d min (C) = pienin k, jolle matriisin H k saraketta ovat lineaarisesti riippuvat. Todistus. Koodisanoja ovat vektorit c, joille Hc = 0. Olkoot k min väitteen oikean puolen luku ja h 1,... h n matriisin H sarakevektorit. Tällöin Hz = z 1 h 1 + +z n h n. Jos Hz = 0 ja z 0, on w(z) k min. Siis d min k min. 16 Moni koodausteorian kirja käyttää virittäjämatriisina tässä esitetyn matriisin G transpoosia. Lineaarikuvauksen u G u tilalla on tällöin u u G T. (Tässä rivivektoria u ja vastaavaa sarakevektoria u T on yksikertaisuuden vuoksi merkitty samalla tavalla.) 46

Toisaalta, kun k < d min, w(z) = k ja Hz = 0, on z = 0. Siis jokainen k < d min matriisin H sarakevektoria ovat lineaarisesti riippumattomat, joten k min d min. Seuraus 6.3. Jos matriisin H jokainen 2e sarakkeen osajoukko on lineaarisesti riippumaton, koodi C pystyy korjaamaan kaikki enintään e virheen vektorit. Hammingin (7, 4)-koodin pariteetin tarkistusmatriisin voidaan ajatella olevan muotoa [ α0 α 1... α 7 ] missä sarakevektorit α 0, α 1,..., α 7 tulkitaan kunnan F 2 3 alkioiksi. Seuraava lause antaa BCH-koodista erään erikoistapauksen: Lause 6.4. Olkoot α 0, α 1,..., α n 1 kunnan F 2 m nollasta eroavat alkiot (jossakin järjestyksessä), ja t Z +, 2t 2 m 2. Tällöin matriisi α 0 α 1... α n 1 α 0 3 α1 3... αn 1 3 H := α0 5 α1 5... αn 1 5.. α0 2t 1 α1 2t 1... αn 1 2t 1 on jokin lineaarisen (n, k)-koodin C Z n 2 pariteetin tarkistusmatriisi, missä k n m t. Tämä koodi pystyy korjaamaan t virhettä. Matriisi H ajatellaan tässä kuten Hammingin koodin tapauksessa: vaikka alkiot α j i ovat kunnan F 2 m alkioita, ne tulkitaan m pituisiksi bittijonoiksi, jotka puolestaan sijoitetaan matriisin H sarakkeisiin. Näennäisesti F 2 m-alkioinen, t n-kokoinen matriisi tulkitaan siis Z 2 -alkioiseksi mt n-matriisiksi. Koodin C määrittelee tietysti ehto C = ker H, t.s. c = (c 0,..., c n 1 ) Z n 2 on koodisana, jos Hc = 0 eli n 1 c i α j i = 0, j = 1, 3, 5,..., 2t 1. i=0 Pariteetin tarkistusmatriisissa rivivektoreiden tulisi olla lineaarisesti riippumattomia, mutta näin ei tässä tarvitse olla. Matriisia H käytetään lähinnä koodin C määrittelemiseen; lineaarisesti riippuvat rivit voidaan lopuksi poistaa. Kun char F 2 m = 2, on ( n 1 i=0 c i α j i yhtälöt ) 2 = n 1 i=0 c2 i (α j i )2 = n 1 i=0 c i α 2j i. Koodin C määrittelee siis yhtälailla n 1 c i α j i = 0, j = 1, 2,..., 2t, i=0 tai seuraava pariteetin tarkistusmatriisi H, α 0 α 1... α n 1 α 0 2 α1 2... αn 1 2 α H 0 := 3 α1 3... α 3 n 1.. α 0 2t 1 α1 2t 1... αn 1 2t 1 α0 2t α1 2t 1... αn 1 2t 47

Osoitetaan, että matriisissa jokainen 2t sarakevektorin osajoukko on lineaarisesti riippumaton. Väite seuraa tällöin lauseen edellä olevasta seurauksesta. Olkoo matriisi, joka saadaan valitsemalla mukaan 2t saraketta matriisista H, seuraava: β 1 β 2... β 2t β M := 1 2 β2 2... β2t 2.. β1 2t β2 2t... β2t 2t Tämä matriisi tunnetaan Vandermonden matriisina, ja sen determinantille on det M = β 1... β 2t (β j β i ). Koska alkiot β i ovat keskenään erisuuria ja nollasta eroavia, on det M 0. Matriisin M sarakkeet ovat tällöin lineaarisesti riippumattomat. Koodin väitetty virheenkorjaavuus seuraa nyt. Luvulle k esitetyn epäyhtälön selvittely sivuutetaan. Koodausteoriasta lisää: [1, luku 7], [16, luku 8] ja [17, BCH: luku 6]. i<j 48