Wiederholung Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES Mathematische Grundlagen: algebraische Strukturen: Halbgruppe, Monoid, Gruppe Rechnen mit Restklassen: Addition / Subtraktion, Multiplikation / Division, Potenzieren / Diskreter Logarithmus
Primitive Elemente in Z n Beobachtung in Z 5 : {1 i mod 5 i {0, 1, 2, 3}} =? {2 i mod 5 i {0, 1, 2, 3}} =? {3 i mod 5 i {0, 1, 2, 3}} =? {4 i mod 5 i {0, 1, 2, 3}} =? Für jede Primzahl n N heißt a Z n genau dann primitives Element in Z n, wenn {a i i {0,..., n 2}} = n 1 Für jede Primzahl n N und jedes primitive Element a Z n existiert zu jedem b Z n ein k Z n mit a k n b
Asymmetrische Verfahren symmetrische Verfahren: Vorteil: schnelles Ver- und Entschlüsseln Nachteil: geheimer Schlüssel muss allen Teilnehmern bekannt sein Problem: Wie wird der geheime Schlüssel übertragen? (über einen unsicheren Übertragungskanal) Verschlüsselungsverfahren: symmetrisch gleicher Schlüssel zum Ver- und Entschlüsseln c = e(k, m) d(k, c) = m d(k, e(k, m)) = m asymmetrisch verschiedene Schlüssel zum Ver- und Entschlüsseln c = e(k e, m) d(k d, c) = m d(k d, e(k e, m)) = m
Public-Key-Verfahren Idee: B hat ein Paar (p B, g B ) von Schlüsseln: p B ist öffentlich, g B geheim A verschlüsselt m mit p B zu c = e(p B, m) B entschlüsselt c mit s B zu m = d(g B, c) Dabei muss gelten: Vorteile: d(g B, e(p B, m)) = m Öffentlicher Schlüssel kann öffentlich bekanntgegeben werden. Jeder potentielle Sender kann damit Nachrichten an B verschlüsseln. Keine geheime Schlüsselübermittlung notwendig. Anwendungen: Verschlüsselung von Nachrichten Übermittlung geheimer Schlüssel digitalen Signaturen
Beispiel: Merkles Rätsel (Ralph Merkle, 1974) sichere Kommunikation ohne geheimen Schlüssel Protokoll zum Senden einer Nachricht m von A an B: 1. Schlüsselerzeugung und -tausch: B würfelt n Zahlen x1,..., x n und 2n Schlüssel y 1,..., y n und k 1,..., k n und speichert alle n Paare (x i, y i ) Erzeugung der Rätsel r 1,..., r n : Verschlüsselung aller Paare (x i, y i ) mit Schlüssel k i (symmetrisches Verfahren) für jedes i {1,..., n}: r i = e(k i, (x i y i )) B sendet alle Rätsel (r1,..., r n ) an A A wählt daraus eine beliebiges Rätsel rj A bestimmt (x j, y j ) und k j aus r j (Brute-force) Aufwand: Test eines Rätsels mit etwa n/2 Schlüsseln 2. Übermitteln der Nachricht: A verschlüsselt Klartext m mit yj zu c = e(y j, m) A sendet (c, x j ) an B B findet (x j, y j ) unter seinen gespeicherten Paaren B entschlüsselt m = d(yj, c)
Merkles Rätsel Kryptanalyse Ciphertext-Only-Angriff (Brute-force): E kennt alle Rätsel (r 1,..., r n ) (von B an A) c und x j (von A an B) E muss alle n Geheimtexte (c 1,..., c n ) entschlüsseln. Test von etwa n/2 Geheimtexten mit je n Schlüsseln Kryptanalyse sehr viel aufwendiger (quadratisch) als Ver- und Entschlüsselung.
Einwegfunktionen Eine umkehrbare Funktion f : A B heißt genau dann Einwegfunktion, wenn der Aufwand zur Berechnung von f 1 : B A sehr viel höher ist als der Aufwand zur Berechnung von f : A B. Beispiele: Polynome: f : N N mit f (x) = an x n + + a 1 x + a 0 (mit n > 4) f 1 : N N mit f 1 (y) = x gdw. a n x n + + a 1 x + a 0 = y (z.b. Nullstellenbestimmung) diskreter Logarithmus in Z n (zu einer Basis a) f : Zn Z n mit f (b) = a b mod n f 1 : Z n Z n mit f 1 (c) = b mit a b n c Zerlegung in zwei Primzahlen: f : (N N) N mit f (p, q) = pq für Primzahlen p, q f 1 : N (N N) mit f 1 (n) = (p, q) mit pq = n
Einweg-Falltürfunktionen Eine Einwegfunktion f : A B heißt genau dann Einweg-Falltürfunktion, wenn der Aufwand zur Berechnung von f 1 : B A mit einer Zusatzinformation sehr viel geringer ist als ohne diese Zusatzinformation. Idee: Schlüssel als Zusatzinformation Beispiele: Merkles Rätsel mit bekannten Paaren (x i, y i ) Zerlegung in zwei Primzahlen mit einem bekannten Faktor
Diffie-Hellman-Verfahren (Whitfield Diffie, Martin Hellman 1976) Verfahren zum Austausch (Erzeugung) geheimer Schlüssel Diffie-Hellman-Verfahren: 1. (öffentliche) Vereinbarung von (n, p) mit Primzahl n und primitivem Element p in Z n 2. A wählt g A Z n und berechnet a = p g A mod n 3. B wählt g B Z n und berechnet b = p g B mod n 4. A sendet a an B, B sendet b an A 5. A berechnet g = b g A mod n, B berechnet g = a g B mod n Alle Übertragungen können öffentlich geschehen. Beispiel: n = 11, p = 7, g A = 4, g B = 6, Ergebnis: gemeinsamer geheimer Schlüssel g = g, wegen g n a g B n (p g A ) g B n p g Ag B n (p g B ) g A n b g A = g
Diffie-Hellman Sicherheit Ciphertext-Only-Angriff: E kennt n, p, a, b und weiß k n p xy für x, y mit a n p y und b n p x x, y sind diskrete Logarithmen zur Basis p in Z n diskreter Logarithmus ist Einwegfunktion Kein effizientes Verfahren zur Berechnung diskreter Logarithmen bekannt Sicherheit hängt von Größe und Auswahl von n ab.