04.02.2013 Aufrufe

Full paper (pdf) - CDC

Full paper (pdf) - CDC

Full paper (pdf) - CDC

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!