Lattice-Based SNARGs and their Application to More ... SNARGs and Their Application to More...

40
Lattice-Based SNARGs and Their Application to More Efficient Obfuscation Dan Boneh, Yuval Ishai, Amit Sahai, and David J. Wu

Transcript of Lattice-Based SNARGs and their Application to More ... SNARGs and Their Application to More...

Lattice-Based SNARGs and Their Application to More Efficient Obfuscation

Dan Boneh, Yuval Ishai, Amit Sahai, and David J. Wu

Program Obfuscation [BGIRSVY01, GGHRSW13]

Takes a program as input and โ€œscramblesโ€ it

๐‘–๐’ช

Indistinguishability obfuscation (๐‘–๐’ช) has emerged as a โ€œcentral hub for cryptographyโ€ [BGIRSVY01, GGHRSW13]

[GGHRSW13, SW14, BZ14, BST14, GGHR14, GHRW14, BP15, CHNVW15, CLTV15, GP15, GPS16, BPW16 โ€ฆ]

Program Obfuscation [BGIRSVY01, GGHRSW13]

Many applications, yet extremely far from practical

Indistinguishability obfuscation (๐‘–๐’ช) has emerged as a โ€œcentral hub for cryptographyโ€ [BGIRSVY01, GGHRSW13]

[GGHRSW13, SW14, BZ14, BST14, GGHR14, GHRW14, BP15, CHNVW15, CLTV15, GP15, GPS16, BPW16 โ€ฆ]

Polynomial-time, but constant

factors are โ‰ฅ 2100

Not just engineering challenges โ€“ fundamental

theoretical challenges

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 solution: 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]

โ€ข For AES, requires โ‰ซ 2100 levels of multinearity and โ‰ซ 2100 encodings

โ€ข Direct obfuscation of circuits: [Zim15, AB15]

โ€ข For AES, already require โ‰ซ 2100 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

multilinear maps

NC1

obfuscationP/Poly

obfuscationbootstrapping

How (Im)Practical is Obfuscation?

multilinear maps

NC1

obfuscationP/Poly

obfuscationbootstrapping

Focus of this work will be on candidates that make black-box use of multilinear map

our goal: improve efficiency of bootstrapping

prior works have focused on improving the efficiency of

obfuscation for NC1 (branching programs) [AGIS14, BMSZ16]

for AES, we require โ‰ˆ 4000 levels of multilinearity (compare with โ‰ซ 2100

from before)

Bootstrapping Obfuscation [GGHRSW13, BR14]

To obfuscate a circuit ๐ถ โˆˆ P/Poly:

encrypt the circuit ๐ถ using a public key FHE scheme to

obtain encrypted circuit ๐ถenc

given ๐ถenc, evaluator can homomorphically compute

encryption of ๐ถ(๐‘ฅ)

๐ถenc

๐ถ(๐‘ฅ)๐‘ฅ๐ถ๐ถenc

Bootstrapping Obfuscation [GGHRSW13, BR14]

To obfuscate a circuit ๐ถ โˆˆ P/Poly:

๐ถenc

๐ถ(๐‘ฅ)๐‘ฅ๐ถ๐ถenc

โ€ข Provide obfuscated program that decrypts the FHE ciphertextโ€ข Should not decrypt arbitrary FHE ciphertexts, only those that

correspond to honest evaluationsโ€ข Evaluator includes a proof that evaluation done correctly

Bootstrapping Obfuscation [GGHRSW13, BR14]

constants: sk and ๐œŽon input (๐‘ฅ, ct, ๐œ‹):

1. Verify the proof ๐œ‹ that ct corresponds to an evaluation of ๐ถenc on ๐‘ฅ

2. If valid, output FHE. Decrypt(sk, ct) and 0 otherwise

โ€ข Provide obfuscated program that decrypts the FHE ciphertextโ€ข Should not decrypt arbitrary FHE ciphertexts, only those that

