Title: Kryptologie
1Kryptologie
2E-mail an K. Becker
An KlausBecker_at_aol.de Von
DieBilligeBank_at_t-online.de Betrifft
Kontoeröffnung 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 P.
Theuerkauf (Leiter der Service-Abteilung)
3Sicherheitsprobleme
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?
4Sicherheitsanforderungen
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.
5Teil 1
Verschlüsselung
6Kommunikationssituation
Nachricht
Liebe ...
Sender
Empfänger
Angreifer
7Chiffriersysteme
Schlüssel
Schlüssel
x
y
x
f
f
Klartext
Klartext
Geheimtext
Verschlüsselungs-funktion
Entschlüsselungs-funktion
Beachte Chiffriersysteme dienen der Ver- und
Entschlüsselung von Nachrichten. Sie sollen
Vertraulichkeit gewähren.
8Sicherheit 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.
9Symmetrische Chiffriersysteme
x
Klartext
- Beispiele
- Caesar-Chiffriersystem
- Vigenere-Chiffriersystem
10Symmetrische Chiffriersysteme
- Aufgabe
- Beurteile symmetrische Chiffriersysteme
hinsichtlich des Aufwands - 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.
11Asymmetrische Chiffriersysteme
B
A
cB
dB
x
y
x
f
f
Klartext
Klartext
Geheimtext
Verschlüsselungs-funktion
Entschlüsselungs-funktion
Jeder Teilnehmer verfügt über zwei Schlüssel
c öffentlicher Schlüssel
d privater Schlüssel
12Asymmetrische Chiffriersysteme
B
A
cB
dB
x
y
x
f
f
Klartext
Klartext
Geheimtext
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).
13Asymmetrische Chiffriersysteme
Die Schlüssel werden von einer Schlüsselvergabeste
lle erzeugt. Die öffentlichen Schlüssel werden
in einer öffentlichen Datenbank
bereitgestellt. Die Übermittlung des privaten
Schlüssels an den Teilnehmer muss sicher
sein. Die privaten Schlüssel werden von den
Teilnehmern geheim gehalten.
(c,d)
A cA
B cB
...
dA
A
A dA
14Asymmetrische Chiffriersysteme
Sicherheitsanforderungen 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.
15RSA-Verfahren
RSA Rivest, Shamir, Adleman (1977)
Schlüsselerzeugung 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 lt ?
mit ggT(c,?) 1. Günstig c Primzahl mit
p,q lt c lt ? Bsp. c 13 Bestimme d mit
mod(c?d,?) 1. Bsp. d 37 (13?37 481
8?60 1)
Öffentl. Schlüssel (c,n) Bsp. (13,77)
Privater Schlüssel (d,n) Bsp. (37,77)
16RSA-Verfahren
Schlüssel Öffentl. Schlüssel (c,n) Bsp.
(13,77) Privater Schlüssel (d,n) Bsp. (37,77)
Verschlüsselung y mod(xc,n) Bsp. x 6
y mod(613,77) 62
Entschlüsselung x mod(yd,n) Bsp. y 62
x mod(6237,77) 6
Bedingung x lt p,q
17RSA - mathematische Grundlagen
Mathematische Grundlage Satz von Euler Für zwei
teilerfremde natürliche Zahlen a und m gilt a
?(m) mod m 1 bzw. mod(a?(m), m) 1
Eulersche ?-Funktion ?(m) Anzahl der zu m
teilerfremden Zahlen, die lt 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 24 mod 5 1 bzw. 5 24
?144 mod 5 1 bzw. 5 34 ?1 44 mod 5 1 bzw.
5 44 ?164 mod 5 1 bzw. 5 64 ?1 74 mod 5
1 bzw. 5 74 ?1...
18RSA - 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 lt p, q
und n p?q. 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
19RSA-Verfahren mit DERIVE
Hilfsfunktionen
dient zur Bestimmung von d mit mod(c?d,?)
1 Aufruf MODINV(c, ?)
MODINV
c
d
?
MODPOT
x
dient zur Bestimmung der modularen
Potenz Aufrufe mod(xc,n) MODPOT(x, c,
n) mod(yd,n) MODPOT(y, d, n)
c
y
n
MODPOT
y
x
d
n
20RSA-Verfahren mit DERIVE
Erzeugung der Schlüssel
DERIVE-Protokoll p NEXT_PRIME(1000) 1009 q
NEXT_PRIME(2000) 2003 n pq 2021027 ? (p -
1)(q - 1) 2018016 c NEXT_PRIME(2500) 2503 d
MODINV(c, ?) 1454455
Ergebnis Öffentl. Schlüssel (c,n) Bsp.
(2503, 2021027) Privater Schlüssel
(d,n) Bsp. (1454455, 2021027)
21RSA-Verfahren mit DERIVE
Verschlüsselung der Nachricht HALLO
Öffentl. Schlüssel (c,n) (2503, 2021027)
Privater Schlüssel (d,n) (1454455, 2021027)
Vorbereitung Kodierung HALLO ? 08.01.12.12.15 ?
801121215 beachte benutzte Zahlen lt p,q
DERIVE-Protokoll MODPOT(801, c,
n) 234247 MODPOT(121, c, n) 1436140 MODPOT(215,
c, n) 697452
Ergebnis verschlüsselte Nachricht
2342471436140697452
22RSA-Verfahren mit DERIVE
Entschlüsselung
Öffentl. Schlüssel (c,n) (2503, 2021027)
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 801121215 ?
08.01.12.12.15 ? HALLO
Ergebnis entschlüsselte Nachricht HALLO
23Übung
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. (Sie können auch eine
Nachricht mit ihrem Nachbarn verschlüsselt
austauschen.)
24RSA-Verfahren knacken
RSA knacken 1. Mögl. (c,n) ? (d,n) 2. Mögl.
(x,y), (c,n) ? (d,n)
Strategie 1. Mögl. Strategie 2. Mögl. n ?
(p,q) x mod(yd,n) (p,q) ? ? (x,y,n) ?
d (c,?) ? d
Schwierigkeit Primfaktorzerlegung von
n diskreter Logarithmus
25Einwegfunktionen
- Einwegfunktion
- f ist eine umkehrbare Funktion mit
Umkehrfunktion f. - f kann mit geringem Aufwand berechnet werden.
- f kann nur mit sehr hohem Aufwand (praktisch
nicht) berechnet werden.
f
f
Beispiel 1 Telefonbuch f Name ?
Telefonnummerf Telefonnummer ? Name
Beispiel 2 RSA f (p,q) ? n p?q Produkt von
zwei Primzahlenf n ? (p,q) Primfaktorzerlegung
Bed. n hat mehr als 155 Stell. (512 Bit)
26Übung
Untersuchen Sie mit Derive, wie lang eine
Produktberechnung und die zugehörige Berechnung
der Primfaktorzerlegung dauert. Gehen Sie hierzu
wie im unten abgebildeten Derive-Protokoll vor.
Vergrößern Sie schrittweise die benutzten
Primzahlen. Was fällt auf?
NEXT_PRIME(1010) 10000000019 NEXT_PRIME(1011) 10
0000000003 10000000019100000000003 10000000019300
00000057 FACTOR(1000000001930000000057) 1000000001
9100000000003
27Teil 2
Digitale Signatur
28Probleme mit der Urheberschaft
Probleme 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)
29Digitale Signatur
- 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. - Verbindlichkeit Der Absender kann die
Urheberschaft nicht abstreiten. - Verifizierbarkeit Der Empfänger kann die
Signatur zweifelsfrei prüfen.
30Erzeugung einer digitalen Signatur
B
A
dA
cA
x
y
x
f
f
Klartext
Klartext
Geheimtext
Grundidee A verschlüsselt x mit seinem privaten
Schlüssel.
31Digitale Signatur
B
A
dA
cA
x
y
x
f
f
Klartext
Klartext
Geheimtext
- 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
32Digitale Signatur
B
A
dA
cA
x
y
x
f
f
Klartext
Klartext
Geheimtext
- Nachteile
- Das signierte Dok. ist erst nach dem
Entschlüsseln lesbar. - Es ist sehr aufwendig, das gesamte Dok. zu
verschlüsseln.
Ausweg Erzeugung eines digitalen Fingerabdrucks
33Digitaler Fingerabdruck
Grundidee Es wird eine geeignet komprimierte
Form des Klartextes x ermittelt.
- Beispiel vereinfachte XOR-Kompression
- Vorbereitung binäre Kodierung gemäß ASCII-Code
- UTA ? 85 84 65 ? 01010101 01010100
01000001 X1 X2 X3 - XOR-Kompression
- Y1 00000000Y2 Y1 XOR X1 00000000 XOR
01010101 01010101Y3 Y2 XOR X2 01010101 XOR
01010100 00000001Y4 Y3 XOR X3 00000001 XOR
01000001 01000000 - Nachbereitung 01000000 ? 010204080160
321640128 64 - Ergebnis
- 85 84 65 ? 64
34Hash-Funktion
Hash-Funktionen Funktion h, die jeder Nachricht x
einen Prüfwert h(x) zuordnet (digitaler
Fingerabdruck).
- Beispiel
- x UTA ? 85 84 65
- h(x) 64
Einweg-Hash-Funktionen Hashfunktion mit folgender
EigenschaftEs 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).
35Digitale Signatur
Signierprotokoll A bestimmt zur Nachricht x den
Hash-Wert h(x) mit der vereinbarten Hash-Funktion
h. A erzeugt die digitale Signatur für x u
f(dA,h(x)). 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.
36Anforderungen 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)
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.
37Rechtslage
Gesetz über Rahmenbedingungen für elektronische
Signaturen (Signaturgesetz SigG)
(16.05.2001) Zweck des Gesetzes ist es,
Rahmenbedingungen für elektronische Signaturen zu
schaffen.
38Übung
Eine verbesserte Hash-Funktion arbeitet wie
folgt
Vorbereitung binäre Kodierung gemäß
ASCII-Code UTA ? 85 84 65 ? 01010101
01010100 01000001 X1 X2
X3 XOR-Kompression Y1 00000000Y2 Y1 XOR X1
00000000 XOR 01010101 01010101 ? 10101010Y3
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.
39Teil 3
Sicherheitsinfrastruktur
40PGP
PGP - Pretty Good Privacy
- Hybridverfahren PGP kombiniert
- symmetrisches Verfahren (z. B. IDEA Intern.
Data Encryption Algorithm) - asymmetrisches Verfahren (z. B. RSA)
Lit. www.sicherheit-im-internet.de
41PGP
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. 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)
42Vertauen zu Schlüsseln
Situation A sendet seinen öffentlichen Schlüssel
cA an B. X fängt die Nachricht ab, erzeugt ein
neues Schlüsselpaar (cX, dX), ersetzt cA durch
cx und schickt die Nachricht an B. 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?
43Zertifizierung
Zertifizierungsstelle (Trusted Third Party kurz
TTP) A erzeugt ein neues Schlüsselpaar (cA,
dA). 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. B erzeugt den Hash-Wert der Nachricht und
testet die Signatur.
44Literatur
A. Beutelspacher Kryptologie. Vieweg 1995. S.
Singh Codes. Hanser 2002. LOG IN 5/6 1996
Themenheft Kryptologie. R. Baumann Digitale
Unterschrift. In LOG IN 2/99 und 3-4/99. H.
Witten, I. Letzner, R.-H. Schulz RSA Co in der
Schule. Serie in LOG IN ab 3-4/99.
45Literatur
www.foebud.org/pgp/html/node36.htmlGlossar mit
zentralen Begriffen der Kryptologie www.sicherheit
-im-internet.de/home.htmlInitiative des
Bundes www.educeth.ch/informatik/lernaufg/twokeys/
docUnterrichtseinheit zur Einführung
asymmetrischer Verfahren ...