Randomisierte Algorithmen: Ben-Or

Ähnliche Dokumente
Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Verteilte Kyroptographie

Byzantinische Fehlertoleranz durch Gruppenkommunikation am Beispiel des Rampart-Toolkit Frank Mattauch

Aufgabe 2.1: Lamports Uhren

Kryptographie. Nachricht

Probabilistische Primzahltests

Kryptographie und Komplexität

Asymmetrische Verschlüsselungsverfahren

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Die Byzantinischen Generäle

Digitale Unterschriften mit ElGamal

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. 9. Verteilte Algorithmen

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Vorlesung Sicherheit

Digitale Signaturen. Einführung und das Schnorr Signatur Schema. 1 Digitale Signaturen Einführung & das Schnorr Signatur Schema.

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Kryptographie und Komplexität

6: Diskrete Wahrscheinlichkeit

Tableaukalkül für Aussagenlogik

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

3: Zahlentheorie / Primzahlen

Homomorphe Verschlüsselung

Beweisbar sichere Verschlüsselung

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Grundlagen verteilter Systeme

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Algorithmus von Berkeley (1989)

P, NP und NP -Vollständigkeit

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Institut für Theoretische Informatik Prof. Dr. J. Müller-Quade. Klausur Hinweise

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else

Blinde Signaturen, geheime Abstimmungen und digitale Münzen

Algorithmentheorie Randomisierung. Robert Elsässer

Grundlagen und Diskrete Strukturen Wiederholungsaufgaben

Technikseminar SS2012

Public-Key-Verschlüsselung und Diskrete Logarithmen

IT-Sicherheit Kapitel 7 Schlüsseletablierung

Verteilte Systeme - 5. Übung

Kryptographie und Komplexität

Numerik und Simulation in der Geoökologie

The Byzantine Generals' Problem

Konstruktion der reellen Zahlen

Vorlesung Sicherheit

Public-Key-Kryptographie

Institut für Theoretische Informatik Jun.-Prof. Dr. D. Hofheinz. Klausur Hinweise

Einführung in die asymmetrische Kryptographie

Überblick. Zeit Motivation Konvergenz-Algorithmus CNV Network Time Protocol (NTP) Logische Uhren. c td VS (SS17) Zeit 8 1

11. Das RSA Verfahren

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Probabilistische Algorithmen

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung

Cramer-Shoup-Variante des ElGamal-Kryptoschemas

IT-Sicherheit Kapitel 3 Public Key Kryptographie

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Von schwachen zu starken Lernern

Rechnernetze und verteilte Systeme (BSRvS II)

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

Architektur verteilter Anwendungen

2.4 Hash-Prüfsummen Hash-Funktion message digest Fingerprint kollisionsfrei Einweg-Funktion

managed PGP Gateway Anwenderdokumentation

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Schleifeninvarianten. Dezimal zu Binär

Kryptographie praktisch erlebt

Quanteninformation/ Quantencomputer

Reduktion. 2.1 Abstrakte Reduktion

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Elliptic Curve Cryptography

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Kryptographische Protokolle

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

Theoretische Grundlagen der Informatik

Vortrag 20: Kurze Vektoren in Gittern

Randomisierte Algorithmen 2. Erste Beispiele

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Heuristische Verfahren

abgeschlossen unter,,,, R,

WS 2009/10. Diskrete Strukturen

Theoretische Informatik Kap 2: Berechnungstheorie

Transkript:

Randomisierte Algorithmen: Ben-Or Literatur Michael Ben-Or: Another Advantage of Free Choice: Completely Asynchronous Agreement Protocols. Proc. 2nd ACM Symposium on Principles of Distributed Computing,1983 Nancy Lynch: Distributed Algorithms. Verteilte Algorithmen (VA), WS 2003/04 117 Randomisierte Algorithmen: Ben-Or Rahmenbedingungen Asynchrones Systemmodell Randomisierte Lösung des Einigungsproblem Partielle Korrektheit: Wenn der Algorithmus terminiert, ist das Ergebnis korrekt (alle Knoten einigen sich auf den selben Wert) Terminierung: Keine deterministische Aussage möglich! Aber: Die Wahrscheinlichkeit, dass der Algorithmus in endlicher Zeit terminiert, konvergiert gegen 1 BO-1: Gutmütige Ausfälle BO-2: Byzantinische Fehler Verteilte Algorithmen (VA), WS 2003/04 118

