universal composability from essentially any trusted setup
Mike Rosulek |
| CRYPTO 2012
.
universal composability from essentially any trusted setup Mike - - PowerPoint PPT Presentation
universal composability from essentially any trusted setup Mike Rosulek | | CRYPTO 2012 . Example: Set intersection A B ( function evaluation ) Generate a fair coin toss ( randomized ) Online poker without a dealer ( reactive ) secure
Mike Rosulek |
| CRYPTO 2012
.
Several parties wish to carry out an agreed-upon computation.
◮ Parties have individual inputs / output ◮ Security guarantees:
◮ Privacy (learn no more than your prescribed output) ◮ Input independence ◮ Output consistency, etc..
◮ Parties are mutually distrusting, some possibly malicious
Example: Set intersection A B (function evaluation) Generate a fair coin toss (randomized) Online poker without a dealer (reactive) .
Several parties wish to carry out an agreed-upon computation.
◮ Parties have individual inputs / output ◮ Security guarantees:
◮ Privacy (learn no more than your prescribed output) ◮ Input independence ◮ Output consistency, etc..
◮ Parties are mutually distrusting, some possibly malicious
Example:
◮ Set intersection A ∩ B (function evaluation) ◮ Generate a fair coin toss (randomized) ◮ Online poker without a dealer (reactive)
.
.
Good news [Canetti01]
. . . . . . . . Universal Composition (UC) framework = realistic security model for Internet protocols. .
Bad news [CanettiFischlin01,CanettiKushilevitzLindell06]
. . . . . . . . UC security is impossible for almost all tasks that we care about .
.
Good news [Canetti01]
. . . . . . . . Universal Composition (UC) framework = realistic security model for Internet protocols. .
Bad news [CanettiFischlin01,CanettiKushilevitzLindell06]
. . . . . . . . UC security is impossible for almost all tasks that we care about .
Slightly relax UC framework:
◮ Assume bounded network latency [KalaiLindellPrabhakaran05] ◮ Uniform adversaries, non-uniform simulators
[LinPassVenkitasubramaniam09]
◮ Superpolynomial-time simulators
[Pass03, PrabhakaranSahai04, BarakSahai05, MalkinMoriartyYakovenko06, CanettiLinPass10, ...]
Trusted setup: Protocols can use ideal functionality
Bit-commitment [CanettiLindellOstrovskySahai02] Common random string [CanettiLindellOstrovskySahai02,...] Oblivious transfer [IshaiPrabhakaranSahai08] Trusted hardware device [Katz07]
.
Slightly relax UC framework:
◮ Assume bounded network latency [KalaiLindellPrabhakaran05] ◮ Uniform adversaries, non-uniform simulators
[LinPassVenkitasubramaniam09]
◮ Superpolynomial-time simulators
[Pass03, PrabhakaranSahai04, BarakSahai05, MalkinMoriartyYakovenko06, CanettiLinPass10, ...]
◮ Trusted setup: Protocols can use ideal functionality
◮ Bit-commitment [CanettiLindellOstrovskySahai02] ◮ Common random string [CanettiLindellOstrovskySahai02,...] ◮ Oblivious transfer [IshaiPrabhakaranSahai08] ◮ Trusted hardware device [Katz07]
.
Slightly relax UC framework:
◮ Assume bounded network latency [KalaiLindellPrabhakaran05] ◮ Uniform adversaries, non-uniform simulators
[LinPassVenkitasubramaniam09]
◮ Superpolynomial-time simulators
[Pass03, PrabhakaranSahai04, BarakSahai05, MalkinMoriartyYakovenko06, CanettiLinPass10, ...]
◮ Trusted setup: Protocols can use ideal functionality
◮ Bit-commitment [CanettiLindellOstrovskySahai02] ◮ Common random string [CanettiLindellOstrovskySahai02,...] ◮ Oblivious transfer [IshaiPrabhakaranSahai08] ◮ Trusted hardware device [Katz07]
.
. . . . . . . How useful is F as a trusted setup?
◮ What tasks have UC-secure protocols in the presence of F?
.
Possible “levels of power” for
. . . . . . . . Useless: access to is equivalent to no trusted setup.
already has a UC-secure protocol without setups
Intermediate: something between these two extremes Complete: all tasks have UC-secure protocols in presence of .
. . . . . . . How useful is F as a trusted setup?
◮ What tasks have UC-secure protocols in the presence of F?
.
Possible “levels of power” for F
. . . . . . . .
◮ Useless: access to F is equivalent to no trusted setup.
⇔ F already has a UC-secure protocol without setups
Intermediate: something between these two extremes Complete: all tasks have UC-secure protocols in presence of .
. . . . . . . How useful is F as a trusted setup?
◮ What tasks have UC-secure protocols in the presence of F?
.
Possible “levels of power” for F
. . . . . . . .
◮ Useless: access to F is equivalent to no trusted setup.
⇔ F already has a UC-secure protocol without setups
Intermediate: something between these two extremes
◮ Complete: all tasks have UC-secure protocols in presence of F
.
. . . . . . . How useful is F as a trusted setup?
◮ What tasks have UC-secure protocols in the presence of F?
.
Possible “levels of power” for F
. . . . . . . .
◮ Useless: access to F is equivalent to no trusted setup.
⇔ F already has a UC-secure protocol without setups
◮ Intermediate: something between these two extremes ◮ Complete: all tasks have UC-secure protocols in presence of F
.
Complete characterization [PrabhakaranRosulek08]
Almost-complete characterization [This talk]
Nearly every setup is either useless or complete. . . complete . useless
.
Characterize reactive, randomized functionalities, w/ behavior depending on security parameter!
[MajiPrabhakaranRosulek10]
restricted to deterministic & constant-sized. .
◮ Complete characterization [PrabhakaranRosulek08]
Almost-complete characterization [This talk]
Nearly every setup is either useless or complete. . . complete . useless
.
Characterize reactive, randomized functionalities, w/ behavior depending on security parameter!
[MajiPrabhakaranRosulek10]
restricted to deterministic & constant-sized. .
◮ Complete characterization [PrabhakaranRosulek08]
◮ Almost-complete characterization [This talk]
Nearly every setup is either useless or complete. . . complete . useless
.
Characterize reactive, randomized functionalities, w/ behavior depending on security parameter!
[MajiPrabhakaranRosulek10]
restricted to deterministic & constant-sized. .
◮ Complete characterization [PrabhakaranRosulek08]
◮ Almost-complete characterization [This talk]
⇒ Nearly every setup is either useless or complete.
. . complete . useless
.
Characterize reactive, randomized functionalities, w/ behavior depending on security parameter!
[MajiPrabhakaranRosulek10]
restricted to deterministic & constant-sized. .
◮ Complete characterization [PrabhakaranRosulek08]
◮ Almost-complete characterization [This talk]
⇒ Nearly every setup is either useless or complete.
. . complete . useless
.
Characterize reactive, randomized functionalities, w/ behavior depending on security parameter!
[MajiPrabhakaranRosulek10]
restricted to deterministic & constant-sized. .
◮ Complete characterization [PrabhakaranRosulek08]
◮ Almost-complete characterization [This talk]
⇒ Nearly every setup is either useless or complete.
. . complete . useless
.
Characterize reactive, randomized functionalities, w/ behavior depending on security parameter!
[MajiPrabhakaranRosulek10]
restricted to deterministic & constant-sized. .
. . . . .
F
.
(b)
.
(a)
.
Z
. .
F
.
F
.
T
.
(b)
.
(a)
.
(b)
.
(a)
.
Z
. .
Definitions
. . . . . . . . is splittable if has a winning strategy. [PrabhakaranRosulek08] negligible. (“ fools all environments”) is strongly unsplittable if has a winning strategy. 1/poly. (“ detects all splitting strategies”) Some (arguably unnatural) admit no winning strategy for
! Applies to arbitrary (reactive, randomized, etc) functionalities. .
. . . . .
F
.
(b)
.
(a)
.
Z
. .
F
.
F
.
T
.
(b)
.
(a)
.
(b)
.
(a)
.
Z
. .
Definitions
. . . . . . . . is splittable if has a winning strategy. [PrabhakaranRosulek08] negligible. (“ fools all environments”) is strongly unsplittable if has a winning strategy. 1/poly. (“ detects all splitting strategies”) Some (arguably unnatural) admit no winning strategy for
! Applies to arbitrary (reactive, randomized, etc) functionalities. .
. . . . .
F
.
(b)
.
(a)
.
Z
. .
F
.
F
.
T
.
(b)
.
(a)
.
(b)
.
(a)
.
Z
. .
Definitions
. . . . . . . .
F is splittable if T has a winning strategy. [PrabhakaranRosulek08] ⇔ ∃T : ∀Z : ∆ negligible.
(“T fools all environments”) is strongly unsplittable if has a winning strategy. 1/poly. (“ detects all splitting strategies”) Some (arguably unnatural) admit no winning strategy for
! Applies to arbitrary (reactive, randomized, etc) functionalities. .
. . . . .
F
.
(b)
.
(a)
.
Z
. .
F
.
F
.
T
.
(b)
.
(a)
.
(b)
.
(a)
.
Z
. .
Definitions
. . . . . . . .
F is splittable if T has a winning strategy. [PrabhakaranRosulek08] ⇔ ∃T : ∀Z : ∆ negligible.
(“T fools all environments”)
F is strongly unsplittable if Z has a winning strategy. ⇔ ∃Z : ∀T : ∆ 1/poly.
(“Z detects all splitting strategies”) Some (arguably unnatural) admit no winning strategy for
! Applies to arbitrary (reactive, randomized, etc) functionalities. .
. . . . .
F
.
(b)
.
(a)
.
Z
. .
F
.
F
.
T
.
(b)
.
(a)
.
(b)
.
(a)
.
Z
. .
Definitions
. . . . . . . .
F is splittable if T has a winning strategy. [PrabhakaranRosulek08] ⇔ ∃T : ∀Z : ∆ negligible.
(“T fools all environments”)
F is strongly unsplittable if Z has a winning strategy. ⇔ ∃Z : ∀T : ∆ 1/poly.
(“Z detects all splitting strategies”)
◮ Some (arguably unnatural) F admit no winning strategy for Z or T ! ◮ Applies to arbitrary (reactive, randomized, etc) functionalities.
.
. .
F
. x . f(x) ... where f is a OWF .
. . . .
F
.
Z
.
1
. rand x . y .
“does y f x ?”
. .
F
.
F
.
T
.
Z
.
negl k
. rand x . y .
f x
.
??
.
“does y f x ?”
To make interactions similar, must be able to invert f This detects every is strongly unsplittable .
. . . .
F
.
Z
.
1
. rand x . y .
“does y f x ?”
. .
F
.
F
.
T
.
Z
.
negl k
. rand x . y .
f x
.
??
.
“does y f x ?”
To make interactions similar, must be able to invert f This detects every is strongly unsplittable .
. . . .
F
.
Z
.
1
. rand x . y .
“does y f x ?”
. .
F
.
F
.
T
.
Z
.
negl k
. rand x . y .
f x
.
??
.
“does y f x ?”
To make interactions similar, must be able to invert f This detects every is strongly unsplittable .
. . . .
F
.
Z
.
1
. rand x . y .
“does y = f(x)?”
. .
F
.
F
.
T
.
Z
.
negl k
. rand x . y .
f x
.
??
.
“does y = f(x)?”
To make interactions similar, must be able to invert f This detects every is strongly unsplittable .
. . . .
F
.
Z
.
1
. rand x . y .
“does y = f(x)?”
. .
F
.
F
.
T
.
Z
.
negl k
. rand x . y .
f(x)
.
??
.
“does y = f(x)?” ◮ To make interactions similar, T must be able to invert f
This detects every is strongly unsplittable .
. . . .
F
.
Z
.
1
. rand x . y .
“does y = f(x)?”
. .
F
.
F
.
T
.
Z
.
negl(k)
. rand x . y .
f(x)
.
??
.
“does y = f(x)?” ◮ To make interactions similar, T must be able to invert f
⇒ This Z detects every T ⇒ F is strongly unsplittable
.
. . complete . useless
.
. complete strongly unsplittable
[This talk]
: slightly more involved statement for reactive
.
F useless ⇔ F splittable
[PrabhakaranRosulek08]
.
Outline: Strong Unsplittability Complete
. . . . . . . . Suffices to construct UC-secure commitment protocol
.
. . complete . useless
.
.
F complete ∗ ⇐ F strongly unsplittable
[This talk]
: slightly more involved statement for reactive
.
F useless ⇔ F splittable
[PrabhakaranRosulek08]
.
Outline: Strong Unsplittability Complete
. . . . . . . . Suffices to construct UC-secure commitment protocol
.
. . complete . useless
.
.
F complete ∗ ⇐ F strongly unsplittable
[This talk] ∗: slightly more involved statement for reactive F
.
F useless ⇔ F splittable
[PrabhakaranRosulek08]
.
Outline: Strong Unsplittability Complete
. . . . . . . . Suffices to construct UC-secure commitment protocol
.
. . complete . useless
.
.
F complete ∗ ⇐ F strongly unsplittable
[This talk] ∗: slightly more involved statement for reactive F
.
F useless ⇔ F splittable
[PrabhakaranRosulek08]
.
Outline: Strong Unsplittability ⇒ Complete
. . . . . . . . Suffices to construct UC-secure commitment protocol
.
How to do it (using our example)... . .
F
. x . f(x) .
. . . . . . . . . C = com(b) . C
com
. C
com
b .
. commit phase . receiver . honest sender .
σ
. straight-line simulator . cheating sender . . reveal phase . b . . rand x . y f x . rand x . subprotocol: .
if
.
.
else:
.
.
if
.
.
else:
.
.
if
.
.
else:
.
. . z . f z f x . y . x . z . f x .
. . . . . . . . . C = com(b) . C
com
. C
com
b .
. commit phase . receiver . honest sender .
σ
. straight-line simulator . cheating sender .
. reveal phase . b .
F
. . rand x . y = f(x) . rand x . subprotocol: .
if
.
.
else:
.
.
if
.
.
else:
.
.
if
.
.
else:
.
. . z . f z f x . y . x . z . f x .
. . . . . . . . . C = com(b) . C
com
. C
com
b .
. commit phase . receiver . honest sender .
σ
. straight-line simulator . cheating sender .
. reveal phase . b .
F
. . rand x . y = f(x) . rand x . subprotocol: .
if σ opens C to b:
.
.
else:
.
.
if
.
.
else:
.
.
if
.
.
else:
.
. . z . f z f x .
(σ, y)
. x . z .?
= f(x)
.
. . . . . . . . . C
com b
. C = com(0) . C
com
b . . commit phase . receiver . honest sender . . straight-line simulator . cheating sender . . reveal phase . b . .
F
. rand x . y f x . rand x . subprotocol: .
if
.
.
else:
.
.
if σ opens C to b:
.
.
else:
.
.
if
.
.
else:
.
. . z . f z f x . y .
(−, x)
. z .?
= f(x)
.
. . . . . . . . . C
com b
. C
com
. C = com(1 − b) . . commit phase . receiver . honest sender . . straight-line simulator . cheating sender . . reveal phase . b .
F
. . rand x . y = f(x) . rand x . subprotocol: .
if
.
.
else:
.
.
if
.
.
else:
.
.
if σ opens C to b:
.
.
else:
.
. . z . f z f x . y . x .
(σ, z)
.?
= f(x)
.
. . . . . . . . . C
com b
. C
com
. C = com(1 − b) . . commit phase . receiver . honest sender . . straight-line simulator . cheating sender . . reveal phase . b .
F
. . rand x . y = f(x) . rand x . subprotocol: .
if
.
.
else:
.
.
if
.
.
else:
.
.
if
.
.
else:
.
.
F
. z . f(z) ?
= f(x)
. y . x . z . f x .
. . sender . simulator . receiver . receiver .
F
. . .
F
Honest sender: Bypass “instance of F” within subprotocol Simulator: Bypass ideal instance of Cheating sender: “Stuck between” two instances of .
Strong Un-Splittability
. . . . . . . . There is a way for receiver to behave which can distinguish: Interacting with a single instance of (#1, #2) Interacting with any “split” (#3) .
. . sender . simulator . receiver . receiver . .
F
.
F
. Honest sender: Bypass “instance of F” within subprotocol Simulator: Bypass ideal instance of F Cheating sender: “Stuck between” two instances of .
Strong Un-Splittability
. . . . . . . . There is a way for receiver to behave which can distinguish: Interacting with a single instance of (#1, #2) Interacting with any “split” (#3) .
. . sender . simulator . receiver . receiver .
F
. .
F
. Honest sender: Bypass “instance of F” within subprotocol Simulator: Bypass ideal instance of F Cheating sender: “Stuck between” two instances of F .
Strong Un-Splittability
. . . . . . . . There is a way for receiver to behave which can distinguish: Interacting with a single instance of (#1, #2) Interacting with any “split” (#3) .
. . sender . simulator . receiver . receiver .
F
. .
F
. Honest sender: Bypass “instance of F” within subprotocol Simulator: Bypass ideal instance of F Cheating sender: “Stuck between” two instances of F .
Strong Un-Splittability
. . . . . . . . There is a way for receiver to behave which can distinguish:
◮ Interacting with a single instance of F (#1, #2) ◮ Interacting with any “split” F (#3)
.
Other things in the paper (full version @ eprint/2011/240):
◮ Get from “one-sided” to full-fledged UC commitment ◮ Subtleties, caveats for reactive F ◮ Complete ⇒ strongly unsplittable? (almost!)
Summary: Every “natural” functionality (reactive, randomized, etc.) is either useless or complete as a UC setup. .
Other things in the paper (full version @ eprint/2011/240):
◮ Get from “one-sided” to full-fledged UC commitment ◮ Subtleties, caveats for reactive F ◮ Complete ⇒ strongly unsplittable? (almost!)
Summary: Every “natural” functionality (reactive, randomized, etc.) is either useless or complete as a UC setup. .
.