Random Oracle
DefinitionRandom Oracle
SeiFn,`die Menge aller Funktionen{0,1}n→ {0,1}`(n). EinRandom Oracleist eine zufällige FunktionH ∈RFn,`. Wir besitzen keine Beschreibung vonH. Bei Anfragex liefert das Random OracleH(x).
Anmerkung:Bildliche Darstellung
Ein Random OracleH ist eine Funktion in einer schwarzen Box.
H ist beobachtbar über das Eingabe/Ausgabe-Verhalten der Box.
Alternative Beschreibungeines Random Oracles Oracle erhält Anfragenx1, . . . ,xq.
Fallsxi 6=xj für allej<i, gibyi ∈R {0,1}`(n) aus.
Fallsxi =xj für einj <i, gibyjaus.
D.h. wir können uns vorstellen, dass das Orakel die Antworten auf
Random Oracles liefern Einwegfunktionen
Satz
Für polynomielles`(n)sind Random OraclesH Einwegfunktionen.
Beweis:
Seix ∈R {0,1}nundy =H(x). Wollen ein Urbild vony ermitteln.
Jeder AngreiferAH stellt oBdA verschiedene Anfragenx1, . . . ,xq. (Warum sollte jeder Angreifer so verfahren?)
AH gewinnt offenbar fallsxi =x für eini∈[q]. Es gilt Ws[xi =x für eini] =Pq
i=1Ws[xi =x] = 2qn.
AH gewinnt ebenfalls fürH(xi) =y für mindestens eini∈[q], d.h.
Ws[H(xi) =y für mindestens eini]≤Pq
i=1Ws[H(xi) =y] = 2`(n)q . Damit giltWs[InvertAH,H(n) =1]≤ 2qn +2`(n)q .
Für polynomiellesq, `(n)ist dies vernachlässigbar inn.
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 77 / 10
Random Oracle und kollisionsresistentes Hashen
Satz
Für polynomielles`(n)sind Random Oracles kollisionsresistent.
Beweis:
Jeder AngreiferAH stellt oBdA verschiedene Anfragenx1, . . . ,xq. AH gewinnt mit
Ws[H(xi) =H(xj)für eini 6=j] ≤ P
i6=jWs[H(xi) =H(xj)]
= (q2)
2`(n) ≤ q2
2`(n)+1. Dies ist vernachlässigbar für polynomiellesq, `(n).
Random Oracle Methode
DefinitionRandom Oracle Modell / Methode
DasRandom Oracle Modell (ROM)nimmt die Existenz von Random Oracles im Beweis an. DieRandom Oracle Methodebesteht aus 2 Schritten:
1 Konstruiere ein VerfahrenΠmit einer Hash FunktionHund beweise die Sicherheit vonΠHim ROM, d.h. wennHals Random Oracle modelliert wird.
2 InstantiiereΠmit einer kryptographischen HashfunktionH0 anstelle von H, z.B. mit SHA-1.
Negativ:
Beschreibung vonH0spezifiziertH0(x)für allex.
Es existieren künstliche Kryptosysteme, die sicher im Random Oracle Modell aber unsicher fürjedeInstantiierung vonH0sind.
Positiv:
Ein Beweis im ROM ist besser als kein Beweis.
Erfolgreicher Angriff muss die Instantiierung vonH0 attackieren.
H0kann leicht durch eine andere Hashfunktion ersetzt werden.
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 79 / 10
CPA-sicheres effizientes RSA im ROM
Verschlüsselung Π =ROM-RSA
1 Gen:(N,e,d)←GenRSA(1n)mitpk = (N,e,H),sk = (N,d)mit Hash FunktionH :Z∗N → {0,1}`(n).
2 Enc:Fürm∈ {0,1}`(n), wähler ∈RZ∗N. Berechne c←(remodN,H(r)⊕m).
3 Dec:Fürc = (c1,c2)berechne
r :=c1d modN undm:=H(r)⊕c2.
Sicherheit von RSA im Random Oracle Modell
SatzCPA-Sicherheit von ROM-RSA
Unter der RSA-Annahme und für ein Random OracleHistΠH CPA-sicher.
Beweis:
SeiAH ein Angreifer mit Erfolgws(n) =Ws[PubKAcpaH,ΠH(n) =1].
AH darf Orakelanfragen anH stellen, sowohl vor Ausgabe von (m0,m1)als auch nach Erhalt vonEnc(mb).
DefiniereQuery :EreignisAH stellt Anfrager =c1d modN anH.
(n) = Ws[Query]·Ws[PubKAcpaH,ΠH(n) =1|Query] + Ws[Query]·Ws[PubKAcpaH,ΠH(n) =1|Query]
≤ Ws[PubKAcpaH,ΠH(n) =1|Query] +Ws[Query].
Zeigen
Ws[PubKAcpaH,ΠH(n) =1|Query] = 12 undWs[Query]≤negl(n).
Daraus folgt(n)≤ 12+negl(n).
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 81 / 10
Beweis der CPA-Sicherheit von ROM-RSA (1/3)
Beweis:Ws[PubKAcpaH,ΠH(n) =1|Query] = 12
Fallsr nicht anH angefragt wird, istH(r)⊕mnach Eigenschaft des Random Oracles ein perfektes One-Time Pad fürm.
Daraus folgtWs[PubKAcpaH,ΠH(n) =1|Query] = 12.
Beweis der CPA-Sicherheit von ROM-RSA (2/3)
Beweis:Ws[Query]≤negl(n)
Idee: Verwende Anfragen vonAH, ume-te Wurzeln zu berechnen.
Algorithmus RSA-InvertiererA0 EINGABE:N,e,c1=remodN
1 Wählek ∈R {0,1}`(n). (Wir setzenH(r) =k, ohner zu kennen.)
2 (m0,m1)← AH(N,e), beantworte Orakelanfragenri anH(·) konsistent mit
(ki =k fürrie=c1modN ki ∈R {0,1}`(n) sonst .
3 Berechnec←(c1,k ⊕mb)für ein b∈R{0,1}.
4 b0← AH(c), beantworte Anfragen vonAH anH(·)wie zuvor.
5 Fallsrie=c1modN für eine der Orakelanfragen, setzer ←ri. AUSGABE:r
Es giltWs[Query] =Ws[A0(N,e,re) =r]≤negl(n).
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 83 / 10
Beweis der CPA-Sicherheit von ROM-RSA (3/3)
InvertA0,ΠRSA(n)
(N, e, d)←GenRSA(1n) r∈RZ∗N
c1=remodN
Ausgabe:
(1 (r0)e=c1
0 sonst
(1n, N, e, c1)
r0
A0
pk= (N, e) (1n, pk) ki, k∈R{0,1}n
H(ri) =
(k ifrei =c1 ki sonst c2 :=k⊕mb
f¨ur b∈R{0,1}
H(ri)
(c1, c2) r0 =
(ri ifrie=c1
⊥ sonst
A
ri
(m0, m1)
b0
Sicherheit gegenüber CCA
Idee:
Ersetze One-Time Pad durch CCA-sicheres Secret Key Verfahren.
Erinnerung Krypto I:Konstruktion von CPA-sicherem Secret Key Verfahren mittels Pseudozufallsfunktion (und MAC) möglich.
Verschlüsselung Π =ROM-RSA-2
SeiΠ0 = (Gen0,Enc0,Dec0)ein CPA-sicheres Secret Key Verschlüsselungsverfahren.
1 Gen:(N,e,d)←GenRSA(1n)mitpk = (N,e,H),sk = (N,d)mit Hash FunktionH :Z∗N → {0,1}`(n).
2 Enc:Fürm∈ {0,1}`(n), wähler ∈RZ∗N. Berechnek =H(r)und c←(remodN,Enck0(m)).
3 Dec:Fürc = (c1,c2)berechne
r ←c1d modN,k ←H(r)undm←Deck0(c2).
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 85 / 10
Sicherheit von ROM-RSA-2
SatzSicherheit von ROM-RSA-2
Unter der RSA-Annahme, für ein Random OracleH und ein
CPA-sicheresΠ0liefert ROM-RSA-2 CCA-sichere Verschlüsselung.
Beweis:
SeiAH ein Angreifer mit Erfolgws(n) =Ws[PubKAccaH,ΠH(n) =1].
AH darf Orakelanfragen anH(·)undDecsk(·)stellen, sowohl vor Ausgabe von(m0,m1)als auch nach Erhalt vonEnc(mb).
DefiniereQuery :EreignisAH stellt Anfrager =c1d modN anH.
(n) = Ws[PubKAccaH,ΠH(n) =1|Query] +Ws[Query].
ZeigenWs[PubKAccaH,ΠH(n) =1|Query] = 12+negl(n)und
Beweis der CCA-Sicherheit von ROM-RSA
Beweis:
Fallsr nicht anH angefragt wird, lernt AngreiferAH nur durch AnfragenDecsk(c1,·)Informationen überk =H(r)
Sonst istk =H(r)uniform.
Ohne Beweis: es existiert ein AngreiferBmit:
Ws[PubKAccaH,ΠH(n) =1|Query]≤Ws[PrivKB,Πcca0 =1] = 12+negl(n).
Zeigen:Ws[Query]≤negl(n)
Problem: Müssen OrakelDecsk(·)simulieren, ohnesk zu kennen.
Verwende dazu geschicktes Simulieren des Random OraclesH(·) und des Dec OraclesDecsk(·).
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 87 / 10
Algorithmus RSA-InvertiererA0
EINGABE:N,e,c1=remodN
1 Wählek ∈R{0,1}`(n). (Wir setzenH(r) =k, ohner zu kennen.)
2 (m0,m1)← AH(N,e)beantworte Hash Anfragenri anH(·)
konsistent mit
ki =k fürrie=c1modN kˆj ∃j :rie= ˆcj,1 ki ∈R{0,1}`(n) sonst
.
3 Beantworte Anfragenˆcj = (ˆcj,1,ˆcj,2)anDecsk(·) =
konsistent mit
Deck0(ˆcj,2) fürˆcj,1=c1
Deck0
i(ˆcj,2) ∃i : ˆcje,1=ri
Decˆ0
kj
(ˆcj,2)fürkˆj ∈R{0,1}`(n) sonst
.
4 Berechnec ←(c1,Enck0(mb))für einb∈R{0,1}.
5 b0← AH(c), beantworte Anfragen anH(·)undDecsk(·)wie zuvor.
Beweis: Ws[Query ] ≤ negl(n)
Die Simulation vonA0ist perfekt
Es giltWs[Query] =Ws[A0(N,e,re) =r]≤negl(n).
Krypto II - Vorlesung 07 - 16.05.2012 () Random Oracle Modell, ROM-RSA 89 / 10