
CUUS063 main CUUS063 Goldreich 978 0 521 88473 0 March 31, 2008 18:49
9.2. ZERO-KNOWLEDGE PROOF SYSTEMS
zero-knowledge can be used to prove membership in any NP-set. Intuitively, it suffices
to establish this fact for a single NP-complete set, and thus we focus on presenting a
zero-knowledge proof system for the set of 3-colorable graphs.
It is easy to prove that a given graph G is 3-colorable by just presenting a 3-coloring
of G (and the same holds for membership in any set in NP), but this NP-proof is not
a zero-knowledge proof (unless NP ⊆ BPP ). In fact, assuming NP ⊆ BPP, graph
3-colorability has no zero-knowledge NP-proof system. Still, as we shall shortly see,
graph 3-colorability does have a zero-knowledge interactive proof system. This proof
system will be described while referring to “boxes” in which information can be hidden
and later revealed. Such boxes can be implemented using one-way functions (see, e.g.,
Theorem 9.11).
Construction 9.10 (Zero-knowledge proof of 3-colorability, abstract description):
The description refers to abstract non-transparent boxes that can be perfectly locked
and unlocked such that these boxes perfectly hide their contents while being locked.
• Common Input: A simple graph G =(V, E).
• Prover’s first step: Let ψ be a 3-coloring of G. The prover selects a random
permutation, π , over {1, 2, 3}, and sets φ(v)
def
= π (ψ(v)), for each v ∈ V . Hence,
the prover forms a random relabeling of the 3-coloring ψ. The prover sends to
the verifier a sequence of |V | locked and non-transparent boxes such that the v
th
box contains the value φ(v).
• Verifier’s first step: The verifier uniformly selects an edge {u,v}∈E, and sends
it to the prover.
• Motivating Remark: The boxes are supposed to contain a 3-coloring of the graph,
and the verifier asks to inspect the colors of vertices u and v. Indeed, for the
zero-knowledge condition, it is crucial that the prover only responds to pairs that
correspond to edges of the graph.
• Prover’s second step: Upon receiving an edge {u,v}∈E, the prover sends to the
verifier the keys to boxes u and v.
For simplicity of the analysis, if the verifier sends {u,v} ∈ E then the prover
behaves as if it has received a fixed (or random) edge in E, rather than suspending
the interaction, which would have been the natural thing to do.
• Verifier’s second step: The verifier unlocks and opens boxes u and v, and accepts
if and only if they contain two different elements in {1, 2, 3}.
The verifier strategy in Construction 9.10 is easily implemented in probabilistic polyno-
mial time. The same holds with respect to the prover’s strategy, provided that it is given
a 3-coloring of G as auxiliary input. Clearly, if the input graph is 3-colorable then the
verifier accepts with probability 1 when interacting with the prescribed prover. On the
other hand, if the input graph is not 3-colorable, then any contents put in the boxes must
be invalid with respect to at least one edge, and consequently the verifier will reject with
probability at least
1
|E|
. Hence, the foregoing protocol exhibits a non-negligible gap in
the accepting probabilities between the case of 3-colorable graphs and the case of non-
3-colorable graphs. To increase the gap, the protocol may be repeated sufficiently many
times (of course, using independent coin tosses in each repetition).
So far we showed that Construction 9.10 constitutes (a weak form of) an interactive
proof system for Graph 3-Colorability. The point, however, is that the prescribed prover
375