Fakultät Informatik Institut Systemarchitektur SS 2015 Kryptographie und Kryptoanalyse Dr.-Ing. Elke Franz [email protected] Professur Datenschutz und Datensicherheit Überblick über die Vorlesung Organisatorisches • Vorlesung: • Übung: bzw. Mittwoch, Donnerstag, Freitag, 3. DS, HSZ/103 1. DS, APB/E010 (ab 7.5.) 1. DS, APB/E009 (ab 8.5.) • Ausfälle: 6.5., 14.5. und 15.5.2015 • Art der Prüfung: mündliche Prüfung / Modulprüfung / Schein • Lehrmaterialien: Folienskript, Übungsaufgaben Literaturhinweise • Webseite: dud.inf.tu-dresden.de (Studium Lehrveranstaltungen Sommersemester) Kryptographie und Kryptoanalyse 2 Überblick über die Vorlesung Ziele dieser Vorlesung • Vermittlung grundlegender Aspekte der Kryptographie – Was kann man mit Kryptographie erreichen? – Wie kann man es prinzipiell erreichen? – Wie kann man das Erreichte beurteilen? • Vermittlung vertiefter Kenntnisse über kryptographische Verfahren und deren Sicherheit – Ausgewählte kryptographische Verfahren – Ansätze zur Analyse dieser Verfahren – Anforderungen an die sichere Verwendung unter Beachtung möglicher Angriffe Kryptographie und Kryptoanalyse 3 Überblick über die Vorlesung 1. Einführung – – Begriffe Bedrohungen – Schutzziele 2. Grundlagen – – – – Mathematische Beschreibung Typen kryptographischer Systeme Überblick über Angriffe Sicherheit kryptographischer Systeme 3. Klassische Verfahren – – – Transpositionen MM-Substitutionen PM-Substitutionen Kryptographie und Kryptoanalyse 4 Überblick über die Vorlesung 3. Symmetrische Verfahren – – – – – – Blockchiffren Feistel-Chiffre Kryptographische Güte DES / 3-DES AES Betriebsarten 4. Asymmetrische Verfahren – – – – – Grundlagen Diffie-Hellman-Schlüsselaustausch ElGamal RSA Kryptosysteme auf Basis elliptischer Kurven Kryptographie und Kryptoanalyse 5 1 Einführung – Begriffe Kryptologie Kryptographie Kryptoanalyse Kryptographie (griech. „kryptos“+ „graphein“) Wissenschaft von den Methoden der Ver- und Entschlüsselung von Informationen. Kryptoanalyse (griech. „kryptos“+ „analyein“) Wissenschaft vom Entschlüsseln von Nachrichten ohne Kenntnis dazu notwendiger geheimer Informationen. Kryptographie und Kryptoanalyse 6 1 Einführung – Begriffe Einordnung von Kryptographie als Schutzmechanismus • IT-Sicherheit – IT-System soll sich trotz unerwünschter Ereignisse so verhalten wie erwartet Schutz vor unerwünschten Ereignissen Unerwünschte Ereignisse Unbeabsichtigte Fehler und Ereignisse Beabsichtigte Angriffe 1 Einführung – Bedrohungen Mögliche Bedrohungen durch Angriffe • Unbefugte Kenntnisnahme der Informationen • Verfälschen von Informationen (bei Nachrichten auch von deren Absendern) • Stören der Verfügbarkeit Kryptographie und Kryptoanalyse 8 1 Einführung – Schutzziele Charakteristik der Bedrohungen • Unbefugter Informationsgewinn Verlust der Vertraulichkeit • Unbefugte Modifikation der Information Verlust der Integrität • Beeinträchtigung der Funktionalität Verlust der Verfügbarkeit Kryptographie und Kryptoanalyse Nicht erkennbar, aber verhinderbar Nicht verhinderbar, aber erkennbar 9 1 Einführung – Schutzziele Unterteilung der Schutzziele Unerwünschtes verhindern Erwünschtes leisten Inhalte Umstände Vertraulichkeit Verdecktheit Anonymität Unbeobachtbarkeit Integrität Zurechenbarkeit Verfügbarkeit Erreichbarkeit Verbindlichkeit Kryptographie und Kryptoanalyse 10 1 Einführung – Schutzziele Mittels Kryptographie erreichbare Schutzziele • Vertraulichkeit Informationen werden nur Berechtigten bekannt. • Integrität Informationen können nicht unerkannt modifiziert werden. • Zurechenbarkeit Dem Sender einer Nachricht kann das Senden (auch gegenüber Dritten) nachgewiesen werden. (Nachweis des Empfangs sowie des Zeitpunktes des Sendens/Empfangens erfordert weitere Maßnahmen.) Kryptographie und Kryptoanalyse 11 1 Einführung - Schutzziele Einordnung von Kryptographie in das Modell der gestörten Informationsübertragung Quellenkodierung Kanalkodierung Kryptographie Quelle Senke Quellendekodierung Kryptographie und Kryptoanalyse Störung Kanal Kanaldekodierung 12 Überblick über die Vorlesung 1. Einführung 2. Grundlagen – – – – Mathematische Beschreibung Typen kryptographischer Systeme Überblick über Angriffe Sicherheit kryptographischer Systeme 3. Klassische Verfahren 4. Symmetrische Verfahren 5. Asymmetrische Verfahren Kryptographie und Kryptoanalyse 13 2 Grundlagen – Mathematische Beschreibung Vertrauensbereich des Empfängers (Bob) Vertrauensbereich des Senders (Alice) Schlüssel ke K Unsicherer Kanal: Schlüssel kd K Angriffsbereich Nachricht Verschlüsselungsfkt. mM enc ENC Hallo, ... Schlüsseltext cC c = enc(ke, m) Entschlüsse- Nachricht lungsfkt. dec DEC m = dec(kd, c) Hallo, ... g9b02... Kryptographie und Kryptoanalyse 14 2 Grundlagen – Mathematische Beschreibung Kryptosystem (M, C, K, Enc, Dec) • Nachrichtenraum M: endliche Menge möglicher Nachrichten (Klartexte; messages) • Schlüsseltextraum C: endliche Menge möglicher Schlüsseltexte (Kryptogramme, Chiffrate, Chiffretexte; ciphertexts) • Schlüsselraum K: endliche Menge möglicher Schlüssel (keys) • Funktionsräume Enc (Verschlüsselung, encryption) und Dec (Entschlüsselung, decryption) Kryptographie und Kryptoanalyse 15 2 Grundlagen – Mathematische Beschreibung Alphabet • endliche, nichtleere, totalgeordnete Menge A = {a0, a1, a2, …, al-1} Alphabet mit l Elementen ai: Zeichen bzw. Buchstaben m = (m0m1m2 … mn-1) mit mi A, m An Wort der Länge n über dem Alphabet A • Nachrichten, Schlüsseltexte, Schlüssel: endliche Folgen bzw. Worte über den zugrunde liegenden Alphabeten AM, AC , AK Kryptographie und Kryptoanalyse 16 2 Grundlagen – Mathematische Beschreibung Funktion • allgemein f: X Y; f(x) = y X: Definitionsbereich, Y: Wertebereich • Eigenschaften – injektiv: " x, x’ X. f(x) = f(x’) x = x’ – surjektiv: " y Y .$ x X f(x) = y – bijektiv: injektiv und surjektiv • Umkehrfunktion bzw. inverse Funktion f bijektiv inverse Funktion g = f -1: " y Y. g(y) = x mit x X und f(x) = y Kryptographie und Kryptoanalyse 17 2 Grundlagen – Mathematische Beschreibung Ver- und Entschlüsselungsfunktionen • n, l, o N; AM, AC , AK Alphabete l n • m M = AM Nachricht, c C = AC Schlüsseltext, kK= o AK Schlüssel • Verschlüsselung: c = enc(ke,m) bzw. c = enck e(m) enc Enc: M μ K C • Entschlüsselung: m = dec(kd,c) bzw. m = deck (c) dec Dec: C μ KM d Verhältnis l/n: Expansionsfaktor n = l: Kryptofunktion heißt längentreu Kryptographie und Kryptoanalyse 18 2 Grundlagen – Mathematische Beschreibung Kerckhoffs-Prinzip Die Sicherheit eines Verfahrens darf nicht von der Geheimhaltung des Verfahrens abhängen, sondern nur von der Geheimhaltung des Schlüssels. [Auguste Kerkhoffs: La Cryptographie militaire. Journal des Sciences Militaires, Januar 1883.] • Keine „Security by Obscurity“ • Annahme: Angreifer kennt das Verfahren und die öffentlichen Parameter • Sicherheit des Verfahrens begrenzt durch – Sicherheit der Schlüsselgenerierung und – Sicherheit des Schlüsselaustauschs Kryptographie und Kryptoanalyse 19 2 Grundlagen – Einteilung kryptographischer Systeme Kriterien für eine Einteilung • Zweck – Konzelationssysteme Systeme zum Schutz der Vertraulichkeit der Daten – Authentikationssysteme Systeme zum Schutz der Integrität der Daten - digitale Signatursysteme (spezielle Authentikationssysteme) Systeme zur Realisierung von Zurechenbarkeit von Daten • Schlüsselverteilung – Symmetrische Verfahren: – Asymmetrische Verfahren: Notation: kA,B: ke,A/kd,A: ke = kd ke kd symmetrischer Schlüssel für Kommunikation zwischen Teilnehmern A und B Schlüssel zur Ver-/Entschlüsselung des Teilnehmers A (asymmetrisches System) Kryptographie und Kryptoanalyse 20 2 Grundlagen – Typen kryptographischer Systeme Symmetrisches Konzelationssystem Zufallszahl r Schlüssel- kA,B ú generierung keygen(r) Alice Bob geheimer Schlüssel geheimer Schlüssel Angriffsbereich kA,B Nachricht m kA,B Verschlüsselung enc Schlüsseltext c Entschlüsselung c ú enc(kA,B, m) dec Vertrauensbereich Sicherer Kanal für Schlüsselaustausch Kryptographie und Kryptoanalyse Nachricht m ú dec(kA,B, c) öffentlich bekannter Algorithmus 21 2 Grundlagen – Typen kryptographischer Systeme Symmetrisches Konzelationssystem Alice Kryptographie und Kryptoanalyse Bob 22 2 Grundlagen – Typen kryptographischer Systeme • Schlüsselaustausch – Notwendig: sicherer Kanal für Schlüsselaustausch – Offenes System: Sender und Empfänger können sich nicht vorab treffen Lösung: Schlüsselverteilzentrale X • Jeder Teilnehmer (z.B. A) meldet sich an und tauscht einen geheimen Schlüssel kA,X mit X aus • Kommunikation mit Teilnehmer B: Anfrage an X nach geheimem Schlüssel kA,B • X generiert Schlüssel kA,B und sendet ihn an A und B • Problem: X kann alle Nachrichten lesen • Verbesserung: verschiedene Schlüsselverteilzentralen verwenden und geheime Schlüssel lokal berechnen Kryptographie und Kryptoanalyse 23 2 Grundlagen – Typen kryptographischer Systeme Symmetrisches Authentikationssystem Zufallszahl r Schlüssel- kA,B ú generierung keygen(r) Bob Alice Angriffsbereich geheimer Schlüssel kA,B Nachricht m MAC berechnen auth Nachricht, MAC (message authentication code) m, MAC MAC ú auth(kA,B, m) Vertrauensbereich Sicherer Kanal für Schlüsselaustausch Kryptographie und Kryptoanalyse geheimer Schlüssel kA,B MAC testen ? auth(kA,B, m) = MAC öffentlich bekannter Algorithmus 24 2 Grundlagen – Typen kryptographischer Systeme Asymmetrisches Konzelationssystem Zufallszahl r Schlüssel- (ke,B, kd,B)ú generierung keygen(r) Alice Bob öffentlicher Schlüssel privater Schlüssel Angriffsbereich ke,B Nachr. m Zufallsz. r’ kd,B Verschlüsselung enc Vertrauensbereich Schlüsseltext c Entschlüsselung c ú enc(ke,B, m, r’) dec Nachricht m ú dec(kd,B, c) öffentlich bekannter Algorithmus Zufallszahl r‘: probabilistische bzw. indeterministische Verschlüsselung Kryptographie und Kryptoanalyse 25 2 Grundlagen – Typen kryptographischer Systeme • Schlüsselaustausch – Jeder Teilnehmer generiert eigenes Schlüsselpaar – kein (gegen Abhören) sicherer Kanal für Schlüsselaustausch notwendig – Verteilung der öffentlichen Schlüssel: veröffentlichen Andere Möglichkeit: Öffentliches Schlüsselregister R • Jeder Teilnehmer (z.B. A) trägt seinen öffentlichen Schlüsel ein (ke,A) • Teilnehmer B will mit A kommunizieren: bittet R um öffentlichen Schlüssel ke,A von A • B erhält ke,A, beglaubigt durch die Signatur von R; R beglaubigt Zusammenhang zwischen A und ke,A • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden Kryptographie und Kryptoanalyse 26 2 Grundlagen – Typen kryptographischer Systeme Asymmetrisches Authentikationssystem (Digitales Signatursystem) Zufallszahl r Schlüssel- (ks,B, kt,B) := generierung keygen(r) Alice Bob öffentlicher Schlüssel privater Schlüssel Angriffsbereich kt,B ks,B Nachricht, Signatur test(kt,B , m, s) Testen m, s Signieren {true, false} test s := sign(ks,B, m) sign Vertrauensbereich Kryptographie und Kryptoanalyse Nachr. m öffentlich bekannter Algorithmus 27 2 Grundlagen – Typen kryptographischer Systeme Symmetrische Authentikationssysteme Asymmetrische Authentikationssysteme (MAC) (Digitale Signatursysteme) Schlüssel Geheimer Schlüssel, einem Paar von Kommunikationspartner zugeordnet Schlüsselpaar: privater Signaturschlüssel und öffentlicher Testschlüssel Prüfung MAC für empfangene Daten berechnen und mit empfangenem MAC vergleichen Testalgorithmus erforderlich Schutzziele Integrität Kryptographie und Kryptoanalyse Integrität Zurechenbarkeit 28 2 Grundlagen – Typen kryptographischer Systeme • Schlüsselaustausch – Jeder Teilnehmer generiert eigenes Schlüsselpaar – kein (gegen Abhören) sicherer Kanal für Schlüsselaustausch notwendig – Notwendig für Zurechenbarkeit: Bestätigung der Zuordnung des öffentlichen Testschlüssels zum jeweiligen Teilnehmer mittels Schlüsselzertifikat, ausgestellt von Zertifizierungsinstanz (certification authority CA) – Verbreitetes Format für Schlüsselzertifikat: X.509 • Erstmals 1988 veröffentlicht, aktuell in Version 3 (X.509v3) • Standard der ITU-T für Public-Key Infrastructure: http://www.itu.int/rec/T-REC-X.509 • RFC 5280 • Sperrlisten für Zertifikate Kryptographie und Kryptoanalyse 29 2 Grundlagen – Typen kryptographischer Systeme • Aufbau eines X.509-Zertifikats [RFC 5280] • TBSCertificate – – – – – – – – – – Version Seriennummer Signaturalgorithmus Aussteller Name Gültigkeit Inhaber Name Inhaber Public Key Info Aussteller ID Inhaber ID Erweiterungen • Signaturalgorithmus • Signatur Kryptographie und Kryptoanalyse ID und (optional) Parameter des Signaturalgorithmus, der von CA für Signatur des TBSCertificats benutzt wird Public Key und Algorithmus, für den er benutzt wird (ID und (optional) Parameter) Nur für v2 und v3 Nur für v3, Beispiel: Key Identifier von CA Für TBSCertificate 30 2 Grundlagen – Typen kryptographischer Systeme Symmetrische Verfahren Asymmetrische Verfahren Sicherer Kanal für Schlüsselaustausch erforderlich? Ja Nein (allerdings: Zuordnung der öffentlichen Schlüssel) Performance In der Regel sehr gut Weniger gut Konzelation Vertraulichkeit Konzelation Vertraulichkeit Symmetrische Authentikation (MAC) Integrität Digitale Signatursysteme Integrität Zurechenbarkeit Umsetzbare Schutzziele Kryptographie und Kryptoanalyse 31 2 Grundlagen – Typen kryptographischer Systeme Hybrides Konzelationssystem geheimer Schlüssel (session key) kA,B enc Nachricht m enc öffentlicher Schlüssel privater Schlüssel ke,B kd,B c1 dec c2 kA,B = dec(kd,B, c1) dec c1, c2 c1 = enc(ke,B, kA,B), c2 = enc(kA,B, m) Kryptographie und Kryptoanalyse Nachricht m = dec(kA,B, c2) 32 2 Grundlagen – Überblick über Angriffe Generelle Aspekte der Kryptoanalyse • Ziel und Erfolg des Angriffs • Klassifizierung von Angriffen • Nicht Gegenstand der Kryptoanalyse: – Implementierung und Einsatz des Verfahrens – Organisatorische Sicherheit … aber natürlich relevant für die Sicherheit • Angriffserfolg ganz allgemein – Konzelationssysteme: Vertraulichkeit verletzt (Inhalt/Informationen über verschlüsselte Nachricht ermittelt) – Authentikationssysteme: Nachricht unentdeckt modifiziert (gültigen MAC bzw. Signatur für modifizierte/selbst gewählte Nachricht generiert) Kryptographie und Kryptoanalyse 33 2 Grundlagen – Überblick über Angriffe Ziel und Erfolg des Angriffs • Finden des geheimen Schlüssels (vollständiges Brechen, total break) • Finden eines zum Schlüssel äquivalenten Verfahrens (universelles Brechen, universal break) • Brechen nur für manche Nachrichten (nachrichtenbezogenes Brechen): – für eine selbstgewählte Nachricht (selective break) – für irgendeine Nachricht (existential break) • Unterscheidung für universelles und nachrichtenbezogenes Brechen von Konzelationssystemen: – Komplette Entschlüsselung – Partielle Entschlüsselung Kryptographie und Kryptoanalyse 34 2 Grundlagen – Überblick über Angriffe Generell: Kein Schutz vor einem allmächtigen Angreifer! Ein allmächtiger Angreifer … • kann alle ihn interessierenden Daten erfassen • kann Daten unbemerkt ändern • kann die Verfügbarkeit des Systems durch physische Zerstörung beeinträchtigen Angreifermodell Angabe der maximal berücksichtigten Stärke eines Angreifers, d.h., Stärke des Angreifers, gegen die ein bestimmter Schutzmechanismus gerade noch sicher ist Kryptographie und Kryptoanalyse 35 2 Grundlagen – Überblick über Angriffe Inhalt des Angreifermodells • Rollen des Angreifers (Nutzer, Außenstehender, …) • Verbreitung des Angreifers (kontrollierte Subsysteme, Leitungen, …) • Verhalten des Angreifers (passiv/aktiv, beobachtend/verändernd) • Rechenkapazität (komplexitätstheoretisch (un)beschränkt) • Verfügbare Mittel (Zeit, Geld) Kryptographie und Kryptoanalyse 36 2 Grundlagen – Überblick über Angriffe Annahmen über Wissen und Möglichkeiten des Angreifers • Als bekannt vorausgesetzt – System (Algorithmen, Protokolle) – Öffentliche Schlüssel – Beobachtung (unsicherer Kanal) Angreifer, der nur dieses Wissen ausnutzt: passiver Angreifer • Unbekannt (Vertrauensbereich) – Geheime Schlüssel • Aktiver Angreifer: bringt Inhaber der geheimen Schlüssel dazu, die entsprechenden Operationen für selbst gewählte Daten auszuführen Kryptographie und Kryptoanalyse 37 2 Grundlagen – Überblick über Angriffe Klassifizierung von Angriffen (Konzelationssysteme) • Passive Angriffe – Reiner Schlüsseltext-Angriff (ciphertext-only attack) – Klartext-Schlüsseltext-Angriff (known-plaintext attack) ke m enc kd c dec m • Aktive Angriffe – Gewählter Klartext-Schlüsseltext-Angriff (chosen-plaintext attack CPA; „Verschlüsselungsorakel“) – Gewählter Schlüsseltext-Klartext-Angriff (chosen-ciphertext attack; „Entschlüsselungsorakel“) CCA1 (auch als „lunchtime“, „lunch-break“ oder „midnight attack“ bezeichnet) • Weiteres Kriterium: Adaptivität CCA2 Kryptographie und Kryptoanalyse 38 2 Grundlagen – Überblick über Angriffe Übersicht über die Angriffstypen Konzelationssysteme Angreifer kennt System und ... Passive Angriffe Aktive Angriffe Authentikationssysteme symmetrisch asymmetrisch symmetrisch asymmetrisch c c; ke m, MAC m, s; kt Key only attack Key only attack Ciphertext only attack Known plaintext attack Known message attack Chosen plaintext attack Chosen ciphertext attack Kryptographie und Kryptoanalyse Chosen message attack 39 2 Grundlagen – Sicherheit kryptographischer Systeme Klassifizierung von Kryptosystemen nach ihrer Sicherheit • informationstheoretisch sicher Auch einem unbeschränkten Angreifer gelingt es nicht, das System zu brechen. („unconditional security“, „perfect secrecy“) • beste erreichbare Sicherheit • Verschiedene Begriffe zur Bewertung der Sicherheit der übrigen Systeme • Annahmen über Möglichkeiten des Angreifers, Betrachtung der Sicherheit unter bestimmten Angriffen Kryptographie und Kryptoanalyse 40 2 Grundlagen – Sicherheit kryptographischer Systeme Informationstheoretische (perfekte) Sicherheit [Claude Shannon: Communication Theory of Secrecy Systems. Bell Systems Technical Journal, 28(1949), 656-715.] • Informelle Beschreibung (bzgl. Konzelationssystem): Selbst ein unbeschränkter Angreifer gewinnt aus seinen Beobachtungen keinerlei zusätzliche Informationen über Klartext oder Schlüssel. • „unbeschränkt“: beliebiger Rechen- und Zeitaufwand • „zusätzliche Informationen“: nicht besser als bloßes Raten Kryptographie und Kryptoanalyse 41 2 Grundlagen – Sicherheit kryptographischer Systeme Definition der informationstheoretischen Sicherheit • a priori Wissen p(m): Wissen des Angreifers über mögliche Nachrichten vor einer Beobachtung (als bekannt vorausgesetzt) • a posteriori Wissen p(m|c): Wissen des Angreifers über mögliche Nachrichten nach der Beobachtung des gesendeten Schlüsseltexts Ein System heißt informationstheoretisch sicher, wenn für alle Nachrichten und Schlüsseltexte gilt, dass die a posteriori Wahrscheinlichkeiten p(m|c) der möglichen Nachrichten nach Beobachtung eines gesendeten Geheimtextes gleich der a priori Wahrscheinlichkeiten p(m) dieser Nachrichten sind: " m M " c C: p(m|c) = p(m). Kryptographie und Kryptoanalyse 42 2 Grundlagen – Sicherheit kryptographischer Systeme • Berechnung der a posterioi Wahrscheinlichkeiten p(m|c) nach dem Theorem von Bayes: pm | c p m pc | m p c Notwendige und hinreichende Bedingung für informationstheoretische Sicherheit: " m M " c C: p(c|m) = p(c). Nachrichten und Schlüsseltexte müssen stochastisch unabhängig voneinander sein. Kryptographie und Kryptoanalyse 43 2 Grundlagen – Sicherheit kryptographischer Systeme • Berechnung der Wahrscheinlichkeiten p(cj|mi), p(cj) Nachrichten m0 Schlüsseltexte p(c0|m0) c0 m1 c1 . . . . . . mi cj . . . . . . mn-1 cn-1 p(cj|mi) Kryptographie und Kryptoanalyse Wahrscheinlichkeit p(cj|mi), Schlüsseltext cj bei Verschlüsselung der Nachricht mi zu erhalten: p c j | mi kK :c j enc k , mi pk Wahrscheinlichkeit des Schlüsseltextes cj: n 1 p c j pmi p c j | mi i 0 44 2 Grundlagen – Sicherheit kryptographischer Systeme Bedingungen für informationstheoretische Sicherheit Beispiel 1: Nachrichten Schlüsseltexte 00 00 Verschlüsselung enc(00, m) enc(01, m) 01 01 10 10 11 11 nicht informationstheoretisch sicher Anforderungen an die Anzahl der Schlüssel notwendig! Kryptographie und Kryptoanalyse 45 2 Grundlagen – Sicherheit kryptographischer Systeme (1) Anzahl der Schlüssel • Verschlüsselung injektiv: enc(k, m1) = enc(k, m2) m1 = m2 – Verschlüsselung n verschiedener Nachrichten m0, m1, …, mn-1 mit einem Schlüssel k liefert n verschiedene Schlüsseltexte c0, c1, …, cn-1 – Bedingung gilt für jeden der möglichen Schlüssel |C| ¥ |M| • Sicherheit des Systems: – Jeder Schlüsseltext muss das Ergebnis der Verschlüsselung jeder möglichen Nachricht sein können – Für eine Nachricht m und n verschiedene Schlüsseltexte muss es n verschiedene Schlüssel k0, k1, …, kn-1 geben |K| ¥ |C| |K| ¥ |C| ¥ |M| Kryptographie und Kryptoanalyse 46 2 Grundlagen – Sicherheit kryptographischer Systeme Beispiel 2: Nachrichten Schlüsseltexte m0 = 00 c0 = 00 Verschlüsselung enc(k0 = 00, m) enc(k1 = 01, m) m1 = 01 c1 = 01 enc(k2 = 10, m) enc(k3 = 11, m) m2 = 10 c2 = 10 m3 = 11 c3 = 11 als bekannt vorausgesetzt: Kryptographie und Kryptoanalyse p(m0) = 0,15 p(m1) = 0,05 p(m2) = 0,50 p(m3) = 0,30 p(k0) = 0,20 p(k1) = 0,70 p(k2) = 0,05 p(k3) = 0,05 47 2 Grundlagen – Sicherheit kryptographischer Systeme • resultierende Wahrscheinlichkeiten der Schlüsseltexte: p(c0) = 0,1050 p(c1) = 0,1925 p(c2) = 0,3200 p(c3) = 0,3825 • resultierende a posteriori Wahrscheinlichkeiten: p(m0|c0) = 0,286 p(m0|c1) = 0,545 p(m0|c2) = 0,023 p(m0|c3) = 0,020 p(m1|c0) = 0,333 p(m1|c1) = 0,013 p(m1|c2) = 0,008 p(m1|c3) = 0,026 p(m2|c0) = 0,238 p(m2|c1) = 0,130 p(m2|c2) = 0,312 p(m2|c3) = 0,915 p(m3|c0) = 0,143 p(m3|c1) = 0,312 p(m3|c2) = 0,656 p(m3|c3) = 0,039 nicht informationstheoretisch sicher Anforderungen an Wahrscheinlichkeiten der Schlüssel notwendig! Kryptographie und Kryptoanalyse 48 2 Grundlagen – Sicherheit kryptographischer Systeme (2) Wahrscheinlichkeiten der Schlüssel (für Nachrichten |K| = |C| = |M|) Schlüsseltexte m0 = 00 c0 = 00 m1 = 01 c1 = 01 m2 = 10 c2 = 10 m3 = 11 c3 = 11 Bedingung: " m M " c C: p(c|m) = p(c) z.B. für c0: p(c0|m0) = p(c0|m1) = p(c0|m2) = p(c0|m3) Schlüssel müssen mit gleicher Wahrscheinlichkeit verwendet werden Resultierende Schlüsseltexte sind ebenfalls gleichwahrscheinlich Kryptographie und Kryptoanalyse 49 2 Grundlagen – Sicherheit kryptographischer Systeme Beispiel 3: Nachrichten Schlüsseltexte m0 = 00 c0 = 00 Verschlüsselung enc(k0 = 00, m) enc(k1 = 01, m) m1 = 01 c1 = 01 enc(k2 = 10, m) enc(k3 = 11, m) m2 = 10 c2 = 10 m3 = 11 c3 = 11 p(m0) = 0,15; p(m1) = 0,05; p(m2) = 0,5; p(m3) = 0,3 p(ki) = p(k) = 0,25 informationstheoretisch sicher Kryptographie und Kryptoanalyse 50 2 Grundlagen – Sicherheit kryptographischer Systeme Beispiel 4: (Nutzung des Kryptosystems aus Beispiel 3) Verschlüsselung von zwei Nachrichten mit ein und demselben Schlüssel; Angreifer beobachtet: 0111 = c1c3 Nachrichten Schlüsseltexte m0 = 00 Verschlüsselung enc(k0 = 00, m) c0 = 00 enc(k1 = 01, m) m1 = 01 c1 = 01 enc(k2 = 10, m) enc(k3 = 11, m) m2 = 10 m3 = 11 c2 = 10 c3 = 11 p(m0) = 0,15; p(m1) = 0,05; p(m2) = 0,50; p(m3) = 0,30 Nur vier mögliche Nachrichten: k0: 1101 = m3m1 k1: 0010 = m0m2 Kryptographie und Kryptoanalyse k2: 0111 = m1m3 k3: 1000 = m2m0 51 2 Grundlagen – Sicherheit kryptographischer Systeme • Wahrscheinlichkeiten der Nachrichten: p(m3m1) = 0,015 p(m0m2) = 0,075 p(m1m3) = 0,015 p(m2m0) = 0,075 • resultierende a posteriori Wahrscheinlichkeiten: p(m3m1|c1c3) = 0,0833 p(m0m2|c1c3) = 0,4167 p(m1m3|c1c3) = 0,0833 p(m2m0|c1c3) = 0,4167 nicht informationstheoretisch sicher (3) Wahl der Schlüssel – Zufällige Wahl des Schlüssels für Verschlüsselung jedes „Blocks“ – Einer Folge von Nachrichten muss eine Zufallsfolge von Schlüsseln entsprechender Länge zugeordnet sein Kryptographie und Kryptoanalyse 52 2 Grundlagen – Sicherheit kryptographischer Systeme Zusammenfassung der Anforderungen • Notwendige Bedingung für informationstheoretische Sicherheit: Nachrichten und Schlüsseltexte müssen stochastisch unabhängig voneinander sein, d.h., die Wahrscheinlichkeit für einen Schlüsseltext darf nicht von der verschlüsselten Nachricht abhängen. Resultierende Anforderungen an die Schlüssel: (1) |K| ¥ |C| ¥ |M| (2) Bei einem System mit |K| = |C| = |M| müssen die Schlüssel gleichwahrscheinlich sein. (3) Die Wahl des Schlüssels muss jeweils zufällig erfolgen. Aussagen bzgl. Sicherheit gelten nur für den Algorithmus! Kryptographie und Kryptoanalyse 53 2 Grundlagen – Sicherheit kryptographischer Systeme Erreichbare Sicherheit asymmetrischer Systeme Bob Alice ke,B m kd,B enc c dec m Angreifer ke,B enc Kryptographie und Kryptoanalyse Sicherheit gegen unbeschränkten Angreifer (informationstheoretische Sicherheit) nicht möglich. 54 2 Grundlagen – Sicherheit kryptographischer Systeme Anmerkungen zur informationstheoretischen Sicherheit • Betrachtet wurde zunächst passiver Angriff (ciphertext only attack) • Informationstheoretisch sicheres System ist jedoch auch gegen aktive Angriffe sicher • Keine Annahmen über die zu verarbeitenden Nachrichten notwendig • Informationstheoretische Sicherheit kann nur von symmetrischen Systemen erreicht werden • Systeme, die ein und denselben Schlüssel mehrfach verwenden, können nicht informationstheoretisch sicher sein Kryptographie und Kryptoanalyse 55 2 Grundlagen – Sicherheit kryptographischer Systeme • Schlüsselmanagement problematisch: – jede neue Nachricht erfordert einen neuen Schlüssel – Schlüssel symmetrischer Systeme müssen über sicheren Kanal ausgetauscht und geheim gehalten werden • Schutzziel „Zurechenbarkeit“ kann nicht mit symmetrischen Systemen erbracht werden Verwendung von nicht informationstheoretisch sicheren Systemen notwendig Annahmen über den Angreifer notwendig (notwendige Berechnungen des Angreifers sind nicht effizient möglich) Kryptographie und Kryptoanalyse 56 2 Grundlagen – Sicherheit kryptographischer Systeme Weitere Sicherheitsbegriffe • „beweisbar sicher“ (provable security) Beweis besteht in Reduktion auf mathematisches Problem (Zielstellung: Wenn der Angreifer das System bricht, kann er das schwierige mathematische Problem lösen.) Wesentliche Probleme mit „beweisbarer Sicherheit“ – Betrachtet nur Angriffe spezieller Art; sagt nichts aus über mögliche andere Angriffe – Bedingte Aussagen von der Art „unter der Annahme, dass niemand einen effizienten Algorithmus für dieses mathematische Problem findet“ Sicherheit gegen bestimmte Angriffe Kryptographie und Kryptoanalyse 57 2 Grundlagen – Sicherheit kryptographischer Systeme Semantische Sicherheit [GoMi_84] Ein System heißt semantisch sicher, wenn alles, was bei Kenntnis des zugehörigen Schlüsseltextes effizient über den Klartext berechnet werden kann, auch effizient ohne Kenntnis des Schlüsseltextes berechnet werden kann. • „effizient“: (polynomiell) beschränkter Angreifer • Vorteil des Angreifers betrachtet (nicht besser als bloßes Raten) Ununterscheidbarkeit („polynomielle Sicherheit“) [GoMi_84] Angreifer ist nicht in der Lage, zwei beliebige Nachrichten zu finden, so dass er die Verschlüsselung einer dieser Nachrichten korrekt der Nachricht zuordnen kann. • äquivalent zu semantischer Sicherheit (s. [NaYu_90, KoMe_04] f. Referenzen) • „Charakterisierung von semantischer Sicherheit“ [BeSa_99] Kryptographie und Kryptoanalyse 58 2 Grundlagen – Sicherheit kryptographischer Systeme • Semantische Sicherheit bietet intuitive Beschreibung von Sicherheit (Geheimhaltung) • Ursprünglich eingeführt für CPA, später aber auch unter aktiven Angriffen betrachtet [BDPR_98] • Ununterscheidbarkeit oft in Sicherheitsbeweisen verwendet • Begründet die Notwendigkeit indeterministischer Verschlüsselung (semantisch sicheres System sicher gegen vollständige Suche eines polynomiell beschränkten Angreifers) • Semantisch sicheres Kryptosystem in [GoMi_84] vorgestellt – basiert auf dem Problem zu entscheiden, ob eine Zahl ein quadratischer Rest ist (QRP) – Nachteil: Expansion (Verschlüsselung eines Bits liefert k Bit langen Schlüsseltext) Kryptographie und Kryptoanalyse 59 2 Grundlagen – Sicherheit kryptographischer Systeme Ununterscheidbarkeit unter CPA Alice Schlüsselgenerierung: kd, ke keygen(param) Angreifer ke m0, m1 wählt zufällig b {0,1} verschlüsselt mb kennt ke wählt m0, m1 M mit length(m0) = length(m1) cb = enc(ke, mb) Entscheidung: b = 0 oder b = 1 Kryptographie und Kryptoanalyse 60 2 Grundlagen – Sicherheit kryptographischer Systeme Ununterscheidbarkeit unter CCA1 Alice Schlüsselgenerierung: kd, ke keygen(param) Angreifer ke kennt ke ci entschlüsselt ci mi = dec(kd, ci) m0, m1 wählt zufällig b {0,1} verschlüsselt mb beliebig oft wählt m0, m1 M mit length(m0) = length(m1) cb = enc(ke, mb) Entscheidung: b = 0 oder b = 1 Kryptographie und Kryptoanalyse 61 2 Grundlagen – Sicherheit kryptographischer Systeme Ununterscheidbarkeit unter CCA2 Alice Schlüsselgenerierung: kd, ke keygen(param) Angreifer ke kennt ke ci entschlüsselt ci mi = dec(kd, ci) m0, m1 wählt zufällig b {0,1} verschlüsselt mb beliebig oft wählt m0, m1 M mit length(m0) = length(m1) cb = enc(ke, mb) ci cb entschlüsselt ci mi = dec(kd, ci) beliebig oft Entscheidung: b = 0 oder b = 1 Kryptographie und Kryptoanalyse 62 2 Grundlagen – Sicherheit kryptographischer Systeme Non-Malleability [DoDN_91] Ein System bietet Sicherheit gegen adaptive aktive Angriffe (NonMalleability), wenn es für einen polynomiell beschränkten Angreifer nicht einfacher ist, bei Kenntnis eines Schlüsseltextes einen weiteren Schlüsseltext zu generieren, so dass die zugehörigen Klartexte in Relation zueinander stehen, als ohne Kenntnis dieses Schlüsseltextes. • Motivation: contract bidding • Beispiel für ein Kryptosystem: System von Cramer und Shoup [CrSh_98] Erweiterung des ElGamal-Kryptosystems Basiert auf dem Diffie-Hellman Entscheidungsproblem Kryptographie und Kryptoanalyse 63 Überblick über die Vorlesung 1. Einführung 2. Grundlagen 3. Klassische Verfahren – – – – Mathematische Grundlagen Transpositionen MM-Substitutionen PM-Substitutionen 4. Symmetrische Verfahren 5. Asymmetrische Verfahren Kryptographie und Kryptoanalyse 64 3 Klassische Verfahren – Mathematische Grundlagen Modulare Arithmetik • Endliche Strukturen (z.B. Gruppen), basierend z.B. auf den natürlichen oder ganzen Zahlen Restklassenring modulo n • n = {0,1,2, …, n-1} • Kongruenz a, b ; n N, n > 1: n|(a-b) a, b kongruent a b mod n • Restklasse ā zu jedem a : ā ú {b | a b mod n} Kryptographie und Kryptoanalyse 65 3 Klassische Verfahren – Transpositionen Transpositionen • Verwürfeln der Klartextzeichen, Permutation der Stellen des Klartextes (Permutationschiffren) • Beispiel: Skytala • Formale Beschreibung: M = C = Al m = (m1m2m3 … ml), mi A, l N Permutation 1 P p 1 2 ... p 2 ... l p l enck(m) = enck(m1m2m3 … ml) = (mp(1)mp(2)mp(3) … mp(l)) Kryptographie und Kryptoanalyse 66 3 Klassische Verfahren – Transpositionen Beispiel 1 2 3 4 5 6 7 P 3 1 4 2 7 5 6 • Matrixtranspositionen Beispiel: Spaltenpermutation Schlüssel: 5x7 Matrix P = (1,4)(2,5,3,7,6) P-1 = (4,1)(5,2,6,7,3) Kryptographie und Kryptoanalyse 67 3 Klassische Verfahren – MM-Substitutionen MM-Substitution M AM a0 (monoalphabetisch, monographisch) K k a3 k AC b3 k ai a2 C b1 bj b0 k AM, AC Alphabete, enc: AMl ACl m = (m0m1m2 … ml-1), mi AM, m AMl, l N enck(m) = enck(m0) enck(m1) … enck(ml-1) Kryptographie und Kryptoanalyse 68 3 Klassische Verfahren – MM-Substitutionen • Verschiebechiffre (Additive Chiffre) AM = AC = {A:Z} Schlüssel: s {0:n-1}, n = 26 encs(mi) = -1[( (mi) + s) mod n], (mi) {0:n-1} decs(ci) = -1[( (ci) - s) mod n] Cäsarchiffre für s = 3 Nachricht a b c Schlüsseltext D E F Kryptographie und Kryptoanalyse d e f g … x y z G H I J … A B C 69 3 Klassische Verfahren – MM-Substitutionen Beispiel n = 26, A = {A:Z}, s = 3 : A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 K 10 L 11 O 14 P 15 Q 16 R 17 S 18 T 19 U 20 V 21 W 22 X 23 Y 24 Z 25 Kryptographie und Kryptoanalyse M 12 N 13 70 3 Klassische Verfahren – MM-Substitutionen Kryptoanalyse der Verschiebechiffre • Nur 26 verschiedene Schlüssel • Vollständige Suche möglich Durchprobieren aller möglichen Schlüssel Beispiel: c= FMTKOJVIVGTNZDNOYVNOCZHVYZMCZPODBZIQJMGZNPIB Kryptographie und Kryptoanalyse 71 3 Klassische Verfahren – MM-Substitutionen s m 0 1 2 3 4 5 6 7 8 9 10 11 12 FMTKOJVIVGTNZ ELSJNIUHUFSMY DKRIMHTGTERLX CJQHLGSFSDQKW BIPGKFRERCPJV AHOFJEQDQBOIU ZGNEIDPCPANHT YFMDHCOBOZMGS XELCGBNANYLFR WDKBFAMZMXKEQ VCJAEZLYLWJDP UBIZDYKXKVICO TAHYCXJWJUHBN s 13 14 15 16 17 18 19 20 21 22 23 24 25 m SZGXBWIVITGAM RYFWAVHUHSFZL QXEVZUGTGREYK PWDUYTFSFQDXJ OVCTXSEREPCWI NUBSWRDQDOBVH MTARVQCPCNAUG LSZQUPBOBMZTF KRYPTOANALYSE JQXOSNZMZKXRD IPWNRMYLYJWQC HOVMQLXKXIVPB GNULPKWJWHUOA s = 21 ergibt den einzigen sinnvollen Text s = 21 Kryptographie und Kryptoanalyse 72 3 Klassische Verfahren – MM-Substitutionen • Schema von Polybios AM = {A:Z} AC = {ij | i, j {1, 2, 3, 4, 5}} enc: i 1 2 3 4 5 j 1 A F K P U 2 B G L Q V 3 C H M R W 4 D I N S X/Y 5 E J O T Z Beispiel Kryptographie und Kryptoanalyse 73 3 Klassische Verfahren – MM-Substitutionen • Allgemeine Substitution: Permutation des Alphabets Beispiel AM = AC = {A:Z} P = (A,G)(B,J,Y,R,N,L,E,W)(C,K,H,Q,T,U,I,X)(D,M,O,F,P,S,Z,V) P-1 = (G,A)(B,W,E,L,N,R,Y,J)(C,X,I,U,T,Q,H,K)(D,V,Z,S,P,F,O,M) • Freimaurerchiffre (Kreuzchiffre) Beispiel W K C R A E L Z V B X Kryptographie und Kryptoanalyse J U H I S P O Y F M Q D G N T 74 3 Klassische Verfahren – MM-Substitutionen Statistische Analysen • Möglichkeiten der vollständigen Suche sind eingeschränkt • Aufwand für eine allgemeine Substitution: |A|! • Angriffspunkt: MM-Substitutionen übertragen statistische Eigenschaften der Klartexte in die Schlüsseltexte Polybios: Permutation (Bsp. F. 74): Verschiebechiffre (s = 3): Kryptographie und Kryptoanalyse m= B E c = 12 15 c= J W c= E H I S P I E L 24 44 41 24 15 32 X Z S X W E L V S L H O 75 3 Klassische Verfahren – MM-Substitutionen Struktur der Sprache • unterschiedliche Auftrittswahrscheinlichkeiten der Zeichen • Redundanz R – nicht alle Zeichenfolgen der Länge l sind gleichwahrscheinlich – Unterschied zwischen Entropie des Alphabets H(X) und zugehöriger maximaler Entropie H0(X) (bei Gleichwahrscheinlichkeit der N Zeichen des Alphabets): N 1 R = H0(X) – H(X); H X pxi ld i 0 1 ; H 0 X ld N p xi – Natürliche Sprachen weisen bereits für l = 1 eine relativ hohe Redundanz auf – Redundanz wächst mit der Länge der betrachteten Zeichenfolgen – Einfache Substitutionschiffren (deutsche oder englische Nachricht) können i. Allg. bereits ab ca. 30 Zeichen entschlüsselt werden Kryptographie und Kryptoanalyse 76 3 Klassische Verfahren – MM-Substitutionen Zeichenhäufigkeiten (%) Deutsch Deutsch Englisch * 15.15 19.25 a 4.58 5.40 6.60 8.17 b 1.60 1.89 1.21 1.49 c 2.67 3.15 2.25 2.78 d 4.39 5.17 3.43 4.25 e 15.35 18.10 10.26 12.70 f 1.36 1.60 1.80 2.23 g 2.67 3.15 1.63 2.02 h 4.36 5.14 4.92 6.09 i 6.38 7.52 5.63 6.97 j 0.16 0.19 0.12 0.15 k 0.96 1.13 0.62 0.77 l 2.93 3.45 3.25 4.03 m 2.13 2.51 1.94 2.41 Kryptographie und Kryptoanalyse n o p q r s t u v w x y z Englisch 8.84 10.42 5.45 1.90 2.24 6.06 0.50 0.59 1.56 0.01 0.01 0.08 6.86 8.08 4.84 5.39 6.35 5.11 4.73 5.57 7.31 3.48 4.10 2.23 0.72 0.87 0.77 1.42 1.67 1.91 0.01 0.01 0.12 0.02 0.02 1.59 1.42 1.67 0.06 6.75 7.51 1.93 0.10 5.99 6.33 9.06 2.76 0.96 2.36 0.15 1.97 0.07 77 3 Klassische Verfahren – MM-Substitutionen Häufigkeiten Zeichenhäufigkeiten (deutsch) * a b c d e f g h Kryptographie und Kryptoanalyse i j k l m n o p q r s t u v w x y z 78 3 Klassische Verfahren – MM-Substitutionen Einteilung der Zeichen in Gruppen Gruppe Deutsch Englisch I e e II nristdha taoinshr III ulcg dl IV mobzwf cumwfgypb V kvpjyqx vkjxqz Kryptographie und Kryptoanalyse 79 3 Klassische Verfahren – MM-Substitutionen Häufigkeiten von Bi- und Trigrammen Rang 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Rang EN ER CH ND EI DE IN ES TE IE UN GE ST IC HE TH HE IN ER AN RE ED ON ES ST EN AT TO NT HA EIN ICH NDE DIE UND DER CHE END GEN SCH CHT DEN INE NGE NUN THE ING AND HER ERE ENT THA NTH WAS ETH FOR DTH HAT SHE ION Kryptographie und Kryptoanalyse 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 NE SE NG RE AU DI BE SS NS AN SI UE DA AS NI ND OU EA NG AS OR TI IS ET IT AR TE SE HI OF UNG DAS HEN IND ENW ENS IES STE TEN ERE LIC ACH NDI SSE AUS INT HIS STH ERS VER TTH TER HES EDT EST THI HAD OTH ALL ATI Deutsch Englisch 80 3 Klassische Verfahren – MM-Substitutionen • Analyse von MM-Substitutionen - Analyse der Häufigkeiten einzelner Buchstaben - Analyse der Häufigkeiten von Bi- und Trigrammen - Nutzung der Redundanz zur Ermittlung fehlender Zeichen - bei bekannten Wortgrenzen: Identifikation kurzer Wörter, Vorsilben, Endungen, Anfangs- und Endbuchstaben Beispiel: QOTC RQXVUXZX FXAFX SHXVVXV KOZTCQOB DHV KXV TCQZQSFXZWBFWBTCXV XWUXVBTCQJFXV KXZ DXZLXVKXFXV BEZQTCX QGLXWTCXV QRRXZKWVUB WBF XB WY QRRUXYXWVXV VWTCF YHXURWTC NXKX TCQZQSFXZWBFWBTCX XWUXVBTCQJF XWVXZ BEZQTCX MO DXZYXWKXV OVK BWTC KXVVHTC WV KWXBXZ BEZQTCX QOBMOKZOXTSXV Kryptographie und Kryptoanalyse 81 3 Klassische Verfahren – MM-Substitutionen Analyse von Transpositionen • statistische Eigenschaften des Klartextes nur teilweise erhalten • einfache Analyse bei Klartext-Schlüsseltext-Angriff • ansonsten: Rekonstruktion der Bi- und Trigramme • zunächst Ermittlung der Blocklänge Beispiel CESVLRHEESUUSLLGANOSGMIHRSTU CESVLRH EESUUSL LGANOSG MIHRSTU Reduktion der möglichen Kombinationen: EVLRSCH, EVRLSCH, …, VELRSCH, ... Kryptographie und Kryptoanalyse 82 3 Klassische Verfahren – PM-Substitutionen PM-Substitution (1) M AM (polyalphabetisch, monographisch) K b14 a0 AC1 AC2 k1 ai a3 C k2 a2 kr AM, AC1, AC2, …, ACr Alphabete, enc: AMl (AC1 » AC2 » … » ACr)l m = (m1m2 … ml), mi AM, m AMl, l N enck(m) = enck0(m0) enck1(m1) … enckl (ml), kj {1:r} Kryptographie und Kryptoanalyse b20 br1 ACr 83 3 Klassische Verfahren – PM-Substitutionen PM-Substitution (2) M AM a0 K k1 ai a3 C k2 k3 a2 Kryptographie und Kryptoanalyse kr b3 AC bj b0 b1 84 3 Klassische Verfahren – PM-Substitutionen • Vigenère-Chiffre (1) klassische Darstellung: Vigenère-Tableau a b c d e f … z A A B C D E F … Z B B C D E F G … A C C D E F G H … B D D E F G H I … C E E F G H I J … D F F G H I J K … E … … … … … … … … Z Z A B C D E Kryptographie und Kryptoanalyse … … … … … Y 85 3 Klassische Verfahren – PM-Substitutionen • Vigenère-Chiffre (2) AM = AC = {A:Z} Schlüssel: K = {k | k = (k0k1 … kr-1) ki {A:Z}} enck(m) = enck (m0) enck (m1) … enck (mi) enc k (mi+1) … enc k 0 1 r-1 0 (l-1) mod r (ml-1) mit enckj(mi) = -1[( (mi) + (kj)) mod n], (mi), (kj) {0:n-1} -1 ) = [( (ci) - (kj)) mod n] dec k(c i j Beispiel Kryptographie und Kryptoanalyse 86 3 Klassische Verfahren – PM-Substitutionen • Binäre Vigenère-Chiffre A = {0,1} n=2 Klartextbuchstabe mi, Schlüsselbuchstabe ki: ci = (mi+ki) mod 2 mi = (ci+ki) mod 2 bzw. bzw. ci = mi ki mi = ci ki • Schlüssel – sollten Zufallsfolgen sein – kürzer als Klartext: periodische Wiederholung – Autokey-Verfahren Kryptographie und Kryptoanalyse 87 3 Klassische Verfahren – PM-Substitutionen Vernam-Chiffre (one-time pad) • • • Jeder Schlüssel wird nur einmal verwendet Schlüssellänge und Länge des Klartextes sind gleich Schlüssel sind zufällig Einzige informationstheoretisch sichere Chiffre. • Binäre Vernam-Chiffre c = enc(ki, mi) = mi ki Nachrichten m = dec(ki, ci) = ci ki Schlüsseltexte 0 0 Verschlüsselung enc(0, m) enc(1, m) 1 Kryptographie und Kryptoanalyse 1 p(k0) = p(k1) = 0,5 88 3 Klassische Verfahren – PM-Substitutionen Analyse von PM-Substitutionen • • statistische Eigenschaften des Klartextes werden nicht in den Schlüsseltext übertragen unter bestimmten Bedingungen sicher (Schlüssel!) 2 Schritte: 1. Ermittlung der Schlüssellänge r Vereinfachung der Analyse auf Analyse von r MM-Substitutionen 2. Analyse der MM-Substitutionen Schlüssel k0 k1 k2 … kr-1 Schlüsseltext c0 c1 c2 … cr-1 cr cr+1 cr+2 … cr+(r-1) c2r c2r+1 c2r+2 … c2r+(r-1) … … … … … MM-Substitution mit Schlüssel k0 Kryptographie und Kryptoanalyse 89 3 Klassische Verfahren – PM-Substitutionen • Kasiski-Test – 1863 von Friedrich Wilhelm Kasiski publiziert – Suche nach identischen Abschnitten im Schlüsseltext – Annahme: identische Abschnitte im Klartext mit denselben Schlüsselzeichen verschlüsselt – Rückschlüsse auf Schlüssellänge: ggT der Abstände – zufällige Wiederholungen möglich untersuchte Folgen sollten mindestens die Länge 3 haben Kryptographie und Kryptoanalyse 90 3 Klassische Verfahren – PM-Substitutionen m k c = A L B E R T I S K R E I S S C H E I B E N S I N D = K E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K = K P Z O V R S W I B I G C W A R I G L I L C M L N m ... E I N E V E R B E S S E R T E F O R M D E R V E R k ... E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K E c ... I G X I T O V Z O W Q O V R O J M B Q B O V T O V m ... S C H I E B E C H I F F R E N k ... Y K E Y K E Y K E Y K E Y K E c ... Q M L G O F C M L G P J P O R Wiederholungen durch Verschlüsselung identischer Klartextabschnitte zufällige Wiederholungen Abstände: ‚OVR‘: 33 = 3 11 ‚TOV‘: 18 = 2 32 ‚MLG‘: 6 = 2 3 ggT(Abstände) = 3 ‚CML‘: 35 = 5 7 Kryptographie und Kryptoanalyse 91 3 Klassische Verfahren – PM-Substitutionen • Friedman-Test – von William F. Friedman veröffentlicht – analysiert die Redundanz des Schlüsseltextes – basiert auf dem Koinzidenzindex I (1922, Friedman) – Länge der Nachricht m: length(m) = N – Länge des Schlüssels k: length(k) = r Wiederum 2 Schritte: 1. Ermittlung der Schlüssellänge r 2. Ermittlung des Schlüssels durch Analyse der MM-Substitutionen Kryptographie und Kryptoanalyse 92 3 Klassische Verfahren – PM-Substitutionen Koinzidenzindex I • Wahrscheinlichkeit, dass zwei unabhängig voneinander gewählte Zeichen ai übereinstimmen n 1 I pi2 , pi p (ai ), ai A i 0 • I minimal, wenn alle Zeichen gleichwahrscheinlich: pi 1 1 , i 0,1,..., n 1 : I min n n A = {A:Z}: n = 26, Imin = 1/26 = 0,0385 • I „maximal“ für Texte in natürlichen Sprachen: Nachricht in deutscher Sprache: Imax = 0,0762 Nachricht in englischer Sprache: Imax = 0,0655 Kryptographie und Kryptoanalyse 93 3 Klassische Verfahren – PM-Substitutionen Koinzidenzindex für Beispieltexte (deutsch, nur “A” – “Z”) Imax = 0,0762 Imin = 0,0385 ─ r=1 r=4 r = 12 r = 26 N = 110 038 0,07379 0,07379 0,04769 0,04030 0,03847 N = 10 090 0,07226 0,07226 0,04714 0,04009 0,03856 N= 2 059 0,08002 0,08002 0,04936 0,04107 0,04094 Kryptographie und Kryptoanalyse 94 3 Klassische Verfahren – PM-Substitutionen Einordnung des Schlüsseltextes in eine Tabelle Schlüssel k0 k1 k2 … kr-1 Schlüsseltext c0 c1 c2 … cr-1 cr cr+1 cr+2 … cr+(r-1) c2r c2r+1 c2r+2 … c2r+(r-1) c3r c3r+1 c3r+2 … c2r+(r-1) … … … … … Imin = 0,0385 Imax = 0,0762 Kryptographie und Kryptoanalyse 95 3 Klassische Verfahren – PM-Substitutionen Wahrscheinlichkeit, ein Paar gleiche Zeichen auszuwählen: n 1 I p i 0 2 i anz gl I max anzv I min Anzahl von Buchstabenpaaren • aus einer gleichen Spalte: • aus verschiedenen Spalten: • insgesamt: Kryptographie und Kryptoanalyse anzbp N N 1 r anz gl 2 N NN r anzv 2 N N 1 anzbp 2 96 3 Klassische Verfahren – PM-Substitutionen Einsetzen und Umformen nach r liefert: ( I max I min ) N 0, 0377 N r ( N 1) I I max I min N ( N 1) I 0, 0762 0, 0385 N 0, 0377 r I 0, 0385 für N >> 1 2 anz ( a ) 1 i I pi2 2 2 N N i 0 i 0 n 1 n 1 Kryptographie und Kryptoanalyse n 1 2 anz ( a ) i i 0 97 3 Klassische Verfahren – PM-Substitutionen • Analyse einer PM-Substitution ohne periodische Wiederholung des Schlüssels – Methode von Friedman 1918 vorgestellt – Voraussetzung: Schlüssel und Klartext entstammen einer natürlichen Sprache – Basis: eine relativ kleine Menge von Buchstaben macht bereits einen großen Teil des Textes aus (ca. 75% des Englischen oder Deutschen bestehen aus den jeweils 10 häufigsten Buchstaben) Kryptographie und Kryptoanalyse 98 3 Klassische Verfahren – PM-Substitutionen Vigenère-Tableau für die 10 häufigsten Buchstaben (D): e n r i s t d h a u E I R V M W X H L E Y N R A E V F G Q U N H R V E I Z J K U Y R L I M V Z Q A B L P I C S W F J A K L V Z S M T X G K B L M W A T N D H Q U L V W G K D X H L U Y P Z A K O H B A E N R I S T D H A U U Y H L C M N X B U O Ermittlung sinnvoller Kombinationen, Ausschluss … Kryptographie und Kryptoanalyse 99 3 Klassische Verfahren – PM-Substitutionen Mögliche Zusammensetzung der Schlüsseltextbuchstaben A B a+a i+t C D E F G H I J K i+u a+d a+e n+s d+d a+h e+e r+s s+s e+h n+n h+u n+r n+t i+s t+t r+r d+h i+d e+i n+u a+i r+t s+t s+u r+u o P a+n h+h h+i t+u M e+d h+ t N L u+u Q R S T i+i a+r a+s a+t d+n e+n Kryptographie und Kryptoanalyse U V W X Y a+u d+s d+t d+u e+u d+r e+r e+s h+n i+n e+t Z i+r h+r h+s 100 3 Klassische Verfahren – PM-Substitutionen • Beispiel m = E I N B I L D V E R A R B E k = D I E S T E G A N O G R A P H c = H Q R T B P J V R F G I I T U N G S … I E E R M … B T P B Y R X E … H: (a+h), (e+d), (n+u) Q: (i+i), (d+n) R: (a+r), (e+n) insgesamt 6 · 3 · 4 = 72 Möglichkeiten, darunter (die, ein) T: (a+t) B: (i+t), (h+u) P: (h+i) insgesamt 2 · 4 · 2 = 16 Möglichkeiten, keine sinnvolle Kombination darunter Kryptographie und Kryptoanalyse 101 3 Klassische Verfahren Zusammenfassung • MM-Substitutionen erhalten alle Gesetzmäßigkeiten des Klartextes – Angriffe mittels statistischer Analysen • PM-Substitionen beseitigen diesen Nachteil durch Anwendung unterschiedlicher Schlüsselzeichen; relevant für die Sicherheit: Schlüssellänge und Wahl des Schlüssels • Transpositionen erhalten Einzelwahrscheinlichkeiten, aber nicht die Wahrscheinlichkeiten von Zeichenfolgen • Ansatzpunkt für die vorgestellten Analysen: erhaltene Redundanz des Klartextes Kryptoanalyse m. H. eines reinen Schlüsseltext-Angriffs für Klartext „ohne“ Redundanz nicht möglich; Reduktion der Redundanz erschwert Kryptoanalyse Kryptographie und Kryptoanalyse 102 Überblick über die Vorlesung 1. 2. 3. 4. Einführung Grundlagen Klassische Verfahren Symmetrische Verfahren – – – – – – Blockchiffren Feistel-Chiffre Kryptographische Güte einer Verschlüsselungsfunktion DES • Differentielle Kryptoanalyse • Lineare Kryptoanalyse AES Betriebsarten 5. Asymmetrische Verfahren Kryptographie und Kryptoanalyse 103 4 Symmetrische Verfahren – Blockchiffren Blockchiffren • Verschlüsselung von Nachrichten fester Länge (Stromchiffren: Verschlüsselung von Nachrichten beliebiger Länge) • Nachricht m in b Blöcke der Länge l unterteilt: m = m1m2 … mb, mi = mi1mi2 … mil, mij {0, 1} • Verschlüsselung der Nachrichtenblöcke mit k K: ci = enc(k, mi) praktischer Einsatz: Betriebsarten • längentreue Verfahren: length(mi) = length(ci) • Anforderungen an enck: Sicherheit und Performance Kryptographie und Kryptoanalyse 104 4 Symmetrische Verfahren – Blockchiffren Sicherheitsanforderungen an enck • Diffusion und Konfusion [Claude Shannon: Communication Theory of Secrecy Systems. Bell Systems Technical Journal, 28(1949), 656-715.] • Ziel: Erschweren statistischer Angriffe • Diffusion: im Klartext enthaltene Redundanz wird im Schlüsseltext „verteilt“ • Konfusion: Beziehungen zwischen Schlüsseltexten und Schlüsseln so komplex wie möglich • Produktchiffre: Kombination von Verschlüsselungsverfahren Kryptographie und Kryptoanalyse 105 4 Symmetrische Verfahren – Blockchiffren • Produktchiffre als Kombination von Substitution ( Konfusion) und Transposition ( Diffusion) bietet Möglichkeit der effizienten Konstruktion entsprechender Verschlüsselungsfunktionen Substitutions-Permutations-Netzwerk (SP-Netzwerk) • Iterierte Blockchiffren – Verschlüsselung erfolgt in mehreren Runden – – – – c = encn(kn, encn-1(kn-1, ... enc2(k2, enc1(k1, m)) ... )) Verwendung von Rundenschlüsseln Algorithmus zur Generierung der Runden- bzw. Teilschlüssel Verschlüsselungsfunktion muss im Allgemeinen invertierbar sein Anwendung der Rundenschlüssel bei Entschlüsselung in umgekehrter Reichenfolge m = dec1(k1, dec2(k2, ... decn-1(kn-1, decn(kn, c)) ... )) Kryptographie und Kryptoanalyse 106 4 Symmetrische Verfahren – Blockchiffren Allgemeine Ansätze zur Kryptoanalyse von Blockchiffren • Unabhängig von der internen Struktur • Vollständige Schlüsselsuche – Klartext-Schlüsseltext-Angriff – Aufwand abhängig vom Schlüsselraum • Zugriff auf eine vorab berechnete Tabelle – Gewählter Klartext-Schlüsseltext-Angriff – Aufwand abhängig vom Schlüsselraum • Time-Memory-Tradeoff – Gewählter Klartext-Schlüsseltext-Angriff – Aufwand abhängig vom Schlüsselraum • Kodebuchanalyse – Klartext-Schlüsseltext-Angriff – Ziel: Rekonstruktion des Klartextes – Aufwand abhängig von Struktur und Redundanz des Klartextes Kryptographie und Kryptoanalyse 107 4 Symmetrische Verfahren – Feistel-Chiffre Feistel-Chiffre • • • • • Forschungsprogramm „Lucifer“ in den späten 60er Jahren Feistel-Chiffre 1973 von Horst Feistel veröffentlicht Permutationen und Substitutionen Iterierte Blockchiffre Struktur dieser Chiffre gehört zu den grundlegenden Konzepten der Kryptographie • Anwendung des Prinzips z.B. in DES, 3-DES, Blowfish, CAST, FEAL und Twofish Kryptographie und Kryptoanalyse 108 4 Symmetrische Verfahren – Feistel-Chiffre • Zerlegung des Nachrichtenblocks mi Al in zwei Teilblöcke: mi = (L0, R0) ci = (Ln, Rn) • Schema ist selbstinvers: Ver- und Entschlüsselung geschieht mit den gleichen Funktionen, nur Reihenfolge der Rundenschlüssel wird umgekehrt • Rundenfunktion f muss nicht bijektiv sein • Pro Runde wird jeweils nur ein Teilblock modifiziert ermöglicht effiziente Implementierung • f bestimmt kryptographische Sicherheit des Verfahrens Kryptographie und Kryptoanalyse 109 4 Symmetrische Verfahren – Feistel-Chiffre Verschlüsselung in einer Runde enc(ki, (Li-1, Ri-1)) = Ri-1, f(Ri-1, ki) Li-1 = Li, Ri Runde 1: L0 R0 f L1 k1 R1 enc(k1, (L0, R0)) = R0, f(R0, k1) L0 = L1, R1 Kryptographie und Kryptoanalyse 110 4 Symmetrische Verfahren – Feistel-Chiffre Entschlüsselung in einer Runde dec(ki, (Li, Ri)) = f(Li, ki) Ri, Li = Li-1, Ri-1 Runde 1: L1 k1 R1 f L0 R0 dec(k1, (L1, R1)) = f(L1, k1) R1, L1 = L0, R0 Kryptographie und Kryptoanalyse 111 4 Symmetrische Verfahren – Kryptographische Güte Kryptographische Güte einer Verschlüsselungsfunktion • Kryptographisch entscheidende Funktion f muss bestimmten Anforderungen genügen ( Konfusion und Diffusion) • Merkmale zur Beurteilung von f: Designkriterien • Beispiele: – – – – Vollständigkeit Avalanche Nichtlinearität keine Informationen über Outputbits ohne Wissen über Inputbits ( Korrelationsimmunität) Kryptographie und Kryptoanalyse 112 4 Symmetrische Verfahren – Kryptographische Güte Vollständigkeit Eine Funktion f: {0,1}n {0,1}m heißt vollständig, wenn jedes Bit des Outputs von jedem Bit des Inputs abhängt. Grad der Vollständigkeit k/n: im Mittel hängen k Output-Bits von den n Inputbits ab Beispiel: SBsp y1 = x1x2 x1x3 x2x3 x2 x3 1 y2 = x1x2 x1x3 x2x3 x1 x3 1 y3 = x1x2 x1x3 x2x3 x1 x2 1 kein hinreichendes Kriterium Kryptographie und Kryptoanalyse 113 4 Symmetrische Verfahren – Kryptographische Güte y1 = x1x2 x1x3 x2x3 x2 x3 1 y2 = x1x2 x1x3 x2x3 x1 x3 1 y3 = x1x2 x1x3 x2x3 x1 x2 1 Input Output x3 x2 x1 y3 y2 y1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 Kryptographie und Kryptoanalyse 6 von 8 möglichen Belegungen des Inputs werden identisch ausgegeben! 114 4 Symmetrische Verfahren – Kryptographische Güte Beispiel: Vollständigkeit der Feistel-Chiffre (f vollst.) Output- 7 6 bit j 5 c0 = m = L0, R0 4 3 2 1 0 0 12 34 56 7 Output- 7 6 bit j 5 Output- 7 6 bit j 5 Inputbit i c2 = L2, R2 4 3 2 1 0 0 12 34 56 7 4 3 2 1 0 0 12 34 56 7 Output- 7 6 bit j 5 Inputbit i Kryptographie und Kryptoanalyse c1 = L1, R1 Inputbit i c3 = L3, R3 4 3 2 1 0 0 12 34 56 7 Inputbit i 115 4 Symmetrische Verfahren – Kryptographische Güte Avalanche Eine Funktion f: {0,1}n {0,1}m besitzt dann den Avalanche-Effekt, wenn die Änderung eines Input-Bits im Mittel die Hälfte aller Output-Bits ändert. Wird durch Änderung eines Input-Bits jedes Output-Bit mit einer Wahrscheinlichkeit von 50% verändert, erfüllt f das strikte Avalanche-Kriterium. Erfüllt f das strikte Avalanche-Kriterium, so ist f stets vollständig. Kryptographie und Kryptoanalyse 116 4 Symmetrische Verfahren – Kryptographische Güte Beispiel (SBsp) m1 m2 000 000 001 010 2 2 011 2 1 010 2 1 100 101 110 1 101 110 1 4 1 1 1 1 2 1 4 4 1 2 4 1 2 4 2 Gesamtzahl der geänderten Bits Kryptographie und Kryptoanalyse 4 2 2 6 1 111 111 2 001 011 100 2 6 36 117 4 Symmetrische Verfahren – Kryptographische Güte Linearität Eine Funktion f: {0,1}n {0,1}m ist dann linear, wenn jedes Output-Bit yi linear von den Input-Bits xi abhängt: yi = aj,1 x1 + aj,2 x2 + … + aj,n xn + bj Wenn wenigstens ein Output-Bit linear von den Input-Bits abhängt, ist f partiell linear. weiteres Maß: Grad der Übereinstimmung von f mit ihrer besten linearen Approximation g Güte der Approximation: Anteil der Funktionswerte, in denen f und g übereinstimmen Kryptographie und Kryptoanalyse 118 4 Symmetrische Verfahren – Kryptographische Güte Korrelationsimmunität f(x1, x2, …, xn) boolesche Funktion in n Variablen Die Funktion f heißt dann k-korrelationsimmun, wenn man aus Kenntnis von k beliebigen Eingangswerten keine Information über den resultierenden Ausgangswert erhalten kann und umgekehrt. Kryptographie und Kryptoanalyse 119 4 Symmetrische Verfahren – Kryptographische Güte Abhängigkeitsmatrix AM • Beurteilungsmethode für die Gütekriterien Vollständigkeit, Avalanche, Nichtlinearität/partielle Nichtlinearität [W. Fumy, H. Rieß: Kryptographie: Einsatz, Entwurf und Analyse symmetrischer Kryptoverfahren. 2. akt. u. erw. Aufl., Oldenburg, 1994.] • Die AM einer Funktion f: {0,1}n {0,1}m ist eine (n x m)-Matrix, deren Einträge ai,j die Wahrscheinlichkeit angeben, dass bei einer Änderung des i-ten Eingabebits das j-te Ausgabebit komplementiert wird. • Eigenschaften von AM: – AM(f = const): Nullmatrix – AM(f: Permutation): Permutationsmatrix – AM(f) = AM(1 f) Kryptographie und Kryptoanalyse 120 4 Symmetrische Verfahren – Kryptographische Güte Eigenschaften von f (xi: Inputbits, yj: Outputbits) ai,j = 0 ai,j > 0 ai,j = 1 yj nicht von xi abhängig; f ist nicht vollständig Anzahl ai,j mit ai,j > 0: Grad der Vollständigkeit f ist vollständig j. i. ai,j {0,1} i. j. ai,j {0,1} yj ändert sich bei jeder Änderung von xi yj hängt linear von xi ab f ist partiell linear (Spalte aj binärer Vektor) f ist linear (AM binäre Matrix) 1 1 m n ai , j 0,5 m n i 1 j 1 f besitzt Avalanche-Effekt i. j.ai,j 0,5 f erfüllt striktes Avalanche-Kriterium Kryptographie und Kryptoanalyse 121 4 Symmetrische Verfahren – Kryptographische Güte Berechnung der Abhängigkeitsmatrix exakte Berechnung nur für kleine n, m möglich näherungsweise Berechnung i. j. ai,j := 0 für „hinreichend viele“ X wähle zufälligen n-Bit Vektor X für alle i von 1 bis n Bestimme Xi (unterscheidet sich von X genau im Bit i) Vi = f(X) f(Xi) ai,j := ai,j + Vi,j Division aller ai,j durch Anzahl der Vektoren X Kryptographie und Kryptoanalyse 122 4 Symmetrische Verfahren – Kryptographische Güte Beispiel (SBsp) y1 X = 000 y2 y3 x1 0 4 0,5 0 1 4 0,5 0 1 4 0,5 x2 0 1 4 0,5 0 4 0,5 0 1 4 0,5 x3 0 1 4 0,5 0 1 4 0,5 0 4 0,5 X1 = 001 X2 = 010 X3 = 100 V1 = 111 001 = 110 V2 = 111 010 = 101 V3 = 111 100 = 011 X = 001 … Kryptographie und Kryptoanalyse 123 4 Symmetrische Verfahren – Kryptographische Güte Designkriterien – Zusammenfassung • • • • Kriterien sind zwar notwendig, aber nicht hinreichend Teilweise gegenläufig Optimierung notwendig Notwendig: – Höchstmaß an Vollständigkeit, Avalanche, Nichtlinearität und Korrelationsimmunität, – Geringhaltung der Existenz linearer Faktoren der Verschlüsselungsfunktion • Gewünscht: – Gute Implementierbarkeit, Schnelligkeit, Längentreue, Minimierung der Fehlerfortpflanzungsmöglichkeiten Kryptographie und Kryptoanalyse 124 4 Symmetrische Verfahren – DES DES (Data Encryption Standard) • 1973 Ausschreibung des National Bureau of Standards (NBS) der USA für ein standardisiertes kryptographisches Verfahren • 1974 erneute Ausschreibung • 1975 Veröffentlichung der Einzelheiten des Algorithmus im Federal Register • 1976 zwei Workshops zur Evaluierung des Algorithmus • 1977 vom NBS als Standard publiziert (FIPS PUB 46) • Überprüfung der Sicherheit aller 5 Jahre • 1992 differenzielle Kryptoanalyse (Biham, Shamir) • 1994 lineare Kryptoanalyse (Matsui) • 1999 Brute-Force-Angriff (Deep Crack und weitere Rechner): 22 Stunden, 15 Minuten • 1999 FIPS 46-3: Empfehlung 3-DES • 2001 Veröffentlichung des AES (FIPS 197) • 2002 AES tritt in Kraft Kryptographie und Kryptoanalyse 125 4 Symmetrische Verfahren – DES Überblick über den Algorithmus • grundlegende Struktur: Feistel-Chiffre mit n = 16 Runden • Einteilung der Nachricht in l Blöcke der Länge 64 Bits: m = m1m2 … ml, mi {0, 1}64 c = c1c2 … cl, ci {0, 1}64 • Schlüssel der Länge 64 Bits: k {0,1}64, davon jedoch nur 56 Elemente frei wählbar Teilschlüssel ki, i = 1, …, 16 aus k erzeugt (Länge ki: 48 Bit) • Permutation vor der ersten und nach der letzten Runde (IP bzw. IP -1) (kryptographisch nicht relevant) Kryptographie und Kryptoanalyse 126 4 Symmetrische Verfahren – DES Struktur des DES mi 64 k (56 Bit wählbar) IP 64 R0 L0 Iterationsrunde 1 L1 L2 .. . L15 48 k2 R2 R15 Iterationsrunde 16 L16 64 k1 R1 Iterationsrunde 2 ci 48 .. . 48 k16 Teilschlüsselgenerierung R16 IP-1 Kryptographie und Kryptoanalyse 127 4 Symmetrische Verfahren – DES Eingangspermutation IP Folge der Klartextbits: 58 60 62 64 50 52 54 56 42 44 46 48 34 36 38 40 26 28 30 32 18 20 22 24 10 12 14 16 2 4 6 8 linke Hälfte Kryptographie und Kryptoanalyse 1 9 17 25 33 41 49 57 2 10 18 26 34 42 50 58 3 11 19 27 35 43 51 59 4 12 20 28 36 44 52 60 5 13 21 29 37 45 53 61 6 14 22 30 38 46 54 62 7 15 23 31 39 47 55 63 8 16 24 32 40 48 56 64 57 59 61 63 49 51 53 55 41 43 45 47 33 35 37 39 25 27 29 31 17 9 19 11 21 13 23 15 1 3 5 7 rechte Hälfte 128 4 Symmetrische Verfahren – DES Iterationsrunde i: Rundenfunktion f Ri-1 32 f E 48 6 S1 6 S2 4 ki 48 6 … S8 4 4 P 32 Kryptographie und Kryptoanalyse f(Ri-1,ki) = P(S(E(Ri-1) ki)) 129 4 Symmetrische Verfahren – DES Expansionsabbildung E 32 1 2 3 4 1 2 3 4 5 4 Kryptographie und Kryptoanalyse 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 5 6 7 8 5 6 7 8 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 … 9 29 30 31 32 28 29 30 31 32 1 130 4 Symmetrische Verfahren – DES Substitutionsboxen Si b5b4b3b2b1b0 S1: 6-Bit Wert vor der Substitution S2: 0 1 2 3 0 1 2 3 0 14 0 4 15 15 3 0 13 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 .. . S8: .. . 0 1 2 3 13 2 8 1 15 13 7 11 4 2 1 14 Kryptographie und Kryptoanalyse 4 8 1 7 6 15 11 1 10 9 3 14 5 0 12 7 10 3 7 4 12 5 6 11 0 14 9 2 9 12 14 2 0 6 10 13 15 3 5 8 4 10 8 13 15 12 9 0 3 5 6 11 131 4 Symmetrische Verfahren – DES Permutation P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 S1 S2 S3 S4 S5 S6 S7 S8 S1 S2 S3 S4 S5 S6 S7 S8 Kryptographie und Kryptoanalyse 132 4 Symmetrische Verfahren – DES Teilschlüsselgenerierung (Verschlüsselung) k 64 PC-1 56 28 ki C 48 28 D PC-2 Kryptographie und Kryptoanalyse 133 4 Symmetrische Verfahren – DES Schlüsselpermutation PC-1 (Permuted Choice) externer Schlüssel k: 57 58 59 60 49 50 51 52 41 42 43 44 33 25 17 9 34 26 18 10 35 27 19 11 36 1 2 3 C Kryptographie und Kryptoanalyse 1 9 17 25 33 41 49 57 2 10 18 26 34 42 50 58 3 11 19 27 35 43 51 59 4 12 20 28 36 44 52 60 5 13 21 29 37 45 53 61 6 14 22 30 38 46 54 62 7 15 23 31 39 47 55 63 8 16 24 32 40 48 56 64 Paritätsbits 63 55 47 39 31 23 15 62 54 46 38 30 22 14 61 53 45 37 29 21 13 28 20 12 7 6 5 4 D 134 4 Symmetrische Verfahren – DES Anzahl der Shifts Verschlüsselung: Links-Shifts Entschlüsselung: Rechts-Shifts Runde Anzahl Links-Shifts: Anzahl Rechts-Shifts: 1 1 0 2 1 1 3 2 2 4 2 2 5 2 2 6 2 2 7 2 2 8 2 2 11 21 16 31 33 46 24 10 7 37 48 42 1 23 27 47 44 50 5 19 20 55 49 36 9 10 11 12 13 14 15 16 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 Schlüsselauswahl: PC-2 14 15 26 41 51 34 Kryptographie und Kryptoanalyse 17 6 8 52 45 53 3 12 13 30 39 29 28 4 2 40 56 32 135 4 Symmetrische Verfahren – DES Bewertung der Schlüssel Bis auf wenige Ausnahmen liefert das Verfahren für jede Runde einen anderen Teilschlüssel. 4 schwache Schlüssel, die jeweils 16 identische Teilschlüssel erzeugen: externer Schlüssel k 01 FE 1F E0 01 FE 1F E0 01 FE 1F E0 01 FE 1F E0 01 FE 0E F1 01 FE 0E F1 01 FE 0E F1 Kryptographie und Kryptoanalyse D C 01 FE 0E F1 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F F 0 0 F F 0 0 F F 0 0 F F 0 0 F F 0 0 F F 0 0 F F 0 136 4 Symmetrische Verfahren – DES 12 semi-schwache Schlüssel, die jeweils nur 2 verschiedene Teilschlüssel erzeugen: externer Schlüssel k 01 FE 1F E0 01 E0 1F FE 01 1F E0 FE FE 01 E0 1F E0 01 FE 1F 1F 01 FE E0 01 FE 1F E0 01 E0 1F FE 01 1F E0 FE FE 01 E0 1F E0 01 FE 1F 1F 01 FE E0 01 FE 0E F1 01 F1 0E FE 01 0E F1 FE FE 01 F1 0E F1 01 FE 0E 0E 01 FE F1 01 FE 0E F1 01 F1 0E FE 01 0E F1 FE Kryptographie und Kryptoanalyse D C FE 01 F1 0E F1 01 FE 0E 0E 01 FE F1 A 5 A 5 A 5 A 5 0 0 F F A 5 A 5 A 5 A 5 0 0 F F A 5 A 5 A 5 A 5 0 0 F F A 5 A 5 A 5 A 5 0 0 F F A 5 A 5 A 5 A 5 0 0 F F A 5 A 5 A 5 A 5 0 0 F F A 5 A 5 A 5 A 5 0 0 F F A 5 5 A 0 0 F F A 5 A 5 A 5 5 A 0 0 F F A 5 A 5 A 5 5 A 0 0 F F A 5 A 5 A 5 5 A 0 0 F F A 5 A 5 A 5 5 A 0 0 F F A 5 A 5 A 5 5 A 0 0 F F A 5 A 5 A 5 5 A 0 0 F F A 5 A 5 137 4 Symmetrische Verfahren – DES Eigenschaften des DES • Vollständig: jedes Output-Bit hängt von jedem Input-Bit ab (nach ca. 5 Durchläufen), Avalanche, Nichtlinearität • Problem schwacher und semischwacher Schlüssel (einfach explizit ausschließen) • Komplement-Eigenschaft: enc(k, m) = enc(k, m) ermöglicht Einschränkung des Schlüsselraums: Etwas reduzierter Aufwand bei Angriff bei Kenntnis von zwei Klartext-Schlüsseltextpaaren (m1, c1) und (m2, c2) mit m2 = m1 Kryptographie und Kryptoanalyse 138 4 Symmetrische Verfahren – DES 3-DES • Schlüssellänge heute zu kurz • Erhöhung der Sicherheit durch mehrmalige Verschlüsselung (Kaskadenverschlüsselung) Meet-in-the-Middle-Angriff: Sicherheitsgewinn bei Doppelverschlüsselung: 1 Bit • 3-DES (Triple-DES): Verbesserung der Sicherheit durch 3-fache Anwendung • Verschiedene Varianten, häufig EDE c = enc(k1, (dec(k2, (enc(k1, m))) Kryptographie und Kryptoanalyse 139 4 Symmetrische Verfahren – Kryptoanalyse des DES Kryptoanalyse des DES • Allgemeine Angriffe auf Blockchiffren: – – – – Vollständige Schlüsselsuche Zugriff auf eine vorab berechnete Tabelle Time-Memory-Tradeoff Kodebuchanalyse • Angriffe auf DES, auch relevant für andere Blockchiffren: – Differentielle Kryptoanalyse – Lineare Kryptoanalyse Kryptographie und Kryptoanalyse 140 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Differentielle Kryptoanalyse • E. Biham and A. Shamir: Differential Cryptanalysis of DESlike Cryptosystems. Advances in Cryptology – CRYPTO '90. Springer-Verlag. 2-21. • Gewählter Klartext-Schlüsseltext Angriff • Aufwand für DES lt. Standard, 16 Runden: ca. 247 Klartextpaare bei ca. 237 Verschlüsselungsschritten • Anwendbar für iterierte Blockchiffren • Prinzip: – Verwendung von beliebigen Klartextpaaren mit bestimmten Differenzen – Analyse der Auswirkungen der Klartext-Differenzen auf die Differenzen der resultierenden Schlüsseltextpaare – Ermittlung wahrscheinlicher Schlüssel Kryptographie und Kryptoanalyse 141 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Notation (1) • Eingangs- und Ausgangspermutation haben keinen Einfluss – weggelassen • Lm, Rm: linke bzw. rechte Hälfte des Klartextes • Lc, Rc: linke bzw. rechte Hälfte des Schlüsseltextes • xi / yi: Input / Output der Rundenfunktion in Runde i • x, x*: zusammengehörige Zwischenwerte • x‘ = x x*: Differenz Klartext m = (Lm, Rm) y1 y2 f f x1 x2 k1 k2 ... y16 f x16 k16 Schlüsseltext c = (Lc, Rc) Kryptographie und Kryptoanalyse 142 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Notation (2) ki xi 48 32 f E 48 S1Ki S2Ki S3Ki … S8Ki S1Ei S2Ei S3Ei … S8Ei S1Ii S2Ii 6 S1 S8Ii 6 … S2 6 S8 4 4 4 S1Oi S2Oi S8Oi P 32 Kryptographie und Kryptoanalyse yi 143 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Einfluss der Operationen auf die XOR-Differenzen • Expansionsabbildung E: E(x) E(x*) = E(x x*) • Bitweise Addition mit Rundenschlüssel k: (x k) (x* k) = x x* • Permutation P: P(x) P(x*) = P(x x*) Klartext m = (L • Verknüpfung von Zwischenwerten (Input und Output aufeinander y f folgender Rundenfunktionen): (x y) (x* y*) = (x x*) (y y*) y m, 1 2 f Rm) k1 x1 x2 k2 ... Kryptographie und Kryptoanalyse 144 4 Symmetrische Verfahren – Differentielle Kryptoanalyse • Substitutionsboxen Si – Nichtlinear komplexe Beziehungen zwischen Eingabeund Ausgabedifferenzen Differenz: Eingabe: SiI SiI‘ = SiI SiI* SiI* 6 6 Si Si 4 Ausgabe: SiO 4 SiO* SiO‘ = SiO SiO* – 26·24 mögliche Tupel von Eingabe- und Ausgabedifferenzen – nicht alle möglichen Ausgabedifferenzen SiO‘ existieren – existierende SiO‘ sind nicht gleichwahrscheinlich Kryptographie und Kryptoanalyse 145 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Beschreibung der Differenzen – Differenzentabelle Differenzentabelle für S1, Eingabediff. S1I‘ = 1101002 = 34x S1I S1I* = S1O‘ = S1O S1O* S1I S1I‘ 0000 0001 0010 0011 … 1101 1110 1111 000000 110100 000001 . . . 110101 . . . 111110 001010 1 111111 001011 1 1 . . . Differenzenverteilung: S1: 0 1 2 3 0 1 2 14 4 13 0 15 7 4 1 14 15 12 8 0 3 1 4 8 2 Kryptographie und Kryptoanalyse . . . 8 . . . 16 . . . 6 … . . . 8 4 5 6 7 8 9 10 11 12 13 2 15 11 8 3 10 6 12 5 9 14 2 13 1 10 6 12 11 9 5 13 6 2 11 15 12 9 7 3 10 4 9 1 7 5 11 3 14 10 0 . . . 0 14 0 3 5 6 6 15 7 8 0 13 146 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Differenzenverteilungstabelle von S1 Eingabediff. S1I’ 0 1 2 3 Ausgabedifferenzen S1O’ 0 64 0 0 14 1 0 0 0 4 2 0 0 0 2 3 0 6 8 2 4 0 0 0 10 5 0 2 4 6 6 0 4 4 4 .. . 33 34 35 9 A 0 0 10 12 6 8 4 4 B 0 4 6 0 C D 0 0 10 6 12 6 2 2 E 0 2 4 2 F 0 4 2 0 .. . 4 0 2 4 8 2 6 16 4 2 6 0 10 2 8 8 0 0 4 0 0 2 4 12 6 0 14 0 0 4 2 0 6 2 0 8 4 0 0 6 8 2 0 4 14 4 6 0 4 2 2 0 0 4 4 2 8 0 0 8 12 8 6 4 4 2 4 4 2 .. . .. . 3D 3E 3F 8 0 0 0 6 7 0 4 4 2 0 0 4 8 8 8 6 2 4 2 2 2 2 2 4 6 4 0 0 4 2 8 14 4 4 4 4 S1I‘ S1O‘, z.B.: 34x 1x, 34x 2x, 34x 5x Kryptographie und Kryptoanalyse 147 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Analyse der Rundenfunktion (1) gewählt: x, x* x‘ gesucht: k f E S1K S2K S3K … S8K S1E S2E S3E … S8E S1E‘, S2E‘, …, S8E‘ S1I‘ S2I‘ S1 S2 S1O, S1O* S2O , S2O* S1O‘ S2O‘ S8I‘ … P S8 S8O , S8O* S8O‘ beobachtet: y, y* y‘ Kryptographie und Kryptoanalyse 148 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Analyse der Rundenfunktion (2) • Gewählt: Inputpaar x, x* ( x’) • Beobachtet: y, y* Outputdifferenz y’ 1. Schritt: Bestimmung von Kandidaten für die Belegung der InputVektoren der S-Box 2. Schritt: Ermittlung möglicher Schlüsselbits mit Hilfe der ermittelten Input-Vektoren • Wiederholen dieser Schritte zur weiteren Einschränkung des Schlüsselraums • Vollständige Suche über eingeschränkten Schlüsselraum Beispiel: S1E = 01x, S1E* = 35x; Kryptographie und Kryptoanalyse S1O‘ = 0Dx 149 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Mögliche Inputpaare für S1I‘ = 34x Outputdifferenzen S1O‘ Eingabepaare für S1I‘ = 34x 1 03, 37; 0F, 3B; 1E, 2A; 1F, 2B 2 04, 30; 05, 31; 0E, 3A; 11, 25; 12, 26; 14, 20; 1A, 2E; 1B, 2F 3 01, 35; 02, 36; 15, 21 4 13, 27 7 00, 34; 08, 3C; 0D, 39; 17, 23; 18, 2C; 1D, 29 8 09, 3D; 0C, 38; 19, 2D D 06, 32; 10, 24; 16, 22; 1C, 28 F 07, 33; 0A, 3E; 0B, 3F Kryptographie und Kryptoanalyse 150 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Mögliche Schlüsselbits S1K 1. Paar: S1E = 01x, S1E* = 35x S1I‘ = 34x S1O‘ = 0Dx S1I, S1I* Mögliche Schlüsselbits 06, 32 07, 33 10, 24 11, 25 16, 22 17, 23 1C, 28 1D, 29 2. Paar: S1E = 21x, S1E* = 15x S1I‘ = 34x S1O‘ = 03x S1I, S1I* Mögliche Schlüsselbits 01, 35 20, 14 02, 36 23, 17 15, 21 34, 00 Kryptographie und Kryptoanalyse 151 4 Symmetrische Verfahren – Lineare Kryptoanalyse Analyse des DES mit 3 Runden m = (Lm , Rm) Outputdifferenz der 3. Runde bestimmen: y1 L C = y 3 x2 f x1 = Rm k1 LC = y 3 Lm y 1 y 3 = Lc Lm y 1 y3* = Lc* Lm* y1* y3‘ = Lc‘ Lm‘ y1‘ Rm‘ = 0 y1‘ = 0 y2 y3 f f x2 x3 = Rc k2 k3 c = (Lc , Rc) Kryptographie und Kryptoanalyse 152 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Analyse des DES • Bei mehr als 5 Runden kann die Ausgabedifferenz der letzten Runde nicht mehr berechnet werden • Betrachtung der einzelnen S-Boxen: Inputdifferenz SiI’ liefert Outputdifferenz SiO’ mit P(Si, SiI’ SiO’ ) (Differenzenverteilungstabelle) • Analyse der Input- und Output-Differenzen der Rundenfunktion m. H. der Input- und Output-Differenzen der S-Boxen: 8 P ( f , x' y ' ) P ( Si, SiI ' SiO ' ) i 1 • Verfolgen von Differenzen und Wahrscheinlichkeiten über mehrere Runden: Charakteristik Kryptographie und Kryptoanalyse 153 4 Symmetrische Verfahren – Differentielle Kryptoanalyse n-Runden-Charakteristik (1) = (m, , c) = (1, 2, …, n) mit: i = (Ii, Oi) m = m’ = (L m , R m) c = c’ = (L c , R c) Ii = xi’, Oi = yi’ Es gilt: I1 = R m I2 = L m O1 In = R c On= L c In-1 2 i n-1: Oi = Ii-1 Ii+1 Kryptographie und Kryptoanalyse Klartext m y1 y2 f f x1 x2 k1 k2 ... y15 y16 f f x15 x16 k15 k16 Schlüsseltext c 154 4 Symmetrische Verfahren – Differentielle Kryptoanalyse n-Runden-Charakteristik (2) • Wahrscheinlichkeit pi der Runde i einer Charakteristik pi = P(Ii Oi) • Wahrscheinlichkeit p einer n-Runden-Charakteristik n p pi i 1 • Richtiges Paar bzgl. einer n-Runden-Charakteristik und eines unabhängigen Schlüssels k: – m’ = m und c’ = c – für die ersten n Runden der Berechnung gilt: xi’ = Ii ⁄ yi’ = Oi • Übrige Paare: falsche Paare Kryptographie und Kryptoanalyse 155 4 Symmetrische Verfahren – Differentielle Kryptoanalyse 1-Runden-Charakteristik mit p = 1 einziger möglicher Fall: Ii = (00 00 00 00) m = (L m, 00 00 00 00) p = 1 y1‘ = (00 00 00 00) f x1‘ = (00 00 00 00) k1 c = (L m , 00 00 00 00) Kryptographie und Kryptoanalyse 156 4 Symmetrische Verfahren – Differentielle Kryptoanalyse 1-Runden-Charakteristik mitIi ∫ 0 • Ziel: p möglichst groß – SiI’ 0 für nur eine S-Box: nur die mittleren Bits dürfen mit 1 belegt sein S1E: 32 1 2 3 4 1 2 3 4 5 SiI’ = 000100 001000 001100 = 04x 08x 0Cx – Wahrscheinlichkeit für SiI’ SiO’ maximal (S1: bei 0Cx Ex) 14 • 1-Runden-Charakteristik mit p = 64 für S1: 0Cx Ex mit Wahrscheinlichkeit 14 64 S2, …, S8: 00x 0x mit Wahrscheinlichkeit 1 Kryptographie und Kryptoanalyse 157 4 Symmetrische Verfahren – Differentielle Kryptoanalyse 14 1-Runden-Charakteristik mit p = 64 m = (L m, 60 00 00 00) p = 14 64 y1‘ = (00 80 82 00) = P(E0 00 00 00) f x1‘ = (60 00 00 00) k1 c = (L m 00 80 82 00, 60 00 00 00) P(E0 00 00 00): Kryptographie und Kryptoanalyse 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 158 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Konkatenation von n-Runden Charakteristiken a = (m,a, ,a, c,a) sei n-Runden-Charakteristik, b = (m,b, ,b, c,b) sei m-Runden-Charakteristik m,a = (L m,a, R m,a), c,a = (L c,a, R c,a) etc. a und b können verbunden werden, falls L c,a = R m,b und R c,a = L m,b = ab = (m,a, , c,b) mit = (a1, a2, …, an, b1, b2, …, bm) Kryptographie und Kryptoanalyse 159 4 Symmetrische Verfahren – Differentielle Kryptoanalyse 3-Runden-Charakteristik mit p = 14 64 2 0,05 m = (00 80 82 00 60 00 00 00) p = 14 1 y1‘ = (00 80 82 00) 64 p = 1 y2‘ = (00 00 00 00) 2 p = 14 3 y3‘ = (00 80 82 00) 64 f f f x1‘ = (60 00 00 00) x2‘ = (00 00 00 00) x3‘ = (60 00 00 00) k1 k2 k3 c = (00 80 82 00 60 00 00 00) Kryptographie und Kryptoanalyse 160 4 Symmetrische Verfahren – Differentielle Kryptoanalyse Iterative Charakteristik = (m, , c) • kann mit sich selbst konkateniert warden: L m = R c ⁄ R m = L c • erlaubt Konstruktion von n-Runden-Charakteristiken mit begrenzter Verringerung von p • besonders hilfreich: SiI’ SiO’ mit SiI’ 0 ⁄ SiO’ = 0 m = (L m,00 00 00 00) p = 1 y1‘ = (00 00 00 00) 1 p y2‘ = (00 00 00 00) 2 f f x1‘ = (00 00 00 00) x2‘ = (L m) k1 k2 c = (00 00 00 00, L m) Kryptographie und Kryptoanalyse 161 4 Symmetrische Verfahren – Differentielle Kryptoanalyse • Falsche Paare liefern nicht notwendigerweise den richtigen Teilschlüssel Betrachten der Schnittmenge i. Allg. nicht möglich • Richtiger Teilschlüssel jedoch häufiger vertreten (mit Wahrscheinlichkeit p von den richtigen Paaren geliefert, dazu kommt zufälliges Auftreten in falschen Paaren) • DES: Erschweren der differentiellen Kryptoanalyse durch entsprechende Designkriterien für die Substitutionen und Permutationen Don Coppersmith: The Data Encryption Standard and its strength against attacks. IBM Journal of Research and Development 38/3, 1994, 243-250. • Wichtiges Designkriterium: möglichst hohe Anzahl aktiver S-Boxen pro Runde Kryptographie und Kryptoanalyse 162 4 Symmetrische Verfahren – Lineare Kryptoanalyse Lineare Kryptoanalyse • Matsui, M.: Linear Cryptanalysis Method for DES Cipher. Advances in Cryptology – EUROCRYPT '93, LNCS 765, Springer-Verlag, 386-397. • Klartext-Schlüsseltext Angriff • Anwendbar für iterierte Blockchiffren • Aufwand: ca. 243 Klartextblöcke erforderlich • Prinzip: – Ziel: Approximation der Chiffrierfunktion durch eine lineare Abbildung – Suche nach Approximationsgleichungen mit möglichst hoher Güte – Untersuchung genügend vieler Klartext-Schlüsseltext-Paare liefert Schlüsselbits Kryptographie und Kryptoanalyse 163 4 Symmetrische Verfahren – Lineare Kryptoanalyse Grundlagen • Körper: Menge F2 = {0, 1}, Addition , Multiplikation · • Vektorraum: Menge F2n {(b1 , b2 ,..., bn ) | bi F2 } Addition: (b1, b2, …, bn) (c1, c2, …, cn) = (b1 c1, b2 c2, …, bn cn) Skalare Multiplikation: a · (b1, b2, …, bn) = (a · b1, a · b2, …, a · bn) • U, V Vektorräume über K; L: U V Abbildung • L linear, wenn für alle u, u1, u2 U und k K gilt: – L(u1 + u2) = L(u1) + L(u2) – L(k· u) = k· L(u) Kryptographie und Kryptoanalyse 164 4 Symmetrische Verfahren – Lineare Kryptoanalyse • Matrixdarstellung einer linearen Abbildung L : F26 F24 ; e (e1e2 e3e4 e5e6 ) F26 ; a (a1a2 a3a4 ) F24 e1 l11 l12 l13 l14 l15 l16 e2 a1 l21 l22 l23 l24 l25 l26 e3 a2 a L ( e) l l l l l l e 31 32 33 34 35 36 4 3 a l e l l l l l 4 41 42 43 44 45 46 5 e 6 l11e1 l e 21 1 l e 31 1 l e 41 1 l12 e2 l22 e2 l32 e2 l42 e2 Kryptographie und Kryptoanalyse ... l16 e6 ... l26 e6 ... l36 e6 ... l46 e6 165 4 Symmetrische Verfahren – Lineare Kryptoanalyse Vorüberlegungen zur linearen Kryptoanalyse • DES: Substitutionen sind die einzigen nicht-linearen Abbildungen • Lineare Abhängigkeit einzelner Ausgabebits einer S-Box SiO[i]? 6 gesucht: Funktionen : F2 F2 mit SiO[i] = (SiI) = l1SiI[1] l2SiI[2] … l6SiI[6] Paritätsfunktionen (alle Bits: Parität; nur Berechnung über bestimmte Bits: gewichtete Parität) • Kennzeichnung der verwendeten Bits mittels Auswahlvektor w: wTSiI Indexmenge: Angabe der verwendeten Positionen SiI[p1, p2, …] Kryptographie und Kryptoanalyse 166 4 Symmetrische Verfahren – Lineare Kryptoanalyse Untersuchung der Substitutionsboxen • Paritätsfunktionen bzgl. der Eingabe SiI nicht vorhanden • Paritätsfunktionen bzgl. Eingabe SiI und Ausgabe SiO Auswahlvektoren u = (u1u2u3u4u5u6) und v = (v1v2v3v4) T T mit u SiI = v SiO nicht vorhanden (Ausnahme u = 000000, v = 0000) • Affine Abbildungen T T Auswahlvektoren u, v, bei denen u SiI und v SiO stets unterschiedlich T T Nutzen für Analyse: u SiI = v SiO 1 nicht vorhanden Approximation notwendig Güte pA der Approximation der Funktion S: Anteil der Argumente, in denen die Funktionswerte übereinstimmen Kryptographie und Kryptoanalyse 167 4 Symmetrische Verfahren – Lineare Kryptoanalyse Beste lineare Approximation von S5O[1] Substitution Lineare Abbildung (Auswahlvektor u) S5I S5O 000000 110111 … 111110 111111 000000 0010 0 0 … 0 … 0 0 000001 1110 0 1 … 1 … 0 1 000010 1100 0 0 … 1 … 1 1 000011 1011 0 1 … 0 … 1 0 000100 0100 0 0 … 1 … 1 1 .. . .. . .. . .. . .. . .. . 111101 0101 0 1 … 0 … 0 1 111110 1110 0 0 … 0 … 1 1 111111 0011 0 1 … 1 … 1 0 32 32 … 44 … 34 34 Häufigkeit: Kryptographie und Kryptoanalyse 000001 … .. . 168 4 Symmetrische Verfahren – Lineare Kryptoanalyse Approximationsmatrix von S5 Ausw.vektor u 000000 000001 000010 000011 Auswahlvektor v 0 64 32 32 32 1 32 32 36 32 2 32 32 30 30 3 32 32 34 38 4 32 32 30 30 5 32 32 34 30 6 32 32 28 36 8 32 32 36 32 7 32 32 32 28 9 32 32 32 32 A 32 32 34 30 B 32 32 30 38 C 32 32 34 30 D 32 32 30 30 E 32 32 32 36 F 32 32 28 28 .. . .. . 001111 010000 010001 32 30 30 40 38 36 32 34 34 36 40 30 40 26 34 32 32 34 30 32 32 30 26 24 32 30 30 28 32 34 42 12 32 34 30 32 36 34 30 28 36 34 34 32 24 26 34 36 .. . .. . 111101 111110 111111 32 36 34 34 36 36 30 34 30 42 32 32 34 34 36 32 32 28 36 28 34 34 30 34 34 30 30 30 36 28 32 36 32 28 28 28 46 38 26 30 34 30 38 30 32 32 28 32 Kryptographie und Kryptoanalyse 169 4 Symmetrische Verfahren – Lineare Kryptoanalyse Bestimmung von Schlüsselbits m mit pA = 0,81: 6 k 6 S5I bzw. S5 S5O (010000)Tm (010000)Tk = (1111)Tc 1 m[2] k[2] = c[1,2,3,4] 1 4 c Umstellen nach k[2]: k[2] = m[2] c[1,2,3,4] 1 Analyse von genügend KlartextSchlüsseltext-Paaren liefert k[2] Kryptographie und Kryptoanalyse 170 4 Symmetrische Verfahren – Lineare Kryptoanalyse Analyse der DES-Rundenfunktion • • Verwendung der Approximationsfunktion Einbeziehung der Expansionsabbildung E und der Schlüsseladdition • Berücksichtigung der Permutation P 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Approximationsgleichung für Rundenfunktion Kryptographie und Kryptoanalyse 171 4 Symmetrische Verfahren – Lineare Kryptoanalyse Allgemeines Vorgehen Vorbereitung: Auswahlvektoren u, v, w bestimmen mit: T T T w k = u m v c oder T T T w k=u mv c1 Güte der Approximation pA > 0,5 1. Schritt: Untersuchung von N Klartext-Schlüsseltext-Paaren Z: Anzahl von Paaren, für die die rechte Seite der entsprechenden Gleichung 0 ist 2. Schritt: T Z > N/2: w k = 0 T Z < N/2: w k = 1 Kryptographie und Kryptoanalyse 172 4 Symmetrische Verfahren – Lineare Kryptoanalyse Analyse des DES mit 3 Runden m = (Lm , Rm) k1[26] = y 1 = L m x2 x[17] y[3,8,14,25] 1 1 1 y2 [26] k3 = x[17] y[3,8,14,25] 1 3 f x1 = Rm k1 y 3 = L c x2 f f x2 x3 = Rc k2 k3 3 c = (Lc , Rc) Kryptographie und Kryptoanalyse 173 4 Symmetrische Verfahren – AES AES (Advanced Encryption Standard) • 1997 Ausschreibung eines öffentlichen Wettbewerbs für die Einreichung eines kryptographischen Algorithmus “AES” als Nachfolger des DES durch das National Institute of Standards and Technology (NIST) der USA • Kriterien: – Sicherheit (bestmöglich, resistent gegen alle bekannten Angriffe) – Kosten (weltweit ohne Einschränkungen und Lizenzgebühren verfügbar) – Performance (effiziente Realisierbarkeit in Hard- und Software) – Algorithmische Eigenschaften (klar strukturiert, flexibel, für möglichst viele Anwendungen einsetzbar) • Einreichungsfrist bis zum 15.6.1998 • 15 Algorithmen erfüllten formale Kriterien und wurden in einer ersten Verfahrensrunde begutachtet Kryptographie und Kryptoanalyse 174 4 Symmetrische Verfahren – AES August 1999: 5 Finalisten • MARS (IBM, USA): komplexes Verfahren mit 32 Runden, aus Feistel-Chiffre abgeleitet • RC6 (Ron Rivest u.a., RSA Labs, USA): “Rons Code”, Weiterentwicklung von RC5, basiert auf FeistelNetzwerk mit 20 Runden • Rijndael (Vincent Rijmen und Joan Daemen, Belgien): SP-Netzwerk mit wahlweise 10, 12 oder 14 Runden; Weiterentwicklung von SAFER • Serpent (Ross Anderson/UK, Eli Biham/Israel, Lars Knudsen/Norwegen): SP-Netzwerk mit 32 Runden • Twofish (Bruce Schneier u.a., USA): Weiterentwicklung von Blowfish, Feistel-Algorithmus mit 16 Runden Kryptographie und Kryptoanalyse 175 4 Symmetrische Verfahren – AES Sieger des Wettbewerbs: Rijndael • Entscheidung Oktober 2000 • Begründung: Beste Kombination von Sicherheit, Leistungsfähigkeit, Effizienz und Implementierbarkeit sowohl in Software als auch in Hardware. • Publikation als Standard im Herbst 2001 (FIPS Standard „Specification for the Advanced Encryption Standard“, FIPS 197) • 2002 trat AES in Kraft • Einsatz z.B.: Verschlüsselungsstandard 802.1 für Wireless LAN bzw. für Wi-Fi WPA2, SSH, IPSec, 7-Zip, PGP Kryptographie und Kryptoanalyse 176 4 Symmetrische Verfahren – AES Überblick über den Algorithmus • Verschlüsselung von Klartextblöcken der Länge 128 Bit (vorgeschlagene Längen von 192 und 256 Bits nicht standardisiert) • Schlüssellänge wahlweise 128, 192 oder 256 Bits • Mehrere Runden, jeweils Substitutionen, Permutationen und Schlüsseladdition • Anzahl der Runden r hängt von Schlüssel- und Klartextlänge ab: Schlüssel- Blocklänge des Klartextes nb länge nk 128 Bit 192 Bit 256 Bit 128 Bit 10 12 14 192 Bit 12 12 14 256 Bit 14 14 14 Kryptographie und Kryptoanalyse 177 4 Symmetrische Verfahren – AES Struktur des AES mi k nb Iterationsrunde 1 Iterationsrunde 2 nb k0 nb k1 .. . .. . Iterationsrunde r ci k2 nb nb nk Teilschlüsselgenerierung kr nb Kryptographie und Kryptoanalyse 178 4 Symmetrische Verfahren – AES Struktur der Iterationsrunden si sr si,a sr,a SubBytes SubBytes si,b sr,b ShiftRow ShiftRow sr,c si,c MixColumn si,d kr ki si+1 Runde i, i = 1, 2, …, r-1 Kryptographie und Kryptoanalyse Runde r 179 4 Symmetrische Verfahren – AES Notation • Darstellung eines Bytes als Folge von Bits: a = {a7a6a5a4a3a2a1a0}2, ai {0,1} • Darstellung als Polynom: 7 a ai x i i 0 • Darstellung als Hexadezimalzahl Kryptographie und Kryptoanalyse 180 4 Symmetrische Verfahren – AES Darstellung der Operanden Byte-Matrizen mit 4 Zeilen und Nb (Nk) Spalten mit Nb (Nk): Blocklänge nb (Schlüssellänge nk) / 32 a0,0 a0,1 a0,2 a0,3 a0,4 a0,5 a0,6 a0,7 a1,0 a1,1 a1,2 a1,3 a1,4 a1,5 a1,6 a1,7 a2,0 a2,1 a2,2 a2,3 a2,4 a2,5 a2,6 a2,7 a3,0 a3,1 a3,2 a3,3 a3,4 a3,5 a3,6 a3,7 Schlüssel für Schlüssellänge 128 , 192 , 256 Bit Matrix (state) für Blocklänge 128 , 192 , 256 Bit k0,0 k0,1 k0,2 k0,3 k0,4 k0,5 k0,6 k0,7 k1,0 k1,1 k1,2 k1,3 k1,4 k1,5 k1,6 k1,7 k2,0 k2,1 k2,2 k2,3 k2,4 k2,5 k2,6 k2,7 k3,0 k3,1 k3,2 k3,3 k3,4 k3,5 k3,6 k3,7 Kryptographie und Kryptoanalyse 181 4 Symmetrische Verfahren – AES Mathematische Grundlagen • Alle Verschlüsselungsschritte basieren auf Operationen in endlichen Strukturen • Alle Bytes als Elemente des Körpers GF(28) interpretierbar: a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0 mod m(x) mit m(x) = x8 + x4 + x3 + x + 1 (irreduzibles Polynom) • Addition : a = {a7a6a5a4a3a2a1a0}, b = {b7b6b5b4b3b2b1b0} c = a b mit ci = ai bi • Multiplikation : c = a b = a · b mod m(x) Kryptographie und Kryptoanalyse 182 4 Symmetrische Verfahren – AES • Polynome dritten Grades mit Koeffizienten aus GF(28): Polynomring GF(28)[x]/(x4+1) a(x) = a3x3 + a2x2 + a1x + a0 mit ai GF(28) • Addition : c(x) = a(x) b(x) = (a3 b3)x3 + (a2 b2)x2 + (a1 b1)x + (a0 b0) • Multiplikation : c(x) = a(x) b(x) = a(x) · b(x) mod (x4+1) Kryptographie und Kryptoanalyse 183 4 Symmetrische Verfahren – AES c(x) = c6x6 + c5x5 + c4x4 + c3x3 + c2x2 + c1x + c0 c0 = c1 = c2 = c3 = c4 = c5 = c6 = (a0 (a1 (a2 (a3 (a3 (a3 (a3 b ) bb )) (a(a bb )) (a b ) bb )) (a(a bb )) (a(a bb )) (a b ) b ) (a b ) b ) 0 0 0 1 0 1 1 0 2 0 2 1 1 2 1 2 2 1 3 2 2 3 0 3 3 mit xi mod (x4+1) = xi mod 4: d(x) = d3x3 + d2x2 + d1x + d0 d0 = d1 = d2 = d3 = (a0 (a1 (a2 (a3 bb )) (a(a bb )) (a(a bb )) (a(a bb )) b ) (a b ) (a b ) (a b ) b ) (a b ) (a b ) (a b ) 0 3 1 2 2 1 3 0 0 1 3 2 2 3 0 1 1 0 2 3 3 0 2 1 1 2 0 3 (oftmals Matrixschreibweise) Kryptographie und Kryptoanalyse 184 4 Symmetrische Verfahren – AES Schritt 1: SubBytes • Alle Bytes einer Matrix werden unabhängig voneinander substituiert • Nichtlinearität bi,j := S8(ai,j) si,a = a0,0 a0,1 a0,2 a0,3 b0,0 b0,1 b0,2 b0,3 a1,0 a1,1 1,1 a1,2 a1,3 b1,0 b1,1 1,1 b1,2 b1,3 a2,0 a2,1 a2,2 a2,3 b2,0 b2,1 b2,2 b2,3 a3,0 a3,1 a3,2 a3,3 b3,0 b3,1 b3,2 b3,3 Kryptographie und Kryptoanalyse = si,b 185 4 Symmetrische Verfahren – AES Substitutionsbox S8(a7a6a5a4a3a2a1a0) a 7a 6a 5a 4 0 1 2 3 4 5 6 7 a 3a 2a 1a 0 0 63 CA B7 04 09 53 D0 51 1 7C 82 FD C7 83 D1 EF A3 2 77 C9 93 23 2C 00 AA 40 3 7B 7D 26 C3 1A ED FB 8F 4 F2 FA 36 18 1B 20 43 92 5 6B 59 3F 96 6E FC 4D 9D 6 6F 47 F7 05 5A B1 33 38 7 C5 F0 CC 9A A0 5B 85 F5 .. . C D E F 8 30 AD 34 07 52 6A 45 BC 9 01 D4 A5 12 3B CB F9 B6 A 67 A2 E5 80 D6 BE 02 DA B 2B AF F1 E2 B3 39 7F 21 C FE 9C 71 EB 29 4A 50 10 D D7 A4 D8 27 E3 4C 3C FF E AB 72 31 B2 2F 58 9F F3 F 76 C0 15 75 84 CF A8 D2 DD 35 1E 99 74 57 87 2D 1F B9 E9 0F 4B 86 CE B0 BD C1 55 54 8B 1D 28 BB 8A 9E DF 16 .. . BA 70 E1 8C 78 3E F8 A1 25 B5 98 89 2E 66 11 0D Kryptographie und Kryptoanalyse 1C 48 69 BF A6 03 D9 E6 B4 F6 8E 42 C6 0E 94 68 E8 61 9B 41 186 4 Symmetrische Verfahren – AES Schritt 2: ShiftRow • Zyklische Verschiebung der Zeilen nach links • Diffusion si,b = Zeile 0 1 2 3 Nb = 4 0 1 2 3 Nb = 6 0 1 2 3 Nb = 8 0 1 3 4 b0,0 b0,1 b0,2 b0,3 c0,0 c0,1 c0,2 c0,3 b1,0 b1,1 b1,2 b1,3 c1,0 c1,1 c1,2 c1,3 b2,0 b2,1 b2,2 b2,3 c2,0 c2,1 c2,2 c2,3 b3,0 b3,1 b3,2 b3,3 c3,0 c3,1 c3,2 c3,3 Kryptographie und Kryptoanalyse = si,c 187 4 Symmetrische Verfahren – AES Schritt 3: MixColumn • Operiert jeweils auf Spalten der Matrix (32-Bit Substitution) • Diffusion di := a(x) ci mod (x4+ 1) si,c = c0,0 cc0,1 0,1 c0,2 c0,3 d0,0 d d0,1 0,1 d0,2 d0,3 c1,0 cc1,1 1,1 c1,2 c1,3 d1,0 d d1,1 1,1 d1,2 d1,3 c2,0 cc2,1 2,1 c2,2 c2,3 d2,0 d d2,1 2,1 d2,2 d2,3 c3,0 cc3,1 3,1 c3,2 c3,3 d3,0 d d3,1 3,1 d3,2 d3,3 Kryptographie und Kryptoanalyse = si,d 188 4 Symmetrische Verfahren – AES di := a(x) ci mod (x4+1) a(x) = {03} x3 + {01} x2 + {01} x + {02} d0,i 02 03 d1,i 01 02 d2,i = 01 01 d3,i 03 01 d0,i d1,i d2,i d3,i 01 03 02 01 01 01 03 02 c0,i c1,i c2,i c3,i = ({02}·c0,i) ({03}·c1,i) c2,i c3,i = c0,i ({02}·c1,i) ({03}·c2,i) c3,i = c0,i c1,i ({02}·c2,i) ({03}·c3,i) = ({03}·c0,i) c1,i c2,i ({02}·c3,i) Kryptographie und Kryptoanalyse 189 4 Symmetrische Verfahren – AES Schritt 4: AddRoundKey • Macht Iterationsrunden schlüsselabhängig • Länge des Rundenschlüssels ki: nb si,d ki si+1,a d0,0 d0,1 d0,2 d0,3 k0,0 k0,1 k0,2 k0,3 a0,0 a0,1 a0,2 a0,3 d1,0 d1,1 d1,2 d1,3 k1,0 k1,1 k1,2 k1,3 a1,0 a1,1 a1,2 a1,3 d2,0 d2,1 d2,2 d2,3 k2,0 k2,1 k2,2 k2,3 d3,0 d3,1 d3,2 d3,3 k3,0 k3,1 k3,2 k3,3 Kryptographie und Kryptoanalyse = a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 190 4 Symmetrische Verfahren – AES Teilschlüsselgenerierung • Expansion des AES-Schlüssels, abhängig von nb und nk • nb bestimmt Länge der Rundenschlüssel • nb und nk bestimmen Anzahl der Runden Anzahl der Rundenschlüssel • Länge des expandierten Schlüssels in Byte = 4Nb(r+1): Schlüssel- Blocklänge des Klartextes nb länge nk 128 Bit 192 Bit 256 Bit 128 Bit 16·11 24·13 32·15 192 Bit 16·13 24·13 32·15 256 Bit 16·15 24·15 32·15 Kryptographie und Kryptoanalyse 191 4 Symmetrische Verfahren – AES Teilschlüsselgenerierung • Verschiedene Expansionsalgorithmen für Nk = 4, 6 und Nk = 8 • Expandierter Schlüssel: Folge von 4-Byte Blöcken wi w0 w1 w2 … wi … wNb*(r+1)-1 • Auswahl der Rundenschlüssel: w0 w1 w2 … wNb -1 wNb wNb+1 … k0 Kryptographie und Kryptoanalyse k1 192 4 Symmetrische Verfahren – AES Schlüsselexpansion für Nk = 4 k[0:3] w0 k[4:7] w1 k[8:11] w2 k[12:15] Rcon[1] w3 Rot SubWord w4 w5 w6 Rcon[2] w7 Rot … … Kryptographie und Kryptoanalyse … … SubWord 193 4 Symmetrische Verfahren – AES Schlüsselexpansion – Verwendete Funktionen • Rot: zyklische Verschiebung Rot([a0, a1, a2, a3]) = [a1, a2, a3, a0] • SubWord: byteweise Substitution unter Nutzung von S8 SubWord([a0, a1, a2, a3]) = [S8(a0), S8(a1), S8(a2), S8(a3)] • Rcon: Konstante für die betreffenden Runden Rcon[j = i/Nk] = [xj-1, {00}, {00}, {00}] Kryptographie und Kryptoanalyse 194 4 Symmetrische Verfahren – AES Entschlüsselung • Umgekehrte Reihenfolge, inverse Funktionen si+1 kr sr,c si -1 ShiftRow sr,b SubBytes-1 sr,a sr ki si,d MixColumn-1 si,c ShiftRow-1 si,b SubBytes-1 si,a si Runde r Runde i, i = r-1, r-2, …, 1 • Zum Schluss Addition des Rundenschlüssels k0 Kryptographie und Kryptoanalyse 195 4 Symmetrische Verfahren – AES Inverse Funktionen • ShiftRow-1: zyklische Verschiebung nach rechts • SubBytes-1: Anwendung der inversen Substitution ai,j := S8-1(bi,j) • MixColumn-1: Multiplikation mit dem multiplikativen Inversen mod (x4 + 1) a-1(x) = ({03} x3 + {01} x2 + {01} x + {02})-1 mod (x4 + 1) = {0b} x3 + {0d} x2 + {09} x + {0e} Kryptographie und Kryptoanalyse 196 4 Symmetrische Verfahren – AES Entschlüsselung in äquivalenter Reihenfolge • SubBytes(ShiftRow(si)) = ShiftRow(SubBytes(si)) und SubBytes-1(ShiftRow-1(si)) = ShiftRow-1(SubBytes-1(si)) • MixColumn(si ki) = MixColumn(si) MixColumn(ki) und MixColumn-1(si ki) = MixColumn-1(si) MixColumn-1(ki) Reihenfolge der Abarbeitung wie bei Verschlüsselung ki’ = MixColumn-1(ki), i = 1, 2, …, r-1 Kryptographie und Kryptoanalyse 197 4 Symmetrische Verfahren – AES Entschlüsselung in äquivalenter Reihenfolge • Addition des Rundenschlüssels kr si+1 s1 si,a s1,a SubBytes-1 SubBytes-1 si,b s1,b ShiftRow-1 ShiftRow-1 s1,c si,c MixColumn-1 si,d k0 ki‘ si Runde i, i = r-1, r-2, …, 1 Kryptographie und Kryptoanalyse 198 4 Symmetrische Verfahren – AES Analyse des AES • Darstellung als algebraische Formel 2001 [FeSW_01] (für nk = 128 ca. 250 Terme, für nk = 256 ca. 270 Terme) • XSL-Angriff (Extended Sparse Linearisation) [CoPi_02] (Darstellung mit Hilfe eines quadratischen Gleichungssystems; für nk = 128: 8000 Gleichungen mit 1600 Variablen) • Weitere Angriffe wie z.B. Collision attacks, Related-key attacks und Seitenkanalangriffe • Übersicht über Angriffe z.B. unter: http://www.cryptosystem.net/aes/ http://www.iaik.tugraz.at/content/research/krypto/aes/ Kryptographie und Kryptoanalyse 199 4 Symmetrische Verfahren – Betriebsarten Betriebsarten Verschlüsselung längerer Nachrichten, Authentikation Beispiele für Betriebsarten: – Verschlüsselung: • Electronic Code Book (ECB) 1981 für DES • Cipher Block Chaining (CBC) standardisiert • Cipher Feedback (CFB) (FIPS 81) • Output Feedback (OFB) • Counter Mode (CTR) – Authentikation: • Cipher-based MAC (CMAC) – Authentikation und Verschlüsselung: • Counter with CBC-MAC (CCM) • Galois/Counter Mode (GCM bzw. GMAC) Kryptographie und Kryptoanalyse 200 4 Symmetrische Verfahren – Betriebsarten • Anwendung der Betriebsarten erlaubt die Konstruktion von synchronen oder selbstsynchronisierenden „Stromchiffren“ aus Blockchiffren (zugrunde liegendes Alphabet wird dabei teilweise gewechselt) – Synchrone Stromchiffre: Verschlüsselung eines Zeichens ist abhängig von der Position bzw. von vorhergehenden Klartextoder Schlüsselzeichen – Selbstsynchronisierende Stromchiffre: Verschlüsselung ist nur von begrenzter Anzahl vorhergehender Zeichen abhängig • ECB, CBC und CFB: selbstsynchronisierende Stromchiffre • OFB, CTR: synchrone Stromchiffre Kryptographie und Kryptoanalyse 201 4 Symmetrische Verfahren – Betriebsarten • Betrachtung von Fehlerauswirkungen / Manipulationen – Zeitpunkt des Fehlers / der Manipulation • während der Übertragung (Speicherung) • während der Ver- bzw. Entschlüsselung (transient) Sender Empfänger enc – dec Art des Fehlers / der Manipulation • Additive Fehler: Verfälschung einzelner Bits („Addition eines Fehlermusters“); Blockgrenzen bleiben erhalten • Synchronisationsfehler: Hinzufügen bzw. Verlust von Blöcken / Bits (letzteres ändert die Blockgrenzen) Kryptographie und Kryptoanalyse 202 4 Symmetrische Verfahren – Betriebsarten Electronic Codebook (ECB) Verschlüsselung Entschlüsselung k mi l enc k l ci ci l dec l mi ci = enc(k, mi), 1 < i ≤ n mi = dec(k, ci), 1 < i ≤ n c = enc(k, m1) enc(k, m2) ... enc(k, mn) m = dec(k, c1) dec(k, c2) ... dec(k, cn) Kryptographie und Kryptoanalyse 203 4 Symmetrische Verfahren – Betriebsarten Electronic Codebook (ECB) – Eigenschaften • Selbstsynchronisierend (Abhängigkeit von 0 Blöcken) • Länge der verarbeiteten Einheiten: entsprechend Blockgröße der Blockchiffre (DES: l = 64 Bit) • Keine Abhängigkeiten zwischen den Blöcken – Direktzugriff auf einzelne Schlüsseltextblöcke möglich – gleiche Klartextblöcke liefern gleiche Schlüsseltextblöcke ggf. Kodebuchanalysen möglich • Fehlerauswirkungen – additive Fehler: keine Fehlerfortpflanzung – Synchronisationsfehler bzgl. ganzer Blöcke: keine Fehlerfortpflanzung gezieltes Einfügen und Entfernen von Blöcken möglich – Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft, bis Blockgrenzen erneut festgelegt (falls nicht explizit kenntlich gemacht) Kryptographie und Kryptoanalyse 204 4 Symmetrische Verfahren – Betriebsarten Cipher Block Chaining (CBC) – Verschlüsselung k mi l l ci enc 1 ci-1 IV c1 = enc(k, (m1 IV )); IV: Initialisierungsvektor ci = enc(k, (mi ci-1)), 1 < i ≤ n … l Speicher für Schlüsseltextblock ci-1 bzw. IV c = enc(k, (m1IV)) enc(k, (m2c1)) enc(k, (m3c2)) … enc(k, (mncn-1)) Kryptographie und Kryptoanalyse 205 4 Symmetrische Verfahren – Betriebsarten Cipher Block Chaining (CBC) – Entschlüsselung k ci l l dec mi ci-1 IV 1 m1 = dec(k, c1) IV mi = dec(k, ci) ci-1, 1 < i ≤ n … l Speicher für Schlüsseltextblock ci-1 bzw. IV m = dec(k, c1) IV dec(k, c2) c1 dec(k, c3) c2 … dec(k, cn ) cn-1 Kryptographie und Kryptoanalyse 206 4 Symmetrische Verfahren – Betriebsarten Cipher Block Chaining (CBC)– Eigenschaften • Selbstsynchronisierend (Abhängigkeit von 1 Block) • Länge der verarbeiteten Einheiten: entsprechend Blockgröße der Blockchiffre (DES: l = 64 Bit) • Abhängigkeiten zwischen den Blöcken – kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich – gleiche Klartextblöcke liefern unterschiedliche Schlüsseltextblöcke Kodebuchanalysen erschwert • Initialisierungsvektor IV muss Sender und Empfänger bekannt sein; muss nicht geheim sein, darf aber nicht vorhersagbar sein Kryptographie und Kryptoanalyse 207 4 Symmetrische Verfahren – Betriebsarten • Fehlerauswirkungen – Fehler während der Übertragung • additive Fehler: Fehlerfortpflanzung in den Folgeblock • Synchronisationsfehler bzgl. ganzer Blöcke: 2 Blöcke betroffen • Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft, bis Blockgrenzen erneut festgelegt – Fehler während der Verschlüsselung • ab Fehlerstelle wird ein anderer Schlüsseltext erzeugt • Entschlüsselung: nur ein Klartextblock betroffen Verfahren eignet sich zur Authentikation: Manipulationen, Einfügen und Entfernen von Blöcken erkennbar Kryptographie und Kryptoanalyse 208 4 Symmetrische Verfahren – Betriebsarten CBC zur Authentikation (CBC-MAC) k ci enc 1 ci-1 IV … l IV = 0…0 letzter Schlüsseltextblock cn mi letzter Schlüsseltextblock wird als MAC angehängt: m1 m2 m3 … mn cn Empfänger berechnet ebenfalls cn und vergleicht mit erhaltenem cn Kryptographie und Kryptoanalyse 209 4 Symmetrische Verfahren – Betriebsarten Cipher Feedback (CFB) – Verschlüsselung l r+1 r … … 1 Schieberegister A ai Inhalt zum Zeitpunkt i a1 = IV ai = LSBl-r(ai-1)|ci-1 k enc select mi r r Ausgabeblock B bi Ausgabe zum Zeitpunkt i r ci ci = mi selectr (enc(k, ai)) für l = 64, r = 8: ai = ci-8 ci-7 ci-6 … ci-2 ci-1 Kryptographie und Kryptoanalyse 210 4 Symmetrische Verfahren – Betriebsarten Cipher Feedback (CFB) – Entschlüsselung l r+1 r … … 1 Schieberegister A ai Inhalt zum Zeitpunkt i a1 = IV ai = LSBl-r(ai-1)|ci-1 k enc select ci r r r mi mi = ci selectr (enc(k, ai)) für l = 64, r = 8: ai = ci-8 ci-7 ci-6 … ci-2 ci-1 Kryptographie und Kryptoanalyse 211 4 Symmetrische Verfahren – Betriebsarten Cipher Feedback (CFB) – Eigenschaften l • Selbstsynchronisierend (Abhängigkeit von r Einheiten; l: Blockgröße der Chiffre; DES: l = 64) • Länge der verarbeiteten Einheiten: r < b, frei wählbar (z.B. 8 Bit, also byteweise Verarbeitung) • Abhängigkeiten zwischen den Blöcken – kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich – gleiche Klartextblöcke liefern unterschiedliche Schlüsseltextblöcke • Initialisierungsvektor IV muss Sender und Empfänger bekannt sein; muss nicht geheim sein, darf aber nicht vorhersagbar sein • Nur Verschlüsselungsfunktion verwendet – es entsteht immer eine symmetrische Chiffre Kryptographie und Kryptoanalyse 212 4 Symmetrische Verfahren – Betriebsarten • Fehlerauswirkungen – Fehler während der Übertragung • additive Fehler und Synchronisationsfehler bzgl. ganzer Blöcke: Fehlerfortpflanzung entsprechend der Abhängigkeiten von vorherigen Blöcken • Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft, bis Blockgrenzen erneut festgelegt; durch geeignete Wahl von r können Verschiebungen der Blockgrenzen verhindert werden – Fehler während der Verschlüsselung entsprechend CBC Verfahren eignet sich zur Authentikation (verschlüsselten letzten Block cn als MAC): Manipulationen, Einfügen und Entfernen von Blöcken erkennbar Kryptographie und Kryptoanalyse 213 4 Symmetrische Verfahren – Betriebsarten Output Feedback (OFB) – Ver-/Entschlüsselung l … 1 Eingabeblock A ai Inhalt zum Zeitpunkt i a1 = IV k enc l l mi ci ci = mi enc(k, ai) mi = ci enc(k, ai) Kryptographie und Kryptoanalyse … 1 l ci mi Anmerkung: in FIPS 81 Länge der verarbeiteten Einheiten frei wählbar 214 4 Symmetrische Verfahren – Betriebsarten Output Feedback (OFB) – Eigenschaften • Synchron • Abhängigkeit von Position der verarbeiteten Einheit – kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich – gleiche Klartextblöcke liefern unterschiedliche Schlüsseltextblöcke • Initialisierungsvektor IV muss Sender und Empfänger bekannt sein; darf bzgl. eines Schlüssels nur einmal verwendet werden • Nur Verschlüsselungsfunktion verwendet – es entsteht immer eine symmetrische Chiffre • Fehlerauswirkungen – additive Fehler: keine Fehlerfortpflanzung – anfällig gegen Synchronisationsfehler Kryptographie und Kryptoanalyse 215 4 Symmetrische Verfahren – Betriebsarten Counter Mode (CTR) – Ver-/Entschlüsselung l … 1 k enc l mi ci ci = mi enc(k, Ti) mi = ci enc(k, Ti) Kryptographie und Kryptoanalyse … Ti Zähler zum Zeitpunkt i T1 Startwert des Zählers Ti = inc(Ti - 1) 1 ci mi 216 4 Symmetrische Verfahren – Betriebsarten Counter Mode (CTR) – Eigenschaften • Synchron • Abhängigkeit von Position der verarbeiteten Einheit – gleiche Klartextblöcke liefern unterschiedliche Schlüsseltextblöcke • Direktzugriff auf einzelne Schlüsseltextblöcke möglich • Zähler muss Sender und Empfänger bekannt sein, darf bzgl. eines Schlüssels nur einmal verwendet werden • Nur Verschlüsselungsfunktion verwendet – es entsteht immer eine symmetrische Chiffre • Fehlerauswirkungen – additive Fehler: keine Fehlerfortpflanzung – anfällig gegen Synchronisationsfehler • Vorteil: Effizienz Kryptographie und Kryptoanalyse 217 4 Symmetrische Verfahren – Betriebsarten Cipher-based MAC (CMAC) • Bietet auch Sicherheit für Nachrichten beliebiger Länge • Schlüssel k1 und k2 werden mit Hilfe des geheimen Schlüssels k ermittelt (abhängig von Blocklänge) und mit letztem Nachrichtenblock XOR-verknüpft • Berechnung des MAC ansonsten wie mit CBC (IV = 0…0); Auswahl der Tlen MSBs (most significant bits) als MAC m*n ggf. aufgefüllt m2 m1 k1, falls m*n k enc k k enc … Kryptographie und Kryptoanalyse enc kompletter Block / k2 sonst cn[1:Tlen] 218 4 Symmetrische Verfahren – Betriebsarten Counter with CBC-MAC (CCM) • Vertraulichkeit und Integrität für die Nachricht (payload P) • Integrität für zusätzliche Daten (assigned data A) • Zufallszahl (nonce N; verschieden für verschiedene Paare (A,P)) • Generieren & Verschlüsseln: – MAC berechnen für P, A und N mittels CBC-MAC (IV = 0) – Verschlüsselung von N, P und MAC mittels CTR • Entschlüsseln & Prüfen: – Entschlüsselung mittels CTR N, P, MAC – Berechnung des MAC für P, A und N mittels CBC-MAC und Vergleich mit entschlüsseltem MAC Kryptographie und Kryptoanalyse 219 4 Symmetrische Verfahren – Betriebsarten Galois/Counter Mode (GCM bzw. GMAC) • Vertraulichkeit und Integrität für die Nachricht • Integrität für zusätzliche Daten • Initialisierungsvektor IV (darf nur einmal verwendet werden) • GMAC: zu verschlüsselnde Nachricht der Länge 0 • Verschlüsselung: – CTR mit spezieller inc-Funktion (nur ein Teil der Bits des Zählers werden inkrementiert) – erster Wert des Zählers von IV abgeleitet • Berechnung des MAC: – Hashfunktion GHASH: Multiplikation mit einem festen Parameter H (hash subkey) in einem endlichen Körper – H = enc(k, 0128) Kryptographie und Kryptoanalyse 220 Überblick über die Vorlesung 1. 2. 3. 4. 5. Einführung Grundlagen Klassische Verfahren Symmetrische Verfahren Asymmetrische Verfahren – – – – – Grundlagen Diffie-Hellman-Schlüsselaustausch ElGamal RSA Kryptosysteme auf Basis elliptischer Kurven Kryptographie und Kryptoanalyse 221 5 Asymmetrische Verfahren – Grundlagen Asymmetrische Verfahren • Schlüsselverteilungsproblem bei symmetrischen Systemen • Asymmetrische bzw. Public-Key-Systeme: Schlüsselpaare, bestehend aus privatem und öffentlichem Schlüssel Es darf praktisch nicht möglich sein, den privaten Schlüssel aus dem öffentlichen Schlüssel zu ermitteln. Grundlage: Trapdoor-Einwegfunktion A, B Mengen f: A B heißt Einwegfunktion, wenn gilt: f: A B leicht berechenbar für alle a A, aber f -1: B A schwierig oder nicht berechenbar für fast alle b B Trapdoor-Eigenschaft: Berechnung von f -1(b) durch Kenntnis bestimmter Zusatzparameter ebenfalls leicht berechenbar. Kryptographie und Kryptoanalyse 222 5 Asymmetrische Verfahren – Grundlagen • n = {0,1,2, …, n-1} Restklassenring modulo n • n*: multiplikative Gruppe, n* ú {a n | ggT(a,n) = 1} • Eulersche Φ-Funktion – Anzahl der zu n teilerfremden Zahlen kleiner n: Φ(n) ú |{a n | ggT(a,n) = 1}| – Ordnung der Gruppe n* (bzw. p*) ; n* ú {a n | ggT(a,n) = 1} (Anzahl der Elemente dieser Gruppe) – Φ(p)= p-1 (p prim) – n = p∏q; p, q prim, p∫q: Kryptographie und Kryptoanalyse Φ(p∏q)=(p-1)(q-1) 223 5 Asymmetrische Verfahren – Grundlagen • Erweiterter Euklidscher Algorithmus (EEA) – Bestimmung von ggT(a,b) und seiner Linearkombinationsdarstellung: EEA(a,b) ggT(a,b) = u∏ a + v∏ b – Bestimmung des multiplikativen Inversen a-1 von a in n*: EEA(a,n) ggT(a,n) = u∏ a + v∏ n = 1 u = a-1 mit aa-1 1 mod n Kryptographie und Kryptoanalyse 224 5 Asymmetrische Verfahren – Grundlagen EEA: a,b N, b > a ggT(a,b), ggT(a,b) = u∏ a + v∏ b r Initialisierung Abbruch: rk = 0 q s t -2 b 1 0 -1 a 0 1 0 b mod a b div a s-2 – q0∏ s-1 t-2 – q0∏ t-1 … … … … … i ri-2 mod ri-1 ri-2 div ri-1 si-2 – qi∏ si-1 ti-2 – qi∏ ti-1 … … … … … k-1 rk-1 qk-1 v u k 0 qk ggT(a,b) = rk-1, u = tk-1, v = sk-1 Beispiel Kryptographie und Kryptoanalyse 225 5 Asymmetrische Verfahren – Grundlagen • Erzeugung von Primzahlen 1. Wahl einer Zufallszahl p als Kandidat für die Primzahl 2. Test, ob p prim ist 3. Wiederholung von 1. und 2., bis Primzahl gefunden • Primzahltest nach Rabin-Miller für p 3 mod 4 p-1 * 2 p prim: a Zp: a 1 mod p falls p nicht prim, gilt dies für höchstens ¼ der möglichen a • Test für l zufällig gewählte Werte a durchführen – Ergebnis einmal 1: p nicht prim – Ergebnis bei allen l Versuchen = 1: p prim mit -l Wahrscheinlichkeit 1 – 4 Kryptographie und Kryptoanalyse 226 5 Asymmetrische Verfahren – Grundlagen • Kleiner Satz von Fermat Für alle x Z p* gilt: x p-1 1 mod p • Zyklische Gruppe – alle Elemente der Gruppe G lassen sich aus einem Element g G (erzeugendes Element oder Generator) durch Potenzieren von g erzeugen: G = <g> – Ordnung von Gruppenelementen a G: orderG a bzw. order a kleinste natürliche Zahl e mit a e = 1 (e > 0) zyklische Gruppe: order g = |G| (Ordnung von G) – Multiplikative Gruppe Zp* = {1, 2, …, p-1} (p prim) ist zyklisch: Zp* = <g> = {g i mod p | i = 0, 1, …, (p)-1} Kryptographie und Kryptoanalyse 227 5 Asymmetrische Verfahren – Grundlagen Z7* = {1,2,3,4,5,6} 30 = 1 31 = 30 ∏ 3 = 3 = ∏ 3 = 9 ª 2 mod 7 33 = 32 ∏ 3 = 6 34 = 33 ∏ 3 = 18 ª 4 mod 7 35 = 34 ∏ 3 = 12 ª 5 mod 7 32 36 31 = 35 ∏ 3 = 15 ª 1 mod 7 … x y = 3 mod 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 11 12 x 36 ª 1 mod 7 order 3 = 6 3 ist Generator von Z7* Kryptographie und Kryptoanalyse 228 5 Asymmetrische Verfahren – Grundlagen Z7* = {1,2,3,4,5,6} 20 = 1 21 = 20 ∏ 2 = 2 22 = 21 ∏2= 4 y = 2x mod 7 6 5 23 = 22 ∏ 2 = 8 ª 1 mod 7 24 = 23 ∏ 2 = 2 25 = 24 ∏ 2 = 4 4 26 = 25 ∏ 2 = 8 ª 1 mod 7 … 0 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 x 23 ª 1 mod 7 order 2 = 3 2 ist kein Generator von Z7* Kryptographie und Kryptoanalyse 229 5 Asymmetrische Verfahren – Grundlagen • Finden eines Generators g einer Gruppe G – Satz von Lagrange: In endlichen Gruppen G teilt die Ordnung jeder Untergruppe H die Ordnung von G: |H| | |G|. – Für a G mit order a = e und k Z gilt: ak = 1 e | k • Algorithmus zum Finden von g G e e e – Benötigt: n = |G|, Primfaktorzerlegung n p1 1 p2 2 ... pk k – Wahl eines zufälligen Elements a G – Für i = 1, 2, … k: n b a pi b = 1: a kein Generator, Wahl eines anderen Elements aus G Kryptographie und Kryptoanalyse 230 5 Asymmetrische Verfahren – Grundlagen • Problem für G = Z*p – Algorithmus benötigt Primfaktorzerlegung von |G| |Zp*| = Φ(p) = p-1 Faktorisierung schwierig Algorithmus für spezielle Primzahlen: sichere Primzahl: p = 2q + 1, q prim • Algorithmus zum Finden von g Z*p für sichere Primzahl p mit k Bit – Wahl einer Primzahl q mit k-1 Bit – Test, ob p = 2q + 1 prim – Suche nach Generator g mit vorherigem Algorithmus Kryptographie und Kryptoanalyse 231 5 Asymmetrische Verfahren – Grundlagen • Operationen in n – Addition, Subtraktion und Multiplikation leicht – Berechnung von y = a x mod n ebenfalls effizient möglich: Square-and-Multiply-Algorithmus Binärdarstellung des Exponenten: x10 = (xl-1xl-2 … x1x0)2 z = 1; for (i = l-1; i 0; i--) { z = z2; if (xi == 1) then z = z a mod n; } Kryptographie und Kryptoanalyse 232 5 Asymmetrische Verfahren – Grundlagen • Diskreter Logarithmus – Für jede Zahl y Zp* gibt es einen Exponenten x mit 0 x p-2, so dass gilt: y = g x mod p. – Der Exponent x wird diskreter Logarithmus von y zur Basis g modulo p genannt: x = logg y mod p Bestimmen von x: Diskreter-Logarithmus-Problem • kein Algorithmus zur effizienten Berechnung des diskreten Logarithmus bekannt • besser als Durchprobieren: Babystep-Giantstep-Algorithmus von Shanks, aber ebenfalls nicht praktikabel für größere Gruppen (ca. ab |G| > 2160): weniger Operationen, aber mehr Speicherplatz benötigt Kryptographie und Kryptoanalyse 233 5 Asymmetrische Verfahren – Grundlagen • Beispiel: Diskreter Logarithmus für p = 229, g = 6 y = log6 x mod 229 200 150 100 50 50 Kryptographie und Kryptoanalyse 100 150 200 x 234 5 Asymmetrische Verfahren – Grundlagen • Berechnung des diskreten Logarithmus mit dem Babystep-Giantstep-Algorithmus: x = logg y mod p , |G|: Ordnung der Gruppe Ansatz: x = qm + r, 0 § r < m Algorithmus berechnet q und r y = gx y = g qm + r (g m)q = y g -r Babystep-Liste: B = {(i, y (g i) -1 mod p), 0 § i < m} Giantstep-Liste: G = {(j, (g m) j mod p), 0 § j < m} r q Berechnung der Elemente von G, bis (g m) j als zweite Komponente eines Elements in B gefunden. Kryptographie und Kryptoanalyse 235 5 Asymmetrische Verfahren – Grundlagen • Weitere Algorithmen zur Ermittlung des diskreten Logarithmus sind z.B.: – Pollard- -Algorithmus (begrenzter Speicheraufwand) – Pohlig-Hellman-Algorithmus (falls p-1 kleine Primteiler hat) – Index-Calculus-Algorithmus (effizientester Algorithmus, für prime Restklassengruppe modulo einer Primzahl) • Möglichkeiten zur Berechnung des diskreten Logarithmus sind bei der Wahl der Parameter für entsprechende kryptographische Verfahren zu beachten! Kryptographie und Kryptoanalyse 236 5 Asymmetrische Verfahren – DH-Schlüsselaustausch Diffie-Hellman-Schlüsselaustausch Öffentlich bekannt: Primzahl p, Generator g Teilnehmer A Teilnehmer B unsicherer Kanal p, g p, g wählt xA mit 0 xA p-2 wählt xB mit 0 xB p-2 (xA geheim) (xB geheim) x berechnet yA = g A mod p yA berechnet yB = g xB mod p yB x kA,B = yB A mod p Kryptographie und Kryptoanalyse enc (kA,B , m) kA,B = yAx B mod p 237 5 Asymmetrische Verfahren – DH-Schlüsselaustausch Sicherheit des Diffie-Hellman-Schlüsselaustauschs • Diffie-Hellman-Problem: x x Geg.: p, g, yA = g A mod p und yB = g B mod p Problem: bestimme g xA xB mod p • Angreifer beobachtet yA, yB, kann er xA = logg yA mod p oder xB = logg yB mod p berechnen, kann er das Geheimnis kAB = g xA x B mod p ermitteln. • sicher gegen passive Angriffe • aber: unsicher gegen aktive Angriffe Kryptographie und Kryptoanalyse 238 5 Asymmetrische Verfahren – DH-Schlüsselaustausch Aktiver Angriff (Man-in-the-Middle-Angriff) C gibt sich gegenüber A als B und gegenüber B als A aus. Teilnehmer A Kanal Angreifer C Kanal Teilnehmer B p, g p, g p, g wählt xA wählt xC wählt xB yA = g xA mod p yA yC = g x C mod p yB = g xB mod p yC yB yC x kA,C = yCxA mod p kA,C = yA C mod p enc (kA,C , m) kB,C = yBx C mod p Kryptographie und Kryptoanalyse enc (kB,C , m) kB,C = yCxB mod p 239 5 Asymmetrische Verfahren – DH-Schlüsselaustausch Abhilfe: Vertrauenswürdige Instanz 2. Teilnehmer A p, g Vertrauenswürdige Instanz yA, yB, yC 3. wählt xA 1. yA = g xA mod p kAB = yBxA mod p enc (kA,B, m) 4. Teilnehmer B 5. p, g wählt xB yB = g x B mod p kAB = yAx B mod p Angreifer C p, g wählt xC yC = g x C mod p Kryptographie und Kryptoanalyse 240 5 Asymmetrische Verfahren – ElGamal-Kryptosystem ElGamal-Kryptosystem • Taher ElGamal: A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. CRYPTO 84, Springer-Verlag, 10–18 / IEEE Transactions on Information Theory, v. 31, n. 4, 1985, 469–472. • Basiert auf Problem des diskreten Logarithmus • Verwendung als Konzelations- und Signatursystem • Verschiedene Varianten des ElGamal-Signatursystems bekannt; Digital Signature Algorithm (DSA) basiert auf einer dieser Varianten, DSA als Digital Signature Standard (DSS) vom NIST 1994 publiziert (FIPS186) Kryptographie und Kryptoanalyse 241 5 Asymmetrische Verfahren – ElGamal-Kryptosystem ElGamal als Konzelationssystem Schlüsselgenerierung Jeder Teilnehmer • wählt Primzahl p und Generator g Z*p • wählt zufällige Zahl kd mit 0 kd p-2 • berechnet ke = g kd mod p • Öffentlicher Schlüssel: (p, g, ke) • Privater Schlüssel: kd Kryptographie und Kryptoanalyse 242 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Verschlüsselung (B A) • Verschlüsselung von Nachrichten m Zp, d.h., m {0, 1, …, p-1} (ggf. Aufteilung größerer Nachrichten) • B benötigt öffentlichen Schlüssel von A: (p, g, ke) – wählt Zufallszahl r mit 0 r p-2 – berechnet c = (c1, c2) mit c1 = g r mod p c2 = m k er mod p – sendet c = (c1, c2) an A Entschlüsselung p-1-kd kd -1 • A berechnet m = c1 c2 mod p bzw. m = (c1 ) c2 mod p Kryptographie und Kryptoanalyse 243 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Anmerkungen • Systemweit gültige Parameter p, g möglich • Benutzung des zufälligen Parameters r ergibt indeterministische Verschlüsselung Sicherheit • Sicherheit basiert auf Diffie-Hellman-Problem • Wahl sicherer Parameter - Berechnung des DL schwierig: – Länge von p – Anforderungen an p aufgrund spezieller Algorithmen • sichere Verwendung: Nutzung verschiedener Zufallszahlen r für Verschlüsselung verschiedener Nachrichten Gewählter Schlüsseltext-Klartext-Angriff möglich Angriff vereiteln Kryptographie und Kryptoanalyse 244 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Verwendung verschiedener Zufallszahlen • Verschlüsselung zweier verschiedener Nachrichten m1, m2 mit derselben Zufallszahl r ist eine der Nachrichten bekannt, kann die zweite berechnet werden: m1: c1 = (c1,1, c1,2) m2: c2 = (c2,1, c2,2) c1,2 c2,2: c1,1 = c2,1 = g r mod p c1,2 = m1 ker mod p c2,2 = m2 k er mod p -1 -1 m1 bekannt: c1,2 c2,2 = m1 m2 mod p -1 m2 = m1 c1,2 c2,2 mod p Kryptographie und Kryptoanalyse 245 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Gewählter Schlüsseltext-Klartext-Angriff • Ziel: Ermittlung von m aus beobachtetem c = (c1, c2) • Angreifer – sendet c‘ = (c1, c‘2 ) an Empfänger (c‘2 beliebig) • Empfänger – entschlüsselt: -k m‘ = c1 d c‘2 mod p • Angreifer – berechnet: – entschlüsselt: c1 d = c‘2 (m’)-1 mod p -k m = c1d c2 mod p Kryptographie und Kryptoanalyse k 246 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Vereitelung des gewählten Schlüsseltext-Klartext-Angriffs • Einfügen von Redundanz vor der Verschlüsselung, z.B. mittels einer Hashfunktion h(): m* = m, h(m) c1 = g r mod p c2 = m* ker mod p • Überprüfung der Redundanz beim Empfänger: Entschlüsselung liefert m* = m, x Nachricht wird nur ausgegeben, wenn x = h(m) • Anmerkung: Verwendung unterschiedlicher Zufallszahlen ( unterschiedliche c1) reicht nicht: c1 kann unkenntlich gemacht werden Kryptographie und Kryptoanalyse 247 5 Asymmetrische Verfahren – ElGamal-Kryptosystem ElGamal als Signatursystem Schlüsselgenerierung Wie beim Konzelationssystem – jeder Teilnehmer • wählt Primzahl p und Generator g Z*p • wählt zufällige Zahl ks mit 0 ks p-2 • berechnet kt = g k s mod p • Öffentlicher Schlüssel: (p, g, kt) • Privater Schlüssel: ks Kryptographie und Kryptoanalyse 248 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Signieren • Signieren von Nachrichten m Zp, d.h., m {0, 1, …, p-1} (ggf. Aufteilung größerer Nachrichten oder Anwendung einer Hashfunktion h(m) mit h(m) < p) • A führt die folgenden Schritte aus: – wählt Zufallszahl r Z*p-1 – berechnet r -1 -1 mit r r 1 mod (p-1) – berechnet s = (s1, s2) mit s1 = g r mod p s2 = r -1 (h(m) - ks s1) mod (p-1) – sendet m, (s1, s2) Kryptographie und Kryptoanalyse 249 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Test der Signatur • Teilnehmer benötigt öffentlichen Schlüssel von A: (p, g, kt) – testet, ob 1 s1 p-1 s1 s2 – berechnet v1 = kt s1 mod p – berechnet h(m) und v2 = g h(m) mod p – akzeptiert Signatur, wenn v1 ª v2 Sicherheit • Sicherheit basiert auf Diffie-Hellman-Problem • Wahl sicherer Parameter: p (Berechnen DL schwierig) • sichere Verwendung: Nutzung verschiedener Zufallszahlen r zum Signieren verschiedener Nachrichten Verwendung einer Hashfunktion (sonst existentielles Brechen) Kryptographie und Kryptoanalyse 250 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Verwendung verschiedener Zufallszahlen • Signatur für zwei verschiedene Nachrichten m1, m2 mit derselben Zufallszahl r berechnen Ermittlung des geheimen Signaturschlüssels ks: m1: s1 = (s1,1, s1,2) m2: s2 = (s2,1, s2,2) s1,2 s2,2: s1,1 = s2,1 = g r mod p s1,2 = r -1 (h(m1) - ks s1,1) mod (p-1) s2,2 = r -1 (h(m2) - ks s2,1) mod (p-1) s1,2 - s2,2 = r -1 (h(m1) - h(m2)) mod (p-1) falls s1,2 - s2,2 0 mod (p-1) und ggT(s1,2 - s2,2, p-1) = 1: r = (s1,2 - s2,2)-1 (h(m1) - h(m2)) mod (p-1) -1 ks = s1,1 (h(m1) – s1,2 r) mod (p-1) Kryptographie und Kryptoanalyse 251 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Existentielles Brechen • nachrichtenbezogenes Brechen für irgendeine Nachricht m • Verifikationskongruenz (ohne Hashfunktion): s1 s2 m kt s1 g mod p u v s1 = g kt mod p mit u, v Z, ggT(v, p-1) = 1 • Ersetzen: s + v s2 kt 1 m - u s2 g mod p • Exponenten = 0 ermöglicht das Bestimmen von s2 und m: linke Seite: rechte Seite: s2 = - s1 v -1 mod (p-1) m = s2 u mod (p-1) Kryptographie und Kryptoanalyse 252 5 Asymmetrische Verfahren – ElGamal-Kryptosystem • Durchführung: – Wahl von u, v Z mit ggT(v, p-1) = 1 – Berechnen von s1, s2 und m • Damit gilt: s s s s u -s kt1s12 kt 1g 2 kt 1 g m mod p (s1, s2) ist gültige Signatur für m = s2 u mod (p-1) Verwendung einer Hashfunktion: nur Signaturen für h(m) berechenbar Kryptographie und Kryptoanalyse 253 5 Asymmetrische Verfahren – ElGamal-Kryptosystem Varianten des ElGamal-Verfahrens • Effizientere Verfahren (kürzere Signaturen): – Signatursystem nach Schnorr (1989) – Digital Signature Algorithm (DSA) • 1991 vom NIST vorgeschlagen • 1994 zum Standard erklärt (DSS, FIPS 186) • Sicherheit gegen adaptive Angriffe: – Cramer, Shoup (1998) Konzelationssystem (adaptive chosen-plaintext attack) – Pointcheval, Stern (1998) Signatursystem (adaptive chosen-ciphertext attack) • Verallgemeinerung des Verfahrens – Realisierung in beliebigen zyklischen Gruppen möglich (Bedingung: DH-Problem schwer), z.B. Punktgruppe einer elliptischen Kurve über einem endlichen Körper Kryptographie und Kryptoanalyse 254 5 Asymmetrische Verfahren – ElGamal / DSA Digital Signature Algorithm (DSA) • Öffentliche Parameter – Primzahl q mit 2159 < q < 2160 – Primzahl p mit q|(p-1), 2L-1 < p < 2L, 512 § L § 1024 und L = t ÿ64 – Element g Z*p mit order g = q • Jeder Teilnehmer – wählt zufällig ks mit 0 < ks < q – berechnet kt = g ks mod p Kryptographie und Kryptoanalyse 255 5 Asymmetrische Verfahren – ElGamal / DSA Signieren • A führt die folgenden Schritte aus: – wählt Zufallszahl r Z*q – berechnet r -1 -1 mit r r 1 mod q – berechnet s = (s1, s2) mit s1 = (g r mod p) mod q s2 = r -1 (h(m) + ks s1) mod q – sendet m, (s1, s2) Kryptographie und Kryptoanalyse 256 5 Asymmetrische Verfahren – ElGamal / DSA Test der Signatur • Teilnehmer benötigt öffentlichen Schlüssel von A: (p, q, g, kt) – testet, ob 1 s1 q-1 und 1 s2 q-1 – berechnet v1 = h(m) s2-1 mod q v2 = s1 s2-1 mod q – akzeptiert Signatur, wenn (g v1 kt v2 mod p) mod q ª s1 • Berechnungen in einer Untergruppe von Z*p der Ordnung q durchgeführt kürzere Signaturen Kryptographie und Kryptoanalyse 257 5 Asymmetrische Verfahren – RSA-Kryptosystem RSA-Kryptosystem • Ronald L. Rivest, Adi Shamir, Leonhard M. Adleman: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, vol. 21, no. 2, 1978, 120-126. • Basiert auf der Faktorisierungsannahme (bislang jedoch kein Beweis) • Verwendung als Konzelations- und Signatursystem Kryptographie und Kryptoanalyse 258 5 Asymmetrische Verfahren – RSA-Kryptosystem Mathematische Grundlagen • Berechnung von n = p q leicht, aber Faktorisierung von n • • schwer Faktorisierungsalgorithmen – Spezielle Algorithmen: Anforderungen an die Faktoren von n – Allgemeine Algorithmen: hängen nur von der Größe von n ab Beispiele für spezielle Algorithmen: – Faktorisierung nach Fermat (1643) n ungerade, p, q n • Zerlegung n = x2 – y2 = (x + y)(x – y) • Start mit x • Berechnung von x2 – n, (x + 1)2 – n, (x + 2)2 – n, … n bis Ergebnis eine Quadratzahl ist (y2 = x2 – n) • Faktoren von n: p = x + y, q = x - y Kryptographie und Kryptoanalyse 259 5 Asymmetrische Verfahren – RSA-Kryptosystem – Pollard (p-1)-Methode (1974) n hat Primfaktor p, für den p-1 nur kleine Primfaktoren hat („glatt“ bzgl. einer Schranke B) • • Ermitteln eines Vielfachen k von p-1 ohne Kenntnis von p Es gilt: ak 1 mod p (k = l (p - 1), ggT(a, p) = 1) p| ak – 1 n F ak – 1 d = ggT(ak – 1, n) echter Teiler von n (1 < d < n) • Kandidaten für k: Produkte aller Primzahlpotenzen B Kryptographie und Kryptoanalyse 260 5 Asymmetrische Verfahren – RSA-Kryptosystem • Beispiele für allgemeine Algorithmen: – – Quadratisches Sieb (Pomerance, 1981) Zahlkörpersieb (Anfang der 1990er Jahre) – Grundlage beider Verfahren: • Bestimme x, y Z, so dass gilt: x2 y2 mod n xT ±y mod n • Dann gilt: n | x2 – y2 = (x – y) (x + y) n F (x – y) n F (x + y) ggT(x – y, n) und ggT(x + y, n) sind Teiler von n – • Quadratisches Sieb für Faktorisierung von Zahlen bis ca. 110 Dezimalstellen schnellster Algorithmus Weiteres zur Faktorisierung: http://www.rsa.com/rsalabs/ (RSA Factoring Challenge, bis 2007 aktualisiert) Kryptographie und Kryptoanalyse 261 5 Asymmetrische Verfahren – RSA-Kryptosystem • Spezialfall des Chinesischen Restsatzes: für n = p·q gilt a b mod n a b mod p a b mod q d.h.: n|(a-b) p|(a-b) q|(a-b) • Effiziente Berechnung von f(x) mod n mit Hilfe der Kenntnis von p, q möglich (yp = f(x) mod p, yq = f(x) mod q): y f(x) mod n y yp mod p y yq mod q Chinesischer Restealgorithmus (CRA): 1. bestimme u, v mit u·p + v·q = 1 (mittels EEA) 2. y = CRA(yp, yq) = u·p·yq + v·q·yp mod n Kryptographie und Kryptoanalyse 262 5 Asymmetrische Verfahren – RSA-Kryptosystem Schlüsselgenerierung (Konzelationssystem) Jeder Teilnehmer • wählt zufällig und unabhängig 2 verschiedene Primzahlen p, q ungefähr gleicher Länge • berechnet n = p q • wählt zufällige Zahl ke mit 1 < ke < (n), ggT(ke, (n)) = 1 -1 • berechnet kd = ke mod (n) • Öffentlicher Schlüssel: (n, ke) • Geheimer Schlüssel: (p, q, kd) • Signatursystem: ks statt kd und kt statt ke Kryptographie und Kryptoanalyse 263 5 Asymmetrische Verfahren – RSA-Kryptosystem RSA als Konzelationssystem (unsichere Variante) Teilnehmer A unsicherer Kanal Teilnehmer B Schlüsselgenerierung öffentlich: n, ke privat: p, q, kd bekannt: n, ke Verschlüsselung c c = mke mod n (m < n) Entschlüsselung m = ckd mod n Nachzuweisen: m Ζ n Kryptographie und Kryptoanalyse : m ke k d m ke kd m mod n 264 5 Asymmetrische Verfahren – RSA-Kryptosystem RSA als Signatursystem (unsichere Variante) Teilnehmer A unsicherer Kanal Teilnehmer B Schlüsselgenerierung öffentlich: n, kt privat: p, q, ks bekannt: n, kt Signieren s = mk s mod n (m < n) m, s Testen m = skt mod n? Kryptographie und Kryptoanalyse 265 5 Asymmetrische Verfahren – RSA-Kryptosystem Effiziente Berechnung der Entschlüsselung • mit Hilfe der Kenntnis von p und q • Statt Berechnung von f(x) mod n: Berechnung von yp mod p und yq mod q und CRA(yp, yq) • Einmal zu berechnen: -1 kd,p ke kd,p = ke mod (p-1) (c ) c mod p kd,q ke -1 kd,q = ke mod (q-1) (c ) c mod q • Entschlüsselung eines Schlüsseltextes c: k yp = c d,p mod p k yq = c d,q mod q m = CRA(yp, yq) Kryptographie und Kryptoanalyse 266 5 Asymmetrische Verfahren – RSA-Kryptosystem Sicherheit • Parameterwahl – Stand der Faktorisierung • Länge der verwendeten Primzahlen • Anforderungen an die Primzahlen aufgrund spezieller Algorithmen Angriff auf RSA als Konzelationssystem bei zu kleinem öffentlichen Schlüssel • sichere Verwendung Verwendung unterschiedlicher Module für unterschiedliche Nutzer (z.B. Verhinderung der „Common Modulus Attack“) Verhinderung passiver Angriffe durch indeterministische Verschlüsselung Verhinderung aktiver Angriffe durch Hinzufügen von Redundanz Kryptographie und Kryptoanalyse 267 5 Asymmetrische Verfahren – RSA-Kryptosystem Wahl des öffentlichen Schlüssels (1) • Bedingung: ggT(ke, (n)) = 1, aber frei wählbar • Aus Effizienzgründen möglichst kurz, möglichst nur Nullen Möglicher Angriff auf RSA als Konzelationssystem für ke = 3: • Ein Teilnehmer verschlüsselt Nachricht m für drei Teilnehmer mit ke = 3 und n1 n2 n3 • Angreifer beobachtet: c1 = mke mod n1 = m3 mod n1 c2 = mke mod n2 = m3 mod n2 c3 = mke mod n3 = m3 mod n3 Kryptographie und Kryptoanalyse 268 5 Asymmetrische Verfahren – RSA-Kryptosystem Wahl des öffentlichen Schlüssels (2) • m3 mod (n1n2n3) = CRA(c1, c2, c3) • m3 < n1n2n3 m3 mod (n1n2n3) = m3 • Ermittlung von m: Ziehen der dritten Wurzel • Allgemein: Angreifer müsste ke Verschlüsselungen derselben Nachricht beobachten • Oftmals vorgeschlagen: Signatursystem: Konzelationssystem: Kryptographie und Kryptoanalyse kt = 3 ke = 216+1 269 5 Asymmetrische Verfahren – RSA-Kryptosystem Passive Angriffe • RSA arbeitet deterministisch • Konzelationssystem – Angreifer: probeweise Verschlüsselung von Klartextblöcken und Vergleich mit beobachteten Schlüsseltextblöcken – Abhilfe: Hinzunahme einer Zufallszahl r indeterministische Verschlüsselung der Nachrichten („Randomisierung“, „Padding“) k c = (r, m) e mod n – PKCS #1 v 1.5 (verwendet in SSL v 3.0): 1998 von Bleichenbacher gebrochen (gewählter Schlüsseltext-KlartextAngriff) – PKCS #1 v 2.1 basierend auf OAEP (Optimal Asymmetric Encryption Padding, Bellare und Rogaway 1995) Kryptographie und Kryptoanalyse 270 5 Asymmetrische Verfahren – RSA-Kryptosystem • Signatursystem – Angreifer: Wahl einer Signatur, Berechnung der zugehörigen k Nachricht mit m = s t mod n – Existentielles Brechen damit möglich – Forderung: sinnvolle Texte dürfen sich nur mit sehr geringer Wahrscheinlichkeit ergeben – Angriff wird zusätzlich erschwert durch Verwendung einer Hashfunktion (zur Verhinderung aktiver Angriffe) Kryptographie und Kryptoanalyse 271 5 Asymmetrische Verfahren – RSA-Kryptosystem Aktive Angriffe (am Beispiel des Signatursystems) • Grundlage: RSA ist Homomorphismus bzgl. Multiplikation • Angreifer – beobachtet Signaturen s1, s2 für Nachrichten m1, m2 – berechnet Signatur s3 = s1 s2 mod n für Nachricht m3 = m1 m2 mod n (m3 jedoch nicht frei wählbar) Aktiver Angriff von Davida (selektiv) • Ziel: Signatur für gewählte Nachricht m3 • Angreifer -1 – wählt m1 und berechnet m1 mod n -1 – berechnet m2 = m3 m1 mod n – lässt m1 und m2 signieren erhält s1, s2 – berechnet s3 = s1 s2 mod n Kryptographie und Kryptoanalyse 272 5 Asymmetrische Verfahren – RSA-Kryptosystem Verbesserter aktiver Angriff von Moore (selektiv) • Ziel: Signatur für gewählte Nachricht m2 • Angreifer -1 – wählt r Zn*, berechnet r mod n k – berechnet m1 = m2 r t mod n – lässt m1 signieren erhält s1 -1 – berechnet s2 = s1 r mod n • Anwendung der Angriffe auf RSA als Konzelationssystem möglich Kryptographie und Kryptoanalyse 273 5 Asymmetrische Verfahren – RSA-Kryptosystem Anmerkung: Blinde Signaturen mit RSA • Ausnutzen des Angriffs von Moore • Empfänger der Signatur möchte Text unterschreiben lassen, ohne dass der Signierer den Text erfährt • Anwendung z.B. für digitale Zahlungssysteme • Ziel: blinde Signatur für Nachricht m2 • Teilnehmer -1 * – wählt r Zn, berechnet r mod n k k – „blendet“ m2 durch Multiplikation mit r t : m1 = m2 r t mod n – lässt m1 signieren erhält s1 -1 – berechnet s2 = s1 r mod n Kryptographie und Kryptoanalyse 274 5 Asymmetrische Verfahren – RSA-Kryptosystem Verhinderung der skizzierten Angriffe Konzelationssystem: • Hinzunahme einer Zufallszahl r • Hinzufügen von Redundanz, die nach der Entschlüsselung geprüft wird: Anwendung einer kollisionsresistenten Hashfunktion h() auf Nachricht und Zufallszahl: c = (r, m, h(r, m))kc Signatursystem: • Anwendung einer kollisionsresistenten Hashfunktion h() auf die Nachricht: s = (h(m))ks Kryptographie und Kryptoanalyse 275 5 Asymmetrische Verfahren – Rabin-Kryptosystem Rabin-Kryptosystem • Michael O. Rabin: Digitalized Signatures and Public-Key Functions as Intractable as Factorization. MIT/LCS/TR-212, MIT Laboratory for Computer Science, January 1979. • Beweisbar sicher gegen reine Schlüsseltextangriffe, aber der Beweis liefert auch einen gewählten Schlüsseltext-Angriff • Sichere Verwendung möglich, Verschlüsselung effizienter als bei RSA • Verwendung als Konzelations- und Signatursystem Kryptographie und Kryptoanalyse 276 5 Asymmetrische Verfahren – Rabin-Kryptosystem Mathematische Grundlagen Quadratische Reste modulo p (QRp): QRp = {x *p | y *p: y2 x mod p} x: quadratischer Rest, y: Wurzel aus x -y: ebenfalls Wurzel aus x • Elemente x *p , für die diese Kongruenz nicht lösbar ist, heißen quadratische Nichtreste modulo p • Für Primzahlen ∗ 2 gibt es genau 1 1 2 4 Kryptographie und Kryptoanalyse … … quadratische Reste: 1 1 2 2 1 2 1 2 … -2 -1 … 4 1 277 5 Asymmetrische Verfahren – Rabin-Kryptosystem • Entscheidung, ob eine Zahl ein quadratischer Rest ist, liefert das Euler-Kriterium: ∈ QR , falls ≡ 1mod (effizient berechenbar m.H. der Square-and-Multiply-Methode) • Wurzelziehen für p 3 mod 4: y z p 1 4 mod p (für p 1 mod 4 gibt es keine Lösungsformel, aber einen effizienten Algorithmus) Kryptographie und Kryptoanalyse 278 5 Asymmetrische Verfahren – Rabin-Kryptosystem Quadratische Reste modulo · , (QRn) • Laut Chinesischem Restsatz gilt: y2 x mod n y2 x mod p y2 x mod q • Lösbarkeit der quadratischen Kongruenzen modulo p und modulo q mittels Euler-Kriterium überprüfen • Wurzeln modulo p ( • CRA( CRA CRA CRA CRA , ) und modulo q ( ) bestimmen ) liefert die vier Wurzeln modulo n: , , , , mit mit mit mit Kryptographie und Kryptoanalyse ≡ ≡ ≡ ≡ mod mod mod mod und und und und ≡ ≡ ≡ ≡ mod mod mod mod 279 5 Asymmetrische Verfahren – Rabin-Kryptosystem Schlüsselgenerierung Jeder Teilnehmer • wählt zufällig und unabhängig 2 verschiedene Primzahlen p, q mit ≡ ≡ 3mod4 (vereinfacht die Entschlüsselung) • berechnet n = p q • Öffentlicher Schlüssel: n • Geheimer Schlüssel: p, q Verschlüsselung • 0, 1, … , : mod Entschlüsselung • Empfänger bestimmt die vier Quadratwurzeln aus c • Nachteil: unklar, welche Wurzel die Nachricht ist Kryptographie und Kryptoanalyse 280 5 Asymmetrische Verfahren – Rabin-Kryptosystem Sicherheit • Leicht zu zeigen: Wer faktorisieren kann, kann das RabinKryptosystem brechen. • Zu zeigen: Wer das Rabin-Kryptosystem brechen kann, kann faktorisieren. Annahme: Es gibt einen Algorithmus R, der das Rabin-Kryptosystem bricht R liefert zu jedem c eine Quadratwurzel m R c . Angreifer: • wählt ∈ • berechnet • • ≡ ≢ mod und m‘ R c : neues m wählen, Angriff wiederholen : fallsggT , 1,liefert der ggT p oder q nach einem Durchlauf n mit Wahrscheinlichkeit ½ faktorisiert beweisbar sicher gegen diesen Angriff Kryptographie und Kryptoanalyse 281 5 Asymmetrische Verfahren – Rabin-Kryptosystem Begründung für Möglichkeit der Faktorisierung • tatsächliche Nachricht m ist eine der vier Wurzeln CRA( , ) • berechnetes m‘ R c erfüllt eine der folgenden Bedingungen: (1) (2) (3) (4) ≡ ≡ ≡ ≡ mod mod mod mod ∧ ∧ ∧ ∧ ≡ ≡ ≡ ≡ mod mod mod mod • damit gilt: (1) (2) (3) (4) | | | | ∧ ∧ | ∧ | ∧ | Kryptographie und Kryptoanalyse ⇔ ⇒ ggT ⇒ ggT ⇒ ggT ⇒ ggT , , , , p q 1 282 5 Asymmetrische Verfahren – Rabin-Kryptosystem Genügt diese beweisbare Sicherheit? • Betrachtet wurde nur ein passiver Angriff • Aus dem Beweis lässt sich jedoch der folgende gewählte Schlüsseltext-Angriff herleiten: Angreifer: • wählt ∈ • berechnet mod • lässt sich entschlüsseln Kann mit Wahrscheinlichkeit ½ faktorisieren! Einführen von Redundanz (SAEP) verhindert diesen aktiven Angriff und erlaubt die Bestimmung der tatsächlichen Nachricht unter den 4 Wurzeln Kryptographie und Kryptoanalyse 283 5 Asymmetrische Verfahren – Rabin-Kryptosystem Sichere Verwendung des Rabin-Kryptosystems • Dan Boneh: Simplified OAEP for the RSA and Rabin Functions. CRYPTO 2001, Springer, LNCS 2139, pp. 275-291, 2001. • SAEP: Rabin, SAEP+: Rabin, RSA • Verfahren beschreiben das Hinzufügen von Redundanz vor der Verschlüsselung (Padding) • H, G: Hashfunktionen • Effizienz: Padding im Vergleich zu den kryptographischen Operationen vernachlässigbar Abbildung aus [Bone_01] Kryptographie und Kryptoanalyse 284 5 Asymmetrische Verfahren – ECC Kryptosysteme auf Basis elliptischer Kurven • Elliptic Curve Cryptography (ECC) • V. Miller: Use of Elliptic Curves in Cryptography. Crypto ‘85, Springer, LNCS 218, 417-426, 1985. • N. Koblitz: Elliptic Curve Cryptosystems. Mathematics of Computation, 48, 203-209, 1987. • Grundlage: Auf elliptischen Kurven können (additive) abelsche Gruppen definiert werden, in denen das diskrete Logarithmus Problem (elliptic curve discrete logarithm problem, ECDLP) sehr schwer zu lösen ist (vermutlich schwerer als in multiplikativen Gruppen von Körpern gleicher Größe). Kryptographie und Kryptoanalyse 285 5 Asymmetrische Verfahren – ECC Elliptische Kurven über • Eine elliptische Kurve über den reellen Zahlen ist die Menge aller Punkte x , die eine kubische Gleichung der Form y2 = x3 + ax + b mit a, b erfüllen sowie der „Punkt im Unendlichen“ O. • Bedeutung für Kryptographie: nicht-singuläre elliptische Kurven Nullstellen des Polynoms dürfen nicht zusammenfallen Bedingung: Diskriminante 0, d.h.: 4a3 + 27b2 0 Kryptographie und Kryptoanalyse 286 5 Asymmetrische Verfahren – ECC Beispiele für elliptische Kurven über den reellen Zahlen (1) y2 = x3 - 7x + 1 y2 = x3 - 8x + 10 Diskriminante: 4 (-7)3 + 27 12 = -1345 Kryptographie und Kryptoanalyse 4 (-8)3 + 27 102 = 652 287 5 Asymmetrische Verfahren – ECC Beispiele für elliptische Kurven über den reellen Zahlen (2) y2 = x3 - 3x + 2 y2 = x 3 Diskriminante: 4 (-3)3 + 27 22 = 0 Kryptographie und Kryptoanalyse 4 (0)3 + 27 02 = 0 288 5 Asymmetrische Verfahren – ECC Definition einer (additiven) abelschen Gruppe • Menge der Punkte, welche die Gleichung erfüllen sowie „Punkt im Unendlichen“ O als neutrales Element • Operation „+“ auf dieser Menge: Addition von Punkten E sei eine elliptische Kurve; Punkte P, Q, R E Folgende Axiome gelten: Abgeschlossenheit: Inverses Element : P+Q=R (P + Q) + R = P + (Q + R) P+O=O+P=P P + (-P) = O Kommutativität: P+R=R+P Assoziativität: Neutrales Element: Kryptographie und Kryptoanalyse 289 5 Asymmetrische Verfahren – ECC Punktaddition R = P + Q mit Q -P R‘ Q P y2 = x3 - 7x + 0,5 R=P+Q • Gerade durch P und Q legen • Schnittpunkt der Geraden mit der Kurve ergibt R‘ • Spiegelung von R‘ an der x-Achse ergibt R = P + Q Kryptographie und Kryptoanalyse 290 5 Asymmetrische Verfahren – ECC Punktaddition R = P + Q mit Q = -P P R = P + -P = O -P y2 = x3 - 7x + 0,5 • Gerade durch P und –P: Parallele zur y-Achse • Kein weiterer Schnittpunkt mit der Kurve • Als Schnittpunkt definiert: O Kryptographie und Kryptoanalyse 291 5 Asymmetrische Verfahren – ECC Punktaddition R = P + P = 2 P mit yP ∫ 0 P R‘ R = 2P y2 = x3 - 8x + 10 • Tangente im Punkt P • Schnittpunkt der Tangente mit der Kurve ergibt R‘ • Spiegelung von R‘ an der x-Achse ergibt R = 2 P Kryptographie und Kryptoanalyse 292 5 Asymmetrische Verfahren – ECC Punktaddition R = P + P = 2 P mit yP = 0 R=2P=P+-P=O P y2 = x3 - 8x + 10 • Tangente im Punkt P: Parallele zur y-Achse • Kein Schnittpunkt der Tangente mit der Kurve • Sonderfall von R = P + -P: R = 2 P = P + -P = O Kryptographie und Kryptoanalyse 293 5 Asymmetrische Verfahren – ECC Berechnung der Koordinaten des Punktes R = (xR, yR) P + Q = R mit P = (xP, yP), Q = (xQ, yQ); P Q • Anstieg s der Geraden durch P und Q: s = (yQ – yP)/(xQ – xP) xR = s 2 – xP – xQ yR = - yP + s(xP – xR) P + P = 2 P = R mit P = (xP, yP), yP 0 • Anstieg s der Tangente am Punkt P : 2 s = (3xP + a)/(2yP) xR = s2 – 2xP yR = - yP + s(xP – xR) Kryptographie und Kryptoanalyse 294 5 Asymmetrische Verfahren – ECC Elliptische Kurven über endlichen Körpern • Für Kryptographie relevant • Möglichkeiten: GF(p) oder GF(2m) E(p; a, b): y2 = x3 + ax + b mod p; a, b p, p > 3 • Menge aller Punkte, die diese Gleichung erfüllen, sowie O • Rechenoperationen äquivalent (nun jedoch mod p) additive abelsche Gruppe • Bedingung wiederum: Nullstellen dürfen nicht zusammenfallen (4a3 + 27b2 mod p 0) Kryptographie und Kryptoanalyse 295 5 Asymmetrische Verfahren – ECC Punkte der elliptischen Kurve E(p; a, b) • Quadratische Reste QR: QRp = {x *p | y p*: y2 x mod p} x: quadratischer Rest, y: Wurzel aus x -y: ebenfalls Wurzel aus x • Ermitteln der Punkte von E(p; a, b): Berechnung von z = x3 + ax + b mod p für x p z = 0: (x,0) ist ein Punkt von E(p; a, b) z 0: Prüfen, ob es sich um einen quadratischen Rest handelt z QRp z = y2 Wurzelziehen (x,y) und (x, -y) sind Punkte von E(p; a, b) z – QRp keine Punkte von E(p; a, b) gefunden Kryptographie und Kryptoanalyse 296 5 Asymmetrische Verfahren – ECC Beispiel: y2 = x3 + x + 6 mod 11 Diskriminante: 4 13 + 27 62 8 mod 11 0 x z x3 x 6mod11 mod mod 0 6 ‐1 1 8 ‐1 2 5 1 4,7 3 3 1 5,6 4 8 ‐1 5 4 1 6 8 ‐1 7 4 1 2,9 8 9 1 3,8 9 7 ‐1 10 4 1 Kryptographie und Kryptoanalyse 2,9 Punkte dieser elliptischen Kurve: {(2,4),(2,7), (3,5),(3,6), (5,2), (5,9), (7,2),(7,9), (8,3),(8,8), (10,2),(10,9), O} 2,9 297 5 Asymmetrische Verfahren – ECC Beispiel: y2 = x3 + x + 6 mod 11 • Punkte dieser elliptischen Kurve: {(2,4), (2,7), (3,5), (3,6), (5,2), (5,9), (7,2), (7,9), (8,3), (8,8), (10,2), (10,9), O} y x Kryptographie und Kryptoanalyse 298 5 Asymmetrische Verfahren – ECC Operationen auf elliptischen Kurven E(p; a, b) • Punktaddition, Punktverdopplung; nun mod p • Berechnung des Vielfachen eines Punktes R = c P: Double-and-(Add or Subtract)-Algorithmus Darstellung des Faktors: c R = O; l 1 i c 2 i , ci {-1, 0, 1} i 0 for (i = l-1; i 0; i--) { R = 2 R; if (ci == 1) then R = R + P mod p; else if (ci == -1) then R = R - P mod p; } Kryptographie und Kryptoanalyse 299 5 Asymmetrische Verfahren – ECC • Effizienzverbesserung durch Darstellung des Exponenten in nichtadjazenter Form (NAF) es gibt keine zwei aufeinanderfolgenden Stellen 0 • Überführen einer Binärdarstellung in NAF: von rechts beginnend ersetzen (0, 1, 1, …, 1, 1) (1, 0, 0, …, 0, -1) • Darstellung in NAF enthält weniger Einsen weniger Additionen erforderlich Kryptographie und Kryptoanalyse 300 5 Asymmetrische Verfahren – ECC Problem des diskreten Logarithmus auf elliptischen Kurven • Durch einen Punkt P mit Ordnung n erzeugte additive zyklische Untergruppe von E(p; a, b): P = {O, P, 2P, 3P, …, (n-1)P} • Ordnung eines Punktes: order P = n; kleinste natürliche Zahl n mit n P = O Gegeben seien ECDLP E über GF(p), – ein Punkt P E(p; a, b) sowie – ein Punkt Q P. ECDLP: Bestimmung von d mit Q = dP. – eine elliptische Kurve Kryptographie und Kryptoanalyse 301 5 Asymmetrische Verfahren – ECC Parameter für ECC • Öffentlich bekannte Parameter: Primzahl p, Kurve E(p; a, b), Punkt P und Ordnung n von P • Geheimer Schlüssel: kd mit 1 kd < n • Öffentlicher Schlüssel: Q = kd P (= ke) • Relevant bzgl. Sicherheit: Ordnung |E(p; a, b)| der elliptischen Kurven (Punktanzahl) sowie Ordnung zufällig gewählter Punkte |E(p; a, b)| [1, 2p + 1] • Theorem von Hasse: p + 1 – 2 ◊p |E(p; a, b)| p + 1 + 2◊p (Hasse-Intervall) • Klassen schwacher Kurven vermeiden Kryptographie und Kryptoanalyse 302 5 Asymmetrische Verfahren – ECC ECDH: Protokoll für Schlüsselaustausch • Basiert auf Diffie-Hellman-Schlüsselaustausch • Öffentlich bekannte Parameter: Primzahl p, Kurve E(p; a, b), Punkt P, order P = n Teilnehmer A unsicherer Kanal p, E(p; a, b), P, n wählt xA mit 1 xA n-1 (xA geheim) berechnet QA = xA P mod p Teilnehmer B p, E(p; a, b), P, n wählt xB mit 1 xB n-1 (xB geheim) QA QB = xB P mod p QB kA,B = xA QB mod p Kryptographie und Kryptoanalyse enc(kA,B, m) kA,B = xB QA mod p 303 5 Asymmetrische Verfahren – ECC ElGamal Verschlüsselung mit elliptischen Kurven Schlüsselgenerierung • Als öffentliche Parameter gegeben: p, E(p; a, b) über p, P E(p; a, b), order P = n • Jeder Teilnehmer – wählt als seinen geheimen Dechiffrierschlüssel zufällige Zahl kd mit 1 kd n-1 – berechnet als öffentlichen Schlüssel (ke) einen Punkt Q auf E(p; a, b) mit Q = kd P mod p Kryptographie und Kryptoanalyse 304 5 Asymmetrische Verfahren – ECC Verschlüsselung der Nachricht m (B A) • B kennt öffentliche Parameter und Schlüssel Q von A – stellt m als Punkt M E(p; a, b) dar – wählt Zufallszahl r mit 1 r n-1 – berechnet c1 = r P mod p c2 = M + r Q mod p – sendet c = (c1, c2) an A Entschlüsselung • A berechnet M = c2 – kd c1 mod p • ermittelt m aus M • Nachricht muss als Punkt der elliptischen Kurve dargestellt werden • Expansionsfaktor ~4 Kryptographie und Kryptoanalyse 305 5 Asymmetrische Verfahren – ECC Relevanz von ECC • Vorteil: geringere Schlüssellängen im Vergleich zu anderen kryptographischen Systemen • Interessant für Einsatz in Umgebungen mit begrenzter Kapazität (Chipkarten, zusätzlich Punkt(de)kompression) • Alternative zu RSA • In verschiedenen Standards berücksichtigt, z.B. – – – – ANSI X9.62, FIPS 186-2, IEEE 1363-2000, ISO/IEC 15946-2 • Beispiele: – ECDSA (Elliptic Curve Digital Signature Algorithm) – ECIES (Elliptic Curve Integrated Encryption Scheme) Kryptographie und Kryptoanalyse 306 5 Asymmetrische Verfahren – ECC Reduktion des Speicherbedarfs für Punkte E(p; a,b): y2 = x3 + ax + b mod p (x,y) œ E, y2 ª 0 mod p: (x,y1), (x,y2) œ E, y2 ª - y1 mod p • Punkt-Kompression PK(x,y) E(p; a,b) \ {O} Zp μ Z2 PK(x,y) = (x, y mod 2) • Punkt-Dekompression PD(x,i) z = x3 + ax + b mod p y = ◊ z mod p if (y ª i mod 2) then PD(x,i) = (x,y) else PD(x,i) = (x,-y) Kryptographie und Kryptoanalyse 307 5 Asymmetrische Verfahren – ECC ECIES (vereinfacht, nur Verschlüsselung) • Öffentlich bekannte Parameter: Primzahl p, Kurve E(p; a, b), Punkt P und Ordnung n von P • Geheimer Schlüssel: kd mit 1 kd < n • Öffentlicher Schlüssel: Q = kd P • Verschlüsselung von m œ Zp* – Sender wählt Zufallszahl r mit 1 r n-1 – berechnet c1 = PK(r P mod p) c2 = m x0 mod p mit (x0, y0) = r Q mod p, x0 ∫0 • Entschlüsselung – PD(c1) = r P mod p – (x0, y0) = kd r P mod p – m = c2 x0-1 mod p Kryptographie und Kryptoanalyse 308