kryptographie

64
Kryptographie Seminar: Komplexitätstheorie WS 04/05 Prof. Helmut Alt Referent: Magnus Konze

Upload: donovan-williams

Post on 30-Dec-2015

28 views

Category:

Documents


0 download

DESCRIPTION

Kryptographie. Seminar: Komplexitätstheorie WS 04/05 Prof. Helmut Alt Referent: Magnus Konze. Übersicht. Einführung Einwegfunktionen / RSA Kryptographie und Komplexität Signatur / geistiges Poker interaktive Beweise Zero Knowledge. Situation. Nachricht x. Alice. Bob. Lauscher. - PowerPoint PPT Presentation

TRANSCRIPT

Kryptographie

Seminar: Komplexitätstheorie WS 04/05

Prof. Helmut Alt

Referent: Magnus Konze

Übersicht

• Einführung

• Einwegfunktionen / RSA

• Kryptographie und Komplexität

• Signatur / geistiges Poker

• interaktive Beweise

• Zero Knowledge

Situation

Alice Bob

Lauscher

Nachricht x

Vorgehen

• Auswahl von Ver- und Entschlüsselungsalgorithmus E bzw. D

• Verschlüsselung der Nachricht x mit Schlüssel e: y = E(e, x)

• Entschlüsselung mit Schlüssel d:

D(d, y) = x

klassische Verfahren

• Cäsar: Verschieben der Buchstaben um eine Konstante, z.B.:

A B, B C, C D...

• Vigenére: Verschiebung abhängig von den Zeichen eines Codeworts

(e und d sind im klassischen Fall beiden Seiten bekannt)

Probleme

• Cäsar-Algorithmus lässt sich durch ausprobieren knacken.(nur 26 Möglichkeiten)

• Mit einer Häufigkeitsanalyse lässt sich die Codewortlänge und Codewort beim Vigenére-Algorithmus ermitteln.

• kleine Verbesserungen machen das Entschlüsseln nur unwesentlich schwerer.

Häufigkeiten in % (deutsch)

0

2

4

6

8

10

12

14

16

18

a b c d e f g h i j k l m n o p q r s t u v w x y z

One-Time-Pad

• Generieren eines Zufallsstrings der Länge |x|

• Ver- und Entschlüsslungsfunktion sind beide das (bitweise) exklusive Oder mit der Nachricht

• Sichere Verschlüsselung!

ABER: Zufallsstring muss ausgetauscht werden und Länge der Nachricht haben

Public-Key Kryptographie

• Idee: nur d ist geheim, e ist öffentlich bekannt

• d lässt sich nur „schwer“ aus e errechnenJeder kann Nachricht an Bob verschlüsseln

und nur Bob kann sie entschlüsseln

Public-Key Kryptographie

• ist nicht sicher, man könnte x richtig raten und testen, ob E(e,x) = y (x kann nicht mehr als polynomiell länger sein)

• „sichere“ Public-Key Verfahren existieren nur, wenn P NP

• Um diese Idee umzusetzen benötigen wir eine Funktion aus FNP \ FP (Klasse der Funktionen, die nur nichtdeterministisch in polynomieller Zeit berechnet werden können)

Einwegfunktionen

Definition:

Sei f eine Abbildung von * * . f heißt Einwegfunktion, wenn:

i) f ist injektiv und x* gilt:

ii) f FP

iii) f-1 FNP \ FP

