Zero-Knowledge Proofs
1
Zero-Knowledge Proofs 1 Zero-Knowledge Proofs Lecture 15 1 - - PowerPoint PPT Presentation
Zero-Knowledge Proofs 1 Zero-Knowledge Proofs Lecture 15 1 Interactive Proofs 2 Interactive Proofs 2 Interactive Proofs Prover wants to convince verifier that x has some property 2 Interactive Proofs Prover wants to convince verifier
1
Lecture 15
1
2
2
2
i.e. x is in language L
2
i.e. x is in language L
2
i.e. x is in language L
Prove to me!
2
i.e. x is in language L
Prove to me!
2
i.e. x is in language L
Prove to me! OK
2
i.e. x is in language L
Prove to me! OK
2
3
3
If x in L, honest Prover will convince honest Verifier
3
If x in L, honest Prover will convince honest Verifier
3
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
3
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
3
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
3
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
yeah right!
3
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
yeah right!
3
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
yeah right! Reject!
3
4
4
Prover claims: coke in bottle and coke in can are different
4
Prover claims: coke in bottle and coke in can are different
4
Prover claims: coke in bottle and coke in can are different
Pour into from can
4
Prover claims: coke in bottle and coke in can are different
Pour into from can
4
Prover claims: coke in bottle and coke in can are different
prover tells whether cup was filled from can or bottle
Pour into from can
5
Prover claims: coke in bottle and coke in can are different
prover tells whether cup was filled from can or bottle
Pour into from can
can/bottle
5
Prover claims: coke in bottle and coke in can are different
prover tells whether cup was filled from can or bottle repeat till verifier is convinced
Pour into from can
can/bottle
6
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced
Set G* to be !(G0) or !(G1) (! random)
7
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced G*
Set G* to be !(G0) or !(G1) (! random)
7
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced G0/G1 G*
Set G* to be !(G0) or !(G1) (! random)
7
Prove to me!
8
Prove to me!
8
Prove to me!
8
Prove to me!
8
Prove to me!
prover sends w (non-interactive)
w
8
Prove to me!
prover sends w (non-interactive)
R(x,w)=1? w
8
Prove to me!
prover sends w (non-interactive)
R(x,w)=1? OK w
8
Prove to me!
prover sends w (non-interactive)
R(x,w)=1? OK w
9
10
10
except whether x is in L
10
except whether x is in L
10
except whether x is in L
10
Prove to me!
except whether x is in L
10
Prove to me!
except whether x is in L
w
10
Prove to me!
except whether x is in L
w
10
Prove to me!
except whether x is in L
wonder what f(w) is... w
10
Prove to me!
except whether x is in L
wonder what f(w) is... w
10
Prove to me!
except whether x is in L
Simulation!
wonder what f(w) is... w
10
11
11
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
11
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
11
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ
!*
11
G* := !(G1) (random !)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
11
G* := !(G1) (random !)
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
G* := !(G1) (random !)
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
G* := !(G1) (random !)
If prover can answer both b’s for the same G* then G0~G1
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
G* := !(G1) (random !)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
G* := !(G1) (random !)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
G* := !(G1) (random !)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
Verifier’s view: random b and !* s.t. G*=!*(Gb)
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
G* := !(G1) (random !)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
Verifier’s view: random b and !* s.t. G*=!*(Gb) Which he could have generated by himself (whether G0~G1 or not)
G*
random bit b
b
if b=1, !* := ! if b=0, !* := !oσ G*=!*(Gb)?
!*
12
13
13
Complete and Sound
13
Complete and Sound
13
Complete and Sound
13
Complete and Sound
13
Ah, got it! 42
Complete and Sound
13
Ah, got it! 42
Complete and Sound
13
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
13
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
13
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
13
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
13
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
Ah, got it! 42
13
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated” For every adversarial strategy, there exists a simulation strategy
Ah, got it! 42
13
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
14
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
14
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
14
proto proto
Env REAL
i’face
Env IDEAL
F
R
Classical definition uses simulation
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
14
proto proto
Env REAL
i’face
Env IDEAL
F
R
Classical definition uses simulation
and uses only standalone security: Environment gets only a transcript at the end x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
14
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
15
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x
Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
15
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x
Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
15
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x
Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
15
16
16
16
Assuming one-way functions exist
16
Assuming one-way functions exist
16
Assuming one-way functions exist
Everything that can be proven can be proven in zero-knowledge! (Assuming OWF)
16
Assuming one-way functions exist
Everything that can be proven can be proven in zero-knowledge! (Assuming OWF)
16
Assuming one-way functions exist
Everything that can be proven can be proven in zero-knowledge! (Assuming OWF)
ZKPoK, Statistical ZK Arguments, O(1)-round ZK
16
17
G,coloring
17
Uses a commitment protocol as a subroutine
G,coloring
17
Uses a commitment protocol as a subroutine
Use random colors
G,coloring
17
Uses a commitment protocol as a subroutine
Use random colors
G,coloring
c
m i t t e d
17
Uses a commitment protocol as a subroutine
pick random edge Use random colors
edge G,coloring
c
m i t t e d
17
Uses a commitment protocol as a subroutine
pick random edge Use random colors
edge G,coloring
reveal edge c
m i t t e d
17
Uses a commitment protocol as a subroutine
pick random edge distinct colors? Use random colors
edge G,coloring
reveal edge c
m i t t e d
17
Uses a commitment protocol as a subroutine
pick random edge distinct colors? Use random colors
edge G,coloring OK
reveal edge c
m i t t e d
17
Uses a commitment protocol as a subroutine At least 1/m probability of catching a wrong proof
pick random edge distinct colors? Use random colors
edge G,coloring OK
reveal edge c
m i t t e d
17
Uses a commitment protocol as a subroutine At least 1/m probability of catching a wrong proof Soundness amplification: Repeat say mk times (with independent color permutations)
pick random edge distinct colors? Use random colors
edge G,coloring OK
reveal edge c
m i t t e d
17
18
Uses a OWP f and a hardcore predicate for it B
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
b
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
b
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b committed
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b committed
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b committed reveal
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b x,b committed reveal
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
consistent? random x
f(x), b ⊕ B(x) b x,b committed reveal
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
consistent? random x
f(x), b ⊕ B(x) b b x,b committed reveal
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding Perfectly binding because f is a permutation
consistent? random x
f(x), b ⊕ B(x) b b x,b committed reveal
18
Uses a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding Perfectly binding because f is a permutation Hiding because B(x) is pseudorandom given f(x)
consistent? random x
f(x), b ⊕ B(x) b b x,b committed reveal
18
19
19
Using ZK Proof of Knowledge
19
Using ZK Proof of Knowledge
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
19
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
19
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
19
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
19
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK OK
19
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK OK
19
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now Prove x2 is what... OK OK
19
20
20
Composition
20
Composition
Several issues: auxiliary information from previous runs, concurrency issues, malleability/man-in-the- middle
20
Composition
Several issues: auxiliary information from previous runs, concurrency issues, malleability/man-in-the- middle
In general, to allow composition more complicated protocols
20
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI)
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI) When 2 witnesses possible, verifier can’ t tell which one was used
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI) When 2 witnesses possible, verifier can’ t tell which one was used A ZK proof is always WI, but not vice-versa
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI) When 2 witnesses possible, verifier can’ t tell which one was used A ZK proof is always WI, but not vice-versa WI Proofs used as components inside larger protocols
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI) When 2 witnesses possible, verifier can’ t tell which one was used A ZK proof is always WI, but not vice-versa WI Proofs used as components inside larger protocols Sometimes with certain other useful properties
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI) When 2 witnesses possible, verifier can’ t tell which one was used A ZK proof is always WI, but not vice-versa WI Proofs used as components inside larger protocols Sometimes with certain other useful properties e.g. WI-PoK, “Sigma protocols”
21
ZK (as opposed to SIM-ZK/ZK-PoK) weakens soundness guarantee A weakening of ZK property: Witness Indistinguishability (WI) When 2 witnesses possible, verifier can’ t tell which one was used A ZK proof is always WI, but not vice-versa WI Proofs used as components inside larger protocols Sometimes with certain other useful properties e.g. WI-PoK, “Sigma protocols” Defined in standalone setting, but WI property is preserved under some “composition” too
21
22
Can the prover just give a written proof (no interaction) which any
22
Can the prover just give a written proof (no interaction) which any
No soundness: prover can give the simulated proof
22
Can the prover just give a written proof (no interaction) which any
No soundness: prover can give the simulated proof NIZK: a trusted “common random string” (CRS) is published, and the proof/verification is w.r.t CRS
22
Can the prover just give a written proof (no interaction) which any
No soundness: prover can give the simulated proof NIZK: a trusted “common random string” (CRS) is published, and the proof/verification is w.r.t CRS NIZK property: a simulator can simulate the CRS and the proofs
22
Can the prover just give a written proof (no interaction) which any
No soundness: prover can give the simulated proof NIZK: a trusted “common random string” (CRS) is published, and the proof/verification is w.r.t CRS NIZK property: a simulator can simulate the CRS and the proofs Note: CRS is a part of the proof, but prover is not allowed to choose it (otherwise no soundness)
22
Can the prover just give a written proof (no interaction) which any
No soundness: prover can give the simulated proof NIZK: a trusted “common random string” (CRS) is published, and the proof/verification is w.r.t CRS NIZK property: a simulator can simulate the CRS and the proofs Note: CRS is a part of the proof, but prover is not allowed to choose it (otherwise no soundness) NIZK schemes exist for all NP languages (using “enhanced” T-OWP)
22
Can the prover just give a written proof (no interaction) which any
No soundness: prover can give the simulated proof NIZK: a trusted “common random string” (CRS) is published, and the proof/verification is w.r.t CRS NIZK property: a simulator can simulate the CRS and the proofs Note: CRS is a part of the proof, but prover is not allowed to choose it (otherwise no soundness) NIZK schemes exist for all NP languages (using “enhanced” T-OWP) Also can NIZK-ify some ZK protocols in the RO Model (no CRS)
22
23
Zero-Knowledge Proofs
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven Classical security definition
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven Classical security definition Standalone SIM-security for corrupt verifier (ZK property). Soundness (for corrupt prover) separately
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven Classical security definition Standalone SIM-security for corrupt verifier (ZK property). Soundness (for corrupt prover) separately Protocols for Graph 3-colorability (and hence all NP properties) using commitment schemes (in turn using OWP)
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven Classical security definition Standalone SIM-security for corrupt verifier (ZK property). Soundness (for corrupt prover) separately Protocols for Graph 3-colorability (and hence all NP properties) using commitment schemes (in turn using OWP) Omitted: ZK for several specific statements
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven Classical security definition Standalone SIM-security for corrupt verifier (ZK property). Soundness (for corrupt prover) separately Protocols for Graph 3-colorability (and hence all NP properties) using commitment schemes (in turn using OWP) Omitted: ZK for several specific statements Useful in “enforcing” honest (but curious) behavior
23
Zero-Knowledge Proofs Interactive Proofs (complete and sound), in which the verifier’ s view is simulatable given just the statement being proven Classical security definition Standalone SIM-security for corrupt verifier (ZK property). Soundness (for corrupt prover) separately Protocols for Graph 3-colorability (and hence all NP properties) using commitment schemes (in turn using OWP) Omitted: ZK for several specific statements Useful in “enforcing” honest (but curious) behavior Some variants (NIZK, WI)
23