Transcript Kryptologie

Slide 1

Kryptologie

Klaus Becker
(2002)


Slide 2

2

E-mail an K. Becker
An:
[email protected]
Von:
[email protected]
Betrifft: Kontoeröffnung

Kryptologie

Sehr geehrte Herr Becker,
Sie haben mit Ihrer Mail vom 1.8.2002 ein Konto bei unserer
Bank beantragt. Wir danken Ihnen für das Vertrauen in
unsere Bank. Selbstverständlich können wir Ihnen ein Konto
einrichten. Die Kontonummer lautet: 314 216. Sie erhalten
demnächst per Post eine Kreditkarte (PIN 9138). Für die
Einrichtung des Kontos sind wir leider gezwungen, Ihnen
einen Unkostenbetrag von 50 Euro in Rechnung zu stellen.
Wir haben diesen Betrag bereits von Ihrem Konto abgebucht.
Bitte zahlen Sie diesen Betrag schnellstmöglich auf Ihr
Konto ein.
Mit freundlichen Grüßen

KB

P. Theuerkauf
(Leiter der Service-Abteilung)


Slide 3

3

Sicherheitsprobleme

Kryptologie

Authentizität:
Stammt die Nachricht wirklich von der billigen Bank, oder
erlaubt sich hier jemand einen Scherz?
Integrität:
Hat jemand die Nachricht manipuliert (PIN geändert)?
Verbindlichkeit:
Die Bank behauptet, die Nachricht so nicht verschickt zu
haben. Stimmt das?
Vertraulichkeit:
Wurde die Nachricht abgefangen und von einer unbekannten
Person gelesen?

KB


Slide 4

4

Sicherheitsanforderungen

Kryptologie

Authentizität:
Die Nachricht, die man erhält, stammt wirklich von der
Person, die als Absender angegeben ist.
Integrität:
Die Nachricht, die man erhält, ist von keiner dritten Person
manipuliert worden.
Verbindlichkeit:
Der Urheber kann nachträglich nicht bestreiten, die Nachricht
verfasst zu haben.
Vertraulichkeit:
Die Nachricht kann nicht von dritten Personen gelesen
werden.

KB


Slide 5

Kryptologie

5

KB

Teil 1

Verschlüsselung


Slide 6

6

Kommunikationssituation

Nachricht

Kryptologie

Liebe ...

Sender

Empfänger

Angreifer

KB


Slide 7

Chiffriersysteme

7

Kryptologie

Schlüssel

x
Klartext

f

Schlüssel

y
Geheimtext

Verschlüsselungsfunktion

f*

x
Klartext

Entschlüsselungsfunktion

Beachte:
Chiffriersysteme dienen der Ver- und Entschlüsselung von
Nachrichten. Sie sollen Vertraulichkeit gewähren.
KB


Slide 8

Kryptologie

8

KB

Sicherheit bei Chiffriersystemen
Prinzip von Kerckhoff:
Die Sicherheit eines Chiffriersystems darf nicht von der
Geheimhaltung der Ver- und Entschlüsselungsalgorithmen
abhängen. Sie darf sich nur auf die Geheimhaltung der
Schlüssel gründen.
D.h.: Es sollte praktisch nicht möglich sein, Schlüssel aus
Klartext-Geheimtext-Paaren (x,y) zu erschließen.


Slide 9

9

Symmetrische Chiffriersysteme
Schlüssel

Schlüssel

Kryptologie

s
x
Klartext

f

s
y
Geheimtext

Verschlüsselungsfunktion
Beispiele:
• Caesar-Chiffriersystem
• Vigenere-Chiffriersystem

KB

f*

x
Klartext

Entschlüsselungsfunktion


Slide 10

Symmetrische Chiffriersysteme

10

Aufgabe:

Kryptologie

Beurteile symmetrische Chiffriersysteme hinsichtlich des
Aufwands

KB



