Überblick. Vorlesung Informationssicherheit. Symmetrische Verschlüsselung mittels Data Encryption Standard (DES) DES DES DES



Ähnliche Dokumente
11. Das RSA Verfahren und andere Verfahren

Vorlesung Informationssicherheit

Primzahlen und RSA-Verschlüsselung

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

RSA Verfahren. Kapitel 7 p. 103

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

Nachrichten- Verschlüsselung Mit S/MIME

Modul Diskrete Mathematik WiSe 2011/12

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Computeralgebra in der Lehre am Beispiel Kryptografie

Kryptographische Verfahren auf Basis des Diskreten Logarithmus

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Public-Key-Kryptographie (2 Termine)

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

10. Public-Key Kryptographie

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

Digitale Signaturen. Sven Tabbert

Authentikation und digitale Signatur

Programmiertechnik II

10. Kryptographie. Was ist Kryptographie?

Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne

Asymmetrische. Verschlüsselungsverfahren. erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

Zur Sicherheit von RSA

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

Betriebssysteme und Sicherheit Sicherheit. Signaturen, Zertifikate, Sichere

Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012

Lenstras Algorithmus für Faktorisierung

Verschlüsselung. Chiffrat. Eve

Eine Praxis-orientierte Einführung in die Kryptographie

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce

Informatik für Ökonomen II HS 09

-Verschlüsselung

Digitale Unterschriften Grundlagen der digitalen Unterschriften Hash-Then-Sign Unterschriften Public-Key Infrastrukturen (PKI) Digitale Signaturen

Erste Vorlesung Kryptographie

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo

DES der vergangene Standard für Bitblock-Chiffren

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

Praktikum Diskrete Optimierung (Teil 11)

Grundfach Informatik in der Sek II

Algorithmische Kryptographie

Kurze Einführung in kryptographische Grundlagen.

monoalphabetisch: Verschiebechiffren (Caesar), multiplikative Chiffren polyalphabetisch: Vigenère-Chiffre

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

IT-Sicherheitsmanagement. Teil 12: Asymmetrische Verschlüsselung

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren

Sicherheit von PDF-Dateien

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus

Gnu Privacy Guard I. Öffentliche Schlüssel Digitale Unterschrift. Schutz der Privatsphäre durch Kryptographie. von Gerhard Öttl

Public-Key Verschlüsselung

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

E-Government in der Praxis Jan Tobias Mühlberg. OpenPGP. Brandenburg an der Havel, den 23.

Linux-Info-Tag Dresden - 8. Oktober 2006

Einfache kryptographische Verfahren

Probabilistische Primzahlensuche. Marco Berger

Web of Trust, PGP, GnuPG

Einführung Verschlüsselung Mag. Dr. Klaus Coufal

Linux User Group Tübingen

IT-Sicherheit Kapitel 3 Public Key Kryptographie

Kryptographie Reine Mathematik in den Geheimdiensten

Kryptographische Anonymisierung bei Verkehrsflussanalysen

Freie Zertifikate für Schulen und Hochschulen

Anleitung Thunderbird Verschlu sselung

Kryptographie oder Verschlüsselungstechniken

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Entwicklung der Asymmetrischen Kryptographie und deren Einsatz

CCC Bremen R.M.Albrecht

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

7 Rechnen mit Polynomen

Einführung in die verschlüsselte Kommunikation

Kryptographie eine erste Ubersicht

U3L Ffm Verfahren zur Datenverschlüsselung

Mathematik und Logik

Methoden der Kryptographie

Der Zwei-Quadrate-Satz von Fermat

Grundlagen der Verschlüsselung und Authentifizierung (2)

Was ist Kryptographie

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008

Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

Rechneranmeldung mit Smartcard oder USB-Token

-Verschlüsselung mit S/MIME

Allgemeine Erläuterungen zu

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

PeDaS Personal Data Safe. - Bedienungsanleitung -

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Elliptische Kurven in der Kryptographie

-Verschlüsselung mit GPG. Von der Key-Erzeugung zur verschlüsselten . Chemnitzer Linux-Tage März 2010 Vortrag

Verschlüsselung und Entschlüsselung

und Digitale Signatur

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Seminar zur Kryptologie

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher

vorab noch ein paar allgemeine informationen zur d verschlüsselung:

Homomorphe Verschlüsselung

Transkript:

Überblick Vorlesung Informationssicherheit Thema 4: Algorithmen der Kryptographie Robert Baumgartl 9. Mai 2015 Data Encryption Standard (DES) Triple DES Advanced Encryption Standard (AES) RSA DSA Zero-Knowledge 1 / 108 2 / 108 Symmetrische Verschlüsselung mittels Data Encryption Standard (DES) DES Überblick 63 0 Klartext Ergebnis eines durch das National Bureau of Standards ausgeschriebenen Wettbewerbs von IBM im Jahre 1974 erstmalig beschrieben Prüfung/Mitentwicklung durch NSA Standard ANSI X3.92, 1981 Prüfung alle 5 Jahre, ob Standard noch den Erfordernissen eines Kryptosystems entspricht ( 1987, 1993 re-zertifiziert) Schlüssellänge: 56 Bit blockbasiertes Verfahren: 64 Bit Klartext 64 Bit Chiffrat erstes erfolgreiches Verschlüsselungsverfahren für Rechnereinsatz; Grundlage für alle modernen Verfahren Eingangspermutation 31 0 31 0 L0 R0 K1 f L1 = R0 R1 = L0 f (R0, K1) K2 f L2 = R1 R2 = L1 f (R1, K2) usw. L15 = R14 R15 = L14 f (R14, K15) K16 f R16 = L15 f (R15, K16) L16 = R15 Ausgangspermutation Komponenten: Eingangspermutation (IP) Zerlegung in rechte (R) und linke (L) Hälfte 16 identische Runden, die Daten mit Schlüssel kombinieren (Funktion f ) Zusammenfügen von R und L Schlusspermutation (IP 1 ) (Literatur: Reinhard Wobst: Abenteuer Kryptologie. Addison-Wesley, S. 126ff.) 63 Chiffrat 0 3 / 108 4 / 108 DES Eingangspermutation DES Anmerkungen zum Algorithmus 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Tabelle: Eingangspermutation Lies: Bit 58 des Klartextes wird auf Bit 1 der Permutation abgebildet, Bit 50 des Klartextes auf Bit 2 der Permutation usw. Schlüssel ist eigentlich auch 64bittig, 8 Bit dienen jedoch der Paritätsprüfung (jedes Byte muss ungerade Parität haben) für jede der 16 Runden wird aus dem 56-Bit-Schlüssel K ein Subschlüssel K i mit 48 Bit Länge generiert Struktur des DES-Algorithmus ist ziemlich regulär; eine so genannte Feistel-Chiffre ( nächste Folie) Entschlüsselung in umgekehrter Reihenfolge der 16 Runden sehr leicht in Hardware zu synthetisieren (keine Additionen/Multiplikationen, nur Verschiebungen, Permutationen und XOR) 5 / 108 6 / 108 1