correspond to honest evaluationsโ€ข Evaluator includes a proof that evaluation done correctly

NC1 obfuscator

โ‹ฎ

๐‘ƒobfFHE

secret keyCRS for proof

system

Bootstrapping Obfuscation [GGHRSW13, BR14]

constants: sk and ๐œŽon input (๐‘ฅ, ct, ๐œ‹):

1. Verify the proof ๐œ‹ that ct corresponds to an evaluation of ๐ถenc on ๐‘ฅ

2. If valid, output FHE. Decrypt(sk, ct) and 0 otherwise

NC1 obfuscator

โ‹ฎ

๐‘ƒobf

โ€ข Obfuscated program does two things: proof verification and FHE decryptionโ€ข NC1 obfuscator works on branching programs, so need primitives with short

branching programs (e.g., computing an inner products over a small field)

For VBB obfuscation, can use a succinct argument

(SNARG)

Bootstrapping Obfuscation [GGHRSW13, BR14]

constants: sk and ๐œŽon input (๐‘ฅ, ct, ๐œ‹):

1. Verify the proof ๐œ‹ that ct corresponds to an evaluation of ๐ถenc on ๐‘ฅ

2. If valid, output FHE. Decrypt(sk, ct) and 0 otherwise

NC1 obfuscator

โ‹ฎ

๐‘ƒobf

โ€ข Obfuscated program does two things: proof verification and FHE decryptionโ€ข NC1 obfuscator works on branching programs, so need primitives with short

branching programs (e.g., computing an inner products over a small field)

For VBB obfuscation, can use a succinct argument

(SNARG)

Require primitives that minimize branching-program complexity

Bootstrapping Obfuscation [GGHRSW13, BR14]

constants: sk and ๐œŽon input (๐‘ฅ, ct, ๐œ‹):

1. Verify the proof ๐œ‹ that ct corresponds to an evaluation of ๐ถenc on ๐‘ฅ

2. If valid, output FHE. Decrypt(sk, ct) and 0 otherwise

NC1 obfuscator

โ‹ฎ

๐‘ƒobf

โ€ข Obfuscated program does two things: proof verification and FHE decryptionโ€ข NC1 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 ๐œŽ and

verification state ๐œโ€ข Prove ๐œŽ, ๐‘ฅ, ๐‘ค โ†’ ๐œ‹: on input a statement ๐‘ฅ and witness ๐‘ค,

outputs a proof ๐œ‹โ€ข Verify ๐œ, ๐‘ฅ, ๐œ‹ โ†’ 0/1: on input the verification state ๐œ, the

statement ๐‘ฅ, decides if 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

Main result: new designated-verifier SNARGs in the preprocessing model with the following properties:

Goal: construct a succinct non-interactive argument (SNARG)that can be verified by a short branching programVerification state ๐œ

must be secretAllow Setup algorithm to run in time poly(๐œ† + ๐ถ )

Branching-Program-Friendly SNARGs

Main result: new designated-verifier SNARGs in the preprocessing model with the following properties:

โ€ข Quasi-optimal succinctnessโ€ข Quasi-optimal prover complexity

first SNARG that isโ€œquasi-optimalโ€

Asymptotics based on achieving negl(๐œ†) soundness

error against provers of size 2๐œ†

proofs have size เทจ๐‘‚(๐œ†)

prover complexity is เทจ๐‘‚ ๐ถ

Goal: construct a succinct non-interactive argument (SNARG)that can be verified by a short branching program

Branching-Program-Friendly SNARGs

Main result: new designated-verifier SNARGs in the preprocessing model with the following properties:

โ€ข Quasi-optimal succinctnessโ€ข Quasi-optimal prover complexityโ€ข Post-quantum securityโ€ข Works over polynomial-size fields

first SNARG that isโ€œquasi-optimalโ€

New SNARG candidates are lattice-basedโ€ข Over integer lattices, verification is branching-program friendlyโ€ข Over ideal lattices, SNARGs are quasi-optimal

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

