-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft ein Netzwerk, dessen Prozessorknoten
in einer asynchronen Weise Informationen austauschen, und insbesondere
ein Verfahren zur Teilung eines geheimen Wertes unter den Knoten
in einer Weise, dass ein ausreichend großer Teil der Knoten den geheimen
Wert rekonstruieren kann, während
ein kleinerer Teil ihn nicht beeinträchtigen kann, selbst nicht
in Gegenwart unerkannter feindlicher Knoten.
-
HINTERGRUND
DER ERFINDUNG
-
Schemata
zur Geheimnisteilung gewährleisten
die Geheimhaltung und schützen
die Integrität
von Informationen durch die Verteilung der Information auf n verschiedene
Orte. Die Information kann nur wiederhergestellt werden, wenn man
Zugang zu einer bestimmten Mindestanzahl von Orten hat. Speziell
in einem (k, n)-Schwellenwertschema können k Orte zusammen die geheime
Information rekonstruieren, wohingegen k – 1 Orte keinerlei Information über das
Geheimnis erhalten können.
-
In
der Veröffentlichung „Proactive
secret sharing or: How to cope with perpetual leakage" von H. Krawczyk
et al. in Crypto '95,
S. 339–352,
Santa Barbara, 1995, wird ein synchrones proaktives Schema zur Geheimnisteilung
vorgestellt. Darin wird die Lebensdauer des Systems lediglich in
Kurzzeiträume
unterteilt, sodass die Annahme plausibel ist, dass ein Angreifer
während
eines Zeitraums nicht in mehr als k – 1 Orte eindringen kann. Außerdem wird
davon ausgegangen, dass es sich um einen temporären Angreifer handelt, d.h. befallene
Server können
ermittelt und neu gestartet werden, sodass der Angreifer die Kontrolle
verliert, den letzten Zustand des Servers jedoch speichert. Zu Beginn
jedes Zeitraums wird das System aktualisiert, sodass die Information,
die ein Angreifer in einem vorangegangenen Zeitraum erlangt hat,
veraltet ist. Zur Aktualisierung des Systems gehört die Erzeugung einer neuen
Teilung des alten Geheimnisses nach dem Zufallsprinzip.
-
Von
Ran Canetti und Tal Rabin wurde in der Veröffentlichung „Fast asynchronous
Byzantine agreement with optimal resilience", in STOC 93, S. 42–51, New York, 1993, ein asynchrones
System zur prüfbaren Teilung
von Geheimnissen vorgeschlagen, das auf den Ideen von Feldman und
Micali, dargelegt in „An
Optimal Probabilistic Protocol for Synchronous Byzantine Agreement", in STOC 88, S.
148–161,
New York, 1988, beruht. Das Schema verwendet zur Verschlüsselung
keinen öffentlichen
Schlüssel,
die Nachrichten des Schemas weisen jedoch eine sehr hohe Komplexität auf.
-
Der
Artikel „Fair
Public-Key Cryptosystems" von
Silvio Micali in Advances in Cryptology – Crypto, Santa Barbara, 16.–20. August
1992, Proceedings of the Annual International Cryptology Conference,
Springer-Verlag Berlin, Konferenzband 12, 16. August 1992, S. 113–138, XP000470380
ISBN: 3-540-57340-2, beschreibt ein Verfahren zum Aufbau von Public-Key-Verschlüsselungssystemen,
in denen sich der zugehörige private
Schlüssel
zum Entschlüsseln
nicht bei einer Regierungsbehörde
für nationale
Interessen befindet, sondern stattdessen Teile des privaten Schlüssels jeweils
einem Betreffenden einer Gruppe von Bevollmächtigten zugeteilt sind, von
diesen vertraulich behandelt und nur unter bestimmten Umständen an
vertraglich vereinbarte Parteien/Behörden herausgegeben werden,
z.B. aufgrund einer durch ein zuständiges Gericht erteilten Anweisung.
Der Artikel beschreibt die Möglichkeit,
dass zur Wiederherstellung des privaten Codes die kombinierten Anteile
nur eines Teils der Gesamtzahl von Bevollmächtigten erforderlich sind,
anstelle aller Anteile von allen Bevollmächtigten. Ebenso wird beschrieben,
dass es möglich
ist, die Anteile durch die Bevollmächtigten mittels eines Überprüfers, der
vom Verteiler der Anteile bereitgestellt wird, überprüft werden können.
-
Mit
der vorliegenden Erfindung soll ein Schema zur prüfbaren Teilung
eines Geheimnisses für
ein potentiell asynchrones Netzwerk geschaffen werden, wobei das
Schema maximal t defekte Vorrichtungen, Prozessoren oder Parteien
tolerieren kann. Potentiell asynchrones Netzwerk bedeutet in diesem
Sinne, dass das Netzwerk je nach den Umständen und den gegebenen Voraussetzungen
im synchronen oder asynchronen Modus arbeiten kann.
-
Außerdem soll
die vorliegende Erfindung ein zwischen n Prozessoren oder Parteien
einsetzbares Verfahren bereitstellen, bei dem höchstens t < n/3 Prozessoren defekt sind, des Weiteren
die Teilung in konstanter Zeit erreicht werden kann und die Anzahl
ausgetauschter Nachrichten in der Größenordnung von n2 liegt.
-
Glossar
-
Die
folgenden informellen Definitionen sollen zum Verständnis der
Beschreibung beitragen.
-
Beim
asynchronen prüfbaren
Teilen eines Geheimnisses (Asynchronous Verifiable Secret Sharing, AVSS)
wird ein geheimer Wert x durch einen Vermittler oder Verteiler unter
n Parteien P1, ..., Pn geteilt,
sodass jede Koalition von k – 1
Parteien x nicht beeinträchtigen,
wohingegen jede Koalition von k oder mehr Parteien x mit Erfolg
zusammensetzen kann. Dies wird auch als (k, n)-Teilung bezeichnet,
womit angedeutet wird, dass von n Parteien k Parteien zur Wiederherstellung
des geheimen Wertes x erforderlich sind.
-
Gruppe:
Eine Gruppe im kryptografischen Sinn ist ein algebraisches System
(G, *), das aus einer Menge von Elementen oder Zahlen sowie aus
einer Gruppenoperation (*) mit einigen festgelegten Eigenschaften besteht,
wobei (*) assoziativen Charakter trägt und ein neutrales Element
aufweist, und wobei jedes Element in G ein inverses Element besitzt.
Das Symbol (*) ist willkürlich
gewählt.
Tatsächlich
wird die Operation der meisten Gruppen entweder mit + oder • gekennzeichnet
und derartige Gruppen werden als additive bzw. multiplikative Gruppen
bezeichnet.
-
Zum
Beispiel besteht für
jede positive ganze Zahl q eine Menge Zq aus
den Integerwerten 0, ..., q – 1 und
bildet durch die Additionsoperation von Modulo q eine Gruppe. Außerdem bildet
die Teilmenge von Zq, die aus den zu a relativen
Primzahlen besteht, durch Multiplikation von Modulo q eine Gruppe
und wird mit Zq* bezeichnet. Wenn im Speziellen
p eine Primzahl ist, besteht Zq* aus {1,
..., p – 1}
und ist eine Gruppe mit p – 1
Elementen.
-
Hash-Funktion:
Eine Hash-Funktion ist eine berechnungstechnisch effiziente Funktion
für die
Abbildung von Binärzeichenfolgen
willkürlicher
Länge auf
Binärzeichenfolgen
einer festen Länge.
-
Hybride Ausfälle
-
Das
Verfahren zum Erreichen einer Byzantinischen Übereinkunft (Byzantine Agreement)
kann unterscheiden zwischen verschiedenen Arten, auf die ein Netzwerk
ausfallen kann. Zu diesen gehören:
Byzantinische Fehler (Byzantine Failures, BF): Beim Auftreten eines
byzantinischen Fehlers übernimmt
der Angreifer die volle Kontrolle über die jeweilige Maschine.
Alle Geheimnisse auf dieser Maschine werden an den Angreifer übergeben,
der jetzt ihr gesamtes Verhalten steuert.
-
Absturzfehler
(Crash Failures, CF): Ein Absturzfehler bedeutet, dass die jeweilige
Maschine die Ausführung
von Prozessen abbricht. Dies kann jederzeit geschehen, d.h. selbst
während
eines Broadcasts oder während
eine Nachricht gesendet wird. Es wird angenommen, dass es keinen
Mechanismus gibt, mit dessen Hilfe andere Parteien einen derartigen
Absturz zuverlässig
erkennen können.
-
Verbindungsfehler
(Link Failures, LF): Ein Verbindungsfehler tritt auf, wenn nicht
eine Partei, sondern eine der Verbindungen zwischen den Parteien
defekt ist. Da die Verbindung keinen Zugriff auf die Authentifizierungsschlüssel hat,
kann sie auf einfache Weise daran gehindert werden, Nachrichten
zu verändern
oder einzufügen.
Eine defekte Verbindung kann jedoch dazu führen, dass Nachrichten gelöscht oder
Verbindungen zwischen zwei Parteien vollständig unterbrochen werden.
-
Angreiferstruktur
-
Eine
Angreiferstruktur T ist eine Menge von Gruppen (Koalitionen) von
Parteien, deren Beschädigung das
System tolerieren sollte. Dies verallgemeinert ein Schwellenwertschema,
sodass es flexibler wird und sich an die Umgebungsstrukturen anpasst.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG UND IHRE VORTEILE
-
Gemäß der vorliegenden
Erfindung wird ein auf Maschinen implementierbares Verfahren bereitgestellt zur
Teilung eines geheimen Wertes x unter n teilnehmenden Netzwerkvorrichtungen über ein
asynchrones Netzwerk mit privaten Verbindungen (Links), d.h. die
Kommunikation zwischen vertrauenswürdigen Teilnehmern kann von
einem Angreifer nicht gelesen werden. Die n teilnehmenden Netzwerkvorrichtungen
umfassen t defekte Vorrichtungen und k Untervorrichtungen, die den
geheimen Wert x rekonstruieren können,
wobei t < n/3 und
k < n ist. Der
geheime Wert x wird durch einen Verteiler bereitgestellt. Das Verfahren
umfasst das Ableiten von Anteilswerten s
i und
Unteranteilswerten s
ij des geheimen Wertes
x durch den Verteiler mittels Anwendung eines linearen Geheimnisteilungsschemas
und das Ableiten von Prüfwerten
die
für die
Prüfung der
Gültigkeit
der Anteilswerte s
i und der Unteranteilswerte
s
ij verwendbar sind; das Senden einer Anteilsnachricht
an jede teilnehmende Netzwerkvorrichtung, wobei die Anteilsnachricht
die Unteranteilswerte s
Ais
iA,
s
Bis
iB, s
Cis
iC umfasst; das
Senden einer Broadcast-Prüfnachricht,
welche die Prüfwerte
umfasst;
das Empfangen der Prüfnachricht
mit den Prüfwerten
durch
mindestens l teilnehmende Netzwerkvorrichtungen, wobei n – t ≥ l ≥ 2t + 1 ist,
und das Durchführen
der folgenden Schritte 1)–4)
für jede
Empfängervorrichtung
im Netzwerk:
- 1) bei Empfang einer Anteilsnachricht
mit den Unteranteilswerten sij das Bestimmen
der Gültigkeit
der Unteranteilswerte sij in Abhängigkeit
von den Prüfwerten und
- 2) bei einem positiven Ergebnis der Bestimmung das Senden einer
Broadcast-Einverständnisnachricht,
die den Einverständniswert
Y umfasst;
- 3) das Empfangen von l Einverständnisnachrichten, welche die
Einverständniswerte
YA, YB, YC umfassen;
- 4) bei Empfang von l Einverständnisnachrichten das Erhalten
des Anteilswerts si entweder aus der vom
Verteiler D gesendeten Anteilsnachricht oder aus den Unteranteilswerten
sij, die von den teilnehmenden Netzwerkvorrichtungen
empfangen wurden, und das Bestimmen der Gültigkeit der Unteranteilswerte
sij in Abhängigkeit von den Prüfwerten .
-
In
einem zweiten Aspekt der vorliegenden Erfindung wird ein auf Maschinen
implementierbares Verfahren bereitgestellt zur Teilung eines geheimen
Wertes x unter n teilnehmenden Netzwerkvorrichtungen A, B, C über ein
asynchrones Netzwerk, wobei die n teilnehmenden Netzwerkvorrichtungen
A, B und C t defekte Vorrichtungen umfassen und k Untervorrichtungen,
die den geheimen Wert x rekonstruieren können, wobei t < n/3 und k ≤ n – t ist
und der geheime Wert x durch einen Verteiler D bereitgestellt wird.
Dieses Verfahren wird ohne Broadcast durchgeführt.
-
Das
Verfahren hat sich als effizient herausgestellt sowie als nahezu
optimal in dem Sinne, dass es eine maximale Anzahl beschädigter Parteien
verkraftet. Außerdem
ist es in asynchronen Umgebungen verwendbar und toleriert byzantinische
Fehler.
-
Wenn
bereits bestimmte geheime Werte x geteilt sind, kann das Verfahren
zur Teilung eines geheimen Wertes y mit dem Inhalt 0 eingesetzt
werden. Anhand der Prüfwerte
kann bestätigt
werden, dass der Wert von y tatsächlich
0 ist.
-
Durch
Addieren der Anteilswerte yi von 0 zu Anteilswerten
xi von x teilen sich die neuen Anteilswerte yi + xi das Geheimnis
x + 0, d.h. x.
-
Hierdurch
werden neue Anteilswerte desselben geheimen Wertes generiert, die
verwendet werden können,
um die alten Anteile nutzlos zu machen, die zum Angreifer durchgesickert
sein könnten.
-
Es
ist vorteilhaft möglich,
das Verfahren in einer Weise zu modifizieren, dass jede teilnehmende
Netzwerkvorrichtung mit dem Index i alle ihre Unteranteilswerte
s
il bis s
in und
s
li bis s
ni ableiten
kann. Somit ist es leicht möglich,
auf effiziente Weise eine weitere Netzwerkvorrichtung in eine Gruppe
von sich den geheimen Wert x teilenden Netzwerkvorrichtungen zu
integrieren, indem aus den bekannten Unteranteilswerten s
il bis s
in die entsprechenden
Unteranteilswerte
rekonstruiert
werden.
-
Die
Unteranteilswerte s
ij und zusätzliche
Prüfwerte
können
an jede teilnehmende Netzwerkvorrichtung gesendet werden und bei
Empfang einer ausreichenden Anzahl von zusätzlichen Prüfwerten können die Prüfwerte
entsprechend
den empfangenen zusätzlichen
Prüfwerten
modifiziert werden. Dies hat den Vorteil, dass das das für die Broadcast-Sendung
der Prüfnachricht
verwendete Broadcast-Grundelement vereinfacht werden kann, was eine
geringere Netzkommunikation zur Folge hat.
-
Wenn
der Schritt des Erhaltens des Anteilswerts si aus
den Unteranteilswerten sij, die von den
teilnehmenden Netzwerkvorrichtungen empfangen werden, des Weiteren
die Broadcast-Sendung einer Beschwerdenachricht und das Empfangen der
als Folge der Beschwerdenachricht gesendeten Unteranteilswerte sij umfasst, hat dies den Vorteil, dass der
Datenaustausch im Netz reduziert werden kann, sofern der Verteiler
vertrauenswürdig
ist, was normalerweise zutrifft.
-
Die
Prüfwerte
können abgeleitet
werden durch Auswählen
einer allgemeinen Zahl g aus einer dem linearen Schema zur Geheimnisteilung
entsprechenden kryptografischen Gruppe G und Ableiten der Prüfwerte
durch
Erheben der ausgewählten
allgemeinen Zahl g zur Potenz einer linearen Funktion f des Anteilswerts
s
i. Hierdurch kann ein einfaches kryptografisches
Grundelement zur Generierung der Prüfwerte
verwendet
werden.
-
Die
Prüfwerte
können mittels
einer Hash-Funktion abgeleitet werden. Dies führt zu kleineren Prüfwerten
und
somit müssen
weniger Daten über
das Netz übertragen
werden.
-
Es
können
mehrere geheime Werte gleichzeitig geteilt werden. Dies ist aufgrund
von Synergieeffekten effizienter.
-
Die
Anzahl t defekter Vorrichtungen kann als eine Menge T von Gruppen
betrachtet werden, die verschiedene teilnehmende Netzwerkvorrichtungen
umfassen, d.h. Vorrichtungen mit unterschiedlichen Betriebssystemen
und an unterschiedlichen Orten. Außerdem können die teilnehmenden Netzwerkvorrichtungen
hybride Fehler aufweisen, z.B. byzantinische Fehler, Absturzfehler
und Verbindungsfehler, was die unterschiedliche Struktur der Menge
T oder unterschiedliche Schwellenwerte ti bei
i = 1, 2 ... widerspiegelt. Dies zeigt die Flexibilität des Protokolls.
-
BESCHREIBUNG
DER ZEICHNUNGEN
-
Bevorzugte
Ausführungsarten
der Erfindung sind nachfolgend detailliert, aber nur exemplarisch
beschrieben, wobei Bezug auf die folgenden schematischen Zeichnungen
genommen wird.
-
1 zeigt
ein typisches asynchrones Netzwerk mit mehreren teilnehmenden Netzwerkvorrichtungen und
einem Verteiler.
-
2 zeigt
ein schematisches Diagramm des asynchronen Schemas zur prüfbaren Teilung
eines Geheimnisses.
-
3 zeigt
ein schematisches Diagramm des asynchronen Schemas zur prüfbaren Teilung
eines Geheimnisses ohne Broadcast.
-
4 zeigt
ein Szenario von teilnehmenden Netzwerkvorrichtungen, die in strukturierter
Weise verteilt sind.
-
Die
Zeichnungen dienen nur der Veranschaulichung und stellen nicht notwendigerweise
maßstabsgerechte
praktische Beispiele der vorliegenden Erfindung dar.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
1 zeigt
ein Beispiel eines üblichen
Computersystems 8, in dem ein geheimer Wert x geteilt wird. Es
besteht aus n = 4 teilnehmenden Netzwerkvorrichtungen A, B, C und
D, die über
Kommunikationsleitungen (1 bis 5) miteinander
vernetzt sind. Das System umfasst einen Verteiler D, der mit „x" bezeichnet ist.
-
Jede
teilnehmende Netzwerkvorrichtung A, B, C, D kann eine beliebige
Computereinheit nach dem Stand der Technik sein, von einem Computer
auf einem Chip über
einen tragbaren Computer bis hin zu einem großen Computersystem. Die Kommunikationsleitungen
können
beliebige Kommunikationsmittel sein, die zum Senden von Daten oder
Nachrichten von einer teilnehmenden Netzwerkvorrichtung A, B, C,
D zu einer anderen allgemein bekannt ist. Zum Beispiel können die
Kommunikationsleitungen entweder einzelne bidirektionale Kommunikationsleitungen 5 zwischen
jedem Paar der teilnehmenden Netzwerkvorrichtungen A, B, C, D sein
oder eine unidirektionale Leitung in jeder Richtung zwischen jedem
Paar der teilnehmenden Netzwerkvorrichtungen A, B, C, D. Ein derartiges
Computersystem 8 und die Kommunikationsleitungen 5 sind
in der Technik wohlbekannt. Wenn eine teilnehmende Netzwerkvorrichtung
A, B, C Informationen an sich selbst sendet, könnte ein äquivalentes Ergebnis erzielt
werden, indem die Daten lediglich innerhalb der teilnehmenden Netzwerkvorrichtung
bewegt und nicht über
die Kommunikationsleitung an sich selbst gesendet werden. Das übliche Computersystem 8 ist
dargestellt, um die Beschreibung des folgenden asynchronen Protokolls
zur prüfbaren
Teilung eines Geheimnisses zu erleichtern. Zur Bezeichnung gleicher
oder ähnlicher
Teile werden dieselben Bezugsnummern verwendet.
-
2 zeigt
den allgemeinen Ablauf des Protokolls zur Teilung eines geheimen
Wertes x unter den teilnehmenden Netzwerkvorrichtungen A, B, C,
D über
das asynchrone Netzwerk, wobei jede der teilnehmenden Netzwerkvorrichtungen
A, B, C, D eine Anzahl von Nachrichten sendet und empfängt.
-
Es
wird angenommen, dass der Verteiler D den geheimen Wert x teilen
möchte.
Aus dem geheimen Wert x leitet der Verteiler D wie durch Kasten
10 angedeutet
zunächst
anhand eines normalen linearen Schemas zur Geheimnisteilung, wie
es zum Beispiel in der Veröffentlichung „How to
share a secret" von
A. Shamir in Communications of the ACM 22, 1979, S. 612–613, beschrieben
ist, Anteilswerte s
i ab. Außerdem leitet
der Verteiler D auch so genannte Unteranteile, auch als Unteranteilswerte
s
ij bezeichnet, ab. Das heißt, dass
der Verteiler D für
jeden Anteilswert s
i die entsprechenden
Unteranteilswerte s
ij erzeugt. Die Unteranteilswerte
s
ij erhält
man durch ein anderes lineares Schema zur Geheimnisteilung, das
von der Erzeugung der Anteilswerte s
i unabhängig ist.
Alternativ kann der geheime Wert x unter Verwendung des Schemas
von Shamir mit einem Polynom über
zwei Variablen geteilt werden. Des Weiteren leitet der Verteiler
D die Prüfwerte
hier
durch einfache Potenzieroperationen in einer kryptografischen Gruppe
G ab. Diese Prüfwerte
werden
als Prüftabelle
interpretiert. Die Prüfwerte
können zur
Prüfung
der Gültigkeit
der Anteilswerte s
i und der Unteranteilswerte
s
ij verwendet werden.
-
-
Tabelle
1 zeigt die entsprechenden Unteranteilswerte sij für jeden
Anteilswert si. Alle Unteranteilswerte sij in einer Reihe teilen den in der ganz
linken Spalte stehenden Wert dieser Reihe, während alle Unteranteilswerte
sij in einer Spalte den obersten Wert in
der Spalte teilen, den Anteilswert si.
-
Zu
beachten ist, dass der Wert s10 den Wert
bezeichnet, der von den Werten s11, s12, ... s1n geteilt
wird, während
s01 den Wert bezeichnet, der von den Werten
s11, s21, ... sn1, geteilt wird.
-
Es
ist ein Vorteil, dass ein Absturz oder ein byzantinisches Verhalten
des Verteilers D in der Mitte des Protokolls toleriert werden kann.
Wenn t + 1 einander vertrauende, teilnehmende Netzwerkvorrichtungen
A, B, C annehmen, dass sie gültige
Anteilswerte si des geheimen Wertes x empfangen
haben, können
alle anderen vertrauenswürdigen
teilnehmenden Netzwerkvorrichtungen A, B, C mit Hilfe jener t +
1 vertrauenswürdigen teilnehmenden
Netzwerkvorrichtungen A, B, C ihre Anteilswerte si am
geheimen Wert x rekonstruieren, selbst wenn sie überhaupt nichts vom Verteiler
D gehört
haben.
-
Es
ist jedoch für
einen nicht vertrauenswürdigen
Verteiler D noch möglich,
beschädigte
Anteilswerte si zu verteilen, d.h. Anteilswerte
si, die sich nicht zu einem eindeutigen
geheimen Wert x kombinieren lassen. Zur Behandlung dieses Problems
fügt der
Verteiler D Prüfinformationen
hinzu, die es allen teilnehmenden Netzwerkvorrichtungen A, B, C
ermöglichen,
die Gültigkeit
der empfangenen Anteilswerte si zu prüfen, ohne
etwas über
den geheimen Wert x zu erfahren.
-
Der
Verteiler D sendet jeder teilnehmenden Netzwerkvorrichtung A, B,
C eine Anteilsnachricht sm, welche die im Kasten
20 angegebenen
entsprechenden Unteranteilswerte s
Ais
iA, s
Bis
iB,
s
Cis
iC umfasst,
und sendet eine Broadcast-Prüfnachricht
vm, welche die in Kasten
30 angegebenen Prüfwerte
umfasst.
Bei der Broadcast-Nachricht kann es sich um eine zuverlässige Broadcast-Nachricht handeln,
wie von Cachin et al. in „Secure
and Efficient Asynchronous Broadcast Protocols" in Joe Kilian, Hrsg., „Advances
in Cryptology",
Crypto, 2001, Lecture Notes in Computer Science, Band 2139, Springer-Verlag
2001, S. 524–541, beschrieben.
Für die
teilnehmenden Netzwerkvorrichtungen A, B, C mit dem Index i entsprechen
die Unteranteilswerte s
ij, die der Verteiler
D an diese teilnehmende Netzwerkvorrichtung A, B, C sendet, der
Reihe und der Spalte i in der Tabelle 1. Die durch die Kästen
10,
20 und
30 dargestellten
Schritte werden vom Verteiler D durchgeführt, wie durch den mit D bezeichneten
Kasten dargestellt.
-
Die
Prüfnachricht
vm umfasst weitere Informationen, die ausreichen, um alle Anteilswerte
si und Unteranteilswerte sij zu
prüfen,
welche die Empfängervorrichtung
A, B, C im Netzwerk empfängt,
während
das Protokoll läuft.
-
Die
teilnehmenden Netzwerkvorrichtungen A, B, C empfangen die Prüfnachricht
vm, wie im Kasten 40 dargestellt. Jede der Empfängervorrichtungen
A, B, C im Netzwerk führt
die folgenden Schritte durch.
-
Wurde
im vorangegangenen Schritt eine Anteilsnachricht sm empfangen, welche
die Unteranteilswerte s
ij umfasst, wird
die Gültigkeit
der Unteranteilswerte s
ij in Abhängigkeit
von den Prüfwerten
bestimmt, wie
im Kasten
50 dargestellt. Bei einem positiven Ergebnis
der Bestimmung wird eine Broadcast-Einverständnisnachricht gesendet, die
einen Einverständniswert
Y umfasst, wie im Kasten
60 dargestellt. Die entsprechenden
Netzwerkvorrichtungen A, B, C empfangen dann l Einverständnisnachrichten
mit n – t ≥ l ≥ 2t + 1, welche die
Einverständniswerte
Y
A, Y
B, Y
C umfassen, wie im Kasten
70 dargestellt.
Die Schritte in den Kästen
70 und
80 können auch
von einer teilnehmenden Netzwerkvorrichtung A, B, C ausgeführt werden,
welche die in den Kästen
40,
50 und
60 dargestellten
Schritte nicht durchgeführt
hat, wie durch den mit
90 bezeichneten Pfeil angezeigt.
-
Beim
Empfang von l Einverständnisnachrichten
erhält
jede teilnehmende Netzwerkvorrichtung A, B, C den Anteilswert s
i, entweder aus der vom Verteiler D gesendeten
Anteilsnachricht sm oder aus den Unteranteilswerten s
ij,
die von den anderen teilnehmenden Netzwerkvorrichtungen A, B, C
empfangen wurden. Dann wird die Gültigkeit der Unteranteilswerte
s
ij in Abhängigkeit von den Prüfwerten
bestimmt.
Dies ist im Kasten
80 dargestellt.
-
Verwendung von Commitments
-
Für jeden
Anteilswert si und Unteranteilswert sij berechnet der Verteiler D eine Commitmentfunktion C(si) bzw. C(sij) .
Die Commitments haben die Eigenschaft, dass, wenn die Anteilswerte
si und Unteranteilswerte sij zu
einem geheimen Wert x und dem Anteilswert si kombiniert
werden, C(si) (oder C(sij))
zu einem Geheimnis C(x) (oder (C(si)) kombiniert
werden.
-
Ein
Beispiel ist die Anwendung der Exponentation in einer finiten Gruppe
G von Primzahlen, d.h. C(si) = gsi, wie von Cachin et al. in „Random
Oracles in Constantinople: Practical Byzantine Agreement using Cryptography", POD000, Portland,
Oregon, 2000, beschrieben.
-
Allerdings
ist auch die Verwendung von weiterentwickelten Commitments, zum
Beispiel von Pedersen-Commitments möglich, wie von T. Pedersen
in „Non-interactive
and information-theoretic secure verifiable secret sharing", Crypto 1991, Lecture
Notes in Computer Science, Band 576, S. 129–140, Springer-Verlag 1992,
beschrieben.
-
Die
Commitments werden mittels einer konsistenten Broadcast-Nachricht auf alle
teilnehmenden Netzwerkvorrichtungen A, B, C verteilt, wie von Cachin
et al. in „Secure
and Efficient Asynchronous Broadcast Protocols" in Joe Kilian, Hrsg., „Advances
in Cryptology",
Crypto, 2001, Lecture Notes in Computer Science, Band 2139, S. 524–541, Springer-Verlag
2001, beschrieben, d.h. alle teilnehmenden Netzwerkvorrichtungen A,
B, C empfangen dieselben Commitments; diese Broadcast-Sendung kann
durch Hinzufügen
eines neuen Schrittes zum Protokoll vereinfacht werden, wie nachfolgend
in der Beschreibung der Optimierung der Kommunikationskomplexität gezeigt.
-
Das
Protokoll funktioniert dann wie folgt:
- 1. Der
Verteiler D verteilt alle Anteilswerte si und
Unteranteilswerte sij auf die teilnehmenden
Netzwerkvorrichtungen A, B, C mit dem Index i und sendet die Prüftabelle
mittels einer entsprechenden Broadcast-Nachricht.
- 2. Jede teilnehmende Netzwerkvorrichtung A, B, C, welche die
oben genannten Nachrichten des Verteilers D empfängt, prüft, ob:
- • ihre
Anteilswerte si und Unteranteilswerte sij den Funktionen C(si)
und C(sij) in der Prüftabelle entsprechen;
- • die
C(sij) in der Prüftabelle eine eindeutige C(si) bilden;
- • die
C(sji) in der Prüftabelle einen eindeutigen
Wert bilden.
- 3. Empfängt
eine teilnehmende Netzwerkvorrichtung A, B, C mit dem Index i alle
Anteilswerte si und Unteranteilswerte sij und alle Prüfungen verlaufen erfolgreich,
sendet die Vorrichtung eine Broadcast-OK-Nachricht.
- 4. Bei Empfang von ausreichend vielen, d.h. mindestens 2t +
1, OK-Nachrichten akzeptiert die betreffende teilnehmende Netzwerkvorrichtung
A, B, C mit dem Index i den Verteiler D und dessen Anteilswert si.
- 5. Hat eine teilnehmende Netzwerkvorrichtung A, B, C mit dem
Index i noch keinen gültigen
Anteilswert si empfangen, sendet sie eine
Beschwerdenachricht an alle teilnehmenden Netzwerkvorrichtungen
A, B, C. Bei Empfang einer derartigen Beschwerdenachricht senden
die teilnehmenden Netzwerkvorrichtungen A, B, C mit dem Index j,
welche die Beschwerdenachricht empfangen, ihren Unteranteilswert
sij an die teilnehmende Netzwerkvorrichtung
A, B, C mit dem Index i, welche die Beschwerdenachricht gesendet
hat. Diese teilnehmende Netzwerkvorrichtung A, B, C prüft dann
mit Hilfe der Prüftabelle
den Unteranteilswert sij und kombiniert
die gültigen
Anteilswerte zu si.
-
Optimieren der Kommunikationskomplexität
-
Die
Prüfnachricht
vm, welche die mittels der Broadcast-Nachricht vom Verteiler D gesendete
Prüftabelle
umfasst, ist relativ groß und
kann auf mehrere Arten komprimiert werden. Nachfolgend ist beschrieben, wie
das Protokoll modifiziert werden kann, damit es ein weniger aufwendiges
Broadcast-Ursprungselement sowie kleinere Prüfwerte verwendet:
- • Jede
teilnehmende Netzwerkvorrichtung A, B, C mit dem Index i empfängt nur
ihre Reihe i und Spalte i der Tabelle 1, d.h. für alle j, sij und
sji und die entsprechenden Prüfwerte C(sij) und C(sji). Des
Weiteren empfängt
jede teilnehmende Netzwerkvorrichtung A, B, C einen Hash-Wert in
jeder Reihe und jeder Spalte sowie die Werte C(sj0)
und C(s0j), wobei sj0 der
von sj1, ..., sjn geteilte
Wert ist. Diese Werte werden eventuell nicht in konsistenter Weise
durch die Broadcast-Nachricht verbreitet, d.h. die teilnehmenden
Netzwerkvorrichtungen A, B, C empfangen eventuell unterschiedliche
Werte, wenn der Verteiler D nicht vertrauenswürdig ist.
- • Bei
Empfang der Anteilsnachricht sm und der Prüfnachricht vm überprüft jede
teilnehmende Netzwerkvorrichtung A, B, C die von ihr empfangenen
Hash-Werte und Prüfwerte
und berechnet die Prüfwerte
C(sj0), C(s0j),
C(sij) und C(sji)
neu, falls dies notwendig ist, d.h., wenn sie nicht den Anteilswerten
sj0 und s0j sowie den
Unteranteilswerten sij und sji entsprechen.
- • Die
betreffende teilnehmende Netzwerkvorrichtung A, B, C sendet die
Unteranteilswerte sij und sji zusammen
mit den Hash-Werten und den – eventuell
neu berechneten – Prüfwerten
an die teilnehmenden Netzwerkvorrichtungen A, B, C mit dem Index
i.
- • Die
betreffende teilnehmende Netzwerkvorrichtung A, B, C wartet, bis
sie genügend,
d.h. mindestens 2t + 1, der oben genannten Nachrichten empfangen
hat, die mit deren Hash-Werten übereinstimmen
und gültige
Unteranteilswerte sij und sji entsprechend
dem Hash-Wert umfassen. Dann sendet sie eine OK-Nachricht an alle
teilnehmenden Netzwerkvorrichtungen A, B, C.
- • Bei
Empfang von ausreichend vielen, d.h. mindestens 2t + 1, OK-Nachrichten
akzeptiert jede teilnehmende Netzwerkvorrichtung A, B, C den Verteiler
D. Falls erforderlich, wird der Anteilswert si aus
den Unteranteilswerten sij berechnet.
-
Zu
beachten ist, dass das oben genannte Verfahren zur Optimierung der
Kommunikationskomplexität nicht
dafür vorgesehen
ist, eine Einigung zu garantieren, ob der Verteiler D akzeptiert
wird oder nicht; es ist möglich,
dass einige teilnehmende Netzwerkvorrichtungen A, B, C das Protokoll
nicht beenden, während
andere dies tun. Es ist jedoch am einfachsten, an das Ende des aktuellen
Protokolls ein Protokoll gemäß der Byzantinischen Übereinkunft
anzufügen
und sicherzustellen, dass, wenn eine teilnehmende Netzwerkvorrichtung A,
B, C den Verteiler D und seinen Anteilswert si akzeptiert,
alle vertrauenswürdigen
teilnehmenden Netzwerkvorrichtungen A, B, C mit dem Index j den
Verteiler D akzeptieren und ihren Anteilswert sj empfangen.
-
Ohne Broadcast
-
Es
ist möglich,
das Protokoll ohne Broadcast auszuführen und das Protokoll zur
prüfbaren
Geheimnisteilung in ein zuverlässiges
Broadcast zu integrieren. Dies hat den Vorteil, dass die durch Kommunikation
und Berechnung verursachte Last weiter reduziert wird, weil kein
konsistentes Broadcast verwendet wird. Konsistentes Broadcast schließt komplexe
Berechnungen für
digitale Signaturen ein, die somit vermieden werden.
-
3 zeigt
ein schematisches Diagramm eines derartigen asynchronen Schemas
zur prüfbaren
Geheimnisteilung ohne Broadcast. Zur Bezeichnung gleicher oder ähnlicher
Teile werden dieselben Symbole oder Bezugsnummern verwendet.
-
Das
Protokoll verwendet in diesem Fall drei Nachrichtenaustausch-Zyklen:
Wie
durch den Kasten 10 angezeigt, leitet der Verteiler D die
Anteilswerte si und Unteranteilswerte sij des geheimen Wertes x ab, indem er ein
lineares Schema zur Geheimnisteilung anwendet.
-
Außerdem leitet
der Verteiler D Prüfwerte
ab,
die zur Prüfung
der Gültigkeit
der Anteilswerte s
i und Unteranteilswerte
s
ij verwendet werden können. Im nächsten Schritt, Kasten
22,
wird eine erste Nachricht (1.), welche die entsprechenden Unteranteilswerte
s
Ais
iA, s
Bis
iB, s
Cis
iC und Prüfwerte
umfasst,
an jede teilnehmende Netzwerkvorrichtung A, B, C gesendet.
-
Bei
mindestens 2t + 1 teilnehmenden Netzwerkvorrichtungen A, B, C werden
von jeder teilnehmenden Netzwerkvorrichtung A, B, C mit dem Index
i die folgenden Schritte i.)–vii.)
ausgeführt:
- i.) Jede teilnehmende Netzwerkvorrichtung A,
B, C mit dem Index i, welche die erste Nachricht (1st:) vom Verteiler
D empfängt,
bestimmt in Abhängigkeit
von den Prüfwerten die
Gültigkeit
aller Unteranteilswerte sij, sji für i = 1,
..., n und j = 1, ..., n, wie in Kasten 32 dargestellt.
- ii.) Bei einem positiven Ergebnis der Bestimmung leitet die
am Netzwerk teilnehmende Vorrichtung mit dem Index i aus den empfangenen
Unteranteilswerten sij, sji die
relevanten Unteranteilswerte sim, smi ab, die mit denen der anderen am Netzwerk
teilnehmenden Vorrichtungen A, B, C mit dem Index m übereinstimmen. Dann
sendet die teilnehmende Netzwerkvorrichtung mit dem Index i eine
zweite Nachricht (2.), welche die Prüfwerte für r = 1,
..., n und j = 1, ..., n und die relevanten Unteranteilswerte sim, smi umfasst,
an jede teilnehmende Netzwerkvorrichtung A, B, C mit dem Index m,
wie in Kasten 34 dargestellt.
- iii.) Empfängt
eine teilnehmende Netzwerkvorrichtung A, B, C mit dem Index j die
zweite Nachricht (2.:), wird die Gültigkeit der empfangenen Unteranteilswerte
sij, sji in Abhängigkeit
von den Prüfwerten , durch
die am Netzwerk teilnehmenden Vorrichtungen A, B, C mit dem Index
i bestimmt, wie in Kasten 42 dargestellt.
- iv.) Bei einem positiven Ergebnis der Bestimmung für 2t + 1
empfangene zweite Nachrichten (2.:) – siehe Kasten 44 – wird eine
dritte Nachricht (3.), welche die Prüfwerte und
die relevanten Unteranteilswerte sim, smi umfasst, an jede teilnehmende Netzwerkvorrichtung
A, B, C mit dem Index m gesendet, wie in Kasten 46 dargestellt.
Falls keine erste Nachricht (1.:) empfangen wurde, werden die relevanten
Unteranteilswerte sim, smi aus
den empfangenen zweiten Nachrichten (2.:) abgeleitet, wie durch
den mit 92 bezeichneten Pfeil gezeigt.
- v.) Empfängt
eine teilnehmende Netzwerkvorrichtung A, B, C mit dem Index j die
dritte Nachricht (3.:), wird die Gültigkeit der empfangenen Unteranteilswerte
sij, sji in Abhängigkeit
von den Prüfwerten , bestimmt,
wie in Kasten 52 dargestellt.
- vi.) Bei einem positiven Ergebnis der Bestimmung für t + 1
empfangene dritte Nachrichten (3.:) und wenn die dritte Nachricht
(3.) nicht gesendet wurde – siehe
Kasten 54 – wird
eine dritte Nachricht (3.), welche die Prüfwerte und
die relevanten Unteranteilswerte sim, smi umfasst, an jede teilnehmende Netzwerkvorrichtung
A, B, C mit dem Index m gesendet, wie in Kasten 56 dargestellt.
Falls keine erste Nachricht (1.:) empfangen wurde, werden die relevanten
Unteranteilswerte sim, smi aus
den empfangenen zweiten oder dritten Nachrichten (2.:, 3.:) abgeleitet,
wie durch den mit 94 bezeichneten Pfeil für die empfangenen
dritten Nachrichten (3.:) gezeigt.
- vii.) Bei einem positiven Ergebnis der Bestimmung für 2t + 1
empfangene dritte Nachrichten – siehe
Kasten 58 – wird
der Anteilswert si aus den empfangenen ersten,
zweiten oder dritten Nachrichten (1.:, 2.:, 3.:) abgeleitet, wie
in Kasten 80 dargestellt. Dies bedeutet, dass der vom Verteiler
D kommende Anteilswert si akzeptiert ist.
-
Das
effizientere Protokoll kann mit dem Verfahren zur Verwendung von
Commitments und mit dem Verfahren zur Optimierung der Kommunikationskomplexität kombiniert
werden. Das sich daraus ergebende Protokoll hat den Vorteil, dass
die Komplexität
von Kommunikation und Berechnung weiter reduziert wird. Vorteilhaft
ist, dass es auch eine Einigung darüber gewährleistet, ob der Verteiler
D akzeptiert wird oder nicht, sodass jede teilnehmende Netzwerkvorrichtung
A, B, C das Protokoll nur dann beendet, wenn alle anderen teilnehmenden
Netzwerkvorrichtungen A, B, C dies tun.
-
Hybride Angreiferstrukturen
-
Indem
man – anstelle
eines festen Schwellenwertes t aus n Beschädigungen – real existierende Strukturen
wiedergibt, ist es möglich,
mehr Flexibilität
zu erreichen.
-
Ein
Angreifer könnte
zum Beispiel in der Lage sein, alle teilnehmenden Netzwerkvorrichtungen
mit einem bestimmten Betriebssystem zu kontrollieren, oder er könnte einen
Systemadministrator bestechen, sodass er ihm Zugriff auf alle teilnehmenden
Netzwerkvorrichtungen eines bestimmten Standortes gewährt. Angreiferstrukturen
kommen mit einem derartigen Angriffsschema zurecht.
-
Zur
Definition einer Angreiferstruktur T muss man jede Koalition von
Parteien definieren, deren Beschädigung
das System tolerieren sollte, z.B. Koalitionen aller teilnehmenden Netzwerkvorrichtungen
mit demselben Betriebssystem. Die Menge aller dieser Gruppen bildet
dann die Angreiferstruktur T.
-
4 zeigt
ein Szenario von 19 Standorten von teilnehmenden Netzwerkvorrichtungen
P1 bis P19 mit einer
strukturierten Verteilung, d.h. jede teilnehmende Netzwerkvorrichtung
P1 bis P19 weist
ein Betriebssystem OS-1 bis OS-4 auf und einen Ort in einem Land
C1 bis C4. Konventionelle t-aus-n-Strukturen können eine beliebige Gruppe
von sechs teilnehmenden Netzwerkvorrichtungen tolerieren, die mit
einem byzantinischen Fehler ausfallen. Bei Verwendung der entsprechenden
Angreiferstrukturen kann man gleichzeitige Ausfälle von 1 Betriebssystem und
1 Ort tolerieren. Im vorliegenden Beispiel können dies bis zu 10 teilnehmende
Netzwerkvorrichtungen sein (z.B. Ausfall aller teilnehmenden Netzwerkvorrichtungen
im vierten Land C4 oder mit dem ersten Betriebssystem OS-1) oder
weniger als vier, wenn die Beschädigungen
gut verteilt sind, d.h. vier am Netzwerk teilnehmende, auf alle
Länder
und alle Betriebssysteme verteilte Vorrichtungen.
-
In
dem Protokoll zur Teilung eines Geheimnisses x können gleichzeitig verschiedene
Arten von Ausfällen
auftreten. Zum Beispiel könnten
das Absturzfehler CF, byzantinische Fehler BF und Verbindungsfehler LF
sein. Dies ermöglicht
es, eine größere Anzahl
von Ausfällen
zu tolerieren.
-
Die
vorliegende Erfindung kann in Hardware, Software oder einer Kombination
von Hardware und Software realisiert werden. Jede Art von Computersystem – oder jede
andere Einrichtung zur Ausführung
der in der vorliegenden Patentanmeldung beschriebenen Verfahren – ist geeignet.
Eine typische Kombination von Hardware und Software könnte ein
Mehrzweck-Computersystem mit einem Computerprogramm sein, das, wenn
es geladen und ausgeführt
wird, das Computersystem in der Weise steuert, dass es die in der vorliegenden
Patentanmeldung beschriebenen Verfahren ausführt. Die vorliegende Erfindung
kann auch in ein Computerprogrammprodukt eingebettet werden, welches
alle Merkmale zur Implementierung der in der vorliegenden Patentanmeldung
beschriebenen Verfahren umfasst und das – wenn es in ein Computersystem
geladen wird – diese
Verfahren ausführen
kann.
-
Mit
dem Begriff Computerprogrammmittel oder Computerprogramm ist im
vorliegenden Zusammenhang jeder beliebige Ausdruck – in jeder
beliebigen Sprache, jedem Code oder jeder Notation – einer
Menge von Anweisungen gemeint, die dazu dienen, ein System, das
die Fähigkeit
zur Informationsverarbeitung besitzt, entweder direkt oder nach
einem oder beiden der folgenden Schritte eine bestimmte Funktion
ausführen zu
lassen: a) Konvertierung in eine andere Sprache oder Notation oder
in einen anderen Code; b) Reproduktion in einer anderen materiellen
Form.