kk xxfx |||)(||| /1

Einwegfunktionen

• Sogar wenn P NP ist, ist nicht garantiert, dass es Einwegfunktionen gibt! Es gibt bis heute nur Funktionen, von denen man vermutet, dass sie Einwegfunktionen sind, z.B. Integermultiplikation oder diskreter Logarithmus

Integermultiplikation

• Produkt von 2 Primzahlen lässt sich in polynomieller Zeit berechnen.

• Dagegen ist kein Polynomialzeit-Algorithmus bekannt, der das Produkt großer Primzahlen faktorisiert.

Diskreter Logarithmus

• fEXP(p,r,x) = rx mod p, r Primitivwurzel mod p, x < p

• Beispiel rechts:

p = 11, r = 2

0

2

4

6

8

10

12

1 2 3 4 5 6 7 8 9 10

diskreter L.

RSA

• Kombination aus fMULT und fEXP führt zum RSA Kryptosystem

• Öffentlicher Schlüssel ist hier eine Zufallszahl e und das Produkt von 2 „großen“ Primzahlen p, q

• fRSA(x, e, p, q) = xe mod pqe muss teilerfremd zu p*q seinist injektiv und in Polynomialzeit berechenbarUmkehrfunktion „scheint“ schwer zu finden zu sein (wenn p und q unbekannt)

RSA

• Bob berechnet d, so dass e*d = 1 + k*(pq) k beliebig, (n) ist die Eulerfunktion (Anzahl der teilerfremden Zahlen zwischen 1 und n)

d ist invers zu e im Restklassenring (pq)

(pq) = (p-1)(q-1), falls p, q Primzahlen

RSA

• Entschlüsslung: Bob potenziert y mit d

yd = xe*d = x1 + k*(pq) = x1 * x k*(pq) = x * 1 = x mod pq (Fermat)

(Aus dieser Formel folgt auch die Injektivität von fRSA.)

Zusammenfassung RSA

• Schlüssel (pq,e) und (pq,d)

• beide Algorithmen benutzen nur Exponentiation und modulo Arithmetik

• ABER: Wenn ein effizienter Algorithmus zur Faktorisierung gefunden wird, lässt sich eine mit RSA verschlüsselte Nachricht leicht entschlüsseln!

Kryptographie und Komplexität

• Lässt sich die Existenz von Einwegfunktionen mit NP-Vollständigkeit verbinden?

Nein!

Kryptographie und Komplexität

• Definition:Eine nichtdeterministische Turingmaschine, die für jede Eingabe höchstens einen akzeptierenden Berechnungszweig hat, heißt eindeutig.UP ist die Klasse der Sprachen, die von eindeutigen Turingmaschinen akzeptiert werden.

Kryptographie und Komplexität

• Offensichtlich gilt:P UP NPEine deterministische TM kann als eine nichtdeterministische angesehen werden, die nach jedem Schritt nur eine Möglichkeit hat (P UP).Eine eindeutige TM ist nach Definition nichtdeterministisch (UP NP).

Kryptographie und Komplexität

Satz: UP = P genau dann, wenn es keine Einwegfunktionen gibt!

Beweis: (links nach rechts)Angenommen, es gibt eine Einwegfunktion f. Definiere Lf wie folgt:

Lf = {(x,y) | z, so dass f(z)=y und zx}(alle Strings sind erst nach Länge, dann lexikografisch sortiert! 0<1<00<01<10...)

Kryptographie und Komplexität

• Behauptung: Lf UP \ P

Lf wird von einer eindeutigen TM U

akzeptiert: nach Eingabe (x,y) rät U ein z und testet, ob y = f(z). Falls ja (höchstens ein Zweig, da f injektiv!), wird geprüft, ob zx, wenn ja => akzeptieren.

Also Lf UP

Kryptographie und Komplexität

• noch zu zeigen: Lf P

Beweis: Angenommen, es gibt einen Polynomialzeit-Algorithmus für Lf, dann

kann f durch binäre Suche invertiert werden: (Tafel)

=> gibt es eine Einwegfunktion, so ist UP P

Kryptographie und Komplexität

Beweis: (rechts nach links)Angenommen, es gibt eine Sprache L inUP \ P. Sei U eine eindeutige TM, die L akzeptiert und x eine akzeptierende Berechnung bei Eingabe y. Wir definieren fU(x) = 1y. Falls x Kodierung einer verwerfenden Berechnung ist, ist

fU(x) = 0x

Kryptographie und Komplexität

fU ist eine Einwegfunktion:

• ist injektiv und polynomiell beschränkt

• könnte man fU invertieren, so wäre L P

ist UP P, so gibt es eine Einwegfunktion

Also: UP = P genau dann, wenn es keine

Einwegfunktionen gibt!

Kryptographie und Komplexität

• UP = NP ist sehr unwahrscheinlich (dann müsste z.B. SAT von einer eindeutigen TM entschieden werden können)

=> In der Kryptographie ist die Fragestellung, ob P = UP interessanter als P = NP. NP-Vollständigkeit kann also nicht helfen, bei der Suche nach Einwegfunktionen.

Kryptographie und Komplexität

• UP-Vollständigkeit: vermutlich gibt es keine UP-vollständigen Probleme

• würde aber auch nicht weiterhelfen, da wir bis jetzt immer von der worst-case Laufzeit ausgegangen sind!

=> Definition von Einwegfunktionen ist für Einsatz in Kryptographie zu schwach!

Kryptographie und Komplexität

• erweiterte Definition:

Es gibt kein k und keinen Algorithmus, der in O(nk) Zeit f-1(y) für mindestens 2n/nk Strings y der Länge n.

(= kein Polynomialzeit-Algorithmus, der f für einen polynomiellen Bruchteil der Eingabe invertiert)

Kryptographie und Komplexität

• Auch diese Definition ist noch zu schwach, da davon ausgegangen wird, dass der gesuchte Algorithmus deterministisch ist! Der Lauscher könnte auch randomisierte Algorithmen verwenden!

Kryptographie und Komplexität

• fEXP und fMULT haben diese Eigenschaften, aber können trotzdem nicht ein der Kryptographie genutzt werden.

• Was also sind die zusätzlichen Eigenschaften von fRSA?

Kryptographie und Komplexität

iv) Eingabewerte lassen sich effizient finden

