12. Les 12 Algoritme van Euclides

Les 12 Algoritme van Euclides

Inhoud van les 12: Algoritme van Euclides

12.1 Deler, priemdeler en priemfactor
12.2 Gemene delers
12.3 De grootste gemene deler
12.4 Algoritme van Euclides
12.5 Het algoritme van Euclides en Excel

12.1 Deler, priemdeler en priemfactor

Een geheel getal a is een deler van een geheel getal b als het getal a precies een geheel aantal keerin het getal past. Meer wiskundig: een geheel getal a is een deler van een geheel getal b als er eengeheel getal k is, zodanig dat er geldt a*k b

In de wiskunde is er een notatie voor "deler zijn van". Deze notatie is een verticale rechte streep: |. Wanneer je schrijft b, bedoel je dus dat een deler is van b.

Het getal is een priemdeler van b als a zelf een priemgetal is en als je door kunt delen. Voor het vervolg van de module is het belangrijk dat je jezelf er eerst van overtuigt dat je het begrippriemdeler goed beheerst. Op de sub-pagina staat een aantal opgaven over delers en priemdelersVoer deze eerst uit voor je verder gaat.

In de moderne cryptografie zijn priemgetallen erg belangrijk. Dit komt doordat het voor producten van twee heel grote priemgetallen van bijvoorbeeld elk 150 cijfers lang, heel erg moeilijk is de priemfactorontbinding te bepalen, anders gezegd is het nauwelijks mogelijk te ontdekken hoe het product van de vermenigvuldiging tot stand is gekomen. Van de priemgetallen die nodig zijn voor moderne cryptografie zijn er heel veel bekend. Zoveel zelfs dat je ze niet allemaal kunt gaan proberen om een ontbinding van m te vinden. Veel grotere priemgetallen vinden van bijvoorbeeld miljoenen cijfers lang, is niet eenvoudig. De grootste bekende priemgetallen zijn Mersenne-priemgetallen, genoemd naar de Franse wiskundige Marin Mersenne. Deze priemgetallen zijn van de vorm 2p-1, waarbij p een priemgetal is. Maar niet alle getallen van deze vorm zijn priemgetallen. Voor getallen van deze vorm bestaan testen om te onderzoeken of ze priem zijn.

Klik hier om naar de site te gaan.

 

Leesactiviteit

 

Lees de tekst op onderstaande site van Kennislink over priemgetallen van meer dan 10.000.000 cijfers en beantwoord daarna de vragen.

 

a) Wat zijn Mersenne-getallen?

b) Wat is GIMPS?

c) Wie was Edson Smith?

d) Is het voor de cryptografie van belang dat er een priemgetal is gevonden van meer dan 10.000.000 cijfers?

klik hier

 

Priemfactoren van een groot samengesteld getal vinden is erg moeilijk. Zo is bijvoorbeeld wel bekend dat het getal 216384+1 niet priem is, maar is er geen enkele priemfactor van bekend. Het is een getal van 5000 cijfers.
Voor de cryptografie zijn priemgetallen van een paar honderd cijfers van belang. We zullen daar in deze module niet mee hoeven rekenen, maar we willen wel proberen te begrijpen waarom priemgetallen de oplossing boden in een zoektocht naar asymmetrische sleutels.

Daarvoor moeten we het begrip grootste gemene deler kennen. Op de sub-pagina Grootste Gemene Deler wordt een tweetal opgaven aangeboden die je moet kunnen maken om het vervolg te kunnen begrijpen. Voer de opgaven onder het kopje Grootste Gemene Deler hieronder uit .

 

Grootste Gemene Deler

De grootste gemene deler van a en m is het grootste gehele getal dat deler is van zowel a als m. We noteren dit als ggd(a,m).
De volgende methode is goed te doen voor kleine getallen, maar voor grote getallen is de priemfactorontbinding erg moeilijk te vinden en kun je deze methode dus niet gebruiken. Het is wel van belang om grip te krijgen op de ggd.

Eerst een voorbeeld:
Daarbij hanteren we een paar eenvoudige wetmatigheden:
Een even getal is deelbaar door 2.
Als de som van de cijfers deelbaar is door 3, dan is het getal deelbaar door 3
Als het getal eindigt op een 5 of een 0 dan is het deelbaar door 5.
Hiermee vind je de ontbindingen van de meeste 'kleine' getallen wel, maar als je meer regeltjes wilt dan kun je die vinden op http://members.chello.nl/f.waanders1/deelbaar.htm
Bepaal de ggd(264, 2436)
We ontbinden 264 en 2436 zo ver mogelijk in priemfactoren. 
264=2*132=2*2*66=2*2*2*33=2*2*2*3*11
2436=2*1218=2*2*609=2*2*3*203=2*2*3*7*29
De gemeenschappelijke delers van 264 en 2436 zijn 2, 2 en 3.
De ggd(264,2436) is nu 2*2*3=12

