Onderwerpen Basisbegrippen Meer getallen Priemfactoren Nog steeds van belang voor Security Delers en veelvouden Euclides Engelbert Hubbers Modulorekenen Optellen en vermenigvuldigen Delen Radboud Universiteit Nijmegen 10 september 2013 Stellingen Kleine stelling van Fermat Chinese Reststelling Wiskundige Structuren 10 september 2013 Meer getallen 1 / 38 Basisbegrippen (herhaling) Wiskundige Structuren 10 september 2013 Meer getallen 2 / 38 Basisbegrippen (herhaling) (2) Definitie • Natuurlijke getallen N Voorbeeld • 666 is positief. • Gehele getallen Z • De opvolger van 666 is 667. • Rationale getallen Q • 666 is even want 666 = 2 · 333. def • 666 is een drievoud want 666 = 3 · 222. • n is oneven = er bestaat een natuurlijk getal k waarvoor • Is 666 deelbaar door 37? Ja, want 666 = 18 · 37. n = 2k + 1 def • Is 9 een deler van 666? Ja, want 666 = 74 · 9. • n is deelbaar door m = er bestaat een natuurlijk getal k waarvoor n = km • Is 667 een priemgetal? Nee, want 667 = 23 · 29. def • n is een veelvoud van m = er bestaat een natuurlijk getal k • Is 59 een priemfactor van 666? Nee, want 649 = 11 · 59 en waarvoor n = km 708 = 12 · 59, dus 59 is geen deler van 666 en dus zeker geen priemfactor. def • n is een priemgetal = n ≥ 2 en de enige delers van n zijn 1 en n Wiskundige Structuren 10 september 2013 Meer getallen 3 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 4 / 38 Priemfactorontbinding Priemfactorontbinding (2) Vraag Maar hoe bepaal je nu zo’n priemfactorontbinding? Stelling (Priemstelling) Ieder natuurlijk getal n ≥ 2 kan geschreven worden als een product van priemgetallen. Bewijs Het bewijs gaat met inductie en wordt uitgesteld tot volgende week. Wiskundige Structuren 10 september 2013 Antwoord Met een eenvoudig algoritme. . . Algoritme 1 is n zelf al priem, dan ben je klaar 2 Meer getallen 5 / 38 Priemfactorontbinding (3) 1 9765 is duidelijk geen priemgetal. (Hoezo?) 2 De kleinste priemfactor van 9765 is 3 en 9765 = 3 · 3255. 3 3255 is duidelijk geen priemgetal. 4 De kleinste priemfactor van 3255 is 3 en 3255 = 3 · 1085. 5 1085 is duidelijk geen priemgetal. 6 De kleinste priemfactor van 1085 is 5 en 1085 = 5 · 217. 7 217 is geen priemgetal. 8 De kleinste priemfactor van 217 is 7 en 217 = 7 · 31. 9 31 is wel een priemgetal. 10 Dus de ontbinding van 9765 in priemfactoren is 3 · 3 · 5 · 7 · 31. 10 september 2013 zo niet, zij p dan de kleinste deler van n die ≥ 2 is: n = p · m 3 p is dan een priemgetal (hoezo?) 4 herhaal de stappen 1–3 met m Wiskundige Structuren 10 september 2013 Meer getallen 6 / 38 Delers en veelvouden Voorbeeld Schrijf 9765 als product van priemgetallen. Wiskundige Structuren 2 Definitie Zij n, m ∈ N en m 6= 0. def • n div m = het grootste natuurlijke getal a waarvoor ma ≤ n n Anders gezegd: m naar beneden afgerond def • n mod m = n − m · (n div m) Anders gezegd: de rest van n na deling door m Definitie Zij n, m ∈ N en n 6= 0 en m 6= 0. def • ggd(n, m) = de grootste gemeenschappelijke deler van n en m def • kgv(n, m) = het kleinste positieve gemeenschappelijke Meer getallen veelvoud van n en m 7 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 8 / 38 Delers en veelvouden (2) Bepaling ggd en kgv Algoritme (Naı̈ef) Zij n, m ∈ N met n 6= 0 en m 6= 0. Bereken ggd(n, m) en kgv(n, m). • 104 div 13 = 8 • 30 div 42 = 0 • 104 mod 13 = 0 • 30 mod 42 = 30 • ggd(104, 13) = 13 • ggd(30, 42) = 6 1 • kgv(104, 13) = 104 • kgv(30, 42) = 210 2 • 223 div 7 = 31 • 42 div 30 = 1 3 • 223 mod 7 = 6 • 42 mod 30 = 12 • ggd(223, 7) = 1 • ggd(42, 30) = 6 • kgv(223, 7) = 1561 • kgv(42, 30) = 210 4 5 Ontbind n in priemfactoren. Ontbind m in priemfactoren. Hebben n en m geen gemeenschappelijke priemfactoren, dan is ggd(n, m) = 1. Anders is ggd(n, m) het product van de gemeenschappelijke priemfactoren. En is kgv(n, m) het product van alle gevonden priemfactoren, waarbij de gemeenschappelijke factoren slechts éénmaal worden gebruikt. Opmerking In het dictaat staat dit algoritme op bladzijde 8 net iets te slordig opgeschreven; de bepaling van het kleinste gemene veelvoud is daar niet goed. Wiskundige Structuren 10 september 2013 Meer getallen 9 / 38 Bepaling ggd en kgv (2) = = = = 2 2 2 2 · 2 · · · 2 10 september 2013 Meer getallen 10 / 38 Bepaling ggd en kgv (3) Voorbeeld Bepaal ggd(1260, 234) en kgv(1260, 234). 1260 234 ggd(1260, 234) kgv(1260, 234) Wiskundige Structuren · 3 3 3 · 3 · · · · 3 3 3 3 · 5 · · 7 · 5 · 7 Algoritme (Euclides) Zij n, m ∈ N met n 6= 0 en m 6= 0. Bereken ggd(n, m). 13 · 13 = = 18 16380 1 Als m > n vervang dan m door m mod n. Vervang anders n door n mod m. 2 Bedenk dat deze vervanging de ggd niet verandert. 3 Bedenk dat het probleem dus eenvoudiger is geworden. 4 Is het nog te moeilijk, voer de reductie dan nog eens uit. Vraag Waarom termineert dit algoritme altijd? Antwoord Omdat er slechts eindig veel getallen kleiner zijn dan m en n, kun je nooit oneindig vaak m of n vervangen door zo’n kleiner getal. Wiskundige Structuren 10 september 2013 Meer getallen 11 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 12 / 38 Bepaling ggd en kgv (4) Bepaling ggd en kgv (5) Voorbeeld Bepaal ggd(1260, 234). Voorbeeld Bepaal kgv(1260, 234). 1 Vervang 1260 door 1260 mod 234. 1 Bereken eerst met Euclides ggd(1260, 234) = 18. 2 Bepaal ggd(90, 234). 2 3 Vervang 234 door 234 mod 90. Dan kgv(1260, 234) is het product van 1260 en 234, gedeeld door ggd(1260, 234): 4 Bepaal ggd(90, 54). 1260 · 234 ggd(1260, 234) 294840 = 18 = 16380 kgv(1260, 234) = 5 Vervang 90 door 90 mod 54. 6 Bepaal ggd(36, 54). 7 Vervang 54 door 54 mod 36. 8 Bepaal ggd(36, 18). 9 Nu is het makkelijk ggd(36, 18) = 18, dus ggd(1260, 234) = 18. Wiskundige Structuren 10 september 2013 Meer getallen 13 / 38 Lineaire combinatie 10 september 2013 Meer getallen 14 / 38 Lineaire combinatie (2) Voorbeeld Zoek α, β ∈ Z met ggd(1260, 234) = α · 1260 + β · 234 Stelling (Euclides) De ggd(n, m) is een gehele lineaire combinatie van n en m. Anders gezegd: er bestaan α, β ∈ Z waarvoor geldt (n, m) ggd(n, m) = αn + βm 10 september 2013 rest combinatie 18 = 0 · 36 + 1 · 18 18 = 54 − 1 · 36 18 = 0 · 36 + 1 · (54 − 1 · 36) 18 = −1 · 36 + 1 · 54 (90, 54) 36 = 90 − 1 · 54 18 = −1 · (90 − 1 · 54) + 1 · 54 18 = −1 · 90 + 2 · 54 (90, 234) 54 = 234 − 2 · 90 18 = −1 · 90 + 2 · (234 − 2 · 90) 18 = −5 · 90 + 2 · 234 (1260, 234) 90 = 1260 − 5 · 234 18 = −5 · (1260 − 5 · 234) + 2 · 234 18 = −5 · 1260 + 27 · 234 (36, 18) (36, 54) Bewijs Lees het algoritme van Euclides achterstevoren. Wiskundige Structuren Wiskundige Structuren Meer getallen 2 15 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 16 / 38 Modulorekenen: optellen en vermenigvuldigen Modulorekenen: optellen en vermenigvuldigen (2) Definitie • Als n een positief natuurlijk getal is, dan noemen we twee natuurlijke getallen gelijk modulo n als hun rest na deling door n hetzelfde is. def • a ≡ b (mod n) = a mod n = Eigenschappen: b mod n n|(a − b) 10 september 2013 x + z ≡ y + z (mod n) • x ≡ y (mod n) ⇒ x 2 ≡ y 2 (mod n) • x m ≡ (x mod n)m (mod n) (als m ∈ N) Meer getallen Bij optellen en vermenigvuldigen mag je dus ongestraft een a vervangen door een b die gelijk modulo n is! 17 / 38 Meer getallen Wiskundige Structuren 10 september 2013 Meer getallen 18 / 38 Modulorekenen: optellen en vermenigvuldigen (4) Voorbeeld • 15 ≡ 3 (mod 4) want 15 − 3 · 4 = 3 • 1234 ≡ 2 (mod 7) want 1234 − 176 · 7 = 2 • 2468 ≡ 4 (mod 7) want 1234 ≡ 2 (mod 7) en 2468 = 2 · 1234 en 4 = 2 · 2 • 4936 ≡ 8 (mod 7) want 1234 ≡ 2 (mod 7) en 4936 = 4 · 1234 en 8 = 4 · 2 • Dus 4936 ≡ 1 (mod 7) • Natuurlijk had je dit ook kunnen bedenken doordat 4936 − 705 · 7 = 1. • 56789 ≡ 5 (mod 7) want 56789 − 8112 · 7 = 5 • 70077626 ≡ 3 (mod 7) want 70077626 = 56789 · 1234 en 56789 · 1234 ≡ (56789 mod 7) · (1234 mod 7) (mod 7) dus 56789 · 1234 ≡ 5 · 2 (mod 7) dus 56789 · 1234 ≡ 10 (mod 7) dus 56789 · 1234 ≡ 3 (mod 7) • 8100 ≡ 1 (mod 7) want 8100 ≡ (8 mod 7)100 (mod 7) dus 8100 ≡ 1100 (mod 7) 10 september 2013 ⇒ • x · y ≡ (x mod n) · (y mod n) (mod n) Modulorekenen: optellen en vermenigvuldigen (3) Wiskundige Structuren • x ≡ y (mod n) • x − y ≡ (x mod n) − (y mod n) (mod n) Voorbeeld 10 ≡ 31 (mod 7) want 10 mod 7 = 3 en 31 mod 7 = 3 10 ≡ 31 (mod 7) want 10 − 31 = −21 en 7| − 21 26 ≡ −30 (mod 7) want 26 − −30 = 56 en 7|56 Wiskundige Structuren kx ≡ ky (mod n) • x + y ≡ (x mod n) + (y mod n) (mod n) gehele getallen gelijk modulo n als hun verschil deelbaar is door n. • a ≡ b (mod n) = ⇒ (want x 2 − y 2 = (x − y ) · (x + y ) en n|x − y ) • Als n een geheel getal ongelijk 0 is, dan noemen we twee def • x ≡ y (mod n) Zeven uitkomsten bij rekenen modulo 7: 0, 1, 2, 3, 4, 5, 6. optelling modulo 7 + 0 1 2 3 4 5 6 0 1 2 3 4 5 6 19 / 38 Wiskundige Structuren 0 1 2 3 4 5 6 1 2 3 4 5 6 0 10 september 2013 2 3 4 5 6 0 1 3 4 5 6 0 1 2 4 5 6 0 1 2 3 5 6 0 1 2 3 4 6 0 1 2 3 4 5 Meer getallen 20 / 38 Modulorekenen: optellen en vermenigvuldigen (5) Modulorekenen: optellen en vermenigvuldigen (6) Voor elke n ≥ 2 kunnen we dergelijke tabellen maken. vermenigvuldiging modulo 7 Wiskundige Structuren · 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 2 3 4 5 6 0 2 4 6 1 3 5 0 3 6 2 5 1 4 0 4 1 5 2 6 3 0 5 3 1 6 4 2 Definitie Zn staat voor de verzameling {0, 1, 2, . . . , n − 1} voor n ≥ 2 met een optelling en vermenigvuldiging modulo n. 0 6 5 4 3 2 1 10 september 2013 Meer getallen 21 / 38 Modulorekenen: optellen en vermenigvuldigen (7) · 0 1 2 3 4 5 0 1 2 3 4 5 0 0 0 0 0 0 Wiskundige Structuren 0 1 2 3 4 5 0 2 4 0 2 4 0 3 0 3 0 3 0 4 2 0 4 2 0 5 4 3 2 1 10 september 2013 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 2 4 6 1 3 5 0 3 6 2 5 1 4 0 4 1 5 2 6 3 Meer getallen 0 5 3 1 6 4 2 Meer getallen 22 / 38 Vraag Welke opmerkelijke verschillen zijn er te zien bij de vermenigvuldiging in Z6 en Z7 ? · 0 1 2 3 4 5 6 10 september 2013 Modulorekenen: optellen en vermenigvuldigen (8) vermenigvuldiging modulo 7 vermenigvuldiging modulo 6 Wiskundige Structuren Antwoord • Bij Z7 komt in elke rij (behalve de nulrij) en elke kolom (behalve de nulkolom) elk getal uit Z7 precies één keer voor. 0 6 5 4 3 2 1 • Bij Z6 kun je ook een 0 krijgen als uitkomst als je twee getallen ongelijk 0 met elkaar vermenigvuldigt. • Bij Z7 is er bij elk getal a 6= 0 een getal b 6= 0 met a · b ≡ 1 (mod 7), bij Z6 niet. Merk op dat 7 een priemgetal is en 6 niet! 23 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 24 / 38 Modulorekenen: delen Modulorekenen: delen (2) Stelling Zij p een priemgetal en zij a een van de getallen 1, 2, 3, . . . , p − 1. Dan zijn de getallen a, 2a, 3a, . . . , (p − 1)a allemaal verschillend modulo p. Gevolg Als p een priemgetal en a een van de getallen 1, 2, 3, . . . , p − 1, dan zijn de getallen a, 2a, 3a, . . . , (p − 1)a de getallen 1, 2, 3, . . . , p − 1 modulo p (mogelijk in andere volgorde). Bewijs Neem eens aan dat twee van die getallen ma en na gelijk zijn modulo p, met 1 ≤ m < n ≤ p − 1. Gevolg Als p een priemgetal is dan heeft in Zp elk getal a 6= 0 een inverse, dat wil zeggen er bestaat een getal b 6= 0 met a · b ≡ 1 (mod 7). Notatie b = a−1 . • Dan geldt p|(na − ma). • Dus p|(n − m)a. Gevolg In Zp met p priem kunnen we delen door getallen ongelijk 0. • Dus p|(n − m) of p|a, want p is priem. • Maar (n − m) ∈ {1, . . . , p − 2} en a ∈ {1, . . . , p − 1}. a = a · b −1 b • Maar p is geen deler van getallen in {1, . . . , p − 1}. als b 6= 0 • Tegenspraak, dus zulke m en n bestaan niet. Wiskundige Structuren 10 september 2013 Meer getallen 25 / 38 Modulorekenen: delen (3) / 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 Wiskundige Structuren 4 1 5 2 6 3 5 3 1 6 4 2 2 4 6 1 3 5 3 6 2 5 1 4 6 5 4 3 2 1 10 september 2013 10 september 2013 Meer getallen 26 / 38 Inverse Vraag Hoe bereken je de inverse van een getal a ongelijk 0 in Zp waarbij p een priemgetal is? vermenigvuldiging in Z7 deling in Z7 Wiskundige Structuren · 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 2 3 4 5 6 0 2 4 6 1 3 5 0 3 6 2 5 1 4 0 4 1 5 2 6 3 Meer getallen 0 5 3 1 6 4 2 Antwoord 1 Schrijf op grond van het algoritme van Euclides 1 als lineaire combinatie van a en p. (Waarom kan dat?) 0 6 5 4 3 2 1 2 27 / 38 Als 1 = α · p + β · a, dan is β mod p de inverse van a. (Waarom?) Wiskundige Structuren 10 september 2013 Meer getallen 28 / 38 Inverse (2) Inverse (3) Voorbeeld Wat is de inverse van 11601 in Z12347 ? (12347 is priem) Voorbeeld Wat is de inverse van 5 in Z37 ? Merk op dat 37 een priemgetal is. Dus zoek α en β met 1 = α · 37 + β · 5. (3, 2) 1=3−1·2 1=1·3−1·2 (14, 3) 2 = 14 − 4 · 3 1 = −1 · 14 + 5 · 3 (5, 2) 1=5−2·2 1=1·5−2·2 (31, 14) 3 = 31 − 2 · 14 1 = 5 · 31 − 11 · 14 (37, 5) 2 = 37 − 7 · 5 1 = −2 · 37 + 15 · 5 (76, 31) 14 = 76 − 2 · 31 1 = −11 · 76 + 27 · 31 (335, 76) 31 = 335 − 4 · 76 1 = 27 · 335 − 119 · 76 (411, 335) 76 = 411 − 1 · 335 1 = −119 · 411 + 146 · 335 (746, 411) 335 = 746 − 1 · 411 1 = 146 · 746 − 265 · 411 (11601, 746) 411 = 11601 − 15 · 746 1 = −265 · 11601 + 4121 · 746 Dus 15 is de inverse van 5 in Z37 . Controle: 15 · 5 = 75 en 75 ≡ 1 (mod 37). (12347, 11601) 746 = 12347 − 1 · 11601 1 = 4121 · 12347 − 4386 · 11601 Dus −4386 is de inverse van 11601 in Z12347 . Oftewel: 7961. Controle: 7961 · 11601 = 92355561 en 92355561 ≡ 1 (mod 12347). Wiskundige Structuren 10 september 2013 Meer getallen 29 / 38 Stellingen Wiskundige Structuren 10 september 2013 Meer getallen 30 / 38 Stellingen (2) Voorbeeld Bereken 3640 in Z13 . Volgens Fermat is 312 = 1 in Z13 . En 640 = 12 · 53 + 4. Verder op bord. . . Maar dan geldt in Z13 : Stelling (Kleine stelling van Fermat) Als p priem is en a is geen p-voud, dan geldt ap−1 ≡ 1 (mod p) Bewijs • In Zp zijn a, 2a, 3a, . . . , (p − 1)a allemaal verschillend. 3640 = 312·53+4 = 312·53 · 34 • Maar dan zijn dit precies de getallen 1, 2, 3, . . . , p − 1, maar = (312 )53 · 34 (waarschijnlijk) in andere volgorde. = 153 · 34 • Maar dan zijn de producten van die rijen gelijk aan elkaar: = 34 a · 2a · 3a · · · (p − 1)a = 1 · 2 · 3 · · · (p − 1) dus a p−1 = 81 · 1 · 2 · 3 · · · (p − 1) = 1 · 2 · 3 · · · (p − 1) dus = 3 ap−1 = 1 2 Wiskundige Structuren 10 september 2013 Meer getallen 31 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 32 / 38 Stellingen (3) Stellingen (4) Eerst bewijzen we dat er zo’n x bestaat. Stelling (Chinese Reststelling) Als ggd(n, m) = 1, dan heeft het stelsel vergelijkingen Bewijs • Omdat ggd(n, m) = 1 zijn er α en β met 1 = α · n + β · m. x ≡ a (mod n) x ≡ b (mod m) • Dus geldt precies één oplossing in de range 0 ≤ x < nm. Wiskundige Structuren 10 september 2013 α · n ≡ 0 (mod n) β · m ≡ 1 (mod n) en α · n ≡ 1 (mod m) β · m ≡ 0 (mod m) b · α · n ≡ 0 (mod n) a · β · m ≡ a (mod n) en b · α · n ≡ b (mod m) a · β · m ≡ 0 (mod m) • Neem dan x = (b · α · n + a · β · m) mod (nm). Die voldoet aan beide vergelijkingen en ook aan 0 ≤ x < nm. • Dus ook Meer getallen 33 / 38 Stellingen (5) Wiskundige Structuren 10 september 2013 Meer getallen 34 / 38 Stellingen (6) Nu nog bewijzen dat x de enige oplossing is: Gevolg Dus rekenen in Zmn komt op het zelfde neer als rekenen in Zm × Zn . Bewijs • Stel nu dat er een y 6= x is met 0 ≤ y < nm die voldoet aan y ≡ a (mod n) en y ≡ b (mod m). Kort door de bocht: Bij security problemen kun je zelf (relatief) makkelijk rekenen in Zp × Zq waarbij p en q (grote) priemgetallen zijn, maar de aanvaller moet rekenen met Zpq wat veel moeilijker is als je niet weet wat de priemfactorontbinding van pq is. • Zonder verlies van algemeenheid mogen we aannemen dat x < y , want anders verwisselen we x en y gewoon. • Dan is er een z met 0 < z < nm waarvoor geldt y = (x + z) mod (nm). • Maar dan geldt z ≡ 0 (mod n) en z ≡ 0 (mod m). • Dus n|z en m|z. Maar dan geldt nm|z omdat ggd(n, m) = 1. • Maar dat is in tegenspraak met 0 < z < nm. Dus bestaat er geen y 6= x met 0 ≤ y < nm die een oplossing is van het stelsel. • Dus x is de enige oplossing in de range 0 ≤ x < nm. Wiskundige Structuren 10 september 2013 Meer getallen 35 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 36 / 38 Stellingen (7) Huiswerk • Maak de opgaven 1.17, 1.19. 1.20, 1.22 en 1.24. Voorbeeld Bepaal x met 0 ≤ x < 300 zodanig dat • Lever ze leesbaar in in de inleverbak in vleugel 5 of lever ze in Blackboard als PDF in voor donderdag 12/09 10.30. x ≡ 7 (mod 12) x ≡ 13 (mod 25) en • NB. Indien je je huiswerk als PDF inlevert: zorg dan dat je naam ook in de PDF staat zodat wij na het printen van jullie werk ook meteen op het papier kunnen zien van wie het is. Dan 1 = −2 · 12 + 1 · 25. Neem x = (13 · −2 · 12 + 7 · 1 · 25) mod 300 = (−312 + 175) mod 300 = −137 mod 300 = 163 Controle: 163 ≡ 7 (mod 12) Wiskundige Structuren 10 september 2013 en 163 ≡ 13 (mod 25) Meer getallen 37 / 38 Wiskundige Structuren 10 september 2013 Meer getallen 38 / 38