3. Kongruenssit 3.1 Jakojäännös ja kongruenssi Tässä kappaleessa esitellään kokonaislukujen modulaarinen aritmetiikka (ns. kellotauluaritmetiikka), jossa luvut tyypillisesti korvataan niillä jakojäännöksillä, jotka saadaan kun luku jaetaan tietyllä vakiolla (ns. moduluksella). Nämä rakenteet ovat keskeisiä salausmenetelmille ja käytössä tästä eteenpäin koko opintojakson ajan (myös Osassa 2). Määritelmä 3.1 Kaksi lukua a ja b ovat keskenään kongruentteja (tai a on kongruentti luvun b kanssa) modulo m, jos m jakaa niiden erotuksen a - b, ts. a - b = q m, eräälle q Z. Tätä merkitään kirjoittamalla a b (mod m). Luku m on nimeltään modulus. Jakoalgoritmin (Lause 1.1) mukaan luvut a ja b voidaan esittää yksikäsitteisesti muodossa a = q 1 m + r 1 ja b = q 2 m + r 2, 0 r 1, r 2 < m. Tässä a - r 1 = q 1 m ja b - r 2 = q 2 m, joten Määritelmän 3.1 nojalla luku a on kongruentti jakojäännöksen r 1 kanssa ja luku b jakojäännöksen r 2 kanssa. Toisin sanoen on voimassa a r 1 (mod m) ja b r 2 (mod m), missä r 1 ja r 2 ovat ko. jakojäännökset modulo m. Lisäksi (3.1) a b (mod m) jos ja vain jos jakojäännökset r 1 ja r 2 ovat samat. Perustellaan (3.1) käyttäen edellä esitettyjä merkintöjä seuraavasti: a b (mod m) a - b = q m ( q 1 m + r 1 ) ( q 2 m + r 2 ) = q m r 1 r 2 = (q q 1 + q 2 ) m (tässä kerroin (q q 1 + q 2 ) Z) r 1 r 2 = 0 (koska 0 r 1, r 2 < m) r 1 = r 2 Näin ollen a b (mod m) täsmälleen silloin, kun luvuilla a ja b on sama jakojäännös modulo m. Mathematica-funktio Mod[a, m] antaa jakoalgoritmin a = q 1 m + r 1 mukaisen jakojäännöksen r 1 modulo m.
Salakirjoitus 2 Esimerkki 3.1 a = 36; m = 17; Mod[a, m] 2 a = 17 015; m = 17; Mod[a, m] 15 Todellakin 36 = 2*17 + 2 ja 17015 = 1000*17 + 15. Seuraavassa esimerkissä testataan ovatko kaksi suurehkoa lukua a ja b keskenään kongruentteja modulo m ( = 17): Esimerkki 3.2 m = 17; a = 3 456 789; b = 34 567 894; Mod[a - b, m] == 0 (* vp op palauttaa arvon True jos vp ja op ovat samat *) True Vastauksena saatiin siis, että nämä luvut a = 3456789 ja b = 34567894 todella ovat kongruentteja keskenään modulo m = 17, ts. a b (mod m). Näin on koska jakojäännös on = 0, kun a - b jaetaan luvulla m = 17 (ks. Määritelmä 3.1). Osoittautuu, että tässä tapauksessa a - b = -1830065*17. Tarkistetaan vielä toisella tavalla, että lukujen a ja b jakojäännökset ovat samat, kun ne jaetaan luvulla m = 17: Mod[a, 17] Mod[b, 17] 9 9 Molemmat jakojäännökset ovat siis = 9. Vielä voidaan laskemalla todeta, että a = 203340*17 + 9 ja b = 2033405 *17 + 9. Yleisesti jakojäännökset (mod m) ovat 0, 1, 2,..., m - 1. Jokainen kokonaisluku on siis kongruentti (mod m) täsmälleen yhden luvun 0, 1, 2,..., m - 1 kanssa. Kuten aiemmin kohdassa (3.1) todettiin, a b (mod m) täsmälleen silloin, kun luvuilla a ja b on sama jakojäännös r (mod m).
Salakirjoitus 3 Harjoituksia 13 Mitkä seuraavista kongruensseista ovat tosia? a) 19 1 (mod 9) b) 19 8 (mod 9) c) 18 0 (mod 9) d) 29 2 (mod 9) 14 Osoita, että a b (mod m) täsmälleen silloin, kun kokonaisluvuilla a ja b on sama jakojäännös modulo m. 3.2 Jäännösluokka Kokonaislukujen joukon Z alkiot jakautuvat erillisiin luokkiin siten, että samaan luokkaan kuuluvat luvut ovat kongruentteja keskenään (mod m) - toisin sanoen niillä on sama jakojäännös (mod m). Määritelmä 3.2 (Jäännösluokka) Luvun a määräämä jäännösluokka (mod m), merkitään [a], on joukko [a] = { x Z x a (mod m) } = { x Z x - a = q m, q Z } Esimerkki 3.3 Jäännösluokat (mod 2) ovat = { x Z x = a + q m, q Z }. [0] = { x Z x 0 (mod 2) } = { x Z x - 0 = q 2, q Z } = { x Z x = 2 q, q Z } = parilliset kokonaisluvut [1] = { x Z x 1 (mod 2) } = { x Z x - 1 = q 2, q Z } = { x Z x = 2 q + 1, q Z } = parittomat kokonaisluvut Jäännösluokkia (mod m) on m kappaletta ja ne ovat esimerkiksi [0], [1],..., [m - 1]. Huomaa, että [m] = [0], [m+1] = [1], jne. Lisäksi on voimassa: [a] = [b] a b (mod m). Esimerkki 3.4 Tarkastellaan kokonaislukujen jakautumista jäännösluokkiin modulo 5. Tässä tarvitsee kiinnittää huomio ainoastaan jakojäännökseen. Viidellä jaolliset luvut..., -10, -5, 0, 5, 10,... muodostavat jäännösluokan [0], koska niiden jakojäännös on nolla. Niiden lukujen esiintymistä lukusuoralla, joiden jakojäännös on 2, ts. jotka muodostavat jäännösluokan [2], on hahmoteltu alla:
Salakirjoitus 4..., -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,....... [2].... [2].... [2].... [2].... [2].... Kaikkiaan on viisi erilaista jäännösluokkaa. Ne ovat seuraavat: [0] = {..., -10, -5, 0, 5, 10,... } [1] = {..., -9, -4, 1, 6, 11,... } [2] = {..., -8, -3, 2, 7, 12,... } [3] = {..., -7, -2, 3, 8, 13,... } [4] = {..., -6, -1, 4, 9, 14,... } Määritelmä 3.3 Jäännösluokkien (mod m) muodostamasta joukkosta käytetään merkintää Z m. Esimerkki 3.5 Z 2 = {[0], [1]} jakojäännökset (mod 2) ovat 0 ja 1 Z 3 = {[0], [1], [2]} jakojäännökset (mod 3) ovat 0, 1 ja 2 Z 4 = {[0], [1], [2], [3]} jakojäännökset (mod 4) ovat 0, 1, 2 ja 3 Harjoituksia 15 Tarkastellaan kokonaislukujen jakautumista jäännösluokkiin modulo 4, ts. tarkastellaan joukkoa Z 4 = {[0], [1], [2], [3]}. Esitä Esimerkin 3.4 tavalla, mitkä luvut kuuluvat seuraaviin jäännösluokkiin. a) [0] b) [1] c) [2] d) [3]. 3.3 Täydellinen jäännössysteemi Määritelmä 3.4 Kokonaislukujen joukko {a 1, a 2,, a m } (m kpl) on täydellinen jäännössysteemi (complete residue system) modulo m, jos jokainen kokonaisluku on kongruentti täsmälleen yhden alkion a i, 1 i m, kanssa modulo m. Ts. joukko {a 1, a 2,, a m } on saatu ottamalla yksi luku kustakin Z m :n alkiosta. Yleisimmin käytettyjä täydellisiä jäännössysteemejä modulo m ovat joukot {0, 1,, m - 1} ja {1, 2,, m} (yhtä hyvin voitaisiin valita esim. {m, m + 1,, 2 m - 1}). Selvästi m kokonaislukua a i, 1 i m, muodostavat täydellisen jäännössysteemin modulo m jos ja vain jos jokaista paria (i, j), 1 i, j m, kohti pätee (3.2) a i a j (mod m) i = j. Kongruenssirelaatio (modulo m) määrittelee ekvivalenssirelaation (refleksiivinen, symmetrinen ja transitiivinen relaatio) kokonaislukujen joukossa Z. Täydellinen jäännössysteemi on ekvivalenssiluokkien (m kpl) edustajien muodostama joukko. Lemma 3.1 Olkoon k a k b (mod m) ja syt(k, m) = d. Tällöin a b (mod m/d).
Salakirjoitus 5 Todistus: Kirjoitetaan k = k ' d ja m = m' d, missä d = syt(k, m) ja siis syt(k ', m') = 1. Oletuksesta k a k b (mod m) seuraa Määritelmän 3.1 nojalla, että k a - k b = x m, ts. (k ' d) a - (k ' d) b = x (m' d), jollekin x Z. Ottamalla d 0 puolittain tekijäksi, saadaan k ' (a - b) = x m'. Koska syt(m', k ') = 1, seuraa Lemmasta 1.5, että m' (a - b), ts. a b (mod m'). Lemma 3.2 Olkoon {a 1, a 2,, a m } täydellinen jäännössysteemi modulo m ja olkoon syt(k, m) = 1. Tällöin {k a 1, k a 2,, k a m } on myös täydellinen jäännössysteemi modulo m. Todistus: Käytetään kriteeriä (3.2). Lemman 3.1 nojalla ehdosta k a i k a j (mod m) seuraa, että a i a j (mod m), josta edelleen seuraa, että i = j. Harjoituksia 16 Kertaa Lemman 3.1 todistus: Olkoon k a k b (mod m) ja syt(k, m) = d. Tällöin a b (mod m/d). 17 Kertaa Lemman 3.2 todistus: Olkoon {a 1, a 2,, a m } täydellinen jäännössysteemi modulo m ja olkoon syt(k, m) = 1. Tällöin {k a 1, k a 2,, k a m } on myös täydellinen jäännössysteemi modulo m. 3.4 Kongruenssien laskusääntöjä Seuraavassa lauseessa saadaan kongruensseille mukavia laskusääntöjä. Erityisesti kohtaa 4) tarvitaan hyvin usein tässä opintojaksossa. Lause 3.3 Olkoon m annettu positiivinen kokonaisluku. Kongruenssi (mod m) toteuttaa seuraavat ehdot: 1) a a (mod m) (refleksiivisyys) 2) Jos a b (mod m), niin b a (mod m) (symmetrisyys) 3) Jos a b (mod m) ja b c (mod m), niin a c (mod m) (transitiivisuus) 4) Jos a b (mod m), c d (mod m), r Z ja n Z +, niin seuraavat kongruenssit ovat voimassa: (i) (a ± c) (b ± d) (mod m) (ii) r a r b (mod m) (iii) a c b d (mod m) (iv) a n b n (mod m) 5) Jos k a k b (mod m) ja syt(k, m) = 1, niin a b (mod m). Todistus: 1) Koska a a = 0 = 0 m, niin määritelmän nojalla a a (mod m). 2) Jos a b (mod m), niin m a b, ts. a b = k m (k Z). Siis b a = ( k) m, ts. m b a, ts. b a (mod m). 3) Jos a b (mod m) ja b c (mod m), niin eräille k, l Z pätee
Salakirjoitus 6 a b = k m ja b c = l m. Nyt a c = (a b) + (b c) = ( k + l ) m, joten a c (mod m). 4) Olkoon a b (mod m), c d (mod m), r Z ja n Z +. Tällöin eräille k, l Z pätee a b = k m ja c d = l m. (i) Meillä on (a ± c) (b ± d) = (a b) ± (c d) = k m ± l m = ( k ± l ) m, ja siis (a ± c) (b ± d) (mod m). (ii) Tässä r a r b = r (a b) = r (k m) = (r k) m, ja siis r a r b (mod m). (iii) Edelleen a = b + k m ja c = d + l m. Näin ollen ac = (b + k m) (d + l m) = bd + (bl + kd + klm) m, joten ac bd = (bl + kd + klm) m, ja siis a c b d (mod m). (iv) Kun n = 1, on oletuksen a b (mod m) nojalla a n = a 1 = a b = b 1 = b n (mod m). Tehdään induktio-oletus, että a k b k (mod m), ts. oletetaan, että väite on tosi, kun n = k. Valitaan nyt kohdassa (iii) c = a k ja d = b k. Tällöin kohdan (iii) ja induktio-oletuksen nojalla saadaan: a k+1 = a(a k ) = ac bd = b(b k ) = b k+1 (mod m). Näin ollen väite on induktioperiaatteen nojalla tosi aina kun n Z +. 5) Tulos seuraa suoraan Lemmasta 3.1, koska tässä tapauksessa on d = syt(k, m) = 1. Kun [a] ja [b] Z m, voidaan määritellä (3.3) [a] + [b] = [a+b] [a] [b] = [a b] Osoitetaan, että nämä yhteen- ja kertolaskuoperaatiot ovat hyvin määriteltyjä, toisin sanoen laskutoimitukset kohdassa (3.3) ovat riippumattomia jäännösluokkien edustajista. Todistus: Edustakoot a 1 ja a keskenään samaa jäännösluokkaa, samoin b 1 ja b. Tällöin siis [a 1 ] = [a] ja [b 1 ] = [b], ts. a 1 a (mod m) ja b 1 b (mod m). Lauseen 3.3 (kohta 4) nojalla a 1 + b 1 a + b (mod m) a 1 b 1 a b (mod m). Näin ollen [a 1 + b 1 ] = [a + b] [a 1 b 1 ] = [a b] ja siis (Määr. 3.1) (Määr. 3.1) [a 1 ] + [b 1 ] = [a1 + b 1 ] = [a + b] = [a] + [b]
Salakirjoitus 7 (Määr. 3.1) (Määr. 3.1) [a 1 ] [b 1 ] = [a1 b 1 ] = [a b] = [a] [b]. Täten laskutoimitukset kohdassa (3.3) ovat riippumattomia jäännösluokkien edustajista ja määritely kohdassa (3.3) on ristiriidattomasti tehty. Esimerkki 3.6 Esitetään jäännösluokkien avulla joukkojen Z 2 ja Z 5 yhteen- ja kertolaskutaulut: Z 2 : + [0] [1] - - - [0] [0] [1] [1] [1] [0] [0] [1] - - - [0] [0] [0] [1] [0] [1] Z 5 : + [0] [1] [2] [3] [4] - - - - - - [0] [0] [1] [2] [3] [4] [1] [1] [2] [3] [4] [0] [2] [2] [3] [4] [0] [1] [3] [3] [4] [0] [1] [2] [4] [4] [0] [1] [2] [3] [0] [1] [2] [3] [4] - - - - - - [0] [0] [0] [0] [0] [0] [1] [0] [1] [2] [3] [4] [2] [0] [2] [4] [1] [3] [3] [0] [3] [1] [4] [2] [4] [0] [4] [3] [2] [1] Esimerkki 3.7 Ratkaise joukossa Z 5 = {[0], [1], [2], [3], [4]} yhtälö [3] x + [2] = [4]. Ratkaisu: [3] x + [2] = [4] + [3] [3] x + [2] + [3] = [4] + [3] Tässä [2] + [3] = [5] = [0] ja [4] + [3] = [7] = [2]. [3] x + [0] = [2] [3] x = [2] Edellisen Esimerkin 3.6 kertotaulun neljännen rivin mukaisesti on jäännösluokalla [3] kerrottaessa voimassa: [0] [1] [2] [3] [4] - - - - - - [3] [0] [3] [1] [4] [2] Näin ollen [3] [4] = [2], toisin sanoen [3] x = [2] täsmälleen silloin kun x = [4]. Huomautus Olkoon m anettu positiivinen kokonaisluku. Kirjallisuudessa luvun a Z edustamasta jäänösluokasta [a] Z m käytetään myös merkintää [a] m. Usein käytetään myös lyhyempiä alle- tai päälleviivausmerkintöjä a tai ā (modulo m). Kun jäännösluokilla lasketaan jatkuvasti, eikä sekaannuksen vaaraa ole, voidaan pelkällä luvulla merkitä sen edustamaa jäännösluokkaa. Siis esimerkiksi näin:
Salakirjoitus 8 (3.4) 4 + 4 = 3 (mod 5). Tämän salakirjoituskurssin Osassa 2 onkin usein käytännöllistä laskea kuten kohdassa (3.4). Tässä osassa kuitenkin merkitsemme mieluummin näin: 4 + 4 = 8 3 (mod 5) tai näin: [4] + [4] = [8] = [3] (mod 5). Esimerkki 3.8 Etsi jakojäännös, kun a) 2 2002 jaetaan luvulla 5 b) 3 3003 jaetaan luvulla 6 c) 5 4004 jaetaan luvulla 11 d) 44( 2 200 + 3 3333 ) jaetaan luvulla 7 Ratkaisu: Käytetään Lauseen 3.3 kohtaa 4). a) Lasketaan aluksi kantaluvun 2 perättäisiä potensseja. Tässä esimerkissä tulos saadaan hyvinkin helposti. 2 2 = 4 1 (mod 5) 2 2002 = 2 2 1001 ( 1) 1001 = 1 4 (mod 5) Jakojäännös on siis 4. Saman tuloksen voisi myös laskea esimerkiksi seuraavasti, jos ei halua käyttää negatiivisia lukuja laskuissa. Sillä käyttääkö negatiivisia vai positiivisia lukuja, ei sinäänsä ole merkitystä, kunhan vain luvut ovat kongruentteja keskenään. 2 2 = 4 (mod 5) 2 3 = 2 2 2 = 2 4 = 8 3 (mod 5) Huomaa, että yllä moduluksen 5 lisääminen tai vähentäminen ei vaikuta kongruenssiin. Miksi? 2 4 = 2 2 3 2 3 = 6 1 (mod 5) Nyt saadaan 2 2002 = 2 2+4 500 = 2 2 2 4 500 ( 1) 2 1 500 = 1 4 (mod 5) Jakojäännös on siis 4 kuten aluksi jo totesimmekin. b) 3 2 = 9 3 (mod 6) 3 3 = 3 3 2 3 3 3 (mod 6)
Salakirjoitus 9 Koska 3 n = 3 3 n-1, näemme induktiivisesti, että 3 n 3 (mod 6). Siis 3 3003 3 (mod 6). Jakojäännös on 3. c) Lasketaan aluksi kantaluvun 5 perättäisiä potensseja. 5 2 = 25 3 (mod 11) 5 3 = 5 5 2 5 3 = 15 4 (mod 11) 5 4 = 5 5 3 5 4 = 20 9 2 (mod 11) 5 5 = 5 5 4 5 ( 2) = 10 1 (mod 11) Nyt saadaan 5 4004 = 5 4+5 800 = 5 4 5 5 800 = 5 4 5 5 800 9 1 800 = 9 (mod 11) Jakojäännös on 9. d) Tässä siis 44( 2 200 + 3 3333 ) jaetaan luvulla 7. 44 = 6 7 + 2 2 (mod 7) 2 3 1 (mod 7) 2 200 = 2 2+3 66 = 2 2 2 3 66 = 2 2 2 3 66 2 2 (1) 66 = 4 1 = 4 (mod 7) 3 3 = 27 6 1 (mod 7) 3 3333 = 3 3 1111 ( 1) 1111 1 (mod 7) Siis 44( 2 200 + 3 3333 ) 2(4 1) = 2 3 = 6 (mod 7). Jakojäännös on 6. Harjoituksia 18 Kertaa Lauseen 3.3 kohdan 4 (iii) todistus: Olkoon m annettu positiivinen kokonaisluku, a b (mod m) ja c d (mod m). Tällöin a c b d (mod m). 19 Esitä joukkojen Z 8 ja Z 9 yhteen- ja kertolaskutaulut. 20 Ratkaise joukossa Z 7 = {[0], [1], [2], [3], [4], [5], [6]} yhtälö [2] x + [3] = [4]. 21 Etsi jakojäännös, kun a) 10 515 jaetaan luvulla 7 (5) b) 8 391 jaetaan luvulla 5 (2) c) 7 348 jaetaan luvulla 11 (9) d) 3 323 jaetaan luvulla 7 (5) e) 127 10 515 + 3 323 jaetaan luvulla 7 (3) Laske sopivasti jakojäännöksillä ja merkitse kaikki välivaiheet näkyviin. Oikea vastaus on merkitty valmiiksi sulkeiden sisään.
Salakirjoitus 10 22 Etsi jakojäännös, kun a) 2 203 jaetaan luvulla 5 (3) b) 3 4567 jaetaan luvulla 6 (3) c) 55 2 203 + 3 4567 jaetaan luvulla 7 (0) Laske sopivasti jakojäännöksillä ja merkitse välivaiheet näkyviin. Oikea vastaus on tässäkin merkitty valmiiksi sulkeiden sisään. 23 Oletetaan tunnetuksi tulos P(b) P(c) (mod m), kun P(x) = a 0 x n + a 1 x n-1 + + a n-1 x + a n ; a i Z; ja b c (mod m). Olkoon lisäksi q n-numeroinen kokonaisluku ja sen peräkkäiset numerot a 1, a 2,..., a n ; a i {0, 1,..., 9}. Osoita, että 9 q jos ja vain jos 9 (a 1 + a 2 + + a n ). Onko luku 987654321 jaollinen 9:llä?