Full paper (pdf) - CDC
Full paper (pdf) - CDC
Full paper (pdf) - CDC
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5.3 Programmierschnittstelle<br />
5.3.1 Secret-Sharing-Basisfunktionalität<br />
Die grundlegenden Secret-Sharing-Funktionen werden durch die statischen Methoden<br />
der Klasse keyshare.SecretSharer zugänglich gemacht.<br />
Geheimnis verteilen<br />
public static SecretShare[] share<br />
(byte[] secret, int threshold, int sharenumber)<br />
throws InvalidParameterException, NoSuchAlgorithmException<br />
Diese Methode erzeugt für das Bytefeld secret insgesamt sharenumber Anteile,<br />
von denen threshold zur Rekonstruktion benötigt werden. Ob dabei die<br />
XOR-Methode oder das Shamir-Verfahren zum Einsatz kommt wird automatisch<br />
anhand des threshold entschieden Ungültige Werte für sharenumber und<br />
threshold führen zu einer InvalidParameterException, falls auf dem System<br />
keine MD5-Hashfunktion (zur Berechnung der ID für die Anteile) verfügbar ist,<br />
wird eine NoSuchAlgorithmException ausgelöst.<br />
Integritätspaßwort setzen<br />
public static void protectIntegrity<br />
(PasswordIntegrityProtected[] shares, String password)<br />
throws NoSuchAlgorithmException<br />
Bevor der Geber die Anteile an die Teilnehmer weiterreicht, kann er sie mit einem<br />
Integritätspaßwort versehen. Um das von der Methode share(byte[], int, int)<br />
erhaltene SecretShare[] übergeben zu können, ist ein Typecast notwendig.<br />
Bei den von der genannten Methode erzeugten SecretShare[] ist dies stets<br />
möglich. Falls die MD5-Funktion, auf der der Integritätsschutz beruht nicht<br />
verfügbar ist, wird eine NoSuchAlgorithmException ausgelöst.<br />
Anteile serialisieren<br />
byte[] bytes = share.getEncoded();<br />
Jeder SecretShare verfügt über eine Methode byte[] getEncoded(), die<br />
ihn in eine serialisierte Form überführt, in der er leicht transportiert werden<br />
kann. Da hierbei Java-Objektserialisierung zum Einsatz kommt, kann es mit einem<br />
java.io.ObjectInputStream aus dieser Form wieder instantiiert werden.<br />
Anteile zusammensetzen<br />
public static byte[] combine<br />
(SecretShare[] shares)<br />
throws NoSuchAlgorithmException, SecretSharingException<br />
public static byte[] checkAndCombine<br />
65