für die Erzeugung von Schlüsseln,



für den Austausch von Schlüsseln.

Betrachte den Fall, dass bereits n Teilnehmer sich auf das
Chiffriersystem geeinigt haben und dass ein neuer
Teilnehmer hinzukommt.


Slide 11

11

Asymmetrische Chiffriersysteme

Kryptologie

A

cB
x

Klartext

f

KB

y
Geheimtext

Verschlüsselungsfunktion

Jeder Teilnehmer
verfügt über zwei
Schlüssel:

B

dB
f*

x
Klartext

Entschlüsselungsfunktion
c: öffentlicher Schlüssel
d: privater Schlüssel


Slide 12

12

Asymmetrische Chiffriersysteme

Kryptologie

A

cB
x

Klartext

f

B

dB
y
Geheimtext

f*

x
Klartext

Kommunikationsprotokoll:
A verschlüsselt x mit dem öffentlichen Schlüssel von B: y = f(cB,x).
A sendet y an B.
B entschlüsselt y mit seinem privaten Schlüssel: x = f*(dB,y).

KB


Slide 13

13

Asymmetrische Chiffriersysteme

Kryptologie

Die Schlüssel werden von einer
Schlüsselvergabestelle erzeugt.

KB

(c,d)

Die öffentlichen Schlüssel werden
in einer öffentlichen Datenbank
bereitgestellt.

A: cA
B: cB
...

Die Übermittlung des privaten
Schlüssels an den Teilnehmer
muss sicher sein.

dA

Die privaten Schlüssel werden von
den Teilnehmern geheim gehalten.

A: dA

A


Slide 14

14

Asymmetrische Chiffriersysteme

Kryptologie

Sicherheitsanforderungen:

KB

Es ist praktisch unmöglich, aus dem öffentlichen
Schlüssel cT den privaten Schlüssel dT zu
erschließen.

Es ist praktisch unmöglich, den privaten Schlüssel
dT aus Klartext-Geheimtextpaaren (x,y) zu
erschließen.


Slide 15

15

RSA-Verfahren
RSA: Rivest, Shamir, Adleman (1977)

Schlüsselerzeugung:

Kryptologie

Wähle zwei Primzahlen p und q.
Bsp.: p = 7; q = 11
Berechne n = pq und  = (p-1)(q-1).
Bsp.: n = 77;  = 60
Bestimme c <  mit ggT(c,) = 1.
Günstig: c Primzahl mit p,q < c < 
Bsp.: c = 13
Bestimme d mit mod(cd,) = 1.
Bsp.: d = 37 (1337 = 481 = 860 + 1)

KB

Öffentl. Schlüssel: (c,n)

Bsp.: (13,77)

Privater Schlüssel: (d,n)

Bsp.: (37,77)


Slide 16

RSA-Verfahren

16

Kryptologie

Schlüssel:

Öffentl. Schlüssel: (c,n)

Bsp.: (13,77)

Privater Schlüssel: (d,n)

Bsp.: (37,77)

Verschlüsselung:

y = mod(xc,n)

x = 6;
y = mod(613,77) = 62

Bsp.:

y = 62;
x = mod(6237,77) = 6

Entschlüsselung:
x = mod(yd,n)

Bedingung: x < p,q
KB

Bsp.:


Slide 17

17

RSA - mathematische Grundlagen
Mathematische Grundlage: Satz von Euler

Für zwei teilerfremde natürliche Zahlen a und m gilt:

Kryptologie

a (m) mod m = 1 bzw. mod(a(m), m) = 1
Eulersche -Funktion:

KB

(m): Anzahl der zu m teilerfremden Zahlen, die < m sind
Bsp. für die Aussage des Satzes von Euler:
m = 5: (5) = 4, da 1, 2, 3, 4 zu 5 teilerfremd sind.
mögliche Werte für a: 1, 2, 3, 4, 6, ... (alle teilerfremd zu m = 5)
Satz liefert:
14 mod 5 = 1 bzw. 5 | 14 1
44 mod 5 = 1 bzw. 5 | 34 1
64 mod 5 = 1 bzw. 5 | 64 1
...

