Kryptologie/Erweiterter euklidischer Algorithmus

Aus testwiki
Version vom 8. März 2020, 11:28 Uhr von imported>Philip Holtappel (Veränderung von OER-Materialien gekennzeichnet)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Einleitung

Kongruenz, Teilbarkeit und Teilerfremdheit
Kongruenz
Seien a,b und m, dann gilt abmodmm(ab)[1].
Teilbarkeit
Eine ganze Zahl a teilt eine ganze Zahl b genau dann, wenn es eine

ganze Zahl n gibt, für die ak=b ist.

Wir schreiben ab[2][3].

Teilerfremdheit
Zwei ganze Zahlen a und b, wobei mindestens einer der beiden Zahlen ungleich Null ist,

heißen teilerfremd, wenn ggT(a,b)=1[4]. Betrachten wir mehr als zwei Zahlen, dann

nennen wir diese paarweise teilerfremd, wenn je zwei beliebige von diesen Zahlen

zueinander teilerfremd sind[5][4].

Bei der Schlüsselerzeugung des RSA-Kryptosystems muss das multiplikative Inverse von e mit ed1modφ(N) bestimmt werden. Wir können hierzu den erweiterten euklidischen Algorithmus nutzen, denn dieser berechnet das multiplikative Inverse in ganzzahligen Restklassenringen[6][7].

In einem ersten Schritt bestimmt der Algorithmus hierfür den größten gemeinsamen Teiler ggT(a,b) zweier natürlicher Zahlen a und b. Anschließend werden in einem zweiten Schritt zwei ganze Zahlen s und t, welche die folgende Gleichung erfüllen[6]:

ggT(a,b)=sa+tb[6].

Angewandt auf das RSA-Verschlüsselungsverfahren können wir so das multiplikative Inverse von e bestimmen, da wir ed1modφ(N) in ggT(e,φ(N))=ed+kφ(N) umformen können[8].

Die Umformung erfolgt mittels Definition von Kongruenz und Teilbarkeit:

ed1modφ(N)

φ(N)(ed1), nach Definition der Kongruenz

φ(N)(k)=ed1, nach Definition der Teilbarkeit

1=ed+kφ(N), wobei ggT(e,φ(N))=1 nach Voraussetzung des RSA-Kryptosystem e teilerfremd zu φ(N)

Erweiterter Euklidischer Algorithmus

Der erweiterte euklidische Algorithmus wird auf zwei Zahlen a,b angewandt und besteht aus zwei Teilen:

  1. Berechnung des ggT(a,b)=sa+tb (auch als euklidischer Algorithmus bekannt[9])
  2. Berechnung zweier ganzer Zahlen s und t, welche die Gleichung ggT(a,b)=sa+tb erfüllen[10]

Zu Teil 1: Berechnung des ggT(a,b)

Größte gemeinsame Teiler, Lemma 1 des ggT,

Division mit Rest und Lemma 2 des ggT

Größte gemeinsame Teiler
Seien a,b, wobei mindestens eine der beiden Zahlen ungleich Null.

Wir bezeichnen d:=ggT(a,b) mit d als den größten gemeinsamen

Teiler der Zahlen a und b, falls gilt:

(1): da und db

und

(2): Für alle c mit ca und cbcd[11].

Lemma 1 des ggT
Seien a,b, wobei nicht a=b=0. Es gilt ggT(|a|,|b|)=ggT(a,b)[12].
Division mit Rest
Seien a,b mit b0 eindeutig bestimmte Zahlen kund r gibt,

für die gilt: a=kb+r,0r<|b|[13][14].

Lemma 2 des ggT
Seien a,b,k,r und a=kb+r, dann folgt: ggT(a,b)=ggT(b,r)[15].

Betrachten wir zunächst die Berechnung des ggT(a,b).

Wir haben bei der formalen Einführung des ggT bereits gezeigt, dass nach Lemma 1 des ggT ggT(a,b)=ggT(a,b) und setzen daher voraus, dass 0<ba gilt.

Wir können die Division mit Rest auf a und b anwenden und erhalten

a=k1b+r1, mit 0r1<|b|.

Nun unterscheiden wir zwei Fälle:

  • (1.1) r1=0, dies ist die Abbruchbedingung und wir sind mit Teil 1 fertig
  • (1.2) r10 und wir müssen fortfahren.

Im ersten Fall r1=0 teilt die Zahl b die Zahl a mit a=k1b+0, es gilt ggT(a,b)=b und wir sind mit dem ersten Teil des erweiterten euklidischen Algorithmus fertig.

Im zweiten Fall r10 wenden wir die Division mit Rest auf b und r1 an und erhalten b=k2r1+r2 mit 0r2<r1. Es ergeben sich erneut zwei Fälle: r2=0 und r20.

