4. Eulerin ja Fermat'n lauseet

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

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

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

Lukuteorian kertausta

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

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

2017 = = = = = = 26 1

1 Lukujen jaollisuudesta

Matematiikan mestariluokka, syksy

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

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

Primitiiviset juuret: teoriaa ja sovelluksia

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

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

Multiplikatiivisista funktioista

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

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

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

ALKULUKUJA JA MELKEIN ALKULUKUJA

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

LUKUTEORIAN ALKEET HELI TUOMINEN

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

LUKUTEORIA johdantoa

Diofantoksen yhtälön ratkaisut

811120P Diskreetit rakenteet

a ord 13 (a)

Multiplikatiiviset funktiot

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

ei ole muita välikuntia.

2. Eukleideen algoritmi

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

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

802354A Lukuteoria ja ryhmät Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Juha-Matti Tirilä, Antti Torvikoski, Topi Törmä

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

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

Äärellisesti generoitujen Abelin ryhmien peruslause

a b 1 c b n c n

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa

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

2 j =

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

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

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

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

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

4.3. Matemaattinen induktio

Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta

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.

Esko Turunen Luku 3. Ryhmät

Matematiikan tukikurssi, kurssikerta 1

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

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

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

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

Ensimmäinen induktioperiaate

Ensimmäinen induktioperiaate

Tenttiin valmentavia harjoituksia

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

Johdatus matematiikkaan

Tee konseptiin pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Lue ohjeet huolellisesti!

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

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

Shorin algoritmin matematiikkaa Edvard Fagerholm

Täydelliset totienttiluvut

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

Matematiikan tukikurssi

Induktio, jonot ja summat

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1

ALKULUVUISTA (mod 6)

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

Neljän alkion kunta, solitaire-peli ja

1. Esitä rekursiivinen määritelmä lukujonolle

MS-A0402 Diskreetin matematiikan perusteet

Todistusmenetelmiä Miksi pitää todistaa?

Testaa taitosi 1: Lauseen totuusarvo

Alkulukujen harmoninen sarja

Koodausteoria, Kesä 2014

Johdatus matemaattiseen päättelyyn

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Lyhyt johdatus alkeelliseen lukuteoriaan. Esa V. Vesalainen

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

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

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

c) 22a 21b x + a 2 3a x 1 = a,

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

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

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)

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

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

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

d Z + 17 Viimeksi muutettu

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

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

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

Transkriptio:

4. Eulerin ja Fermat'n lauseet 4.1 Alkuluokka ja Eulerin φ-funktio Yleensä olemme kiinnostuneita vain niistä jäännösluokista modulo m, joiden alkiot ovat suhteellisia alkulukuja luvun m kanssa. Näiden luokkien lukumäärä esitetään Eulerin φ-funktion arvona. Määritelmä 4.1 Jäännösluokka [a] (mod m) on alkuluokka (mod m), jos syt(a, m) = 1. Kaikkien alkuluokkien (mod m) joukolle käytetään merkintää Z m *. Siis Z m * = {[a] Z m syt(a, m) = 1}. Määritelmä 4. Eulerin φ-funktio (Euler's Totient Function) antaa arvonaan kokonaisluvun φ(m) = card( { 0 i < m syt(i, m) = 1 } ). Siis φ(m) ilmaisee, montako luvuista 0, 1,..., m - 1 on suhteellisia alkulukuja luvun m suhteen, ts. φ(m) on joukon Z m * alkioiden lukumäärä. Itse asiassa, aina kun m, luvun 0 voi jättää pois (syt(0, m) = m) ja tarkastella vain lukuja 1,..., m - 1. Huomaa, että φ(1) = card( { 0 i < 1 syt(i, 1) = 1 } ) = 1, koska syt(0,1) = 1. Vastaavasti φ(0) = card( {} ) = 0. Mathematicalla φ(m) voidaan laskea EulerPhi[m] -funktion avulla. Esimerkiksi m = 15; EulerPhi[m] 8 Vastaavat suhteelliset alkuluvut luvun m = 15 kanssa ovat: 1,, 4, 7, 8, 11, 13 ja 14. Myöhemmin näemme, kuinka funktio φ(m) voidaan efektiivisesti laskea. Lause 4.1 Kaikille positiivisille kokonaisluvuille m on voimassa: d m φ(d) = m. Merkintä d m φ(d) tarkoittaa yllä sitä, että muodostetaan jokaiselle luvun m jakajalle, ts. m:n tekijälle, arvo φ(d) ja lasketaan kaikkien näin saatujen arvojen φ(d) summa. Tarkastellaan vielä esimerkin avulla, mitkä kokonaisluvuista välillä [1, m] ovat niitä, jotka tuottavat Lauseen 4.1 summaan ko. termin φ(d), missä d m. Olkoon m = 15. Tällöin jakajat ovat 1, 3, 5 ja 15. Ne kahdeksan lukua (huom. φ(15) = 8), joiden suurin yhteinen tekijä luvun 15 kanssa on 1, ovat 1,, 4, 7, 8, 11, 13 ja 14. Neljällä ( = φ(5)) luvulla (3, 6, 9, 1) on syt = 3 (luvun 15 kanssa), kahdella ( = φ(3)) luvulla (5, 10) on syt = 5 ja yhdellä ( = φ(1)) luvulla (0) on syt = 15. Siis tässä d m φ(d) = φ(15) + φ(5) + φ(3) + φ(1) = φ(1) + φ(3) + φ(5) + φ(15)

