Lattice-Based SNARGs and Their Application to More Efficient Obfuscation Dan Boneh, Yuval Ishai, Amit Sahai, and David J. Wu
Program Obfuscation [BGIRSVY01, GGHRSW13] Indistinguishability obfuscation ( ๐๐ซ ) has emerged as a โcentral hub for cryptographyโ [BGIRSVY01, GGHRSW13] [GGHRSW13, SW14, BZ14, BST14, GGHR14, GHRW14, BP15, CHNVW15, CLTV15, GP15, GPS16, BPW16 โฆ] Takes a program as input and โscramblesโ it ๐๐ซ
Program Obfuscation [BGIRSVY01, GGHRSW13] Indistinguishability obfuscation ( ๐๐ซ ) has emerged as a โcentral hub for cryptographyโ [BGIRSVY01, GGHRSW13] [GGHRSW13, SW14, BZ14, BST14, GGHR14, GHRW14, BP15, CHNVW15, CLTV15, GP15, GPS16, BPW16 โฆ] Many applications, yet extremely far from practical The โAlienโ Challenge: If we had to iO- obfuscate AES to save the planet from alien annihilation, can we do it?
Program Obfuscation [BGIRSVY01, GGHRSW13] Indistinguishability obfuscation ( ๐๐ซ ) has emerged as a โcentral hub for cryptographyโ [BGIRSVY01, GGHRSW13] [GGHRSW13, SW14, BZ14, BST14, GGHR14, GHRW14, BP15, CHNVW15, CLTV15, GP15, GPS16, BPW16 โฆ] Not just engineering Many applications, yet extremely far from practical challenges โ fundamental theoretical challenges Polynomial-time, but constant factors are โฅ 2 100
Our Goal Obtain an โobfuscation - completeโ primitive with an emphasis on concrete efficiency โข Functionality whose (ideal) obfuscation can be used to obfuscate arbitrary circuits โข Obfuscated primitive should need to invoked once for function evaluation โข Our setting: obfuscate FHE decryption and SNARG verification Concurrently: improve the asymptotic efficiency of SNARGs
How (Im)Practical is Obfuscation? Existing constructions rely on multilinear maps [BS04, GGH13, CLT13, GGH15] โข Bootstrapping: [GGHRSW13, BR14, App14] NC 1 multilinear P/Poly maps obfuscation obfuscation bootstrapping โข For AES, requires โซ 2 100 levels of multinearity and โซ 2 100 encodings โข Direct obfuscation of circuits: [Zim15, AB15] โข For AES, already require โซ 2 100 levels of multilinearity โข Non-Black Box: [Lin16a, LV16, Lin16b, AS17, LT17] โข Only requires constant-degree multilinear maps (e.g., 3-linear maps [LT17] ) โข Multilinear maps are complex, so non-black box use of the multilinear maps will be difficult to implement
How (Im)Practical is Obfuscation? Focus of this work will be on candidates that make black-box use of multilinear map NC 1 multilinear P/Poly maps obfuscation obfuscation bootstrapping prior works have focused on our goal: improve efficiency improving the efficiency of of bootstrapping obfuscation for NC 1 (branching programs) [AGIS14, BMSZ16]
How (Im)Practical is Obfuscation? Focus of this work will be on candidates that make black-box use of multilinear map NC 1 multilinear P/Poly maps obfuscation obfuscation bootstrapping โข Obfuscated program does two things: FHE decryption and proof verification (of correct evaluation) โข NC 1 obfuscator works on branching programs , so need primitives with short branching programs (e.g., computing an inner products over a small field) โข FHE decryption is (rounded) inner product [BV11, BGV12, Bra12, GSW13, AP14, DM15, โฆ] , so just need a SNARG with simple verification
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) that can be verified by a short branching program
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) that can be verified by a short branching program Succinct non-interactive arguments (SNARG) for NP relation [GW11] โข Setup 1 ๐ โ ๐, ๐ : outputs common reference string (CRS) ๐ and verification state ๐ โข Prove ๐, ๐ฆ, ๐ฅ โ ๐ : on input the CRS ๐ , the statement ๐ฆ a nd the witness ๐ฅ , outputs a proof ๐ โข Verify ๐, ๐ฆ, ๐ โ 0/1 : on input the verification state ๐ , the statement ๐ฆ , decides if the proof ๐ is valid
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) that can be verified by a short branching program Succinct non-interactive arguments (SNARG) for NP relation [GW11] โข Must satisfy usual notions of completeness and computational soundness โข Succinctness: proof size and verifier run-time should be polylogarithmic in the circuit size (for circuit satisfiability) โข Verifier run-time: poly ๐ + ๐ฆ + log ๐ท โข Proof size: poly ๐ + log ๐ท
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) Verification state ๐ Allow Setup algorithm to that can be verified by a short branching program must be secret run in time poly(๐ + ๐ท ) Main result: new designated-verifier SNARGs in the preprocessing model with the following properties:
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) that can be verified by a short branching program proofs have prover complexity Main result: new designated-verifier SNARGs in the preprocessing model with the size เทจ is เทจ ๐(๐) ๐ ๐ท following properties: โข Quasi-optimal succinctness first SNARG that is โข Quasi-optimal prover complexity โquasi - optimalโ Asymptotics based on achieving negl(๐) soundness error against provers of size 2 ๐
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) that can be verified by a short branching program Main result: new designated-verifier SNARGs in the preprocessing model with the following properties: โข Quasi-optimal succinctness first SNARG that is โข Quasi-optimal prover complexity โquasi - optimalโ โข Post-quantum security โข Works over polynomial-size fields New SNARG candidates are lattice-based โข Over integer lattices, verification is branching-program friendly โข Over ideal lattices, SNARGs are quasi-optimal
Branching-Program-Friendly SNARGs Goal: construct a succinct non-interactive argument (SNARG) that can be verified by a short branching program Starting point: preprocessing SNARGs from [BCIOP13] 2-round linear linear PCP preprocessing SNARG interactive proof information- cryptographic compiler theoretic compiler (linear-only encryption)
Linear PCPs (LPCPs) [IKO07] ๐ โ ๐พ ๐ (๐ฆ, ๐ฅ) linear PCP ๐ โ ๐พ ๐ โข Verifier given oracle access to a linear ๐ โ ๐พ ๐ function ๐ โ ๐พ ๐ โข Several instantiations: โข 3-query LPCP based on the Walsh- ๐, ๐ โ ๐พ Hadamard code: ๐ = ๐( ๐ท 2 ) [ALMSS92] โข 3-query LPCP based on quadratic span programs: ๐ = ๐( ๐ท ) [GGPR13] verifier
Linear PCPs (LPCPs) [IKO07] ๐ โ ๐พ ๐ (๐ฆ, ๐ฅ) linear PCP ๐ โ ๐พ ๐ ๐ โ ๐พ ๐ Oftentimes, verifier is oblivious : the queries ๐ do not depend on ๐, ๐ โ ๐พ the statement ๐ฆ verifier
Linear PCPs (LPCPs) [IKO07] Equivalent view (if verifier is oblivious): ๐ โ ๐พ ๐ ๐ โ ๐พ ๐ร๐ โ ๐พ ๐ร๐ ๐ = ๐ 1 ๐ 2 ๐ 3 ๐ ๐ โฏ ๐ ๐ ๐ โ ๐พ ๐ pack all queries into verifier single matrix
From Linear PCPs to Preprocessing SNARGs [BCIOP13] Oblivious verifier can โcommitโ Honest prover takes to its queries ahead of time (๐ฆ, ๐ฅ) and constructs linear PCP ๐ โ ๐พ ๐ and computes ๐ T ๐ ๐ = ๐ 1 ๐ 2 ๐ 3 ๐ ๐ โฏ Two problems: โข Malicious prover can choose ๐ based on queries โข Malicious prover can apply different ๐ to the different columns of ๐ part of the CRS
From Linear PCPs to Preprocessing SNARGs [BCIOP13] Oblivious verifier can โcommitโ Honest prover takes to its queries ahead of time (๐ฆ, ๐ฅ) and constructs linear PCP ๐ โ ๐พ ๐ and computes ๐ T ๐ ๐ = ๐ 1 ๐ 2 ๐ 3 ๐ ๐ โฏ Two problems: โข Malicious prover can choose ๐ based on queries โข Malicious prover can apply different ๐ to the different columns of ๐ part of the CRS
From Linear PCPs to Preprocessing SNARGs [BCIOP13] Oblivious verifier can โcommitโ Honest prover takes to its queries ahead of time (๐ฆ, ๐ฅ) and constructs linear PCP ๐ โ ๐พ ๐ and computes ๐ T ๐ ๐ = ๐ 1 ๐ 2 ๐ 3 ๐ ๐ โฏ Step 1: Encrypt elements of ๐ using additively homomorphic encryption scheme โข Prover homomorphically computes ๐ ๐ ๐ โข Verifier decrypts encrypted response vector and performs LPCP verification part of the CRS
From Linear PCPs to Preprocessing SNARGs [BCIOP13] Oblivious verifier can โcommitโ Honest prover takes to its queries ahead of time (๐ฆ, ๐ฅ) and constructs linear PCP ๐ โ ๐พ ๐ and computes ๐ T ๐ ๐ = ๐ 1 ๐ 2 ๐ 3 ๐ ๐ โฏ Two problems: โข Malicious prover can choose ๐ based on queries โข Malicious prover can apply different ๐ to the different columns of ๐ part of the CRS
From Linear PCPs to Preprocessing SNARGs Oblivious verifier can โcommitโ Honest prover takes to its queries ahead of time (๐ฆ, ๐ฅ) and constructs linear PCP ๐ โ ๐พ ๐ and computes ๐ T ๐ ๐ = ๐ 1 ๐ 2 ๐ 3 ๐ ๐ โฏ Step 2: Conjecture that the encryption scheme only supports a limited subset of homomorphic operations (linear-only vector encryption) part of the CRS
Linear-Only Vector Encryption ๐ค 1 โ ๐พ ๐ ๐ค 2 โ ๐พ ๐ โฎ ๐ค ๐ โ ๐พ ๐ plaintext space is a vector space
Recommend
More recommend