24 mod 5 = 1 bzw. 5 | 24 1
44 mod 5 = 1 bzw. 5 | 44 1
74 mod 5 = 1 bzw. 5 | 74 1


Slide 18

18

RSA - Korrektheit
Zu zeigen: mod(mod(xc ,n)d ,n) = x bzw. mod(xc)d ,n) = x

Es gilt: x und n sind teilerfremd, da x < p, q und n = pq.

Kryptologie

Setze:  = (p-1)(q-1). Dann ist  = (n).
Satz von Euler liefert: mod(x, n) = 1 (*)

Konstruktion von c und d liefert: mod(cd,) = 1
Also: Es gibt k mit cd = k + 1
Folglich: (xc)d = xcd = xk + 1 = xxk
Mit (*) gilt: mod(xc)d ,n) = mod(x(x)k ,n) = mod(x,n) = x

KB


Slide 19

RSA-Verfahren mit DERIVE

19

Hilfsfunktionen:

dient zur Bestimmung von
d mit mod(cd,) = 1

MODINV

Kryptologie

c


d

MODINV(c, )
MODPOT
x
c
n

y

y
d
n

dient zur Bestimmung der
modularen Potenz

Aufrufe:

MODPOT

KB

Aufruf:

mod(xc,n): MODPOT(x, c, n)
x

mod(yd,n): MODPOT(y, d, n)


Slide 20

20

RSA-Verfahren mit DERIVE

Kryptologie

Erzeugung der Schlüssel:
DERIVE-Protokoll:
p := NEXT_PRIME(1000)
1009
q := NEXT_PRIME(2000)
2003
n := p·q
2021027
 := (p - 1)·(q - 1)
2018016
c := NEXT_PRIME(2500)
2503
d := MODINV(c, )
1454455
Ergebnis:

Öffentl. Schlüssel:

(c,n)

Privater Schlüssel: (d,n)
KB

Bsp.: (2503, 2021027)
Bsp.: (1454455, 2021027)


Slide 21

21

RSA-Verfahren mit DERIVE
Verschlüsselung der Nachricht „HALLO“:
Öffentl. Schlüssel:

(c,n) = (2503, 2021027)

Kryptologie

Privater Schlüssel: (d,n) = (1454455, 2021027)
Vorbereitung: Kodierung
HALLO  08.01.12.12.15  801|121|215
beachte: benutzte Zahlen < p,q
DERIVE-Protokoll
MODPOT(801, c, n)
234247
MODPOT(121, c, n)
1436140
MODPOT(215, c, n)
697452
Ergebnis:
verschlüsselte Nachricht: 234247|1436140|697452
KB


Slide 22

22

RSA-Verfahren mit DERIVE
Entschlüsselung:
Öffentl. Schlüssel:

(c,n) = (2503, 2021027)

Kryptologie

Privater Schlüssel: (d,n) = (1454455, 2021027)
DERIVE-Protokoll
MODPOT(234247, d, n)
801
MODPOT(1436140, d, n)
121
MODPOT(697452, d, n)
215
Nachbereitung: Dekodierung
801|121|215  08.01.12.12.15  HALLO
Ergebnis:
entschlüsselte Nachricht: HALLO
KB


Slide 23

23

Übung

Kryptologie

Erzeugen Sie sich mit Derive zunächst ein Schlüsselpaar.
Verschlüsseln Sie anschließend mit Derive eine (nicht zu lange)
Nachricht. Testen Sie, ob beim Entschlüsseln die ursprüngliche
Nachricht wieder entsteht.

KB

(Sie können auch eine Nachricht mit ihrem Nachbarn
verschlüsselt austauschen.)


Slide 24

