Modul 4c - Proseminar
Grundlagen der Mathematik: Geometrie, Algebra und Zahlentheorie
Gruppe 3 - Dr. Regula Krapf
Thema: Primzahlen - Kryptographie
Vortrag 10 - 05.07.2018
Ausarbeitung von Tom Henn
Matrikelnummer: 216202276
Ausarbeitung basierend auf:
Buchmann, Johannes:
Einführung in die Kryptographie, Kapitel 8
6. Auflage, Springer: Berlin, Heidelberg 2016.
1 Einleitung 1
2 Das RSA-Verfahren 2
2.1 Einleitung . . . 2
2.2 Ablauf . . . 2
2.3 Verschlüsselung und Entschlüsselung . . . 3
2.4 Beispiel . . . 4
3 Exkurs - Der Chinesische Restsatz 8 4 Das Rabin - Verfahren 10 4.1 Einleitung . . . 10
4.2 Ablauf . . . 10
4.3 Verschlüsselung und Entschlüsselung . . . 10
4.4 Beispiel . . . 11
1 Einleitung 1
1 Einleitung
In dieser Ausarbeitung werden zwei kryptographische Verfahren, genauer Public - Key - Verschlüsselungsverfahren, erläutert. Dabei wird auch auf bereits im Laufe des Seminars erworbene Inhalte zurückgegriffen wie etwa den euklidischen und den erweiterten euklidischen Algorithmus zur Bestimmung des größten gemeinsamen Teilers zweier ganzer Zahlen, den kleinen Satz des Fermat sowie die Euler’sche Funktion und den Satz von Euler-Fermat.
Ein grundlegendes Problem beim Verschlüsseln von Texten etc. ist die sichere Weitergabe der zur Entschlüsselung benötigten Schlüssel und der damit einhergehende organisatori- sche Aufwand. Um dieses Problem etwas greifbarer zu machen wird folgendes Beispiel von J. Buchmann aus dessen Veröffentlichung ’Einführung in die Kryptographie’ zitiert:
’Im Januar 2015 gab es ungefähr drei Milliarden Internet-Nutzer. Wollten die alle einen Schüssel austauschen wären das etwa 3·1018 Schlüssel. Das wäre organisatorisch nicht zu bewältigen.’
Public - Key - Verschlüsselungsverfahren umgehen genau diese Problematik, indem ein öffentlicher Schlüssel durch den Empfänger einer Nachricht vergeben wird. Dieser Schlüssel genügt dem Sender der Nachricht, um seine Nachricht zu verschlüsseln. Die Entschlüsselung der Nachricht gelingt hingegen nur mit dem geheimen Schlüssel des Empfängers.
Insbesondere wird im Rahmen dieser Ausarbeitung auf das erste und noch immer wich- tigste Public - Key - Verschlüsselungsverfahren, welches nach seinen Entwicklern Rivest, Shamir und Adleman als RSA - Verfahren bekannt wurde, sowie auf das Rabin - Ver- fahren eingegangen.
2 Das RSA-Verfahren
2.1 Einleitung
Die Sicherheit des RSA-Verfahrens hängt mit der Schwierigkeit zusammen große Zahlen in ihre Primfaktoren zu zerlegen. Somit gilt es als sehr sicher, solange kein Verfahren zur einfachen und schnellen Faktorisierung großer Zahlen vorliegt.
Eine etwa 170-stellige Dezimalzahl, welche seit 2001 durch die Forschungsabteilung der Firma RSA Laborities im Rahmen eines Wettbewerbs veröffentlicht wurde, wurde Ende 2003 durch die Zusammenarbeit mehrerer Universitäten als faktorisiert gemeldet. Der da- zu benötigte Rechenaufwand betrug ca. 30 ’PC-Jahre’ und konnte durch Parallelverarbei- tung mehrerer Rechenzentren innerhalb von 5 Monaten geleistet werden. Dieses Beispiel zeigt eindrucksvoll die Sicherheit dieser Verschlüsselungsmethode auf.
2.2 Ablauf
Im Folgenden wird zunächst der Ablauf des RSA-Verfahrens aufgezeigt und dann mithilfe eines Beispiels greifbar gemacht. Das RSA-Verfahren läuft wie folgt ab:
1. Wähle zwei sehr große Primzahlenp und q.
2. Als Produkt der beiden Primzahlen ergibt sich der RSA-Modul n=p·q.
3. Bestimme ϕ(n) =ϕ(p·q) =ϕ(p)·ϕ(q) = (p−1)·(q−1).
4. Wähle e mit 1< e < ϕ(n) = (p−1)(q−1) und ggT (e, ϕ(n)) = 1.
Das Paar e (Englisch: encryption) und n ergibt somit den öffentlichen Schlüssel (e, n), welcher dem Sender einer Nachricht als Verschlüsselung derselben dient.
5. Im Anschluss ist der geheime Schlüsseld (Englisch: decryption) mit 1< d < ϕ(n) = (p−1)(q−1) und d·e≡1mod ϕ(n) = (p−1)(q−1)
zu berechnen, der der Entschlüsselung der Nachricht durch den Empfänger dient.
2 Das RSA-Verfahren 3
2.3 Verschlüsselung und Entschlüsselung
Satz 1: Sei der Klartext T, der verschlüsselte Geheimtext G, e mit 1 < e < ϕ(n) und ggT (e, ϕ(n)) = 1 und d mit 1 < d < ϕ(n) und d·e ≡ 1 mod ϕ(n) sowie n = p·q und p, q ∈P, dann gilt für G=Te mod n:
T =Gd mod n.
Der Beweis folgt mit der Anwendung des Satzes von Euler-Fermat:
ggT(a, m) = 1 ⇒ aϕ(m) ≡1mod m.
Beweis 1:
Sei d·e≡1 mod ϕ(n)
⇔ ∃r ∈Z:e·d =r·ϕ(n) + 1.
Somit ergibt sich für
(Te)d≡Te·d≡Tr·ϕ(n)+1 ≡Tr·ϕ(n)·T ≡(Tϕ(n))r·T
ggT(e, d) = 1, da e, d∈P (Euler-Fermat)
⇔(Tϕ(n))r·T ≡1r·T ≡T.
Die Zahlen e und d sind also invers zueinander mod ϕ(n) und ermöglichen es den Ge- heimtext wieder in den Klartext umzuwandeln, bzw. den Klartext in den Geheimtext zu verschlüsseln.
2.4 Beispiel
Wir wählen:
1. p= 7, q = 11⇒n= 77
2. ϕ(77) =ϕ(7)·ϕ(11) = 6·10 = 60
3. e= 47⇒ Öffentlicher Schlüssel: (47,77)
4. 47·d≡ 1mod 60.
Zur Lösung des Ausdrucks d·e ≡ 1 mod ϕ(n) = (p−1)(q−1) ist zunächst folgende Umformung nötig:
d·e ≡1mod ϕ(n)
⇔ϕ(n) | (d·e−1)
⇔ ∃ q ∈Z: ϕ(n)·q =d·e−1
⇔d·e−q·ϕ(n) = 1.
Die Gleichungd·e−q·ϕ(n) = 1 mitk =−q liegt nun als lineare Diophantische Gleichung vor und lässt sich somit mithilfe des erweiterten Euklidischen Algorithmus lösen.
Übertragen auf das oben begonnene Beispiel lautet die Diophantische Gleichung also:
47·d+ 60·x= 1.
2 Das RSA-Verfahren 5
Der sich daraus ergebende erweiterte Euklidische Algorithmus zur Bestimmung von d wird im Folgenden mithilfe einer Tabelle zusammen gefasst:
a b q r d x
47 60 0 47 23 -18 60 47 1 13 -18 23
47 13 3 8 5 -18
13 8 1 5 -3 5
8 5 1 3 2 -3
5 3 1 2 -1 2
3 2 1 1 1 -1
2 1 2 0 0 1
Es ergibt sich demzufolge wie erwartet derggT(47,60) = 1 mithilfe des Euklidischen Algo- rithmus und weiterhin lässt sichd= 23 mithilfe des erweiterten Euklidischen Algorithmus bestimmen. Dies lässt sich außerdem auch durch eine Probe verifizieren.
Probe:
23·47 = 1081 1081 : 60 = 18 Rest 1
⇒23 ≡ 1 mod60
⇒ Geheimer Schlüssel: (23,77)
Nun wird der zu verschlüsselnde Klartext T = 2 gewählt. Gemäß Satz 1:G =Te mod n wird nun der Geheimtext G berechnet.
247 ≡25·(27)6 ≡32·516 ≡32·(512)3 mod77 Nebenrechnung:
512 = 2601 2601 : 77 = 33 Rest 60
⇒512 ≡ 60 mod77
⇒247 ≡32·603 ≡32·(−17)3 ≡32·(−17)·172 mod 77
Nebenrechnung:
172 = 289 289 : 77 = 3 Rest 58
⇒172 ≡ 58 mod77
32·(−17) = −544
−544 : 77 = −7 Rest −5
⇒32·(−17)≡ −5 mod 77
⇒247 ≡(−5)·58≡(−5)·(−19)≡95≡ 18 mod 77
Für den mithilfe des öffentlichen Schlüssels (47,77) verschlüsselten Klartext T = 2 ergibt sich entsprechend der Geheimtext G = 18. Gemäß Satz 1: T = Gd mod n kann der Geheimtext G = 18 durch den geheimen Schlüssel (23,77) nun wieder entschlüsselt werden.
1823 ≡18·(182)11 ≡18·32411 mod 77
Nebenrechnung:
324 : 77 = 4 Rest 16
⇒324≡ 16 mod77
⇒1823≡18·1611 ≡18·16·(162)5 mod 77
Nebenrechnung:
18·16 = 288 288 : 77 = 3 Rest 57
⇒18·16≡ 57≡ −20mod 77 16·16 = 256
256 : 77 = 3 Rest 25
⇒162 ≡25 mod 77
⇒1823 ≡(−20)·255 ≡(−500)·(252)2 mod77
2 Das RSA-Verfahren 7
Nebenrechnung:
−500 : 77 =−6 Rest −38
⇒(−500)≡ (−38) mod 77 252 = 625
625 : 77 = 8 Rest 9
⇒252 ≡9mod 77
⇒1823≡(−38)·92 ≡(−38)·81≡(−38)·4mod 77
Nebenrechnung:
(−38)·4 = −152 (−152) : 77 =−1 Rest −75
⇒(−38)·4≡ −75≡2mod 77
⇒1823≡2 mod77
Aus dem Geheimtext G = 18 konnte folglich mithilfe des geheimen Schlüssels (23,77) wieder der Klartext T = 2 entschlüsselt werden.
3 Exkurs - Der Chinesische Restsatz
Seien m1, ..., mn natürliche, paarweise teilerfremde Zahlen und seiena1, ..., an ganze Zah- len. Dann ergibt sich für folgende simultane Kongruenz:
x≡a1 mod m1, x≡a2 mod m2, ..., x≡an mod mn wie folgt eine Lösung.
Setze
m =
n
Y
i=1
mi, Mi=m/mi, 1≤i≤n.
Da die mi paarweise teilerfremd sind gilt
ggT(mi, Mi) = 1,1≤i≤n.
Es gibt also Zahlen yi mit yi∈Z und 1≤i≤n für die gilt yi·Mi ≡1 mod mi.
Diese yi lassen sich nun mithilfe des erweiterten Euklidischen Algorithmus bestimmen.
Dann setzen wir
x= (
n
X
i=1
aiyiMi) mod m.
Wir zeigen nun, dass für die simultane Kongruenz
x≡a1 mod m1, x≡a2 mod m2, ..., x≡an mod mn x eine Lösung ist.
Aus
x= (
n
X
i=1
aiyiMi) mod m.
folgt
aiyiMi ≡ai mod mi,1≤i≤n.
3 Exkurs - Der Chinesische Restsatz 9
Weiterhin ist die Zahl mi ein Teiler vonMi für j 6=i , sodass gilt ajyjMj≡0 mod mi,1≤i, j ≤n, i6=j.
Daraus folgt also
x≡aiyiMi+
n
X
j=1,j6=i
ajyjMj≡ai mod mi,1≤i≤n.
Somit löst x die oben gegebene simultane Kongruenz.
Beispiel:
Es sei
x≡2 mod4, x≡3mod 7.
Also ist m1 = 4, m2 = 7, a1 = 2, a2 = 3.
Somit ergibt sich m = 28, M1 = 28/4 = 7, M2 = 28/7 = 4.
Wir lösen nun y1·M1 ≡1mod 4. ⇒ y1·7≡3·7 = 21≡1mod 4.
Die kleinste Lösung lautet demnach: y1 = 3.
Wir lösen nun y2·M2 ≡1mod 7. ⇒ y1·4≡2·4 = 8≡1mod 7.
Die kleinste Lösung lautet demnach: y2 = 2.
Wir erhalten also x≡a1·y1·M1+a2·y2·M2 mod m.
⇔x≡3·2·7 + 2·3·4≡42 + 24≡66mod 28
Eine Lösung der obigen simultanen Kongruenz lautet somit x= 66.
4 Das Rabin - Verfahren
4.1 Einleitung
Während das RSA - Verfahren auf die Schwierigkeit der Faktorisierung einer großen natürlichen Zahl aufbaut, lässt sich jedoch nicht beweisen, dass die Schwierigkeit eine RSA - Verschlüsselung zu brechen genauso schwer ist wie das damit engverwandte mathema- tische Problem. Die Sicherheit des Rabin - Verfahrens lässt sich hingegen hinreichend durch die Äquivalenz zu einem bestimmten Faktorisierungsproblem beweisen.
4.2 Ablauf
Im Folgenden wird zunächst der Ablauf des Rabin-Verfahrens aufgezeigt und dann mithilfe eines Beispiels greifbar gemacht. Das Rabin-Verfahren läuft wie folgt ab:
1. Wähle zwei Primzahlen p und q mit p ≡ q ≡ 3 mod 4. Das Paar (p, q) ergibt den geheimen Schlüssel.
2. Als Produkt der beiden Primzahlen ergibt sich der Rabin-Modul n =p·q, welcher den öffentlichen Schlüssel darstellt.
3. Der Sender der Nachricht verschlüsselt seine Nachricht mithilfe des öffentlichen Schlüssels n wie folgt: G = T2 mod n, wobei G den verschlüsselten Geheimtext und T den unverschlüsselten Klartext darstellt.
4. Der Empfänger entschlüsselt die Nachricht, indem er mithilfe des geheimen Schlüs- sels (p, q) vier Quadratwurzeln des Geheimtext G ermittelt, von welcher eine Qua- dratwurzel dem Klartext T entspricht.
4.3 Verschlüsselung und Entschlüsselung
Satz 2: Sei der Klartext T, der verschlüsselte Geheimtext G und n =p·q sowie p≡q ≡ 3 mod 4 mit p, q ∈P, dann gilt für
Tp =G(p+1)/4 mod p Tq =G(q+1)/4 mod q:
Tp2 ≡G mod p und Tq2 ≡G mod q.
4 Das Rabin - Verfahren 11
Der Beweis folgt mit der Anwendung des Satzes von Euler-Fermat:
ggT(a, m) = 1 ⇒ aϕ(m) ≡1mod m.
Beweis 2:
Tp2 = (Gp+14 )2 =Gp+12 = (T2)p+12 =Tp+1
⇔Tp2 =Tp−1[≡1mod p (Satz von Euler-Fermat)]·T2 ≡G mod p.
Analog für Tq2.
Dabei stellt ±Tp die beiden Quadratwurzeln von G+p·z mitz ∈Zund ±Tq die beiden Quadratwurzeln von G+q·z mit z ∈Z dar. Diese vier Quadratwurzeln lassen sich nun mithilfe des Chinesischen Restsatzes ermitteln, welcher im Abschnitt 3 bereits erläutert wurde.
Nun können mithilfe des erweiterten Euklidischen Algorithmus die Koeffizientenyp, yq ∈Z der Diophantischen Gleichung yp·p+yp·q= 1 bestimmt werden.
Dann werden r und s berechnet mit
r = (yp·p·Tq+yq·q·Tp) mod n, s= (yp·p·Tq−yq·q·Tp)mod n.
Die Zahlen±rund±sergeben nun die vier Quadratwurzeln vonGund somit den Klartext T. Welche der vier Quadratwurzeln den Klartext T darstellt ist dabei zunächst unklar, allerdings können dazu vorab Vereinbarungen zwischen Sender und Empfänger der Nach- richt getroffen werden oder aber der Empfänger wählt den im Kontext logischen Klartext T.
4.4 Beispiel
Wir wählen
1. p= 7, q = 11⇒n= 77 2. T = 13
4. Der Empfänger löst nun zunächst die Diophantische Gleichung yp·p+yq·q = 1 mithilfe seines geheimen Schlüssels (p, q) = (7,11).
Wir verzichten an dieser Stelle auf die Anwendung des erweiterten Euklidischen Algorithmus, da sich folgende triviale Lösung ergibt: −3·7 + 2·11 = 1.
Somit ergeben sich yp =−3 und yq= 2.
5. Weiterhin können die Quadratwurzeln wie folgt bestimmt werden:
Tp =G(p+1)/4 mod p= 152 mod 7≡1 mod 7,
Tq=G(q+1)/4 mod q= 153 mod11≡43 mod11≡ −2mod 11.
6. Es ergibt sich also für
r = (yp·p·Tq+yq·q·Tp) mod n ⇒r= (−3)·7·(−2) + 2·11·1 = 64 mod 77, und für
s= (yp·p·Tq−yq·q·Tp) mod n ⇒r= (−3)·7·(−2)−2·11·1 = 20mod 77.
Die vier Quadratwurzeln von 169mod77 lauten also±64 und±20mod77, wodurch sich für den Klartext T die folgenden vier Möglichkeiten ergeben:
T ∈ {13,20,57,64}.