Title: Interactive and Zero Knowledge Proofs
1Interactive and Zero Knowledge Proofs
2Interactive and Zero Knowledge Proofs
A protocol between two parties in which one
party, called the prover tries to prove a
certain fact to the other party, called the
verifier. Used for authentication and
identification.
3Interactive and Zero Knowledge Proofs
A protocol between two parties in which one
party, called the prover tries to prove a
certain fact to the other party, called the
verifier. Used for authentication and
identification. The fact to prove usually is
related to the prover's identity, say the
prover's secret key.
4Interactive and Zero Knowledge Proofs
A protocol between two parties in which one
party, called the prover tries to prove a
certain fact to the other party, called the
verifier. Used for authentication and
identification. The fact to prove usually is
related to the prover's identity, say the
prover's secret key. The following
properties are important 1. Completeness - the
verifier always accepts the proof if the
fact is true and both parties follow the protocol.
5Interactive and Zero Knowledge Proofs
A protocol between two parties in which one
party, called the prover tries to prove a
certain fact to the other party, called the
verifier. Used for authentication and
identification. The fact to prove usually is
related to the prover's identity, say the
prover's secret key. The following properties
are important 1. Completeness - the verifier
always accepts the proof if the fact is
true and both parties follow the protocol. 2.
Soundness - the verifier always rejects the proof
if the fact is false, as long as the
verifier follows the protocol.
6Interactive and Zero Knowledge Proofs
A protocol between two parties in which one
party, called the prover tries to prove a
certain fact to the other party, called the
verifier. Used for authentication and
identification. The fact to prove usually is
related to the prover's identity, say the
prover's secret key. The following properties
are important 1. Completeness - the verifier
always accepts the proof if the fact is
true and both parties follow the protocol. 2.
Soundness - the verifier always rejects the proof
if the fact is false, as long as the
verifier follows the protocol. 3.
Zero-Knowledge - verifier learns nothing else
about the fact being proved from the
prover that could not be learned without
the prover, regardless of following the
protocol. Verifier cannot even prove the
fact to anyone later.
7Interactive and Zero Knowledge Proofs
How do you know you have a Zero Knowledge proof?
8Interactive and Zero Knowledge Proofs
How do you know you have a Zero Knowledge proof?
The verifier can produce a simulation of the
transactions even if the prover does not know the
fact to be proved. The simulation can be handed
to a third party who cannot tell whether the
simulation is real or fake.
9Interactive and Zero Knowledge Proofs
How do you know you have a Zero Knowledge proof?
The verifier can produce a simulation of the
transactions even if the prover does not know the
fact to be proved. The simulation can be handed
to a third party who cannot tell whether the
simulation is real or fake. How can the
verifier do that?
10Interactive and Zero Knowledge Proofs
How do you know you have a Zero Knowledge proof?
The verifier can produce a simulation of the
transactions even if the prover does not know the
fact to be proved. The simulation can be handed
to a third party who cannot tell whether the
simulation is real or fake. How can the
verifier do that? The verifier video tapes the
transactions and throws out any bad frames and
presto the rest looks to anyone like a
transaction proving the fact.
11Interactive and Zero Knowledge Proofs
A Round - a commitment message from the prover,
a challenge from the verifier,
a response to the challenge from
the prover.
12Interactive and Zero Knowledge Proofs
A Round - a commitment message from the prover,
a challenge from the verifier,
a response to the challenge from
the prover. The protocol may repeat for several
rounds. Based on the prover's responses in all
the rounds, the verifier decides whether to
accept or reject the proof.
13Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Q
R
S
14Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Q
R
S
Initially Prover and Verifier at the
mouth of the cave. Neither can see deep into
the cave. From Q a player cannot see either R or
S.
15Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Q
R
S
Initially Prover and Verifier at the
mouth of the cave. Neither can see deep into
the cave. From Q a player cannot see either R or
S. Prover proves it knows the secret words that
will open the door at green line, deep inside
the cave, but without telling what they are.
16Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Q
R
S
Round Prover's commitment is to visit R or S
while verifier waits at P
17Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Exit at R!!
Q
R
S
Round Prover's commitment is to visit R or S
while verifier waits at P Verifier's challenge
is to walk to Q and ask prover to exit at R or S
18Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Q
R
S
Round Prover's commitment is to visit R or S
while verifier waits at P Verifier's challenge
is to walk to Q and ask prover to exit at R or S
Prover's response is to do as verifier says
19Interactive and Zero Knowledge Proofs
Example Ali Baba's Cave
P
Q
R
S
Round Prover's commitment is to visit R or S
while verifier waits at P Verifier's challenge
is to walk to Q and ask prover to exit at R or S
Prover's response is to do as verifier says Many
Rounds certain prover does not know or pretty
sure it does
20Interactive and Zero Knowledge Proofs
How do we know it is a zero-knowledge proof?
21Interactive and Zero Knowledge Proofs
How do we know it is a zero-knowledge proof?
The proof can be performed efficiently by a
simulator that has no idea of what the proof is.
22Interactive and Zero Knowledge Proofs
How do we know it is a zero-knowledge proof?
The proof can be performed efficiently by a
simulator that has no idea of what the proof is.
The verifier video tapes the movements of the
prover and the verifier assuming the prover does
not know the secret words.
23Interactive and Zero Knowledge Proofs
How do we know it is a zero-knowledge proof?
The proof can be performed efficiently by a
simulator that has no idea of what the proof is.
The verifier video tapes the movements of the
prover and the verifier assuming the prover does
not know the secret words. Some of the rounds
show the prover unable to find the correct exit.
Those rounds are deleted from the video tape.
24Interactive and Zero Knowledge Proofs
How do we know it is a zero-knowledge proof?
The proof can be performed efficiently by a
simulator that has no idea of what the proof is.
The verifier video tapes the movements of the
prover and the verifier assuming the prover does
not know the secret words. Some of the rounds
show the prover unable to find the correct exit.
Those rounds are deleted from the video tape.
The result is a sequence of rounds that appear
to show the prover does know the secret words.
25Interactive and Zero Knowledge Proofs
How do we know it is a zero-knowledge proof?
The proof can be performed efficiently by a
simulator that has no idea of what the proof is.
The verifier video tapes the movements of the
prover and the verifier assuming the prover does
not know the secret words. Some of the rounds
show the prover unable to find the correct exit.
Those rounds are deleted from the video tape.
The result is a sequence of rounds that appear
to show the prover does know the secret words.
Hence no knowledge can be extracted from the
video tape. There is no knowledge in the
recording of the original protocol.
26Graph Isomorphism Zero Knowledge Proofs
27Graph Isomorphism Zero Knowledge Proofs
2
1
4
1
3
5
5
3
2
4
28Graph Isomorphism Zero Knowledge Proofs
2
1
4
1
3
5
5
3
2
4
It is really hard to determine whether two graphs
are isomorphic
29Graph Isomorphism Zero Knowledge Proofs
2
1
4
1
3
5
5
3
2
4
It is really hard to determine whether two graphs
are isomorphic But, if someone hands you a vertex
mapping, it is easy to check!!!
30Graph Isomorphism - Zero Knowledge Proof
Prover
Verifier
31Graph Isomorphism - Zero Knowledge Proof
Prover
Verifier
Generate two isomorphic graphs G0 and G1 of n
vertices. Publish graphs.
32Graph Isomorphism - Zero Knowledge Proof
Prover
Verifier
?
H?(Ge )
Protocol Prover Generate 2nd perm ?,
compute H?(Ge )
, select e ?0,1
33Graph Isomorphism - Zero Knowledge Proof
Prover
Verifier
?
e'
H
H
Protocol Prover Generate 2nd perm ?,
compute H?(Ge ), select e ?0,1 Verifier
Select e' ?0,1, ask prover to prove H
isomorphic to Ge'
34Graph Isomorphism - Zero Knowledge Proof
Prover
Verifier
?
?
H
H
Protocol Prover Generate 2nd perm ?,
compute H?(Ge ), select e ?0,1 Verifier
Select e' ?0,1, ask prover to prove H
isomorphic to Ge' Prover Compute ?
? if e' e ??-1 if e' 1 and e
0 ?? if e' 0 and e 1
35Graph Isomorphism - Zero Knowledge Proof
Prover
Verifier
?
?
H
H
Verifier Checks ?(Ge' ) H
Protocol Prover Generate 2nd perm ?,
compute H?(Ge ), select e ?0,1 Verifier
Select e' ?0,1, ask to prove H isomorphic to
Ge' Prover Compute ?
? if e' e ??-1 if e' 1 and e
0 ?? if e' 0 and e 1
36Graph Isomorphism - Zero Knowledge Proof
Impersonator
Verifier
H
H
Protocol Impersonator Generate ?, compute
H?(Ge ), select e ?0,1
37Graph Isomorphism - Zero Knowledge Proof
Impersonator
Verifier
e'
H
Protocol Impersonator Generate ?, compute
H?(Ge ), select e ?0,1 Verifier Select e'
?0,1, ask to prove H isomorphic to Ge'
38Graph Isomorphism - Zero Knowledge Proof
Impersonator
Verifier
???
H
Protocol Impersonator Generate ?, compute
H?(Ge ), select e ?0,1 Verifier Select e'
?0,1, ask to prove H isomorphic to Ge'
Impersonator Cannot compute ? if e' ? e, does
not know ?
39Graph Isomorphism - Zero Knowledge Proof
Impersonator
Verifier
???
H
Protocol Impersonator Generate ?, compute
H?(Ge ), select e ?0,1 Verifier Select e'
?0,1, ask to prove H isomorphic to Ge'
Impersonator Cannot compute ? if e' ? e, does
not know ? could have
seen a previous ? sent by the prover
but with probability 1/2 it would
be the wrong one
40Fiat-Shamir Zero Knowledge Proof
Based on difficulty of computing square roots mod
a composite n
41Fiat-Shamir Zero Knowledge Proof
Based on difficulty of computing square roots mod
a composite n Given two large primes p, q and
npq, computing ?x mod n is very
hard without knowing p, q
42Fiat-Shamir Zero Knowledge Proof
Based on difficulty of computing square roots mod
a composite n Given two large primes p, q and
npq, computing ?x mod n is very
hard without knowing p, q But there exist
efficient algorithms for computing square roots
modulo a prime number, and therefore ?x
mod n can be computed efficiently if p
and q are known
43Fiat-Shamir Zero Knowledge Proof
Prover
Trusted Party
44Fiat-Shamir Zero Knowledge Proof
Prover
Trusted Party
n
q
p
n pq
45Fiat-Shamir Zero Knowledge Proof
Prover
Trusted Party
n
q
S
V
p
n pq
1 gcd(n, S) V SS mod n
46Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
S
V
47Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
rr mod n
S
V
Prover chooses random r, sends rr mod n
48Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
e ? 1,0
S
V
Prover chooses random r, sends rr mod n Verifier
chooses 1 or 0 and sends it to prover
49Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
a rS e mod n
S
V
Prover chooses random r, sends rr mod n Verifier
chooses 1 or 0 and sends it to prover Prover
sends rS e mod n to verifier
50Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
a rS e mod n
S
V
Prover chooses random r, sends rr mod n Verifier
chooses 1 or 0 and sends it to prover Prover
sends rS e mod n to verifier
Verifier checks aa against V err mod n
51Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
a rS e mod n
S
V
Either ar mod n if e0 or rS mod n if e1 V
err mod n rr mod n if e0 or SSrr mod n
if e1
Verifier checks aa against V err mod n If
prover knows S, then verifier's test always
succeeds Otherwise it fails half the time
52Feige-Fiat-Shamir Zero Knowledge Proof
Based on difficulty of computing square roots mod
a composite n Given two large primes p, q and
npq, computing ?x mod n is very
hard without knowing p, q But there exist
efficient algorithms for computing square roots
modulo a prime number, and therefore ?x
mod n can be computed efficiently if p
and q are known
53Feige-Fiat-Shamir Zero Knowledge Proof
Prover
Verifier
54Feige-Fiat-Shamir Zero Knowledge Proof
p, q, S npq VSS mod n
Prover
Verifier
55Feige-Fiat-Shamir Zero Knowledge Proof
p, q, S npq VSS mod n
Prover
Verifier
x rr mod n
Protocol Prover Generate random r, send x
rr mod n
56Feige-Fiat-Shamir Zero Knowledge Proof
p, q, S npq VSS mod n
Prover
Verifier
e
Protocol Prover Generate random r, send x
rr mod n Verifier Select e ?0,1, ask to
prove it knows ?x mod n
57Feige-Fiat-Shamir Zero Knowledge Proof
p, q, S npq VSS mod n
Prover
Verifier
y
Protocol Prover Generate random r, send x
rr mod n Verifier Select e ?0,1, ask to
prove it knows ?x mod n Prover Send y rS e
mod n
58Feige-Fiat-Shamir Zero Knowledge Proof
p, q, S npq VSS mod n
Prover
Verifier
Protocol Prover Generate random r, send x
rr mod n Verifier Select e ?0,1, ask to
prove it knows ?x mod n Prover Send y rS e
mod n Verifier Checks y y xV e mod n
59Parallel Zero Knowledge Protocols
Prover
Verifier
c(1), c(2),...,c(m)
Send m commitments in one message
60Parallel Zero Knowledge Protocols
Prover
Verifier
c(1), c(2),...,c(m)
Send m commitments in one message But cannot
simulate!!! Cannot edit the Tape!!!
61Parallel Zero Knowledge Protocols
Prover
Verifier
c(1), c(2),...,c(m)
Send m commitments in one message But cannot
simulate!!! Cannot edit the Tape!!! Are we
screwed???
62Security Problems
Prover
Verifier
public key
Attacker
63Security Problems
Prover
Verifier
public key
Trust Center with Key Dictionary
64Security Problems
Even better need use trust center only for key
generation Trust Center does the following one
time Generates primes p, q, and computes
npq Publishes n, keeps p, q secret
Defines and publishes a one-way hash function
f A Prover visits the Trust Center for a
Zero-Knowledge ID
65Security Problems
At the Trust Center
f
Prover's public key v
Prover's ID info
66Security Problems
At the Trust Center
f
Prover's public key v
Prover's ID info
Prover's private key s ?v mod n
67Security Problems
At the Trust Center
f
Prover's public key v
Prover's ID info
Prover's private key s ?v mod n
Prover's Certified Data
Prover's ID info
68Security Problems
At the Verifier
f
Prover's public key v
Prover's ID info
Then run the Zero-Knowledge Authentication Scheme