Privately Constraining and Programming PRFs, the LWE Way Chris - - PowerPoint PPT Presentation

privately constraining and programming prfs the lwe way
SMART_READER_LITE
LIVE PREVIEW

Privately Constraining and Programming PRFs, the LWE Way Chris - - PowerPoint PPT Presentation

Privately Constraining and Programming PRFs, the LWE Way Chris Peikert Sina Shiehian PKC 2018 1 / 15 Constrained Pseudorandom Functions [KPTZ13,BW13,BGI14] 1 Ordinary evaluation algorithm Eval ( msk, x ) . 2 / 15 Constrained


slide-1
SLIDE 1

Privately Constraining and Programming PRFs, the LWE Way

Chris Peikert Sina Shiehian PKC 2018

1 / 15

slide-2
SLIDE 2

Constrained Pseudorandom Functions [KPTZ’13,BW’13,BGI’14]

1 Ordinary evaluation algorithm Eval(msk, x).

2 / 15

slide-3
SLIDE 3

Constrained Pseudorandom Functions [KPTZ’13,BW’13,BGI’14]

1 Ordinary evaluation algorithm Eval(msk, x). 2 For any constraint C ∈ C, can generate a constrained key skC

(using msk).

2 / 15

slide-4
SLIDE 4

Constrained Pseudorandom Functions [KPTZ’13,BW’13,BGI’14]

1 Ordinary evaluation algorithm Eval(msk, x). 2 For any constraint C ∈ C, can generate a constrained key skC

(using msk).

3 Constrained evaluation algorithm CEval(skC, x).

2 / 15

slide-5
SLIDE 5

Constrained Pseudorandom Functions [KPTZ’13,BW’13,BGI’14]

1 Ordinary evaluation algorithm Eval(msk, x). 2 For any constraint C ∈ C, can generate a constrained key skC

(using msk).

3 Constrained evaluation algorithm CEval(skC, x).

Correctness

◮ If C(x) = 0 (“authorized”) then CEval(skC, x) = Eval(msk, x).

2 / 15

slide-6
SLIDE 6

Constrained Pseudorandom Functions [KPTZ’13,BW’13,BGI’14]

1 Ordinary evaluation algorithm Eval(msk, x). 2 For any constraint C ∈ C, can generate a constrained key skC

(using msk).

3 Constrained evaluation algorithm CEval(skC, x).

Correctness

◮ If C(x) = 0 (“authorized”) then CEval(skC, x) = Eval(msk, x).

Security

◮ If C(x) = 1 (“unauth”) then Eval(msk, x)

c

≈ random (even w/skC).

2 / 15

slide-7
SLIDE 7

Constrained Pseudorandom Functions [KPTZ’13,BW’13,BGI’14]

1 Ordinary evaluation algorithm Eval(msk, x). 2 For any constraint C ∈ C, can generate a constrained key skC

(using msk).

3 Constrained evaluation algorithm CEval(skC, x).

Correctness

◮ If C(x) = 0 (“authorized”) then CEval(skC, x) = Eval(msk, x).

Security

◮ If C(x) = 1 (“unauth”) then Eval(msk, x)

c

≈ random (even w/skC). ◮ Applications: uses of iO [SW’14], ID-based key exchange, broadcast encryption, . . .

2 / 15

slide-8
SLIDE 8

Privacy and Programmability [BonehLewiWu’17]

◮ Ordinarily, a constrained key skC may reveal C. (It hides only the PRF output at unauthorized x.)

3 / 15

slide-9
SLIDE 9

Privacy and Programmability [BonehLewiWu’17]

◮ Ordinarily, a constrained key skC may reveal C. (It hides only the PRF output at unauthorized x.)

Privacy (a.k.a. Constraint Hiding)

◮ Constrained key skC reveals nothing about C. In particular, it hides whether x is (un)authorized.

3 / 15

slide-10
SLIDE 10

Privacy and Programmability [BonehLewiWu’17]

◮ Ordinarily, a constrained key skC may reveal C. (It hides only the PRF output at unauthorized x.)

