23.11.2013 Aufrufe

RSA-Threshold-Decryption - Institut für Theoretische Informatik

RSA-Threshold-Decryption - Institut für Theoretische Informatik

RSA-Threshold-Decryption - Institut für Theoretische Informatik

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.

Seminar Kryptologie<br />

<strong>RSA</strong>-<strong>Threshold</strong>-<strong>Decryption</strong><br />

Inaam Raouafi<br />

8. Dezember 2003<br />

Zusammenfassung<br />

Die Arbeit gliedert sich in drei Teile. Der erste Abschnitt ist eine Einführung über Shamir–<br />

Schema und Rivest-Shamir-Adleman-Schema [3] (<strong>RSA</strong>-Schema). Im Abschnitt 2 geht es um<br />

das <strong>RSA</strong>-<strong>Threshold</strong>-Verfahren [2] mit Dealer und Abschnitt 3 handelt es sich um das <strong>RSA</strong>-<br />

<strong>Threshold</strong>-Verfahren ohne Dealer.<br />

I. Einführung<br />

<strong>RSA</strong> wurde 1977 von Ron Rivest, Adi Shamir und Leonard Adleman entwickelt.<br />

Das <strong>RSA</strong>-Algorithmus ermöglicht die Ver-und Entschlüsselung von Daten mit einem Paar<br />

zusammengehöriger Schlüssel, von denen der eine geheim gehalten (privater Schlüssel) und<br />

der andere der Öffentlichkeit zugänglich gemacht wird (öffentlicher Schlüssel).<br />

Das Schamir-Schema wurde 1979 von Schamir entwickelt, es ist ein (t, n) Schema [2]d.h der<br />

Dealer (Dealer) verteilt die Shares (Teile) des Geheimnis auf t Shareholder (active<br />

Teilnehmer) von insgesamt n Teilnehmer, danach der combiner berechnet mit der Anzahl von<br />

Shares das Geheimnis.<br />

II. <strong>RSA</strong>-<strong>Threshold</strong>-<strong>Decryption</strong><br />

„Desmedt” und „Frankel“[1] zeigten, wie das <strong>RSA</strong>-Kryptosystem mit dem Shamir- Schema<br />

kombiniert werden kann.<br />

1. Anforderung<br />

Alle Berechnungen in <strong>RSA</strong> werden modulo N gemacht. N = p.q, wobei p und q starke<br />

Primzahlen sind, d.h. p = 2p’ + 1 und q = 2q’ + 1 und p’,q’ sind auch Primzahlen. Für des<br />

weiteren wird die Funktion λ(N) als das kleinste gemeinsamer Teiler von (p-1) und (q-1) ,<br />

also: λ(N) = k.g.v (p-1, q-1) = 2 p´q´.<br />

1


Sei (t, n) ein Shamir-<strong>Threshold</strong>-Schema [3]. Dieses Schema kann durch eine polynomiale<br />

Funktion ƒ(x) von Grad (t-1) höchstens. ƒ(x) kann durch jede Teilmenge B von „t-<br />

Teilnehmern“ mit der Lagrange Interpolations-Formel wieder rekonstruiert werden:<br />

( ) ( )<br />

( x x j<br />

x x − )<br />

ƒ ƒ mod λ( N )<br />

= ∑ ∏<br />

i i<br />

( x x )<br />

j j , j i i −<br />

P ∈Β P ∈P\ Β ≠ j<br />

(1.1)<br />

Berechnungen modulo λ(N) können durch Anwendung des Chinesischen-Reste-Satzes<br />

erfolgen, da λ(N) = 2.p’.q’.<br />

Multiplikative Inversen von (x<br />

i<br />

- x<br />

j) existieren nur dann, wenn diese teilfremd zu{2, p´, q´}<br />

sind. Diese Bedingung kann <strong>für</strong> mehr als zwei Teilenehmer nicht erfüllt werden.<br />

Beispielsweise, es ist unmöglich, dass man drei verschiedene Koordinaten<br />

(x<br />

1, x<br />

2, x<br />

3) gleichzeitig wählen kann, die eine ungerade Zahl als Differenz haben. Ausweg<br />

