Robust Transforming Combiners from iO to Functional Encryption - - PowerPoint PPT Presentation

robust transforming combiners from io
SMART_READER_LITE
LIVE PREVIEW

Robust Transforming Combiners from iO to Functional Encryption - - PowerPoint PPT Presentation

Robust Transforming Combiners from iO to Functional Encryption Prabhanjan Ananth Aayush Jain Amit Sahai Since 2013 Two-Round (Adaptive) Multi-Party Computation Instantiating Random Oracles Non-Interactive Multi-party Key


slide-1
SLIDE 1

Robust Transforming Combiners from iO to Functional Encryption

Prabhanjan Ananth Aayush Jain Amit Sahai

slide-2
SLIDE 2

Since 2013…

. . .

Indistinguishability Obfuscation (iO)/Functional Encryption

  • Two-Round (Adaptive) Multi-Party

Computation

  • Instantiating Random Oracles
  • Non-Interactive Multi-party Key Exchange
  • Impossibility Results
  • Theoretical Results (such as PPAD

Hardness)

  • Constant-Round Concurrent Zero

Knowledge

  • Separation Results for Circular Security
  • Succinct Randomized Encodings
  • Watermarking
  • Patching
slide-3
SLIDE 3

What is iO?

iO (

)

C C*

slide-4
SLIDE 4

What is iO?

iO (

)

C C* Correctness: for all x, C*(x) = C(x)

slide-5
SLIDE 5

What is iO?

C0 C1

slide-6
SLIDE 6

What is iO?

iO (

)

C0

iO (

)

C1

slide-7
SLIDE 7

What is iO?

iO (

)

C0 C0*

iO (

)

C1 C1*

slide-8
SLIDE 8

What is iO?

iO (

)

C0 C0* Security: ≈c

iO (

)

C1 C1*

slide-9
SLIDE 9

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

x

slide-10
SLIDE 10

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

x x

slide-11
SLIDE 11

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

x x

slide-12
SLIDE 12

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

x x MSK

slide-13
SLIDE 13

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

f x x MSK

slide-14
SLIDE 14

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

f x x MSK f

slide-15
SLIDE 15

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

f x x MSK f

Dec( , ) = f(x)

x f

slide-16
SLIDE 16

Fine Grained Access to Private Data

Functional Encryption

[SW’05,GGHRSW13]

f x x SKf should not allow adversary to compute anything other than f(x) ! MSK f

Dec( , ) = f(x)

x f

slide-17
SLIDE 17

Known Constructions?

[GGHRSW’13, BGKPS’14, Zim’15, GLSW’15, AB’15, GMMSSZ’16, LV’16, L’16, AS’17, LT’17….]

slide-18
SLIDE 18

Are all candidates of iO broken?

NO!

slide-19
SLIDE 19

Are all candidates of iO broken?

NO!

We have several unbroken iO candidates, including with proofs of security in various models.

slide-20
SLIDE 20

Find a iO candidate that is secure even if only one of the candidates is secure.

Our Goal

slide-21
SLIDE 21

Find a iO candidate that is secure even if only one of the candidates is secure. Problem Statement: Given any set of iO candidates, find a candidate that is secure even if only one of the candidates is secure.

Our Goal

slide-22
SLIDE 22

Find a iO candidate that is secure even if only one of the candidates is secure. Problem Statement: Given any set of iO candidates, find a candidate that is secure even if only one of the candidates is secure. t iO combiner

Our Goal

slide-23
SLIDE 23

Find a iO candidate that is secure even if only one of the candidates is secure. Problem Statement: Given any set of iO candidates, find a candidate that is secure even if only one of the candidates is secure.

Robust iO combiner: In fact we only require the secure candidate to be correct All other candidates can violate correctness [AJNSY16, FHNS16]

Our Goal

slide-24
SLIDE 24

Robust iO Combiners

Let P = (P1, …, Pn) be any n iO candidates

slide-25
SLIDE 25

Robust iO Combiners

Let P = (P1, …, Pn) be any n iO candidates

  • RCiO.Obf( P , C ) outputs C*.