Privacy (a.k.a. Constraint Hiding)

◮ Constrained key skC reveals nothing about C. In particular, it hides whether x is (un)authorized. ◮ Applications: searchable encryption, function secret sharing [BGI’15].

3 / 15

slide-11
SLIDE 11

Privacy and Programmability [BonehLewiWu’17]

◮ Ordinarily, a constrained key skC may reveal C. (It hides only the PRF output at unauthorized x.)

Privacy (a.k.a. Constraint Hiding)

◮ Constrained key skC reveals nothing about C. In particular, it hides whether x is (un)authorized. ◮ Applications: searchable encryption, function secret sharing [BGI’15].

Programmability

◮ Can program skC to produce a desired value at some unauthorized x∗. (Nontrivial only if unauthorized x are hidden.)

3 / 15

slide-12
SLIDE 12

Privacy and Programmability [BonehLewiWu’17]

◮ Ordinarily, a constrained key skC may reveal C. (It hides only the PRF output at unauthorized x.)

Privacy (a.k.a. Constraint Hiding)

◮ Constrained key skC reveals nothing about C. In particular, it hides whether x is (un)authorized. ◮ Applications: searchable encryption, function secret sharing [BGI’15].

Programmability

◮ Can program skC to produce a desired value at some unauthorized x∗. (Nontrivial only if unauthorized x are hidden.) ◮ Applications: watermarking PRFs, ???.

3 / 15

slide-13
SLIDE 13

Prior Results

BLW’17 Private constrained PRFs for all functions, & programmable PRFs, from iO.

4 / 15

slide-14
SLIDE 14

Prior Results

BLW’17 Private constrained PRFs for all functions, & programmable PRFs, from iO. BKM’17 Private constrained PRFs for point functions, from LWE.

4 / 15

slide-15
SLIDE 15

Prior Results

BLW’17 Private constrained PRFs for all functions, & programmable PRFs, from iO. BKM’17 Private constrained PRFs for point functions, from LWE. CC’17 Private constrained PRFs for NC1 circuits, from LWE.

4 / 15

slide-16
SLIDE 16

Prior Results

BLW’17 Private constrained PRFs for all functions, & programmable PRFs, from iO. BKM’17 Private constrained PRFs for point functions, from LWE. CC’17 Private constrained PRFs for NC1 circuits, from LWE. BTVW’17 Private constrained PRFs for all circuits, from LWE.

4 / 15

slide-17
SLIDE 17

Prior Results

BLW’17 Private constrained PRFs for all functions, & programmable PRFs, from iO. BKM’17 Private constrained PRFs for point functions, from LWE. CC’17 Private constrained PRFs for NC1 circuits, from LWE. BTVW’17 Private constrained PRFs for all circuits, from LWE. Caveat! Limited to one constrained key. Two keys for arbitrary circuits ⇒ iO [CC’17]

4 / 15

slide-18
SLIDE 18

Prior Results

BLW’17 Private constrained PRFs for all functions, & programmable PRFs, from iO. BKM’17 Private constrained PRFs for point functions, from LWE. CC’17 Private constrained PRFs for NC1 circuits, from LWE. BTVW’17 Private constrained PRFs for all circuits, from LWE. Caveat! Limited to one constrained key. Two keys for arbitrary circuits ⇒ iO [CC’17] Open Programmable PRFs from a non-iO assumption.

4 / 15

slide-19
SLIDE 19

Our Results

Main Message

◮ A unified approach to private constrained and programmable PRFs from LWE: shift-hiding functions. ◮ Simple, modular constructions via the ‘right’ choice of shift function.

5 / 15

slide-20
SLIDE 20

Our Results

Main Message

◮ A unified approach to private constrained and programmable PRFs from LWE: shift-hiding functions. ◮ Simple, modular constructions via the ‘right’ choice of shift function.

Constructions

1 Shift-hiding functions from LWE by standard FHE/ABE/PE tech

[GSW’13,BGG+’14,GVW’15]

5 / 15