Randomisierte Algorithmen: Ben-Or BO-1 (gutmütige Ausfälle) N Knoten; max. t Ausfälle, N > 2t; Rundenzähler r, Knoten P hat Wert x P Schritt 0: r := 1 Schritt 1: Sende (pre-vote, r, x P ) an alle Knoten Schritt 2: Warte auf N - t Nachrichten (pre-vote, r, x); Anzahl Nachrichten mit gleichem Wert x=v: Mehr als N/2: sende (vote, r, v) an alle ansonsten: sende (vote, r,?) an alle Schritt 3: Warte auf N - t Nachrichten (vote, r, v) (a) Falls eine Nachricht mit v?: x P := v (b) Falls mehr als t solche Nachrichten: fertig (c) sonst: x P := zufällig gewählt aus {0, 1} Schritt 4: r := r + 1; weiter mit Schritt 1 Verteilte Algorithmen (VA), WS 2003/04 119 Randomisierte Algorithmen: Ben-Or Überlegungen zur Korrektheit von BO-1 Alle Knoten senden in Schritt 2 vote-nachrichten entweder nur für einen Wert aus {0,1}, oder für? (gleicher Initialwert von mehr als N/2 Knoten) Alle Knoten, die in einer Runde in Schritt 3a einen Wert annehmen, nehmen daher den gleichen Wert an Falls mehr als t Knoten eine vote-nachricht für 0/1 versendet haben, ist in jeder Teilmenge aus N-t Knoten mindestens eine solche empfangen worden. D.h. Falls sich ein Knoten in Schritt 3b endgültig entscheidet, nehmen alle anderen, die sich noch nicht entscheiden, in Schritt 3a den gleichen Wert an und entscheiden sich in der nächsten Runde Verteilte Algorithmen (VA), WS 2003/04 120

Randomisierte Algorithmen: Ben-Or Eigenschaften von BO-1 Beginnen alle Knoten mit dem selben Wert, terminiert der Algorithmus in nur einer Runde. Ansonsten gilt für die Dauer bis zur Einigung (ohne Beweis): In bestimmten Fällen liegt eine exponentielle erwartete Rundenzahl vor (insbes. bei großem t) für den Speziallfall t = O( N) ist der Erwartungswert der Rundenzahl jedoch konstant Verteilte Algorithmen (VA), WS 2003/04 121 Randomisierte Algorithmen: Ben-Or BO-2 (byzantinische Fehler) N Knoten; max. t fehlerhaft, N>5t; Rundenzähler r, Knoten P hat Wert x P Schritt 0: r := 1 Schritt 1: Sende (pre-vote, r, x P ) an alle Knoten Schritt 2: Warte auf N - t Nachrichten (pre-vote, r, x); Anzahl Nachrichten mit gleichem Wert x=v: Mehr als (N+t)/2: sende (vote, r, v) an alle ansonsten: sende (vote, r,?) an alle Schritt 3: Warte auf N - t Nachrichten (vote, r, v) (a) Falls > t Nachrichten mit v?: x P := v (b) Falls > (N+t)/2 solche Nachrichten: fertig (c) sonst: x P := zufällig gewählt aus {0, 1} Schritt 4: r := r + 1; weiter mit Schritt 1 Verteilte Algorithmen (VA), WS 2003/04 122

Randomisierte Algorithmen: Ben-Or Überlegungen zur Korrektheit BO-2 Ähnlich zu BO-1, nur statt "mindestens 1 Knoten": "mindestens 1 korrekter Knoten", d.h. mindestens t+1 Knoten statt "Mehrheit der Knoten": Mehrheit der korrekten Knoten, d.h. mehr als (N+t)/2 Knoten Schritt 3 b: (N+t)/2 vote-nachrichten für v mindestens (N+t)/2 - t korrekte Knoten dabei jeder Knoten erhält mindestens ((N+t)/2 - t) - t solche vote- Nachrichten ((N+t)/2 - t) - t > t N > 5 t Verteilte Algorithmen (VA), WS 2003/04 123 Randomisierte Algorithmen: Ben-Or Überlegungen zur Korrektheit BO-2 D.h. falls N > 5t gilt, folgt folgendes: Sobald sich ein Knoten in Schritt 3b endgültig entscheidet, verwenden alle andere (noch nicht entschiedenen Knoten) in Schritt 3a den gleichen Wert und entscheiden sich endgültig in der nächsten Runde Verteilte Algorithmen (VA), WS 2003/04 124