=> öffentlicher Schlüssel lässt sich schnell berechnen

v) es gibt eine in Polynomialzeit berechenbare Funktion, die die Invertierung einfach macht

=> es kann effizient dekodiert werden

Kryptographie und Komplexität

• Eine Einwegfunktion, die i) bis v) erfüllt ( iii) kann nur vermutet werden!) heißt Falltürfunktion.

• fRSA ist eine Falltürfunktion

Randomisierte Kryptographie

Nachteile von Public Key Verfahren:• Zu einem vernachlässigbaren Bruchteil aller

Strings kann effizient die Umkehrfunktion gefunden werden.

• Determinismus führt zu Wiederholungen in Nachrichten.

• Ein einzelnes Bit kann nicht verschlüsselt werden.

Randomisierte Kryptographie

• Einfache Abhilfe:

Alice generiert eine Zufallszahl x pq/2 und sendet y = (2x + b)e mod pq

Bob entschlüsselt wie gehabt, das letzte Bit entspricht dem gesuchten Bit

=> genauso sicher wie normales RSA

Randomisierte Kryptographie

• Jede Nachricht besteht aus einzelnen Bits, diese könnten alle einzeln verschlüsselt werden.

=> Wiederholungen werden vermieden, raten wird deutlich aufwendiger

Protokolle

• Definition: Ein Protokoll ist eine Menge von interaktiven Berechnungen mit gemeinsamen Ein- und Ausgaben.

Signatur

• Alice möchte ihre Nachricht digital unterschreiben, um sich eindeutig als Absender zu identifizieren.

• Das ist mit Public-Key Verfahren möglich.

Signatur

• Alice signiert ihre Nachricht, indem sie Bob (x, D(d, x)) schickt, also die Originalnachricht und die Nachricht mit dem Dekodierschlüssel d (!) verschlüsselt.

• Nur Alice kann D(d, x) erzeugen.

• Bob prüft nun, ob E(e, y) = x, y = D(d, x)

