7.3: 14.12. - Institut für Verteilte Systeme
Transcription
7.3: 14.12. - Institut für Verteilte Systeme
Vertiefung zu probabilistischen Algorithmen Ben Or 1 ● ● Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ ■ Asynchrones Systemmodell ■ Randomisierte Lösung des Einigungsproblem Ben Or 2 ● 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 Byzantinische Fehler ABBA (Asynchronous Binary Byzantine Agreement) ● Byzantinische Fehler ● mit Hilfe von Kryptographie Algorithmen für Verteilte Systeme (AVS), WS 2005/06 1 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ Crash-stop, siehe Vorlesung ■ BO1: Gutmütige Ausfälle ■ BO2: Byzantinische Fehler Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmus Ben-Or 2 (byzantinische Fehler) N Knoten; max. M Ausfälle, N > 2M; Runde r, Wert xp bei Pp N Knoten; max. M fehlerhaft, N>5M; Runden r, Pp hat Wert xp Schritt 0: r := 1 Schritt 0: r := 1 Schritt 1: Sende (pre-vote, r, xp) an alle Knoten Schritt 1: Sende (pre-vote, r, xP) an alle Knoten Schritt 2: Warte auf N - M 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 2: Warte auf N - M Nachrichten (pre-vote, r, x); Anzahl Nachrichten mit gleichem Wert x=v: Mehr als (N+M)/2: sende (vote, r, v) an alle ansonsten: sende (vote, r, ?) an alle Schritt 3: Warte auf N - M Nachrichten (vote, r, v) (a) Falls eine Nachricht mit v ≠ ?: xp := v (b) Falls mehr als M solche Nachrichten: fertig (c) sonst: xp := zufällig gewählt aus {0, 1} Schritt 3: Warte auf N - M Nachrichten (vote, r, v) (a) Falls > M Nachrichten mit v ≠ ?: xP := v (b) Falls > (N+M)/2 solche Nachrichten: fertig (c) sonst: xP := zufällig gewählt aus {0, 1} Schritt 4: r := r + 1; weiter mit Schritt 1 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 3 2 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Algorithmus Ben-Or 1 (gutmütige Ausfälle) Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ Ben-Or: Rahmenbedingungen Schritt 4: r := r + 1; weiter mit Schritt 1 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 4 Überlegungen zur Korrektheit BO-2 Überlegungen zur Korrektheit BO-2 (2) Ähnlich zu BO-1, nur ● ● Ein Knoten entscheided sich endgültig in Schritt 3a statt „mindestens 1 Knoten“: „mindestens 1 korrekter Knoten“, d.h. mindestens M+1 Knoten Alle anderen (noch nicht entschiedenen) Knoten verwenden in Schritt 3a den gleichen Wert Schritt 3 b: (N+M)/2 vote-Nachrichten für v ⇒ mindestens (N+M)/2 - M korrekte Knoten dabei ⇒ jeder Knoten erhält mindestens ((N+M)/2 - M) - M solche vote-Nachrichten Alle anderen (noch nicht entschiedenen) entscheiden sich endgültig in der nächsten Runde Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ⇓ ⇓ ((N+t)/2 - M) - M > M ⇔ N > 5 M 5 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ■ Klassische Hash-Funktionen Klassische kryptographische Verfahren ● Kryptographische Hash-Funktionen ● Public-Key-Signaturen ■ Verteilte Mechanismen ● Schwellwert-Signaturen ● Verteilt generierte Zufallszahlen ■ 7 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Reproduzierbare Abbildung von Nachrichten beliebiger Länge auf ein Wort fester Länge ● Nachricht m beliebig ● Hash-Wert h = H(m) daraus berechenbar, z.B. 128 bit Kryptographisch „sichere“ Hashfunktionen ● ■ Algorithmen für Verteilte Systeme (AVS), WS 2005/06 6 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Kryptographische Grundlagen ■ D.h. falls N > 5 M gilt, folgt folgendes: statt „Mehrheit der Knoten“: Mehrheit der korrekten Knoten, d.h. mehr als (N+M)/2 Knoten Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ● ■ Es ist mit vertretbaren Aufwand nicht möglich, zwei Nachrichten m1, m2 zu finden mit H(m1)=H(m2) Beispiele ● MD5 ● SHA-1 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 8 Klassische Hash-Funktionen ■ Klassische Public-Key-Verfahren Anwendung: Digitale Signaturen ● ● s Begriffe Anstelle eine digitale Signatur über eine komplette Nachricht: Signatur nur über den Hash-Wert PK: öffentlicher Schlüssel (Public Key), zur Verifikation SK: geheimer Schlüssel (Private Key/Secret Key), zur Signierung σ: Signatur Sicheren Hash-Funktionen: Angreifer kann mit vertretbaren Aufwand keine zweite Nachricht konstruieren, die den selben Hashwert hat (und damit die gleiche gültige Signatur besitzen würde) Operationen Algorithmen für Verteilte Systeme (AVS), WS 2005/06 9 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Schlüsselerzeugung: Signierung: Verifikation: ■ RSA: Signatur-Erzeugung (für Nachricht m) ● Wähle zwei geeignete Primzahlen p, q ● H(m) ist kryptographische Hash-Funktion über Nachricht m ● n = p * q; φ(n) = (p-1)(q-1) ● s = H(m)e mod n ● Wähle e mit 1 < e < φ(n) und ggT(e, φ(n)) = 1 ● Berechne d = e-1 mod φ(n) ( => ■ e d = 1 mod φ(n) ) (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 11 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Öffentlicher Schlüssel: (e, n); Privater Schlüssel (d, n) Algorithmen für Verteilte Systeme (AVS), WS 2005/06 10 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Klassische Public-Key-Verfahren Beispiel RSA: Schlüsselerzeugung ● Uebung-BenOr-ABBA.fm: 13.12.05 13:39 -> (PK, SK) -> σ -> {true, false} Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Klassische Public-Key-Verfahren ■ Parameter Nachricht, SK Nachricht, σ, PK Signatur-Überprüfung ● h = sd mod n ● Teste ob h == H(m) ist Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 12 Klassische Public-Key-Verfahren ■ Verteilte Kryptographie RSA: Begründung der Korrektheit ● ■ Zu zeigen ist, dass (xe)d = x (mod n) Voraussetzung: n=pq; ggT(e,φ(n))=1; ed = 1 mod φ(n) ● ggT(e,φ(n))=1 => es gibt ein u mit e d - u φ(n) = 1 ■ Klassische kryptographische Verfahren ● Kryptographische Hash-Funktionen ● Public-Key-Signaturen Verteilte Mechanismen (Erweiterter Euklidischer Algorithmus) ● (xe)d = xu φ(n) + 1 = xu φ(n) x = x (mod n) - Für ggT(x,n)=1: Folge aus Satz von Euler (1760) ● Schwellwert-Signaturen ● Verteilt generierte Zufallszahlen Algorithmen für Verteilte Systeme (AVS), WS 2005/06 13 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 - Ansonsten: p | x oder q | x; Betrachtung der Kongruenz mod p und mod q, dann CRT Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Verteilte Schwellwert-Signaturen Verteilte Schwellwert-Signaturen ■ N Knoten (max. M fehlerhaft) Sicherheitsanforderungen ● Ein Angreifer kann nicht erreichen, dass K gültige Teilsignaturen erzeugt werden, aus denen durch den Kombinationsalgorithmus keine gültige Signatur entsteht ● Ein Angreifer kann keine gültige Signatur erzeugen, falls weniger als K-M ehrliche Knoten eine Teilsignatur erzeugt haben K Teilsignaturen Kombinationsalgorithmus gültige Signatur s Randbedingung N-M ≥ K > M (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 15 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ Algorithmen für Verteilte Systeme (AVS), WS 2005/06 14 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Anforderung an den Kombinationsalgorithmus ● Ergebnis ist eine einfach zu überprüfende Gesamtsignatur ● Hier betrachtetes Verfahren: gewöhnliche RSA-Signatur Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 16 Verteilte Schwellwert-Signaturen Grundlage: Polynom-Interpolation ● Ein Polynom f von Grad K- 1 ist durch K Stützstellen eindeutig definiert ● Interpolationsformel (Lagrange) f( x) = ∑ s∈S Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ f(s) ⋅ λs(x) Algorithmen für Verteilte Systeme (AVS), WS 2005/06 17 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm m = m ∑ = m s∈S f(s ) ⋅ λs(0) = ∏ s∈S (m f( s) ) ■ λs(0) = ∏m i i Signatur-Share des Teilnehmers i 18 Signatur-Shares müssen sich auf Gültigkeit überprüfen lassen Verteilung des Schlüssels muss gelöst werden – Initiale Erzeugung des geheimen Schlüssel und der Key-Shares erfordert im beschriebenen Verfahren einen Knoten, der in jedem Fall vertrauenswürdig sein muss 19 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm – mi := msi – Angreifer darf nicht in der Lage sein, durch Erzeugung eines ungültigen Shares die Erzeugung einer gültigen digitalen Signatur zu behindern λs(0) Gesamtsignatur ist aus den Signatur-Shares berechenbar, die Schlüssel-Shares können geheim bleiben Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Schlüssel-Share für Teilnehmer i Zusätzliche Randbedingungen ● ● RSA-Secret-Key – si := f(i) (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ● f(0 ) – d = f(0) Verteilte Schwellwert-Signaturen Polynom-Interpolation: Anwendung auf RSA (2) d Verteilung des Sekret Key auf die N Teilnehmer in Form von Stützstellen eines Polynoms von Grad K Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Verteilte Schwellwert-Signaturen ■ Polynom-Interpolation: Anwendung auf RSA ● Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ Verteilte Schwellwert-Signaturen Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 20 Verteilte Erzeugung von Zufallszahlen ■ ABBA Basierend auf (N,K,M)-Schwellwert-Signatur ■ Forschungsarbeit bei IBM Research in Zürich – ABBA: Asynchronous Binary Byzantine Agreement N Knoten (max. M fehlerhaft) – Sintra: Secure INtrusion Tolerant Replication Architecture K „Shares“ ■ Kombinationsalgorithmus Wert F(x) aus {0, 1} ● – 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 Randbedingung N-M ≥ K > M F(x) sei eine nicht vorhersehbare Funktion, die einen beliebigen Eingabewert auf {0, 1} abbildet: – C. Cachin, K. Kursawe, F. Petzold, V. Shoup: Secure and Efficient Asynchronous Broadcast Protocols. Proc. Crypto 2001 – Jeder Knoten kann einen „Share“ von F(x) erzeugen 21 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm – C. Cachin, J. Poritz: Secure Intrusion-tolerant Replication on the Internet. Proc. Intl. Conference on Dependable Systems and Networks, 2002 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 – K Shares sind notwendig und hinreichend, um den Wert von F(x) zu ermitteln Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ABBA: Begriffsdefinitionen N Knoten (max. M fehlerhaft) mit berechenbarem Verhalten ■ durch probabilistisch polynomiale Berechnungen beschreibbar ■ ■ Verwendung von: ● Verfahren für N Teilnehmer ● Jeweils K Teilnehmer können gemeinsam Signatur erzeugen Bis zu M Teilnehmer dürfen sich dabei fehlerhaft verhalten (N, M+1, M) bzw (N, N-M, M) Schwellwert-Signatur S0 / S ● ● (N, N-M, M) Schema für verteilte Zufallszahlen Randbedingungen: ● Initialisierung erfordert „Trusted Dealer“ Jede Entscheidung hat eindeutige Folgenummer (TID) Alle Nachrichten sind signiert und „begründet“ Einschränkung der Möglichkeiten eines Angreifers Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm – K>M (fehlerfreie Knoten müssen beteiligt sein) – K <= N-M (Signatur ohne Beteiligung fehlerhafter Knoten!) Ausprägungen (N = 3 M + 1) 23 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 (N, K, M)-Schwellwert-Signatur: ● Jeder Knoten Pi hat für eine TID einen Initialwert Vi aus {0,1} ■ 22 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ABBA: Systemmodell ■ Literatur – (N, N-M, M)-Schema: An jeder Signatur sind N-M Knoten und somit sicher die Mehrheit der fehlerfreien Knoten beteiligt – (N, M+1, M)-Schema: An jeder Signatur ist mindestens ein korrekter Knoten beteiligt Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 24 ABBA: Begriffsdefinitionen ■ ABBA: Garantierte Eigenschaften (N, K, M)-Schema für verteilte Zufallszahlen ■ Übereinstimmung und Gültigkeit ■ Deadlock-Freiheit: Es wird kein Zustand erreicht, bei dem ● Verfahren für N Teilnehmer ● Je K Teilnehmer können gemeinsam Zufallszahl erzeugen – der Algorithmus in allen korrekten Knoten aktiviert wurde ● Bis zu M Teilnehmer dürfen sich dabei fehlerhaft verhalten – der Algorithmus noch nicht terminiert ist – alle Nachrichten, die von aktivierten korrekten Knoten ausgesendet wurden, zugestellt und verarbeitet worden sind Anwendung bei ABBA: (Sonst würde das System auf den Empfang von Nachrichten warten, aber kein korrekten Knoten würde Nachrichten aussenden) (N, N-M, M)-Schema (Zufallszahl kann nur dann ermittelt werden, wenn die Mehrheit der korrekten Knoten „mithilft“) Algorithmen für Verteilte Systeme (AVS), WS 2005/06 25 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ABBA: Der Algorithmus im Detail (1) ■ Schritt 0: r := 1; Jeder sendet PreProcess an alle und aus Antworten einen signierten Anfangswert – Sobald 2 M + 1 Nachrichten eingetroffen sind, wird S0-Signatur für Mehrheitswert (M +1 gleiche Nachrichten) erzeugt und als Initialwert b für die folgenden Schritte verwendet Schritt 2: Warte auf N-M PreVote-Nachrichten für Runde r Anzahl Nachrichten mit gleichem Wert x=v: alle gleich: sende (Vote, r, v, just.) an alle ansonsten: sende (Vote, r, ?, just.) an alle (alle korrekten Knoten mit gleichem Initialwert: Nur dieser Wert S0-signiert!) ■ Schritt 3: Warte auf N - M Nachrichten (Vote, r, v, just.) (a) Falls >=eine Nachricht mit v ≠ ?: xP = v (b) Falls alle für v: solche Nachrichten: fertig (c) sonst: xP über CoinShare gewählt aus {0, 1} Alle Runden r – Jeder sendet (PreVote, r, b, justification) an alle mit gültiger S-Teilsignatur; justification: Begründung für die Gültigkeit des Werts b: Schritt 4: r := r + 1; weiter mit Schritt 1 27 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Nur vor erster Runde: Vorverarbeitungs-Schritt: – Jeder sendet Initialwert als (PreProcess, b) mit S0 teilsigniert an alle Schritt 1: Sende (PreVote, r, xP, just) an alle Knoten (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 26 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ABBA: Überblick über den Algorithmus Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Schnelle Konvergenz: – Die Anzahl x der Nachrichten bis zur Einigung ist beschränkt durch die Wahrscheinlichkeitsaussage P( x > 2 r + 1 ) < 2-r + ε mit ε vernachlässigbar klein und r=Anzahl der asynchronen „Runden“ Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ■ Runde r=1: Runde r>1: oder (PreProcess, b) mit S0-Signatur (PreVote, r-1, b) mit S-Signatur (Vote, r-1, abstain) mit S-Signatur, und Wert b ermittelt durch b := coin(TID, r-1) Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 28 ABBA: Der Algorithmus im Detail (2) ■ ABBA: Korrektheitsüberlegungen Nach Empfang von N-M gültigen PreVote-Nachrichten: ■ – jeder Knoten erzeugt (Vote, r, b, justification) mit b aus {0, 1, abstain} und justification als Begründung dafür – Nachweis der Korrektheit aller Schritte durch Signaturen – Dadurch Möglichkeiten eines Angreifers stark eingeschränkt – PreVote sowohl für b=0 als auch b=1: b := abstain; justification: je ein PreVote mit b=0,1 – Ansonsten: N-M PreVote für einen Wert b; justification: daraus gewonnene gültige S-Signatur ■ ■ – Wenn sich der erste ehrliche Knoten in Runde r entscheidet, dann entscheiden sich alle ehrlichen Knoten in Runde r oder r+1 – Falls alle Werte gleich: Entscheidung für diesen Wert N-M main-vote für einen Wert b in Runde r ⇒mindestens N-2M main-vote für b von ehrlichen Knoten in Runde r ⇒maximal N - (N-2M) = 2M main-vote für abstain, 2M < N-M ⇒kein soft pre-vote in nächster Runde möglich ⇒alle pre-vote in Runde r für den selben Wert b Uebung-BenOr-ABBA.fm: 13.12.05 13:39 – Aufdeckung von Coin(TID,r) (coin-share an alle senden) – Falls alle N-M „abstain“-Werte: gültige S-Signatur für abstain – Ansonsten: mind. ein Wert, als justification: PreVote mit S-Sig. 29 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Uebung-BenOr-ABBA.fm: 13.12.05 13:39 – Ansonsten: weiter mit nächster Runde; Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ABBA: Einbettung in Gesamtarchitektur Deadlock-Freiheit und schnelle Konvergenz ● ■ Deadlock-Freiheit: Atomarer Broadcast – Bei jeder Warteoperation wird auf N-M Nachrichten gewartet. Diese kommen sicher immer an, weil es in jeden Fall so viele korrekte Knoten gibt, und jeder korrekte Knoten die erwartete Nachricht aussendet Broadcast-Primitive – 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 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ABBA Threshold-Kryptographie 31 Zuverlässige Punkt-zu-Punkt-Verbindungen Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Mehrwertige Einigung Schnelle Konvergenz: Algorithmen für Verteilte Systeme (AVS), WS 2005/06 SINTRA: Secure Intrusion Tolerant Replication Architecture Sicherer kausaler atomarer Broadcast – Es wird vorausgesetzt, dass maximal M Knoten sich fehlerhaft verhalten dürfen, und die Kommunikation zwischen fehlerfreien Knoten zuverlässig ist ● 30 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ABBA: Korrektheitsüberlegungen ■ Entscheidungsfindung – Nur für einen Wert b aus {0,1} kann es eine erfolgreich S-signierte pre-vote-Nachricht geben Nach Empfang von N-M gültigen Vote-Nachrichten: Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Möglichkeiten des Angreifers Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 32 SINTRA: Broadcast-Primitive ■ ABBA 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 ● Sobald N+M+1 ------------------------2 ■ „Echo“-Nachrichten oder M + 1 „Fertig“- 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 - M Knoten Initialwerte empfangen hat, führt er folgende Schritte wiederholt aus: Nachrichten empfangen wurden, sendet ein Knoten „Fertig“Nachrichten an alle Sobald 2 M + 1 „Fertig“-Nachrichten empfangen wurden, akzeptiert ein Knoten die Nachricht und liefert diese an die nächste Schicht aus – Der Knoten startet ABBA schlägt den Wert 1 genau dann vor, wenn von Pa ein gültiger Vorschlagswert empfangen wurde Falls der Sender nicht ehrlich ist, terminiert dieser Algorithmus u.U. nicht! Algorithmen für Verteilte Systeme (AVS), WS 2005/06 33 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 ● – In jeder Wiederholung wird nach einem festgelegten Verfahren ein Kandidat Pa aus der Menge aller Knoten ausgewählt – Falls die Einigungs auf 0 lautet, erfolgt der nächste Schleifendurchlauf, ansonsten ist Pa der Einigungswert Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ABBA ■ ABBA Atomarer Broadcast ● Garantie einer totalen Ordnung auf einer Folge von Nachrichten ● Umsetzung mit Hilfe der mehrwertigen Einigung 34 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ■ 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 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 35 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 Uebung-BenOr-ABBA.fm: 13.12.05 13:39 – Sender verschlüsselt die Nachricht mit Hilfe eines globalen öffentlichen Schlüssels – Sobald die Nachricht ausgeliefert werden soll, kann sie von N-M Knoten gemeinsam entschlüsselt werden Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 36 ABBA ■ Zusammenfassung ● Praktikable Lösung des Einigungsproblem in einem asynchronen, probabilistischen Modell ● Tolerierung von bis zu M Fehlern bei insgesamt N > 3 M Knoten ● Schnelle Konvergenz auf den Einigungswert ● Hierarchische Struktur aus einzelnen modularen Blöcken – von einfacher, binärer Einigung – über atomaren Broadcast Uebung-BenOr-ABBA.fm: 13.12.05 13:39 – bis hin zu sicheren kausalen atomaren Broadcast Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 37