aus diesem Problem ist, sowohl die Funktion ƒ( x<br />

i<br />

) [wobei, i =1,....., n] als auch alle<br />

Differenzen als gerade Zahlen (x i<br />

- x j<br />

) [wobei, i ≠ j ] darzustellen. Somit können alle<br />

Berechnungen mit ganzen Zahlen erfolgen, die als Vektoren dargestellt werden können, wie<br />

folgt:<br />

a = (0 mod 2, a mod p´, a mod q´)<br />

Daraus folgt, dass alle [wobei, i = 1,…, n] ungerade sein müssen. Aus diesem Grund muss das<br />

Geheimnis als ƒ(-1) statt des üblichen Wertes<br />

Wir betrachten den Nenner <strong>für</strong> (1.1)<br />

∏<br />

1<br />

( xi<br />

−x<br />

j )<br />

∏<br />

= ∏<br />

Pj∈P\<br />

Β,<br />

j ≠i<br />

( xi<br />

−x<br />

j )<br />

Pj∈Β, j≠i P j∈ P , j ≠i<br />

( x<br />

i<br />

−x<br />

j<br />

)<br />

Wir setzen<br />

α<br />

i<br />

j∈<br />

, j≠i( xi −x<br />

j )<br />

= ∏ P P und sehen, dass es nicht von der momentan aktive<br />

Menge der Teilnehmer abhängt und es vom Dealer im Moment der Verteilung berechnet<br />

werden kann.<br />

So kann (1.1) als:<br />

dargestellt werden.<br />

ƒ( x )<br />

ƒ ( x ) = ( − ) ( − ) mod λ( N )<br />

∑<br />

∏<br />

i<br />

i x<br />

j , j i j , j i<br />

j<br />

i<br />

i x j x x<br />

α P ∈P\ Β ≠ P ∈Β ≠ j<br />

P ∈Β<br />

∏<br />

2


2. Verfahren der (t, n) <strong>Threshold</strong> <strong>Decryption</strong><br />

(1) Dealer Don besitzt <strong>RSA</strong>-System mit öffentlichem Schlüssel (e, N) und private<br />

Schlüssel d.<br />

(2) Don wählt (t, n) Shamir-<strong>Threshold</strong>- Schema [2] mit (x) aus.<br />

(3) Don wählt außerdem ungerade Zahlen x<br />

i<br />

als öffentliche Koordinaten und Geheimnis<br />

ƒ (-1) = d – 1.<br />

(4) Don berechnet die Teilung der Geheimnisse<br />

si<br />

=<br />

ƒ( x i )<br />

αi<br />

und verteilt es zwischen verschiedene Teilnehmer von P.<br />

(5) Sei m eine Nachricht m ∈ Ζ N . Der Absender berechnet<br />

c =<br />

e<br />

m (mod N )<br />

und teilt diesen der Gruppe mit.<br />

(6) Jeder Teilnehmer in B (aktive Teilenehmer) berechnet dann<br />

c<br />

i<br />

=<br />

c<br />

s i<br />

(mod N )<br />

und schickt c an den Combiner Clara.<br />

(7)Clara sammelt alle ci<br />

und berechnet<br />

ĉ<br />

i<br />

=<br />

c<br />

i<br />

∏<br />

∏<br />

Pj∈P\ Β, j≠i ( x i − x j ) Pj∈P,<br />

j≠i( −1 − x j )<br />

mod N<br />

(8)Clara kann schließlich<br />

berechnen.<br />

ƒ( − 1) + 1<br />

∏ cc ˆ = c = c ≡<br />

P j∈Β<br />

i<br />

d<br />

m (mod N )<br />

Beweis :<br />

Wir müssen zeigen, dass<br />

ƒ(−1)<br />

C mod N = ∏ c ˆi<br />

mod N<br />

P j∈Β gilt. Wegen<br />

3


cˆ<br />

i<br />

=<br />

c<br />

∏<br />

i<br />

ist die erste Gleichung äquivalent zu<br />

, ∏ ,<br />

Pj∈P\ Β j ≠i ( xi −x j ) Pj∈P<br />

