Download presentation
Presentation is loading. Please wait.
Published byCamilla Sanders Modified over 6 years ago
1
A shuffle argument secure in the generic model
Prastudy Fauzi, Helger Lipmaa, Michal Zajac University of Tartu, Estonia ASIACRYPT 2016 Estonian-Latvian Joint Theory Days,
2
Our results A new efficient CRS-based NIZK shuffle argument
Four+ times more efficient verification than in prior work Verification time more critical Soundness proof in the Generic Bilinear Group Model Very complicated machine-assisted proof Use computer algebra to solve systems of polyn. eq. Esp. to find Gröbner bases Enables proof verification by practitioners Possible future work: synthesis?
3
A bit of motivation: e-voting
Anonymity Correctness Data is public (Data, source) is private
4
Simple Mix-nets ψ,s π, r sk c1=Encpk(m1) d1=cπ(1) e1=dψ(1) mψ(π(1)) mψ(π(2)) mψ(π(3)) d2=cπ(2) e2=dψ(2) c2=Encpk (m2) d3=cπ(3) e3=dψ(3) c3=Encpk (m3) Encryption protects against eavesdropping on the Internet Private against each individual server Not yet correct: what if a server cheats?
5
Accountable Mix-nets Verify all proofs
pk, π, r pk, ψ,s sk c1=Encpk(m1) d1=cπ(1) e1=dψ(1) d2=cπ(2) e2=dψ(2) mψ(π(1)) mψ(π(2)) mψ(π(3)) c2=Encpk (m2) d3=cπ(3) e3=dψ(3) c3=Encpk (m3) Verify all proofs ”Prove” that shuffling was correct, send proof to the next server Verify all previous proofs, shuffle, create your own proof
6
Shuffle argument Shuffle argument:
efficient zero knowledge argument of correctness of shuffling Many shuffles in the ”random oracle model” exist Several of them are quite efficient Existing CRS model arguments much less efficient
7
CRS-based shuffle arguments
Proposed in that paper, proof in GBGM Proposed 2010+, but not in that paper, proof in GBGM L-Zhang (2012) Fauzi-L (2016) Fauzi-L-Zajac CRS length 7n + 6 8n + 17 3n + 14 Communic. 12n + 11 9n + 2 7n + 3 P comp. (units) 36 19.8 24.3 V comp. (units) 196 126 36.3 GBGM? PSDL, DLIN (comp.) KE, PKE (knowledge) TSDH, PCDH, PSP (comp.) 2x PKE (knowledge) Pure GBGM Soundness Full Culpable 1 unit = n million machine cycles According to speed records on BN curves n: number of ciphertexts (say 100,000)
8
Zero knowledge: CRS model
td Sim(crs,td,x)=π: Proof of ” x ∈ L” crs x, w x P(crs,x,w)=π: Proof of ” x ∈ L” V(crs,x,π): Accepts or rejects
9
Zero knowledge: desiderata
Correctness Soundness Zero knowledge (privacy) td Sim(crs,td,x)=π: Proof of ” x ∈ L” crs x, w x P(crs,x,w)=π: Proof of ” x ∈ L” V(crs,x,π): Accepts or rejects
10
Bilinear PAirings Three cyclic groups of the same order q: G1, G2, GT
Generators g1 of G1, g2 of G2, gT of GT Bilinear map: e: G1 x G2 → GT Requirements: Efficiently computable Non-degeneracy: e (g1, g2) ≠ 1 Bilinearity: e (g1a, g2b) = e (g1, g2)ab
11
Assumptions & Pairings
Inverting pairings should be hard Given e (A, B), compute either A or B Analogous to DL: given ga, compute a What else should be hard?
12
What else should be difficult?
People disagree… A few hundred (thousand?) known pairing-related hardness assumptions Each of them has to be cryptanalysed ”Easiest” sanity check: does this assumption hold in the generic model?
13
Non-generic approach Assumption 1 (known) … Assumption m (known)
Protocol Generic Model Assumption m+1 (new) … Assumption m+m’ (new) Pro: nice if m’ is not big, or most assumptions are well-known, or… Con: each arrow might mean a loss in efficiency
14
generic approach Protocol Generic Model
Pro: only one arrow, thus smaller loss in efficiency
15
(SEMI-)Generic bilinear group model
Meta-Assumption: adversary only has access to group operations, bilinear map, equality tests Each computed element in Gi (i=1, 2) is product of two already known elements Recursively, DL of each computed element is a known polynomial of some indeterminates Note: we do not handle GT as a generic group
16
Soundness in (semi-)GBGM
Polynomials (TTP knows X) Linear combinations (only group operation) Quadratic tests (can use bilinear map) X1 V1(X)=Σij b1ijh1i(X) h2i(X)=0 {[f1i(X)]1} {[g1i(X) =Σi a1if1i(X)]1} … … {[f2i(X)]2} {[g2i(X) =Σi a2if2i(X)]1} Vu(X)=Σij buijh1i(X) h2i(X)=0 Xs Verifications (verifier) {hji} = {fji, hji} Random variables (TTP) CRS (TTP) Outputs (adversary)
17
Soundness in (SEMI-)GBGM
jth verification equation ascertains Vj(X) = 0 Solve system of polynomial equations {Vj(X) = 0} in coefficients aji chosen by the adversary Show that solution coefficients are ”nice” Restricted to be as in the honest case
18
Intuition: constructing argument
Decomposing: Write down main building blocks you need to prove in argument Each ”subargument” should be efficiently verifiable (by a single pairing) Ascertain each subargument is sound independently CRS composition: Compose CRS-s of individual subarguments together, getting one big CRS
19
Intuition: constructing argument
Soundness check: Is the composed protocol sound? Subarguments get extra inputs in CRS If not: introduce new random variables that guarantee CRS elements are used in only correct subarguments, reiterate
20
Subarguments ”Permutation matrix argument”:
Prover commits to permutation; proves this is done correctly ”Consistency argument”: Prover proves she used the committed permutation to shuffle ciphertexts ”Validity argument”: Prover proves each ciphertext has been formed ”correctly” Correctly: so that the soundness proof goes through
21
Permutation matrix argument
Lemma. A matrix is permutation matrix iff It is stochastic // rows sum to (1, …, 1) Each row is 1-sparse At most one coefficient is non-zero
22
1-sparsity Argument [π(X)]1 = [((aIPI (X) + P0 (X) + rXρ)2 - 1) / Xρ]1
Commitment: [Ai(X)]i = [aIPI (X) + rXρ]i // i = 1, 2 Argument: // ”square span programs” [π(X)]1 = [((aIPI (X) + P0 (X) + rXρ)2 - 1) / Xρ]1 Verification equation: V (X) := (A1(X) + Xα+ P0 (X)) (A2(X) - Xα+ P0 (X)) - π(X) Xρ – (1 - Xα)2 = 0 Pi (X) are linearly independent, well-chosen polynomials
23
Soundness proof: idea In GBGM we know constants a1i, A1ρ, …, s.t. for X = (X, Xρ, Xα, Xβ, Xγ, Xsk) A1 (X) = Σ a1iPi (X) + A1ρXρ+ A1α (X α+ P0 (X)) + A11 P0 (X) + … A2 (X) = Σ a2iPi (X) + A2ρXρ+ A2α (-Xα + P0 (X)) + A21 + … π (X) = Σ πiPi (X) + πρXρ+ πα (X α+ P0 (X)) + π1 P0 (X) + … Verification equation states V(X) = (A1(X) + Xα+ P0 (X)) (A2(X) - Xα+ P0 (X)) - π(X) Xρ – (1 - Xα)2 = 0 Goal: find coefficients s.t. verification equation is satisfied CRS: ({[Pi(X)]1}i, [Xρ]1, [Xα+P0(X)]1, [P0(X)]1,…, ({[Pi(X)]2}i, [Xρ]2, [-Xα+P0(X)]2, [1]2,…)
24
Solving system of pol. equations
Goal: find coefficients s.t. V (X) = 0 Step 1: V (X) = 0 iff each coefficient [Xα jXρk …] V (X) = 0 This is a system of polynomial equations … and a nasty one of more than 20 polynomial equations
26
Solving… Obtain that Ai (X) = aI PI (X) => Sound
Too large a system for a simple human researcher… Used a mixture of computer algebra system and manual labor Use linear independence of Pi (X) to split some coefficients Construct Gröbner basis of system of polynomial equations Needs(?) a CAS… Solve the Gröbner basis Can be done manually or by using CAS Obtain that Ai (X) = aI PI (X) => Sound
27
Thank you!
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.