Known-Plaintext

Werbung
Public Key Kryptographie
mit dem RSA Schema
Karsten Fischer, Sven Kauer
Gliederung
I. Historischer Hintergrund
II. Public Key Kryptographie
III. Beispielszenario
IV. Einweg-Funktion
V. RSA Verfahren
VI. Algorithmus
VII. Beispiel
VIII.Signieren von Nachrichten
IX. Schwächen des RSA
X. Angriffe auf den RSA
XI. Einsatzgebiete
XII. Zusammenfassung
XIII.Quellen
2
Historischer Hintergrund
•
Bis in die 70er symmetrische Verfahren
→ Problem der Schlüsselverteilung
•
1976 Theorie über asymmetrische Verschlüsselung
•
1977 RSA am MIT (Rivest, Shamir, Adleman)
•
1980 durch RSA Data Security Inc. patentiert
•
1991 implemetiert in PGP durch Phil Zimmermann
•
2000 US-Patent läuft aus
→ RSA weltweit einsetzbar
3
Public Key Kryptographie
Theorie von W. Diffie und M. Hellman, 1976
Asymmetrisches Verfahren:
•
zwei verschiedene Schlüssel:
1. Kodierung einer Nachricht
2. Dekodierung einer Nachricht
•
Kodierungsschlüssel soll keine Schlüsse auf den
Dekodierungsschlüssel zulassen
4
Public Key Kryptographie
Public Key-Prinzip:
•
(wichtige) asymmetrischen Variante
•
Kodierungsschlüssel öffentlich (public key)
•
Dekodierungsschlüssel geheim (private key)
5
Public Key Kryptographie
Public Key-Prinzip:
jeder Teilnehmer T hat folgende Schlüssel:
• Public Key E = ET (Encryption)
• Private Key D = DT (Decryption)
Eigenschaften der Schlüssel:
1. für jede Nachricht m gilt:
D(E(m)) = m und E(D(m)) = m
2. privater Schlüssel D (praktisch) nicht aus
Schlüssel E zu erschließen.
6
Beispielszenario
Vorbereitungen:
•
Kommunikationsgruppe
•
Jeder Teilnehmer T bekommt Schlüsselpaar (ET, DT)
•
Schlüsselpaare der Teilnehmer sind verschieden
•
Schlüssel E wird verteilt
(Publikationsorgan/Zertifizierungsstelle)
•
Schlüssel D bleibt geheim
7
Beispielszenario
Senden und Empfang:
•
A will B die Nachricht m Schicken
•
A sucht Schlüssel EB von B heraus
•
A verschlüsselt m mittels EB
•
A verschickt EB(m) an B
•
B entschlüsselt mit DB(m):
DB(EB(m)) = m
8
Beispielszenario
Sicherheit:
•
Kein anderer Teilnehmer kann EB(m) entschlüsseln,
weil ihm DB von B fehlt
Analogie: Briefkasten:
•
•
jeder kann Post in den Briefkasten einwerfen
nur Briefkastenbesitzer kann sie herausholen
•
Public Key E
→
Namensschild
•
Private Key D
→
Briefkastenschlüssel
9
Einweg-Funktionen
Kodierungsschlüssel soll keine Schlüsse auf den
Dekodierungsschlüssel zulassen
↓
Suche eine bijektive Funktion f(x) = y, die folgende
Anforderungen erfüllt:
1. einfache Berechnung von y bei bekanntem x
2. schwere Berechnung von x bei bekanntem y
↓
„Einweg-Funktionen“ (Trapdoor-functions)
10
Einweg-Funktionen
Def: Eine umkehrbar eindeutige ("bijektive") Funktion
f : A → B mit x → y = f (x)
heißt Einweg-Funktion, wenn der Funktionswert y
relativ leicht aus dem Argument x berechnet
werden kann, wenn es aber andererseits bei
Kenntnis von y nur mit sehr großem Aufwand
möglich ist, das Argument x zu ermitteln, das zum
Funktionswert y gehört.
11
Einweg-Funktionen
Analogie: Telefonbuch (einer großen Stadt)
•
Funktion f ermittelt Telefonnummer x aus Namen y
→ Nachschlagen (TB ist alphabetisch sortiert)
•
Umkehrfunktion f -1 nur sehr aufwendig
(„ermittele Name y zur Telefonnummer x“)
→ nach Nummern sortiertes TB?
12
Einweg-Funktionen
Einige Einwegfunktionen:
•
Faktorisierung:
y = x1 · x2
•
Diskreter Logarithmus:
y = bx mod n
•
Diskrete Wurzel:
y = xa mod n
(n nicht prim)
13
RSA-Verfahren
•
1977 entdeckt von Rivest, Shamir und Adleman
•
Verfahren zum Erzeugen von Einweg-Funktionen
•
basiert insbesondere auf:
•
Euklidischer Algorithmus
•
(kleinen) Satz von Fermat
•
kein Algorithmus zur schnellen
Primfaktorzerlegung bekannt
14
RSA-Verfahren
Euklidischer Algorithmus:
While (a>0) And (b>0)
If a > b
Then a = a Mod b
Else b = b Mod a
End If
Wend
ggT = a + b
15
RSA-Verfahren
Erweiterter Euklidischer Algorithmus:
Satz: Zu je zwei natürlichen Zahlen a und b (b ≠ 0)
gibt es ganze Zahlen x und y mit der Eigenschaft
GGT(a, b)= a · x + b · y.
D.h. für teilerfremde a,b (GGT(a,b)=1): a · x = 1 - b · y
bzw. a · x ≡ 1 (mod b)
↓
x ist das Inverse zu a mod b
16
RSA-Verfahren
Beispiel: Erweiterter Euklidischer Algorithmus
•
Zwei teilerfremde Zahlen: a = 14, b = 51 (GGT(14, 51)=1)
•
mögliche Werte: x = 11, y = -3
14a· ·11
x -- b51· y· -3
= 1= 1
(14
(a··11)
x) mod
modb51
≡1
≡1
↓
11 ist das Inverse zu 14 mod 51
17
RSA-Verfahren
Satz von Fermat:
Satz: Ist p eine Primzahl und a eine zu p teilerfremde
natürliche Zahl, so ist ap-1 ≡ 1 (mod p).
•
Findet man auch als: ap ≡ a (mod p)
18
RSA-Verfahren
Satz von Fermat:
2
2mod7
3
3mod7
5
5mod7
0
1
1
1
1
1
1
1
2
2
3
3
5
5
2
4
4
9
2
25
4
3
8
1
27
6
125
6
4
2
2
81
4
625
2
5
4
4
243
5
3125
3
6
8
1
729
1
15625
1
7
2
2
2187
3
78125
5
19
RSA-Verfahren
Beweis: Satz von Fermat
• Sind a, b inkongruent modulo einer festen Zahl n ,
dann sind auch x · a und x · b inkongruent (mod n) f.a.
x > 0 mit GGT(x,n )=1
↓
1 · 2 · … · (p-1) = (1 · a) · (2 · a) · … · ((p-1) · a) (mod p)
↓
W = W · ap-1 (mod p)
↓
1 = ap-1 (mod p)
qed.
20
RSA-Verfahren
Anwendungen des Satzes
•
Primzahlerzeugung?
•
Wenn p Primzahl, dann gilt
ap ≡ a (mod p)
•
Gilt auch:
„Wenn ap ≡ a (mod p), dann ist p Primzahl“?
•
Nein → Fermatsche Pseudoprimzahlen
21
RSA-Verfahren
Anwendungen des Satzes
•
Primzahltest?
•
Fermatscher Primzahltest:
•
•
•
Berechne b = an-1 (mod n)
Prüfe b = 1, bei erfolg: b Primzahlkandidat
Langsam und Aufwendig
22
Algorithmus Kodierung
•
•
•
•
•
Wähle Zufällig zwei Primzahlen p und q, welche
„nahe“ beieinander liegen.
Bestimmt deren Produkt N.
Ermittle φ ( N ) = ( p − 1)(q − 1) .
Bestimme ein e , s. d. e > 1 und teilerfremd zu φ (N ) .
Berechne aus e • d ≡ 1 mod(φ ( N )) den geheimen
Schlüssel d.
•
Somit ist der öffentliche Schlüssel: N, e
und der geheime Schlüssel: d
•
Die Kodierung erfolgt mit: C ≡ K e mod(N )
23
Beispiel Schlüsselerstellung
• Primzahlen: p = 463 und q = 467
• N ermitteln: N = pq = 216221
• φ (N ) ermitteln: φ ( N ) = ( p − 1)(q − 1) = 215292
• e bestimmen: 1 < e < N , teilerfremd zu φ (N ) , e = 277
• d ermitteln: e • d ≡ 1 mod(φ ( N ))
e • d = φ(N ) • k +1
0 = φ(N ) • k − e • d +1
0 = 215292k − 277d + 1
mögliche Lösung: k = 22 , d = 17099
•
•
öffentliche Schlüssel: N = 216221 und e = 277
geheimer Schlüssel: d = 17099
24
Beispiel Verschlüsselung
•
•
•
öffentliche Schlüssel: N = 216221 und e = 277
Klartext K = 174
e
C ermitteln: C ≡ K mod( N )
C ≡ 174 277 mod(216221)
•
gerechnet mit modularer Exponentiation
Quad := b, Halb := e, Erg := 1
while Halb > 0
if Halb mod 2 > 0 then Erg := (Erg * Quad) mod m
Quad = (Quad * Quad) mod m
Halb = Halb div 2
end while
return Erg
•
Geheimtext C = 206690
25
Beispiel Dekodierung
•
Dekodierung mit K ≡ C d mod(N ) .
•
•
•
•
öffentliche Schlüssel: N = 216221
geheimer Schlüssel: d = 17099
Geheimtext C = 206690
d
K ermitteln: K ≡ C mod(N )
K ≡ 20669017099 mod(216221)
•
•
gerechnet mit modularer Exponentiation
Klartext K = 174
26
Signieren von Nachrichten
•
Idee: Dokumente mit einer digitalen „Unterschrift“
versehen.
•
1. Vorteil: Integrität, d. h. es wird die Unversehrtheit
der übermittelten Nachricht sichergestellt
•
2. Vorteil: Authentizität, d. h. die Nachricht wurde
vom richtigen Absender versandt
27
Signieren von Nachrichten
•
Absender besitzt eigenen Schlüsselsatz.
•
Absender kodiert seine Nachricht mit d,
sprich: C ≡ K d mod(N )
•
Absender versendet signierte und unsignierte
Nachricht an Empfänger.
•
Empfänger dekodiert die Nachricht mit e,
e
sprich: K ≡ C mod(N )
•
Empfänger vergleicht unsignierte und dekodierte
Nachricht miteinander und prüft auf Gleichheit.
28
Schwächen des RSA
•
asymmetrisches Verfahren, welches für das Verund Entschlüsseln große K viel Zeit benötigt
•
Wahl der Primzahlen kann nicht einfach zufällig
erfolgen
•
„Sicherheit“ beruht auf der Annahme das die
Zerlegung von N in seine Primfaktoren in
polynomieller Zeit nicht gelingen kann.
• Beweis steht aus
• Shor-Algorithmus löst das Problem auf
Quantencomputern in P
29
Angriffe auf den RSA
•
Verfahren substituiert Klartext zu Geheimtext,
weshalb Angriffe mit der Known-Plaintext-Angriffe
und Wahrscheinlichkeitsanalyse möglich sind.
•
Bei schlecht gewählten Primzahlen, kann aus N auf
wenige mögliche Paare geschlossen werden.
•
Zerlegung in Primfaktoren ist bedingt schon
gelungen: RSA-567 mit 174 Ziffern
757
Mersenne-Zahl 2 − 1 mit 228 Ziffern
•
Timing Attacks
30
Timing Attacks auf den RSA
•
Idee: Geheimtexte mit dem öffentlichen Schlüssel so
erstellen, das die Dechiffrierung lange benötigt, um
fehl zu schlagen.
•
Vorgehen
• Festlegen eines großen Startwertes
• Schleife
• Messen der Laufzeit der einzelnen Anfragen
wird gemessen.
• Aus auffälligen Messwerten wird auf Werte
geschlossen, welche ausprobiert werden.
• Ausgabe des geheimen Schlüssels
31
Einsatzgebiet
•
Internet- u. Telefonie-Infrastruktur: X.509-Zertifikate
•
Übertragungs-Protokolle: IPSec
SSL
TLS
SSH
WASTE
•
E-Mail-Verschlüsselung: PGP
S/MIME
•
Authentifizierung französischer Telefonkarten
32
Zusammenfassung RSA
•
asymmetrisches Verschlüsselungsverfahren
•
benutzt öffentliche und geheime Schlüssel
•
Nachrichten können nur von einem Empfänger
gelesen, aber vielen Absendern versandt werden
•
Algorithmus beruht auf der scheinbaren
Unmöglichkeit der Zerlegung von großen Produkten
in Primfaktoren
•
Verschlüsselung und Entschlüsselung erfolgt nach
einfachen Formeln
33
Quellen
•
„Handbook of Applied Cryptography“
A. Menezes, P. C. van Oorschot, S. A. Vanstone
•
„Remote Timing Attacks are Practical“
D. Brumley, D. Boneh
•
„Pulic Key Cryptographie“
J. Ziegenbalg
•
http://de.wikipedia.org/wiki/RSA-Kryptosystem
•
http://www.heise.de/newsticker/meldung/42719
34
Herunterladen