Tritt der erste Fall "Rest der Gleichung ist Null" ein, so verfahren wir analog zum r1=0 und erhalten den gesuchten ggT(a,b) mit ggT(a,b)=r1, da nach Lemma 2 des ggT gilt: ggT(a,b)=ggT(b,r1).

Andernfalls verfahren wir analog zu dem obigen Fall r10.

Wir folgen diesem Schema n-mal, bis wir ein rn mit rn=0 berechnen und das Verfahren abgebrochen wird.

Somit erhalten wir ggT(a,b)=ggT(rn1,rn)=ggT(rn1,0)=rn1[16].

Dies lässt sich besonders gut anhand eines Beispiels nachvollziehen.

Beispiel Berechnung des ggT(a,b)

Seien a=24 und b=11.

Nach der Division mit Rest gilt:

Gleichung 1: 24=211+2, Fall (1.2)

Gleichung 2: 11=52+1, Fall (1.2)

Gleichung 3: 2=21+0, Fall (1.1)

Es gilt ggT(24,11)=1.

Zu Teil 2: Berechnung der ganzzahligen Koeffizienten s und t

Größte gemeinsame Teiler, Lemma von Bézout
Größte gemeinsame Teiler
Seien a,b, wobei mindestens eine der beiden Zahlen ungleich Null.

Wir bezeichnen d:=ggT(a,b) mit d als den größten gemeinsamen

Teiler der Zahlen a und b, falls gilt:

(1): da und db

und

(2): Für alle c mit ca und cbcd[11].

Lemma von Bézout
Für alle a,b existieren s,t, sodass gilt: ggT(a,b)=sa+tb[17][18].

Aus der Berechnung des ggT(a,b) wissen wir, dass

ggT(a,b)=b für n=1 Durchführungen und ba

oder

ggT(a,b)=rn1 für n>1 Durchführungen

des Schemas aus Teil 1 ist.

Es gilt nach dem Lemma von Bézout ggT(a,b)=rn1=sa+tb.

Wurde zur Berechnung des ggT(a,b) nur die Gleichung a=k1b+r1 benötigt, so ist r1=0 und wir können die ganzzahligen Koeffizienten s=1 und t=k1 aus der Gleichung ablesen.

Andernfalls müssen wir durch das Einsetzen der Informationen aus den Gleichungen, die man bei der Berechnung des ggT(a,b) berechnet hat, die Gleichung rn1=sa+tb erzeugen.

Allgemein ergeben sich drei Fälle:

  • (2.1) die Gleichung enthält a und b in der Form rn1=ggT(a,b)=sa+tb bzw. wird in diese Form umgestellt
  • (2.2) die Gleichung beinhaltet genau einen der beiden vorausgesetzten Zahlen a und b
  • (2.3) die Gleichung enthält weder a noch b.

Im ersten Fall (2.1) sind die ganzzahligen Koeffizienten der Zahlen a bzw. b genau s bzw. t und können, nach geeigneter Umstellung, in die Form rn1=ggT(a,b)=sa+tb abgelesen werden. Das Verfahren wird daraufhin abgebrochen.

Im zweiten Fall (2.2) kann der ganzzahlige Koeffizient der vorhanden Zahl a bzw. b genau s bzw. t noch nicht abgelesen werden, da die Informationen zur fehlenden Zahl a bzw. b sich auf die den Koeffizienten der vorhanden Zahl a bzw. b auswirken können. Die vorhandene Zahl wird stattdessen "nur" beibehalten und nicht durch andere Informationen ersetzt. Der fehlende gesuchte Koeffizient muss durch erneutes Einsetzten von Informationen aus vorherigen Gleichungen aus Teil 1 bestimmt werden, wobei die bereits vorhandene Zahl a bzw. b nicht weiter durch Informationen ersetzt werden muss.

Im letzten Fall (2.3) müssen wir die in der Gleichung enthalten Reste aus den vorherigen Gleichungen aus Teil 1 erneut einsetzen[15].

Wir veranschaulichen das Vorgehen anhand eines Beispiels.

Beispiel Berechnung der ganzzahligen Koeffizienten s und t

Berechnung der Faktoren s und t mit ggT(24,11)=s24+t11.

Wir wissen aus dem obigen Beispiel zu Teil 1, dass gilt: ggT(24,11)=1

und wir wissen nach Gleichung 2 aus Teil 1, dass gilt: 11=52+1

Da wir die Gleichung nach ggT(a,b)=sa+tb umformen wollen, muss der ggT(24,11)=1 zunächst alleine auf einer Seite stehen

11=52+1

1=1152, Fall (2.2)

1=115(24211), Fall (2.1)

1=524+1111, Fall (2.1) mit Umformung

Nun können wir die Koeffizienten s=5 und t=11 ablesen.

Zur Veranschaulichung führen wir noch die Probe durch:

524+1111=120+121=1.

