Zero Knowledge Accumulators and Set Operations Esha Ghosh 1 Olya - - PowerPoint PPT Presentation

zero knowledge accumulators and set operations
SMART_READER_LITE
LIVE PREVIEW

Zero Knowledge Accumulators and Set Operations Esha Ghosh 1 Olya - - PowerPoint PPT Presentation

Zero Knowledge Accumulators and Set Operations Esha Ghosh 1 Olya Ohrimenko 2 Dimitrios Papadopoulos 3 Roberto Tamassia 1 Nikos Triandopoulos 4 1 Brown University 2 Microsoft Research 3 University of Maryland 4 Stevens Institute of Technology


slide-1
SLIDE 1

Zero Knowledge Accumulators and Set Operations

Esha Ghosh1 Olya Ohrimenko2 Dimitrios Papadopoulos3 Roberto Tamassia1 Nikos Triandopoulos4

1Brown University 2Microsoft Research 3University of Maryland 4Stevens Institute of Technology

Research supported in part by the US National Science Foundation

slide-2
SLIDE 2

Data Outsourcing

OWNER SERVER CLIENTS

query answer

slide-3
SLIDE 3

Verifiable data outsourcing (static)

OWNER SERVER CLIENTS

query answer, proof θ σ θ

slide-4
SLIDE 4

Verifiable data outsourcing (dynamic)

OWNER SERVER CLIENTS

query answer, proof σ’ θ’ state

Upd

slide-5
SLIDE 5

Challenge: Proof Leaking Information