slide-26
SLIDE 26

Robust iO Combiners

Let P = (P1, …, Pn) be any n iO candidates

  • RCiO.Obf( P , C ) outputs C*.
  • RCiO.Eval( P , C*, x ) outputs y.
slide-27
SLIDE 27

Robust iO Combiners

Let P = (P1, …, Pn) be any n iO candidates

  • RCiO.Obf( P , C ) outputs C*.
  • RCiO.Eval( P , C*, x ) outputs y.

If there exists i in [n] such that Pi is correct and secure :

slide-28
SLIDE 28

Robust iO Combiners

Correctness: y = C(x)

Let P = (P1, …, Pn) be any n iO candidates

  • RCiO.Obf( P , C ) outputs C*.
  • RCiO.Eval( P , C*, x ) outputs y.

If there exists i in [n] such that Pi is correct and secure :

slide-29
SLIDE 29

Robust iO Combiners

Let P = (P1, …, Pn) be any n iO candidates

  • RCiO.Obf( P , C ) outputs C*.
  • RCiO.Eval( P , C*, x ) outputs y.

Security: If C0 is equivalent to C1, RCiO.Obf( P , C0) ≈c RCiO.Obf( P , C1) If there exists i in [n] such that Pi is correct and secure :

slide-30
SLIDE 30

Robust iO combiners imply universal iO [AJNSY’16]

Implications

slide-31
SLIDE 31

Robust iO combiners imply universal iO [AJNSY’16]

Implications

Universal iO: A scheme P is a universal iO scheme if iO exists then P is a secure iO scheme

slide-32
SLIDE 32

Previous Work

slide-33
SLIDE 33

Previous Work

  • AJNSY16 gave candidate construction of a

robust combiner from DDH/LWE.

  • Required one candidate to be

sub-exponentially secure.

  • FHNS16 considers the case of combining

unconditionally.

slide-34
SLIDE 34

Previous Work

  • AJNSY16 gave candidate construction of a

robust combiner from DDH/LWE.

  • Required one candidate to be

sub-exponentially secure.

  • FHNS16 considers the case of combining

unconditionally.

  • Can we achieve some applications of iO if

the secure candidate is polynomially secure?

  • Can we weaken the assumptions to rely on
  • nly one-way functions?

Questions?

slide-35
SLIDE 35

This Work

Theorem 1 (Combiner -> Robust Combiner): Given:

  • An iO Combiner AND
  • One-way function f,

we construct a robust iO combiner

slide-36
SLIDE 36

This Work

Theorem 1 (Combiner -> Robust Combiner): Given:

  • An iO Combiner AND
  • One-way function f,

we construct a robust iO combiner

Previously, as observed in AJNSY’16 and BV’15, this result required sub-exponential DDH/LWE and the underlying candidate to be sub-exponentially secure

slide-37
SLIDE 37

This Work

slide-38
SLIDE 38

This Work

Theorem 2: Given:

  • N correct iO Candidates (with one secure)

AND

  • Any one-way function F,

we construct a compact FE scheme with complexity poly(k,N) and polynomial security loss.

slide-39
SLIDE 39

This Work

Theorem 2: Given:

  • N correct iO Candidates (with one secure)

AND

  • Any one-way function F,

we construct a compact FE scheme with complexity poly(k,N) and polynomial security loss.

Corollary [AJ15,BV15]: There exists (sub-exponential) universal iO ifsub-exponential one-way functions exist.

slide-40
SLIDE 40

This Work

Theorem 2: Given:

  • N correct iO Candidates (with one secure)

AND

  • Any one-way function F,

we construct a compact FE scheme with complexity poly(k,N) and polynomial security loss.

Corollary [AJ15,BV15]: There exists (sub-exponential) universal iO ifsub-exponential one-way functions exist. Transforming Combiners

slide-41
SLIDE 41

Given N candidates of primitive A=(A1,..,AN), such that one Ai is secure and correct, construct secure primitive B with efficiency polynomial in N.

Transforming Combiners

slide-42
SLIDE 42