Randomisierte Algorithmen: Ben-Or Folgerungen Das Einigungsproblem ist in asynchronen Systemen durch randomisierte Algorithmen grundsätzlich lösbar Bei byzantinischen Fehlern ermöglicht BO-2 eine Lösung bei N > 5t. Noch unklar bleibt, ob es randomisierte Lösungen mit 5t >= N > 3t gibt Bei kleinem t (t = O( N)) können die Algorithmen von Ben-Or eine effiziente Lösung darstellen; für große Werte von t steigt die erwartete Rundenzahl aber schnell an, BO ist dann nicht mehr praktikabel Verteilte Algorithmen (VA), WS 2003/04 125 Aktuelle Forschungsarbeit bei IBM Research in Zürich, : Asynchronous Binary Byzantine Agreement Sintra: Secure INtrusion Tolerant Replication Architecture Literatur C. Cachin, K. Kursawe, V. Shoup: Random Oracles in Constantinople: Practical Asynchronous Byzantine Agreement using Cryptography. ACM Symposium on Principles of Distributed Computing, July 2000 C. Cachin, K. Kursawe, F. Petzold, V. Shoup: Secure and Efficient Asynchronous Broadcast Protocols. Proc. Crypto 2001 C. Cachin, J. Poritz: Secure Intrusion-tolerant Replication on the Internet. Proc. Intl. Conference on Dependable Systems and networks, 2002 Verteilte Algorithmen (VA), WS 2003/04 126

Überblick Grundlagen Schwellwert-Signaturen und verteilt erzeugte Zufallszahlen : Asynchronous Byzantine Binary Agreement Systemmodell Algorithmus Betrachtungen zur Korrektheit Verwendung in Sintra Verteilte Algorithmen (VA), WS 2003/04 127 : Asynchronous Byzantine Binary Agreement Asynchrones Systemmodell, byzantinische Fehler Lösung des Einigungsproblem in einem randomisierten Systemmodell Garantiert werden neben partieller Korrektheit auch Deadlock-Freiheit und schnelle Konvergenz Konsistente Einigung (partielle Korrektheit): Sobald sich ein Knoten endgültig für einen Wert entschieden hat, verwendet jeder andere Knoten, der sich ebenfalls für einen Wert entscheidet, genau diesen Wert Verteilte Algorithmen (VA), WS 2003/04 128

Deadlock-Freiheit: Es kann kein Zustand erreicht werden, in dem: der Algorithmus in allen korrekten Knoten aktiviert wurde der Algorithmus noch nicht terminiert ist alle Nachrichten, die von aktivierten korrekten Knoten ausgesendet wurden, zugestellt und verarbeitet worden sind (Sonst würde das System auf den Empfang von Nachrichten warten, aber kein korrekten Knoten würde Nachrichten aussenden) Schnelle Konvergenz: Die Anzahl x der Nachrichten, die bei einer Einigung von allen korrekten Knoten erzeugt werden, ist beschränkt durch die Warscheinlichkeitsaussage P( x > 2 r + 1 ) < 2 -r + ε mit ε vernachlässigbar klein Verteilte Algorithmen (VA), WS 2003/04 129 Systemmodell Alle Knoten verhalten sich berechenbar: Alle Schritte durch probabilistisch polynomiale Berechnungen beschreibbar Insgesamt n Knoten P 1...P n, davon maximal t fehlerhaft; Initialisierung des Systems durch einen "Trusted Dealer" Verwendung von: (n, t+1, t) Schwellwert-Signatur S 0 (n, n-t, t) Schwellwert-Signatur S (n, n-t, t) Schema für verteilte Zufallszahlen (Coin Shares) Jede Entscheidung hat eindeutige Kennung (TID). Jeder Knoten i hat für eine TID einen Initialwert V i aus {0,1} Alle Nachrichten werden authentifiziert Verteilte Algorithmen (VA), WS 2003/04 130