Starting point: preprocessing SNARGs from [BCIOP13]

linear PCP2-round linear

interactive proofpreprocessing SNARG

information-theoretic compiler

cryptographic compiler (linear-only encryption)

Linear PCPs (LPCPs) [IKO07]

(๐‘ฅ, ๐‘ค) ๐œ‹ โˆˆ ๐”ฝ๐‘š

linear PCP

๐œ‹ โˆˆ ๐”ฝ๐‘š

๐‘ž โˆˆ ๐”ฝ๐‘š

๐‘ž, ๐œ‹ โˆˆ ๐”ฝ

verifier

โ€ข 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]

Require large fields, but can be adapted to operate over small fields.

[See paper for details.]

Linear PCPs (LPCPs) [IKO07]

(๐‘ฅ, ๐‘ค) ๐œ‹ โˆˆ ๐”ฝ๐‘š

linear PCP

๐œ‹ โˆˆ ๐”ฝ๐‘š

๐‘ž โˆˆ ๐”ฝ๐‘š

๐‘ž, ๐œ‹ โˆˆ ๐”ฝ

verifier

Oftentimes, verifier is oblivious: the queries ๐‘ž do not depend on

the statement ๐‘ฅ

Linear PCPs (LPCPs) [IKO07]

Equivalent view (if verifier is oblivious):

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ๐‘„ = โˆˆ ๐”ฝ๐‘šร—๐‘˜

๐œ‹ โˆˆ ๐”ฝ๐‘š

๐‘„ โˆˆ ๐”ฝ๐‘šร—๐‘˜

๐‘„๐‘‡๐œ‹ โˆˆ ๐”ฝ๐‘˜

verifier pack all queries into single matrix

From Linear PCPs to Preprocessing SNARGs [BCIOP13]

Oblivious verifier can โ€œcommitโ€ to its queries ahead of time

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ

part of the CRS

Honest prover takes (๐‘ฅ, ๐‘ค) and constructs

linear PCP ๐œ‹ โˆˆ ๐”ฝ๐‘š and computes ๐‘„T๐œ‹

๐‘„ = Two problems:โ€ข Malicious prover can choose ๐œ‹ based

on queriesโ€ข Malicious prover can apply different ๐œ‹

to the different columns of ๐‘„

Oblivious verifier can โ€œcommitโ€ to its queries ahead of time

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ

part of the CRS

Honest prover takes (๐‘ฅ, ๐‘ค) and constructs

linear PCP ๐œ‹ โˆˆ ๐”ฝ๐‘š and computes ๐‘„T๐œ‹

๐‘„ = Two problems:โ€ข Malicious prover can choose ๐œ‹ based

on queriesโ€ข Malicious prover can apply different ๐œ‹

to the different columns of ๐‘„

From Linear PCPs to Preprocessing SNARGs [BCIOP13]

Oblivious verifier can โ€œcommitโ€ to its queries ahead of time

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ

part of the CRS

Honest prover takes (๐‘ฅ, ๐‘ค) and constructs

linear PCP ๐œ‹ โˆˆ ๐”ฝ๐‘š and computes ๐‘„T๐œ‹

๐‘„ =Step 1: Encrypt elements of ๐‘„ using additively homomorphic encryption schemeโ€ข Prover homomorphically computes ๐‘„๐‘‡๐œ‹โ€ข Verifier decrypts encrypted response

vector and performs LPCP verification

From Linear PCPs to Preprocessing SNARGs [BCIOP13]

Oblivious verifier can โ€œcommitโ€ to its queries ahead of time

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ

part of the CRS

Honest prover takes (๐‘ฅ, ๐‘ค) and constructs

linear PCP ๐œ‹ โˆˆ ๐”ฝ๐‘š and computes ๐‘„T๐œ‹

๐‘„ = Two problems:โ€ข Malicious prover can choose ๐œ‹ based

on queriesโ€ข Malicious prover can apply different ๐œ‹

to the different columns of ๐‘„