j ≠i<br />

( −1 −x<br />

j )<br />

mod N<br />

ƒ(−1)<br />

, ( ) , ( 1 )<br />

mod<br />

j<br />

x x j<br />

x<br />

C N c ∈ Β j i i − j ∈ j i − −<br />

∏<br />

P P\ ≠<br />

P P ≠ j<br />

i<br />

mod N<br />

P j∈Β<br />

=<br />

∏ ∏<br />

Da<br />

ci<br />

c<br />

i<br />

s i<br />

= gilt, ist die zu beweisende Gleichung äquivalent zu<br />

ƒ(−1)<br />

s<br />

, ( ) , ( 1 )<br />

mod<br />

i j j i xi x j j j i x<br />

C N c ∈ Β −<br />

∈ − −<br />

∏<br />

P P\ ≠<br />

P P ≠ j<br />

i<br />

mod N<br />

P j∈Β<br />

=<br />

∏ ∏<br />

In den Exponenten wird modulo gerechnet, folglich müssen wir die Gültigkeit von<br />

(*)<br />

ƒ − λ( = ∑ s ∏ − ∏<br />

λ(<br />

( 1) mod N ) ( x x ) ( −1<br />

− x ) mod N )<br />

Pj∈Β i Pj∈P\ Β, j≠i i j Pj∈P<br />

, j≠i<br />

j<br />

beweisen.<br />

Laut Definition ist<br />

1<br />

α − ) ( x − x ) ( −1 − x )<br />

i<br />

j<br />

Pj∈P\ Β, j≠i i<br />

Pj∈P,<br />

j≠i<br />

j<br />