Salakirjoitus = 1 + + 4 + 8 = 15. Lauseen 4.1 Todistus (1. tapa lyhyt, mutta kunnon keskittymistä vaativa tarkastelu): On siis osoitettava, että d m φ(d) = m aina kun m Z +. Oletetaan, että d m. Kirjoittamalla r = i d näemme, että niiden kokonaislukujen r, 0 r < m, missä syt(r, m) = d, lukumäärä on sama kuin lukujen i, missä 0 i < m ja syt i, m = 1, lukumäärä. Tämä luku on d d Määritelmän 4. mukaan φ m. d Toisaalta, d = syt(r, m) m kaikilla kokonaisluvuilla r, 0 r < m. Siis d m φ m = m. Tämä on ekvivalenttia sen d kanssa, mikä oli todistettavana. Todistus (. tapa pitempi, mutta tarkka ja ehkä valaiseva perustelu): Olkoon S = { (d, f) d m, 1 f d, syt(f, d) = 1 }. Esimerkiksi tapauksessa m = 1 joukkoa S esittää seuraava taulukko, jossa viimeiset numerot rivissä d tarkoittavat niiden lukujen f lukumäärää väliltä 1 f d, joille syt(f, d) = 1, ts. kyseessä ovat arvot φ(d). d \ f 1 3 4 5 6 7 8 9 10 11 1 φ(d) --- - - - - - - - - - - - - ---- 1 1 1 6 1 3 4 8 4 3 9 6 10 1 1 5 7 11 4 --- - - - - - - - - - - - - - - ---- 1 Tapauksessa m = 15 joukkoa S esittää taulukko: d \ f 1 3 4 5 6 7 8 9 10 11 1 13 14 15 φ(d) --- - - - - - - - - - - - - - - - ---- 1 15 1 3 5 10 5 3 6 9 1 4 15 1 4 7 8 11 13 14 8 --- - - - - - - - - - - - - - - - - - ---- 15 Joukon S määrittelyn nojalla S = d m φ(d). Lauseen 4.1 todistamiseksi tulee osoittaa, että S = m. (Huom. S card(s)) Konstruoidaan bijektio β: S N m, missä N m = {1,,..., m}. Olkoon pari (d, f) S annettu. Määritellään β(d, f) = f m / d.