r c a x Merkle tree with items stored in sorted order at the leaves. Proof of x: ((a, L), (b, R)). Verification: h(h(a, h(x), c) = r Proof leaks rank of item.

slide-6
SLIDE 6

Zone enumeration attack

Primary resolver Secondary resolver CLIENTS

q.com answer, proof θ pk,H(.) θ

Zone names: a.com b.com w.com a5bb 23ce fae1 H(a.com) H(b.com) H(w.com) 23ce a5bb fae1

[GNPRVZ– NDSS15, RFC 5155]

slide-7
SLIDE 7

Zone enumeration attack

Primary resolver Secondary resolver CLIENTS

q.com ⊥, 23ce a5bb θ pk,H(.) θ

Zone names: a.com b.com w.com a5bb 23ce fae1 H(a.com) H(b.com) H(w.com) 23ce a5bb fae1

[Bernstein11–nsec3walker]

slide-8
SLIDE 8

Cryptographic accumulator [Benaloh and del Mare93]

σ ← acc(SetX). Efficient and succinct proof for x ∈ X, x / ∈ X. Proofs are publicly computable and verifiable. Soundness: Forging proof for an element is infeasible. Traditional proofs are leaky.

slide-9
SLIDE 9

In this work

Formal model for zero-knowledge universal dynamic accumulators. Efficient construction for zero-knowledge accumulators. Efficient construction for :

  • 1. is-subset
  • 2. difference
  • 3. union
  • 4. intersection
slide-10
SLIDE 10

Our Model

OWNER SERVER CLIENTS

query answer, proof σ’ θ’ state

Upd

slide-11
SLIDE 11

Soundness

Challenger pk Set X0 Digests σ0, θ0 Update Ui σi+1, Updi j,query*, answer*, proof* Adversary

{

Repeat λ times Setup Figure: Probability that Verify accepts but answer ∗ is not correct wrt query∗ on Xj is negligible

slide-12
SLIDE 12

Zero-Knowledge

answer,proof Challenger pk

{

pk Set X0 Client σ0 query answer,proof

{

Adversary Guess Simulator Ui σi+1

{

Notify Update

{

σi+1 query Client σ0

Figure: Probability that Adversary guesses correctly if it is talking to a challenger or a simulator is negligible

slide-13
SLIDE 13

Zero Knowledge Accumulator

slide-14
SLIDE 14

Query

X = {x1, . . . , xN} = set of elements Client Query: Is element x ∈ X? Server Response: answer = 1 indication yes and answer = 0 indicating no + proof

slide-15
SLIDE 15

Set Representation

A set X = {x1, . . . , xN} represented using its characteristic polynomial ChX [z] = N

i=1(z + xi)

Bilinear Map:

  • λ ∈ N is the security parameter of the scheme
  • G, G1 multiplicative cyclic groups of prime order p
  • p is a large k-bit prime
  • g is a random generator of G
  • e : G × G → G1 is computable bilinear nondegenerate map
  • e(ga, gb) = e(g, g)ab.
slide-16
SLIDE 16

Keygen and Setup (Owner)

(sk, pk) ← KeyGen(1λ)

  • Generate bilinear parameters pub = (p, G, G1, e, g).

O(poly(λ))

  • Choose s

$

← − Z∗

p.

  • Set sk = s and pk = (gs, pub).

(σ0, θ0, state0) ← Setup(sk, X0)

  • Choose r

$

← − Z∗

p.

  • Set σ0 = gr·ChX (s).O(N)
  • Set θ0 = (g, gs, gs2, . . . , gsN, r). O(N)
  • Set state0 = X.
slide-17
SLIDE 17

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

slide-18
SLIDE 18

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

slide-19
SLIDE 19

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

  • 1. Using the Extended Euclidean algorithm, compute polynomials

q1[z], q2[z] such that q1[z]ChX [z] + q2[z](z + x) = 1. O(N log2 N log log N)

slide-20
SLIDE 20

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

  • 1. Using the Extended Euclidean algorithm, compute polynomials

q1[z], q2[z] such that q1[z]ChX [z] + q2[z](z + x) = 1. O(N log2 N log log N)

  • 2. Pick a random γ

$

← − Z∗

p

slide-21
SLIDE 21

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

  • 1. Using the Extended Euclidean algorithm, compute polynomials

q1[z], q2[z] such that q1[z]ChX [z] + q2[z](z + x) = 1. O(N log2 N log log N)

  • 2. Pick a random γ

$

← − Z∗

p

  • 3. Set q′

1[z] = q1[z] + γ · (z + x)

slide-22
SLIDE 22

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

  • 1. Using the Extended Euclidean algorithm, compute polynomials

q1[z], q2[z] such that q1[z]ChX [z] + q2[z](z + x) = 1. O(N log2 N log log N)

  • 2. Pick a random γ

$

← − Z∗

p

  • 3. Set q′

1[z] = q1[z] + γ · (z + x)

  • 4. Set q′

2[z] = q2[z] − γ · ChX [z].

slide-23
SLIDE 23

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

  • 1. Using the Extended Euclidean algorithm, compute polynomials

q1[z], q2[z] such that q1[z]ChX [z] + q2[z](z + x) = 1. O(N log2 N log log N)

  • 2. Pick a random γ

$

← − Z∗

p

  • 3. Set q′

1[z] = q1[z] + γ · (z + x)

  • 4. Set q′

2[z] = q2[z] − γ · ChX [z].

  • 5. Set W1 := g q′

1(s)r −1, W2 = g q′ 2(s).

slide-24
SLIDE 24

Query (Server)

(answer, proof) ← PerformQuery(Xj, θj, query)

  • if query = x ∈ X:

set answer = 1 and proof = (σj)

1 s+x = g r·ChX (s) (s+x) . O(N log N)

  • if query = x /

∈ X:

  • 1. Using the Extended Euclidean algorithm, compute polynomials

q1[z], q2[z] such that q1[z]ChX [z] + q2[z](z + x) = 1. O(N log2 N log log N)

  • 2. Pick a random γ

$

← − Z∗

p

  • 3. Set q′

1[z] = q1[z] + γ · (z + x)

  • 4. Set q′

2[z] = q2[z] − γ · ChX [z].

  • 5. Set W1 := g q′

1(s)r −1, W2 = g q′ 2(s).

  • 6. Set proof := (W1, W2) and answer = 0.
slide-25
SLIDE 25

Verification (Client)

(accept/reject) ← Verify(pk, σj, query, answer, proof)

  • Let query = x.
  • If answer = 1, return accept if e(σj, g) = e(proof, gx · pk).

O(1)

  • if answer = 0, return accept if

e(W1, σj)e(W2, gx · pk) = e(g, g). O(1)

  • Return reject otherwise.
slide-26
SLIDE 26

Update

(Xi+1, σi+1, updi, statei+1) ← Update(sk, statei, σi, θi, Xi, ui) Owner:

  • Choose r′

$

← − Z∗

p.

  • If x is to be inserted:
  • 1. Compute σi+1 = σ(s+x)r ′

i

. O(1)

  • If x is to be deleted:
  • 1. Compute σi+1 = σ

r′ s+x

i

.O(1)

  • Set updi = (r′) and statei+1 = Xi+1.

Server: Store the inserted/deleted element and updi = (r′).O(1)

slide-27
SLIDE 27

Privacy comes almost for free

[Nguyen05 – No Privacy] This work Setup NMUL NMUL Update 1MUL 2MUL Witness (Member) NMUL + (N − 1)ADD NMUL + (N − 1)ADD Witness (Non-Member) NMUL + (N − 1)ADD (N + 1)MUL + (N − 1)ADD Verify (Member) 1(MUL + ADD + PAIR) 1(MUL + ADD + PAIR) Verify (Non-Member) 2(MUL + ADD + PAIR) 1(MUL + ADD + ADD1) + 2PAIR Witness Update (Member) 1(MUL + ADD) 2MUL + 1ADD Witness Update (Non-Member) 2MUL + 1ADD (N + 1)MUL + (N − 1)ADD

Figure: ADD = point addition MUL = scalar multiplication in the elliptic curve group G, ADD1 = point addition in G1 and PAIR a pairing computation, whereas N is the size of the set.

slide-28
SLIDE 28

Set Algebra : Union

slide-29
SLIDE 29

Query

{X1, . . . , Xm} = set collection Client Query: Return union of sets 2, 5, 9 Server Response: answer = X2 ∪ X5 ∪ X9 + proof Let X2 = {a, b, d}, X5 = {d, f }, X9 = {a, c} answer = {a, c, b, d, f }

slide-30
SLIDE 30

Completeness Conditions

Superset condition: X2 ⊆ answer ∧ X5 ⊆ answer ∧ X9 ⊆ answer. Technique: Generalization of set membership. Membership condition: answer ⊆ ˜ U where ˜ U = X2 ⊎ X5 ⊎ X9.

slide-31
SLIDE 31

Proving membership

Multiset union: ˜ U = {a, a, c, c, b, d, d, f }

  • 1. Compute

σ ˜

U ← g(r2r5r9)Ch ˜

U(s) = g(r2r5r9)(s+a)2(s+c)(s+b)(s+d)2(s+f )

slide-32
SLIDE 32

Proving membership

Multiset union: ˜ U = {a, a, c, c, b, d, d, f }

  • 1. Compute

σ ˜

U ← g(r2r5r9)Ch ˜

U(s) = g(r2r5r9)(s+a)2(s+c)(s+b)(s+d)2(s+f )

  • 2. Prove σ ˜

U is correctly computed

slide-33
SLIDE 33

Proving membership

Multiset union: ˜ U = {a, a, c, c, b, d, d, f }

  • 1. Compute

σ ˜

U ← g(r2r5r9)Ch ˜

U(s) = g(r2r5r9)(s+a)2(s+c)(s+b)(s+d)2(s+f )

  • 2. Prove σ ˜

U is correctly computed

  • 3. Prove answer ⊆ ˜

U using σ ˜

U

slide-34
SLIDE 34

Step 2: Server

σ ˜

U = g(r2r5r9)(s+a)2(s+c)(s+b)(s+d)2(s+f )

σ2,5 = gr2r5(s+a)(s+b)(s+d)2(s+f ) σ2 = gr2(s+a)(s+b)(s+d) σ5 = gr5(s+d)(s+f ) σ9 = gr9(s+a)(s+c)

slide-35
SLIDE 35

Step 2: Server

σ ˜

U = g(r2r5r9)(s+a)2(s+c)(s+b)(s+d)2(s+f )

σ2,5 = gr2r5(s+a)(s+b)(s+d)2(s+f ) σ2 = gr2(s+a)(s+b)(s+d) σ5 = gr5(s+d)(s+f ) σ9 = gr9(s+a)(s+c)

slide-36
SLIDE 36

Step 2: Client

e(σ2,5, σ9) ? = e(σ ˜

U, g)

e(σ2, σ5) ? = e(σ2,5, g) σ2 σ5 σ9

slide-37
SLIDE 37

Step 3

Server: W(answer, ˜

U) ← g

r2r5r9Ch ˜ U (s) Chanswer(s) = gr2r5r9(s+a)(s+d)

Client: e(W(answer, ˜

U), gChanswer(s)) ?

= e(σ ˜

U, g)

slide-38
SLIDE 38

More in the paper:

  • 1. Relation of Zero Knowledge Accumulator with the existing

primitives (ZKS, PSR, Trapdoorless Acc).

  • 2. Formal proof that Zero knowledge is stronger than

indistinguishably notion [MLPP12, DHS15] of privacy.

  • 3. First efficient construction for zero-knowledge verifiable set

algebra queries (Is-subset, Intersection, Union, Difference) with no additional cost over the state-of-the art non-private construction [PTT11].

slide-39
SLIDE 39

Thank you!