Opgave 1

a) Geef de positieve delers van 120.
b) Geef de positieve delers van 112.
c) Wat zijn de gemeenschappelijke delers van 120 en 112?
d) Wat is grootste gemeenschappelijke deler van 120 en 112?

 


Nog een voorbeeld:
Bereken ggd(980, 504). 
980=2*2*5*7*7, 
504=2*2*2*3*3*7. 
In beide priemfactorontbindingen zit twee keer de priemfactor 2 en een keer de priemfactor 7, dus ggd(980,504)=2*2*7=28.

Opgave 2

a) Bereken ggd(252, 198).
b) Bereken ggd(6466, 5429).
c) Bereken ggd(47, 0).
d) Geef ggd(a, 0) a ≠ 0.
e) Geef ggd(0,0)

 

Ga nu verder met 12.2 Gemene delers

12.2 Gemene delers

De Griek Euclides van Alexandrië heeft een methode beschreven waarmee je de grootste gemene deler voor grote getallen kunt berekenen. Euclides is één van de belangrijkste wiskundigen van de afgelopen 2400 jaar.

 

Wie was Euclides

Euclides (ook Euclides van Alexandrië genoemd) was een Griekse wiskundige uit de 3e eeuw v. Chr. die werkzaam was in de bibliotheek van Alexandrië. Zijn bekendste werk is de Elementen, een boek waarin hij de eigenschappen van geometrische vormen en gehele getallen afleidt uit een verzameling axioma's. Hij wordt daarom wel beschouwd als een voorloper van de axiomatische methode in de moderne wiskunde. Veel van de resultaten in de Elementen zijn afkomstig van eerdere wiskundigen. Euclides' belangrijke prestatie was om ze allemaal in één samenhangend logisch kader te plaatsen. Zijn vijfde postulaat staat bekend als het parallellenpostulaat. Lang is geprobeerd dit axioma, dat ingewikkelder en minder vanzelfsprekend is dan de andere, uit de eerste vier axioma's te bewijzen. Maar in de 19e eeuw realiseerden Janos Bolyai, Nikolai Ivanovich Lobachevsky en waarschijnlijk ook Carl Friedrich Gauss zich dat het verwerpen van dit postulaat leidt tot volledig consistente niet-Euclidische meetkundes, die verder werden ontwikkeld door Bernhard Riemann. Naast meetkunde behandelt de Elementen ook elementaire getaltheorie, zoals de theorie van deelbaarheid, de grootste gemene deler en het algoritme van Euclides. Tot in de 20e eeuw werd de Elementen gebruikt als leerboek voor de meetkunde en was het zelfs samen met de Bijbel een van de meest gedrukte boeken. Toch schiet Euclides' methodologie tekort vergeleken met de huidige standaard van wiskundige precisie, omdat een aantal logische axioma's ontbreekt. De moderne axiomatische behandeling van de meetkunde gaat terug op David Hilbert in 1899.

Van de wiskunde die Euclides in 'De Elementen' beschreef, gebruiken we in de cryptografie niets. Het algoritme van Euclides dat we nu gaan bespreken is wel een belangrijke stelling in de cryptografie. Hoe je het algoritme op een snelle wijze kunt toepassen in een Excel-blad wordt na opgave 9 in 12.5 gedemonstreerd in een filmpje.

 

Opgave 1 

Het getal 11 is deler van 66 en 33.
a) Is het getal 11 ook deler van 66+33?
b) Is het getal 11 ook deler van 66-33?
c) Is het getal 11 ook deler van 33-66?

Uit opgave 1 ontstaat het vermoeden dat:
Als d een deler is van a en een deler is van b, dan is d ook een deler van a+b en a-b
Als we er goed over nadenken dan is dat ook wel logisch, immers
d is een deler van a, dus er is een geheel getal waarvoor geldt a=v*d
is een deler van b, dus er is een geheel getal w waarvoor geldt b=w*d.
We kunnen a+b dus schrijven als a+b=v*d+w*d=(v+w)*d
v+w is een heel getal, dus d is een deler van a+b.

 
Reflectie
Waarom moet ook een deler zijn van a-b?

 