Salakirjoitus 3 Yllä olevassa taulukossa rivin d ja sarakkeen f risteyksessä oleva luku on nimenomaan tämä β(d, f). Koska d m, niin arvot β(d, f) ovat kokonaislukuja. Lisäksi β(d, f) N m, koska 1 f d. Osoitetaan, että β: S N m on injektio. Olkoon β(d, f) = β( d', f' ). Tällöin f m / d = f' m / d', josta saadaan f d' = f' d. Koska f ja d ovat suhteellisia alkulukuja, samoin kuin f' ja d', nähdään, että d = d' ja f = f'. Siten β on injektio. Osoitetaan, että β: S N m on surjektio. Olkoon x N m annettu. Olkoon g x = syt(x, m) ja olkoon d x = m/g x, f x = x/g x. Selvästi d x ja f x ovat suhteellisia alkulukuja, muutoin on olemassa kokonaisluku k, jolle k d x ja k f x, ts. m k g x ja x k g x N +, ts. (k g x ) m ja (k g x ) x, mikä on ristiriita sen kanssa, että k g x > g x = syt(x, m). Siis β(d x, f x ) = f x m d x = f x m (m/g x ) = f x g x = x. Näin ollen β on surjektio. Kaiken kaikkiaan β: S N m on bijektio, joten S = m. Näin ollen Lause 4.1 on tosi. Harjoituksia 4 Määritä alkuluokat modulo m, ts. joukon Z m * alkiot sekä φ(m) tapauksissa m = 7 ja m = 1. Laske myös φ(46), φ(55), φ(81) ja φ(144). Lauseen 4.1 todistuksen (. tapa) taulukkoihin liittyviä laskelmia Mathematicalla (tämän Kappaleen 4.1. loppuosan voi halutessaan myös ohittaa) Clear[myBeta, mybetawithgcdtest]; mybeta[f_, d_, m_] := f * m / d; mybetawithgcdtest[f_, d_, m_] := If[GCD[f, d] 1 f d, mybeta[f, d, m], " "]

Salakirjoitus 4 m = 15; d = 1; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, d}] d = 1 ( 1 15 ) m = 15; d = 3; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, m}] // Transpose d = 3 1 3 4 5 6 7 8 9 10 11 1 13 14 15 5 10 m = 15; d = 5; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, m}] // Transpose d = 5 1 3 4 5 6 7 8 9 10 11 1 13 14 15 3 6 9 1

Salakirjoitus 5 m = 15; d = 15; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, m}] // Transpose d = 15 1 3 4 5 6 7 8 9 10 11 1 13 14 15 1 4 7 8 11 13 14 m = 1; Clear[h]; Join [{{"d\\f", ":", Range[m]} // Flatten}, {Table[, {m + }]}, Table[If[Mod[m, d] 0, {d, ":", Table[{myBetaWithGCDTest[f, d, m]}, {f, 1, m}]}, h[]] // Flatten, {d, 1, m}] // DeleteCases[#, _h] &] d\f : 1 3 4 5 6 7 8 9 10 11 1 1 : 1 : 6 3 : 4 8 4 : 3 9 6 : 10 1 : 1 5 7 11 Clear[myTableForPhi]; mytableforphi[m_] := ( Clear[h]; Join [{{"d\\f", ":", Range[m]} // Flatten}, {Table[, {m + }]}, Table[If[Mod[m, d] 0, {d, ":", Table[ {mybetawithgcdtest[f, d, m]}, {f, 1, m}]}, h[]] // Flatten, {d, 1, m}] // DeleteCases[#, _h] &])

Salakirjoitus 6 mytableforphi[15] d\f : 1 3 4 5 6 7 8 9 10 11 1 13 14 15 1 : 15 3 : 5 10 5 : 3 6 9 1 15 : 1 4 7 8 11 13 14 mytableforphi[5] d\f : 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 : 5 5 : 5 10 15 0 5 : 1 3 4 6 7 8 9 11 1 13 14 16 17 18 19 mytableforphi[13] d\f : 1 3 4 5 6 7 8 9 10 11 1 13 1 : 13 13 : 1 3 4 5 6 7 8 9 10 11 1 Seuraava Mathematican perusfunktioista rakennettu funktio laskee yhteen funktion f arvot f [d], missä d käy läpi kaikki ne arvot, jotka jakavat annetun luvun m. (@@ on lyhennysmerkintä funktiosta Apply ja funktiosta Map (multiply apply)) DivisorSum[f_, m_] := Plus @@ (f /@ Divisors[m]) Testataan tämän funktion avulla Lausetta 4.1. m = 15; DivisorSum[EulerPhi, m] 15 4. Supistettu jäännössysteemi Määritelmä 4.3 φ(m) kokonaisluvun muodostama joukko {r 1, r,, r φ(m) } on supistettu jäännössysteemi (reduced residue system) modulo m, jos jokainen kokonaisluku j, jolle syt( j, m) = 1, on kongruentti (täsmälleen) yhden luvun r i kanssa (1 i φ(m)).