slide-21
SLIDE 21

Our Results

Main Message

◮ A unified approach to private constrained and programmable PRFs from LWE: shift-hiding functions. ◮ Simple, modular constructions via the ‘right’ choice of shift function.

Constructions

1 Shift-hiding functions from LWE by standard FHE/ABE/PE tech

[GSW’13,BGG+’14,GVW’15]

2 Private constrained & programmable PRFs, simply by letting

shift = constraint × (pseudo)random function

5 / 15

slide-22
SLIDE 22

Our Results

Main Message

◮ A unified approach to private constrained and programmable PRFs from LWE: shift-hiding functions. ◮ Simple, modular constructions via the ‘right’ choice of shift function.

Constructions

1 Shift-hiding functions from LWE by standard FHE/ABE/PE tech

[GSW’13,BGG+’14,GVW’15]

2 Private constrained & programmable PRFs, simply by letting

shift = constraint × (pseudo)random function In particular, the first programmable PRFs from non-iO assumptions.

5 / 15

slide-23
SLIDE 23

Our Results

Main Message

◮ A unified approach to private constrained and programmable PRFs from LWE: shift-hiding functions. ◮ Simple, modular constructions via the ‘right’ choice of shift function.

Constructions

1 Shift-hiding functions from LWE by standard FHE/ABE/PE tech

[GSW’13,BGG+’14,GVW’15]

2 Private constrained & programmable PRFs, simply by letting

shift = constraint × (pseudo)random function In particular, the first programmable PRFs from non-iO assumptions. Selectively simulation-secure, for a priori bounded-size functions.

5 / 15

slide-24
SLIDE 24

Shift-Hiding Functions ⇓ Private/Programmable PRFs

6 / 15

slide-25
SLIDE 25

Main Tool: Shift-Hiding Functions

1 Ordinary evaluation algorithm Eval(msk, · ): X → Zq.

7 / 15

slide-26
SLIDE 26

Main Tool: Shift-Hiding Functions

1 Ordinary evaluation algorithm Eval(msk, · ): X → Zq. 2 Shifting algorithm skH ← Shift(msk, H) for shift fct H : X → Zq.

7 / 15

slide-27
SLIDE 27

Main Tool: Shift-Hiding Functions

1 Ordinary evaluation algorithm Eval(msk, · ): X → Zq. 2 Shifting algorithm skH ← Shift(msk, H) for shift fct H : X → Zq. 3 Shifted evaluation algorithm SEval(skH, · ): X → Zq.

7 / 15

slide-28
SLIDE 28

Main Tool: Shift-Hiding Functions

1 Ordinary evaluation algorithm Eval(msk, · ): X → Zq. 2 Shifting algorithm skH ← Shift(msk, H) for shift fct H : X → Zq. 3 Shifted evaluation algorithm SEval(skH, · ): X → Zq.

Shifting

◮ For every shift function H and every x ∈ X: SEval(skH, x) ≈ Eval(msk, x) + H(x) (mod q)

7 / 15

slide-29
SLIDE 29

Main Tool: Shift-Hiding Functions

1 Ordinary evaluation algorithm Eval(msk, · ): X → Zq. 2 Shifting algorithm skH ← Shift(msk, H) for shift fct H : X → Zq. 3 Shifted evaluation algorithm SEval(skH, · ): X → Zq.

Shifting

◮ For every shift function H and every x ∈ X: SEval(skH, x) ≈ Eval(msk, x) + H(x) (mod q)

Hiding

◮ skH reveals nothing about H.

7 / 15

slide-30
SLIDE 30

Shift-Hiding Functions ⇒ Private Constrained PRFs

◮ F(msk, x) := ⌊Eval(msk, x)⌉, where ⌊·⌉: Zq → Z2 “rounds off.”

8 / 15

slide-31
SLIDE 31

Shift-Hiding Functions ⇒ Private Constrained PRFs

