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.

ShoupRSAPrivateKeyShare diese Klasse stellt einen durch das Verfahren zum<br />

Teilen von RSA-Schlüsseln nach Shoup (Abschnitt 3.6) entstandenen Teilschlüssel<br />

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

nach diesem Verfahren, sowie innere Klassen für die zugehörigen PartialSignature<br />

und PartialDecryption.<br />

RedundantElGamalPrivateKeyShare diese Klasse stellt einen durch das redundante<br />

Verfahren zum Teilen von speziellen ElGamal-Schlüsseln (Abschnitt<br />

3.8) entstandenen Teilschlüssel dar. Sie enthält auch Methoden zum Verteilen<br />

eines ExtendedElGamalPrivateKey nach diesem Verfahren, sowie<br />

eine innere Klasse für die zugehörige PartialDecryption.<br />

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

die Key-Sharing-Funktionalität (Erzeugen von Teilschlüsseln, Kombinieren<br />

von Teilsignaturen und -entschlüsselungen). Sie bietet damit eine Fassade<br />

für den Key-Sharing-Teil des Pakets.<br />

X509 diese Klasse enthält statische Hilfsmethoden im Zusammenhang mit X.509-<br />

Zertifikaten. Sie kapselt damit Aufrufe an das ASN1-Codec.<br />

PKCS7 diese Klasse enthält statische Hilfsmethoden im Zusammenhang mit<br />

PKCS7-Dateien. Dies ist ein standardisiertes Format für verschlüsselte<br />

und/oder signierte Daten. Die Klasse kapselt Aufrufe an das ASN1-Codec.<br />

JCA-kompatible Schlüsselkodierung Zur Integration in die JCA war es<br />

von entscheidender Bedeutung, daß die privaten Schlüsselanteile von Komponenten<br />

wie KeyStore und Signature verwendet werden können. Hierzu waren<br />

zwei Maßnahmen notwendig: die Unterstützung der JCA-Schnittstelle PrivateKey<br />

und eine Kodierung gemäß PKCS8. Dies erlaubt es nämlich beispielsweise einem<br />

KeyStore den Schlüssel zu serialisieren und wieder zu rekonstruieren. PKCS8<br />

identifiziert Schlüsselalgorithmen anhand eines Object Identifiers (OID). Der<br />

KeyStore sucht beim Laden von Schlüsseln dann über JCA eine KeyFactory<br />

für diesen OID, die wir folglich ebenfalls implementierten. Der verwendete OID<br />

ist 1.3.6.1.4.1.8301.3.2.99 und entstammt einem der TU Darmstadt zugeordneten<br />

Nummernkreis. Die PKCS8-Kodierung selbst enthält diesen OID und den<br />

Teilschlüssel als serialisiertes Java-Objekt.<br />

5.2.2 Paket keyshare.jca<br />

Das Paket keyshare.jca enthält Hüllen- und Adapterklassen mit denen eine<br />

möglichst große Kompatibilität zur Java Cryptographic Architecture hergestellt<br />

werden soll. Das Paket enthält Implementierungen von Cipher, Signature und<br />

KeyFactory zum Umgang mit Schlüsselanteilen sowie einen JCA-Provider, der<br />

die neuen Algorithmen anmeldet und dadurch verfügbar macht. Darüberhinaus<br />

werden die speziellen Schlüssel, die vom Shoup- und vom redundanten<br />

ElGamal-Key-Sharing-Verfahren benötigt werden, bereitgestellt. Die Struktur<br />

der im folgenden kurz beschriebenen Klassen und Schnittstellen ist in Abbildung<br />

5.3 dargestellt.<br />

54

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!