Salakirjoitus 7 Supistettu jäännössysteemi voidaan helposti generoida seuraavien funktiomäärittelyjen avulla: CoPrimeQ[n_Integer, m_integer] := GCD[n, m] == 1 CoPrimeQ[36, 91] True CoPrimeQ[35, 91] False Todellakin yllä 7 35 ja 7 91. CoPrimes[n_Integer?Positive] := Select[ Range[n], CoPrimeQ[n, #] & ] CoPrimes[15] {1,, 4, 7, 8, 11, 13, 14} Saatu joukko on supistettu jäännössysteemi modulo 15. Lemmaa 3. vastaavasti saadaan seuraava tulos: Lemma 4. Olkoon {r 1, r,, r ϕ(m) } supistettu jäännössysteemi modulo m ja olkoon syt(a, m) = 1. Tällöin {a r 1, a r,, a r ϕ(m) } on myös supistettu jäännössysteemi modulo m. Tämän lemman avulla voidaan helposti todistaa, että supistetun jäännössysteemin jäännösluokat muodostavat ryhmän kertolaskun suhteen (multiplicative group). 4.3 Eulerin ja Fermat'n lauseet Lause 4.3 Eulerin lause Olkoot kokonaisluvut a ja m suhteellisia alkulukuja. Tällöin a φ(m) 1 (mod m). Voimme helposti tarkistaa tämän paikkansapitävyyttä konkreettisissa tapauksissa: m = 1 345; a = 11 111; GCD[m, a] EulerPhi[m] Mod[a^EulerPhi[m], m]

Salakirjoitus 8 1 6576 1 Eksponentteihin korotukset modulo joku kokonaisluku voidaan suorittaa paljon nopeammin käyttämällä Mathematican PowerMod[a, b, m] -funktiota, joka käyttää mahdollisimman vähän sisäisiä askelia laskiessaan a b modulo m: m = 13 456 789; a = 1 111 111 111; GCD[m, a] PowerMod[a, EulerPhi[m], m] 1 1 Lauseen 4.3 Todistus: Olkoon {r 1, r,, r φ(m) } supistettu jäännössysteemi modulo m. Lemman 4. nojalla r 1 r r φ(m) (a r 1 ) (a r ) a r φ (m) = a φ(m) r 1 r r φ(m) (mod m). Koska jokainen tekijä r i on suhteellinen alkuluku luvun m suhteen, voidaan Lauseen 3.3 kohdan 5 nojalla jakaa φ(m) vasemman ja oikean puolen kongruentit luvut luvulla r 1 r r φ(m) ( = i=1 ri ). Tämän tuloksena saadaan 1 a φ(m) (mod m). Olkoon p alkuluku. Koska jokainen kokonaisluku i, 1 i < p, on suhteellinen alkuluku luvun p suhteen, saadaan φ(p) = p - 1. Eulerin lauseen (a φ(m) 1 (mod m), kun syt(a,m) = 1) seurauksena saadaan a p-1 1 (mod p), josta edelleen Lauseen 3.3 kohdan 4 (ii) nojalla a p a (mod p) aina kun a ei ole luvun p monikerta. Toisaalta a p a (mod p) on triviaalisti voimassa, jos a on luvun p monikerta (koska tällöin p (a p - a)). Saadaan siis seuraava tulos: Lause 4.4 Fermat'n pieni lause Olkoon p alkuluku ja a kokonaisluku, joka ei ole luvun p monikerta. Tällöin a p-1 1 (mod p) Edelleen kaikille (vapaasti valituille) kokonaisluvuille a on voimassa a p a (mod p). Yksittäistapauksissa voidaan suorittaa testausta Mathematica-funktiolla PowerMod:

Salakirjoitus 9 Prime[10 000] (* saadaan 10 000. alkuluku *) 104 79 p = 104 79; a = 9 999 999; PrimeQ[p] PowerMod[a, p, p] Mod[a, p] True True Kuten olemme huomanneet, φ( p) = p - 1, kun p on alkuluku. Koska täsmälleen yksi jokaisesta p:stä (kpl) peräkkäisestä kokonaisluvusta on jaollinen luvulla p, saamme seuraavan vahvemman Eulerin φ-funktiota koskevan tuloksen: Lause 4.5 Jos p on alkuluku ja k Z +, niin φ p k = p k pk p = pk 1-1 p. Todistus: Jakojäännökset modulo p k ovat 0, 1,,..., p k - 1, joita on siis p k kappaletta. Näistä luvulla p jaollisia ovat luvut 0, p, p, 3p,..., p k-1-1 p, joita on p k-1-1 + 1 = p k-1 kappaletta. Näin ollen luvun p k kanssa suhteellisia alkulukuja on p k - p k-1 kappaletta. Siis φ p k = p k - p k-1 = p k pk p = pk 1-1 p. Harjoituksia 5 Todista (tai kertaa ajatuksella) Lause 4.4 (Fermat'n pieni lause): Olkoon p alkuluku ja a kokonaisluku, joka ei ole luvun p monikerta. Tällöin a p-1 1 (mod p) Edelleen kaikille (vapaasti valituille) kokonaisluvuille a on voimassa a p a (mod p). 6 Osoita Fermat'n pienen lauseen nojalla, että a) 198 1 (mod 199) b) 10 1 1 (mod 11) c) 10 5 10 (mod 11) 7 Kertaa Lauseen 4.5 todistus: Jos p on alkuluku ja k Z +, niin