Opgave 2 

Het getal d = 11 is deler van de getallen a = 187 en m = 341.
a) Zoek getallen v en w waarvoor geldt dat 187 = 11 en 341 = 11.
b) Laat zien dat a + m = (v + w)*11 en a - m = (v - w)*11.

Opgave 3

Als a=6885 en m=2574 dan ggd(a,m) = 9, Deze noemen we d.
a) Leg uit dat d|(a-2*m).
b) Leg uit dat m en (a-2*m) geen grotere deler dan d gemeenschappelijk kunnen hebben 
en dat er dus geldt dat d=ggd(m,a-2*m).

Uit opgave 3 ontstaat het vermoeden dat:
Als d een deler is van a en een deler is van m, dan is d ook een deler van a+qm en a-qm
Als we er goed over nadenken dan is ook dat wel logisch, immers
d is een deler van a, dus er is een geheel getal waarvoor geldt a=v*d
is een deler van m, dus er is een geheel getal w waarvoor geldt m=w*d.
We kunnen a+qm dus schrijven als a+qm=v*d+qw*d=(v+qw)*d
v+qw is een geheel getal, dus d is een deler van a+qm.

 

Reflectie

Waarom is ook een deler van a-qm?

klik hier

12.3 De grootste gemene deler

Opgave 4 

Gegeven de getallen am en d = ggd(a , m), 
Het getal q is een geheel getal. 
We weten nu dat d|(a - m).
Leg uit dat m en (a - m) geen grotere deler dan d gemeenschappelijk kunnen hebben en dat er dus geldt dat 
d = ggd(,m).

 

We hebben nu gezien dat we de grootste gemene deler van een paar getallen kunnen vinden, zonder eerst alle delers op te moeten schrijven. We trekken telkens het kleinste getal een aantal keer van het grootste getal af. Zoiets deden we eerder in opgave 2 van les 10. Omdat we graag met zo klein mogelijke getallen rekenen, berekenen we liever de ggd van a - m en m dan van a en m. Het beste kunnen we het kleinste getal zo vaak mogelijk van het grootste getal aftrekken, maar wel zo dat de uitkomst positief blijft.

Voorbeeld:
Bereken de ggd(252, 198)
Berkening: 252 - 198 = 54, dus ggd(252, 198) = ggd(198, 54)
198 - 3 54 = 36, dus ggd(252, 198) = ggd(198, 54) = ggd(54, 36)
54 - 36 = 18, dus ggd(252, 198) = ggd(198, 54) = ggd(54, 36) = ggd(36, 18)
36 - 2 18 = 0, dus ggd(252, 198) = ggd(198, 54) = ggd(54, 36) = ggd(36, 18) = ggd(18, 0) = 18. 
Merk op dat weer geldt als ieder getal een deler is van 0, behalve 0 zelf. Zie opgave 2 op de sub-pagina Grootste Gemene Delers.

Opgave 5 

Bereken op bovenstaande manier:
a) ggd(6466,5429)
b) ggd(5346,897)
c) ggd(47,0)

 

In het voorbeeld boven opgave 5 zagen we, dat als we de ggd(252,198) willen bereken we 252reduceren door het getal 198 daar zovaak als mogelijk is van af te trekken (in dit geval één keer) zodat het resultaat nog net positief is. Bij de berekening maken we intuïtief gebruik van de geheeltallige deling en de REST-functie, of modulo-berekening.

We geven nu een paar formele definities. Op de sub-pagina (a div m) en (a mod m) worden deze verder toegelicht en kun je het modulo-rekenen oefenen met een paar opgaven.

Definitie a div b:
Voor gehele getallen a en positieve gehele getallen m is a div m het grootste gehele getal k dat voldoet aan k*m 
 a.
Voorbeeld: 17 div 5 = 3 en -17 div 5 =-4

Definitie a mod m: 
Voor gehele getallen a en positieve gehele getallen m is mod m = a - m*(a div m),

Samengevat:
Voor gehele getallen a en positieve gehele getallen m geldt
(1) a = m*(div m) + (a mod m)
(2)  a mod m < m.

Als je met het bovenstaande geen moeite hebt kun je rustig verder. 
Zo niet kijk dan eerst naar de voorbeelden en verdere uitleg onder het kopje 12.3A (a div m) en (a mod m) 

Opgave 6 