◮ F(msk, x) := ⌊Eval(msk, x)⌉, where ⌊·⌉: Zq → Z2 “rounds off.” ◮ To generate a constrained key for circuit C, define shift function H(x) = C(x) · PRFk(x) and output skC ← Shift(msk, H). This hides H, hence C (and k).

8 / 15

slide-32
SLIDE 32

Shift-Hiding Functions ⇒ Private Constrained PRFs

◮ F(msk, x) := ⌊Eval(msk, x)⌉, where ⌊·⌉: Zq → Z2 “rounds off.” ◮ To generate a constrained key for circuit C, define shift function H(x) = C(x) · PRFk(x) and output skC ← Shift(msk, H). This hides H, hence C (and k). ◮ Constrained evaluation: ⌊SEval(skC, x)⌉. By shifting property, this is ⌊Eval(msk, x) + H(x)⌉ =

  • F(msk, x)

if C(x) = 0

c

≈ random if C(x) = 1.

8 / 15

slide-33
SLIDE 33

Shift-Hiding Functions ⇒ Programmable PRFs

◮ As before, F(msk, x) := ⌊Eval(msk, x)⌉, where ⌊·⌉: Zq → Z2.

9 / 15

slide-34
SLIDE 34

Shift-Hiding Functions ⇒ Programmable PRFs

◮ As before, F(msk, x) := ⌊Eval(msk, x)⌉, where ⌊·⌉: Zq → Z2. ◮ To generate a programmed key that maps x∗ to y∗ ∈ {0, 1}: Choose random z∗ ∈ Zq s.t. ⌊z∗⌉ = y∗, define shift function H(x) =

  • y∗ − Eval(msk, x∗)

if x = x∗

  • therwise,

and output skC = Shift(sk, H). This hides H, hence x∗.

9 / 15

slide-35
SLIDE 35

Shift-Hiding Functions ⇒ Programmable PRFs

◮ As before, F(msk, x) := ⌊Eval(msk, x)⌉, where ⌊·⌉: Zq → Z2. ◮ To generate a programmed key that maps x∗ to y∗ ∈ {0, 1}: Choose random z∗ ∈ Zq s.t. ⌊z∗⌉ = y∗, define shift function H(x) =

  • y∗ − Eval(msk, x∗)

if x = x∗

  • therwise,

and output skC = Shift(sk, H). This hides H, hence x∗. ◮ As before, constrained evaluation is ⌊SEval(skC, x)⌉. This is ⌊Eval(msk, x) + H(x)⌉ =

  • ⌊z∗⌉ = y∗

if x = x∗ F(msk, x)

  • therwise.

9 / 15

slide-36
SLIDE 36

Construction Shift-Hiding Functions

10 / 15

slide-37
SLIDE 37

Gadget Homomorphisms [MP’12,GSW’13,BGG+’14,GVW’15]

◮ Fixed ‘gadget’ matrix G, public random matrices Ai over Zq.

11 / 15

slide-38
SLIDE 38

Gadget Homomorphisms [MP’12,GSW’13,BGG+’14,GVW’15]

◮ Fixed ‘gadget’ matrix G, public random matrices Ai over Zq. ◮ ‘Embed’ xi ∈ {0, 1} or Zq w.r.t. Ai as ≈ s(Ai + xi · G)

≈ s(Ai + xi · G)

x

11 / 15

slide-39
SLIDE 39

Gadget Homomorphisms [MP’12,GSW’13,BGG+’14,GVW’15]

◮ Fixed ‘gadget’ matrix G, public random matrices Ai over Zq. ◮ ‘Embed’ xi ∈ {0, 1} or Zq w.r.t. Ai as ≈ s(Ai + xi · G) ◮ Can compute embedded f(x) w.r.t. Af, knowing x (but not s) . . .

≈ s(Ai + xi · G)

x

BoolEval

− − − − →

f,x

≈ s(Af + f(x) · G)

f(x)

11 / 15

slide-40
SLIDE 40

Gadget Homomorphisms [MP’12,GSW’13,BGG+’14,GVW’15]

