Full paper (pdf) - CDC
Full paper (pdf) - CDC Full paper (pdf) - CDC
Diese beiden Schlüssel bilden dadurch, daß sie in einer gewissen mathematischen Beziehung zueinander stehen, ein Schlüsselpaar. Mit dem öffentlichen Schlüssel eines Empfängers können Nachrichten verschlüsselt werden, die anschließend nur mit dessen privatem Schlüssel wieder entziffert werden können. Ein Public-Key-Kryptoverfahren basiert auf einem schwierigen (das heißt für praktische Zwecke nicht lösbaren) mathematischen Problem, das es unmöglich macht, den privaten Schlüssel aus dem öffentlichen Schlüssel zu berechnen, obwohl die Beziehung der beiden zueinander allgemein bekannt ist (sonst wäre es nicht als Schlüsselpaar zu verwenden). So wird es möglich, den öffentlichen Schlüssel völlig frei zu verteilen, ohne daß dadurch eine Gefahr für den geheimen Schlüssel (der weiterhin verborgen bleiben muß) entsteht. Man kann sich die Verwendung asymmetrischer Kryptographie wie einen Hausbriefkasten vorstellen [CKLW00, S. 8]: Jedermann, der im Besitz des öffentlichen Schlüssels ist, kann einen Brief hineinwerfen. Aber nur der Empfänger als Besitzer des privaten Schlüssels kann den Briefkasten öffnen und den Brief wieder herausnehmen. Neben dem vereinfachten Schlüsselmanagement bieten asymmetrische kryptographische Verfahren auch die Möglichkeit digitaler Signaturen. Hierbei erzeugt der Absender für das zu signierende Dokument mithilfe seines privaten Schlüssels eine Signatur, die fortan von jedem unter Verwendung des öffentlichen Absenderschlüssels überprüft werden kann. Die bekannteste konkrete Umsetzung von Diffies und Hellmans Idee ist das nach seinen Erfindern Ronald Rivest, Fiat Shamir und Leonard Adleman benannte RSA-Verfahren [RSA78], das wir in Abschnitt 3.3 erläutern wollen. Fast überall wo heute asymmetrische Kryptographie zum Einsatz kommt handelt es sich um RSA. 3.2 Modellierung von Key-Sharing Das wichtigste Einsatzgebiet von Secret-Sharing ist die sichere Verwahrung und Verwendung von privaten Schlüsseln eines Public-Key-Kryptosystems. Durch simple Secret-Sharing-Verfahren kann ein solcher Schlüssel sicher auf mehrere Teilhaber aufgeteilt und von diesen verwahrt werden. Soll der Schlüssel allerdings eingesetzt werden (zum Beispiel um eine digitale Signatur zu leisten), so muß er an einem Ort rekonstruiert werden, wodurch er wieder sehr angreifbar wird. Die Idee des Key-Sharings ist es, die Teilhaber in die Lage zu versetzen, die kryptographischen Operationen mit ihren Teilschlüsseln auszuführen, so daß die Ergebnisse anschließend kombiniert werden können. Dabei behalten sie die Kontrolle über ihre Teilschlüssel, die sie nicht offenbaren müssen. Das Shamir-Verfahren und homomorphe Funktionen Eine kryptographische Operation (etwa eine Entschlüsselung oder Signatur) ist eine Funktion g(x, k), deren Ergebnis von einer Eingabe x (beispielsweise der Nachricht) und einem Schlüssel k abhängt. Viele Kryptosysteme haben die Eigenschaft, daß diese Funktion homomorph ist, also g(x, k1 + k2) = g(x, k1) ∗ g(x, k2) 17
(dies muß nicht unbedingt für die gesamte Operation gelten, es reicht, wenn eine wesentliche Komponente davon homomorph ist: Hashfunktionen und Padding kann man hierbei oft außer acht lassen). Diese Homomorphie läßt sich gut mit dem Shamir-Secret-Sharing verknüpfen, denn dort wird der Schlüssel k verteilt als k = � λi,Λki, i∈Λ so daß g(x, k) verteilt ausgewertet werden kann: g(x, k) = g(x, � λi,Λki) = � g(x, λi,Λki) = � g(x, ki) λi,Λ . i∈Λ i∈Λ Dadurch wird es möglich, daß die Teilnehmer jeder für sich g(x, ki) berechnen und das Ergebnis an einen Kombinierer übermitteln, der das Endergebnis g(x, k) bestimmen kann, wenn er genügend Teilergebnisse erhält. Dazu benötigt der Kombinierer keinerlei geheime Informationen, lediglich die Identität der Teilnehmer (ihre Nummern i). Wir weisen darauf hin, daß wir in dieser Darstellung unterschlagen haben, daß die Berechnungen des Shamir-Verfahrens in einer primen Restklasse zu erfolgen haben, was zu einigen technischen Problem führt, auf die wir später eingehen werden. Die bekanntesten Public-Key-Verfahren setzen auf dem RSA- (siehe Abschnitt 3.3) oder dem ElGamal-Verfahren (siehe Abschnitt 3.7) auf. Beide Verfahren erfüllen die geschilderte Homomorphie-Eigenschaft und eignen sich somit für Key-Sharing. Ein Key-Sharing-Verfahren auf Basis eines � � t n -Secret-Sharing-Verfahrens wird auch als Threshold Cryptography bezeichnet. Ablauf eines Key-Sharing In der Literatur lassen sich verschiedene Modellierungen der Vorgänge und Teilnehmer eines Key-Sharing finden. In dieser Arbeit gehen wir von einer Situation aus, in der • es einen Geber gibt, dem alle Teilnehmer vertrauen und dessen Aufgabe es ist, einen zuvor von ihm selbst oder außerhalb des Modells erzeugten privaten Schlüssel zu verteilen, • zur Erzeugung der Teilschlüssel ein � t n i∈Λ � -Verfahren eingesetzt wird, • der Geber mit niemandem während der Berechnung der Teilschlüssel kommuniziert, • der Geber die Teilschlüssel auf einem abhörsicheren Kanal an die Teilnehmer übermittelt, • der Geber sich nach der erfolgten Übermittlung der Teilschlüssel zurückzieht, • die Teilnehmer ihre Teilschlüssel so verwalten, als handelte es sich dabei um ihre privaten Schlüssel, 18
- Seite 1 und 2: Konzepte für eine sichere Schlüss
- Seite 3 und 4: Vorwort Die vorliegende Arbeit ist
- Seite 5 und 6: C UML-Klassendiagramme 81 D Benutze
- Seite 7 und 8: öffentlichen Schlüssel eindeutig
- Seite 9 und 10: 2.1 Einfaches Secret-Sharing Eine s
- Seite 11 und 12: � � t n -Secret-Sharing Die mei
- Seite 13 und 14: Logarithmus log g h bezüglich des
- Seite 15 und 16: • Ein Secret-Sharing-Verfahren he
- Seite 17: Kapitel 3 Key-Sharing Die Sicherhei
- Seite 21 und 22: Primzahlen, die aber nicht bekannt
- Seite 23 und 24: Den Teilnehmern übermittelt er die
- Seite 25 und 26: Auf diese Weise ergibt sich eine Za
- Seite 27 und 28: Verfahrens (ein beweisbar sicheres
- Seite 29 und 30: Schlüsselverwendung Es stellt sich
- Seite 31 und 32: Schlüsselerzeugung Um ein ElGamal-
- Seite 33 und 34: Die geheimen Teilexponenten ai für
- Seite 35 und 36: SSL-Webserver [WMB99] und das COCA-
- Seite 37 und 38: verwenden kann. Andererseits ergibt
- Seite 39 und 40: mit Key-Recovery beauftragten Insti
- Seite 41 und 42: SETUP Eine (reguäre) SETUP ist ein
- Seite 43 und 44: heimgehalten werden, da die Chiffre
- Seite 45 und 46: Kapitel 5 Implementierung Der Worte
- Seite 47 und 48: KeyStore der KeyStore eignet sich z
- Seite 49 und 50: entsprechende Schnittstelle für Di
- Seite 51 und 52: ialisieren lassen und die Methode z
- Seite 53 und 54: Abbildung 5.2: Key-Sharing-Basiskla
- Seite 55 und 56: ShoupRSAPrivateKeyShare diese Klass
- Seite 57 und 58: Provider dieser JCA-Provider meldet
- Seite 59 und 60: Abbildung 5.4: Klassen aus dem Pake
- Seite 61 und 62: Abbildung 5.6: Dialog zum Einlesen
- Seite 63 und 64: UndecryptableKeyException diese Aus
- Seite 65 und 66: ei der Fehlervermeidung, -suche und
- Seite 67 und 68: (SecretShare[] shares, String integ
Diese beiden Schlüssel bilden dadurch, daß sie in einer gewissen mathematischen<br />
Beziehung zueinander stehen, ein Schlüsselpaar. Mit dem öffentlichen Schlüssel<br />
eines Empfängers können Nachrichten verschlüsselt werden, die anschließend<br />
nur mit dessen privatem Schlüssel wieder entziffert werden können.<br />
Ein Public-Key-Kryptoverfahren basiert auf einem schwierigen (das heißt<br />
für praktische Zwecke nicht lösbaren) mathematischen Problem, das es unmöglich<br />
macht, den privaten Schlüssel aus dem öffentlichen Schlüssel zu berechnen, obwohl<br />
die Beziehung der beiden zueinander allgemein bekannt ist (sonst wäre<br />
es nicht als Schlüsselpaar zu verwenden). So wird es möglich, den öffentlichen<br />
Schlüssel völlig frei zu verteilen, ohne daß dadurch eine Gefahr für den geheimen<br />
Schlüssel (der weiterhin verborgen bleiben muß) entsteht.<br />
Man kann sich die Verwendung asymmetrischer Kryptographie wie einen<br />
Hausbriefkasten vorstellen [CKLW00, S. 8]: Jedermann, der im Besitz des öffentlichen<br />
Schlüssels ist, kann einen Brief hineinwerfen. Aber nur der Empfänger<br />
als Besitzer des privaten Schlüssels kann den Briefkasten öffnen und den Brief<br />
wieder herausnehmen.<br />
Neben dem vereinfachten Schlüsselmanagement bieten asymmetrische kryptographische<br />
Verfahren auch die Möglichkeit digitaler Signaturen. Hierbei erzeugt<br />
der Absender für das zu signierende Dokument mithilfe seines privaten<br />
Schlüssels eine Signatur, die fortan von jedem unter Verwendung des öffentlichen<br />
Absenderschlüssels überprüft werden kann.<br />
Die bekannteste konkrete Umsetzung von Diffies und Hellmans Idee ist das<br />
nach seinen Erfindern Ronald Rivest, Fiat Shamir und Leonard Adleman benannte<br />
RSA-Verfahren [RSA78], das wir in Abschnitt 3.3 erläutern wollen. Fast<br />
überall wo heute asymmetrische Kryptographie zum Einsatz kommt handelt es<br />
sich um RSA.<br />
3.2 Modellierung von Key-Sharing<br />
Das wichtigste Einsatzgebiet von Secret-Sharing ist die sichere Verwahrung und<br />
Verwendung von privaten Schlüsseln eines Public-Key-Kryptosystems. Durch<br />
simple Secret-Sharing-Verfahren kann ein solcher Schlüssel sicher auf mehrere<br />
Teilhaber aufgeteilt und von diesen verwahrt werden. Soll der Schlüssel allerdings<br />
eingesetzt werden (zum Beispiel um eine digitale Signatur zu leisten), so<br />
muß er an einem Ort rekonstruiert werden, wodurch er wieder sehr angreifbar<br />
wird. Die Idee des Key-Sharings ist es, die Teilhaber in die Lage zu versetzen,<br />
die kryptographischen Operationen mit ihren Teilschlüsseln auszuführen, so daß<br />
die Ergebnisse anschließend kombiniert werden können. Dabei behalten sie die<br />
Kontrolle über ihre Teilschlüssel, die sie nicht offenbaren müssen.<br />
Das Shamir-Verfahren und homomorphe Funktionen Eine kryptographische<br />
Operation (etwa eine Entschlüsselung oder Signatur) ist eine Funktion<br />
g(x, k), deren Ergebnis von einer Eingabe x (beispielsweise der Nachricht) und<br />
einem Schlüssel k abhängt. Viele Kryptosysteme haben die Eigenschaft, daß<br />
diese Funktion homomorph ist, also<br />
g(x, k1 + k2) = g(x, k1) ∗ g(x, k2)<br />
17