Gegeven zijn de positieve gehele getallen a=2164, m=153 en q=2164 div 153, 
met a > m dan is q het grootste getal waarvoor geldt dat a-q*m0. 
Er geldt dus 2164-2164*153=2164(mod 153).
a) Leg uit dat ggd(2164,153)=ggd(153,2164(mod 153)).
b) Onderzoek of ggd(153,2164)=ggd(2164,153(mod 2164)).

 

Opgave 7 

Gegeven zijn de positieve gehele getallen a, m en q=a div m, met a>m en q is het grootste getal is waarvoor geldt dat a-q*m>=0. 
Er geldt dus a-q*m=a(mod m).
a) Leg uit dat ggd(a,m)=ggd(m,a(modm)).
b) Onderzoek of ggd(m,a)=ggd(a,m(mod a)) ook geldt als m>a.

 

De methode om een grootste gemene deler snel te berekenen die we in de bovenstaande opgaven ontdekt hebben, heet het "Algoritme van Euclides".

 

12.3A (a div m) en (a mod m)

Inhoud van deze pagina

E.1 Breukdeling en gehele deling
E.2 De rest bij deling
E.3 Somregel en productregel

 

E.1 Breukdeling en gehele deling

In les 1 heb je het verschil gezien tussen coderen en versleutelen. Doordat we het omzetten van rijtjes symbolen naar getallen (coderen) en omgekeerd (decoderen) op een van tevoren afgesproken manier gaan doen, kunnen we ons bij het beschrijven van de cryptosystemen beperken tot het werken met getallen. In de systemen die we in les 1 hebben bekeken, hadden we maar 26 symbolen en daarmee hadden we aan de getallen 0 tot en met 25 genoeg. De bewerkingen die we met deze getallen hebben uitgevoerd lieten zich eenvoudig informeel beschrijven. Nu we de beschikking hebben over meer symbolen en we ook nog gaan werken met rijtjes symbolen, krijgen we te maken met veel grotere getallen. En omdat we ons niet vast willen leggen op welke getallen er in onze boodschappen voor zullen komen, is het nodig wat gestructureerder naar de bewerkingen met gehele getallen te kijken.

Bij affiene cryptografie in les 2 was het nodig om bij elke uitkomst van een berekening te bepalen wat de rest bij deling door 26 was. Op die manier bestond zowel de onbewerkte als de versleutelde boodschap uit een rij van getallen uit de verzameling
0, 1, 2, 3, ..., 25. In deze subpagina wordt dat idee uitgebreid.

Hoeveel pootjes van 25 cm kun je zagen uit een balk van 240 cm? Het antwoord dat de rekenmachine geeft bij de deling 240:25 is in dit geval onzin: als je pootjes van 25 cm nodig hebt, dan heb je niets aan het laatste stukje dat toch te klein is. Als k het (grootste) aantal pootjes van 25 cm is dat we uit de balk van 240 cm kunnen zagen, dan is het grootste gehele getal dat voldoet aan 25*=240. In dit geval is dat dus 9.

Om onderscheid te maken tussen de 'breukdeling' en de 'geheeltallige deling'  noteren we 
de gehele deling als 240 div 5 (= 9)
en de breukdeling als 240:25 (= 9,6). 
Voor positieve gehele getallen a en m verstaan we onder a div m dus het geheel aantal keren dat m in a past.

Voor negatieve gehele getallen a is het wat lastiger in te zien wat a div m zou moeten zijn. Bij de positieve gehele a zochten we de grootste gehele k die voldeed aan k*m a. We spreken af dat we dat voor negatieve gehele a net zo doen.

Wanneer we (-240)div25 berekenen, komt daar dus -10 uit, want -10*25=-250 en dat is kleiner dan -240. De uitkomst -9 is niet goed, want -9*25=-225 en dat is meer dan -240.

Formeel kunnen we de operator div dus als volgt vastleggen:

Voor gehele getallen a en positieve gehele getallen m is a div m het grootste gehele getal k dat voldoet aan k*m = a.

Opgave 1 

Bereken:
a) 17 div 5.
b) 944 div 13.
c) 91 div 7.
d) (-22) div 7.

 

E.2 De rest bij deling

Zoals je bij het zagen van pootjes uit een balk in het algemeen iets overhoudt, blijft er bij geheeltallige deling in het algemeen een rest over. Bij deling van 25 door 7 is het resultaat 3. Maar 3*7 maakt de 25 niet vol. Er blijft als rest over: 25-3*7=25-21=4. Deze rest noteren we als 25 mod 7. 
We spreken dit uit als: "25 modulo 7". De rest van een geheel getal bepalen na deling door m, noemen we a reduceren modulo m.