= ∑ ( ∏ ∏<br />

ƒ( x ) ƒ( x ) mod λ( N )<br />

P j∈Β<br />

Unter Beachtung von<br />

s<br />

i<br />

1<br />

i<br />

x<br />

i<br />

α −<br />

i<br />

die zu beweisende Gleichung (*).<br />

3. Beispiel:<br />

=( ƒ( ) ) mod λ( N ) erhalten wir durch Einsetzen von gerade<br />

Dieses Schema wird auf ein einfaches Beispiel angewendet:<br />

Der Händler wählt 2 Primzahlen p = 11 und q =23. Modulo N = p*q = 253 und λ(N) = 110.<br />

Der Händler erstellt ein Instanz des Shamir-Schema <strong>für</strong> vier Teilnehmer P = {P 1 , P 2 ,P 3 ,P 4 },<br />

mit der gewählten Schwelle t = 3. Ein zufällig gewähltes Polynom mit dem höchsten Grad<br />

von 2 über Ζ λ(N) : ƒ<br />

(x<br />

i) = 6 + 15 x + 81 x 2<br />

Die öffentliche Koordinaten sind: x<br />

1<br />

= 1, x<br />

2<br />

= 3, x<br />

3<br />

= 5, und x<br />

4<br />

= 7. Der öffentliche<br />

Schlüssel ist e = 107.<br />

Die öffentlichen Parameter sind e, N und die Koordinaten sind x<strong>für</strong><br />

i<br />

P i ∈P. Don berechnet<br />

die Parameter α i wie folgt:<br />

4


α = (x - x ) (x - x ) (x - x ) 62 (mod 110),<br />

α<br />

1 1 2 1 3 1 4<br />

= (x - x ) (x - x ) (x - x ) 16 (mod 110),<br />

2 2 1 2 3 2 4<br />

α = (x - x ) (x - x ) (x - x ) 94 (mod 110),<br />

3 3 1 3 2 3 4<br />

α4 = (x<br />

4<br />

- x<br />

1<br />

) (x4- x<br />

2)<br />

4 3<br />

(x - x ) 48 (mod 110)<br />

α i haben kein Inverses modulo 110, da sie gerade sind und durch 2 teilbar.<br />

Eine Vektordarstellung vonα 1<br />

sieht folgendermaßen aus:<br />

α<br />

1= (0 mod 2, 2 mod 5, 7 mod 11).<br />

Jetzt können die Inversen<br />

β<br />

i<br />

von αi<br />

berechnet werden.<br />

β<br />

1<br />

= (0 mod 2, 2 -1 mod 5, 7 -1 mod 11) = (0,3,8) =8 ,<br />

β<br />

2<br />

= (0 mod 2, 1 mod 5, 9mod 11) = 86 ,<br />

β<br />

3<br />

= (0 mod 2, 4 mod 5, 2mod 11) = 24 ,<br />

β<br />

4<br />

= (0 mod 2, 2 mod 5, 3mod 11) = 102<br />

Don erstellt die Anteile der Teilnehmer:<br />

S = (x ) β 46 (mod 110),<br />

1 1 1<br />

S = (x ) β 90 (mod 110),<br />

2 2 2<br />

S = (x ) β 54 (mod 110),<br />

3 3 3<br />

S = (x ) β 30 (mod 110).<br />

4 4 4<br />

Diese Teile des Geheimnis werden den entsprechenden Teilnehmern über geheime Kanäle<br />

(channels) geschickt.<br />

Die Absenderin Sue wählt eine Nachricht m = 67, und mit Hilfe der öffentlichen Elemente,<br />

berechnet das folgende Kryptogramm: c = m e = 67 107 ≡ 89 mod 253. Dieses<br />

Kryptogramm sendet sie zu allen Teilnehmern.<br />

Sei B = {P 1 , P 3 , P 4 }. Jeder Teilnehmer von B berechnet sein Teilkryptogramm:<br />

s<br />

c 1<br />

1<br />

= c 78 (mod 253),<br />

s<br />

c 3<br />

3<br />

= c 100 (mod 253),<br />

s<br />

c 4<br />

4<br />

= c 144 (mod 253).<br />

Die Teilkryptogramme werden zum combiner geschickt. Clara überprüft die Kryptogramme:<br />

5


ĉ<br />

ĉ<br />

ĉ<br />

c<br />

1 1<br />

(x1- x 2) (-1- x 3) (-1- x 4)<br />

= 177 (mod 253),<br />

c<br />

(x3- x 2) (-1- x 1) (-1- x 4)<br />

3<br />

=<br />

3<br />

210 (mod 253),<br />

c<br />

(x4- x 2) (-1- x 1) (-1- x 3)<br />

4<br />

=<br />

4<br />

100 (mod 253).<br />

Wonach sie die folgende Nachricht zurückgewinnt:<br />

m = ∏ cˆ<br />

. c = cˆcˆ cˆ<br />

c ≡ (<br />

P j∈Β<br />

i<br />

1 3 4<br />

67 mod 253).<br />

III. <strong>RSA</strong> <strong>Threshold</strong> <strong>Decryption</strong> ohne Dealer<br />

Es kann sein ,dass die Teilnehmer nicht wissen, wer ein vertrauenswürdiger Dealer sein<br />

könnte. Der Ausweg ist, dass der Absender selber die Empfängergruppe auswählt.<br />

Der Absender kann mit Hilfe des ausgewählten threshold- Parameter t seine Diskretion<br />

bewahren.<br />

1. Anwendung des Verfahrens:<br />

Am Anfang haben alle Teilnehmer ihr eigenes <strong>RSA</strong>- Public-Schlüssel-System und sind im<br />

Telefonbuch eingetragen. Die Registrierung im Telefonbuch liefert die authentischen<br />

öffentliche Parameter aller eingetragenen <strong>RSA</strong>-Systeme.<br />

2. Thershold Verfahren ohne Dealer<br />

(1) Absenderin Sue wählt eine Gruppe P = {P 1 … P n }, und schaut im Telefonbuch nach<br />

ihrem öffentlichen Schlüsseln (e<br />

i, N<br />

i), wobei N<br />

i<br />

< N<br />

i<br />

+1.<br />

(2) Sue wählt f(x) über GF(p), wobei p < N1<br />

und berechnet die Teile des Geheimnisse<br />

S = ƒ (x ) <strong>für</strong> die Koordinaten und das Geheimnis d = ƒ (0).<br />

i<br />

i<br />

(3) Sue “versteckt” die Teile der Geheimnis mittels der <strong>RSA</strong>-Verschlüsselung:<br />

e<br />

c = S i mod N<br />

i i<br />

i.<br />

(4) Erste Teilkryptogramm c ist die Lösung der Teile mit dem Chinesischen-Reste-Satz:<br />

1<br />

c<br />

1<br />

c c<br />

= ( 1<br />

mod N 1 ,..., n mod N n ).<br />

6


t<br />

(5) Für eine Nachricht m ( m ≤ ∏ N<br />

i),<br />

berechnet der Sue m<br />

i<br />

= m mod Niund<br />

i<br />

d<br />

m mod N , danach berechnet der Absender:<br />

i<br />

c<br />

i=1<br />

d d<br />

= ( m 1<br />

mod N 1<br />

,..., m n mod N n ).<br />

2<br />

c<br />

c c<br />

Folgender Kryptogramm: ( P , p, t , , ) wird an alle Teilnehmer gesendet.<br />

1 2<br />

(6) Jeder Teilnehmer P i ∈ P führt die folgenden Operationen durch:<br />

d<br />

(6.1) Zuerst wird ci<br />

≡ c mod N<br />

1 i<br />

und m<br />

i<br />

≡c mod N 2 i<br />

berechnet.<br />

(6.2)Danach wendet man den geheimen Schlüssel di<br />

an, und gewinnt<br />

S<br />

c<br />

d i<br />

i<br />

≡<br />

i<br />

mod Ni<br />

zurück. S<br />

i<br />

wird dann an alle Teilnehmer gesendet.<br />

(6.3) Nach dem (t-1)Anteile empfangen wurden, kann jeder Teilnehmer der Gruppe<br />

d d -1<br />

i<br />

den Geheimnis d ∈ GF(p) erstellen, zudem können sie m ≡ (m )<br />

berechnen.<br />

Anmerkungen:<br />

i<br />

mod N<br />

i<br />

- Auch wenn d öffentlich ist, kann nur der Teilnehmer P i die Inverse d -1 bilden, da er die<br />

Primfaktorisierung von<br />

Ni<br />

kennt , womit er<br />

-1<br />

d.d ≡1 mod λ(N ) berechnen kann.<br />

- Sobald die t-Teilnehmer ihre Teilnachrichten m<br />

i<br />

gesendet haben, kann der combiner<br />

den Nachricht m mit dem Chinesischen-Rest-Satz wiederherstellen.<br />

- Der Dechiffrierungs-Prozess unterteilt sich in zwei Etappen:<br />

1. die Zurückgewinnung des Geheimnisses d<br />

2. die Wiederherstellung der Nachricht.<br />

- Wenn mindestens t -Teilnehmer an jeder Etappe zusammengearbeitet haben, wird die<br />

Nachricht m wiederhergestellt.<br />

- Falls weniger als t-1 -Teilnehmer ihre Si<br />

Anteile in der ersten Etappe senden, dann ist<br />

der Exponent d unbekannt, womit die Nachricht nicht zurückgewonnen wird.<br />

- Falls die verlangte Anzahl von t-1 -Teilnehmern ihre Anteile gesendet haben, jedoch<br />

weniger als t –Teilnehmer ihre Teilnachricht an den combiner gesendet haben.<br />

- In diesem Fall ist die Wiederherstellung von m auf die Wiederherstellung einer<br />

Teilnachricht<br />

mt<br />

reduziert worden.<br />

i<br />

7


Literatur<br />

[1] Y.Desmedt, und Y . Frankel: Shared of Authenticators and Signatures. In:Advances<br />

in Cryptology – CRYPTO `91, Nummer 576 in Lecture Notes in Computer Sience,<br />

Seiten 457-469. Springer, 1992. Extended abstract.<br />

[2] J. Pieprzyk, T Hardjone, J. Seberry. Fundamental of Computer Security.<br />

Springer,2003.<br />

[3] D. Wätjen.,Kryptologie, Vorlesungsskript, <strong>Institut</strong> <strong>für</strong> <strong>Theoretische</strong> <strong>Informatik</strong>,<br />

Teschnische Universität Braunschweig, Oktober 2002.<br />

8

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!