Full paper (pdf) - CDC
Full paper (pdf) - CDC
Full paper (pdf) - CDC
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