In het algemeen is voor gehele getallen a en positieve gehele getallen m het getal amodm de rest bij geheeltallige deling van a door m. Formeel:

Voor gehele getallen en positieve gehele getallen m is
a mod m = a-m*(adivm) de rest bij geheeltallige deling van a door m

 

Opgave 2 

Bereken:
a) 17 mod 5.
b) 944 mod 13.
c) 91 mod 7.
d) (-22) mod 7.

 

De operatoren div en mod voldoen aan de volgende eigenschappen:

Voor gehele getallen a en positieve gehele getallen m geldt
(1) a = m*(a div m)+(mod m)
(2) ≤ a mod m < m


Opgave 3

a) Controleer deze eigenschappen voor a = 17 en = 5.
b) Controleer deze eigenschappen voor a = -22 en m =7.
c) Leg uit hoe deze twee eigenschappen volgen uit de definities van div en mod.

 

Als we berekeningen modulo een bepaald getal moeten uitvoeren, kunnen we gebruik maken van een aantal rekenregels. We zullen deze regels hier aan de hand van voorbeelden aannemelijk maken, maar ze niet bewijzen. In hoofdstuk 6 kom je precies te weten waarom de rekenregels kloppen.

 

Opgave 4

We hebben een balk van 240 cm en een balk van 190 cm en we gaan daar zo veel mogelijk pootjes van 25 cm afzagen.

a) Hoeveel cm houden we bij elke balk over?
b) Het is niet verrassend dat we dezelfde lengte overhouden. Waarom niet?

We zagen in deze opgave dat het verschil van twee getallen een veelvoud is van m als de twee getallen dezelfde rest hebben na deling door m. Dit resulteert in de volgende regel:

Voor gehele getallen a en b en positieve gehele getallen m geldt:
a(modm) =b(modm) precies dan als (a-b) modm= 0.


Opgave 5

a) Controleer deze eigenschap voor a=17, b=32 en m=5.
b) Laat zien dat het drietal a=22, b=35 en m=11 niet voldoet.
c) Geef een m zodanig dat het drietal a=22, b=35 en m wel voldoet.

 

Opgave 6 

We hebben een balk van 240 cm en een balk van 155 cm. We plakken de balken aan elkaar en zagen hier pootjes van 25 cm van.
a) Hoe lang is het stukje balk dat we uiteindelijk overhouden?

We doen hetzelfde nog een keer, maar nu met een balk van 190 cm en een balk van 305 cm.

b) Hoe lang is nu het stukje balk dat we uiteindelijk overhouden?
c) Leg uit waarom de uitkomsten bij a) en b) hetzelfde zijn.

 

Opgave 7 

We nemen 7 balken van 240 cm en zagen er pootjes van 25 cm van. Vervolgens plakken we alle restanten aan elkaar en zagen daar ook weer pootjes van 25 cm van.
a)Hoe lang is het stukje balk dat we uiteindelijk overhouden?

We doen hetzelfde met 7 balken van 190 cm.

b) Hoe bereken je makkelijk hoe lang het stukje is dat we uiteindelijk overhouden?

Weer hetzelfde, dit keer met 32 balken van 240 cm.
c) Hoe bereken je nu makkelijk hoe lang het stukje is dat we uiteindelijk overhouden?
d) Waarom doen die 25 balken extra er niet toe?

 

E.3 Somregel en productregel

In opgave 5 en 6 hebben we een idee gekregen hoe het optellen en vermenigvuldigen bij modulo-rekenen werkt. Inderdaad blijkt er een somregel en een productregel voor het modulo-rekenen te zijn:

Voor gehele getallen abc en d en positieve gehele getallen m geldt:
als a(modm)=b(modm) en c(modm)=d(modm) dan

Somregel: (a+c) modm=(b+d) modm

Productregel: (a*c) modm=(b*d) modm


Opgave 8

Bereken de volgende uitdrukkingen. Doe dit zonder je rekenmachine te gebruiken en geef steeds aan welke rekenregel je gebruikt.
a) (123+456)mod10.
b) (113*222)mod10.
c) 17*(355+773)mod7.

