Uitgebreid algoritme van Euclides

Uit testwiki
Naar navigatie springen Naar zoeken springen

Het uitgebreide algoritme van Euclides is een uitbreiding van het algoritme van Euclides, dat niet alleen de grootste gemene deler ggd van twee natuurlijke getallen a en b bepaalt, maar ook een oplossing geeft van de identiteit van Bézout, een lineaire diofantische vergelijking in gehele x en y:

ax+by=ggd(a,b)

De uitbreiding bestaat daarin dat behalve de berekening van de ggd van de getallen a en b met het algoritme van Euclides, ook de ggd wordt uitgedrukt als gehele lineaire combinatie van a en b. Het bewijs van de stelling van Bachet-Bézout steunt op de constructie door het algoritme.

RSA algoritme

Een veelgebruikte toepassing is het RSA-algoritme, meestal afgekort tot RSA, in de encryptie. Het is daarin op een gegeven moment nodig de geheime sleutel d te berekenen als modulaire inverse van de publieke sleutel e, dat wil zeggen dat d door

e×d1mod(n),

wordt gegeven voor zeker natuurlijk getal n. Deze geheime sleutel kan met het algoritme van Euclides worden berekend. Om dit te laten zien aan de hand van het voorbeeld van een ontbinding van Bézout, merken we op dat in RSA e en n geen gemeenschappelijke delers hebben. Het is een voorwaarde voor het bestaan van een geheime sleutel, dat e en n onderling ondeelbaar zijn.

Voorbeeld

Neem het voorbeeld met de getallen 1140 en 900. Bepaal eerst ggd(1140,900) met behulp van het algoritme van Euclides. Schrijf de deling van nm als n//m=n/m en de rest als n mod m, bijvoorbeeld 7//3=2 en 7 mod 3=1. Dan:

1140=(1140//900)×900+1140 mod 900=1×900+240900=(900//240)×240+900 mod 240=3×240+180240=(240//180)×180+240 mod 180=1×180+60180=(180//60)×60+180 mod 60=3×60+0

Dus ggd(1140,900)=60. Schrijf nu de ggd als lineaire combinatie van 1140 en 900. Bereken daartoe de ggd in omgekeerde volgorde:

60=2401×180180=9003×24060=2401×(9003×240)=1×900+4×240240=11401×90060=900+4×(11401×900)=4×11405×900

Daarmee is ggd(1140,900)=60 geschreven als gehele lineaire combinatie van 1140 en 900. Deze tweede stap wordt de ontbinding van Bézout genoemd.

Als de getallen in de ggd(1140,900) door 60 worden gedeeld resulteert dit in:

1=4×195×15

Neem nu het voorbeeld dat de publieke sleutel e = 15 en n = 19, deze getallen hebben inderdaad geen gemeenschappelijke deler. De geheime sleutel d wordt bepaald door

15×d1mod(19).

Reduceer mod 19 de termen in de bovenstaande ontbinding van ggd(19,15)=1 en gebruik 4×190mod(19) dus

15×(5)1mod(19).

Hieruit volgt dat d=5 de inverse van 15 is mod 19. Als er een geheime sleutel tussen 1 en 19 wordt gezocht, kan het worden gebruikt dat d=514mod(19).