DES Feistel-Chiffre Struktur einer Runde (f (R i 1, K i )) Ri 1 Ki Eingangsdatenblock Runde i Funktionsblock vieler symmetrischer Verfahren Verschlüsselung: 32 Bit E 48 Bit Expansion L i+1 = R i 48 Bit XOR Li fi(ri, Ki+1) f Ri Rundenschlüssel Ki+1 R i+1 = L i f (R i, K i+1 ) Entschlüsselung daraus ableitbar: R i = L i+1 L i = L i f (R i, K i+1 ) } {{ } f (R i, K i+1 ) 48 Bit 6 Bit S-Boxen S1 S2 S3 S4 S5 S6 S7 S8 8 6 Bit Substitution Li+1 Ri+1 = R i+1 f (R i, K i+1 ) 4 Bit 8 4 Bit Ausgangsdatenblock Runde i keine Umkehrfunktion f 1 (R, K ) nötig Ver- und Entschlüsselung mit gleicher Funktion f (R, K ) 32 Bit 32 Bit P Permutation 7 / 108 8 / 108 S-Boxen (Substitution Boxen) Zur Sicherheit von DES zentraler Bestandteil jedes symmetrischen Krypografie-Verfahrens nichtlineare Substitution; m Eingangs- werden auf n Ausgangsbits abgebildet S-Boxen in DES sind mythenumrankt, da Prinzipien ihres Entwurfs nicht offengelegt wurden Mittlere 4 Bits (b 1... b 5 ) des Eingabewertes b 0 b 6 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 0 0010 1100 0100 0001 0111 1010 1011 0110 1000 0101 0011 1111 1101 0000 1110 1001 0 1 1110 1011 0010 1100 0100 0111 1101 0001 0101 0000 1111 1100 0011 1001 1000 0110 1 0 0100 0010 0001 1011 1100 1101 0111 1000 1111 1001 1100 0101 0110 0011 0000 1110 1 1 1011 1000 1100 0111 0001 1110 0010 1101 0110 1111 0000 1001 1100 0100 0101 0011 Tabelle: Beispiel: S-Box 5 für DES (es gibt 8 verschiedene) bislang kein kryptanalytischer Angriff publiziert (unbewiesener) Verdacht, NSA könnte eine Hintertür eingebaut haben Hauptmanko: Schlüssellänge von 56 Bit ist zu kurz Wettbewerb DES Challenge ( Wer schafft es als erster, zu einem vorgegebenen DES-Schlüssel die zugehörige Passphrase per Brute-Force-Angriff zu ermitteln? ) DES Challenge, 1997: t = 96d benötigt DES Challenge II-1, 1998: t = 48d (distributed.net) DES Challenge II-2, 1998: t = 56h mittels Deep Crack, einem parallelen Spezialsystem, 250.000$ DES Challenge III, 1999: t = 22h15min 9 / 108 10 / 108 Betriebsmodi (nicht nur, aber auch von DES) Electronic Codebook Modus (ECB) Angriff auf ECB mittels Block Replay ECB-verschlüsselter Datenaustausch mit Bank 1:1-Abbildung Klartextblock Chiffratblock Blöcke sind voneinander unabhängig Blockoperationen parallelisierbar gleicher Klartext erzeugt stets identisches Chiffrat fehlertolerant: Bitfehler im Chiffrat verfälscht nur einen Klartextblock angreifbar mit statistischen Methoden bei Wissen über Klartext 11 / 108 Blocknummern 1 2 3 4 5 6 7 8 9 10 11 12 13 Absenderbank Zeitstempel Empfängerbank Kontoinhaber Konto-Nr. Betrag Abbildung: Beispiel für Format eines Datensatzes Mallory zeichnet Datenverkehr zwischen Bank A und Bank B auf Mallory überweist zweimal einen festen Betrag von A nach B (bis auf Zeitstempel identische Nachrichten) bei allen abgehörten Nachrichten tauscht er die Felder 5-12 mit den Daten aus seinen Überweisungen aus Grundproblem: ECB erlaubt das Austauschen einzelner Blöcke Blöcke dürfen nicht unabhängig sein CBC 12 / 108 2

Betriebsmodi (nicht nur, aber auch von DES) Cipher Block Chaining (CBC) Ver- und Entschlüsselung bei CBC Ergebnis früherer Verschlüsselungen fließt mit in Verschlüsselung des aktuellen Blockes ein (Rückkopplung) Klartextblock wird vor Verschlüsselung mit vorherigem Chiffratblock XOR-verknüpft: C i = E K (P i C i 1 ) Pi 1 Pi K K K EK EK Pi+1 EK Ci 1 Ci Ci+1 K K K DK DK DK Entschlüsselung umgekehrt; der Block wird nach Entschlüsselung mit dem vorangehenden Chiffratblock XOR-verknüpft: Ci 1 Ci Ci+1 Pi 1 Pi Pi+1 P i = C i 1 D K (C i ) erster Block benötigt einen zufälligen Initialisierungsvektor (IV) Abbildung: Verschlüsselung Abbildung: Entschlüsselung 13 / 108 14 / 108 Fehlertoleranz bei CBC Betriebsmodi Cipher Feedback Modus (CFM) Bitfehler im Chiffrat: enthaltender Block unbrauchbar nachfolgender Block hat einen 1-Bit-Fehler an der entsprechenden Position übernächster Block nicht betroffen Selbstsynchronisation auf Blockebene Entfernen oder Einfügen eines Bits in das Chiffrat: alle nachfolgenden Blöcke unbrauchbar Synchronisationsfehler nicht toleriert externe Rahmenstruktur mit Prüfsummen/CRC nötig Nachteil des CBC: ganzer Klartextblock benötigt, bevor Verschlüsselung startet für byteweise Verarbeitung ungeeignet (z. B. ein sicheres Terminal) Nutzung von blockbasierten Verfahren zur Implementierung einer Stromchiffre Idee: Der im vorangegangenen Schritt verschlüsselte Block wird nochmals verschlüsselt und in beliebiger Granularität per XOR mit dem Klartextblock verknüpft. C i = P i E K (C i 1 ) P i = C i E K (C i 1 ) 15 / 108 16 / 108 Betriebsmodi Anmerkungen Cipher Feedback Modus (CFM) Verschlüsselung (Prinzip) Ablauf: 1. Initialisierung eines Schieberegisters mit Initialisierungsvektor 2. blockweise Verschlüsselung des Schieberegisters 3. XOR-Operation von n Bit des Chiffrats (k i ) mit n Bit des Plaintexts (p i ) 4. Ausgabe/Übertragung der resultierenden n Bit (c i ) 5. gleichzeitige Rückkopplung von c i in das Schieberegister und Verschiebung desselben um n Bit 6. GOTO 2 K Byte ganz links p i Schieberegister Verschlüsselung k i c i Übertragung 17 / 108 Verschlüsselung im Cipher Feedback Mode (byteweise, d. h., n = 8) 18 / 108 3

1 Bitte nicht mit Man-in-the-Middle-Angriff verwechseln! 23 / 108 Cipher Feedback Modus Output Feedback Modus (OFM) Verschlüsselung (Prinzip) bei Entschlüsselung sind p i und c i vertauscht Initialisierungsvektor benötigt Granularität der Ausgabe (fast) beliebig: Byte, 16 Bit, 1 Bit usw. Fehler im Klartext bleibt unentdeckt (wird wieder in fehlerhaften Klartext entschlüsselt) Bitfehler im Chiffrat macht n Ausgabeblöcke unbrauchbar (n = Größe des Schieberegisters) fehlende Bits und eingeschobene Fehlerbits ebenso CFM stabilisiert sich auf Blockebene K Byte ganz links p i Schieberegister Verschlüsselung k i c i Übertragung 19 / 108 Verschlüsselung im Output Feedback Mode (byteweise, d. h., n = 8) 20 / 108 Output Feedback Modus (OFM) Anmerkungen Kombination von Blockchiffren Rückkopplung des Resultatbytes k i vor XOR-Verknüpfung mit Plaintextbyte p i : C i = P i S i S i = E K (S i 1 ) P I = C i S i S i = E K (S i 1 ) sonst identisch zu CFM (d. h., IV benötigt; Geheimhaltung nicht erforderlich) Hauptarbeit (Erzeugung des Stroms S i ) kann offline erfolgen 1-Bit-Fehler im Chiffrat führt zu 1-Bit-Fehler im Klartext Synchronisationsfehler katastrophal (vollständiger Informationsverlust) Idee: Weiternutzung eines (bewährten) Verfahrens Verlängerung des Schlüssels Erhöhung der Sicherheit des Verfahrens Mehrfachverschlüsselung = Hintereinanderausführung einund desselben Algorithmus mit unterschiedlichen Schlüsseln. bei Nutzung gleicher Schlüssel bleibt Komplexität eines Brute-Force-Angriffes konstant ( Ziel verfehlt) 21 / 108 22 / 108 Wie oft soll ich nun DES o. ä. ausführen? Meet-in-the-Middle-Angriff Doppelte Verschlüsselung: C = E K2 (E K1 (P)) Hat K eine Breite von n Bits, so müssen 2 n Schlüssel probiert werden. Also müssen bei doppelter Verschlüsselung 2 2n Schlüssel probiert werden, oder? Antwort: Nein! Es gibt den sog. Meet-in-the-Middle-Angriff 1, eine spezielle Form eines Known-Plaintext-Angriffs 2 Chiffrate C 1, C 2 und 2 (zugehörige) Plaintexte P 1, P 2 müssen bekannt sein: C 1 = E K2 (E K1 (P 1 )) C 2 = E K2 (E K1 (P 2 )) Angriffsidee ( von beiden Seiten ): 1. P 1 mit allen möglichen Schlüsseln verschlüsseln und Chiffrate abspeichern 2. C 1 mit allen möglichen Schlüsseln entschlüsseln und Ergebnis mit allen Chiffraten aus 1. vergleichen 3. bei Gleichheit: zugehörige Schlüssel nutzen, um P 2 (doppelt) zu verschlüsseln; Ergebnis = C 2 Schlüssel aus 1. ist K 1, Schlüssel aus 2. ist K 2 4. ansonsten weiterprobieren 24 / 108 4

Meet-in-the-Middle-Angriff Schlußfolgerung Triple DES (3DES) Struktur benötigt viel Speicherplatz (für 2 n Blöcke) Es müssen bei n Bit Schlüssellänge 2 2 n Schlüssel durchprobiert werden Schlußfolgerung: Ist ein Meet-in-the-Middle-Angriff möglich, dann führt die doppelte Verschlüsselung nicht zur Erschwerung des Brute-Force-Angriffes von 2 n auf 2 2n Versuche, sondern nur zu 2 n+1. Fazit: doppelte Verschlüsselung ist (so gut wie) nutzlos! Abhilfe: dreifach verschlüsseln! Klartext Verschlüsselung DES DES DES E(K 1) D(K 2) E(K 3) Entschlüsselung DES DES DES D(K 1) E(K 2) D(K 3) Chiffrat 25 / 108 26 / 108 Triple DES Anmerkungen drei verschiedene Schlüssel nötig Verschlüsselung: C = E K3 (D K2 (E K1 (P))) sog. Encryption-Decryption-Encryption (EDE-Modus) sicherer als aufeinanderfolgende Verschlüsselung Entschlüsselung (analog): P = D K1 (E K2 (D K3 (C))) als ähnlich sicher angesehen wie modernere Verfahren (IDEA, AES) dreifacher Verarbeitungsaufwand (!) Advanced Encryption Standard (AES) AES Rijmen&Daemen, 1998 ursprüngliche Bezeichung: Rijndael in einem mehrere Runden umfassenden Wettbewerb aus mehreren Bewerbungen (u. a. Twofish, RC6, Rijndael) als Nachfolger für DES ausgewählt blockbasiert (128 Bit), Schlüsselgrößen 128, 192 und 256 Bit. Struktur ist keine Feistel-Chiffre, sondern ein Substitution-Permutation Network nicht patentiert, offener Algorithmus zur Zeit einer der meistverwendetsten symmetrischen Algorithmen sehr hohes Maß an Sicherheit Referenzimplementierung nur 500 Zeilen C-Code effizient sowohl in Soft- und Hardwareimplementierungen 27 / 108 28 / 108 AES Weitere Blockchiffrierungsverfahren Anwendungen: WPA2 SSH IPsec Dateiverschlüsselungen: 7-Zip, RAR... Lucifer (1971) FEAL (1990) LOKI (1990) IDEA (1991) Blowfish (1994) Tiny Encryption Algorithm (TEA; 1994) Praktikum RC6 (1997) Serpent (1998) Twofish (1998) Camellia (2000) Threefish (2008)... 29 / 108 30 / 108 5

2 im Sinne von sehr lange dauern 33 / 108 Exkurs: Rechnen mit Restklassen aka Modulo-Arithmetik Aufgabe: Rudi ist um 7.00 Uhr aufgestanden und (nach eigenen Angaben) seit 34 Stunden auf den Beinen. Wie spät ist es? Lösung: (7 + 34) mod 24 = 41 mod 24 = 17 mod 24 Es ist offensichtlich 17.00 Uhr. Man sagt: 41 und 17 sind äquivalent modulo 24 und notiert (7 + 34) 17 mod 24 Rechnen mit Restklassen Allgemein gilt a b mod n iff k : a = b + kn k Z ( a ist kongruent zu b modulo n genau dann, wenn es ein ganzzahliges k gibt mit... ) wenn a > 0 und 0 b < n, dann ist b der Rest der Division a/n a mod n wird häufig modulare Reduktion (von a) genannt Rechenregeln: (a + b) mod n = ((a mod n) + (b mod n)) mod n (a b) mod n = ((a mod n) (b mod n)) mod n (a b) mod n = ((a mod n) (b mod n)) mod n (a(b + c)) mod n = ((ab mod n) + (ac mod n)) mod n 31 / 108 32 / 108 Rechnen mit Restklassen Modulare Exponentiation Eine wichtige Operation, z. B. für RSA, ist gern in Kryptografie eingesetzt, da bestimmte Berechnungen modulo n schwierig 2 sind Zwischenergebnisse haben beschränkten Wertebereich a x mod n Berechnung am Beispiel y = a 8 mod n 1. naiver Ansatz y = (a a a a a a a a) mod n Zwischenergebnis sehr groß, schlecht zu speichern 2. Kombination von Potenzierung und modularer Reduktion y = ((a 2 mod n) 2 mod n) 2 mod n Schön und gut, was aber tun, wenn x keine Zweierpotenz? 34 / 108 Modulare Exponentiation Binäre Exponentiation ( Square-and-multiply ) von x e Modulare Exponentiation Binäre Exponentiation - Beispiel Idee: Binärdarstellung des Exponenten e drückt diesen als Summe von Zweierpotenzen aus! Algorithmus zur Berechnung von y = x e : e als Binärzahl darstellen Binärdarstellung von e bitweise von links beginnend lesen wenn Bit = 1, dann QM notieren wenn Bit = 0, dann Q notieren Initialwert: y = 1 wiederum von links beginnend generierte Zeichenkette analysieren wenn Zeichen = Q, dann y quadrieren wenn Zeichen = M, dann y mit x multiplizieren Berechnung von x 42 Es gilt: 42 10 = 0010.1010 2 d. h., 42 = 2 5 + 2 3 + 2 1 Initialwert d. h., x 42 = ((((x 2 ) 2 x) 2 ) 2 x) 2 42 = 1 0 1 0 1 0 QM Q QM Q QM Q 1 2 x ( x ) 2 ( x 2 ) 2 x ( x 5 ) 2 ( x 10 ) 2 x ( x 21 ) 2 35 / 108 36 / 108 6

Modulare Exponentiation Kombination mit Modulo-Operation: Berechnung von y = x e mod p da gilt: (a b) mod n = ((a mod n) (b mod n)) mod n, muss Modulo-Operation nach jeder Multiplikation und nach jeder Quadrierung ausgeführt werden Beispiel: Berechnung von x 25 mod p Es gilt: 25 10 = 11001 2 d. h., QM QM Q Q QM x 25 mod p = (((((((x 2 mod p) x) mod p) 2 mod p) 2 mod p) 2 mod p) x) mod p benötigt 6 Multiplikationen und 6 Modulo-Operationen Diskreter Logarithmus 37 / 108 Diskreter Logarithmus Def. Eine primitive Wurzel modulo p ist eine Zahl a, deren Potenzen modulo p alle Werte zwischen 1 und p 1 generieren kann. Beispiel: 5 1 = = 5 ( mod 7) 5 2 5 5 4 ( mod 7) 5 3 4 5 6 ( mod 7) 5 4 6 5 2 ( mod 7) 5 5 2 5 3 ( mod 7) 5 6 3 5 1 ( mod 7) Das bedeutet, in diesem Fall können wir für jedes y < p ermitteln, welches x die Gleichung f (x) = y = a x mod p erfüllt. Wir nennen x den diskreten Logarithmus modulo p von y. Diskreter Logarithmus 38 / 108 x 100 80 60 40 20 Schlussfolgerung / Zusammenfassung: modulare Exponentiation f (x) = a x mod p ist leicht zu berechnen (geringer Aufwand) Umkehrung der modularen Exponentiation ( diskreter Logarithmus ) f 1 (x) = a x mod p ist sehr schwierig Einwegfunktion 0 0 20 40 60 80 100 y Abbildung: Graph des diskreten Logarithmus für y = 17 x mod 107 39 / 108 40 / 108 Diffie-Hellman-Protokoll Anwendung des diskreten Logarithmus: Schlüsselgenerierung und -austausch mittels Diffie-Hellman-Protokoll: 1. Bob und Alice einigen sich auf eine große Primzahl p und eine primitive Wurzel g modulo p. 2. Alice wählt eine (große) zufällige Zahl i (Alice geheimer Schlüssel) und berechnet A = g i mod p (Alice öffentlicher Schlüssel). 3. Bob wählt eine (große) zufällige Zahl j (Bobs geheimer Schlüssel) und berechnet B = g j mod p (Bobs öffentlicher Schlüssel). 4. Alice sendet A an Bob, Bob sendet B an Alice. 5. Alice berechnet K = B i mod p = (g j mod p) i mod p = g ij mod p, den geheimen Sitzungsschlüssel. 6. Bob berechnet K = A j mod p = (g i mod p) j mod p = g ij mod p. Anmerkungen zum Diffie-Hellman-Protokoll g muss primitiv modulo p sein, d.h. es muss stets ein l geben, so dass g l b mod p 1 b < p. Eve kann A und B abfangen, es nützt ihr aber nichts, sie kann g ij mod p nicht aus g i mod p und g j mod p berechnen, denn dazu müßte sie i und j ermitteln (den diskreten Logarithmus modulo p von A und B zur Basis g) Mallory ist (leider) mächtiger; er kann einen Man-in-the-Middle-Attack durchführen! 41 / 108 42 / 108 7

5 Deren (Un)endlichkeit ist bislang nicht bewiesen. 47 / 108 3 Der gesamte öffentliche Schlüssel umfasst (g, p, A) 44 / 108 Diffie-Hellman-Protokoll Beispiel Alice Bob g = 4, p = 11 i = 3 j = 4 A = 4 3 mod 11 = 9 B = 4 4 mod 11 = 3 A = 9 Bob Alice B = 3 K = B i mod p K = A j mod p = 3 3 mod 11 = 5 = 9 4 mod 11 = 5 El-Gamal-Verschlüsselung...... klitzekleine Erweiterung des DH-Schlüsselaustausches Schlüsselgenerierung Alice wählt eine Primzahl p und eine primitive Wurzel g mod p Alice wählt einen zufälligen Exponenten i {0,..., p 2}; ihren privaten Schlüssel Alice errechnet A = g i mod p, ihren öffentlichen Schlüssel 3 Verschlüsselung Bob beschafft sich (g, p, A) Bob wählt einen zufälligen Wert j {0,... p 2} und berechnet B = g j mod p Bob teilt die Klartextnachricht in Blöcke m k der Länge {0, 1,..., p 1} ein und berechnet dann die Chiffratblöcke c k c k = A j m k mod p (er multipliziert die Klartextblöcke mit dem DH-Session-Key) 43 / 108 El-Gamal-Verschlüsselung Entschlüsselung Alice besorgt sich B und die Chiffratblöcke c k dividiert die Chiffratblöcke durch den DH-Session-Key c k m k = B j mod p dies tut sie jedoch nicht direkt (sie müßte das zu c k multiplikativ inverse Element finden), sondern sie berechnet den Exponenten x: x = p 1 i und ermittelt dann für jeden Chiffratblock c k Dies funktioniert, weil gilt. B x c k mod p = m k B x c k g j(p 1 i) A j m k (g p 1 ) j (g i ) j A j m k A j A j m k m k (mod p) = m k 45 / 108 El-Gamal-Verschlüsselung Beispiel Alice p = 23, g = 7, i = 6 A = g i mod p = 7 6 mod 23 = 4 x = p 1 i = 23 1 6 = 16 m = B x c mod p = 20 16 19 mod 23 = 17 (p, g, A) = (23, 7, 4) Bob Alice (20, 19) = (B, c) Bob j = 13 B = g j mod p = 7 13 mod 23 = 20 Klartext block m = 17 c = A j m mod p = 4 13 17 mod 23 = 19 46 / 108 Exkurs 2: Primzahlen Def. Eine natürliche Zahl p ist eine Primzahl, wenn sie genau zwei Teiler hat. 0 und 1 sind keine Primzahlen Beispiele: 2, 3, 5, 7, 11,..., 73,..., 2 57885161 1 (gegenwärtig größte bekannte) 4 Primzahlen mit Abstand 2 sind so genannte Primzahlzwillinge 5 ; z. B. (3,5), (101, 103), (3756801695685 2666669 ± 1) Hat p mehr als 2 Teiler, so ist sie eine zusammengesetzte Zahl (ein Produkt von Primzahlen). kein Verfahren, Funktion, Formel usw. bekannt, effizient (große) Zahlen in Primfaktoren zu zerlegen 4 http://www.mersenne.org/ Primzahlen Unendlichkeit von Primzahlen Satz: Es gibt unendliche viele Primzahlen. Beweis (Euklid, 300 v. u. Z.): Angenommen, es gäbe endlich viele Primzahlen p 1, p 2,..., p n. dann kann m = p 1 p 2... p n + 1 keine Primzahl sein wenn m keine Primzahl ist, muss sie zusammengesetzt sein, also Primfaktor q enthalten mit q m = p 1 p 2... p n + 1 da q in {p 1, p 2,..., p n } enthalten sein muss (denn das sind alle Primzahlen, die es gibt), muss auch gelten q p 1 p 2... p n = m 1 aus q m und q (m 1) folgt q m (m 1), also q 1. Da aber keine Primzahl 1 teilt, haben wir einen Widerspruch. Die Annahme endlich vieler Primzahlen ist somit falsch. 48 / 108 8

Generierung von Primzahlen Sieb des Eratosthenes (Eratosthenes von Kyrene, ca. 276 196 v. u. Z.) Algorithmus: 1. Man schreibe alle Zahlen von 2 bis zum gewünschten Maximum M auf. 2. Es sei n die kleinste nicht gestrichene und nicht markierte Zahl. Man markiere n und streiche dann alle Vielfache von n aus. 3. Man führe Schritt 2 für alle n M aus. 4. Alle markierten und alle nicht gestrichenen Zahlen sind Primzahlen. Beispiel (M = 100): 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Eulersche ϕ-funktion Definition (Eulersche ϕ-funktion) ϕ(n) ist die Anzahl der zu n teilerfremden positiven ganzen Zahlen, die nicht größer sind als n. formal: ϕ(n) = {1 a n ggt(n, a) = 1} ( ϕ(n) ist die Mächtigkeit der Menge, die alle Zahlen a enthält, die teilerfremd zu n sind. ) zahlentheoretische Funktion Beispiele: ϕ(1) = 1 ϕ(2) = 1 ϕ(6) = 2 (a {1, 5}) ϕ(7) = 6 (Primzahl!) ϕ(15) = 8 (a {1, 2, 4, 7, 8, 11, 13, 14}) 49 / 108 51 / 108 Generierung von Primzahlen Weitaus effizientere Algorithmen existieren: Fermatscher Primzahltest Miller-Rabin-Test (1974) Sieb von Atkin (1999) AKS-Primzahltest (2002; polynomielle Laufzeit) Eulersche ϕ-funktion und Primzahlen Wenn p prim, dann ϕ(p) = p 1. Wenn p und q prim, dann ϕ(pq) = (p 1)(q 1). Beweis: Es gibt genau pq 1 Zahlen, die kleiner als pq sind. Unter diesen gibt es (p 1) Vielfache von q und (q 1) Vielfache von p. Alle anderen Zahlen < pq sind keine Teiler von pq, da p und q prim sind. Folglich gilt: ϕ(pq) = (pq 1) (p 1) (q 1) = pq p q + 1 = (p 1)(q 1). 50 / 108 52 / 108 Der Satz von Euler Definition (Satz von Euler) Es seien m, n zwei teilerfremde natürliche Zahlen. Dann gilt: m ϕ(n) mod n = 1. Für Primzahlen p, q mit p q und n = pq gilt damit (vgl. vorherige Folie) m (p 1)(q 1) mod pq = 1. Größter gemeinsamer Teiler (ggt) Berechnung über Primfaktorzerlegung Idee: Zerlegung beider Operanden in Primfaktoren Produkt der gemeinsamen Faktoren ist der ggt. Beispiel: ggt(468, 1260) Zerlegung in Primfaktoren liefert: 468 = 2 2 3 3 13 1260 = 2 2 3 3 5 7 ggt = 2 2 3 3 = 36 nur für kleine Zahlen praktikabel, da Primfaktorzerlegung algorithmisch aufwändig für große Zahlen 53 / 108 54 / 108 9

Größter gemeinsamer Teiler (ggt) Euklidischer Algorithmus (ca. 500 v.u.z.) Algorithmus 1 Berechne den ggt(n, a) = 1: if n = 0 then 2: return a 3: else 4: while a 0 do 5: if n > a then 6: n n a 7: else 8: a a n 9: end if 10: end while 11: return n 12: end if Größter gemeinsamer Teiler (ggt) Euklidischer Algorithmus (ca. 500 v.u.z.) sukzessive Subtraktion kann effizient auf modulo-operation abgebildet werden: { ggt(a, (n mod a)) für a > 0 ggt(n, a) = n für a = 0 mit n > a 0 Algorithmus 2 Berechne den ggt(n, a) = 1: while a 0 do 2: h n mod a 3: n a 4: a h 5: end while 6: return n 55 / 108 56 / 108 Euklidischer Algorithmus Beispiel Fazit: ggt(792, 75) = ggt(75, 42) (792 = 10 75 + 42) = ggt(42, 33) (75 = 1 42 + 33) = ggt(33, 9) (42 = 1 33 + 9) = ggt(9, 6) (33 = 3 9 + 6) = ggt(6, 3) (9 = 1 6 + 3) = ggt(3, 0) (6 = 2 3 + 0) = 3 effizienter Algorithmus (viel effizienter als Primfaktorzerlegung!) 57 / 108 Erweiterter Euklidischer Algorithmus generiert zusätzlich zu ggt eine so genannte Linearkombination (aka Vielfachsumme) des ggt: ggt(n, a) = k = v n + u a Algorithmus 3 Berechne k = ggt (n, a) = vn + ua 1: (c, d) (a, n) 2: (u c, v c, u d, v d ) (1, 0, 0, 1) 3: while c 0 do 4: q d/c 5: (c, d) (d qc, c) 6: (u c, v c, u d, v d ) (u d qu c, v d qv c, u c, v c ) 7: end while 8: (k, v, u) (d, v d, u d ) 9: return k, v, u 58 / 108 Erweiterter Euklidischer Algorithmus Beispiel Gesucht: ggt(17, 3) = k = v 17 + u 3 Zeile c d u c v c u d v d q 1 3 17 2 1 0 0 1 4 5 5 2 3 6-5 1 1 0 4 1 5 1 2 6 6-1 -5 1 4 2 5 0 1 6-17 3 6-1 k = 1, v = 1, u = 6, also ggt(17, 3) = 1 = 1 17 + 6 3 59 / 108 Modulare Inverse Satz (Satz von der modularen Inversen) Seien a und n teilerfremde ganze Zahlen (d. h., ggt (n, a) = 1). Dann gibt es eine Ganzzahl b, so dass gilt: a b mod n = 1. ( a ist modulo n invertierbar., b ist das zu a inverse multiplikative Element modulo n. ) Beweis: wenn k = 1, dann gibt es lt. erweitertem euklidischen Algorithmus ganze Zahlen v, u mit 1 = k = ggt(n, a) = v n + u a. Bei (Modulo-)Division durch n liefert linke Seite den Wert 1, rechte Seite den Wert u a mod n (da v n durch n teilbar). Also gilt: Mit u = b folgt die Behauptung. 1 = u a mod n 60 / 108 10

6 in Primfaktoren zu zerlegen 61 / 108 Public-Key-Kryptografie mit RSA Überblick RSA Schlüsselgenerierung Ron Rivest, Adi Shamir, Leonard Adleman (1977) beruht auf Schwierigkeit, große Zahlen (100-200 Stellen oder mehr) zu faktorisieren 6 (unbewiesene) Vermutung: Die Entschlüsselung eines Chiffrates ohne Kenntnis des Schlüssels ist genauso schwierig wie die Faktorisierung der beiden beteiligten Zahlen Langzahlarithmetik erforderlich eines der am leichtesten zu verstehenden Public-Key-Verfahren 1. Wähle zwei verschiedene große Primzahlen p, q. 2. Berechne den sog. RSA-Modul n = pq. 3. Ermittle den Wert der Eulerschen ϕ-funktion für n: ϕ(n) = (p 1)(q 1). 4. Wähle e für den öffentlichen Schlüssel zufällig, so dass 1 < e < ϕ(n) gilt und e und ϕ(n) teilerfremd sind (ggt(ϕ(n), e) = 1). 62 / 108 RSA Schlüsselgenerierung - Teil 2 RSA (Stark vereinfachtes) Beispiel zur Schlüsselgenerierung 5. Es muss für den privaten Schlüssel d gelten: e d mod ϕ(n) = 1. Daher wird d mittels des erweiterten euklidischen Algorithmus errechnet: d = e 1 mod (p 1)(q 1). 6. Vernichte p und q. 7. Schlüssel wurden generiert: der öffentliche Schlüssel ist (e, n), der private Schlüssel ist d. 1. p = 47, q = 71 2. n = 47 71 = 3337 3. ϕ(3337) = (p 1)(q 1) = 46 70 = 3220 4. e muss teilerfremd sein zu 3220, e = 79 5. d = 79 1 mod 3220 = 1019 6. Schlüssel: (e, n) = (79, 3337) d = 1019 63 / 108 64 / 108 RSA Vorgang des Ver- und Entschlüsselns Verschlüsselung gegeben: Public Key (e, n), Klartextnachricht m m in Blöcke m i zerlegen, für deren Größe L < n gelten muss blockweise modular exponieren: Entschlüsselung c i = m e i mod n gegeben: Private Key d, Chiffrat c i blockweise modular exponieren p i = c d i mod n RSA Beispiel zum Verschlüsseln Fortsetzung des Beispiels: (e, n) = (79, 3337) d = 1019 m = 6882326879666683 ( DR DOBBS ) willkürliche Zerlegung in Blöcke von 3 Zeichen m 1 = 688, m 2 = 232, m 3 = 687, m 4 = 966, m 5 = 668, m 6 = 003 (links mit Nullen aufgefüllt!) Verschlüsselung: c 1 = m e 1 mod n = 68879 mod 3337 = 1570 c 2 = m e 2 mod n = 23279 mod 3337 = 2756 usw. Ergebnis: c = 1570 2756 2091 2276 2423 158 65 / 108 66 / 108 11

RSA Beispiel zum Entschlüsseln RSA Warum funktioniert das ganze (in a Nutshell)? Nach den Regeln des Rechnens mit Restklassen gilt: Entschlüsselung: p 1 = c1 d mod n = 15701019 mod 3337 = 688 p 2 = c2 d mod n = 27561019 mod 3337 = 232 usw. Ergebnis: p = 688 232 687 966 668 3 = m c d i mod n = (m e i mod n) d mod n = m ed i mod n =... da definitionsgemäß ed 1 mod ϕ(n), gilt ed = 1 + kϕ(n), k Z, also: = m 1+kϕ(n) i mod n = m i m kϕ(n) i mod n =... per definitionem gilt weiterhin n = pq und ϕ(n) = (p 1)(q 1), also ( = m i m k(p 1)(q 1) i mod pq = m (p 1)(q 1) i ) k mi mod pq 67 / 108 68 / 108 RSA Warum funktioniert das ganze (Teil 2)? RSA Bemerkungen Der Satz von Euler besagt: x (p 1)(q 1) mod pq = 1, wenn ggt(x, pq) = 1. bezugnehmend auf das letzte Ergebnis ergibt sich so: ( m (p 1)(q 1) i ) k mi mod pq = 1 k m i mod pq =... und da schließlich m i < n = pq, ergibt sich endlich viel geringere Geschwindigkeit als symmetrische Verfahren (ca. Faktor 1000) bis zum Jahr 2000 patentiert (RSA Security, Inc.) kryptologisch bislang nicht gebrochen Als öffentlicher Schlüssel wird häufig e = 2 16 + 1 = 65537 gewählt Fazit: RSA funktioniert. = m i mod pq = m i. 69 / 108 70 / 108 Sicherheit von RSA Gegner besitzt e und n um d zu ermitteln, kann er n faktorisieren (in pq). d e 1 mod ((p 1)(q 1)) bislang unbewiesen, ob die Faktorisierung zwingend notwendig ist, um d zu errechnen ebenso möglich: Brute-Force-Angriff auf d (Durchprobieren) nicht sehr erfolgversprechend, da d sehr groß Timing-Angriffe ebenfalls publiziert, jedoch nicht allzu praktikabel p und q müssen vernichtet werden, aus ihnen kann der geheime Schlüssel trivial ermittelt werden. 71 / 108 Exkurs: Seitenkanalangriff (Side Channel Attack) Angriffe richten sich nicht gegen den Algorithmus, sondern eine bestimmte Implementierung es werden bestimmte Parameter des den Algorithmus ausführenden Systems gemessen, z. B. Ausführungszeiten Cache-Hit- (bzw. -Miss-) Rate aufgenommene Leistung elektromagnetische Abstrahlung Geräuschemissionen Aus den ermittelten Parametern werden Informationen über den Programmfluss extrahiert, die das Brechen des Verfahrens (oder eines bestimmten Schlüssels) vereinfachen. Beispiel: durch das Belauschen des Busprotokolls (CPU-RAM) und genauer Kenntnis der Implementation kann man die Schlüssellänge ermitteln. 72 / 108 12

Seitenkanalangriff Faktorisierungsverfahren Beispiel: verschiedene Tasten einer Computertastatur oder eines Geldautomaten produzieren verschiedene Geräusche (für den Menschen nicht unterscheidbar) Aufzeichnen und nachträgliches Auswerten kann Texte, PINs, Passworte ermitteln (z. B. mittels neuronaler Netze) Asonov/Agraval: Keyboard Acoustic Emanations. IEEE Symposium on Security and Privacy, 2004 Gegenmaßnahmen: Reduktion oder Elimination der Emission Vereinheitlichung (z. B. von Cachezugriffen oder Ausführungszeiten) asynchrone CPUs unbekannt, zu welcher Komplexitätsklasse das Problem Faktorisierung gehört Einfachstes Verfahren: Versuchsweise Division bis n Stand der Technik sind die folgenden schwierigen Algorithmen: Kettenbruchmethode Quadratisches Sieb (QS); nur für Zahlen < 110 Dezimalstellen Zahlkörpersieb (Number Field Sieve; NFS); effizientester bislang bekannter Algorithmus Shor-Algorithmus - kann in P faktorisieren, erfordert aber Quantencomputer 73 / 108 74 / 108 RSA Factoring Challenge RSA Factoring Challenge Ausgewählte Ergebnisse Wettbewerb Wer faktorisiert als erster definierte Zahlen großer Länge? 1991 2007 Ziel: Nachweis/Falsifizierung der Sicherheit des RSA-Kryptosystems Preisgeld: 635.100$ Beispiel: RSA-100 = 15226050279225333605356183781326374297180681149613 80688657908494580122963258952897654000350692006139 = 37975227936943673922808872755445627854565536638199 40094690950920881030683735292761468389214899724061 Zahl Bits Dez.-Stellen Lösungsjahr CPU-Jahre RSA-100 330 100 1991 RSA-140 463 140 1999 8.9 RSA-155 512 155 1999 35.7 RSA-160 530 160 2003 RSA-576 576 174 2003 RSA-640 640 193 2005 55 RSA-200 663 200 2005 30 RSA-768 768 232 2010 1500 75 / 108 76 / 108 Management öffentlicher Schlüssel Zertifikate Management öffentlicher Schlüssel Aufbau eines Zertifikats; formal Problem: Übereinstimmung öffentlicher Schlüssel Identität Lösung: Zertifikat = Nachricht, die Repräsentation der Identität, zugehörigen öffentlichen Schlüssel, Zeitstempel oder Geltungsdauer enthält und durch eine vertrauenswürdige Instanz (Trent, Issuer, Certification Authority) signiert wurde. Def.: Ein Zertifikat ist eine Einheit, die einen kryptografischen Schlüssel an eine Identität bindet. Ein durch Zertifizierungsinstanz CA ausgestelltes Zertifikat für Nutzer A enthält: mit Legende: Cert(CA,A) = {ID CA, ID A, e A, T, Ext, sig CA } sig CA = d CA {H(ID CA, ID A, e A, T, Ext)} ID A eindeutiger Name des Teilnehmers A e A öffentlicher Schlüssel des Teilnehmers A d CA privater Schlüssel der CA T Gültigkeitszeitraum des Zertifikats sig CA digitale Signatur der CA H(j) kryptografischer Hash über j Ext optionale Erweiterungen nach X.509 77 / 108 78 / 108 13

Verifikation einer digitalen Signatur Schritt 1: Verifikation der Signatur Verifikation einer digitalen Signatur Schritt 2: Verifikation des Zertifikates Bob möchte Alice Signatur prüfen. Dazu muss er 1. Alice Zertifikat besorgen (enthält den zur Unterschrift passenden öffentlichen Schlüssel e A ), 2. mit e A den ursprünglichen Hashwert des Dokuments H 1 entschlüsseln, 3. den aktuellen Hashwert des Dokuments H 2 ermitteln, 4. Signatur passt zu Zertifikat, wenn H 1 = H 2. Nun muss Bob prüfen, ob das Zertifikat stimmt: 1. den öffentlichen Schlüssel e CA der CA besorgen, die Alice Zertifikat ausgestellt hat, 2. mit e CA den ursprünglichen Hashwert des Zertifikats H 3 entschlüsseln, 3. den aktuellen Hashwert des Zertifikats H 4 ermitteln, 4. das Zertifikat ist gültig, wenn H 3 = H 4. 79 / 108 80 / 108 Bob verifiziert Alice Signatur Aufbau eines Zertifikates X.509 (ISO Authentication Framework) CA1 Bob Root-CA CA Cert(CA, CA1) Alice Cert(CA, CA) Cert(CA1, Alice) Version Seriennummer Algorithmenidentifikation Aussteller (Issuer) Geltungsdauer Betreff (Subject) Version: des Protokolls (1, 2 oder 3) Seriennummer: eindeutig innerhalb der CA Algorithmus: der Signatur (zum Nachvollzug) Aussteller: eindeutiger Name der CA Text Public Key Betreff: dem Public Key zugeordnete Identität Signatur Signatur: ausgestellt durch CA sig Alice [Text] 81 / 108 82 / 108 Zertifikatseigenschaften Namen im X.509-Zertifikat Benennung von Issuer und Subject in X.509 erfolgt mittels hierarchischem Distinguished Naming des X.500-Protokolls mit den folgenden Feldern: Abbildung: Issuer und Subject im Zertifikat (Beispiel) Bedeutung Beispiel cn Common Name e E-Mail-Address certificate@trustcenter.de ou Organization Unit TC TrustCenter Class 2 CA o Organization Name TC TrustCenter for Security in Data Networks GmbH l Locality Name Hamburg st State Name Hamburg c Country de 83 / 108 84 / 108 14

7 VeriSign ist interessanterweise Betreiber der TLDs.com und.net sowie Eigentümer von Jamba! 86 / 108 Certification Authorities (Zertifizierungsstellen) Certification Authorities Def.: Eine Einheit, die Zertifikate ausstellt, wird Certification Authority (CA) genannt. CAA Alice CAC CAE CAD CAB Bob jede CA besitzt ein Zertifikat, das von der direkt über und der direkt unter ihr liegenden CA signiert ist zuoberst: Master CA (hier: CA E ) Es entsteht eine Zertifizierungshierarchie. CAs können sich gegenseitig zertifizieren (Cross Certification) Einige Unternehmen bieten Zertifizierung als Dienstleister an, so z. B.: VeriSign, Inc. 7, Thawte, Deutsche Post AG, T-Systems. Darüber hinaus gibt es gemeinnützige Organisationen, die das gleiche kostenfrei oder preiswert anbieten. CAcert DFN e. V. Zertifikate bekannter CAs sind in typischer Software (Browser, E-Mail-Client) eingebaut. 85 / 108 Problem des zentralisierten Modells Schlüsselzertifizierung bei PGP Web of Trust Problem: Kann man der CA unbedingt vertrauen? Antwort: Leider nein: Einbruch in (niederländische Firma) DigiNotar 2011, Angreifer stellten sich unberechtigte Zertifikate aus, diese wurden mißbräuchlich zur Überwachung iranischer Bürger genutzt 8 (türkische CA) Türktrust stellte im August 2011 irrtümlich 2 Zertifikate aus, mit denen sich beliebige Domains zertifizieren lassen keine Zertifizierungsinstanzen Benutzer unterzeichnen öffentliche Schlüssel gegenseitig behalten Kopien der unterzeichneten Schlüssel Keysigning Party erlaubt individuelle Beurteilung: Vertrauen in die Gültigkeit eines Schlüssels Zuverlässigkeit der Unterschrift eines Teilnehmers Zuverlässigkeit eines Teilnehmers, andere Schlüssel zu zertifizieren auch nicht vertrauenswürdige Schlüssel können benutzt werden Hauptproblem: Schlüsselrücknahme ( Key Revocation Certificate) 8 http://www.rijksoverheid.nl/bestanden/documenten-en-publicaties/rapporten/2012/08/ 13/black-tulip-update/black-tulip-update.pdf 87 / 108 88 / 108 Beispiel für Vertrauensmodell im PGP Schlüsselaufbewahrung öffentliche Schlüssel sind einfach aufzubewahren ihre Integrität muss gesichert sein Nutzung der Zertifikate geheime Schlüssel und Schlüssel für symmetrische Kryptografie? persistent in Datei; Nutzung von BS-Mechanismen zum Zugriffsschutz verschlüsselte Abspeicherung (hilft nicht gegen Keylogging) ROM oder Smartcard Problem: Diebstahl der Smartcard Verbesserung: Verteilung auf mehrere Karten oder Karte und Lesegerät Quelle: Bruce Schneier, Angewandte Kryptographie. Pearson, 2006, S. 665 89 / 108 90 / 108 15

Geltungsdauer von Zertifikaten Problem: Schlüssel können vor ihrem Verfallsdatum ungültig werden, z. B. bei Kompromittierung eines Schlüsselpaars Zertifikat des öffentlichen Schlüssels muss zurückgezogen werden nur berechtige Entitäten dürfen Zertifikate zurückziehen (i. A. die Aussteller) Zurücknahme muss sehr schnell erfolgen X.509 nutzt so genannte Certificate Revocation Lists enthalten: Seriennummer Datum der Rücknahme Name des Ausstellers Datum der Listengenerierung Liste durch Issuer unterschrieben Pretty Good Privacy (PGP) http://upload.wikimedia.org/wikipedia/commons/7/77/prz_closeup.jpg ist eine Software zum Verschlüsseln und Signieren von E-Mails 1991 durch Phil Zimmermann entwickelt erste Implementierung von Public-Key-Kryptografie für die Allgemeinheit unterlag restriktiven Exportbestimmungen (als Buch exportiert) nutzt hybride Kryptografie 91 / 108 92 / 108 PGP Gnu PrivacyGuard (GPG) nutzte (ursprünglich) IDEA zur symmetrischen Verschlüsselung, MD-5 als Hash und RSA zur Public-Key-Kryptografie Web of Trust anstatt CAs wechselvolle Entwicklungsgeschichte zeitweise Eigentum von Network Associates (aka McAfee) in dieser Zeit Weiterentwicklung als Closed Source (Vertrauen verschwunden) wieder zurück an die PGP Corporation als kommerzielle Software entwickelt und vertrieben OpenPGP-Standard als offene Alternative freie und patentfreie Implementierung des OpenPGP-Standards (RFC 4880) nutzt DSA, ElGamal, SHA-1, CAST5 (symmetrische Blockchiffre) alle gängigen Desktop-Betriebssysteme (Unixe, Windows, MacOS) unterstützt in Standardsoftware (MUA, Browser, Chatsoftware) bereits integriert, aber auch als Kommandozeilenprogramm nutzbar unterstützt Schlüsselserver, die öffentliche Schlüssel sammeln und anbieten (Beispiel: http://pgp.mit.edu) 93 / 108 94 / 108 Nutzung von GPG... an der Kommandozeile Schlüsselsicherheit Der Word-Makro-Virus Caligula (W97M/Caligula.a) gpg --gen-key erzeugt den Schlüsselring (Key Ring) sowie das Schlüsselpaar gpg --export --armor extrahiert den Public Key und schreibt diesen als 7-Bit-Zeichen nach stdout oder in eine Datei gpg --import [datei] importiert einen Schlüssel in den Keyring gpg --sign <datei> signiert die Datei gpg --verify <datei> überprüft die Signatur, vorausgesetzt, der öffentliche Schlüssel steht zur Verfügung gpg -s <datei> verschlüsselt symmetrisch gpg -e / -d ver- bzw. entschlüsselt asymmetrisch Searches for PGP Secure Keyring using registry entry to get PGP installed path. [... ] If user name is not Caligula, runs PGP Secure Keyring find and send routine - user name retrieved from registry [...] If file found, file is uploaded to the virus author s ftp site using a script file written as c:\cdbrk.vxd and using ftp.exe in a hidden process (McAfee Virusdatenbank) Keyring läßt sich viel leichter knacken als eine verschlüsselte Nachricht, insbesondere bei kurzer/schlechter Passphrase (Wörterbuch-Angriff) Die beste Verschlüsselung nützt nichts, wenn andere Aspekte der Systemsicherheit vernachlässigt werden! 95 / 108 96 / 108 16

Exkurs: Schlangenöl Woran erkennt man schlechte kryptografische Software? Warning Sign No.1: Pseudo-mathematical gobbledygook. Encryptor 4.0 uses a unique in-house developed incremental base shift algorithm From a mathematical point of view, the TTM algorithm is intuitively natural and less cumbersome to use than methods that are number-theory based. (http://www.usdsi.com/ ) SuperKrypt products utilize the DNGT bulk encryption method, Since key length and key structure vary and since the encryption engine does not use any mathematical algorithms, reverse engineering is impossible and guessing is not an option. (http://www.schneier.com/crypto-gram-9902.html) TBC... Zero Knowledge Alle diskutierten Authentifizierungsprotokolle basieren darauf, dass der Anmeldende Informationen an das betreffende System übermittelt. prinzipielle Frage: ist Authentifizierung auch möglich, ohne dass der Anmeldende irgendeine Information preisgibt? Anders formuliert: Alice kennt ein Geheimnis. Kann Alice Bob davon überzeugen, dass sie das Geheimnis kennt, ohne Bob das Geheimnis zu verraten? 97 / 108 98 / 108 Interaktive Beweise Niccolo Tartaglià findet ca. 1535 eine allgemeine Lösungsformel für kubische Gleichungen 9 x 3 + ax 2 + bx + c = 0. publiziert diese nicht (Angst vor wiss. Konkurrenz oder illegaler Aneignung?) Konkurrent Antonio Maria Fior stellt ihm 30 Aufgaben (Parameter a, b, c) Tartaglià ermittelt die zugehörigen x und übermittelt diese zurück an Fior Fior prüft die erhaltenen x und stellt fest, dass diese in der Tat die jeweilige kubische Gleichung erfüllen, dass also Tartaglià wirklich eine Lösungsformel kennen muss Interaktives Beweisverfahren (Frage Antwort) Fior überzeugt, dass Tartaglià wirklich in Besitz der Lösungsformel Lösungsformel selbst bleibt geheim 9 Diese werden später unter dem Namen Cardanische Formeln bekannt. 99 / 108 Das Geheimnis der Höhle C B D A Geheime Tür zwischen C und D, mit Zauberformel zu öffnen Peggy kennt Formel Peggy will Viktor überzeugen, ohne etwas über die Formel zu verraten Literatur: Jean-Jaques Quisquater et al: How to Explain Zero- Knowledge Protocols to Your Children. Proc. CRYPTO 89, Springer 1990 100 / 108 Das Geheimnis der Höhle Interaktives Beweisprotokoll Das Geheimnis der Höhle Anmerkungen Vorgehensweise: 1. Viktor bleibt an Punkt A 2. Peggy betritt Höhle, geht wahlweise nach C oder D. 3. Viktor geht zu Punkt B. 4. Viktor ruft Peggy zu: entweder aus dem linken oder aus dem rechten Gang zu erscheinen. 5. Peggy kommt Viktors Aufforderung nach, sie muss u. U. die Zauberformel einsetzen, um die Tür zu öffnen. 6. Peggy und Viktor wiederholen die vorangegangenen Schritte n-mal, bis Viktor überzeugt ist. Dritte Partei kann durch Viktor nicht überzeugt werden Videoaufnahme könnte vorher durch Peggy und Viktor abgesprochen werden Nach n Runden beträgt die Wahrscheinlichkeit, dass Peggy Viktor betrügt, 1 : 2 n. 101 / 108 102 / 108 17

Quadratische Reste Es sei und Z n = {0, 1,..., n 1} Z n = {a Z n ggt(a, n) = 1} Ferner gilt Z n = ϕ(n), die eulersche Phi-Funktion. Ein Element a Z n heißt quadratischer Rest modulo n wenn es ein b Z n gibt, so dass gilt: b 2 = b b = a (mod n). Man sagt, b ist eine Quadratwurzel von a modulo n.. Anwendung: Das Fiat-Shamir-Protokoll 103 / 108 Quadratische Reste Beispiel n = 55 Z n = {1, 2, 3, 4, 7, 8, 9, 12, 13, 14, 16, 17,... } a = 34 hat genau 4 Quadratwurzeln modulo 55: b 1 = 12, denn 12 12 mod 55 = 144 mod 55 = 34 b 2 = 23, denn 23 23 mod 55 = 529 mod 55 = 34 b 3 = 32, denn 32 32 mod 55 = 1024 mod 55 = 34 b 4 = 43, denn 43 43 mod 55 = 1849 mod 55 = 34 Wenn n prim, dann gibt es entweder 0 oder 2 Quadratwurzeln; ist n das Produkt zweier Primzahlen, dann gibt es entweder keine oder vier Quadratwurzeln. Satz: Wenn n = pq und p, q prim, dann ist das Berechnen der Quadratwurzel modulo n genauso schwierig wie das Faktorisieren von n. Fiat-Shamir-Protokoll Phase 1: Schlüsselerzeugung 104 / 108 Public-Key-Verfahren genutzt zur Authentifizierung geringer Rechenaufwand (Gegensatz zu RSA) 2 Phasen: 1. Schlüsselerzeugung 2. Anwendung 1. Alice erzeugt 2 große Primzahlen p und q, berechnet n = pq (n ist öffentlich; die Faktorisierung natürlich nicht) 2. Alice wählt eine Zahl s (ihr individuelles Geheimnis, secret ) 3. Alice berechnet v := s 2 mod n (v ist ihr Identitätsmerkmal) Ebenso möglich: n ist eine Systemkonstante, v und s werden durch eine zentrale Instanz vorgegeben 105 / 108 106 / 108 Fiat-Shamir-Protokoll Phase 2: Protokollanwendung Ziel: Alice will Bob überzeugen, dass sie das Geheimnis von s kennt, ohne s zu übermitteln (s ist eine Quadratwurzel von v). Bob kennt v 1. Alice wählt zufällig ein r Zn, berechnet das (modulare) Quadrat x := r 2 mod n und schickt dieses an Bob (den Host). 2. Bob wählt ein zufälliges Bit ( wirft eine Münze ) und schickt den Wert an Alice. 3. Alice: wenn b = 0, so schickt Alice y := r an Bob. wenn b = 1, so schickt Alice y := rs mod n an Bob. 4. Bob prüft: wenn b = 0, ob y 2 mod n = x wenn b = 1, ob y 2 mod n = xv mod n. Schritte 1.-4. werden so lange wiederholt, bis Bob überzeugt ist, dass Alice s besitzt oder bis Alice eine falsche Antwort gibt. 107 / 108 Fiat-Shamir-Protokoll Anmerkungen: s bleibt geheim, wird nicht übertragen. Bob berechnet (wenn b = 1) (rs mod n) 2 = r 2 s 2 mod n = r 2 v mod n Alice kann mit Wkt. 0.5 betrügen betrügerische Alice, die die Wurzel von v nicht kennt, kann höchstens auf eine der beiden Fragen antworten, niemals auf beide Nutzung des Protokolls: Authentifizierung bei sehr geringer Rechenleistung (z. B. per Smartcard) 108 / 108 18