Als we met de getallen 0 tot en met 25, de rangnummers van de 26 letters in het alfabet rekenen dan brengen we bij de rekenkundige bewerkingen (optellen en vermenigvuldigen) eigenlijk met behulp van modulo-rekenen het resultaat terug tot een getal in dit domein, ook al noemden we dat niet zo. De verzameling getallen {0,1,...m-1} duiden we aan met Zm.

Wanneer het duidelijk is dat we in Zm rekenen, en dus modulo m rekenen, laten we het "mod(m)" soms weg.

Voorbeeld:
Bereken 7*5 in Zm.
Berekening (7*5)mod12 = 35mod12 = 11 of 7*5 = 11.

Opgave 9 

Waarom kun je de berekening in bovenstaand voorbeeld niet opschrijven als 7*5 = 35 = 11?

Opgave 10 

Vul onderstaande tabellen in Zverder in.

+ 0 1 2 3 4   * 0 1 2 3 4  
0 0 1 2       0 0 0 0      
1 1 2         1 0 1        
2 2           2 0          
3             3            
4             4            


Opgave 11

Los de volgende vergelijkingen op:
a) In Z5: 3+= 1
b) In Z8: 3+x = 1
c) In Z19: 14+= 5
d) In Z19: 11+x = 0

Het oplossen van vergelijkingen van het type zoals in de vorige opgave zal niet zoveel problemen geven. Ook zonder dat je de hele opteltabel hebt uitgeschreven lukt het wel 14 +x = 5 op te lossen in Z19. In Z19 betekent 14 +x= 5 eigenlijk (14 +x) mod19 = 5 en dat wil zeggen dat je rest 5 overhoudt als je 14 +x door 19 deelt. Er is dus een k zodanig dat 14 + - 19*= 5, ofwel 9 +x= 19*k. Voor k=0 levert dit geen getal uit Z19; voor k=1 levert dit 9+x=19, dus x=10.

De berekening verloopt dus als volgt:
14+= 5 in Z19
(14+x)mod19 = 5
14+x-19*k = 5
9+x = 19k, dus x = 10 en =1

Misschien heb je het bij de opgave op een manier gedaan die je makkelijker vindt, maar bekijk ook de manier van redeneren hierboven goed.

Opgave 12 

Los de volgende vergelijkingen op bovenstaande manier op:
a) In Z23: 16+x = 7
b) In Z1278: 756+x = 341

Je ziet dat een vergelijking met een optelling oplossen niet zo moeilijk is. Wanneer er een vermenigvuldiging in de vergelijking zit, is een oplossing vinden minder eenvoudig. Een van de problemen is het volgende.

Als je niet modulo-rekent, kun je concluderen dat als ac = bc, dat dan daaruit a = b volgt. 

Bij modulo-rekenen geldt niet altijd dat als
a*cmb*c,dat dan amb(m staat voor "gelijkwaardig in Zm")

Opgave 13

a) Ga dit na voor a = 12, = 7, c = 6 en m = 10.
b) Leg uit waarom het in dit voorbeeld niet geldt.
c) Wat voor een getal moet zijn om wel te laten gelden dat ≡ mb als a*mb*c?

Afgezien daarvan is het ook lastig omdat je niet eenvoudig links en rechts door hetzelfde getal kunt delen.

Ga nu verder met les 12.3 opgave 6

12.4 Algoritme van Euclides

Voor a > 0 en a een geheel getal is ggd(a,0)=a en als m geheel, 
dan geldt ggd(a,m)=ggd(m,a(mod m)).

Voorbeeld:
Bereken ggd(99, 45) met behulp van het algoritme van Euclides.
99 : 45 = 2 rest 9, want 99=2*45+9,
dus ggd(99, 45) = ggd(45, 9).
45 : 9 = 5 rest 0, want 45=5*9+0,
dus ggd(45, 9) = ggd(9,0) = 9 (want ggd(a, 0) = a).
Hieruit volgt dus ook ggd(99, 45) = 9.

Voor een berekening met kleine getallen kun je de berekening wel als hierboven opschrijven.
We zetten de tussenstappen in een tabel. We willen de 2 en de 9 uit de uitkomst 2 rest 9 graag in twee verschillende kolommen zetten. De 9 is de rest na deling. De rest geven we aan met de letter r. De 2 is het gehele deel van het quotiënt. Dit gehele deel geven we aan met de letter q.

 

a m q r
99 45 2 9
45 9 5 0
9 0  

 

Op elke regel is de ggd(a,m) gelijk, dus ggd(99,45)=ggd(45,9)=ggd(9,0)=9.

