RSA-Threshold-Decryption - Institut für Theoretische Informatik
RSA-Threshold-Decryption - Institut für Theoretische Informatik RSA-Threshold-Decryption - Institut für Theoretische Informatik
Seminar Kryptologie RSA-Threshold-Decryption Inaam Raouafi 8. Dezember 2003 Zusammenfassung Die Arbeit gliedert sich in drei Teile. Der erste Abschnitt ist eine Einführung über Shamir– Schema und Rivest-Shamir-Adleman-Schema [3] (RSA-Schema). Im Abschnitt 2 geht es um das RSA-Threshold-Verfahren [2] mit Dealer und Abschnitt 3 handelt es sich um das RSA- Threshold-Verfahren ohne Dealer. I. Einführung RSA wurde 1977 von Ron Rivest, Adi Shamir und Leonard Adleman entwickelt. Das RSA-Algorithmus ermöglicht die Ver-und Entschlüsselung von Daten mit einem Paar zusammengehöriger Schlüssel, von denen der eine geheim gehalten (privater Schlüssel) und der andere der Öffentlichkeit zugänglich gemacht wird (öffentlicher Schlüssel). Das Schamir-Schema wurde 1979 von Schamir entwickelt, es ist ein (t, n) Schema [2]d.h der Dealer (Dealer) verteilt die Shares (Teile) des Geheimnis auf t Shareholder (active Teilnehmer) von insgesamt n Teilnehmer, danach der combiner berechnet mit der Anzahl von Shares das Geheimnis. II. RSA-Threshold-Decryption „Desmedt” und „Frankel“[1] zeigten, wie das RSA-Kryptosystem mit dem Shamir- Schema kombiniert werden kann. 1. Anforderung Alle Berechnungen in RSA werden modulo N gemacht. N = p.q, wobei p und q starke Primzahlen sind, d.h. p = 2p’ + 1 und q = 2q’ + 1 und p’,q’ sind auch Primzahlen. Für des weiteren wird die Funktion λ(N) als das kleinste gemeinsamer Teiler von (p-1) und (q-1) , also: λ(N) = k.g.v (p-1, q-1) = 2 p´q´. 1
- Seite 2 und 3: Sei (t, n) ein Shamir-Threshold-Sch
- Seite 4 und 5: cˆ i = c ∏ i ist die erste Gleic
- Seite 6 und 7: ĉ ĉ ĉ c 1 1 (x1- x 2) (-1- x 3)
- Seite 8: Literatur [1] Y.Desmedt, und Y . Fr
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