640 likes | 844 Views
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.
E N D
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
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.
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 errechnen • Jeder 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: • f ist injektiv und x* gilt: • f FP • f-1 FNP \ FP
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
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 pq e muss teilerfremd zu p*q sein ist injektiv und in Polynomialzeit berechenbar Umkehrfunktion „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 NP Eine 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: LfUP \ 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 LfUP
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 in UP \ 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: • Die Karten sind unterschiedlich. • Alle 6 Paare sind gleichwahrscheinlich. • Jeder kennt nur seine Karte. • Der Ausgang soll unbestreitbar sein.
Geistiges Poker Ablauf: • Beide einigen sich auf eine Primzahl, jeder berechnet 2 geheime Schlüssel e und d, so dass e*d = 1 mod (p-1) gilt. • 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 • 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.