Voor het begruik van grotere getallen wordt een tabel onontbeerlijk.
Voorbeeld:
Bereken ggd(148104,47223).
Herhaald het algoritme van Euclides toepassen levert:

 

a m q r
148104 47223 3 6435
47223 6435 7 2178
6435 2178 2 2079
2178 2079 1 99
2079 99 21 0
99 0    

 

Opgave 8 

a) Waar vind je de grootste gemene deler in de bovenstaande tabel?
b) Wat is dus ggd(148104,47223)?

 

Opgave 9 

a) Bereken ggd(96, 22) met behulp van het algoritme van Euclides.
b) Bereken ggd(484, 576).
c) Bereken ggd(47957, 32395).

12.5 Het algoritme van Euclides en Excel

Wanneer je het algoritme voor echt grote getallen moet uitvoeren, doe je het natuurlijk niet met de hand, maar wordt er een computerprogramma geschreven dat het werk voor je doet. Dit is niet zo moeilijk en je zou het eens kunnen proberen als je informatica hebt gekozen. In de antwoorden van les 10 vind je bij opgave 2 de pseudo-code voor een recursieve formule.
Voor de getallen waarmee wij werken in deze module heb je voldoende aan een rekenblad zoals Excel.
Hoe je dit in Excel uitvoert wordt gedemonstreerd in dit filmpje. 

In opgave 9b hebben we berekend dat de ggd(484,576)=4. Als we het getallenpaar (484,576) zouden gebruiken om het klare alfabet te vercijferen dan blijkt het een beetje mis te gaan. Alle getallen in de bewerking blijken veelvouden van 4 te zijn! Ondanks dat de getallen van het getallenpaar groot genoeg zijn om 26 verschillende getallen op te leveren voor de vercijfering, krijgen we toch een probleem bij het ontcijferen. Er is geen inverse te vinden voor de ontcijfering. Als we echter 484 en 576 delen door 4, dan krijgen we getallen waarvoor de ggd gelijk is aan 1: ggd(121,144)=1. De inverse van 121 blijkt 25 te zijn waarmee we nu wel de code kunnen ontcijferen.
Onderzoek het probleem in het volgende werkblad in kolom C en D en de oplossing voor het probleem in kolom F en G:

Reflectie

In het voorbeeld bij opgave 8 en bij opgave 9a en 9c wordt steeds een ggd berekend die ongelijk is 1.
Welke getallenparen kun je daaruit afleiden die geschikt zijn om te gebruiken voor een encryptie met modulo-vermenigvuldiging?

klik hier

 

In les 9 hebben we met gebruik van de computer de letters van de klare tekst één voor één omgezet in ASCII-code. We hebben toen het volgende voorbeeld bekeken:
Voorbeeld
De zin: "Ik wou dat ik 2 hondjes was".
wordt gecodeerd in de volgende rij gehele getallen

073 107 032 119 111 117 032 100 097 116 032 105 107 032 
050 032 104 111 110 100 106 101 115 032 119 097 115 046

We hebben een mogelijkheid om dit met de computer, rekenblad en een getallenpaar te versleutelen. We voegen de codes twee aan twee bij elkaar tot 6-cijferige getallen:
073107 032119 111117 032100 097116 032105 107032 
050032 104111 110100 106101 115032 119097 115046
We zoeken een getallenpaar waarvan de modus groot genoeg is, bijvoorbeeld (1234,192731). 
Merk op dat de ggd(1234,192731)=1:

a m q r
1234 192731 0 1234
192731 1234 156 227
1234 227 5 99
227 99 2 29
99 29 3 12
29 12 2 5
12 5 2 2
5 2 2 1
2 1 2 0
1 0    

We gebruiken nu het rekenblad om de tekst te vercijferen en vermenigvuldigen alle getallen met 1234 mod 192731.
Noteer de code op de eerste rij en sleep de functie REST(getal*1234;192731) over de tweede rij:

Met het resultaat kunnen we nu de boodschap versturen:
015 930 124 991 086 637 101 545 155 193 107 715 056 753
065 568 114 128 180 776 064 285 099 472 104 676 116 748
Zonder sleutel zal het lastig worden deze boodschap te ontcijferen, zeker als je de deler 192731 niet kent.

Opgave 10

Codeer de tekst 'nijmegen' volgens de ASCII-tabel, voeg de codes twee aan twee samen tot getallen van 6 cijfers en encrypt de tekst met de encryptiefunctie E(x)=1234*x+192731 mod 437217.

 

