Presentation is loading. Please wait.

Presentation is loading. Please wait.

Zero Knowledge Proofs. Interactive proof An Interactive Proof System for a language L is a two-party game between a verifier and a prover that interact.

Similar presentations


Presentation on theme: "Zero Knowledge Proofs. Interactive proof An Interactive Proof System for a language L is a two-party game between a verifier and a prover that interact."— Presentation transcript:

1 Zero Knowledge Proofs

2 Interactive proof An Interactive Proof System for a language L is a two-party game between a verifier and a prover that interact on a common input in a way satisfying the following properties:

3 Interactive proof  The verifier’s strategy is a probabilistic polynomial-time procedure.  Correctness requirements: Completeness: There exists a prover strategy P, such that for every x  L, when interacting on a common input x, the prover P convinces the verifier with probability at least 2 / 3. Soundness: For every x  L, when interacting on the common input x, any prover strategy P* convinces the verifier with probability at most 1 / 3.

4 Zero Knowledge Proof Let (P,V) be an interactive proof system for some language L. We say that (P,V), actually P, is zero- knowledge if for every probabilistic polynomial-time ITM V * there exists a probabilistic polynomial-time machine M * s.t. for every x  L holds { (x)} x  L  {M * (x)} x  L Machine M * is called the simulator for the interaction of V * with P.

5 Perfect Zero Knowledge Definition: Let (P,V) be an interactive proof system for some language L. We say that (P,V), actually P, is perfect zero-knowledge (PZK) if for every probabilistic polynomial time ITM V * there exists a probabilistic polynomial-time machine M * s.t. for every x  L the distributions { (x)} x  L and {M * (x)} x  L are identical, i.e., { (x)} x  L  {M * (x)} x  L

6 Statistical Zero Knowledge Definition: Let (P,V) be an interactive proof system for some language L. We say that (P,V), actually P, is statistical zero knowledge (SZK) if for every probabilistic polynomial time verifier V * there exists a probabilistic polynomial-time machine M * s.t. the ensembles { (x)} x  L and {M * (x)} x  L are statistically close.

7 Statistical Zero Knowledge Definition-cont.: The distribution ensembles {A x } x  L and {B x } x  L are statistically close or have negligible variation distance if for every polynomial p() there exits integer N such that for every x  L with |x|  N holds:   |Pr [A x =  ] – Pr [B x =  ]|  p(|x|) -1

8 Computational Zero Knowledge Definition: Let (P,V) be an interactive proof system for some language L. (P,V), actually P, is computational zero knowledge (CZK) if for every probabilistic polynomial-time verifier V * there exists a probabilistic polynomial-time machine M * s.t. the ensembles { (x)} x  L and {M * (x)} x  L are computationally indistinguishable.

9 Computational Zero Knowledge Definition: Two ensembles {A x } x  L and {B x } x  L are computationally indistinguishable if for every probabilistic polynomial time distinguisher D and for every polynomial p() there exists an integer N such that for every x  L with |x|  N holds |Pr [D(x,A x ) = 1] – Pr [D(x,B x ) = 1]|  p(|x|) -1

10 Graph Isomorphism problem Definition Graph Isomorphism two graphs G 0 =(V 0,E 0 ) and G 1 =(V 1, G 1 ) are isomorphic   permutation  s.t  (u,v)  E 0  (  (u),  (v))  E1 if G 0 and G 1 are isomorphic and  is an isomorphism between G 0 to G 1 we write G 1 =  (G 0 ).

11 Graph Isomorphism problem Graph Isomorphism problem: Given Two Graphs G 1 and G 2 – Are They Isomorphic ? Lemma: GI  ZK Proof: Zero Knowledge Interactive Proof for GI.

12 Zero Knowledge Interactive proof for Graph Isomorphism 1. Repeat the following n times: 2. The Prover chooses a random permutation  of (1…n) and computes H=  (G 1 ) and send it to the verifier. 3. The verifier chooses randomly i=1 or 2 and sends it to the prover.

