Download presentation
Presentation is loading. Please wait.
Published byKristian Dennis Modified over 9 years ago
1
Succinct Functional Encryption: d Reusable Garbled Circuits and Beyond
Yael Kalai Microsoft Research Joint work with: Shafi Goldwasser Raluca Ada Popa Vinod Vaikuntanathan Nickolai Zeldovich MIT U Toronto * Thanks to Raluca and Vinod for the slides.
2
Example: Spam Filters Sender Receiver Spam filter πΈ[πππππ] FHE.Eval of filter πΈ[πππππ] E[spam?] FHE is not enough! Need to decrypt computation result but nothing else!
3
Desired: Functional Encryption (FE) [Boneh-Sahai-Waters11, OβNeill11]
Allows evaluator to decrypt computation result Client πΈ π₯ 1 ,..,πΈ[ π₯ π ] Evaluator π π π compute π π π , β¦, π π π Syntax: πππΎ, πππΎ βFE.Setup 1 π ππ‘βFE.Enc πππΎ, π₯ π π π βFE.KeyGen πππΎ, π f π₯ βFE.Dec π π π , ππ‘ Can release only one function key [Agrawal-Gorbunov-Vaikuntanathan-Wee12]
4
Outline Example: Spam filters
Problem we solve: Functional Encryption (under LWE assumption) Prior work Main Application: Reusable Garbled Circuits Application 2: FHE for Turing machines Application 3: Publicly Verifiable and Secret Delegation Our constructions
5
Prior Work Functional encryption for inner product functions
[Katz-Sahai-Watersβ08, Shen-Shi-Watersβ09] Public-index functional encryption (also known as ABE or predicate encryption) [Sahai-Watersβ05, Goyal-Pandey-Sahai-Watersβ06, Bethencourt-Sahai-Watersβ07, Goyal-Jain- Pandey-Sahaiβ08, Lewko-Okamoto-Sahai-Takashima-Watersβ10, Watersβ11, Lewko- Watersβ12, Watersβ12, Sahai-Watersβ12, Gorbunov-Vaikuntanathan-Weeβ13,β¦] [Gorbunov-Vaikuntanathan-Weeβ12]: Functional encryption for general functions, where |πΈ π₯ | grows with circuit size (e.g. size of encryption depends on spam filter program size)
6
Open question: Is there a FE scheme for general functions with ciphertext size << circuit size? succinct
7
Our contribution: Succinct functional encryption
Theorem. A FE scheme with succinct ciphertexts for general functions can be constructed from FHE scheme public-index functional encryption scheme Corollary. Under the sub-exp. LWE assumption, for any depth d, there is a FE scheme with succinct ciphertexts (whose size grows with d) for general functions computable by circuits of depth d.
8
Main Application: Reusable Garbled Circuits
Yao garbled circuits [Yao82] Secure two-party computation [Yao86], (Constant round) multi-party computation [BMR90], Parallel cryptography [AIK05], One-time programs [GKR08], Key-dependent message (KDM) security [BHHI09, A11], Outsourcing computation [GGP10], Circuit-private homomorphic encryption [GHV10], and many others
9
Yao Garbled Circuits [Yao 82]
Boolean Circuit C Garbled Circuit GC + x Garble(C) Input π Garbled Input ππ Garble(x) L2,1 L1,0 L1,1 L2,0 L3,1 L3,0 L4,1 L4,0 π= 1
10
Yao Garbled Circuits (Cont.)
Garbled Circuit GC Correctness: Given GC and ππ, can compute C(x). Security (Input & Circuit privacy) Given C(x) and 1|C|, can simulate (GC, ππ). Efficiency: |GC| = p(|C|) and |ππ| = p(|x|) Garbled Input ππ L2,1 L1,0 L1,1 L2,0 L3,1 L3,0 L4,1 L4,0
11
Yao Garbled Circuits (Cont.)
Garbled Circuit GC Theorem: [Yao86] If one-way functions exist, any polynomial-size circuit family can be garbled. Garbled Input ππ L2,1 L1,0 L1,1 L2,0 L3,1 L3,0 L4,1 L4,0
12
Drawback: One-time Garbled Circuit GC
insecure to release two encodings ππ and ππβ² L1,1 L3,0 L4,1 L2,0 L1,0 π=ππππ L4,0 ππ No input or circuit privacy guarantees! Can compute C(x) for unintended inputs x! L2,1 L3,1 πβ²=ππππ ππ
13
Main Application: Reusable Garbling
Theorem: Under the sub-exp. LWE, there is a reusable circuit garbling scheme for poly size circuits such that: πΊπΆ =poly(π,|C|) ππ₯ =poly(π,|π₯|,π) where π is the depth of πΆ (π: security parameter)
14
Application 2: FHE for Turing machines
Evaluator πΈ[input] Program Client πΈ[result] circuit size β₯ worst-case running time of program Decrypt only the runtime of the instance, to avoid worst-case!
15
Application 3: Publicly-verifiable delegation with secrecy
[Gennaro-Gentry-Parnoβ10]: Yao + FHE secret privately-verifiable delegation [Parno-Raikova-Vaikuntanathanβ12]: public-index FE non-secret publicly-verifiable delegation succinct FE publicly-verifiable delegation with secrecy
16
Outline succinct functional encryption LWE public-index FE + FHE +
Yao garbling 1 succinct functional encryption Not today 2 Not today reusable garbled circuits & FHE with input-specific efficiency publicly-verifiable delegation with secrecy implication to obfuscation
17
Construction of FE
18
Public-Index Functional Encryption (also known as ABE or predicate encryption)
leaks input to the computation ππ‘βEnc πππ, π₯, π Dec π π π , ππ‘ = π ,ππ π π₯ =1 β₯ , ππ π π₯ =0 Variant: ππ‘βEnc πππ, π₯, π 0 , π 1 Dec π π π , ππ‘ = π 0 ,ππ π π₯ =1 π 1 , ππ π π₯ =0 [Borgunov-Vaikuntanathan-Wee13]: Public-index functional encryption for any (a priori fixed) depth d circuit, based on sub-exp. LWE assumption.
19
Intuition IDEA: Start with FHE
π₯ βFHE.Enc π₯ π π π βπ π(π₯) βFHE.Eval(π, π₯ ) Not f(π)! IDEA: Start with FHE IDEA: Use (one-time) Yao garbled for decryption
20
Intuition FE.Enc of input π₯: FE.KeyGen for circuit f:
π₯ βFHE.Enc π₯ 2. Generate garbled circuit Ξ and labels πΏ 0 π , πΏ 1 π π for Dec π π Output π₯ , Ξ FE.KeyGen for circuit f: π π π βπ FE.Dec(π π π , ππ‘) should obtain π(π₯): 1. ππ‘= π(π₯) βFHE.Eval(π, π₯ ) 2. Obtain labels {πΏ π π π‘ π } for π(π₯) 3. Compute Gb.Eval Ξ, πΏ π π π and get π(π₯) How??
21
We need.. IDEA: The variant of public-index FE provides exactly this!
if FHE. Eval i (π, π₯ ) = 0, get label πΏ 0 π , else gets πΏ 1 π keep one secret public predicate public input IDEA: The variant of public-index FE provides exactly this! ππ‘βPI.Enc π₯ , πΏ 0 π , πΏ 1 π ) π π π βPI.KeyGen π π PI.Dec π π π , ππ‘ = πΏ 0 π ,ππ π π π₯ =0 πΏ 1 π , ππ π π π₯ =1
22
Intuition FE.Enc of input π₯: FE.KeyGen for circuit f:
π₯ βFHE.Enc π₯ 2. Generate garbled circuit Ξ and labels πΏ 0 π , πΏ 1 π π for Dec π π 3. c π‘ π βPI.Enc π₯ , πΏ 0 π , πΏ 1 π ) Output π₯ , Ξ, ct i FE.KeyGen for circuit f: π π π π βPI.KeyGen π π , where π π =FHE. Eval i (π,β
) FE.Dec(π π π , ππ‘) should obtain π(π₯): 1. ππ‘= π(π₯) βFHE.Eval(π, π₯ ) 2. Obtain labels {πΏ π π π‘ π } for π(π₯) 3. Compute Gb.Eval Ξ, πΏ π π π and get π(π₯)
23
Outline succinct functional encryption public-index FE + FHE +
Yao garbling succinct functional encryption 2 reusable garbled circuits & FHE with input-specific efficiency publicly-verifiable delegation with secrecy implication to obfuscation
24
Intuition Garble(C): Ξβ πΉπΈ.πΎππ¦πΊππ(πΆ) Garble(x): ππ‘βπΉπΈ.πΈππ(π₯)
Leaks C! IDEA: leverage secrecy of input to hide circuit
25
Intuition Garble(C): Ξβ πΉπΈ.πΎππ¦πΊππ(πΈπ π π π πΆ ) Garble(x): ππ‘βπΉπΈ.πΈππ(π₯,π π)
26
Intuition Garble(C): Ξβ πΉπΈ.πΎππ¦πΊππ( π πΈπ π π π (πΆ) ) Garble(x): ππ‘βπΉπΈ.πΈππ(π₯,π π) Correctness? π πΈ on input π π and π₯: Decrypt E to obtain C Run πΆ(π₯) Security? Reusability?
27
Summary succinct functional encryption LWE public-index FE + FHE +
Yao garbling 1 succinct functional encryption Not today 2 Not today reusable garbled circuits & FHE with input-specific efficiency publicly-verifiable delegation with secrecy implication to obfuscation
28
Thank you! + public-index FE succinct functional encryption FHE
LWE succinct functional encryption FHE Yao garbling reusable garbled circuits & FHE with input-specific efficiency publicly-verifiable delegation with secrecy + 1 2 implication to obfuscation
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.