Kryptographische Verfahren Manfred Kufleitner Lukas Fleischer Institut für Formale Methoden der Informatik Abteilung Theoretische Informatik Universität Stuttgart 22.06.2016 1 / 21 Kryptographische Protokolle (22.06.2016) 1. Einführung 2. Schlüsselaustausch 3. Teilen von Geheimnissen 4. Elektronische Verpflichtung 5. Beweise ohne Wissensvermittlung 2 / 21 Einführung I Ein Protokoll ist eine Vereinbarung zum Ablauf einer Kommunikation, an der zwei oder mehr Parteien beteiligt sind. I Ein kryptographisches Protokoll ist ein Protokoll, das kryptographische Mittel einsetzt. I Die Mitspieler werden meist Alice und Bob genannt. I Eve kann die Kommunikation belauschen, aber nicht manipulieren. I Mallory ist ein aktiver Angreifer und kann Nachrichten modifizieren (Man in the Middle). 3 / 21 Schlüsselaustausch I Wiederholung Diffie-Hellman: I I I I I Alice und Bob einigen sich über einen unsicheren Kanal auf eine Primzahl p und eine Zahl g mod p, die eine große ∗ Untergruppe in (Z/pZ) erzeugt. Alice wählt eine große zufällige Zahl a und sendet A = g a mod p and Bob. Bob wählt eine große zufällige Zahl b und sendet B = g B mod p and Alice. Alice berechnet K = B a mod p. Bob berechnet K = Ab mod p. I Eve kann K ohne Kenntnis von a und b (vermutlich) nicht effizient berechnen. I Achtung: Der Schlüsselaustausch nach Diffie-Hellman ist anfällig für Man-in-the-Middle-Angriffe! 4 / 21 Schlüsselaustausch Diffie-Hellman und Man-In-The-Middle Mallory Alice Bob A = g a mod p 0 A0 = g a mod p B = g b mod p 0 B 0 = g b mod p I I 0 Alice verwendet nachfolgend den Schlüssel KA = g b a mod p 0 und Bob den Schlüssel KB = g a b mod p. Sendet Alice eine mit KA verschlüsselte Nachricht y an Bob, fängt Mallory diese ab, berechnet x = dKA (y ) sowie y 0 = eKB (x ) und leitet y 0 an Bob weiter – in der anderen Richtung analog! 5 / 21 Schlüsselaustausch Authentizität und Zertifikate I Für Authentizität beim Schlüsselaustausch ist ein Informationsvorsprung notwendig! I Haben Alice und Bob beispielsweise zuvor bereits ihre öffentlichen Schlüssel ausgetauscht, können die Nachrichten beim Schlüsselaustausch digital signiert werden. I Alice und Bob müssen sich für den Austausch ihrer öffentlichen Schlüssel nicht notwendigerweise persönlich treffen. Möglich ist beispielsweise auch ein Treffen mit einer vertrauenswürdigen Person Trent, mit der öffentliche Schlüssel getauscht werden. Trent stellt dann ein Dokument mit Alices/Bobs öffentlichem Schlüssel und einer Bestätigung aus, dass es sich tatsächlich um die Schlüssel der jeweiligen Besitzer handelt. Dieses signiert und veröffentlicht er. In der Praxis übernehmen Zertifizierungsstellen Trents Aufgabe. 6 / 21 Schlüsselaustausch Forward Secrecy I Anmerkung: Haben Alice und Bob ihre öffentlichen Schlüssel bereits ausgetauscht, könnten sie ohnehin verschlüsselt kommunizieren. Zudem könnte Alice für einen Schlüsselaustausch auch einfach eine Zufallszahl K erzeugen und diese direkt (mit Bobs öffentlichem Schlüssel) verschlüsselt an Bob senden. I Aber: Wird Bobs privater Schlüssel später kompromittiert, so können nachträglich alle jemals mit dieser Methode ausgetauschten Schlüssel rekonstruiert und die damit verschlüsselten Nachrichten gelesen werden! I Bei Vereinbarung eines Sitzungsschlüssels durch authentifizierten Schlüsselaustausch nach Diffie-Hellman ist vergangene Kommunikation auch nach Bekanntwerden von Bobs privatem Schlüssel nicht lesbar (Forward Secrecy). 7 / 21 Teilen von Geheimnissen I Ein Geheimnis s soll unter n Personen so aufgeteilt werden, dass es nur von allen zusammen rekonstruiert werden kann. I Wähle eine ausreichend große Gruppe G (z.B. Z/kZ mit k n) und n − 1 zufällige Elemente g1 , g2 , . . . , gn−1 aus G. I Berechne gn = (g1 g2 · · · gn−1 )−1 s. I Händige das Paar (i, gi ) an Person i aus. I Das Geheimnis s kann durch g1 g2 · · · gn rekonstruiert werden. Treffen weniger als n Personen zusammen, können diese aus ihren Elementen keine Rückschlüsse über s ziehen. I Problem: Geht eines der Elemente gi verloren, ist die Nachricht nicht mehr rekonstruierbar. I Lösung: Teile das Geheimnis so auf n Personen auf, dass dieses jeweils durch Zusammentreffen von m < n Personen rekonstruiert werden kann ((m, n)-Schwellwertverfahren). 8 / 21 Teilen von Geheimnissen Vorüberlegung zu Shamir’s Secret Sharing, n = 10 und m = 2 10 9 8 7 6 5 3 2 1 0 s=4 1 2 3 4 5 6 7 8 9 10 9 / 21 Teilen von Geheimnissen Shamir’s Secret Sharing I Wähle eine ausreichend große Primzahl p und zufällige Koeffizienten a1 , . . . , am−1 ∈ Fp . Diese definieren ein (geheimes) Polynom a(X ) = s + m−1 X ai X i i=1 über Fp . I Berechne a(i) für alle i ∈ {1, . . . , m} und händige jeweils das Tripel (i, a(i), p) an Person i aus. I Treffen mindestens m Personen zusammen, so können diese aus m Funktionswerten das Polynom a(X ) rekonstruieren und anschließend a(0) = s berechnen. 10 / 21 Teilen von Geheimnissen Lagrange-Interpolation I Zur Rekonstruktion von a(X ) kann ein Gleichungssystem gelöst werden oder man verwendet Lagrange-Interpolation. I Vorgehen: Seien x1 , . . . , xm paarweise verschiedene Elemente aus Fp , dann ist das i-te Lagrange-Polynom `i (X ) definiert als Y `i (X ) = (X − xj )(xi − xj )−1 . j∈{1,...,m}\{i} I Jedes dieser Polynome hat Grad m − 1 und für alle i, j ∈ {1, · · · , m} ist ( `i (xj ) = 1 falls i = j, 0 sonst. 11 / 21 Teilen von Geheimnissen Lagrange-Interpolation I Sind nun a(x1 ), . . . , a(xm ) bekannt, dann kann das Polynom ã(X ) = m X a(xi )`i (X ) i=1 bestimmt werden. I Nach Konstruktion ist ã(xi ) − a(xi ) = 0 für alle i ∈ {1, . . . , m}. Das Polynom ã(X ) − a(X ) hat also mindestens m Nullstellen. I Der Grad von ã(X ) − a(X ) ist höchstens m − 1. I Es folgt ã(X ) − a(X ) = 0 bzw. ã(X ) = a(X ). 12 / 21 Teilen von Geheimnissen Sicherheit von Shamir’s Secret Sharing I Angenommen, es sind nur m − 1 verschiedene Paare (x1 , a(x1 )), . . . , (xm−1 , a(xm−1 )) bekannt. I Sei xm ∈ Fp \ {0, x1 , x2 , . . . , xm−1 } eine weitere feste Stelle. I Für alle möglichen Funktionswerte y ∈ Fp liefert die Lagrange-Interpolation ein Polynom ãy (X ) mit ãy (xi ) = a(xi ) für 1 ≤ i < m und ãy (xm ) = y . I Das jeweils zugehörige Geheimnis ist ãy (0) = m−1 X a(xi )`i (0) + y `m (0). i=1 I Für y , y 0 ∈ Fp gilt genau dann ãy (0) = ãy 0 (0), wenn y = y 0 (beachte: `m (0) ∈ F∗p ). I Alle Geheimnisse sind gleich wahrscheinlich! 13 / 21 Teilen von Geheimnissen Varianten und Überprüfung I Die Firma Ruin Invest hat zwei Direktoren, sieben Abteilungsleiter und 87 weitere Mitarbeiter. Die wertvolle Kundendatei wird mit einem geheimen Schlüssel geschützt. Entwickeln Sie ein Verfahren zur Verteilung der Schlüsselinformation für die folgenden Gruppen von Zugangsberechtigungen: 1. Beide Direktoren gemeinsam, 2. mindestens ein Direktor und alle sieben Abteilungsleiter, 3. mindestens ein Direktor, mindestens vier Abteilungsleiter und mindestens 11 Mitarbeiter. I Was passiert, wenn einer der m Teilnehmer sabotiert und einen fehlerhaften Wert liefert? I I I Geheimnis falsch und der Saboteur kann nicht enttarnt werden! m + 1 Teilnehmer können einen Saboteur enttarnen. Füge Kontrollinformation zu jedem Geheimnisteil hinzu, z.B. eine digitale Signatur. 14 / 21 Elektronische Verpflichtung I Münzwurf am Telefon: I I I I Bob: “Kopf oder Zahl?” Alice: “Kopf!” Bob: “Leider falsch, die Münze zeigt Zahl.” Anderes Protokoll: I I I I Bob: “Lege dich auf Kopf oder Zahl fest.” Alice: “Ok, ich habe mich festgelegt.” Bob: “Die Münze zeigt Zahl.” Alice: “Ich hatte mich für Kopf entschieden!” I Alice möchte sich auf eine Vorhersage festlegen, diese aber erst später offenlegen. I Bob möchte sichergehen, dass Alice ihre Vorhersage nach der Festlegung nicht mehr ändern kann. I Im Folgenden sei b ∈ {0, 1} ein Bit, auf dessen Wert sich Alice festlegen soll. 15 / 21 Elektronische Verpflichtung Verpflichtung mit symmetrischer Kryptographie I Bob erzeugt eine Zufallszahl x und sendet diesen an Alice. I Alice wählt einen zufälligen Schlüssel k. Sie berechnet y = ck (xb) und sendet das Ergebnis an Bob. I Bob hat zu diesem Zeitpunkt ohne Kenntnis von k keine Möglichkeit, die Vorhersage von Alice zu offenbaren. I Später kann Alice jedoch den geheimen Schlüssel k an Bob schicken und Bob verifiziert über dk (y ) die Vorhersage. I Bobs Zufallszahl x stellt sicher, dass Alice später nicht betrügen kann, indem sie einen falschen Schlüssel k 0 preisgibt. 16 / 21 Elektronische Verpflichtung Verpflichtung mit Einwegfunktionen I Ein alternatives Protokoll beruht auf einer kollisionsresistenten Einwegfunktion f . I Alice generiert zwei Zufallszahlen x1 und x2 . Sie berechnet anschließend y = f (x1 x2 b) und sendet (y , x1 ) an Bob. I Da Bob zu diesem Zeitpunkt x2 nicht kennt, kann er b nicht bestimmen. I Später sendet Alice (x2 , b) an Bob. Dieser verifiziert, ob tatsächlich y = f (x1 x2 b) gilt. I Alice kann ihre Wahl nach der Veröffentlichung von y von b nicht mehr ändern, ohne ein x10 zu finden, das eine Kollision f (x10 x2 b 0 ) = f (x1 x2 b) erzeugt. I Vorteil: Keine Nachrichten von Bob an Alice. 17 / 21 Beweise ohne Wissensvermittlung I Alice und Bob treffen sich in der Mittagspause: I I I I Alice: “Ich kenne einen Trick, mit dem man die genaue Masse eines beliebigen Gegenstands mit bloßem Auge bestimmen kann.” Bob: “Kennst du nicht.” Alice: “Doch!” Bob: “Dann beweis’ es!” I Alice möchte Bob davon überzeugen, dass sie ein Geheimnis kennt, ohne dieses selbst zu verraten. I Lösung: Bob zeigt Alice eine Reihe von Gegenständen. Alice darf diese nicht anfassen und muss das genaue Gewicht jedes Gegenstandes nennen. Bob verifiziert Alices Aussagen anschließend mithilfe einer Waage. I Alice könnte schummeln, indem sie die Gewichte alle (richtig) rät. Bei einer ausreichenden Anzahl an richtigen Angaben erscheint dies jedoch unwahrscheinlich. 18 / 21 Beweise ohne Wissensvermittlung Graph-Isomorphie I Seien G1 = (V1 , E1 ) und G2 = (V2 , E2 ) Graphen. I G1 und G2 heißen isomorph, falls eine bijektive Abbildung π : V1 → V2 existiert sodass {v , w } ∈ E1 genau dann gilt, wenn {π(v ), π(w )} ∈ E2 ist. I Es ist kein Polynomialzeitalgorithmus für das Testen zweier Graphen G1 und G2 auf Isomorphie bekannt. 19 / 21 Beweise ohne Wissensvermittlung Zero-Knowledge-Authentifizierung mithilfe von Graph-Isomorphie I Alice erzeugt einen großen Graphen G1 und benennt dessen Knoten durch eine zufällig gewählte Bijektion π um. Im Folgenden sei G2 = π(G1 ). I Alice veröffentlicht G1 und G2 und behauptet, einen Beweis dafür zu haben, dass die Graphen isomorph sind. I Wenn Bob einen Nachweis haben möchte, dass Alice tatsächlich einen solchen Beweis kennt, erzeugt Alice eine weitere Permutation ρ der Knoten von G1 und übermittelt den resultierenden Graphen H = ρ(G1 ) an Bob. I Bob kann von Alice nun entweder einen Nachweis fordern, dass G1 und H isomorph sind oder dass G2 und H isomorph sind. I Alice antwortet je nach Entscheidung von Bob mit ρ oder mit ρ ◦ π −1 , ohne dabei π zu verraten. 20 / 21 Beweise ohne Wissensvermittlung Zero-Knowledge-Authentifizierung mithilfe von Graph-Isomorphie I Alice könnte ohne Kenntnis von π tricksen, indem sie H so konstruiert, dass dieser Graph nur zu G1 oder nur zu G2 isomorph ist. I Aber: Bob ertappt sie dabei mit einer Wahrscheinlichkeit von 1/2. Wiederholt man das Protokoll k mal, wird Alice mit einer Wahrscheinlichkeit von 1 − 2−k ertappt! I Da ρ in jedem Schritt zufällig gewählt wurde, hat Bob keine Information gewonnen, die ihm dabei hilft, die Isomorphie von G1 und G2 nachzuweisen (anderenfalls könnte er einfach selbst ρ zufällig wählen und die Konstruktion aus dem Protokoll nachahmen!) 21 / 21