RSA-Verfahren knacken

24

RSA knacken:

1. Mögl.: (c,n)  (d,n)

Kryptologie

2. Mögl.: (x,y), (c,n)  (d,n)
Strategie 1. Mögl.:

n  (p,q)
(p,q)  

Strategie 2. Mögl.:

x = mod(yd,n)
(x,y,n)  d

(c,)  d
Schwierigkeit:
Primfaktorzerlegung von n

KB

diskreter Logarithmus


Slide 25

Einwegfunktionen

25

Einwegfunktion:


f ist eine umkehrbare Funktion mit Umkehrfunktion f*.



f kann mit geringem Aufwand berechnet werden.

Kryptologie



f* kann nur mit sehr hohem Aufwand (praktisch nicht)
berechnet werden.

f
f*

Beispiel 1: Telefonbuch
f : Name  Telefonnummer
f*: Telefonnummer  Name
Beispiel 2: RSA
f : (p,q)  n = pq
f*: n  (p,q)

KB

Produkt von zwei Primzahlen
Primfaktorzerlegung
Bed.: n hat mehr als 155 Stell. (512 Bit)


Slide 26

Übung

26

Kryptologie

Untersuchen Sie mit Derive, wie lang eine Produktberechnung
und die zugehörige Berechnung der Primfaktorzerlegung
dauert. Gehen Sie hierzu wie im unten abgebildeten DeriveProtokoll vor. Vergrößern Sie schrittweise die benutzten
Primzahlen. Was fällt auf?
NEXT_PRIME(10^10)
10000000019
NEXT_PRIME(10^11)
100000000003
10000000019·100000000003
1000000001930000000057
FACTOR(1000000001930000000057)
10000000019·100000000003
KB


Slide 27

Kryptologie

27

KB

Teil 2

Digitale Signatur


Slide 28

Probleme mit der Urheberschaft

28

Probleme:

Kryptologie

Empfänger ändert die Nachricht ab (z. B.: erhöht den
Überweisungsbetrag).
Absender streitet ab, die Nachricht verschickt zu haben (z.
B.: streitet Börsentransaktion ab)
Nachrichtenauthentisierung:
Gewährleistung der Integrität (Nachricht wurde nicht von
Dritten verändert).


Gewährleistung der Authentizität (Nachricht stammt vom
Absender)


KB


Slide 29

Digitale Signatur

29

Anforderungen an eine digitale Signatur

Authentizität: Nur der Urheber des Dokuments kann die
Signatur erzeugen.


Nichtübertragbarkeit: Die Signatur kann nicht auf andere
Dokumente übertragen werden.

Kryptologie



KB

Verbindlichkeit: Der Absender kann die Urheberschaft nicht
abstreiten.


Verifizierbarkeit: Der Empfänger kann die Signatur zweifelsfrei
prüfen.



Slide 30

30

Erzeugung einer digitalen Signatur

Kryptologie

A

dA
x

Klartext

f

y
Geheimtext

f*

Grundidee
A verschlüsselt x mit seinem privaten Schlüssel.

KB

B

cA

x
Klartext


Slide 31

Digitale Signatur

31

Kryptologie

A

KB

dA
x

Klartext

f

B

cA
y
Geheimtext

f*

x
Klartext

Zu den Anforderungen an eine digitale Signatur:


Authentizität: nur A verfügt über dA.



Nichtübertragbarkeit: anderes x, anderes y



Verbindlichkeit: nur A kann x in y umgewandelt haben



Verifizierbarkeit: B kann y nur mit cA in ein sinnv. x umwandeln


Slide 32

Digitale Signatur

32

Kryptologie

A

dA
x

Klartext

f

y
Geheimtext

f*

x
Klartext

Nachteile


Das signierte Dok. ist erst nach dem Entschlüsseln lesbar.



Es ist sehr aufwendig, das gesamte Dok. zu verschlüsseln.

