Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Matthias Hörmann Universität Paderborn 7. Juli 2008 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Einführung in Bit Commitment Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Diskrete Logarithmen Denition Beispiel Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Zahlen raten I I I Anna denkt sich eine Zahl aus Ben und Clara versuchen sie zu raten Wer näher dran liegt gewinnt Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Schummeln beim Zahlenratespiel I Ben und Clara können schummeln wenn sie Anna's Zahl kennen bevor sie raten müssen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Schummeln beim Zahlenratespiel I I Ben und Clara können schummeln wenn sie Anna's Zahl kennen bevor sie raten müssen Anna kann einen der anderen beiden bevorzugen wenn sie eine oder beide anderen Zahlen kennt bevor sie ihre Nummer veröentlichen muss Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Typischen Oine-Lösungen für diese Problem I I Jeder schreibt seine Zahl auf einen Zettel bevor die Zahlen veröentlicht werden Jeder teilt seine Zahl einer weiteren Person mit der alle vertrauen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Online-Implementierung - Client/Server I I I Die meisten Online-Spiele benutzen ein Client/Server Modell Jeder vertraut dem Server Vergleichbar mit der Vertrauensperson in der oine Variante Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Probleme bei Client/Server I I Server müssen administriert werden, alle müssen dem Server-Admin vertrauen Solche neutralen Parteien denen jeder vertraut existieren in vielen Situation nicht Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Das Problem I Anna muss nachweisen können dass sie sich zum Zeitpunkt t1 für etwas entschieden hat Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Das Problem I I Anna muss nachweisen können dass sie sich zum Zeitpunkt t1 für etwas entschieden hat Ben darf das Ergebnis dieser Entscheidung zum Zeitpunkt t2 nicht kennen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Das Problem I I I Anna muss nachweisen können dass sie sich zum Zeitpunkt t1 für etwas entschieden hat Ben darf das Ergebnis dieser Entscheidung zum Zeitpunkt t2 nicht kennen Anna muss den Nachweis zum Zeitpunkt t3 erbringen, dann darf auch Ben das Ergebnis der Entscheidung erfahren Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Einweg-Funktionen Denition Eine Einweg-Funktion ist eine Funktion bei der es, gegeben x einfach ist f (x ) zu berechnen aber wenn y gegeben ist ist es schwer, aber nicht unmöglich x mit f (x ) = y zu berechnen. Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Unsere Lösung auf Basis von Einweg-Funktionen I Anna verwendet die Entscheidung e als Eingabe für die Einweg-Funktion f Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Unsere Lösung auf Basis von Einweg-Funktionen I I Anna verwendet die Entscheidung e als Eingabe für die Einweg-Funktion f Anna schickt Ben m = f (e ) zum Zeitpunkt t1 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Unsere Lösung auf Basis von Einweg-Funktionen I I I Anna verwendet die Entscheidung e als Eingabe für die Einweg-Funktion f Anna schickt Ben m = f (e ) zum Zeitpunkt t1 Ben kann den Prozess nicht einfach umkehren Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Unsere Lösung auf Basis von Einweg-Funktionen I I I I Anna verwendet die Entscheidung e als Eingabe für die Einweg-Funktion f Anna schickt Ben m = f (e ) zum Zeitpunkt t1 Ben kann den Prozess nicht einfach umkehren Zum Zeitpunkt t3 schickt Anna Ben die potentielle Entscheidung p Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Beispiel Ratespiel oine Ratespiel online Das Bit Commitment Problem Unsere Lösung auf Basis von Einweg-Funktionen I I I I I Anna verwendet die Entscheidung e als Eingabe für die Einweg-Funktion f Anna schickt Ben m = f (e ) zum Zeitpunkt t1 Ben kann den Prozess nicht einfach umkehren Zum Zeitpunkt t3 schickt Anna Ben die potentielle Entscheidung p Ben berechnet f (p ) und vergleicht es mit m, sind sie identisch ist p = e Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Denition Beispiel Logarithmen in Z Denition Gegeben a, b, x ∈ Z mit b = ax Dann nennen wir x den Logarithmus zur Basis a von b und wir schreiben x = loga (b) Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Denition Beispiel Generator Denition In der zyklischen Gruppe Z∗p nennen wir ein Element a Generator wenn p − 1 der kleinste Exponent ist für den gilt ap−1 ≡ 1 (mod p ) Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Denition Beispiel Diskrete Logarithmen in Z∗p Denition Gegeben α, β, ∈ Z∗p , α ist ein Generator von Z∗p und die natürliche Zahl x mit 0 ≤ x < p − 1 und β ≡ αx (mod p ) Dann heisst x der diskrete Logarithmus zur Basis α von β and wir schreiben Lα (β) ≡ x (mod p ) Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Denition Beispiel Diskrete Logarithmen in Z∗13 21 ≡ 2, 22 ≡ 4, 23 ≡ 8, 24 ≡ 3, 25 ≡ 6, 26 ≡ 12, 27 ≡ 11, 28 ≡ 9, 29 ≡ 5, 210 ≡ 10, 211 ≡ 7, 212 ≡ 1 (mod 13) Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Denition Beispiel Diskrete Logarithmen in Z∗13 21 ≡ 2, 22 ≡ 4, 23 ≡ 8, 24 ≡ 3, 25 ≡ 6, 26 ≡ 12, 27 ≡ 11, 28 ≡ 9, 29 ≡ 5, 210 ≡ 10, 211 ≡ 7, 212 ≡ 1 (mod 13) L2 (11) = 7 L2 (5) = 9 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Notation Denition Wir benutzen die Notation x0 , ...xk für die einzelnen Bits des diskreten Logarithmus x , wie üblich ist dabei x0 das am wenigsten signikante Bit. In den nächsten Folien sprechen wir immer von k Bits auch dann wenn die führenden Bits 0 sind. Ausserdem kann bei allen Aussagen bezüglich der Schwierigkeit einer Berechnung natürlich davon ausgegangen werden dass diese nur bei entsprechend grossen Zahlen gelten (nicht bei den kleinen Zahlen der Beispiele). Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Anna wählt eine natürliche Zahl 0 < x < p − 1 mit xi = e Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Anna wählt eine natürliche Zahl 0 < x < p − 1 mit xi = e Anna berechnet m = ax und schickt Bob m zum Zeitpunkt t1 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I I I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Anna wählt eine natürliche Zahl 0 < x < p − 1 mit xi = e Anna berechnet m = ax und schickt Bob m zum Zeitpunkt t1 Ben kann x = La (m) zum Zeitpunkt t2 nicht einfach aus m berechnen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I I I I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Anna wählt eine natürliche Zahl 0 < x < p − 1 mit xi = e Anna berechnet m = ax und schickt Bob m zum Zeitpunkt t1 Ben kann x = La (m) zum Zeitpunkt t2 nicht einfach aus m berechnen Anna schickt Ben eine potentielle Entscheidung xp zum Zeitpunkt t3 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I I I I I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Anna wählt eine natürliche Zahl 0 < x < p − 1 mit xi = e Anna berechnet m = ax und schickt Bob m zum Zeitpunkt t1 Ben kann x = La (m) zum Zeitpunkt t2 nicht einfach aus m berechnen Anna schickt Ben eine potentielle Entscheidung xp zum Zeitpunkt t3 Ben berechnet p = axp und vergleicht es mit m, sind sie identisch ist Anna's Entscheidung zum Zeitpunkt t1 erwiesen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Unser Algorithmus I I I I I I I I Anna und Ben wählen eine Gruppe Z∗p und einen Generator der Gruppe a sowie ein Bit i Anna trit eine 1 Bit Entscheidung e Anna wählt eine natürliche Zahl 0 < x < p − 1 mit xi = e Anna berechnet m = ax und schickt Bob m zum Zeitpunkt t1 Ben kann x = La (m) zum Zeitpunkt t2 nicht einfach aus m berechnen Anna schickt Ben eine potentielle Entscheidung xp zum Zeitpunkt t3 Ben berechnet p = axp und vergleicht es mit m, sind sie identisch ist Anna's Entscheidung zum Zeitpunkt t1 erwiesen Bob kann sich dann das Bit i von xp anschauen um den Wert der Entscheidung zu sehen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Anna wählt e = 1 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I I I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Anna wählt e = 1 Anna wählt x = 7, binär xb = 0111 mit x1 = e = 1 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I I I I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Anna wählt e = 1 Anna wählt x = 7, binär xb = 0111 mit x1 = e = 1 Anna berechnet m = 27 = 11 und schickt es Bob zum Zeitpunkt t1 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I I I I I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Anna wählt e = 1 Anna wählt x = 7, binär xb = 0111 mit x1 = e = 1 Anna berechnet m = 27 = 11 und schickt es Bob zum Zeitpunkt t1 Bob kann x nicht schnell aus m errechnen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I I I I I I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Anna wählt e = 1 Anna wählt x = 7, binär xb = 0111 mit x1 = e = 1 Anna berechnet m = 27 = 11 und schickt es Bob zum Zeitpunkt t1 Bob kann x nicht schnell aus m errechnen Anna schickt Ben die potentielle Entscheidung xp = 7 zum Zeitpunkt t3 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Beispiel I I I I I I I Anna und Ben wählen Z∗13 , den Generator a = 2 und Bit i = 1 Anna wählt e = 1 Anna wählt x = 7, binär xb = 0111 mit x1 = e = 1 Anna berechnet m = 27 = 11 und schickt es Bob zum Zeitpunkt t1 Bob kann x nicht schnell aus m errechnen Anna schickt Ben die potentielle Entscheidung xp = 7 zum Zeitpunkt t3 Ben berechnet p = 2xp = 27 = 11 und vergleicht es mit m = 11 Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits (Un)Sicherheit von x0 Theorem Bit x0 ist für kryptographische Anwendungen nicht sicher Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Sicherheit von x1 mit p ≡ 1 (mod 4) Theorem Bit x1 des diskreten Logarithmus ist nicht sicher für kryptograsche Anwendungen wenn wir p ≡ 1 (mod 4) wählen Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Sicherheit von x1 mit p ≡ 3 (mod 4) Theorem Bit x1 ist sicher für kryptograsche Anwendungen wenn wir p ≡ 3 (mod 4) wählen. Matthias Hörmann Bit Commitment und Diskrete Logarithmen Übersicht Einführung in Bit Commitment Diskrete Logarithmen Bit Commitment und Diskrete Logarithmen Unser Bit Commitment Algorithmus Sicherheit der einzelnen Bits Sicherheit von x1 mit p ≡ 3 (mod 4) Theorem Bit x1 ist sicher für kryptograsche Anwendungen wenn wir p ≡ 3 (mod 4) wählen. Um dies zu beweisen werden wir eine Reduktion von der Berechnung von x auf die Berechnung von Bit x1 nden um damit zu zeigen dass beide Berechnungen in etwa gleich schwer sind. Matthias Hörmann Bit Commitment und Diskrete Logarithmen