: Überblick über den Algorithmus (1) pre-vote mit aktuellem lokalem Wert (2) n-t pre-vote empfangen: n-t gleiche Werte: main-vote für diesen Wert sonst: main-vote mit "abstain" (3) n-t main-vote empfangen: n-t gleiche Werte empfangen: endgültige Entscheidung ansonsten: "coin share" wird veröffentlicht (4) neuer lokaler Wert wird aus main-vote ermittelt: nur "abstain": Zufallswert aus coin shares sonst: Wert aus main-vote Verteilte Algorithmen (VA), WS 2003/04 131 : Der Algorithmus im Detail Nur erste Runde: Vorverarbeitungs-Schritt: Jeder sendet seinen Initialwert b (0/1) durch (pre-process, b) mit S 0 signiert an alle anderen Sobald 2 t + 1 Nachrichten eingetroffen sind, wird für den Mehrheitswert (t+1 gleiche Nachrichten) eine S 0 -Signatur erzeugt. Dieser Wert wird als Initialwert b für die folgenden Schritte verwendet Falls alle gutartigen Knoten den selben Initialwert besitzen, ist sichergestellt, dass es nur für diesen Wert eine Signatur geben kann Verteilte Algorithmen (VA), WS 2003/04 132

: Der Algorithmus im Detail (2) Alle Runden r Jeder sendet (pre-vote, r, b, justification) mit gültiger S- Teilsignatur an alle; justification: Beweis für die Gültigkeit des Werts b: Runde r=1: Runde r>1: oder (pre-process, b) mit S 0 -Signatur (pre-vote, r-1, b) mit S-Signatur ("hard pre-vote") (main-vote, r-1, abstain) mit S-Signatur, und Wert b ermittelt durch b := coin(tid, r-1) ("soft pre-vote für b") Verteilte Algorithmen (VA), WS 2003/04 133 : Der Algorithmus im Detail (3) Nach Empfang von n-t gültigen pre-vote-nachrichten: jeder Knoten erzeugt (main-vote, r, b, justification) mit b aus {0, 1, abstain} und justification als Gültigkeitsbeweis dafür pre-vote sowohl für b=0 als auch b=1: b := abstain; justification: je ein pre-vote mit b=0,1 Ansonsten: n-t pre-vote für einen Wert b; justification: daraus gewonnene gültige S-Signatur Nach Empfang von n-t gültigen main-vote-nachrichten: Falls alle Werte gleich: Entscheidung für diesen Wert Ansonsten: weiter mit nächster Runde; Aufdeckung von coin(tid,r) Falls alle n-t abstain -Werte: gültige S-Signatur für abstain Ansonsten: mind. ein Wert, als justification: pre-vote mit S-Sig. Verteilte Algorithmen (VA), WS 2003/04 134

- Korrektheitsüberlegungen Möglichkeiten des Angreifers Nachweis der Korrektheit aller Schritte durch Signaturen Dadurch Möglichkeiten eines Angreifers stark eingeschränkt Entscheidungsfindung Nur für einen Wert b aus {0,1} kann es eine erfolgreich S-signierte pre-vote-nachricht geben Wenn sich der erste ehrliche Knoten in Runde r entscheidet, dann entscheiden sich alle ehrlichen Knoten in Runde r oder r+1 n-t main-vote für einen Wert b in Runde r mindestens n-2t main-vote für b von ehrlichen Knoten in Runde r maximal n - (n-2t) = 2t main-vote für abstain, 2t < n-t kein soft pre-vote in nächster Runde möglich alle pre-vote in Runde r für den selben Wert b Verteilte Algorithmen (VA), WS 2003/04 135 - Korrektheitsüberlegungen Deadlock-Freiheit und schnelle Konvergenz Deadlock-Freiheit: Es wird vorausgesetzt, dass maximal t Knoten sich fehlerhaft verhalten dürfen, und die Kommunikation zwischen fehlerfreien Knoten zuverlässig ist Bei jeder Warteoperation wird auf n-t Nachrichten gewartet. Diese kommen sicher sicher immer an, weil es in jeden Fall so viele korrekte Knoten gibt, und jeder korrekte Knoten die erwartete Nachricht aussendet Schnelle Konvergenz: Es lässt sich zeigen, dass die Wahrscheinlichkeit, dass sich ein korrekter Knoten nicht innerhalb 2 r + 1 Runden entscheidet, nach oben durch 2 -r + ε beschränkt ist, mit ε vernachlässigbar Verteilte Algorithmen (VA), WS 2003/04 136