From Linear PCPs to Preprocessing SNARGs [BCIOP13]

From Linear PCPs to Preprocessing SNARGs

Oblivious verifier can โ€œcommitโ€ to its queries ahead of time

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ

part of the CRS

Honest prover takes (๐‘ฅ, ๐‘ค) and constructs

linear PCP ๐œ‹ โˆˆ ๐”ฝ๐‘š and computes ๐‘„T๐œ‹

๐‘„ =Step 2: Conjecture that the encryption scheme only supports a limited subset of homomorphic operations (linear-only vector encryption)

Linear-Only Vector Encryption

๐‘ฃ1 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ2 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ๐‘š โˆˆ ๐”ฝ๐‘˜

โ‹ฎ

plaintext space is a vector space

Linear-Only Vector Encryption

โ‹ฎ

plaintext space is a vector space

๐‘ฃ1 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ2 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ๐‘š โˆˆ ๐”ฝ๐‘˜

๐‘–โˆˆ[๐‘›]

๐›ผ๐‘–๐‘ฃ๐‘– โˆˆ ๐”ฝ๐‘˜

encryption scheme is semantically-secure and additively homomorphic

Linear-Only Vector Encryption

โ‹ฎ

๐‘ฃ1 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ2 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ๐‘š โˆˆ ๐”ฝ๐‘˜

ct

For all adversaries, there is an efficient extractor such that if ct is valid, then the extractor is able to produce a vector of coefficients ๐›ผ1, โ€ฆ , ๐›ผ๐‘š โˆˆ ๐”ฝ๐‘š

and ๐‘ โˆˆ ๐”ฝ๐‘˜ such that Decrypt sk, ct = ฯƒ๐‘–โˆˆ[๐‘›]๐›ผ๐‘–๐‘ฃ๐‘– + ๐‘

Weaker property also suffices. [See paper for details.]

๐›ผ1, โ€ฆ , ๐›ผ๐‘š โˆˆ ๐”ฝ, ๐‘ โˆˆ ๐”ฝ๐‘˜

adversary

extractor

Linear-Only Vector Encryption

โ‹ฎ

๐‘ฃ1 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ2 โˆˆ ๐”ฝ๐‘˜

๐‘ฃ๐‘š โˆˆ ๐”ฝ๐‘˜

ct

For all adversaries, there is an efficient extractor such that if ct is valid, then the extractor is able to produce a vector of coefficients ๐›ผ1, โ€ฆ , ๐›ผ๐‘š โˆˆ ๐”ฝ๐‘š

and ๐‘ โˆˆ ๐”ฝ๐‘˜ such that Decrypt sk, ct = ฯƒ๐‘–โˆˆ[๐‘›]๐›ผ๐‘–๐‘ฃ๐‘– + ๐‘

Weaker property also suffices. [See paper for details.]

๐›ผ1, โ€ฆ , ๐›ผ๐‘š โˆˆ ๐”ฝ, ๐‘ โˆˆ ๐”ฝ๐‘˜

adversary

extractor

extractor can โ€œexplainโ€ the ciphertexts as an affine

function of its inputs

From Linear PCPs to Preprocessing SNARGs

Oblivious verifier can โ€œcommitโ€ to its queries ahead of time

๐‘ž1 ๐‘ž2 ๐‘ž3 ๐‘ž๐‘˜โ‹ฏ

part of the CRS

Honest prover takes (๐‘ฅ, ๐‘ค) and constructs

linear PCP ๐œ‹ โˆˆ ๐”ฝ๐‘š and computes ๐‘„T๐œ‹

๐‘„ =Step 2: Conjecture that the encryption scheme only supports a limited subset of homomorphic operations (linear-only vector encryption)

Linear-only vector encryption โ‡’ all prover strategies can be explained by (๐œ‹, ๐‘) as ๐‘„๐‘‡๐œ‹ + ๐‘

encrypt row by row

[See paper for full details.]

Comparison with [BCIOP13]