13 Zero Knowledge Interactive proof for Graph Isomorphism-cont. 4. The prover chooses permutation  s.t H =  (G i ). If i=1 the prover sends  to the verifier otherwise the prover will send   -1.(  is the isomorphism between G 1 and G 2. 5. The verifier checks if H is the image of G i under . 6. The verifier accepts if H is the image of G i in all n rounds.

14 Zero Knowledge Interactive proof for Graph Isomorphism- cont. Prover Verifier  H=  (G 1 ) i=1,2  or   -1 Checks if H is the image of G i R

15 Building simulator M* for graph isomorphism problem We will define simulator M* as follows: Input:(G 0, G 1 )  ISO 1.Randomly chooses a random string RANDOM and puts it on the Random tape of Verifier V*. 2. Randomly chooses a  {0,1} and permutation  and construct H=  (Ga) send H to V*.

16 Building simulator M* for graph isomorphism problem 3. Receive b from V*. If b  {0,1} then outputs {RANDOM,H,b} and STOP. If a =b then outputs {RANDOM,H,b,  } and STOP;else GOTO 1.

17 Zero-Knowledge Password Proofs 1. The prover finds two large primal numbers - p and q and sends n=pq to the verifier 2. r is a random number belongs to [n, n 4 ]. The prover sends x 2 modn and r 2 modn to the verifier. 3. The verifier then randomly asks for r or xr and checks the prover.

18 Zero-Knowledge Password Proofs Prover Verifier n=pq x 2 modn r 2 modn Asks for xr or r xr or r Checks the Prover

19 NP and Zero Knowledge proofs Lemma: NP  ZK Proof: 3col  ZK.

20 Zero Knowledge proof for 3col problem 1. The prover randomly chooses a permutation . Computes  (c(v)), puts in envelopes and sends to the verifier. 2. The verifier chooses randomly: (u,v)  E and opens the envelope. If the colors are different and legal he answers “yes”.

21 Zero Knowledge proof for 3col problem Prover Verifier permutation .  (c(v)) Chooses (u,v)  E envelope Checks that colors are different

22 ZK protocol for Co-SAT Transform the CNF to a polynom by these transformation rules: 1. T  positive value 2. F  0 3. X i  X i 3.  X i  (1-X i ) 4. OR  + 5. AND 

23 ZK protocol for Co-SAT The protocol: 1. The prover selects a prime number q > 2 n 3 m and sends to the verifier. 2. The verifier checks that q is prime. If q isn’t prime halts and rejects.

24 ZK protocol for Co-SAT 3. V 0 is at the initialized at value zero. The prover does the following for i=1…n. The prover computes polynom P i that it’s rank is at most m. The construction of P i : P 1 (x)=  x n =0,1 ….  x n=0,1 p(x 1 … x n ) P 2 (x)=  x n =0,1 ….  x n=0,1 p(r 1, x, x 3 … x n ) P n (x)= p(r 1,... R n-1, x n ) the prover puts polynom P i in envelopes and send to the verifier.

25 ZK protocol for Co-SAT 4. The prover moves to the next stage(i=i+1). 5. We know that the verifier will accept if  r 1… r i … r n s.t P i (0) + P i (1)= v i -1modq. Since checking each assignment is polynomial this problem is in NP. We can now do a reduction from any NP problem to 3col  ZK.

26 ZK protocol for Graph non isomorphism Definition Graph non Isomorphism given two graphs G 0 =(V 0,E 0 ) and G 1 =(V 1, G 1 ). (G 0, G 1 )  GNI  there is no permutation  s.t  (u,v)  E 0  (  (u),  (v))  E 1

27 ZK protocol for Graph non isomorphism 1. The verifier chooses randomly a number i  (0,1). The verifier chooses a random permutation  and computes H =  (G i ). Then the verifier chooses randomly j  (0,1). The verifier creates the pair of graphs (H 0, H 1 ) such that: if j=0: H 0 is a permutation of G 0 H 1 is a permutation of G 1

28 ZK protocol for Graph non isomorphism if j=1: H 0 is a permutation of G 1 H 1 is apermutation of G 0 the verifier sends H and the pair (H 0, H 1 ).

29 ZK protocol for Graph non isomorphism 2. The prover chooses randomly b  (0,1). The prover sends b to the verifier. If b=0 then the verifier sends the prover the isomorphism between (G 0, G 1 ) and (H 0, H 1 ). If b=1 the verifier sends the prover the isomorphism between H and (H 0, H 1 ).

30 ZK protocol for Graph non isomorphism 3. The prover checks that the right isomorphism is sent otherwise it stops. the prover computes b such that G b is isomorphic to H and sends b to V. If there is no such b, the prover sends a random b. 4. The verifier accepts if j=b.

31 ZK protocol for Graph non isomorphism Prover Verifier 1.Isomorphism between (G 0, G 1 ) and (H 0, H 1 ). OR 2.Isomorphism between (H 0, H 1 ) and H. Check isomorphism computes b checks that j=b 1. i  (0,1) 2.H =  (Gi) 3. H and the pair (H 0, H 1 )

32 ZK protocol for Graph non isomorphism Lemma: GNI  PZK Proof : building M* s.t { (x)} x  L  {M * (x)} x  L 1. The machine M* takes random string of bits and puts ot on a Random tape.

33 ZK protocol for Graph non isomorphism M v * does the following n times: 2. M v * waits to get H and the pair (H 0, H 1 ) from V*. 3. M v * chooses a random b. 4. M v * gets from V* the isomorphism between H and (H 0, H 1 ) and (G 0, G 1 ). M v * checks if it is not the right isomorphism it stops.

34 Otherwise:1. Returns V* to the point after H and (H 0, H 1 ) were received. 2. choose b’ again and sends to V* 3. Waits to get I’ from V* I’- isomorphism received from V*. ZK protocol for Graph non isomorphism

35 If b’  b then the M v * finds isomorphism from I and I’, from G 0,G 1 to (H 0, H 1 ) and from (H 0, H 1 ) to H. The machine uses this information to find Isomorphism from H to G 0, G 1. 4. The machine M v * uses this information to compute V* and sends it to V*. ZK protocol for Graph non isomorphism


Download ppt "Zero Knowledge Proofs. Interactive proof An Interactive Proof System for a language L is a two-party game between a verifier and a prover that interact."

Similar presentations


Ads by Google