Seminar "Verschlüsselungs- und Codierungstheorie" RSA

Werbung
Seminar
"Verschlüsselungs- und
Codierungstheorie"
RSA-Verschlüsselungsverfahren
Julia Barteis
Matrikelnummer: 419879
Sommersemester 2017
10. Mai 2017
Inhaltsverzeichnis
1
Einleitung
2
Das RSA-Verschlüsselungsverfahren
1.1 Nötige Vorkenntnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Einstieg in die Verschlüsselung .
2.2 Die Schlüsselerzeugung . . . . .
2.3 Die Verschlüsselung . . . . . . .
2.3.1 Schnelle Exponentiation
2.4 Die Entschlüsselung . . . . . . .
2.5 Sicherheit des Verfahrens . . . .
2.6 Ein Beispiel zum Üben . . . . .
2.6.1 Die Aufgaben . . . . . .
2.6.2 Die Lösungen . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
4
. 4
. 4
. 6
. 6
. 7
. 8
. 11
. 11
. 11
1 Einleitung
Das RSA-Verschlüsselungsverfahren ist ein sogenanntes asymmetrisches Verschlüsselungsoder auch Public-Key-Verschlüsselungsverfahren. Dies bedeutet, dass zwischen Sender
und Empfänger zuvor kein Informations- oder Schlüsselaustausch stattgefunden haben
muss. Jeder Empfänger besitzt ein eigenes Schlüsselpaar bestehend aus einem geheimen und einem öentlichen Schlüssel. Der Sender besitzt hingegen nur den öentlichen
Schlüssel. Das Verfahren ist nach seinen Erndern Ron Riverst, Adi Shamir und Len
Adleman benannt, welche es am Massachusetts Institute of Technology entwickelt haben. Es war das erste Public-Key-Verschlüsselungsverfahren.
Für meine Ausarbeitung habe ich "Einführung in die Kryptographie" von Johannes
Buchmann und "Einführung in die algebraische Zahlentheorie" von Alexander Schmidt
verwendet.
1.1 Nötige Vorkenntnisse
Das RSA-Verschlüsselungsverfahren nutzt Erkenntnisse und Rechenoperationen der Zahlentheorie. Um die nötigen Rechenschritte des Verfahrens durchführen zu können, sollten
folgende Kenntnisse aus der Zahlentheorie geläug sein:
Der euklidische Algorithmus
Der euklidische Algorithmus erlaubt die schnelle Berechnung des gröÿten gemeinsamen
Teilers ggT(a, b) zweier Zahlen a, b ∈ Z .
Angewendet auf a = 7630 und b = 49 liefert er wegen
7630 = 49 ∗ 155 + 35,
49 = 1 ∗ 35 + 14,
35 = 2 ∗ 14 + 7,
14 = 2 ∗ 7
das Ergebnis ggT(7630, 49) = 7.
Der erweiterte euklidische Algorithmus ermöglicht es, den gröÿten gemeinsamen Teiler
2
zweier Zahlen a, b ∈ Z als Linearkombination ebendieser mit ganzzahligen Koezienten
darzustellen. Beispielsweise ist
7 = 35 − 2 ∗ 14
= 35 − 2 ∗ (49 − 1 ∗ 35) = −2 ∗ 49 + 3 ∗ 35
= −2 ∗ 49 + 3 ∗ (7630 − 49 ∗ 155)
= −467 ∗ 49 + 3 ∗ 7630
Die Eulersche
φ-Funktion
Die Eulersche φ-Funktion ist die Abbildung ϕ : N → N, die jeder natürlichen Zahl n die
Anzahl der zu n teilerfremden Zahlen m ≤ n zuordnet.
Die Abbildung ist multiplikativ (ϕ(m ∗ n) = ϕ(m) ∗ ϕ(n)), falls der gröÿte gemeinsame
Teiler von m und n genau eins ist (Buchmann, 2016, S.58). Darüber hinaus gilt aufgrund
der Denition einer Primzahl sofort: ϕ(p) = (p − 1) für jede Primzahl p.
Satz von Euler
Wenn der gröÿte gemeinsame Teiler der Zahlen a ∈ Z und n ∈ Z genau eins ist, so gilt
aϕ(n) = 1 mod n.
Satz zur Ordnung
Sei G eine Gruppe, g ∈ G und e ∈ Z. Dann gilt:
g e = 1 ⇔ e ist durch die Ordnung von g in G teilbar.
Die kleinste natürliche Zahl e, für die g e genau eins ist, nennt man die Ordnung von g.
3
2 Das
RSA-Verschlüsselungsverfahren
2.1 Einstieg in die Verschlüsselung
Zu Beginn ein kleiner Vergleich, um ein ungefähres Verständnis für die Idee der RSAVerschlüsselung oder ganz allgemein für eine Public-Key-Verschlüsselung zu erlangen:
Wie bereits zu Anfang erwähnt, besitzt jeder Empfänger dieser Art von Verschlüsselung
ein eigenes Schlüsselpaar, das sich aus einem öentlichen und einem privaten Schlüssel
zusammensetzt. Die Sender kennen natürlich nur den öentlichen Schlüssel. Dies ist
vergleichbar mit folgendem Beispiel:
Über die Adresse einer Person, also dessen Straÿe und Hausnummer, kann jeder dieser
Person eine Nachricht zukommen lassen, da diese Daten öentlich bekannt sind (z.B.
weil sie im Telefonbuch eingetragen sind). Andererseits kann aber nur der Empfänger
die Nachricht lesen, da nur diese Person den Briefkastenschlüssel besitzt.
2.2 Die Schlüsselerzeugung
Um einen Schlüssel zu generieren, werden zunächst zwei (sehr groÿe) Primzahlen p und
q erzeugt. Das Produkt der beiden Primzahlen n = p ∗ q ist das sogenannte RSA-Modul.
Es beschränkt die Gröÿe der Nachricht, die später verschlüsselt werden soll.
Wie eingangs bereits erwähnt, wird nun ein Spezialfall der Multiplikativität der Eulerschenφ-Funktion bewiesen, da diese Eigenschaft eine wichtige Rolle bei der Schlüsselerzeugung
spielt.
Lemma 2.2.1.
Ist die Zahl n ∈ N das Produkt von zwei Primzahlen p und q, dann gilt
ϕ(n) = (p − 1) ∗ (q − 1).
Beweis.
Die Zahl n ist das Produkt von p und q , somit ist
ϕ(n) = ϕ(p ∗ q).
Da der gröÿte gemeinsame Teiler von p und q eins ist, ist die φ-Funktion multiplikativ
ϕ(p ∗ q) = ϕ(p) ∗ ϕ(q)
4
und, weil es sich bei p und q um Primzahlen handelt, folgt
ϕ(p) ∗ ϕ(q) = (p − 1) ∗ (q − 1).
Im nächsten Schritt wählt der Algorithmus eine natürliche Zahl e mit folgenden Eigenschaften:
1) 1 < e < ϕ(n) = (p − 1) ∗ (q − 1)
2) ggT(e, (p − 1) ∗ (q − 1)) = 1
Anschlieÿend berechnet der Schlüsselerzeugungsalgorithmus eine natürliche Zahl d, die
die folgenden Merkmale aufweisen soll:
1) 1<d<(p − 1) ∗ (q − 1)
2) d ∗ e ≡ 1 mod (p − 1) ∗ (q − 1)
Die Zahlen n und e bilden den öentlichen Schlüssel. Der private Schlüssel besteht aus
der Zahl d.
Die Menge aller möglichen Tupel ((n, e),d) bezeichnet man als RSA-Schlüsselraum.
Beispiel 2.2.2.
Sei k=8, p=11 und q=23. Dann ergibt sich n = 11 ∗ 23 = 253. Als nächstes möchten
wir ein e auswählen, das für unsere Zwecke möglichst klein sein sollte, um besser damit
arbeiten zu können(bei einer maschinell erzeugten Verschlüsselung gibt es diese Intention
natürlich nicht). Dazu berechnen wir zunächst ϕ(n), um die an e gestellten Bedingungen
berücksichtigen zu können:
ϕ(n) = (p − 1) ∗ (q − 1) = 10 ∗ 22 = 220.
Da e zumeist als ungerade Zahl gewählt wird und 1 durch die erste Bedingung an e
ausgeschlossen werden kann, ist das kleinstmögliche e gleich 3. Wir kontrollieren ob die
Zahl 3 die gewünschten Eigenschaften hat:
1) 1 < 3 < 220: Dies ist oensichtlich korrekt.
2) ggT (3, 220) = 1: Im Allgemeinen prüft man solch eine Bedingung durch den
euklidischen Algorithmus.
5
Nun folgt die Berechnung von d.
Aus der zweiten Eigenschaft von d weiÿ man, dass man ein d berechnen kann, indem
man mithilfe des erweiterten euklidischen Algorithmus das multiplikativ Inverse zu e in
Z/ϕ(n)Z bestimmt:
1 = 220 − 3 ∗ 73
= −3 ∗ 73 mod 220 | + 3 ∗ 220
= 3 ∗ (220 − 73) mod 220
= 3 ∗ 147 mod 220
Damit ist d also gerade 147.
2.3 Die Verschlüsselung
Eine Nachricht m ∈ Z/nZ wird mit
c = me mod n
zum Chifretext c verschlüsselt.
Beispiel 2.3.1.
Setzen wir das zuvor gewählte Beispiel fort, ergibt sich für m = 26
c = 263 mod 253 = 119.
Für die Berechnung von me mod n wird gewöhnlich die sogenannte schnelle Exponentiation verwendet.
2.3.1 Schnelle Exponentiation
Damit die Verschlüsselung trotz groÿer Zahlen und dementsprechend groÿer Potenzen
ezient und schnell erfolgen kann, wird die schnelle Exponentiation genutzt:
Sei m ∈ Z/nZ und e ∈ N. Zur Berechnung von me benutzen wir die Binärentwicklung
e=
k
X
ei ∗ 2i
i=0
mit den Koezienten e1 , ..., ek ∈ {0, 1}.
Daraus folgt
e
Pk
m =m
i
i=0 ei ∗2
k
Y
i
=
(m2 )ei =
i=0
Y
i
m2 .
0≤i≤k,ei =1
Aus den obigen Gleichungen ergibt sich die folgende Idee für die Berechnung von me :
6
1) Berechne die sukzessiven Quadrate m2 für 0 ≤ i ≤ k.
i+1
i
Aufgrund der Potenzgesetze gilt folgende Gleichheit: m2 = (m2 )2 .
i
2) Bestimme me als das Produkt derjenigen m2 , für die ei = 1 ist, denn die Faktoren
i
(m2 )ei mit ei = 0 können vernachlässigt werden.
i
Beispiel 2.3.2.
Wir wollen 673 mod 100 berechnen.
Zunächst bestimmen wir die Binärentwicklung des Exponenten, also von 73:
73 = 26 + 23 + 20 .
Anschlieÿend werden die sukzessiven Quadrate bestimmt:
0
6(2 ) = 60 = 6,
1
6(2 ) = 36,
2
6(2 ) ≡ 362 ≡ −4 mod 100,
3
6(2 ) ≡ 16 mod 100,
4
6(2 ) ≡ 162 ≡ 56 mod 100,
5
6(2 ) ≡ 562 ≡ 36 mod 100,
6
6(2 ) ≡ −4 mod 100.
Damit folgt 673 ≡ 6 ∗ (62 )3 ∗ (62 )6 ≡ 6 ∗ 16 ∗ (−4) ≡ 16 mod 100.
Durch die schnelle Exponentiation waren also nur 6 Quadrierungen und zwei Multiplikationen anstatt 72 Multiplikationen modulo 100 notwendig.
2.4 Die Entschlüsselung
Die Entschlüsselung basiert auf folgendem Satz:
Satz 2.4.1.
Sei (n, e) ein öentlicher und d der dazugehörige private Schlüssel im RSA-Verfahren.
Dann gilt für jede natürliche Zahl m mit 0 ≤ m < n:
(me )d mod n = m.
Beweis.
Da
e ∗ d ≡ 1 mod (p − 1) ∗ (q − 1)
7
ist, gibt es eine natürliche Zahl l, sodass
e ∗ d = 1 + l ∗ (p − 1) ∗ (q − 1)
gilt. Demnach ist
(me )d = me∗d = m ∗ (m(p−1)∗(q−1) )l .
So sieht man, dass
(me )d ≡ m ∗ (m(p−1) )(q−1)∗l ≡ m mod p,
denn im Fall, dass p ein Teiler von m ist, ist die Behauptung oensichtlich korrekt, da
dann beide Seiten der Kongruenz 0 modulo p sind. Ist p kein Teiler von m, so ergibt sich
die Kongruenz mit dem kleinen Satz von Fermat, da p die Dierenz (me )d − m teilt und
analog auch q . Somit teilt auch das kleinste gemeinsame Vielfache von p und q , also n,
diese Dierenz und es ergibt sich damit:
(me )d ≡ m mod n.
Beispiel 2.4.2.
So wie zuvor auch seien n = 253, e = 3, c = 119 und d = 147. Mit Satz 2.4.1 kann man
nun c entschlüsseln und erhält
m = 119147 mod 253 = 26.
Wie man sieht, war das Verfahren erfolgreich, da 26 tatsächlich unsere anfängliche Nachricht war.
2.5 Sicherheit des Verfahrens
Um die Sicherheit des RSA-Verschlüsselungsverfahrens gewährleisten zu können muss
Folgendes gelten:
1. es muss praktisch unmöglich sein, mit Kenntnis von (n, e), also dem öentlichen
Schlüssel, auf den privaten Schlüssel d zu schlieÿen beziehungsweise diesen zu berechnen,
2. es darf kaum möglich sein, die Zerlegung von n in die Primzahlen p und q zu
bestimmen.
Die Sicherheit des RSA-Verfahrens ist nicht bewiesen, es gibt lediglich Indizien. Eine
mögliche Gefahr geht von neuen Techniken aus, insbesondere den Quantencomputern,
die ein Faktorisierungsproblem in Polynomzeit lösen können. Bis heute ist es allerdings
unmöglich, groÿe n ezient zu faktorisieren.
8
Die bislang hypothetische Gefahr ist Folgende:
Es ist ebenso schwer aus n und e den geheimen Schlüssel d zu bestimmen, wie eine
Faktorisierung von n zu nden. Falls ein Angreifer aber p und q kennt, kann er daraus n
bestimmen. Mithilfe von e kann er auch d berechnen, indem er d∗e ≡ 1 mod (p−1)∗(q−1)
löst, und erhält somit den privaten Schlüssel.
Konnte der Angreifer aus dem öentlichen den privaten Schlüssel d berechnen, so ist die
Berechnung der Faktorisierung ein Leichtes. Dazu setzt man
s = max{ t ∈ N | 2t teilt e ∗ d − 1}
und
k = (e ∗ d − 1)/2s .
Lemma 2.5.1.
Für alle zu n teilerfremden ganzen Zahlen a gilt
ord(ak + nZ) ∈ {2i | 0 ≤ i ≤ s}.
Beweis.
Sei a eine zu n teilerfremde Zahl. Nach Satz 2.4.1 gilt
ae∗d−1 ≡ 1 mod n,
und daraus folgt
s
(ak )2 ≡ 1 mod n.
Da für jedes Element g einer Gruppe G und jedes e ∈ Z gilt, dass g e genau dann eins
wird, wenn e durch die Ordnung von g in G teilbar ist, teilt die Ordnung von ak + nZ
die Zahl 2s .
Mit dem nun folgenden Theorem arbeitet der Algorithmus, der n faktorisieren soll.
Theorem 2.5.2.
Sei a eine zu n teilerfremde ganze Zahl. Wenn die Ordnung von ak mod p und ak mod q
verschieden ist, so ist 1 < ggT(a(2t )∗k − 1, n) < n für ein t ∈ {0, 1, 2, ..., s − 1}.
Beweis.
Durch Lemma 2.5.1 ist bekannt, dass die Ordnung von ak mod p und ak mod q in der
Menge {2i | 0 ≤ i ≤ s} liegen muss. Angenommen die Ordnung von ak mod p ist gröÿer
als die von ak mod q . Die Ordnung von ak mod q sei 2t . Dann gilt t < s und es folgt
t
a(2 )∗k ≡ 1 mod q
9
und nach Voraussetzung
t
a(2 )∗k 6≡ 1 mod p.
Deshalb gilt
t
ggT(a(2 )∗k − 1, n) = q.
Theorem 2.5.3.
Die Anzahl der zu n primen Zahlen a in der Menge {1, 2, ..., n − 1}, für die ak mod p
und ak mod q eine verschiedene Ordnung hat, ist wenigstens (p − 1) ∗ (q − 1)/2.
Der Beweis dieses Theorems folgt im anschlieÿenden Vortrag als Anwendung des Chinesischen Restsatzes.
Aus dem obigen Theorem ergibt sich direkt, dass die Wahrscheinlichkeit eines Erfolgs
bei diesem Faktorisierungsverfahren bei jedem erneuten Durchgang bei mindestens 1/2
liegt.
Beispiel 2.5.4.
Seien wieder n = 253, e = 3, c = 119 und d = 147. Damit ist
e ∗ d − 1 = 440.
Sei a = 2. Dann ergibt sich mit den Denitionen von s und k zunächst s = 3, denn 23
teilt 440, aber 24 teilt 440 nicht.
Mittels s = 3 errechnet sich k = 440/8 = 55 und nach Denition ist t ∈ {0, 1, 2}. Damit
gilt
ggT(2220 − 1, 253) = ggT(2110 − 1, 253) = 253.
Aber
ggT(255 − 1, 253) = 23.
Also ist 23 einer der Primfaktoren von n (in diesem Fall q). Demnach wurde tatsächlich
die Faktorisierung von n = 253 gefunden, denn aus n und q kann man natürlich auch p
ermitteln.
10
2.6 Ein Beispiel zum Üben
2.6.1 Die Aufgaben
Seien p = 3 und q = 11 .
1) Bestimme n, ϕ(n), d und e, wobei e die kleinstmögliche ungerade Zahl sein soll,
die den Eigenschaften von e genügt.
2) Verschlüssle m = 14 mithilfe der schnellen Exponentiation.
3) Nutze Satz 2.4.1, um aus dem Chiretext von 2) wieder die Nachricht m zu erhalten.
2.6.2 Die Lösungen
1) p ∗ q = 3 ∗ 11 = 33 ⇒ n = 33
ϕ(n) = (p − 1) ∗ (q − 1) = 2 ∗ 10 = 20 ⇒ ϕ(n) = 20
Für die Bestimmung von e geht man wie folgt vor:
e 6= 1 nach Voraussetzung
Für e = 3 prüfe die an e gestellten Bedingungen:
1 < 3 < 20 und ggT(3, 20) = 1 ⇒ e = 3
Mit dem erweiterten Euklidischen Algortithmus ergibt sich: d = 7
2) Zum Verschlüsseln verwenden wir c = me mod n. Also berechnen wir hier:
143 mod 33
Mithilfe der schnellen Exponentiation lässt sich 143 ezient bestimmen:
3 = 20 + 21
0
142 ≡ 14 mod 33
1
142 ≡ 31 mod 33
0
1
0
1
⇒ 143 = 142 +2 = 142 ∗ 142 = 14 ∗ 31 ≡ 5 mod 33
⇒ c=5
3) Hier verwenden wir Satz 2.4.1, wonach gilt:
(me )d mod n = m
Durch schnelle Exponentiation erhält man:
57 mod 33
0
1
2
57 = 52 ∗ 52 ∗ 52 = 5 ∗ 25 ∗ 31 ≡ 14 mod 33
⇒ m = 14
11
Literaturverzeichnis
[1]
Buchmann,
[2]
Schmidt,
Johannes: Einführung in die Kryptographie. 6. Au. Springer
Spektrum-Verlag, Berlin Heidelberg 2016
Alexander ; Einführung in die algebraische Zahlentheorie. 2. Au.
Springer-Verlag, Berlin Heidelberg 2007
12
Herunterladen