Meer getallen - Nog steeds van belang voor

advertisement
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
Download