510 likes | 795 Views
Kryptologie. Klaus Becker (2002). E-mail an K. Becker. An: KlausBecker@aol.de Von: DieBilligeBank@t-online.de Betrifft: Kontoeröffnung Sehr geehrte Herr Becker,
E N D
Kryptologie Klaus Becker (2002)
E-mail an K. Becker An: KlausBecker@aol.de Von: DieBilligeBank@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)
Sicherheitsprobleme 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?
Sicherheitsanforderungen 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.
Teil 1 Verschlüsselung
Kommunikationssituation Nachricht Liebe ... Sender Empfänger Angreifer
Chiffriersysteme 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.
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.
Schlüssel Schlüssel s s y x f f* Klartext Geheimtext Verschlüsselungs-funktion Entschlüsselungs-funktion Symmetrische Chiffriersysteme x Klartext Beispiele: • Caesar-Chiffriersystem • Vigenere-Chiffriersystem
Symmetrische 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.
Asymmetrische Chiffriersysteme A B cB dB x y x f f* Klartext Geheimtext Klartext Verschlüsselungs-funktion Entschlüsselungs-funktion Jeder Teilnehmer verfügt über zwei Schlüssel: c: öffentlicher Schlüssel d: privater Schlüssel
Asymmetrische Chiffriersysteme A B cB dB x y x f f* Klartext Geheimtext 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).
Asymmetrische Chiffriersysteme Die Schlüssel werden von einer Schlüsselvergabestelle 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
Asymmetrische 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.
RSA-Verfahren RSA: Rivest, Shamir, Adleman (1977) Schlüsselerzeugung: 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) Öffentl. Schlüssel: (c,n)Bsp.: (13,77) Privater Schlüssel: (d,n)Bsp.: (37,77)
RSA-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 < p,q
RSA - 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 < 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...
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. 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
RSA-Verfahren mit DERIVE Hilfsfunktionen: dient zur Bestimmung von d mit mod(cd,) = 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
RSA-Verfahren mit DERIVE 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)Bsp.: (2503, 2021027) Privater Schlüssel: (d,n)Bsp.: (1454455, 2021027)
RSA-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 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
RSA-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 801|121|215 08.01.12.12.15 HALLO Ergebnis: entschlüsselte Nachricht: HALLO
Ü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.)
RSA-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
Einwegfunktionen • 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 = pq Produkt von zwei Primzahlenf*: n (p,q) Primfaktorzerlegung Bed.: n hat mehr als 155 Stell. (512 Bit)
Ü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(10^10) 10000000019 NEXT_PRIME(10^11) 100000000003 10000000019·100000000003 1000000001930000000057 FACTOR(1000000001930000000057) 10000000019·100000000003
Teil 2 Digitale Signatur
Probleme 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)
Digitale 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.
Erzeugung einer digitalen Signatur A B dA cA x y x f f* Klartext Geheimtext Klartext Grundidee A verschlüsselt x mit seinem privaten Schlüssel.
Digitale Signatur A B dA cA x y x f f* Klartext Geheimtext 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
Digitale Signatur A B dA cA x y x f f* Klartext Geheimtext Klartext • 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“
Digitaler 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 0*1+0*2+0*4+0*8+0*16+0*32+1*64+0*128 = 64 Ergebnis: 85 | 84 | 65 64
Hash-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 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).
Digitale 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.
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) 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.
Rechtslage Gesetz über Rahmenbedingungen für elektronische Signaturen (Signaturgesetz – SigG) (16.05.2001) „Zweck des Gesetzes ist es, Rahmenbedingungen für elektronische Signaturen zu schaffen.“
Ü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 11111101Y4 = 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‘.
Teil 3 Sicherheitsinfrastruktur
PGP 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
PGP 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)
Vertauen 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?
Zertifizierung 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.
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. H. Witten, I. Letzner, R.-H. Schulz: RSA & Co in der Schule. Serie in LOG IN ab 3-4/99.
Literatur 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 ...