Ausweg
KB

B

cA

Erzeugung eines „digitalen Fingerabdrucks“


Slide 33

33

Digitaler Fingerabdruck
Grundidee:

Es wird eine geeignet komprimierte Form des Klartextes x
ermittelt.

Kryptologie

Beispiel: vereinfachte XOR-Kompression

KB

Vorbereitung: binäre Kodierung gemäß ASCII-Code
UTA  85 | 84 | 65  01010101 | 01010100 | 01000001 = X1 | X2 | X3
XOR-Kompression:
Y1 = 00000000
Y2 = Y1 XOR X1 = 00000000 XOR 01010101 = 01010101
Y3 = Y2 XOR X2 = 01010101 XOR 01010100 = 00000001
Y4 = Y3 XOR X3 = 00000001 XOR 01000001 = 01000000
Nachbereitung:
01000000  0*1+0*2+0*4+0*8+0*16+0*32+1*64+0*128 = 64
Ergebnis:
85 | 84 | 65  64


Slide 34

Hash-Funktion

34

Hash-Funktionen

Funktion h, die jeder Nachricht x einen Prüfwert h(x) zuordnet
(digitaler Fingerabdruck).

Kryptologie

Beispiel:
x:
h(x):

UTA  85 | 84 | 65
64

Einweg-Hash-Funktionen
Hashfunktion mit folgender Eigenschaft:
Es gibt einen effizienten Algorithmus zur Berechnung von h(x)
aus x, aber keinen effizienten Algorithmus zur Berechnung von
x aus h(x) (d. h.: es ist praktisch unmöglich zu einem Hashwert
eine passende Nachricht zu konstruieren).

KB


Slide 35

35

Digitale Signatur
Signierprotokoll:

A bestimmt zur Nachricht x den Hash-Wert h(x) mit der
vereinbarten Hash-Funktion h.

Kryptologie

A erzeugt die digitale Signatur für x: u = f(dA,h(x)).

KB

A sendet (x,u) an B.
B entschlüsselt u mit dem öffentlichen Schlüssel von A: v =
f*(dB,u).
B erzeugt den Hash-Wert h(x) und prüft, ob h(x) = v.


Slide 36

36

Anforderungen an Hash-Funktionen
Anforderungen an gute Hash-Funktionen

Es ist praktisch unmöglich, aus dem Hashwert h(x) die
Nachricht x zu erschließen. (Einweg-Hash-Funktion)


Es ist praktisch unmöglich, eine von x verschiedene Nachricht
z mit h(x) = h(z) zu erzeugen. (Kollisionsresistenz)

Kryptologie



KB

Kollisionen
Eine Einweg-Hash-Funktion heißt kollisionsresistent, wenn es
keinen effizienten Algorithmus gibt, um ein Paar (x, z) mit der
Eigenschaft h(x) = h(z) zu finden.


Slide 37

37

Rechtslage
Gesetz über Rahmenbedingungen für elektronische Signaturen
(Signaturgesetz – SigG) (16.05.2001)

Kryptologie

„Zweck des Gesetzes ist es, Rahmenbedingungen für elektronische Signaturen
zu schaffen.“

KB


Slide 38

Übung

38

Eine verbesserte Hash-Funktion arbeitet wie folgt:
Vorbereitung: binäre Kodierung gemäß ASCII-Code
UTA  85 | 84 | 65  01010101 | 01010100 | 01000001 = X1 | X2 | X3

Kryptologie

XOR-Kompression:
Y1 = 00000000
Y2 = Y1 XOR X1 = 00000000 XOR 01010101 = 01010101  10101010
Y3 = Y2 XOR X2 = 10101010 XOR 01010100 = 11111110  11111101
Y4 = Y3 XOR X3 = 11111101 XOR 01000001 = 10111010  01110101
Nachbereitung:
01110101  1 + 4 + 16 + 32 + 64 = 117
Ergebnis:
85 | 84 | 65  117

