Kryptologie Klaus Becker 2002 2 Email an K
Kryptologie Klaus Becker (2002)
2 E-mail an K. Becker An: Klaus. Becker@aol. de Von: Die. Billige. Bank@t-online. de 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)
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
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
Kryptologie 5 KB Teil 1 Verschlüsselung
6 Kommunikationssituation Nachricht Kryptologie Liebe. . . Sender Empfänger Angreifer KB
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
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.
9 Symmetrische Chiffriersysteme Schlüssel Kryptologie s x Klartext f s y Geheimtext Verschlüsselungsfunktion Beispiele: • Caesar-Chiffriersystem • Vigenere-Chiffriersystem KB f* x Klartext Entschlüsselungsfunktion
Symmetrische Chiffriersysteme 10 Aufgabe: Kryptologie Beurteile symmetrische Chiffriersysteme hinsichtlich des Aufwands KB n für die Erzeugung von Schlüsseln, n 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.
11 Asymmetrische Chiffriersysteme Kryptologie A c. B x Klartext f KB y Geheimtext Verschlüsselungsfunktion Jeder Teilnehmer verfügt über zwei Schlüssel: B d. B f* x Klartext Entschlüsselungsfunktion c: öffentlicher Schlüssel d: privater Schlüssel
12 Asymmetrische Chiffriersysteme Kryptologie A c. B x Klartext f B d. B y Geheimtext f* x Klartext Kommunikationsprotokoll: A verschlüsselt x mit dem öffentlichen Schlüssel von B: y = f(c. B, x). A sendet y an B. B entschlüsselt y mit seinem privaten Schlüssel: x = f*(d. B, y). KB
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: c. A B: c. B. . . Die Übermittlung des privaten Schlüssels an den Teilnehmer muss sicher sein. d. A Die privaten Schlüssel werden von den Teilnehmern geheim gehalten. A: d. A A
14 Asymmetrische Chiffriersysteme Kryptologie Sicherheitsanforderungen: KB Es ist praktisch unmöglich, aus dem öffentlichen Schlüssel c. T den privaten Schlüssel d. T zu erschließen. Es ist praktisch unmöglich, den privaten Schlüssel d. T aus Klartext-Geheimtextpaaren (x, y) zu erschließen.
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 gg. T(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)
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. :
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
18 RSA - Korrektheit Zu zeigen: 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
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)
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)
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. 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
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. 15 HALLO Ergebnis: entschlüsselte Nachricht: HALLO KB
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. )
24 RSA-Verfahren knacken 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) Strategie 2. Mögl. : x = mod(yd, n) (x, y, n) d (c, ) d Schwierigkeit: Primfaktorzerlegung von n KB diskreter Logarithmus
Einwegfunktionen 25 Einwegfunktion: n f ist eine umkehrbare Funktion mit Umkehrfunktion f*. n f kann mit geringem Aufwand berechnet werden. Kryptologie n 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)
Ü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 Derive-Protokoll vor. Vergrößern Sie schrittweise die benutzten Primzahlen. Was fällt auf? NEXT_PRIME(10^10) 1000019 NEXT_PRIME(10^11) 1000003 1000019· 1000003 10000193000057 FACTOR(10000193000057) 1000019· 1000003 KB
Kryptologie 27 KB Teil 2 Digitale Signatur
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). n Gewährleistung der Authentizität (Nachricht stammt vom Absender) n KB
Digitale Signatur 29 Anforderungen an eine digitale Signatur Authentizität: Nur der Urheber des Dokuments kann die Signatur erzeugen. n Nichtübertragbarkeit: Die Signatur kann nicht auf andere Dokumente übertragen werden. Kryptologie n KB Verbindlichkeit: Der Absender kann die Urheberschaft nicht abstreiten. n Verifizierbarkeit: Der Empfänger kann die Signatur zweifelsfrei prüfen. n
30 Erzeugung einer digitalen Signatur Kryptologie A d. A x Klartext f y Geheimtext f* Grundidee A verschlüsselt x mit seinem privaten Schlüssel. KB B c. A x Klartext
Digitale Signatur 31 Kryptologie A KB d. A x Klartext f B c. A y Geheimtext f* x Klartext Zu den Anforderungen an eine digitale Signatur: n Authentizität: nur A verfügt über d. A. n Nichtübertragbarkeit: anderes x, anderes y n Verbindlichkeit: nur A kann x in y umgewandelt haben Verifizierbarkeit: B kann y nur mit c. A in ein sinnv. x umwandeln n
Digitale Signatur 32 Kryptologie A d. A x Klartext f y Geheimtext f* x Klartext Nachteile n Das signierte Dok. ist erst nach dem Entschlüsseln lesbar. n Es ist sehr aufwendig, das gesamte Dok. zu verschlüsseln. Ausweg KB B c. A Erzeugung eines „digitalen Fingerabdrucks“
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 0101 | 01010100 | 01000001 = X 1 | X 2 | X 3 XOR-Kompression: Y 1 = 0000 Y 2 = Y 1 XOR X 1 = 0000 XOR 0101 = 0101 Y 3 = Y 2 XOR X 2 = 0101 XOR 01010100 = 00000001 Y 4 = Y 3 XOR X 3 = 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
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
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(d. A, h(x)). KB A sendet (x, u) an B. B entschlüsselt u mit dem öffentlichen Schlüssel von A: v = f*(d. B, u). B erzeugt den Hash-Wert h(x) und prüft, ob h(x) = v.
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) n Es ist praktisch unmöglich, eine von x verschiedene Nachricht z mit h(x) = h(z) zu erzeugen. (Kollisionsresistenz) Kryptologie n 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.
37 Rechtslage Gesetz über Rahmenbedingungen für elektronische Signaturen (Signaturgesetz – Sig. G) (16. 05. 2001) Kryptologie „Zweck des Gesetzes ist es, Rahmenbedingungen für elektronische Signaturen zu schaffen. “ KB
Übung 38 Eine verbesserte Hash-Funktion arbeitet wie folgt: Vorbereitung: binäre Kodierung gemäß ASCII-Code UTA 85 | 84 | 65 0101 | 01010100 | 01000001 = X 1 | X 2 | X 3 Kryptologie XOR-Kompression: Y 1 = 0000 Y 2 = Y 1 XOR X 1 = 0000 XOR 0101 = 0101 1010 Y 3 = Y 2 XOR X 2 = 1010 XOR 01010100 = 11111110 11111101 Y 4 = Y 3 XOR X 3 = 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
Kryptologie 39 KB Teil 3 Sicherheitsinfrastruktur
PGP 40 PGP - Pretty Good Privacy Hybridverfahren: PGP kombiniert symmetrisches Verfahren (z. B. IDEA – Intern. Data Encryption Algorithm) Kryptologie n KB n asymmetrisches Verfahren (z. B. RSA) Lit. : www. sicherheit-im-internet. de
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(c. B, s) A sendet (y, u) an B. PGP (von B) entschlüsselt u: s = f*(d. B, u) PGP (von B) entschlüsselt y: x = g*(s, y) KB
Vertauen zu Schlüsseln 42 Situation: A sendet seinen öffentlichen Schlüssel c. A an B. Kryptologie X fängt die Nachricht ab, erzeugt ein neues Schlüsselpaar (c. X, d. X), ersetzt c. A 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?
Zertifizierung 43 Zertifizierungsstelle (Trusted Third Party; kurz TTP): A erzeugt ein neues Schlüsselpaar (c. A, d. A). Kryptologie A weist sich gegenüber TTP aus (ID-Nachweis). A hinterlegt eine Kopie seines öffentlichen Schlüssels c. A bei TTP erstellt ein Zertifikat Z mit (u. a. ) ID und c. A. D. h. : TTP verschlüsselt (ID, c. A) mit seinem geheimen Schlüssel Z. Signieren: A signiert Nachricht mit d. A und schickt sie an B. B testet, ob c. A wirklich A gehört. D. h. : B entschlüsselt Z mit dem öffentl. Schlüssel von TTP / entnimmt ID und c. A dem Zertifikat Z. B entschlüsselt die Signatur mit c. A. KB B erzeugt den Hash-Wert der Nachricht und testet die Signatur.
44 Literatur 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. KB H. Witten, I. Letzner, R. -H. Schulz: RSA & Co in der Schule. Serie in LOG IN ab 3 -4/99.
Literatur 45 www. foebud. org/pgp/html/node 36. 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 . . .
- Slides: 45