lattice-based snargs and their application to more efficient ...bootstrapping obfuscation [gghrsw13,...

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

Upload: others

Post on 07-Feb-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 โ€ฆ]

  • 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)

    Inner products over ๐”ฝ๐‘ž๐‘›

    implemented using branching programs of length ๐‘› and width ๐‘ž

  • 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

    relies on weaker cryptographic assumption: linear-only

    encryption rather than linear-only vector encryption

  • 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 Instantiations

    Using QSP-based linear PCP [GGPR12] and PVW encryption scheme:โ€ข Prover complexity: ๐‘‚( ๐ถ ) homomorphic operations โ‡’ ๐‘‚ ๐œ† ๐ถโ€ข Proof size: single ciphertext โ‡’ ๐‘‚(๐œ†) bits

    โ€ข Soundness error: 2โˆ’๐œ†-soundness against 2๐œ†-bounded provers

    Matches existing pairing-based constructions [GGPR12, BCIOP13]

  • Concrete Instantiations

    Using QSP-based linear PCP [GGPR12] and PVW encryption scheme:โ€ข Prover complexity: ๐‘‚( ๐ถ ) homomorphic operations โ‡’ ๐‘‚ ๐œ† ๐ถโ€ข Proof size: single ciphertext โ‡’ ๐‘‚(๐œ†) bits

    โ€ข Soundness error: 2โˆ’๐œ†-soundness against 2๐œ†-bounded provers

    Matches existing pairing-based constructions [GGPR12, BCIOP13]Direct instantiation of BCIOP compiler with Regev encryption yields ๐‘‚(๐œ†2 ๐ถ ) prover

    complexity and ๐‘‚( ๐œ†2) proof size to achieve same soundness guarantees

  • Towards Quasi-Optimality

    Consider vector encryption where plaintext space is a ring ๐‘…:๐‘… โ‰… ๐”ฝ๐‘ ร— ๐”ฝ๐‘ ร— โ‹ฏร— ๐”ฝ๐‘

    splits into ๐œ† copies of ๐”ฝ๐‘

    ๐‘ฃ โˆˆ ๐‘…๐‘˜

    ๐‘ฃ11

    ๐‘ฃ21

    โ‹ฎ

    ๐‘ฃ๐œ†1

    ๐‘ฃ12

    ๐‘ฃ22

    โ‹ฎ

    ๐‘ฃ๐œ†2

    ๐‘ฃ13

    ๐‘ฃ23

    โ‹ฎ

    ๐‘ฃ๐œ†3

    โ‹ฏ

    โ‹ฏ

    โ‹ฑ

    โ‹ฏ

    ๐‘ฃ1๐‘˜

    ๐‘ฃ2๐‘˜

    โ‹ฎ

    ๐‘ฃ๐œ†๐‘˜

    CRT decomposition

    Can embed ๐œ† sets of linear PCP queries in the slots of the CRT decomposition โ‡’ batch

    proof verification

  • Towards Quasi-Optimality

    Consider vector encryption where plaintext space is a ring ๐‘…:๐‘… โ‰… ๐”ฝ๐‘ ร— ๐”ฝ๐‘ ร— โ‹ฏร— ๐”ฝ๐‘

    splits into ๐œ† copies of ๐”ฝ๐‘

    1. For circuit satisfiability, take circuit ๐ถ and reduce it to checking ๐œ† formulas each of size ๐‘‚( ๐ถ ๐œ†).

    2. Each formula can be verified by a LPCP of length ๐‘‚( ๐ถ ๐œ†).

    3. Verify ๐œ† proofs in parallel using batching.

    ๐‘ฃ โˆˆ ๐‘…๐‘˜

    ๐‘ฃ11

    ๐‘ฃ21

    โ‹ฎ

    ๐‘ฃ๐œ†1

    ๐‘ฃ12

    ๐‘ฃ22

    โ‹ฎ

    ๐‘ฃ๐œ†2

    ๐‘ฃ13

    ๐‘ฃ23

    โ‹ฎ

    ๐‘ฃ๐œ†3

    โ‹ฏ

    โ‹ฏ

    โ‹ฑ

    โ‹ฏ

    ๐‘ฃ1๐‘˜

    ๐‘ฃ2๐‘˜

    โ‹ฎ

    ๐‘ฃ๐œ†๐‘˜

    CRT decomposition [See paper for full details.]

  • Towards Quasi-Optimality

    Consider vector encryption where plaintext space is a ring ๐‘…:๐‘… โ‰… ๐”ฝ๐‘ ร— ๐”ฝ๐‘ ร— โ‹ฏร— ๐”ฝ๐‘

    splits into ๐œ† copies of ๐”ฝ๐‘

    1. For circuit satisfiability, take circuit ๐ถ and reduce it to checking ๐œ† formulas each of size ๐‘‚( ๐ถ ๐œ†).

    2. Each formula can be verified by a LPCP of length ๐‘‚( ๐ถ ๐œ†).

    3. Verify ๐œ† proofs in parallel using batching.

    ๐‘ฃ โˆˆ ๐‘…๐‘˜

    ๐‘ฃ11

    ๐‘ฃ21

    โ‹ฎ

    ๐‘ฃ๐œ†1

    ๐‘ฃ12

    ๐‘ฃ22

    โ‹ฎ

    ๐‘ฃ๐œ†2

    ๐‘ฃ13

    ๐‘ฃ23

    โ‹ฎ

    ๐‘ฃ๐œ†3

    โ‹ฏ

    โ‹ฏ

    โ‹ฑ

    โ‹ฏ

    ๐‘ฃ1๐‘˜

    ๐‘ฃ2๐‘˜

    โ‹ฎ

    ๐‘ฃ๐œ†๐‘˜

    CRT decomposition

    Using Regev-style encryption over rings, prover complexity is now ๐‘‚( ๐ถ ) and

    proof size is still ๐‘‚(๐œ†) โ€“ the first quasi-optimal SNARG from any assumption

    [See paper for full details.]

  • 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

  • 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!

  • 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

    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