Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

34
Karsten Fischer, Sven Kau er Public Key Kryptographie mit dem RSA Schema

Transcript of Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

Page 1: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

Karsten Fischer, Sven Kauer

Public Key Kryptographie mit dem RSA Schema

Page 2: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

2

Gliederung

I. Historischer HintergrundII. Public Key KryptographieIII. BeispielszenarioIV. Einweg-FunktionV. RSA VerfahrenVI. AlgorithmusVII. BeispielVIII.Signieren von NachrichtenIX. Schwächen des RSAX. Angriffe auf den RSAXI. EinsatzgebieteXII. Zusammenfassung XIII.Quellen

Page 3: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

3

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

Page 4: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

4

Public Key Kryptographie

Theorie von W. Diffie und M. Hellman, 1976

Asymmetrisches Verfahren:

• zwei verschiedene Schlüssel:1. Kodierung einer Nachricht2. Dekodierung einer Nachricht

• Kodierungsschlüssel soll keine Schlüsse auf den Dekodierungsschlüssel zulassen

Page 5: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

5

Public Key Kryptographie

Public Key-Prinzip:

• (wichtige) asymmetrischen Variante

• Kodierungsschlüssel öffentlich (public key)

• Dekodierungsschlüssel geheim (private key)

Page 6: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

6

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.

Page 7: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

7

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

Page 8: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

8

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

Page 9: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

9

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

Page 10: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

10

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 x2. schwere Berechnung von x bei bekanntem y

„Einweg-Funktionen“ (Trapdoor-functions)

Page 11: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

11

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.

Page 12: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

12

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?

Page 13: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

13

Einweg-Funktionen

Einige Einwegfunktionen:

• Faktorisierung:y = x1 ∙ x2

• Diskreter Logarithmus:y = bx mod n

• Diskrete Wurzel: y = xa mod n (n nicht

prim)

Page 14: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

14

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

Page 15: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

15

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

Page 16: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

16

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

EigenschaftGGT(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

Page 17: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

17

RSA-Verfahren

Beispiel: Erweiterter Euklidischer Algorithmus

• Zwei teilerfremde Zahlen: a = 14, b = 51 (GGT(14, 51)=1)

• mögliche Werte: x = 11, y = -3

11 ist das Inverse zu 14 mod 51

a ∙ x - b ∙ y = 1

(a ∙ x) mod b ≡ 1

14 ∙ 11 - 51 ∙ -3 = 1

(14 ∙ 11) mod 51 ≡ 1

Page 18: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

18

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)

Page 19: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

19

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

Page 20: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

20

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.

Page 21: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

21

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

Page 22: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

22

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

Page 23: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

23

Algorithmus Kodierung

• Wähle Zufällig zwei Primzahlen p und q, welche „nahe“ beieinander liegen.

• Bestimmt deren Produkt N.• Ermittle .• Bestimme ein e , s. d. e > 1 und teilerfremd

zu .• Berechne aus den geheimen

Schlüssel d.

• Somit ist der öffentliche Schlüssel: N, eund der geheime Schlüssel: d

• Die Kodierung erfolgt mit:

)1)(1()( qpN)(N

))(mod(1 Nde

)mod(NKC e

Page 24: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

24

Beispiel Schlüsselerstellung

• Primzahlen: p = 463 und q = 467

215292)1)(1()( qpN• ermitteln:)(N• ermitteln:N 216221pqN

• bestimmen: , teilerfremd zu , e Ne 1 277e)(N• ermitteln:d ))(mod(1 Nde

1)( kNde 1)(0 dekN

12772152920 dkmögliche Lösung: ,22k 17099d

• öffentliche Schlüssel: N = 216221 und e = 277• geheimer Schlüssel: d = 17099

Page 25: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

25

Beispiel Verschlüsselung

• öffentliche Schlüssel: N = 216221 und e = 277• Klartext K = 174• C ermitteln: )mod(NKC e

)216221mod(174277C• 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

Page 26: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

26

Beispiel Dekodierung

• öffentliche Schlüssel: N = 216221• geheimer Schlüssel: d = 17099• Geheimtext C = 206690• K ermitteln: )mod(NCK d

)216221mod(20669017099K

• gerechnet mit modularer Exponentiation• Klartext K = 174

)mod(NCK d• Dekodierung mit .

Page 27: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

27

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

Page 28: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

28

Signieren von Nachrichten

• Absender besitzt eigenen Schlüsselsatz.

• Absender kodiert seine Nachricht mit d,sprich:

• Absender versendet signierte und unsignierte Nachricht an Empfänger.

• Empfänger dekodiert die Nachricht mit e,sprich:

• Empfänger vergleicht unsignierte und dekodierte Nachricht miteinander und prüft auf Gleichheit.

)mod(NKC d

)mod(NCK e

Page 29: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

29

Schwächen des RSA

• asymmetrisches Verfahren, welches für das Ver- und 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

Page 30: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

30

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

Mersenne-Zahl mit 228 Ziffern

• Timing Attacks

12757

Page 31: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

31

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

Page 32: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

32

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

Page 33: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

33

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

Page 34: Karsten Fischer, Sven Kauer Public Key Kryptographie mit dem RSA Schema.

34

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