Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6 $Id: bsv.ltx,v 1.40 2007/05/09 17:12:24 bm Exp $ Beweisbar sichere Verschlüsselung 6.1 Semantische Sicherheit Sicherheit von Verschlüsselungsschemen haben wir beschrieben durch Real-or-Random -, Left-or-Right - und Find-then-Guess -Angriffsspiele Sicher für RoR-OTCPA, LoR-OTCPA, RoR-CPA, LoR-CPA, FtG-CPA, wenn der Vorteil für jeden denkbaren Angreifer klein bleibt Anscheinend brauchbare Sicherheitsbegriffe sehen aber doch willkürlich aus Was sollten wir von sicherer Verschlüsselung eigentlich verlangen...?
Beweisbar sichere Verschlüsselung 6.2 Semantische Sicherheit (Forts.) Sichere Verschlüsselung intuitiv: Dem Ciphertext soll nichts über den Plaintext anzusehen sein (außer der Länge) Formalisierung als semantische Sicherheit Wir werden sehen: Auch das ist äquivalent zu den schon bekannten Begriffen! Aber schwerer zu handhaben: Gut vor allem für zusätzliches Verständnis, nicht zum Anwenden bei Sicherheitsbeweisen! In der Literatur im Detail große Unterschiede bei der Formalisierung der semantischen Sicherheit Hier nur ein Ansatz als Einblick (ohne die letzten Details) Beweisbar sichere Verschlüsselung 6.3 Semantische Sicherheit (Forts.) Angreifer und Vorteil auch hier, aber etwas anders als bisher! Bisher: Vorteil eines Angreifers Hier: Vorteil betrachtet Angreifer mit Simulator zusammen; sicher, wenn es zu jedem Angreifer einen Simulator gibt, so dass der Vorteil gering ist Vorteil soll hier beschreiben, was der Angreifer dem Ciphertext ansehen kann Simulator arbeitet ähnlich wie der Angreifer aber ohne Ciphertext! Idee: Wenn ein solcher Simulator den Angreifer gut nachbilden kann, konnte der Angreifer dem Ciphertext nichts Brauchbares ansehen
Beweisbar sichere Verschlüsselung 6.4 Semantische Sicherheit für Einmalverschlüsselung Definition hier für Einmalverschlüsselung: Sem-OTCPA (semantic security under one-time chosen plaintext attack) Angreifer A ist wieder ein probabilistischer Algorithmus mit Zugriff auf ein Orakel C( )... das ist eine Art Verschlüsselungsorakel, wieder mit einem geheimen Schlüssel K $ K, aber etwas anders als bisher! A übergibt dem Orakel C( ) die Beschreibung einer Plaintext-Verteilung als probabilistischen Algorithmus ( Programm ) M, das Orakel lässt m $ M laufen und verschlüsselt m: c $ E K (m), und c geht als Orakelantwort zurück an A Beweisbar sichere Verschlüsselung 6.5 Semantische Sicherheit für Einmalverschlüsselung (Forts.) A übergibt dem Orakel C( ) die Beschreibung einer Plaintext-Verteilung als probabilistischen Algorithmus ( Programm ) M, das Orakel lässt m $ M laufen und verschlüsselt m: c $ E K (m), und c geht als Orakelantwort zurück an A Einschränkung dabei: Alle Ausgaben von M müssen die gleiche Länge haben (denn nur für gleiche Längen erwarten wir sichere Verschlüsselung) A versucht sozusagen, dem Ciphertext c etwas über m anzusehen Ausgaben von A: eine Funktionsbeschreibung f und ein Wert y Test am Ende: Gilt? Soweit noch keine Aussage über Sicherheit möglich! A kann M und f so wählen, dass sich f(m) trivial vorhersagen lässt Deshalb kommt der Simulator S ins Spiel...
Beweisbar sichere Verschlüsselung 6.6 Semantische Sicherheit für Einmalverschlüsselung (Forts.) Simulator S ist wie A ein probabilistischer Algorithmus, soll A simulieren ohne Zugriff auf c! Dafür Orakel-Variante C( ): nimmt M entgegen und legt fest m $ M, gibt aber nichts zurück (c bleibt unbekannt) S ist gültiger Simulator für A, wenn seine Anfrage M an C( ) die gleiche Verteilung hat wie die Anfrage M an C( ) bei A und auch f die gleiche Verteilung hat wie bei A Das Verschlüsselungsschema (K, E, D) heißt semantisch sicher (unter OTCPA = one-time chosen plaintext attack), wenn es zu jedem Angreifer A einen gültigen Simulator S gibt, so dass der Vorteil (K,E,D),A,S = Pr $ A C( ) [ ] [ ] Pr $ S C( ) verschwindend gering ist! (Darin ist m der von C( ) bzw. C( ) gewählte Plaintext wie oben beschrieben.) Beweisbar sichere Verschlüsselung 6.7 Semantische Sicherheit für Einmalverschlüsselung (Forts.) Das Verschlüsselungsschema (K, E, D) heißt semantisch sicher (unter OTCPA = one-time chosen plaintext attack), wenn es zu jedem Angreifer A einen gültigen Simulator S gibt, so dass der Vorteil i h i (K,E,D),A,S hf(m) = Pr A $ = y Pr C( ) $ S C( ) verschwindend gering ist Das bedeutet (wie gewünscht): A kann nichts Konkretes sagen über den unbekannten Plaintext m hinter der Orakelantwort C( ); denn alles, was A weiß, weiß S schon ohne die Orakelantwort!
Beweisbar sichere Verschlüsselung 6.8 Sem-OTCPA und LoR-OTCPA Wir wollen zeigen, dass unsere bisherigen Sicherheitsbegriffe äquivalent sind zu semantischer Sicherheit. ( Zusätzliche Gewissheit, dass wir bisher schon die richtigen Sicherheitsbegriffe verwendet haben.) Also zeigen wir: Sem-OTCPA-Sicherheit impliziert LoR-OTCPA-Sicherheit oder gleichbedeutend: LoR-OTCPA-Unsicherheit impliziert Sem-OTCPA-Unsicherheit Und: LoR-OTCPA-Sicherheit impliziert Sem-OTCPA-Sicherheit oder gleichbedeutend: Sem-OTCPA-Unsicherheit impliziert LoR-OTCPA-Unsicherheit Beweisbar sichere Verschlüsselung 6.9 1. Ziel: LoR-OTCPA-Unsicherheit impliziert Sem-OTCPA-Unsicherheit Sei (erfolgreicher) LoR-OTCPA-Angreifer A gegeben Wir konstruieren einen (erfolgreichen) Sem-OTCPA-Angreifer B, also einen Angreifer, der sich nicht gut simulieren lässt Idee der Konstruktion: Beschreibe den LoR-Angriff mit den Mitteln, die das Modell der semantischen Sicherheit bietet Annahme: Wenn A eine Anfrage (m 1,m 0 ) an sein LoR-Orakel stellt, sei stets m 1 m 0 (andere Anfragen sind für A nutzlos könnte irgendetwas statt dessen fragen)
Beweisbar sichere Verschlüsselung 6.10 Sei (erfolgreicher) LoR-OTCPA-Angreifer A gegeben. Wir konstruieren einen (erfolgreichen) Sem-OTCPA-Angreifer B, also einen Angreifer, der sich nicht gut simulieren lässt Wenn A eine Anfrage (m 1,m 0 ) an sein LoR-Orakel stellt, lass B in M die Gleichverteilung auf {m 1,m 0 } beschreiben... und lass B die Funktion f so definieren, dass f(m) = 1 für m = m 1 und f(m) = 0 sonst... und lass B als y das Ausgabebit von A übernehmen. f(m) = 1 ist für A eine Linksverschlüsselung, f(m) = 0 eine Rechtsverschlüsselung B beschreibt also genau den LoR-Angriff von A:... Beweisbar sichere Verschlüsselung 6.11 B beschreibt genau den LoR-Angriff von A: [ ] ist also unser Pr $ B C( ) von früher (Folie 2.11 zu LoR-OTCPA) Aus dieser Gleichheit folgt Pr $ B C( ) denn (siehe Folie 2.11) [ Pr b $ {0,1} A E b (, ) b ] [ ] 1 = 2 AdvLoR-OTCPA (K,E,D),A + 1 2, Adv LoR-OTCPA (K,E,D),A = 2 Pr b $ {0,1}[ A E b (, ) b ] 1
Beweisbar sichere Verschlüsselung 6.12 Wir haben also Pr $ B C( ) [ ] bestimmt; für (K,E,D),A,S fehlt noch [ ] Pr $ S C( ) Für jeden gültigen Simulator S zu unserem B muss gelten Pr $ S C( ) [ ] = 1 2, denn f(m) ist hier (beim nachgebauten LoR) gleichverteilt auf {0,1} und S erhält keinerlei Hinweis darauf! Beweisbar sichere Verschlüsselung 6.13 Also (K,E,D),A,S = Pr $ A C( )[ ] Pr $ S C( ) [ ] = 1 2 AdvLoR-OTCPA (K,E,D),A + 1 2 1 2 = 1 2 AdvLoR-OTCPA (K,E,D),A, und das für jeden gültigen Simulator S zu B. Ist A erfolgreich und das Verschlüsselungsschema LoR-OTCPA-unsicher, so ist (K,E,D),A,S nicht verschwindend gering, das Verschlüsselungsverfahren also auch Sem-OTCPA-unsicher, q.e.d.! Damit haben wir gezeigt (Kontraposition): Sem-OTCPA-Sicherheit impliziert LoR-OTCPA-Sicherheit.
Beweisbar sichere Verschlüsselung 6.14 2. Ziel: Sem-OTCPA-Unsicherheit impliziert LoR-OTCPA-Unsicherheit Sei (K, E, D) nicht sicher im Sinne von Sem-OTCPA, es gebe also einen Angreifer A, zu dem der Vorteil (K,E,D),A,S für keinen gültigen Simulator S verschwindend gering ist. Wir nehmen ein gegebenes A und geben dazu ein S an. Laut Voraussetzung ist der Vorteil zwangsläufig groß (genauer: nicht verschwindend gering), egal, wie wir S konstruieren, solange es nur ein gültiger Simulator zu A ist! Beweisbar sichere Verschlüsselung 6.15 Wir nehmen ein gegebenes A und geben dazu ein S an. Laut Voraussetzung ist der Vorteil zwangsläufig groß S baut auf A auf: lässt A dessen gewünschte Plaintextverteilung M wählen; schickt M an das eigene Orakel C( ) (das nie etwas antwortet); erzeugt selbst K $ K und m 0 $ M; setzt c $ E K (m 0 ) und gibt c als Orakelantwort an A zurück; übernimmt schließlich die Ausgabe von A. Das ist ein gültiger Simulator! (Nämlich gleiche Verteilung von M und f wie A.) Den Vorteil (K,E,D),A,S = Pr $ A C( )[ ] Pr $ S C( ) [ ] können wir hier umdeuten:...
Beweisbar sichere Verschlüsselung 6.16 Den Vorteil [ ] [ ] (K,E,D),A,S = Pr $ Pr A C( ) $ S C( ) können wir hier umdeuten: Bau aus A einen LoR-OTCPA-Angreifer B, der (m 1,m 0 ) beide gemäß M wählt und der schließlich 1 ausgibt, falls f(m 1 ) = y (und 0 sonst). [ ] Wahrscheinlichkeit, dass B im Left -Fall 1 ausgibt: Pr $ A C( ) [ ] Wahrscheinlichkeit, dass B im Right -Fall 1 ausgibt: Pr $ S C( ) Also (K,E,D),A,S = Pr [ B E 1(, ) 1 ] Pr [ B E 0(, ) 1 ] = Adv LoR-OTCPA (K,E,D),B Beweisbar sichere Verschlüsselung 6.17 Wir haben erhalten: (K,E,D),A,S = Adv LoR-OTCPA (K,E,D),B Laut Voraussetzung (Verschlüsselungsschema ist Sem-OTCPA-unsicher) ist der Sem-OTCPA-Vorteil nicht verschwindend gering, also ist der LoR-OTCPA-Vorteil nicht verschwinden gering d.h., das Verschlüsselungsschema ist LoR-OTCPA-unsicher; q.e.d.! Damit haben wir gezeigt (Kontraposition): LoR-OTCPA-Sicherheit impliziert Sem-OTCPA-Sicherheit.
Beweisbar sichere Verschlüsselung 6.18 Semantische Sicherheit für Mehrfachverschlüsselung Semantische Sicherheit kann man ganz ähnlich auch für Mehrfachverschlüsselung definieren: Adv Sem-CPA (K,E,D),A,S Sicher, wenn es zu jedem A einen gültigen Simulator S gibt, für den dieser Vorteil verschwindend gering ist... aber sehr viele Details in der formalen Darstellung (lassen wir hier aus) Ohne Beweis halten wir fest: Auch Sem-CPA und LoR-CPA sind äquivalent zueinander! Beweisbar sichere Verschlüsselung 6.19 Sicherheitsbegriffe für symmetrische Verschlüsselung Die Sicherheitsbegriffe mit passivem Angreifer im Überblick: Sem-CPA-sicher LoR-CPA-sicher RoR-CPA-sicher FtG-CPA-sicher Sem-OTCPA-sicher LoR-OTCPA-sicher RoR-OTCPA-sicher
Beweisbar sichere Verschlüsselung 6.20 zu Aufgabe 2.5 Erster Schritt zur Lösung: Blockchiffre E K komplett ersetzen durch gleichverteilt zufällige Abbildung f : {0,1} l {0,1} l. Welche obere Schranke für den RoR-CPA-Vorteil beliebiger Angreifer können wir dann angeben (abhängig von q # und q B )?