Geheimnisvolle Codes

Werbung
Geheimnisvolle Codes
1
vorgelegt bei:
Mathematisches Seminar für LAK
Univ.-Prof. Karin Baur
WS 2014/15
von:
Julia Hager
0910838
[email protected]
1
Quelle: http://www.austromath.at/medienvielfalt/materialien/krypto/krypt.png
Inhaltsverzeichnis
1 Einleitung
3
2 Atbasch und Verschiebungschiffre
5
3 Dualsysteme
3.1 Morsecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Binärsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
4 Public-Key-Verfahren
4.1 RSA-Verfahren . . . . . . .
4.1.1 Schlüsselerzeugung .
4.1.2 Verschlüsselung . . .
4.1.3 Entschlüsselung . . .
4.1.4 Auswahl von p und q
4.1.5 Auswahl von e . . .
4.1.6 RSA-Anwendungen .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
11
14
16
17
17
18
5 Appendix
20
5.1 Eigene Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.3 Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2
1 Einleitung
Kryptographie leitet sich aus den beiden griechischen Wörtern kryptos (verborgen,
geheim) und graphein (schreiben) ab.2 Kryptographie ist daher die Wissenschaft, die
sich mit Verschlüsselungen beschäftigt.
In der vorliegenden Arbeit habe ich mit dem Thema der Kryptographie
auseinandergesetzt, ihre Anfänge beleuchtet und vor allem das heutzutage meist
verwendetste Verfahren, das RSA-Verschlüsselungsverfahren genauer unter die Lupe
genommen. Wozu brauchen wir eigentlich Verschlüsselungssysteme? Und was ist ein
Verschlüsselungsverfahren überhaupt?
Abbildung 1: Wozu codieren?
Bob und Alice möchten miteinander kommunizieren, ohne, dass Drittpersonen ihre
Nachrichten mithören/-lesen können. Aus diesem Grund benötigen sie ein System,
einen Code, der ihre Nachrichten verschlüsselt und sie vor Lauschangriffen von
Drittpersonen geheim hält.
Definition 1.1 (Verschlüsselungsverfahren)3
Ein Verschlüsselungsverfahren oder Kryptosystem ist ein Fünftupel
(P, C, K, E, D) mit folgenden Eigenschaften:
2
3
Laszlo u.a., Kryptologie im Verlauf der Geschichte
Buchmann, Einführung in die Kryptographie, S.59
3
1. P ist eine Menge. Sie heißt Klartextraum. Ihre Elemente heißen Klartexte
(Plaintext).
2. C ist eine Menge. Sie heißt Chiffretextraum. Ihre Elemente heißen
Chiffretexte oder Schlüsseltexte (Ciphertext).
3. K ist eine Menge. Sie heißt Schlüsselraum. Ihre Elemente heißen Schlüssel
(Keys).
4. E = {Ek : k ∈ K} ist eine Familie von Funktionen Ek : P → C. Ihre Elemente
heißen Verschlüsselungsfunktionen (Encryption).
5. D = {Dk : k ∈ K} ist eine Familie von Funktionen Dk : C → P. Ihre Elemente
heißen Entschlüsselungsfunktionen (Decryption).
Für jedes e ∈ K gibt es ein d ∈ K, so dass für alle p ∈ P die Gleichung Dd (Ee (p)) = p
gilt.
4
2 Atbasch und Verschiebungschiffre
Eine sehr alte, wahrscheinlich um 500 vor Christus bereits verwendete Geheimschrift,
nennt sich Atbasch. Das Wort setzt sich aus den beiden ersten und letzten
Buchstaben des hebräischen Alphabets zusammen und beschreibt zugleich die
Verschlüsselungsmethode: Der erste Buchstabe aleph (A) wird mit dem letzten
Buchstaben tow (T), der zweite Buchstabe beth(B) wird mit dem vorletzten
Buchstaben schin vertauscht und so weiter. Aus diesen Vertauschungen ensteht nun
ein Buchstabensalat, aus dem man bei schnellem Hinschauen den Klartext nicht
entziffern kann.4
Beispiel 2.1
Zieht man unser heute weitverbreitetes lateinische Alphabet mit 26 Buchstaben als
Klartext-, Chiffretext- und Schlüsselraum heran, so entschlüsselt sich der Chiffretext
PLWRVIFMT mit Hilfe der untenstehenden Tabelle als Schlüssel zum Klartext
KODIERUNG.
A
Z
B
Y
C
X
D
W
E
V
F
U
G
T
H
S
I
R
J
Q
K
P
L
O
M
N
N
M
O
L
P
K
Q
J
R
I
S
H
T
G
U
F
V
E
W
D
X
C
Y
B
Z
A
Ebenfalls ein monoalphabetisches (jedem Buchstaben wir ein anderer zugeordnet)
Verschlüsselungsverfahren ist die Verschiebungschiffre oder auch Cäsar-Chiffre, die
von Julius Cäsar um 50 vor Christus entwickelt und benutzt wurde. Hierbei wird jeder
Buchstabe des Alphabets um einen bestimmten Abstand verschoben. Julius Cäsar
wählte hierbei den Abstand 3.,5 Mathematisch lässt sich dies folgenderweise
ausdrücken (Buchmann, Einführung in die Kryptographie, S.60):
Für e ∈ Z26 ist die Verschlüsselungsfunktion Ee definiert als
Ee : Σ → Σ, x 7→ (x + e) mod 26.
Entsprechend für d ∈ Z26 gilt:
Dd : Σ → Σ, x 7→ (x − d) mod 26.
4
5
Taschner, Die Zahl die aus der Kälte kam, S.113
Taschner, Die Zahl die aus der Kälte kam, S.114
5
In diesem Fall sind Entschlüsselungsschlüssel d und Verschlüsselungsschlüssel e ident.
Beispiel 2.2
Wendet man die Verschiebungschiffre mit Abstand 5 auf das Wort
KRYPTOGRAPHIE an, so erhält man PWDUYTLWFUMNJ.
Aufgrund der geringen Anzahl an Schlüsseln, nämlich 26, eignet sich die
Verschiebungschiffre nicht mehr für unsere heutigen Bedarf an Verschlüsselungen. Die
Schlüssel könnten leicht durchprobiert werden und man könnte in vertretbarer Zeit aus
dem Chiffretext sowohl den Klartext als auch den Schlüssel selbst entziffern.
6
3 Dualsysteme
Dualsysteme sind Systeme, die auf zwei Zeichen bzw. Ziffern aufgebaut sind. Basierend
auf diesen zwei Basiselementen werden Zeichenketten (Strings) generiert, die
Buchstaben- oder Zahlenfolgen zugeordnet werden und diese so verschlüsseln.
3.1 Morsecode
Eines der ersten Kodierungssysteme, das auf dem Dualsystem basiert, ist der
Morsecode. Der Amerikaner Samuel F.B. Morse erfand gegen Mitte des 19.
Jahrhunderts den Code, der auf zwei Symbolen aufgebaut ist, nämlich Punkt (•) und
Strich (-). Dabei wurde jedem Buchstaben eine andere Länge und Zusammensetzung
eines Systems aus Punkten und Strichen zugeordnet. So ist etwa der Buchstabe A
äquivalent zu •−, B zu − • •• und so weiter.6
Leider ist der Morsecode leicht fehleranfällig, da ein Vertippen bereits zu einem
anderen Buchstaben führen kann. Der eingeschlichene Fehler ist für den Empfänger der
Nachricht jedoch oftmals nicht sichtbar und kann daher zu gravierenden Problemen
führen. Daher ist auch dieses Verschlüsselungssystem ohne eigene Fehlerkorrektur für
den heutigen Gebrauch nicht mehr einsetzbar.
3.2 Binärsystem
Betrachtet man ein Dualsystem auf ganz primitiven Level, auf dem 0 für ein Wort und
1 für ein anderes Wort steht, so kann dies wiederum fatale Folgen haben. Nehme man
an, dass 0 für „nicht angreifen“ und 1 für „angreifen“ steht. Wenn nun eine der beiden
Zahlen inkorrekt übermittelt werden würde, hätte dies nicht vertretbare
Konsequenzen. Aus diesem Grund begann man Codes zu benutzen, die zweistellig
waren, also zum Beispiel 00 und 11. Ersteres stehe wieder stellvertretend für “nicht
angreifen“ und zweiteres für „angreifen“. Passiert nun ein Fehler in der Übermittlung,
es wird z.B. 01 oder 10 gesendet, so erkennt der Empfänger zumindest den fehlerhaften
Code, auch wenn er noch keine Korrektur vornehmen kann. Geht man eine Stufe
6
Crilly, 50 Mathematical Ideas, Kapitel 40
7
weiter und ergänzt die Codes um eine dritte Stelle, also 000 und 111, so kann eine
fehlerhafte Vermittlung noch immer erkannt und zugleich aber auch korrigiert werden.
Erhielte der Empfänger den Code 010, so wüsste er das es 000 heißen müsste, da zwei
Fehler bei einem dreistelligen Code sehr unwahrscheinlich und minimal sind.7
Das heute gängiste Dualsystem zur Datenverarbeitung ist das sogenannte Binärsystem.
Basierend auf der Basis 2 und der Verwendung der Zeichen 0 und 1 werden Strings
generiert. Zum Beispiel steht der String 101 für 101 = 1 · 22 + 0 · 21 + 1 · 20 , was der
Zahl 5 im Dezimalsystem entspricht. Daher setzt sich die Wertigkeit Z einer binären
Zahlen aus der Summe ihrer Ziffern zi ∈ {0, 1} multipliziert mit dem jeweiligen
Stellenwert 2i (i ∈ {1, 2, 4, 8, 16, . . .} zusammen:
Z=
Pm
0
zi · 2i
mit n, m ∈ N und zm als höchstwertige und z0 als niedrigwertigste Stelle.
7
Crilly, 50 Mathematical Ideas, Kapitel 40
8
4 Public-Key-Verfahren
Unter Public-Key-Verfahren versteht man solche Kodierungssysteme, bei denen der
Verschlüsselungsschlüssel d veröffentlicht wird (public key). Dies ist möglich, da der
Entschlüsselungsschlüssel e vom Verschlüsselungsschlüssel d abweicht und nicht in
vertretbarer Zeit und mit vertretbarem Aufwand aus d berechnet werden kann. Der
Entschlüsselungschlüssel e bleibt dabei jedoch privat und wird daher auch private key
genannt. Im Gegensatz zu symmetrischen Kryptosystemen, bei denen der
Verschlüsselungs- und Entschlüsselungsschlüssel ident sind (siehe Beispiel 2.1), nennt
man Systeme mit nicht identen Schlüsseln asymmetrische Kryptosysteme.
Abbildung 2: Symmetrische und Asymmetrische Verschlüsselung
4.1 RSA-Verfahren
Das RSA-Verfahren wurde 1983 von Ron Rivest, Adi Shamir und Len Adleman als
erstes Public-Key-Verfahren als Patent angemeldet und ist bis heute noch das
wichtigste und weitverbreiteste asymmetrische Verschlüsselungsverfahren.
Rudolf Taschner beschreibt es in „Die Zahl, die aus der Kälte kam - Wenn Mathematik
zum Abenteuer wird“ folgendermaßen:
„Man nehme zwei Primzahlen [...] und multipliziere sie. Daraus erhält man
den Modul. [...] Dann nehme man irgendeine Zahl [...], die der Exponent
heißt. (Ganz frei ist man in der Wahl des Exponenten nicht, aber das ist ein
nebensächliches Detail.) Dann kann man eine Zahl, die man geheim halten
9
möchte, dadurch kodieren, dass man ihre Potenz mit dem Exponenten als
Hochzahl bildet und deren Rest nach der Division durch den Modul als
chiffrierte Zahl seinem Partner mitteilt. [...] Dechiffriert kann die kodierte
Zahl dadurch werden, dass man von den Primzahlen, von denen man
ausgegangen ist, jeweils 1 abzieht und das Produkt dieser Zahlen bildet. [...]
Die Potenz der chiffrierten Zahl mit dem Geheimexponenten als Hochzahl
ergibt, wenn man den Rest nach der Division durch den Modul betrachtet,
die ursprüngliche Zahl, die der Sender geheim halten wollte, zurück.“
Mathematisch zu Grunde liegt dem RSA-Verfahren die Nutzung von Primzahltupeln,
Faktorisierungen großer Zahlen, Einwegfunktionen und der Satz von Euler-Fermat.
Definition 4.1 (Public-Key-Kryptosystem)8
Ein Kryptosystem K heißt ein Public-Key-Kryptosystem, falls alle
Chiffrierfunktionen ek mit k ∈ K Einwegfunktionen sind.
Dabei werden „sowohl das Potenzieren von Elementen großer Ordnungen in geeigneten
Gruppen als auch die Multiplikation großer ganzer Zahlen als Einwegfunktionen
angesehen.“9
Definition 4.2 (Einwegfunktion)10
Seien X und Y Mengen. Eine injektive Funktion f : X → Y heißt eine
Einwegfunktion (one way function), falls man für jedes x ∈ X den Funktionswert
y = f (x) schnell berechnen kann, aber für jedes beliebig vorgegebene y ∈ Bild f ⊆ Y
das Urbild f −1 (y) = x in vertretbarer Zeit nicht finden kann. Dies soll mittels
allgemein unbekannter Zusatzinformation möglich sein.
8
Willems, Codierungstheorie und Kryptographie, S.75
Willems, Codierungstheorie und Kryptographie, S.75
10
Willems, Codierungstheorie und Kryptographie, S.74
9
10
Definition 4.3 (Größter Gemeinsamer Teiler)11
Es seien a1 , a2 , . . . , ak ∈ Z. Sind nicht alle ai 6= 0, so heißt
d = max(T (a1 ) ∩ T (a2 ) ∩ . . . ∩ T (ak )) ∈ N
der größte gemeinsame Teiler von a1 , . . . , ak .
Definition 4.4 (Division mit Rest/ Modulo)
Es seien a, b ∈ Z mit b 6= 0. Dann existieren eindeutig bestimmte q, r ∈ Z mit
0 ≤ r < |b|, sodass a = bq + r gilt. 12
Modulo berechnet den Rest r der Division a geteilt durch b. Man kann eine Funktion
definieren, welche jedem Zahlenpaar a ; b eindeutig den Teilerrest r zuordnet. Diese
nennt man mod.
mod : Zx(Z \ {0}) → Z, (a, b) 7→ a mod b := a − ba : bc · b.
13
Definition 4.5 (Primzahl)14
Eine Zahl n ∈ N heißt Primzahl, wenn τ (n) = 2 (⇐⇒ n > 1 und T (n) = {1, n}).
τ . . . Teileranzahlfunktion: τ : N → N, n 7→ τ (n) := |T (n)|15
T(n) . . . Menge der positiven Teiler von n16
4.1.1 Schlüsselerzeugung
Bob wählt zufällig zwei Primzahlen p und q mit p 6= q und berechnet das Produkt
n=pq. Zusätzlich wählt Bob eine natürliche Zahl e mit
1 < e < ϕ(n) = ϕ(p) · ϕ(q) mit ϕ(p) = p − 1 ∧ ϕ(q) = q − 1 und ggT (e, ϕ(p)ϕ(q)) = 1
und berechnet eine natürliche Zahl d mit
11
Lettl, Einführung in die Algebra,
Lettl, Einführung in die Algebra,
13
Wikipedia, Division mit Rest
14
Lettl, Einführung in die Algebra,
15
Lettl, Einführung in die Algebra,
16
Lettl, Einführung in die Algebra,
12
S.3
S.3
S.4
S.2
S.2
11
1 < d < ϕ(p)ϕ(q) und ed ≡ 1 mod ϕ(p)ϕ(q).
Dabei ist ϕ(n) die Euler’schen Phifunktion, welche für jede natürliche Zahl n angibt,
wie viele zu n teilerfremde natürliche Zahlen es gibt, die nicht größer als n sind:
ϕ(n) := |{a ∈ N : 1 ≤ a ≤ n ∧ ggT (a, n) = 1}|. Ist diese natürliche Zahl eine Primzahl,
so gibt es n-1 teilerfremde Zahlen.
Paar (n,e). . . öffentlicher Schlüssel
d. . . privater Schlüssel/ Entschlüsselungsexponent
e. . . Verschlüsselungsexponent (stets ungerade)
n. . . RSA-Modul
Da ggT (e, ϕ(p)ϕ(q)) = 1 ist, gibt es eine solche Zahl d tatsächlich. Sie kann mit dem
erweiterten euklidischen Algorithmus berechnet werden. 17
Satz 4.1 (Erweiteter Euklidischer Algorithmus)
Der erweiterte Euklidische Algorithmus setzt sich aus dem Euklidischen Algorithmus
und dem Algorithmus von Berlekamp zusammen und berechnet daher sowohl den
größten gemeinsamen Teiler zweier natürlicher Zahlen a und b als auch zwei ganze
Zahlen x und y, die ggT (a, b) = xa + yb erfüllen.
Euklidische Algorithmus 18
Es seien a, b ∈ N. Für i ≥ −1, j ≥ 0 werden ri , qj ∈ N0 rekursiv definiert durch:
• r−1 = a, r0 = b
• für i ≥ 0: falls ri > 0 bereits definiert ist, so wird (qi , ri+1 ) gemäß des Satzes
Division mit Rest eindeutig definiert durch ri−1 = qi ri + ri+1 (Division von ri−1
durch ri mit Rest).
Algorithmus von Berlekamp19
Es sei n ∈ N0 mit rn > 0 und rn+1 = 0. Für 0 ≤ i ≤ n werden xi , yi ∈ Z rekursiv
definiert durch
17
Buchmann, Einführung in die Kryptographie, S.137
Lettl, Einführung in die Algebra, S.3
19
Lettl, Einführung in die Algebra, S.4
18
12
x0 = 0, y0 = 1, x1 = 1, y1 = −q0
für 0 ≤ i ≤ n − 1 : xi+1 = xi−1 − qi xi , yi+1 = yi−1 − qi yi .
Dann gilt für alle 0 ≤ i ≤ n: ri = axi + byi , und insbesondere
ggT (a, b) = rn = axn + byn .
Beispiel 4.0 Sei e=5 und ϕ(n) = 24. Berechne d mit dem Erweiterten Euklidischen
Algorithmus. Wir wollen dabei auf die Form 1 = 5 · d + k · ϕ(n) kommen.
Der Euklidische Algorithmus liefert:
24 = 4 · 5 + 4
5=4·1+1
4=1·4+0
Der Algorithmus von Berlekamp liefert:
1 = 5 − 4 · 1 = 5 − 1 · (24 − 4 · 5) = 5 · 5 − 1 · 24 = e · d − yϕ(n).
Daher ist d=5.
Bob gibt den öffentliche Schlüssel (n,e) bekannt, hält aber den privaten Schlüssel d
geheim. Alice kann nun eine Nachricht, die aus einem oder mehreren Elementen aus Zn
besteht, mittels der Chiffrierfunktion Ee : P = Zn → C = Zn , x 7→ y = xe mod n
an Boden senden. Er kann dann die verschlüsselte Nachricht vermöge der
Dechiffrierfunktion Dd : C = Zn → P = Zn , y 7→ y d mod n entschlüsseln.20
Beispiel 4.121
Als Primzahlen wählt Bob die Zahlen p=11 und q=23. Also ist n = 11 · 23 = 253 und
(p − 1)(q − 1) = 10 · 22 = 4 · 5 · 11. Das kleinstmögliche e ist daher e = 3. Der
erweiterte euklidische Algorithmus liefert d = 147.
20
21
Willems, Codierungstheorie und Kryptographie, S.76
Buchmann, Einführung in die Kryptographie, S.138
13
Berechnung:
Zu lösen gilt: ed ≡ 1 mod(p-1)(q-1), daher: 3d ≡ 1 mod 220.
Der Euklidische Algorithmus liefert für (3,220):
220 = 3 · 73 + 1
3=1·3+0
Der Algorithmus von Berlekamp liefert:
1 = 220 − 3 · 73
Da dies einen negativen Entschlüsselungsexponenten d und eine Zahl ed liefert, die
nicht mod 220 rechenbar ist, wird das RSA-Modul 220 so oft hinzugezählt, bis die Zahl
den Modulo erfüllt. In diesem Fall muss die Gleichung auf 1 = 3 · (73 · +1) − 2 · 220
erweitert werden. So erhält man d=147.
Anschaulicher berechnet: Man probiert aus, wann eine ganzzahlige Multiplikation des
Entschlüsselungsmoduls ϕ(n) plus 1 durch den Verschlüsselungsexponenten e teilbar
ist. Der ganzzahlige Rest ist dann der Entschlüsselungsexponent d. 1 · 220 + 1 = 221
2 · 220 + 1 = 441
441 : 3 = 147 ⇒ d = 147.
4.1.2 Verschlüsselung
Verschlüsselung von natürlichen Zahlen22
Der Klartextraum P bestehe aus allen natürlichen Zahlen m mit 0 ≤ m < n. Ein
Klartext m wird verschlüsselt zu c = me mod n. Jeder, der den öffentlichen Schlüssel
(n, e) kennt, kann eine Verschlüsselung durchführen.
Beispiel 4.2
Sei der öffentliche Schlüssel das Zahlentupel (3, 253). Möchte Alice nun Bob die
Nachricht m = 7 übermitteln, so verschlüsselt sie diese folgendermaßen:
c = me = 73 mod 253 = 90.
22
Buchmann, Einführung in die Kryptographie, S.138
14
Verschlüsselung von Buchstaben23
Es habe das verwendete Alphabet Σ genau N verschiedene Buchstaben. Des Weiteren
werden diesen Buchstaben die Zahlen 0,1,. . . , N -1 zugeordnet. Sei k die Blocklänge des
Klartextes mit k = blogN nc.
Ein Block m1 . . . mk , mi ∈ Σ, 1 ≤ i ≤ k, wird in die Zahl m =
umgeschrieben.
Pk
i=1
mi N k−i
Beim RSA-Verfahren werden dann die Blöcke der Länge k aus dem Klartextraum
injektiv auf Blöcke der Länge k+1 im Chiffretextraum abgebildet. Dabei gilt:
P
c = ki=1 ci N k−i , ci ∈ Σ, 0 ≤ i ≤ k. Der Schlüsselblock ist dann c = c0 c1 . . . ck .
Beispiel 4.324
Sei Σ = {0, A, B, C} mit der Zuordnung
0
0
A
1
B
2
C
3
Des Weiteren sei n=253 und e=3. Die Länge k der Klartextblöcke berechnet sich wie
vorher definiert mit dem Logarithmus zur Basis 4 (da N =4): k = blog4 253c = 3.
Die Länge k+1 der Schlüsseltextblöcke ist daher 4.
Verschlüsseln wir nun den Klartext m= ABB, der der Zeichenkette (String) 122
entspricht. Zur Basis 4 geschrieben, ergibt dies m = 1 · 42 + 2 · 41 + 2 · 40 = 26.
Die Verschlüsselung berechnet sich durch c = 263 mod 253 = 119.
Die Verschlüsselungszahl zur Basis 4 geschrieben, ergibt
c = 1 · 43 + 3 · 42 + 1 · 41 + 3 · 1.
Der Schlüsseltextblock lautet nun: ACAC.
23
24
Buchmann, Einführung in die Kryptographie, S.138
Buchmann, Einführung in die Kryptographie, S.139
15
4.1.3 Entschlüsselung
Die Grundlage für die Entschlüsselung von RSA ist folgendes Theorem25 :
Sei (n, e) ein öffentlicher Schlüssel und d der entsprechende private Schlüssel. Dann
gilt:
(me )d mod n=m für jede natürliche Zahl m mit 0 ≤ m < n.
Beweis:
Da ed ≡ 1 mod (p-1)(q-1) ist, gibt es eine ganze Zahl l, so dass ed = 1 + l(p − 1)(q − 1)
ist. Daher ist (me )d = med = m1+l(p−1)(q−1) = m(m(p−1)(q−1) )l .
Fall 1: p - m ⇒ mϕ(p) = 1 mod p (Siehe Satz 4.1.)
(me )d = m1+l(ϕ(p))(ϕ(q)) = m(1(q−1) )l = mx ≡ m mod p mit x = (q − 1)l ∈ Z gilt.
Fall 2: p | m ⇒ m = a · p mit a ∈ Z
(a · p)x = (a · p)ed = (a · p)1+l(p−1)(q−1) = (a · p)x mod p mit x ∈ Z → 0 ≡ 0 mod p.
Fall 3: q - m ⇒ mϕ(p) = 1 mod p (Siehe Satz 4.1.)
(me )d = m1+l(ϕ(p))(ϕ(q)) = m(1(p−1) )l = my ≡ m mod q mit y = (p − 1)l ∈ Z gilt.
Fall 4: q | m ⇒⇒ m = b · q mit b ∈ Z
(a · q)y = (a · q)ed = (a · q)1+l(p−1)(q−1) = (a · q)y mod q mit y ∈ Z → 0 ≡ 0 mod q.
Weil p und q verschiedene Primzahlen sind, erhält man also (me )d = m mod n.
Da 0 ≤ m < n ist, erhält man die Behauptung des Satzes.
Satz 4.2 (Kleiner Satz von Fermat)26
Wenn ggT (p, m) = 1 ist, dann folgt mϕ(p) ≡ 1 mod p mit p ist Primzahl. Dieser Satz
kann zum Satz von Euler verallgemeinert werden, indem man p durch eine natürliche
Zahl n ersetzt: ggT (n, m) = 1 ⇒ mϕ(n) ≡ 1 mod n.
Wurde also c wie in Beispiel 4.2 berechnet, kann man m mittels m = cd mod n
rekonstruieren. Damit ist gezeigt, dass das RSA-Verfahren tatsächlich ein
25
26
Buchmann, Einführung in die Kryptographie, S.140
Buchmann, Einführung in die Kryptographie, S.37
16
Kryptosystem ist, dass es nämlich zu jeder Verschlüsselungsfunktion eine
Entschlüsselungsfunktion gibt.
Beispiel 4.4 Sei der öffentlicher Schlüssel (3, 253). Bob hat von Alice den
Schlüsseltext c = 90 erhalten. Sein zuvor berechneter Entschlüsselungsschlüssel (siehe
Beispiel 4.2) ist d = 147. Bob entschlüsselt folgendermaßen
m = 90147 mod 253 = 903·7·7 ((903 mod 253)7 mod 253)7 mod 253 = 7
und erhält wieder Alice’ Klartext m=7.
4.1.4 Auswahl von p und q
Da das RSA-Verfahren auf dem Faktorisierungsproblem beruht, ist es wichtig,
möglichst große und gleichverteilte Zahlen zu verwenden, da die Faktorisierung dieser
dann erschwert bis nahezu unmöglich wird (im Sinne von einem vetretbaren
Zeitaufwand). Nach heutigen Standard soll das RSA-Modul n zumindest 512 Bits,
wenn nicht 1024 oder sogar 2048 Bits lang sein, um eine längerfristige Sicherheit zu
gewährleisten. Daraus resultierend sollten die Primzahlen p und q möglichst gleich groß
bzw. lang, zufällig und gleichverteilt gewählt werden. Zum Beispiel sollten für ein 1024
Bit RSA-Modul die Primzahlen jeweils eine 512 Bit Länge aufweisen.27
Dabei ist sich die Wissenschaft noch nicht einig, ob es Möglichkeiten gibt, den
RSA-Schlüsseltext zu entschlüsseln, ohne den RSA-Modul zu faktorisieren. Dies ist ein
genauso wichtiges und offenes Problem der Public-Key-Kryptographie wie das
Faktorisierungsproblem an sich.28
4.1.5 Auswahl von e
Sieht man unter dem Unterkapitel Schlüsselerzeugung (4.1.1) nach, so erkennt man,
dass der kleinste mögliche Verschlüsselungsexponent e=3 ist. Eine Wahl eines solchen
27
28
Buchmann, Einführung in die Kryptographie, S.143
Buchmann, Einführung in die Kryptographie, S.143
17
kleinen Exponeten ist jedoch nicht ungefährlich, da ein Angreifer die sogenannte
Low-Exponent-Attacke anwenden kann um die Verschlüsselung zu hecken.
Unter einer Low-Exponent-Attacke versteht man einen Angriff auf eine Verschlüsselung,
die auf einem kleinen Exponenten und kurzen Chiffretextblöcken beruht. Liegt dieser
Fall vor, kann die Entschlüsselungsfunktion oft leicht herausgefunden werden. Dies
passiert vor allem dann, wenn zwar verschiedene Module jedoch die gleichen
Exponenten bei öffentlichen Schlüsseln verwendet werden. Mathematisch beruht die
Low-Exponent-Attacke auf folgendem Theorem29 :
Seien e ∈ N, n1 , n2, . . . , ne ∈ N paarweise teilerfremd und m ∈ N mit
Q
0 ≤ m < ni , 1 ≤ i ≤ e. Sei c ∈ N mit c ≡ me mod ni , 1 ≤ i ≤ e, und 0 ≤ c < ei=1 ni .
Dann folgt c = me .
Nichtsdestotrotz macht die Wahl kleiner Exponenten die Verschlüsselung effizienter
(zeitlich und fehlerunanfälliger) und daher bedient man sich verschiedener Methoden
um solche kleinen Exponenten verwenden, jedoch einer Attacke vorbeugen zu können:
• Die Klartextblöcke werden kürzer gewählt als notwendig, damit die
verbleibenden Bits zufällig belegt werden können.
• Kleine Verschlüsselungsexponenten werden durch Quadrierungen und
Multiplikation bis zu einer noch zulässigen Sicherheitsgrenze vergrößert. Gängig
n
ist z.B. e = 216 + 1, eine der Fermat-Zahlen (F (n) = 22 + 1).30
4.1.6 RSA-Anwendungen
Die alltägliche Anwendung des RSA-Verfahrens findet man z.B. beim Signieren von
elektronischen Nachrichten oder bei Übertragunsprotokollen im World Wide Web, wie
z.B. bei SSL (Secure Sockets Layer). Hierbei verschlüsselt der Sender mit seinem
privaten Schlüssel seine Nachricht, welche dann der Empfänger mit Hilfe des
öffentlichen Schlüssels entschlüsselt. Zusätzlich werden sogenannte Hashwerte
29
30
Buchmann, Einführung in die Kryptographie, S.144
Buchmann, Einführung in die Kryptographie, S.144
18
mitüberliefert mit denen der Nachrichteninhalt verglichen wird. Stimmt dieser mit den
Hashwerten überein, so kann davon ausgegangen werden, dass die Nachricht
tatsächlich vom jeweiligen Empfänger stammt und keine Drittperson in den
Übermittlungsprozess eingegriffen hat.
Abbildung 3: Nachrichtensignatur
19
5 Appendix
5.1 Eigene Beispiele
Beispiel 1: Wortverschlüsselung Sei Σ = {A, D, E, N, K} mit der Zuordnung
A
0
D
1
E
2
N
3
K
4
Des Weiteren seien p=53 und q=59. Daraus erhalten wir n=3127 und ϕ(n) = 3016.
Die Länge k der Klartextblöcke berechnet sich folgendermaßen: k = blog5 3127c = 5.
Daraus folgt, die Länge k+1 der Schlüsseltextblöcke = 6. Wähle e=3 und berechne
daraus d=2011. Der Klartext m=DANKE soll nun verschlüsselt werden, welcher dem
Zahlenstring 10342 entspricht:
Zur Basis 5 geschrieben, erhalten wir m = 1 · 54 + 0 · 53 + 3 · 52 + 4 · 51 + 2 · 50 = 722.
Verschlüsseln wir diese Zahl mit unserem Verschlüsselungsexponenten e=3, so erhalten
wir den Verschlüsselungstext c = 7223 mod 3127 = 1328.Wiederum zur Basis 5
geschrieben, erhalten wir c = 0 · 55 + 2 · 54 + 0 · 53 + 3 · 52 + 0 · 51 + 3 · 50 . Unser
Verschlüsselungsstring entspricht daher den Buchstaben AEANAN.
Beispiel 2: Buchstabenverschlüsselung
Sei Σ = Z26 mit der Zuordnung
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Sei p=7 und q=5. Der RSA-Modul ist daher n = 7 · 5 = 35 und ϕ(n) = 24. Wähle e=5,
dann erhält man d=5. Verschlüssle man nun den Klartext m=DANKE, indem man die
jeweiligen Buchstaben verschlüssle:mD = D = 3 ⇒ cD = 35 mod 35 = 33
mA = A = 0 ⇒ cA = 05 mod 35 = 0
mN = N = 13 ⇒ cN = 135 mod 35 = 13
mK = K = 10 ⇒ cK = 105 mod 35 = 5
mE = E = 4 ⇒ cE = 45 mod 35 = 9
Daraus erhält man folgenden Verschlüsselungsstring: 33 0 13 5 9.
20
5.2 Literaturverzeichnis
Buchmann, Johannes. Einführung in die Kryptographie. Berlin-Heidelberg:
Springer-Verlag 2008.
Crilly, Tony. 50 Mathematical Ideas You Really Need to Know. China: Quercus
Publishing Plc 2007.
Frank Laszlo / Reinhard Schmidt / Sebastian Schulze. Kryptographie im Verlauf
der Geschichte, in ABDRUCK FHTE Spektrum Nr. 21. URL: http://www.hsesslingen.de/fileadmin/medien/mitarbeiter/schmidt/Kryptologie_ im_ Verlauf_
der_ Geschichte.pdf (Zugegriffen 25.10.2014)
Lettl, Günter. Skriptum Einführung in die Algebra. SS 2010.
Taschner, Rudolf. Die Zahl die aus der Kälte kam. Wenn Mathematik zum
Abenteuer wird. München, Carl Hanser Verlag 2013.
Wikipedia. Division mit Rest. URL: http://de.wikipedia.org/wiki/Division_
mit_ Rest (Zugegriffen 03.11.2014)
Willems, Wolfgang. Codierungstheorie und Kryptographie. Basel-Boston-Berlin:
Birkhäuser Verlag AG 2008.
5.3 Abbildungsverzeichnis
Abbildungen 1-3: Eigene Darstellungen.
21
Herunterladen