Given N candidates of primitive A=(A1,..,AN), such that one Ai is secure and correct, construct secure primitive B with efficiency polynomial in N.

Transforming Combiners

We show: There exists a transforming robust combiner from iO to Functional Encryption. This also yields any primitive implied by FE (such as NIKE. [GPSZ17])

slide-43
SLIDE 43

Technical Overview

slide-44
SLIDE 44

Combiner to Robust Combiner: Idea 1

slide-45
SLIDE 45

Combiner to Robust Combiner: Idea 1

  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

slide-46
SLIDE 46

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

slide-47
SLIDE 47

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • 1. Compute P(C)=C*
  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

slide-48
SLIDE 48

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • 1. Compute P(C)=C*
  • 2. Sample x1, x2,..,xL, where L = k2
  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

slide-49
SLIDE 49

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • 1. Compute P(C)=C*
  • 2. Sample x1, x2,..,xL, where L = k2
  • 3. Check if C*(xi)=C(xi) for all i
  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

slide-50
SLIDE 50

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • 1. Compute P(C)=C*
  • 2. Sample x1, x2,..,xL, where L = k2
  • 3. Check if C*(xi)=C(xi) for all i
  • 4. If any check fails, output C, otherwise output C*
  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

slide-51
SLIDE 51

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • 1. Compute P(C)=C*
  • 2. Sample x1, x2,..,xL, where L = k2
  • 3. Check if C*(xi)=C(xi) for all i
  • 4. If any check fails, output C, otherwise output C*
  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

Pr{x,coins(P)} [C*(x)=C(x)] ≥ 1 - 1/k

slide-52
SLIDE 52

Combiner to Robust Combiner: Idea 1

P’(C) works as follows:

  • 1. Compute P(C)=C*
  • 2. Sample x1, x2,..,xL, where L = k2
  • 3. Check if C*(xi)=C(xi) for all i
  • 4. If any check fails, output C, otherwise output C*
  • For each obfuscation candidate P, construct modified

candidate P’ that “self-checks for correctness”:

Pr{x,coins(P)} [C*(x)=C(x)] ≥ 1 - 1/k Secure candidate is unchanged as it is correct.

slide-53
SLIDE 53

Removing dependency on x: Idea 2

slide-54
SLIDE 54

Removing dependency on x: Idea 2

slide-55
SLIDE 55

“Encrypt Inputs” [BV’15]

Removing dependency on x: Idea 2

slide-56
SLIDE 56

“Encrypt Inputs” [BV’15]

  • Consider a “special” circuit garbling scheme with an

additional property.

Removing dependency on x: Idea 2

slide-57
SLIDE 57

“Encrypt Inputs” [BV’15]

  • Consider a “special” circuit garbling scheme with an

additional property.

For any equivalent circuits C0 and C1 Eval([C0],*)≅Eval([C1],*)

Removing dependency on x: Idea 2

slide-58
SLIDE 58

“Encrypt Inputs” [BV’15]

  • Consider a “special” circuit garbling scheme with an

additional property.

  • Such garbled circuits can be constructed from one-way

functions.

For any equivalent circuits C0 and C1 Eval([C0],*)≅Eval([C1],*)

Removing dependency on x: Idea 2

slide-59
SLIDE 59

Combining Ideas

slide-60
SLIDE 60

Combining Ideas

  • 1. Use the modified obfuscator to obfuscate Eval([C],*)
  • 2. Release the encoding key MSK to the evaluator.
slide-61
SLIDE 61

Combining Ideas

  • 1. Use the modified obfuscator to obfuscate Eval([C],*)
  • 2. Release the encoding key MSK to the evaluator.

For any x, Pr{coins(P)} [C*(x)=C(x)] ≥ 1-2/k

slide-62
SLIDE 62

Combining Ideas

  • 1. Use the modified obfuscator to obfuscate Eval([C],*)
  • 2. Release the encoding key MSK to the evaluator.

For any x, Pr{coins(P)} [C*(x)=C(x)] ≥ 1-2/k

Perform BPP Amplification to get almost correctness

slide-63
SLIDE 63