(e und d sind die Schlüssel von Alice)

Signatur

• Kodierung und Signatur am Beispiel von RSA:

• Alice sendet y = E(eBob, (x, E(dAlice, x)))

• Bob dekodiert y mit dBob zu (x, x‘) und prüft, ob D(eAlice, x‘) = x, wenn ja, muss die Nachricht von Alice kommen

Geistiges Poker

Angenommen, Alice und Bob haben sich auf 3 Zahlen a < b < c geeinigt, jeder soll eine wählen, so dass folgendes gilt:

i) Die Karten sind unterschiedlich.

ii) Alle 6 Paare sind gleichwahrscheinlich.

iii) Jeder kennt nur seine Karte.

iv) Der Ausgang soll unbestreitbar sein.

Geistiges Poker

Ablauf:

i) Beide einigen sich auf eine Primzahl, jeder berechnet 2 geheime Schlüssel e und d, so dass e*d = 1 mod (p-1) gilt.

ii) Alice verschlüsselt alle 3 Zahlen wie folgt: n ne(Alice) mod p und schickt sie Bob.

Geistiges Poker

iii) Bob wählt eine (verschlüsselte) Zahl aus und schickt sie zurück. Dies ist Alice Zahl.

iv) Bob verschlüsselt nun die übrigen Zahlen mit seinem Schlüssel eBob und schickt sie Alice.

v) Alice entschlüsselt beide mit dAlice, wählt eine aus und schickt sie zurück.

Geistiges Poker

vi) Bob entschlüsselt die empfangene Zahl mit dBob, das Ergebnis ist seine Zahl.

Hier wird ausgenutzt, dass

ne(Alice)*e(Bob)*d(Alice) = ne(Bob).

Interaktive Beweise

• Ein nichtdeterministischer Algorithmus kann als eine Art Protokoll angesehen werden.

• Beispiel: Alice und Bob bekommen eine boolesche Formel , Alice verfügt über exponentielle Rechenkraft, Bob nur über polynomielle. Alice möchte Bob davon überzeugen, dass erfüllbar ist.

Interaktive Beweise

• Ist erfüllbar, so findet Alice eine mögliche Belegung und schickt diese Bob. Der kann prüfen, ob diese die Formel erfüllt und ist überzeugt.

• Ist nicht erfüllbar, hat Alice allerdings keine Möglichkeit, Bob davon zu überzeugen.

• Dieses einfache Protokoll würde SAT entscheiden.

Interaktive Beweise

• Angenommen, Bob kann zusätzlich randomisierte Algorithmen verwenden. Welche Sprachen können wir nun akzeptieren?

Interaktive Beweise

• Definition: Ein interaktives Beweissystem (A, B) ist ein Protokoll zwischen Alice und Bob. A ist ein Exponentialzeit-Algorithmus, B ein randomisierter Polynomialzeit-Algorithmus. Beide Algorithmen tauschen Folgen von Nachrichten m1, m2, ..., m2|x|^k aus, Alice schickt die ungeraden, Bob die geraden.

Interaktive Beweise

• Bob‘s Nachrichten berechnen sich aus:

m2i = B(x; m1, m2, ..., m2i-1, ri)

ri ist ein zufälliger String (für Alice unbekannt)

• Alice Nachrichten dagegen aus:

m2i-1 = A(x; m1, m2, ..., m2i-2)

• Bob‘s letzte Nachricht ist „ja“ oder „nein“

Interaktive Beweise

• (A, B) entscheidet eine Sprache, falls folgendes für alle Strings x gilt:Falls xL, dann ist die Wahrscheinlichkeit, dass akzeptiert wird Falls xL , dann ist die Wahrscheinlickeit, dass akzeptiert wird , auch dann, wenn Alice A durch einen beliebigen Algorithmus A‘ ersetzt.

||2

11

x

||2

1x

Interaktive Beweise

• IP ist die Klasse aller Sprachen, die von interaktiven Beweisen entschieden werden.

