04.02.2013 Aufrufe

Full paper (pdf) - CDC

Full paper (pdf) - CDC

Full paper (pdf) - CDC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

ialisieren lassen und die Methode zur Rekonstruktion des Geheimnisses<br />

implementieren (der man dann genügend viele Anteile übergeben muß).<br />

SecretSharingException diese Ausnahme wird geworfen, wenn ein Fehler bei<br />

der Rekonstruktion eines Geheimnisses auftritt.<br />

PasswordIntegrityProtected diese Schnittstelle wird von Geheimnisanteilen<br />

implementiert, die mit einem Integritätspaßwort geschützt werden sollen.<br />

Sie definiert Methoden zum Setzen und Überprüfen des Paßworts.<br />

AbstractSecretShare diese abstrakte Klasse stellt Default-Implementierungen<br />

für die Methoden eines SecretShare bereit und dient damit zur Vermeidung<br />

von Code-Duplikaten.<br />

AbstractSecretShareWithPassword diese abstrakte Klasse erweitert AbstractSecretShare<br />

um Unterstützung für die Schnittstelle PasswordIntegrityProtected<br />

und damit um ein Integritätspaßwort.<br />

ShamirSecretShare diese Klasse stellt einen durch das Shamir-Verfahren entstandenen<br />

Anteil dar. Sie enthält auch Methoden zum Verteilen eines<br />

geheimen Byte-Arrays nach diesem Verfahren.<br />

XORSecretShare diese Klasse stellt einen durch das XOR-Verfahren entstandenen<br />

Anteil dar. Sie enthält auch Methoden zum Verteilen eines geheimen<br />

Byte-Arrays nach diesem Verfahren.<br />

SecretSharer diese Klasse enthält statische Methoden zum einfachen Zugriff<br />

auf die Secret-Sharing-Funktionalität (Erzeugen, Prüfen und Kombinieren<br />

von Anteilen). Sie bietet damit eine Fassade für den Secret-Sharing-Teil<br />

des Pakets.<br />

Util diese Klasse enthält einige statische Hilfsmethoden, die von anderen Klassen<br />

verwendet werden können.<br />

blockweises Shamir-Secret-Sharing In der Schilderung des Shamir-Verfahrens<br />

in Abschnitt 2.2.1 sind wir davon ausgegangen, daß sich das Geheimnis<br />

einfach als Zahl auffassen und durch ein Polynom verteilen läßt. Dies ist bei<br />

Geheimnissen, die mehr als nur ein paar Byte lang sind, zwar möglich, aber<br />

unpraktikabel. Sinnvoller ist es, das Geheimnis in mehrere Blöcke aufzuteilen<br />

und diese einzeln zu verteilen. Dabei ergibt sich für jeden Block ein neues Polynom.<br />

Die Blockgröße kann beliebig gewählt werden, so daß man sich bei den<br />

Berechnungen auf Zahlenbereiche beschränken kann, die vom Computer effizient<br />

bearbeitet werden können. In unserer Implementierung haben wir das<br />

Geheimnis byteweise verteilt. Durch vorgeschaltete Base64-Kodierung bestanden<br />

die Bytes des Geheimnisses nur aus druckbaren ASCII-Zeichen, so daß wir<br />

Polynome modulo 127 verwenden konnten. Durch den festen Moduln konnten<br />

wir auch die notwendigen Invertierungen als Vorberechnungen ausführen und<br />

in einer Tabelle in das Programm integrieren.<br />

50

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!