◮ Fixed ‘gadget’ matrix G, public random matrices Ai over Zq. ◮ ‘Embed’ xi ∈ {0, 1} or Zq w.r.t. Ai as ≈ s(Ai + xi · G) ◮ Can compute embedded f(x) w.r.t. Af, knowing x (but not s) . . . ◮ . . . and embedded x, y mod q w.r.t. Alin, knowing x (but not y, s).

≈ s(Ai + xi · G)

x

BoolEval

− − − − →

f,x

≈ s(Af + f(x) · G)

f(x) x, y

11 / 15

slide-41
SLIDE 41

Gadget Homomorphisms [MP’12,GSW’13,BGG+’14,GVW’15]

◮ Fixed ‘gadget’ matrix G, public random matrices Ai over Zq. ◮ ‘Embed’ xi ∈ {0, 1} or Zq w.r.t. Ai as ≈ s(Ai + xi · G) ◮ Can compute embedded f(x) w.r.t. Af, knowing x (but not s) . . . ◮ . . . and embedded x, y mod q w.r.t. Alin, knowing x (but not y, s).

≈ s(Ai + xi · G)

x

BoolEval

− − − − →

f,x

≈ s(Af + f(x) · G)

f(x) x, y

LinEval

− − − − →

x

≈ s(Alin + x, y · G)

x, y mod q

11 / 15

slide-42
SLIDE 42

Input Privacy [GorbunovVaikuntanathanWee’15]

◮ Goal: in gadget embedding, compute many known f on one private x.

12 / 15

slide-43
SLIDE 43

Input Privacy [GorbunovVaikuntanathanWee’15]

◮ Goal: in gadget embedding, compute many known f on one private x.

1 Encrypt x under FHE and embed ct = FHE(x), skFHE.

ct = FHE x , skFHE

12 / 15

slide-44
SLIDE 44

Input Privacy [GorbunovVaikuntanathanWee’15]

◮ Goal: in gadget embedding, compute many known f on one private x.

1 Encrypt x under FHE and embed ct = FHE(x), skFHE. 2 BoolEval ⇒ embedding of ct′ = FHE.Eval(f, ct) = FHE(f(x)).

ct = FHE x , skFHE FHE.Eval(f, ·), ct   BoolEval ct′ = FHE f(x) , skFHE

12 / 15

slide-45
SLIDE 45

Input Privacy [GorbunovVaikuntanathanWee’15]

◮ Goal: in gadget embedding, compute many known f on one private x.

1 Encrypt x under FHE and embed ct = FHE(x), skFHE. 2 BoolEval ⇒ embedding of ct′ = FHE.Eval(f, ct) = FHE(f(x)). 3 LinEval ⇒ embedding of ct′, skFHE ≈ f(x) mod q.

ct = FHE x , skFHE FHE.Eval(f, ·), ct   BoolEval ct′ = FHE f(x) , skFHE

LinEval

− − − − →

ct′

≈ s(Af + (≈ f(x)) · G)

≈ f(x)

12 / 15

slide-46
SLIDE 46

Switching Function and Input [BTVW’17,this work]

◮ Goal: in embedding, compute one private H on many known x.

13 / 15

slide-47
SLIDE 47

Switching Function and Input [BTVW’17,this work]

◮ Goal: in embedding, compute one private H on many known x.

1 Encrypt H under FHE and embed ct, skFHE.

ct = FHE H , skFHE

13 / 15

slide-48
SLIDE 48

Switching Function and Input [BTVW’17,this work]

◮ Goal: in embedding, compute one private H on many known x.

1 Encrypt H under FHE and embed ct, skFHE. 2 For input x, FHE-evaluate universal circuit Ux(H) = H(x).

ct = FHE H , skFHE FHE.Eval(Ux, ·), ct   BoolEval ct′ = FHE H(x) , skFHE

13 / 15

slide-49
SLIDE 49

Switching Function and Input [BTVW’17,this work]

◮ Goal: in embedding, compute one private H on many known x.

1 Encrypt H under FHE and embed ct, skFHE. 2 For input x, FHE-evaluate universal circuit Ux(H) = H(x).

