Erweiterter Euklidischer Algorithmus

Erweiterter Euklidischer Algorithmus

Studium
ggT⁡(a,b)=s⋅a+t⋅b\operatorname{ggT}(a, b) = s \cdot a + t \cdot b

Voraussetzung: a,b∈Z,a, b \in \mathbb{Z}, (a,b)≠(0,0),(a, b) \neq (0, 0), s,t∈Zs, t \in \mathbb{Z}

a,ba, b
ganze Zahlen, nicht beide null
ggT⁡(a,b)\operatorname{ggT}(a, b)
größter gemeinsamer Teiler von a und b
s,ts, t
ganzzahlige Bézout-Koeffizienten, die der erweiterte Algorithmus liefert

Der ggT zweier Zahlen lässt sich als ganzzahlige Kombination s·a + t·b schreiben; s und t liefert der erweiterte Algorithmus.

Erklärung

Das Lemma von Bézout sagt: Zu ganzen Zahlen a,ba, b, nicht beide null, gibt es ganze Zahlen s,ts, t mit ggT⁡(a,b)=s⋅a+t⋅b\operatorname{ggT}(a, b) = s \cdot a + t \cdot b. Der erweiterte Euklidische Algorithmus berechnet ss und tt gleich mit.

Vorgehen:

  1. Den gewöhnlichen Euklidischen Algorithmus durchführen und alle Divisionen rk−1=qk⋅rk+rk+1r_{k-1} = q_k \cdot r_k + r_{k+1} notieren.
  2. Die vorletzte Gleichung nach dem ggT auflösen.
  3. Von unten nach oben die Reste nacheinander durch die darüberliegenden Gleichungen ersetzen, bis nur noch aa und bb vorkommen.

Die Koeffizienten sind nicht eindeutig: Mit d=ggT⁡(a,b)d = \operatorname{ggT}(a, b) ist auch (s+k⋅bd)a+(t−k⋅ad)b=d\left(s + k \cdot \frac{b}{d}\right) a + \left(t - k \cdot \frac{a}{d}\right) b = d für jedes ganze kk.

Wichtigste Anwendung ist das modulare Inverse: Ist ggT⁡(a,m)=1\operatorname{ggT}(a, m) = 1, dann folgt aus 1=s⋅a+t⋅m1 = s \cdot a + t \cdot m, dass s⋅a≡1(modm)s \cdot a \equiv 1 \pmod m. Also ist ss (auf 0,…,m−10, \ldots, m-1 reduziert) das Inverse von aa modulo mm. Das braucht man beim Chinesischen Restsatz und bei RSA.

Beispiele

ggT⁡(240,46)\operatorname{ggT}(240, 46) als Kombination. Divisionen:

240=5⋅46+1046=4⋅10+610=1⋅6+46=1⋅4+24=2⋅2+0\begin{aligned} 240 &= 5 \cdot 46 + 10 \\ 46 &= 4 \cdot 10 + 6 \\ 10 &= 1 \cdot 6 + 4 \\ 6 &= 1 \cdot 4 + 2 \\ 4 &= 2 \cdot 2 + 0 \end{aligned}

Also ggT⁡(240,46)=2\operatorname{ggT}(240, 46) = 2. Rückwärts einsetzen:

2=6−4=6−(10−6)=2⋅6−10=2⋅(46−4⋅10)−10=2⋅46−9⋅10=2⋅46−9⋅(240−5⋅46)=−9⋅240+47⋅46\begin{aligned} 2 &= 6 - 4 = 6 - (10 - 6) = 2 \cdot 6 - 10 \\ &= 2 \cdot (46 - 4 \cdot 10) - 10 = 2 \cdot 46 - 9 \cdot 10 \\ &= 2 \cdot 46 - 9 \cdot (240 - 5 \cdot 46) = -9 \cdot 240 + 47 \cdot 46 \end{aligned}

Ergebnis: s=−9s = -9, t=47t = 47. Mit k=1k = 1 erhält man eine weitere Lösung: 14⋅240−73⋅46=214 \cdot 240 - 73 \cdot 46 = 2.

Inverses von 77 modulo 2626: 26=3⋅7+526 = 3 \cdot 7 + 5, 7=1⋅5+27 = 1 \cdot 5 + 2, 5=2⋅2+15 = 2 \cdot 2 + 1. Rückwärts:

1=5−2⋅2=5−2⋅(7−5)=3⋅5−2⋅7=3⋅26−11⋅71 = 5 - 2 \cdot 2 = 5 - 2 \cdot (7 - 5) = 3 \cdot 5 - 2 \cdot 7 = 3 \cdot 26 - 11 \cdot 7

Also −11⋅7≡1(mod26)-11 \cdot 7 \equiv 1 \pmod{26}. Das Inverse ist −11+26=15-11 + 26 = 15. Probe: 7⋅15=105=4⋅26+17 \cdot 15 = 105 = 4 \cdot 26 + 1.

Typische Fehler

  • Vorzeichenfehler beim Einsetzen. Beim Ersetzen eines Rests muss die ganze Klammer mit dem Koeffizienten multipliziert werden: −(10−6)=−10+6-(10 - 6) = -10 + 6. Am Ende immer die Probe s⋅a+t⋅bs \cdot a + t \cdot b rechnen.
  • Negatives Inverses stehen lassen. −11-11 ist zwar ein Inverses von 77 modulo 2626, üblich ist aber der Vertreter 1515 zwischen 00 und 2525.
  • Ein Inverses suchen, wo keines existiert. Modulo mm ist aa nur invertierbar, wenn ggT⁡(a,m)=1\operatorname{ggT}(a, m) = 1. Wegen ggT⁡(240,46)=2\operatorname{ggT}(240, 46) = 2 hat 4646 modulo 240240 kein Inverses.
  • ss und tt für eindeutig halten. Es gibt unendlich viele Paare; zwei verschiedene Ergebnisse können beide richtig sein.

Verwandte Formeln