Salakirjoitus 10 φ p k = p k pk p = pk 1-1 p. 4.4 Eulerin funktio ja kertolaskun säilyminen Määritelmä 4.4 Funktio f : N N on kertolaskun säilyttävä (multiplicative), jos jokaiselle kokonaislukuparille (m, n) pätee: syt(m, n) = 1 f (m n) = f (m) f (n). Lause 4.6 Eulerin funktio φ(m) on kertolaskun säilyttävä. Todistus (1. tapa): Olkoon syt(m, n) = 1 ja olkoot { a 1, a,, a φ(m) } sekä { b 1, b,, b φ(n) } supistettuja jäännössysteemejä modulo m (vastaavasti n). Riittää osoittaa, että φ(m) φ(n) kokonaislukua n a i + m b j, 1 i φ(m) ja 1 j φ(n), muodostavat supistetun jäänössysteemin modulo m n. On suhteellisen helppo nähdä, että kokonaisluvut n a i + m b j, 1 i φ(m) ja 1 j φ(n), ovat erillisiä modulo m n ja että ne ovat suhteellisia alkulukuja luvun m n kanssa. (Käytä Lemmaa 3. ja kohtaa (3.)). Tulee vielä todistaa, että k, jolle syt(k, m n) = 1, on kongruentti luvun n a i + m b j kanssa modulo m n jollekin 1 i φ(m) ja 1 j φ(n). Koska syt(k, m) = 1 ja syt(k, n) = 1, on Lemman 4. nojalla olemassa kokonaisluvut i ja j, 1 i φ(m) ja 1 j φ(n), joille k n a i (mod m) ja k m b i (mod n). Tästä seuraa, että molemmat m ja n jakavat luvun k - n a i - m b j, ts. k - n a i - m b j = m m 1 ja k - n a i - m b j = n n 1 joillekin m 1, n 1 Z. Koska m m 1 = n n 1 ja syt(m, n) = 1, todetaan Lemman 1.5 nojalla, että m n 1 ja n m 1, ts. m n m m 1 = n n 1. Tämä tarkoittaa sitä, että k - n a i - m b j, ts k n a i + m b j mod(m n). Lauseen 4.6 Todistus (. tapa): Olkoon syt(m, n) = 1. Jakojäännökset (mod mn) ovat m n jakaa luvun n kpl m kpl 0 1 n - 1 n n + 1 n + n + (n - 1) n n + 1 n + n + (n - 1) (m - 1) n (m - 1) n + 1 (m - 1) n + (m - 1) n + (n - 1) 0 (mod n) 1 (mod n) (mod n) (n - 1) (mod n) Kunkin pystyrivin luvut kuuluvat samaan jäännösluokkaan (mod n) ja kahden eri pystyrivin alkiot eri jäännösluokkiin (mod n). Täten on φ(n) pystyriviä, joiden kaikki luvut ovat suhteellisia alkulukuja luvun n suhteen. Koska syt(m, n) = 1, kunkin pystyrivin kaikki alkiot ovat keskenään epäkongruentteja (mod m), ts. k n + l k' n + l (mod m), sillä k n + l (k' n + l ) = (k k') n ei ole jaollinen luvulla m, jos k k', 0 k, k' m 1. Kussakin pystyrivissä on siis m keskenään epäkongruenttia lukua (mod m). Täten kussakin pystyrivissä on

Salakirjoitus 11 tarkalleen yksi alkio kustakin jäännösluokasta (mod m). Edelleen jokaisessa näistä pystyriveistä on φ(m) lukua, jotka ovat suhteellisia alkulukuja luvun m suhteen. Näin ollen on φ(n) φ(m) lukua, jotka ovat suhteellisia alkulukuja sekä luvun m että luvun n suhteen. Toisaalta näitä lukuja on φ(m n) kappaletta. Siis φ(m n) = φ(m) φ(n). Induktiolla todistetaan, että jos luvut m 1, m,..., m k ovat pareittain suhteellisia alkulukuja, niin φ(m 1 m m k ) = φ(m 1 ) φ(m ) φ(m k ). Esimerkki 4.1 (Harjoitus) Etsi alla olevasta taulukosta kokonaisluvun 10 kaikki alkuluokat (edustajat). Käy läpi Lauseen 4.6 todistus yksittäistapauksessa: φ(10) = φ(8 15) = φ(8) φ(15) = 4 8 = 3. Ensimmäinen kyseeseen tuleva sarake on tehty malliksi. Merkitse myös näkyviin poimittavien lukujen (merkitään neliöillä) edustamat alkuluokat (tai ainakin osa niistä) modulo 8 ja modulo 15. Table[Range[0, 7] + i * 8, {i, 0, 14}] 0 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 33 34 35 36 37 38 39 40 41 4 43 44 45 46 47 48 49 50 51 5 53 54 55 56 57 58 59 60 61 6 63 64 65 66 67 68 69 70 71 7 73 74 75 76 77 78 79 80 81 8 83 84 85 86 87 88 89 90 91 9 93 94 95 96 97 98 99 100 101 10 103 104 105 106 107 108 109 110 111 11 113 114 115 116 117 118 119 Lause 4.7 Olkoon m = p 1 k 1 p k p r k r luvun m esitys erisuurten alkulukujen p 1, p,..., p r tulona. Tällöin φ(m) = m 1-1 p 1 1-1 p 1-1 p r, toisin sanoen φ(m) = m p alkuluku, p m 1-1 p Todistus: Yhdistä Lause 1.7 (aritmetiikan peruslause), Lause 4.5 ja Lause 4.6. Yksityiskohdat jätetään harjoitustehtäväksi.

Salakirjoitus 1 Esimerkki 4. Lasketaan φ(3000). Koska 3000 = 3 3 5 3, saadaan Lauseen 4.7 nojalla φ(3000) = 3000 1-1 1-1 3 1-1 5 = 3000 1 3 4 5 = 800. Siis luvuista 0, 1,,..., 999 on suhteellisia alkulukuja luvun 3000 suhteen tarkalleen 800 kappaletta. Samoin alkuluokkia (mod 3000) on 800. Mathematica-funktioden Length ja EulerPhi sekä aiemmin määrittelemämme CoPrimes -funktion avulla (ks. myös Apply) voidaan myös testata Lausetta 4.7: m = 100; Length[CoPrimes[m]] EulerPhi[m] m * Apply Times, Table If PrimeQ[i] && IntegerQ m i, 1-1, 1, {i,, m} i 40 40 40 Harjoituksia 8 Täydennä Esimerkin 4.1 taulukko, ts. etsi alla olevasta taulukosta kokonaisluvun 10 kaikki alkuluokat (edustajat). Käy läpi Lauseen 4.6 todistus yksittäistapauksessa: φ(10) = φ(8 15) = φ(8) φ(15) = 4 8 = 3. Ensimmäinen kyseeseen tuleva sarake on tehty malliksi. Merkitse myös näkyviin poimittavien lukujen (merkitään neliöillä) edustamat alkuluokat (tai ainakin osa niistä) modulo 8 ja modulo 15.

Salakirjoitus 13 0 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 33 34 35 36 37 38 39 40 41 4 43 44 45 46 47 48 49 50 51 5 53 54 55 56 57 58 59 60 61 6 63 64 65 66 67 68 69 70 71 7 73 74 75 76 77 78 79 80 81 8 83 84 85 86 87 88 89 90 91 9 93 94 95 96 97 98 99 100 101 10 103 104 105 106 107 108 109 110 111 11 113 114 115 116 117 118 119 9 Laske Esimerkin 4. tavalla φ(11000). Kuinka monta luvuista 0, 1,,..., 10999 on suhteellisia alkulukuja luvun 11000 suhteen, ts. kuinka monta alkuluokkaa on modulo 11000? 4.5 Suurien potenssien nopea laskeminen: Eulerin lause ja peräkkäiset neliöönkorotukset Tarkastellaan kappaleen 4 lopuksi Eulerin funktion φ käyttämistä suurien potenssien a f (mod m) nopeassa laskemisessa, kun syt(a, m) = 1. Jakoalgoritmin nojalla f = q φ(m) + r, 0 r < φ(m). Eulerin lauseen nojalla a φ(m) 1 (mod m), joten a f = a q φ(m)+r = (a φ(m) ) q a r a r (mod m). Olkoon luvun r binääriesitys r = e k k + e k-1 k-1 + + e 1 + e 0, e i {0,1}, e k = 1. Lasketaan peräkkäisillä neliöönkorotuksilla seuraavat jäännösluokkat [a 1 ], [a ],..., [a k ] (mod m). Edustajiksi

Salakirjoitus 14 valitaan itseisarvoltaan pienimmät mahdolliset luvut tai yksinkertaisesti jakojäännökset väliltä 0,..., m - 1: a 1 a (mod m) a a 1 (mod m) a 3 a (mod m) ( a = a 4 = a (mod m)) ( a = a = a 3 (mod m)) a k a k-1 (mod m) ( a k-1 = a k-1 = a k (mod m)). Saadaan siis a f a r = a e k k +e k-1 k-1 + + e +e 1 +e 0 = a e k k a e k-1 k-1 a e a e 1 a e 0 = a k e k a k-1 e k-1 a e a e1 a e 0 (mod m), toisin sanoen (4.1) a f (a k ) e k (ak-1 ) e k-1 (a ) e (a1 ) e 1 a e 0 (mod m) josta a f (mod m) on nopeasti laskettavissa. Esimerkki 4.3 Lasketaan 17 17 850 989 (mod 541). Tässä on siis kyseessä tapaus a f (mod m), jossa a = 17 ja m = 541 ovat alkulukuja. Täten syt(a, m) = 1. Edelleen φ(m) = 540, f = 17850989 = 33057 540 + 09, missä jakojäännöksen r = 09 binääriesitys on r = 11 010 001. Kertoimet e i ; i = 0, 1,..., 7 (= k); esityksessä r = e k k + e k-1 k-1 + + e 1 + e 0, ovat siis seuraavat: e 0 = e 4 = e 6 = e 7 = 1 ja e 1 = e = e 3 = e 5 = 0. Lasketaan peräkkäisillä neliöönkorotuksilla lukuja a 1, a,... kohdan (4.1) mukaista esitystä varten: a = 17 e 0 = 1 a 1 = a = 17 = 89 (mod 541) e 1 = 0 a = a 1 = 89 = 8351 07 (mod 541) e = 0 a 3 = a 07 = 4849 110 (mod 541) e 3 = 0 a 4 = a 3 110 = 1100 198 (mod 541) e 4 = 1 a 5 = a 4 198 = 3904 5 (mod 541) e 5 = 0 a 6 = a 5 5 = 63504 07 (mod 541) e 6 = 1 a 7 = a 6 07 = 4849 110 (mod 541) e 7 = 1 Nyt kohdan (4.1) ja Lauseen 3.3 (kohta 4) nojalla: 17 17 850 989 (a 7 ) e 7 (a6 ) e 6 (a ) e (a1 ) e 1 a e 0 (110) 1 (07) 1 (5) 0 (198) 1 (110) 0 (07) 0 (89) 0 (17) 1 = 110 07 1 198 1 1 1 17 = (110 07) (198 17) (voidaan ryhmitellä vaikkapa näin)

Salakirjoitus 15 = 770 3366 48 10 = 5760 350 (mod 541) 17 850 989 Vaikka 17 on erittäin suuri luku (siinä on lähes miljoonaa numeroa), tarvittiin laskelmissa vain Eulerin lausetta ja 7 peräkkäistä neliöön korotusta sen selville saamiseen, että 17 17 850 989 350 (mod 541). Matemaattisissa tietokoneohjelmissa peräkkäisten neliöönkorotusten ideaa käytetään luonnollisesti hyväksi suurten lukujen moduloaritmetiikassa. Harjoituksia 30 Laske 17 1785 (mod 47) käyttämällä Eulerin lausetta ja peräkkäisiä neliöönkorotuksia.