RSA Full Domain Hash (RSA-FDH) Signaturen
SignaturRSA-FDH
SeiH:{0,1}∗ →Z∗Nein Random-Oracle.
1 Gen:(N,e,d)←GenRSA(1n)mitpk = (N,e)undsk = (N,d).
2 Sign:Für eine Nachrichtm∈ {0,1}∗berechne σ ←H(m)d modN.
3 Vrfy:Für(m, σ)überprüfe
σe=? H(m)modN.
Anmerkung:
RSA-FDH entspricht Hashed-RSA mit einem Random Oracle als Hashfunktion.
CMA-Sicherheit von RSA-FDH
SatzCMA-Sicherheit von RSA-FDH
Unter der RSA-Annahme und für ein Random-OracleHist RSA-FDH ein CMA-sicheres Signaturverfahren.
Beweisskizze:
SeiΠ =RSA-FDH und=Ws[ForgeA,Π(n) =1].
OBdA gelten folgende Annahmen für die Orakelanfragen vonA:
1 Afragt verschiedenex1, . . . ,xqanH(·).
2 BevorAAnfragemanSignsk(·)stellt, fragt erH(m)an.
3 Für eine Fälschung(m, σ)hatAzuvor AnfrageH(m)gestellt.
Konstruieren RSA-InvertiererA0 mittelsA.
Krypto II - Vorlesung 12 - 27.06.2012 () Full Domain Hash, Hash-and-Sign Paradigma 139 / 169
Beweis der CMA-Sicherheit von RSA-FDH
Algorithmus RSA-Invertierer A0 EINGABE:N,e,y =xemodN
1 Wählej ∈R {1, . . . ,q}.
2 (m, σ)← ASignsk(·)(N,e).
I Beantworte Orakelanfragenmi anH(·)konsistent mit H(mi) =
(σiemodNfür ein selbst gewähltesσ∈RZ∗N füri 6=j
y sonst .
I Beantworte Orakelanfragenmi anSignsk(·)mit Signsk(H(mi)) =
(σi füri 6=j Abbruch sonst .
3 Fallsm=mj undσe=y modN, setzex ←σ.
AUSGABE:x
Unter der RSA-Annahme giltnegl(n)≥Ws[A0(N,e,xe) =x]
=Ws[m=mj]·Ws[ForgeA,Π(n) =1] = (n)q .
Damit ist(n)≤q·negl(n)vernachlässigbar für polynomiellesq.
Hash-and-Sign Paradigma
Ziel:Signaturen für Nachrichten beliebiger Länge Starten mit SignaturverfahrenΠfürm∈ {0,1}n. Verwenden HashfunktionH :{0,1}∗→ {0,1}n. Unterschreiben Hashwerte statt der Nachrichten.
DefinitionHash-and-Sign Paradigma
SeiΠ = (Gen,Sign,Vrfy)undΠH = (GenH,H)eine Hashfunktion.
1 Gen’:(pk,sk)←Gen(1n),s←GenH(1n).
Ausgabepk0 = (pk,s)undsk0 = (sk,s).
2 Sign’:Für eine Nachrichtm∈ {0,1}∗ berechne σ ←Signsk(Hs(m)).
3 Vrfy’:Für eine Nachrichtm∈ {0,1}∗mit Signaturσ prüfe Vrfypk(Hs(m), σ)=? 1.
Intuition:Fälschung impliziert Fälschung inΠoder Kollision inH.
Krypto II - Vorlesung 12 - 27.06.2012 () Full Domain Hash, Hash-and-Sign Paradigma 141 / 169
Sicherheit von Hash-and-Sign
SatzSicherheit des Hash-and-Sign Paradigmas SeiΠCMA-sicher undΠH kollisionsresistent. Dann ist das Hash-and-Sign SignaturverfahrenΠ0 CMA-sicher.
Beweis:
SeiAein Angreifer für Hash-and-SignΠ0 mit Ausgabe(m, σ).
SeiQ={m1, . . . ,mq}die Menge der vonAan das Signierorakel Signsk(·)gestellten Anfragen. Es giltm∈/ Q.
Seicoll das Ereignis, dassmi ∈QmitHs(mi) =Hs(m).
Dann giltWs[ForgeA,Π0(n) =1]
= Ws[ForgeA,Π0(n) =1∧coll] +Ws[ForgeA,Π0(n) =1∧coll]
≤ Ws[coll] +Ws[ForgeA,Π0(n) =1∧coll]
Wir zeigen nun, dass beide Summanden vernachlässigbar sind.
Algorithmus für Kollisionen
Beweis:Ws[coll]≤negl(n)
Konstruieren mittelsAeinen AlgorithmusCfür Kollisionen.
Algorithmus C EINGABE:s
1 Berechne(pk,sk)←Gen(1n). Setzepk0 ←(pk,s).
2 (m, σ)← A(pk0). Auf Orakelanfragemi ∈ {0,1}∗, antworte mit σi ←Signsk(Hs(mi)).
AUSGABE:
((m,mi) fallsHs(m) =Hs(mi)für einmi
keine Kollision sonst .
Es giltWs[coll] =Ws[HashCollC,ΠH(n) =1].
Aus der Kollisionsresistenz vonHfolgt
Ws[HashCollC,ΠH(n) =1]≤negl(n).
Krypto II - Vorlesung 12 - 27.06.2012 () Full Domain Hash, Hash-and-Sign Paradigma 143 / 169
Algorithmus C für Kollisionen
(1n, s)
Ausgabe
C
(pk, sk)←Gen(1n) pk0 = (pk, s)
(1n, pk0)
σi=Signsk(Hs(mi)) σi
Ausgabe:
•(m, mi)falls f¨ur eini Hs(m) =Hs(mi)
•keine Kollisionsonst
A
mi ∈ {0,1}∗ Q={m1, . . . , mq} mi
Berechne: (m, σ) m∈ {0,1}∗\Q (m, σ)
Fälschen von Signaturen in Π
Beweis:Ws[ForgeA,Π0(n) =1∧coll]≤negl(n) Konstruieren mittelsAeinen AngreiferA0 fürΠ.
Algorithmus A0
EINGABE:pk, Zugriff auf SignierorakelSignsk(·)
1 Berechnes←GenH(1n). Setzepk0= (pk,s).
2 (m, σ)← A(pk0). Beantworte Orakelanfragemi ∈ {0,1}∗mit Aus- gabeσi ←Signsk(Hs(mi))des Signierorakels.
3 Setzem0 ←Hs(m).
AUSGABE:(m0, σ)
Falls(m, σ)gültig ist fürΠ0, so ist(m0, σ) = (Hs(m), σ)gültig fürΠ.
Ereigniscollbedeutet, dassm0 6=Hs(mi)für alle AnfragenHs(mi).
Damit giltWs[ForgeA,Π0(n)∧coll] =Ws[ForgeA0,Π(n) =1].
Aus der CMA-Sicherheit vonΠfolgt
Ws[ForgeA0,Π(n) =1]≤negl(n).
Krypto II - Vorlesung 12 - 27.06.2012 () Full Domain Hash, Hash-and-Sign Paradigma 145 / 169
Algorithmus A für Fälschungen
(1n, pk)
H(mi) σi
(m0, σ)
A s←GenH(1n) pk0= (pk, s)
(1n, pk0)
σi
Ausgabe:
Setzem0 =Hs(m)
A0
mi ∈ {0,1}∗ Q={m1, . . . , mq} mi
Berechne: (m, σ) m∈ {0,1}∗\Q (m, σ)