Theorem 2: Combining iO

IDEA:

slide-64
SLIDE 64

Theorem 2: Combining iO

IDEA:

  • No candidate should get the circuit in the clear.
slide-65
SLIDE 65

Theorem 2: Combining iO

IDEA:

  • No candidate should get the circuit in the clear.
  • Every candidate should get a secret share of circuit C.
slide-66
SLIDE 66

Theorem 2: Combining iO

IDEA:

  • No candidate should get the circuit in the clear.
  • Every candidate should get a secret share of circuit C.
  • On every input x, the candidates “jointly compute” C(x)
slide-67
SLIDE 67

Theorem 2: Combining iO

IDEA:

  • No candidate should get the circuit in the clear.
  • Every candidate should get a secret share of circuit C.
  • On every input x, the candidates “jointly compute” C(x)

How to do this?

slide-68
SLIDE 68

Theorem 2: Combining iO

IDEA:

  • No candidate should get the circuit in the clear.
  • Every candidate should get a secret share of circuit C.
  • On every input x, the candidates “jointly compute” C(x)

How to do this? Use MPC Techniques!

slide-69
SLIDE 69

Approach of AJNSY’16

slide-70
SLIDE 70
  • Let C be the circuit to be obfuscated.

Approach of AJNSY’16

slide-71
SLIDE 71
  • Let C be the circuit to be obfuscated.
  • Use a non-interactive MPC.

Approach of AJNSY’16

slide-72
SLIDE 72
  • Let C be the circuit to be obfuscated.
  • Use a non-interactive MPC.
  • Secret share circuit C into C1,…,CN. Treat Ci as input to Pi.

Approach of AJNSY’16

slide-73
SLIDE 73
  • Let C be the circuit to be obfuscated.
  • Use a non-interactive MPC.
  • Secret share circuit C into C1,…,CN. Treat Ci as input to Pi.
  • Obfuscate the circuit containing Ci and the pre-processed

state using candidate Pi

Approach of AJNSY’16

slide-74
SLIDE 74
  • Let C be the circuit to be obfuscated.
  • Use a non-interactive MPC.
  • Secret share circuit C into C1,…,CN. Treat Ci as input to Pi.
  • Obfuscate the circuit containing Ci and the pre-processed

state using candidate Pi

Approach of AJNSY’16

MPC satisfying such properties are based on assumptions such as LWE/DDH [MW’16,BGI’17]

slide-75
SLIDE 75
  • Let C be the circuit to be obfuscated.
  • Use a non-interactive MPC.
  • Secret share circuit C into C1,…,CN. Treat Ci as input to Pi.
  • Obfuscate the circuit containing Ci and the pre-processed

state using candidate Pi

Approach of AJNSY’16

MPC satisfying such properties are based on assumptions such as LWE/DDH [MW’16,BGI’17] Can we weaken assumptions by relying on interactive MPC?

slide-76
SLIDE 76

Our Approach

slide-77
SLIDE 77

Our Approach

slide-78
SLIDE 78

Our Approach

  • Secret share circuit to (C1,..,CN) using additive

secret sharing.

slide-79
SLIDE 79

Our Approach

  • Secret share circuit to (C1,..,CN) using additive

secret sharing.

  • Treat each candidate as a party in interactive MP

Cprotocol.

slide-80
SLIDE 80

Our Approach

  • Secret share circuit to (C1,..,CN) using additive

secret sharing.

  • Treat each candidate as a party in interactive MP

Cprotocol.

  • Run the MPC protocol for U(C1+…+CN, x) to learn

C(x)

slide-81
SLIDE 81

How to evaluate MPC?

slide-82
SLIDE 82

How to evaluate MPC?

  • Using candidate Pi obfuscate NextMsg(Ci, , *)
slide-83
SLIDE 83

How to evaluate MPC?

  • Using candidate Pi obfuscate NextMsg(Ci, , *)
slide-84
SLIDE 84

How to evaluate MPC?

  • Using candidate Pi obfuscate NextMsg(Ci, , *)

P1.Obf P2.Obf