Lernaufgabe

Aufgabe

Wenden Sie den erweiterten euklidischen Algorithmus auf a=23 und b=120 an.

Bemerkung: Wir nutzen diese Rechnung im Beispiels der Schlüsselerzeugung des RSA-Verschlüsselungsverfahrens.

Lösung
Wir wenden den erweiterten euklidischen Algorithmus auf das Beispiel zur Schlüsselgenerierung des RSA-Verschlüsselungsverfahrens an.

Berechnung ggT(a,b)

Nach der Division mit Rest gilt:

Gleichung 1: 120=523+5, Fall (1.2)

Gleichung 2: 23=45+3, Fall (1.2)

Gleichung 3: 5=13+2, Fall (1.2)

Gleichung 4: 3=12+1, Fall (1.2)

Gleichung 5: 2=21+0, Fall (1.1)

Es gilt ggT(120,23)=1.

Berechnung der Faktoren s und t mit ggT(a,b)=sa+tb

Da wir die Gleichung nach ggT(a,b)=sa+tb umformen wollen, muss der ggT(120,23)=1 zunächst alleine auf einer Seite stehen

3=12+1

1=312, Fall (2.3)

1=31(513), Fall (2.3), da nach Gleichung 3 aus Teil 1 5=13+2513=2

1=235, Fall (2.3)

1=2(2345)5, Fall (2.2), da nach Gleichung 2 aus Teil 1 23=45+32345=3 mit b=23

1=22395, da 855=95, Fall (2.2)

1=2239(120523), Fall (2.1) da nach Gleichung 1 aus Teil 1 120=523+5120423=5

1=2239120+4523, durch Umformung

1=47239120, Fall (2.1)

s=47 und t=9

Probe

47239120=10811080=1

Lernempfehlung

Kursübersicht
Übergeordnete Lerneinheit
7.1: Schlüsselerzeugung des RSA-Verschlüsselungsverfahrens
Vorherige Lerneinheit Aktuelle Lerneinheit Empfohlene Lerneinheit
7.1.4: Miller-Rabin-Test (Primzahltest 3) 7.1.5: Erweiterter euklidischer Algorithmus 7.1.6: Eulersche φ-Funktion

Literatur

  1. Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 37.
  2. Seite „Teilbarkeit“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 25. November 2019, 15:44 UTC. URL: https://de.wikipedia.org/w/index.php?title=Teilbarkeit&oldid=194364839 (Abgerufen: 12. Dezember 2019, 14:43 UTC; Formulierung verändert)
  3. Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. 22f.
  4. 4,0 4,1 Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. S. 26.
  5. Seite „Teilerfremdheit“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 26. September 2019, 13:33 UTC. URL: https://de.wikipedia.org/w/index.php?title=Teilerfremdheit&oldid=192615323 (Abgerufen: 10. Januar 2020, 13:56 UTC; Formulierung verändert)
  6. 6,0 6,1 6,2 Seite „Erweiterter euklidischer Algorithmus“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 20. Dezember 2018, 08:34 UTC. URL: https://de.wikipedia.org/w/index.php?title=Erweiterter_euklidischer_Algorithmus&oldid=183868594 (Abgerufen: 30. Dezember 2019, 14:06 UTC; Formulierung verändert)
  7. Forster, O. (2015). Algorithmische Zahlentheorie (2., überarbeitete und erweiterte Auflage). Springer Spektrum. S. 45.
  8. Rivest, R. L., Shamir, A., & Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2) (S. 120–126). S. 124.
  9. Lehman, E., Leighton, T., & Meyer, A. R. (2010). Mathematics for computer science. Technical report, 2006. Lecture notes. S. 249.
  10. Kurzweil, H. (2008). Endliche Körper: Verstehen, rechnen, anwenden (2., überarb. Aufl). Springer. S. 57.
  11. 11,0 11,1 Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Lemgo: Heldermann Verlag. S. 24.
  12. Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. S. 30.
  13. Seite „Division mit Rest“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 24. Januar 2020, 18:50 UTC. URL: https://de.wikipedia.org/w/index.php?title=Division_mit_Rest&oldid=196144598 (Abgerufen: 2. Februar 2020, 14:22 UTC; Formulierung verändert)
  14. Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. S. 19.
  15. 15,0 15,1 Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. S. 32.
  16. Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag, S. 31f.
  17. Seite „Lemma von Bézout“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 11. Oktober 2019, 09:53 UTC. URL: https://de.wikipedia.org/w/index.php?title=Lemma_von_B%C3%A9zout&oldid=193035164 (Abgerufen: 6. Januar 2020, 13:39 UTC; Formulierung verändert)
  18. Ziegenbalg, J. (2015). Elementare Zahlentheorie: Beispiele, Geschichte, Algorithmen (2., überarb. Aufl). Springer Spektrum. S. 47.