Preprocessing SNARGs from [BCIOP13]:

linear PCP2-round linear

interactive proofpreprocessing SNARG

introduce additional consistency check to force prover to apply

consistent linear function โ€“soundness only over a large field

Comparison with [BCIOP13]

Preprocessing SNARGs from [BCIOP13]:

linear PCP2-round linear

interactive proofpreprocessing SNARG

Our construction

linear PCP preprocessing SNARG

Comparison with [BCIOP13]

Preprocessing SNARGs from [BCIOP13]:

linear PCP2-round linear

interactive proofpreprocessing SNARG

Our construction

linear PCP preprocessing SNARG

stronger cryptographic assumption, but enables new constructions with

better efficiency

Instantiating Linear-Only Vector Encryption

Conjecture: Regev-based encryption (specifically, the [PVW08] variant) is a linear-only vector encryption scheme.

PVW decryption (for plaintexts with dimension ๐‘˜):

๐‘†

๐‘† โˆˆ โ„ค๐‘ž๐‘˜ร—(๐‘›+๐‘˜)

๐‘

๐‘ โˆˆ โ„ค๐‘ž๐‘›+๐‘˜

round

Each row of ๐‘† can be is an independent Regev secret key

Concrete Comparisons

ConstructionProver

ComplexityProofSize Assumption

Public vs.Designated

CS Proofs [Mic00]

Groth [Gro10]

GGPR [GGPR12]

BCIOP (Pairing) [BCIOP13]

BCIOP (LWE) [BCIOP13]

Our Construction (LWE)

Our Construction (RLWE)

Public

Public

Public

Designated

Designated

เทจ๐‘‚( ๐ถ + ๐œ†2)

เทจ๐‘‚( ๐ถ 2๐œ† + ๐ถ ๐œ†2)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ )

เทจ๐‘‚(๐œ†2)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

Public

Designated

Random Oracle

Knowledge of Exponent

Linear-Only Encryption

Linear-Only Vector Encryption

Only negl ๐œ† -soundness (instead of 2โˆ’๐œ†-soundness) against 2๐œ†-bounded provers

[See paper.]

Concrete Comparisons

ConstructionProver

ComplexityProofSize Assumption

Public vs.Designated

CS Proofs [Mic00]

Groth [Gro10]

GGPR [GGPR12]

BCIOP (Pairing) [BCIOP13]

BCIOP (LWE) [BCIOP13]

Our Construction (LWE)

Our Construction (RLWE)

Public

Public

Public

Designated

Designated

เทจ๐‘‚( ๐ถ + ๐œ†2)

เทจ๐‘‚( ๐ถ 2๐œ† + ๐ถ ๐œ†2)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ ๐œ†)

เทจ๐‘‚( ๐ถ )

เทจ๐‘‚(๐œ†2)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

เทจ๐‘‚(๐œ†)

Public

Designated

Random Oracle

Knowledge of Exponent

Linear-Only Encryption

Linear-Only Vector Encryption

Post-quantum resistant![See paper.]

Back to Obfuscationโ€ฆ

For bootstrapping obfuscationโ€ฆโ€ข Obfuscate FHE decryption and SNARG verificationโ€ข Degree of multilinearity: โ‰ˆ 212

โ€ข Number of encodings: โ‰ˆ 244 Still infeasible, but much, much better than 2100 for previous

black-box constructions!

Looking into obfuscation gave us new insights into constructing better SNARGs:

โ€ข More direct framework of building SNARGs from linear PCPsโ€ข First quasi-succinct construction from standard latticesโ€ข First quasi-optimal construction from ideal lattices [See paper.]

Many optimizations. [See paper for details.]

Open Problems

Publicly-verifiable SNARGs from lattice-based assumptions?

Stronger notion of quasi-optimality (achieve 2โˆ’๐œ† soundness rather than negl(๐œ†) soundness)?

Concrete efficiency of new lattice-based SNARGs?

Thank you!http://eprint.iacr.org/2017/240