slide-85
SLIDE 85

How to evaluate MPC?

  • Using candidate Pi obfuscate NextMsg(Ci, , *)

P1.Obf

NextMsg1(C1,*)

P2.Obf NextMsg2(C2,*)

slide-86
SLIDE 86

How to evaluate MPC?

  • Using candidate Pi obfuscate NextMsg(Ci, , *)

P1.Obf

NextMsg1(C1,*)

P2.Obf NextMsg2(C2,*)

We need exponentially many OTs.

slide-87
SLIDE 87

(Random) OT

P1 P2

slide-88
SLIDE 88

(Random) OT

(r0,r1)

P1 P2

slide-89
SLIDE 89

(Random) OT

(r0,r1) b

P1 P2

slide-90
SLIDE 90

(Random) OT

(r0,r1) (r0,r1) b

P1 P2

slide-91
SLIDE 91

(Random) OT

(r0,r1) (r0,r1) b (b,rb)

P1 P2

slide-92
SLIDE 92

How to Implement OT?

slide-93
SLIDE 93

How to Implement OT?

  • Use any OT protocol? Assumptions are stronger.
slide-94
SLIDE 94

How to Implement OT?

  • Use any OT protocol? Assumptions are stronger.
  • Pre-process random OTs. Exponential pre-

processing required.

slide-95
SLIDE 95

How to Implement OT?

  • Use any OT protocol? Assumptions are stronger.
  • Pre-process random OTs. Exponential pre-

processing required.

  • Use PRF keys to generate OTs on the fly.
slide-96
SLIDE 96

Using PRF keys

slide-97
SLIDE 97

Using PRF keys

K12

P2.Obf NextMsg2(C2,*)

slide-98
SLIDE 98

Using PRF keys

K12

P2.Obf NextMsg2(C2,*)

K12

P1.Obf

NextMsg1(C1,*)

slide-99
SLIDE 99

Using PRF keys

But the PRF key Ki,j is obfuscated individually by both candidates Pi and Pj K12

P2.Obf NextMsg2(C2,*)

K12

P1.Obf

NextMsg1(C1,*)

slide-100
SLIDE 100

Using PRF keys

But the PRF key Ki,j is obfuscated individually by both candidates Pi and Pj K12

P2.Obf NextMsg2(C2,*)

K12

P1.Obf

NextMsg1(C1,*)

slide-101
SLIDE 101

Using PRF keys

But the PRF key Ki,j is obfuscated individually by both candidates Pi and Pj K12

P2.Obf NextMsg2(C2,*)

K12

P1.Obf

NextMsg1(C1,*)

slide-102
SLIDE 102

Using PRF keys

But the PRF key Ki,j is obfuscated individually by both candidates Pi and Pj K12

P2.Obf NextMsg2(C2,*)

K12

P1.Obf

NextMsg1(C1,*)

slide-103
SLIDE 103

Our Fix: Onion Combiner

slide-104
SLIDE 104

Our Fix: Onion Combiner

P1.Obf (

)

NextMsg1,2[K12]

( )

P2.Obf

slide-105
SLIDE 105

Further Ideas

slide-106
SLIDE 106

Further Ideas

  • Several other problems: Handling malicious candidates,

resetting attacks, avoiding stronger assumptions, ...

slide-107
SLIDE 107

Further Ideas

  • Several other problems: Handling malicious candidates,

resetting attacks, avoiding stronger assumptions, ...

  • FE allows us to avoid input-by-input arguments,

allows us to use only polynomial hardness.

slide-108
SLIDE 108

Further Ideas

  • Several other problems: Handling malicious candidates,

resetting attacks, avoiding stronger assumptions, ...

  • FE allows us to avoid input-by-input arguments,

allows us to use only polynomial hardness.

slide-109
SLIDE 109

Open Questions

slide-110
SLIDE 110

1. iO Combiner from polynomial hardness

Open Questions

slide-111
SLIDE 111

1. iO Combiner from polynomial hardness

  • 2. Combiner for poly–hard Functional

Encryption from OWF/DDH

Open Questions