Erzeugen Sie analog den Hash-Wert von ‚HALLO‘.
KB


Slide 39

Kryptologie

39

KB

Teil 3

Sicherheitsinfrastruktur


Slide 40

PGP

40

PGP - Pretty Good Privacy
Hybridverfahren: PGP kombiniert
symmetrisches Verfahren (z. B. IDEA – Intern. Data
Encryption Algorithm)

Kryptologie



KB



asymmetrisches Verfahren (z. B. RSA)

Lit.: www.sicherheit-im-internet.de


Slide 41

PGP

41

Vorbereitung
PGP erzeugt mit RSA das Schlüsselpaar (c,d) des Teilnehmes T und speichert es
in einer Datei (auf Diskette) ab. Um an (c,d) heranzukommen, muss T ein
vorher festgelegtes Password eingeben.

Kryptologie

T verschickt seinen öffentlichen Schlüssel an alle Personen, mit denen er
korrespondieren will / legt ihn auf einen Schlüsselserver.

Verschlüsselung: A will x an B schicken.
PGP (von A) erzeugt einen Sessionkey s.
PGP (von A) verschlüsselt die Nachricht x mit IDEA: y = g(s,x)
PGP (von A) verschlüsselt den Sessionkey s mit RSA: u = f(cB,s)
A sendet (y,u) an B.
PGP (von B) entschlüsselt u: s = f*(dB,u)
PGP (von B) entschlüsselt y: x = g*(s,y)

KB


Slide 42

Vertauen zu Schlüsseln

42

Situation:

A sendet seinen öffentlichen Schlüssel cA an B.

Kryptologie

X fängt die Nachricht ab, erzeugt ein neues Schlüsselpaar (cX,
dX), ersetzt cA durch cx und schickt die Nachricht an B.

KB

B glaubt nun, der öffentliche Schlüssel von A sei cx.
Grundproblem:
Wie kann gewährleistet werden, dass ein öffentlicher Schlüssel
authentisch ist, also demjenigen gehört, der sich als
Eigentümer ausgibt?


Slide 43

Zertifizierung

43

Zertifizierungsstelle (Trusted Third Party; kurz TTP):

A erzeugt ein neues Schlüsselpaar (cA, dA).

Kryptologie

A weist sich gegenüber TTP aus (ID-Nachweis).
A hinterlegt eine Kopie seines öffentlichen Schlüssels cA bei TTP.
TTP erstellt ein Zertifikat Z mit (u. a.) ID und cA. D.h.: TTP
verschlüsselt (ID, cA) mit seinem geheimen Schlüssel  Z.
Signieren:
A signiert Nachricht mit dA und schickt sie an B.

B testet, ob cA wirklich A gehört. D.h.: B entschlüsselt Z mit dem
öffentl. Schlüssel von TTP / entnimmt ID und cA dem Zertifikat Z.
B entschlüsselt die Signatur mit cA.
KB

B erzeugt den Hash-Wert der Nachricht und testet die Signatur.


Slide 44

44

Literatur
A. Beutelspacher: Kryptologie. Vieweg 1995.

S. Singh: Codes. Hanser 2002.
LOG IN 5/6 1996: Themenheft Kryptologie.

Kryptologie

R. Baumann: Digitale Unterschrift. In: LOG IN 2/99 und 3-4/99.

KB

H. Witten, I. Letzner, R.-H. Schulz: RSA & Co in der Schule.
Serie in LOG IN ab 3-4/99.


Slide 45

Literatur

45

www.foebud.org/pgp/html/node36.html
Glossar mit zentralen Begriffen der Kryptologie
www.sicherheit-im-internet.de/home.html
Initiative des Bundes

Kryptologie

www.educeth.ch/informatik/lernaufg/twokeys/doc
Unterrichtseinheit zur Einführung asymmetrischer Verfahren

KB

...