SINTRA: Secure Intrusion Tolerant Replication Architecture Sicherer kausaler atomarer Broadcast Atomarer Broadcast Mehrwertige Einigung Broadcast-Primitive Threshold-Kryptographie Zuverlässige Punkt-zu-Punkt-Verbindungen Verteilte Algorithmen (VA), WS 2003/04 137 Broadcast-Primitive Zuverlässiger Broadcast: Alle ehrliche Knoten erhalten die selbe Nachricht, oder gar nichts Der Sender sendet die Nachricht an alle Jeder Knoten sendet ein "Echo" der Nachricht an alle n t 1 Sobald ------------------- + + 2 "Echo"-Nachrichten oder t + 1 "Fertig"- Nachrichten empfangen wurden, sendet ein Knoten "Fertig"- Nachrichten an alle Sobald 2 t + 1 "Fertig"-Nachrichten empfangen wurden, akzeptiert ein Knoten die Nachricht und liefert diese an die nächste Schicht aus Falls der Sender nicht ehrlich ist, terminiert dieser Algorithmus u.u. nicht Verteilte Algorithmen (VA), WS 2003/04 138

Mehrwertige Einigung Einigung soll nur auf Werte erfolgen, die tatsächlich von mindestens einem Knoten vorgeschlagen wurden Jeder Knoten sendet seinen Initialwert als Vorschlag an alle über den beschriebenen zuverlässigen Broadcast Sobald ein Knoten von n - t Knoten Vorschläge für Initialwerte empfangen hat, führt er folgende Schritte wiederholt aus: In jeder Wiederholung wird nach einem festgelegten Verfahren ein Kandidat P a aus der Menge aller Knoten ausgewählt Der Knoten startet schlägt den Wert 1 genau dann vor, wenn von P a ein gültiger Vorschlagswert empfangen wurde Falls die Einigungs auf 0 lautet, erfolgt der nächste Schleifendurchlauf, ansonsten ist P a der Einigungswert Verteilte Algorithmen (VA), WS 2003/04 139 Atomarer Broadcast Garantie einer totalen Ordnung auf einer Folge von Nachrichten Umsetzung mit Hilfe der mehrwertigen Einigung Verteilte Algorithmen (VA), WS 2003/04 140

Sicherer kausaler atomarer Broadcast Kausalität erfordert, dass ein Knoten den Inhalt einer Nachricht erst dann erfährt, wenn feststeht, wann diese Nachricht an die Empfänger ausgeliefert wird Ein bösartiger Knoten soll also nicht in der Lage sein, abhängig von einer noch nicht ausgelieferten Nachricht eine andere Nachricht zu erzeugen, die vorher ausgeliefert wird Umsetzung mit Hilfe von Schwellwert-Kryptographie Sender verschlüsselt die Nachricht mit Hilfe eines globalen öffentlichen Schlüssels Sobald die Nachricht ausgeliefert werden soll, kann sie von n - t Knoten gemeinsam entschlüsselt werden Verteilte Algorithmen (VA), WS 2003/04 141 Zusammenfassung Praktikable Lösung des Einigungsproblem in einem asynchronen, probabilistischen Modell Tolerierung von bis zu t Fehlern bei insgesamt n > 3 t Knoten Schnelle Konvergenz auf den Einigungswert Hierarchische Struktur aus einzelnen modularen Blöcken von einfacher, binärer Einigung über atomaren Broadcast bis hin zu sicheren kausalen atomaren Broadcast Verteilte Algorithmen (VA), WS 2003/04 142