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 = pq 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(cd,) = 1.
Bsp.: d = 37 (1337 = 481 = 860 + 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 = pq.
Kryptologie
Setze: = (p-1)(q-1). Dann ist = (n).
Satz von Euler liefert: mod(x, n) = 1 (*)
Konstruktion von c und d liefert: mod(cd,) = 1
Also: Es gibt k mit cd = k + 1
Folglich: (xc)d = xcd = xk + 1 = xxk
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(cd,) = 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 = pq
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
...
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 = pq 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(cd,) = 1.
Bsp.: d = 37 (1337 = 481 = 860 + 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 = pq.
Kryptologie
Setze: = (p-1)(q-1). Dann ist = (n).
Satz von Euler liefert: mod(x, n) = 1 (*)
Konstruktion von c und d liefert: mod(cd,) = 1
Also: Es gibt k mit cd = k + 1
Folglich: (xc)d = xcd = xk + 1 = xxk
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(cd,) = 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 = pq
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
...