ct = FHE H , skFHE FHE.Eval(Ux, ·), ct   BoolEval ct′ = FHE H(x) , skFHE

LinEval

− − − − →

ct′

≈ s(Ax + (≈ H(x)) · G)

≈ H(x)

13 / 15

slide-50
SLIDE 50

Constructing Shift-Hiding Functions

◮ Master secret key msk := LWE secret s, with s1 = 1.

14 / 15

slide-51
SLIDE 51

Constructing Shift-Hiding Functions

◮ Master secret key msk := LWE secret s, with s1 = 1. ◮ Shifted key skH :=

ct = FHE H , skFHE

14 / 15

slide-52
SLIDE 52

Constructing Shift-Hiding Functions

◮ Master secret key msk := LWE secret s, with s1 = 1. ◮ Shifted key skH :=

ct = FHE H , skFHE

◮ SEval(skH, x) := first entry of

≈ s(Ax + (≈ H(x)) · G)

14 / 15

slide-53
SLIDE 53

Constructing Shift-Hiding Functions

◮ Master secret key msk := LWE secret s, with s1 = 1. ◮ Shifted key skH :=

ct = FHE H , skFHE

◮ SEval(skH, x) := first entry of

≈ s(Ax + (≈ H(x)) · G)

◮ Eval(msk, x) := first entry of sAx.

14 / 15

slide-54
SLIDE 54

Constructing Shift-Hiding Functions

◮ Master secret key msk := LWE secret s, with s1 = 1. ◮ Shifted key skH :=

ct = FHE H , skFHE

◮ SEval(skH, x) := first entry of

≈ s(Ax + (≈ H(x)) · G)

◮ Eval(msk, x) := first entry of sAx.

Shift Correctness

SEval(skH, x) ≈ s(Ax + (≈ H(x)) · G) · e1 = Eval(msk, x) + s · (≈ H(x)) · G · e1

14 / 15

slide-55
SLIDE 55

Constructing Shift-Hiding Functions

◮ Master secret key msk := LWE secret s, with s1 = 1. ◮ Shifted key skH :=

ct = FHE H , skFHE

◮ SEval(skH, x) := first entry of

≈ s(Ax + (≈ H(x)) · G)

◮ Eval(msk, x) := first entry of sAx.

Shift Correctness

SEval(skH, x) ≈ s(Ax + (≈ H(x)) · G) · e1 = Eval(msk, x) + s · (≈ H(x)) · G · e1 ≈ Eval(msk, x) + H(x).

14 / 15

slide-56
SLIDE 56

Open Problems

1 Better modulus-to-noise ratio?

(Currently exponential in size of shift function H.)

15 / 15

slide-57
SLIDE 57

Open Problems

1 Better modulus-to-noise ratio?

(Currently exponential in size of shift function H.)

2 Adaptive security?

(Currently selective in choice of H.)

15 / 15

slide-58
SLIDE 58

Open Problems

1 Better modulus-to-noise ratio?

(Currently exponential in size of shift function H.)

2 Adaptive security?

(Currently selective in choice of H.)

3 One construction for all circuit sizes?

(Currently ‘leveled’; related to bootstrapping ABE.)

15 / 15

slide-59
SLIDE 59

Open Problems

1 Better modulus-to-noise ratio?

(Currently exponential in size of shift function H.)

2 Adaptive security?

(Currently selective in choice of H.)

3 One construction for all circuit sizes?

(Currently ‘leveled’; related to bootstrapping ABE.)

4 Programming superpolynomially many inputs?

(Currently limited to a priori polynomial.)

15 / 15

slide-60
SLIDE 60

Open Problems

1 Better modulus-to-noise ratio?

(Currently exponential in size of shift function H.)

2 Adaptive security?

(Currently selective in choice of H.)

3 One construction for all circuit sizes?

(Currently ‘leveled’; related to bootstrapping ABE.)

4 Programming superpolynomially many inputs?

(Currently limited to a priori polynomial.)

Thanks!

15 / 15