Opgave 11 

Een boodschap is op de afgesproken manier gecodeerd en daarna versleuteld met de encryptiefunctie
E(x)=x+398843 mod 468713
De versleutelde boodschap is 466 957 027 229 034 246 031 240.
Ontcijfer en decodeer deze boodschap.

 

Nu we weten hoe we een getallenpaar kunnen vinden waarvan de ggd=1 is, wordt het ook interessant om een manier te bedenken voor het vinden van de inverse, die we weer nodig hebben voor de decryptie! Het algoritme van Euclides zal ons in de volgende les helpen bij het vinden van de inverse.

  • Het arrangement 12. Les 12 Algoritme van Euclides is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.

    Auteur
    Bètapartners Je moet eerst inloggen om feedback aan de auteur te kunnen geven.
    Laatst gewijzigd
    2014-12-18 14:13:35
    Licentie

    Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding-GelijkDelen 3.0 Nederland licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding en publicatie onder dezelfde licentie vrij bent om:

    • het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
    • het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
    • voor alle doeleinden, inclusief commerciële doeleinden.

    Meer informatie over de CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

    Dit materiaal is achtereenvolgens ontwikkeld  en getest in een SURF-project  (2008-2011: e-klassen als voertuig voor aansluiting VO-HO) en een IIO-project (2011-2015: e-klassen&PAL-student).  In het SURF project zijn in samenwerking met vakdocenten van VO-scholen, universiteiten en hogescholen e-modules ontwikkeld voor Informatica, Wiskunde D en NLT.  In het IIO-project (Innovatie Impuls Onderwijs) zijn in zo’n samenwerking modules ontwikkeld voor de vakken Biologie, Natuurkunde en Scheikunde (bovenbouw havo/vwo).  Meer dan 40 scholen waren bij deze ontwikkeling betrokken.

    Organisatie en begeleiding van uitvoering en ontwikkeling is gecoördineerd vanuit Bètapartners/Its Academy, een samenwerkingsverband tussen scholen en vervolgopleidingen. Zie ook www.itsacademy.nl

    De auteurs hebben bij de ontwikkeling van de module gebruik gemaakt van materiaal van derden en daarvoor toestemming verkregen. Bij het achterhalen en voldoen van de rechten op teksten, illustraties, en andere gegevens is de grootst mogelijke zorgvuldigheid betracht. Mochten er desondanks personen of instanties zijn die rechten menen te kunnen doen gelden op tekstgedeeltes, illustraties, enz. van een module, dan worden zij verzocht zich in verbinding te stellen met de programmamanager van de Its Academy (zie website). 

    Gebruiksvoorwaarden:  creative commons cc-by sa 3.0

    Handleidingen, toetsen en achtergrondmateriaal zijn voor docenten verkrijgbaar via de bètasteunpunten.

     

    Aanvullende informatie over dit lesmateriaal

    Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:

    Toelichting
    Deze les maakt onderdeel uit van de e-klas 'Cryptografie' voor Havo 5 voor het vak wiskunde D.
    Leerniveau
    HAVO 5;
    Leerinhoud en doelen
    Wiskunde D; Inzicht en handelen;
    Eindgebruiker
    leerling/student
    Moeilijkheidsgraad
    gemiddeld
    Trefwoorden
    e-klassen rearrangeerbaar
  • Downloaden

    Het volledige arrangement is in de onderstaande formaten te downloaden.

    Metadata

    LTI

    Leeromgevingen die gebruik maken van LTI kunnen Wikiwijs arrangementen en toetsen afspelen en resultaten terugkoppelen. Hiervoor moet de leeromgeving wel bij Wikiwijs aangemeld zijn. Wil je gebruik maken van de LTI koppeling? Meld je aan via info@wikiwijs.nl met het verzoek om een LTI koppeling aan te gaan.

    Maak je al gebruik van LTI? Gebruik dan de onderstaande Launch URL’s.

    Arrangement

    IMSCC package

    Wil je de Launch URL’s niet los kopiëren, maar in één keer downloaden? Download dan de IMSCC package.

    Meer informatie voor ontwikkelaars

    Wikiwijs lesmateriaal kan worden gebruikt in een externe leeromgeving. Er kunnen koppelingen worden gemaakt en het lesmateriaal kan op verschillende manieren worden geëxporteerd. Meer informatie hierover kun je vinden op onze Developers Wiki.