• NP IP (Bob benutzt keine Randomisierung)

• BPP IP (Bob ignoriert Alice Nachrichten)

Interaktive Beweise

• Graph-Isomorphismus ist NP-schwer, aber es ist unbekannt, ob es NP-vollständig ist. Vom Komplement weiß man nicht, ob es in NP ist. Aber es lässt sich zeigen, dass Graph-Nicht-Isomorphismus in IP ist.

Interaktive Beweise

• Eingabe für (A, B) = x = (G, G‘)

• Bob wiederholt folgenden Schritt |x| mal:

In der i-ten Runde generiert er ein Zufallsbit bi. Falls bi = 1, setzt er Gi = G, sonst

Gi = G‘. Dann generiert er eine Zufallspermutation i und sendet (G, i(Gi)) an Alice.

Interaktive Beweise

• Alice prüft, ob G isomorph zu i(Gi) ist und sendet 1, wenn ja, sonst 0 an Bob.

• Nach der |x|-ten Runde akzeptiert Bob, falls alle bi = Alice entsprechenden Antworten sind.

• Dieses Protokoll entscheidet Graph-Nicht-Isomorphismus.

Zero Knowledge

• Die bisherigen Protokolle haben Kryptographie benutzt, die interaktiven Beweise Randomisierung. Ein Zero Knowledge Protokoll nutzt beides.

Ali Baba‘s Höhle

• Ali Baba möchte uns davon überzeugen, dass er die magische Tür zwischen R und S öffnen kann (ohne das wir es sehen!). Wir warten bei P, er geht zu einer Seite der Tür.

Ali Baba‘s Höhle

• Ist er angekommen, ruft er uns, wir gehen zu Q und wählen eine Seite, von der Ali Baba zurückkommen soll.

• Da er die Tür öffnen kann, ist ihm dies immer möglich.

Zero Knowledge

• Die Grundlage für das folgende Zero Knowledge Protokoll ist das 3-Färbbarkeitsproblem für Graphen.

• Alice möchte Bob davon überzeugen, dass sie eine mögliche Färbung eines Graphen kennt, ohne ihm diese zu zeigen. Ihre Färbung ist eine FunktionX: V{00,01,11} (entspricht den Farben)

Zero Knowledge

• Jede Runde macht Alice folgendes:

• Sie permutiert ihre Färbung.

• Sie generiert |V| Schlüsselpaare (ei, di, pi und qi), 1 i |V|.

• Sie verschlüsselt jede Knotenfarbe xixi‘ bitweise mit dem privaten Schlüssel ei zu yi und yi‘ (Randomisierte Kryptographie!).

Zero Knowledge

• Dann schickt sie Bob alle Paare

(ei, piqi, yi, yi‘).

• Bob wählt nun 2 benachbarte Knoten va und vb aus und erhält von Alice die ent-sprechenden Dekodierschlüssel da und db.

• Bob kann nun prüfen, ob die Farben verschieden sind.

Zero Knowledge

• Diese Schritte werden k*|E| mal wiederholt.

• Will Alice betrügen, so gibt es immer mindestens eine Kante, deren zugehörige Knoten gleich gefärbt sind. Mit Wahrscheinlichkeit 1 / |E| findet Bob diese in jeder Runde. Nach k*|E| Runden ist die Wahrscheinlichkeit, dass Alice eine gültige Färbung besitzt, also 1 – (1 / |E|k).

Zero Knowledge

• Anmerkung: Da das 3-Färbbarkeitsproblem NP-vollständig ist, kann zu jedem Problem in NP ein Zero Knowledge Beweis gefunden werden.

Zitat

Komplexität ist nicht immer eine Krankheit, die diagnostiziert werden muss; manchmal ist sie eine Ressource, die ausgenutzt werden muss. Aber sie erweist sich als sehr schwer greifbar, wenn sie am meisten willkommen ist.

ENDE