The Knowledge Complexity of Interactive Proof-Systems

About this paperTiếng Việt中文日本語beside Tiếng Việtbeside 中文beside 日本語

This paper is under a licence that does not allow it to be reproduced, so what is here is its front matter and a short abstract. Read it at the publisher's page.

Shafi Goldwasser†, Silvio Micali†, and Charles Rackoff‡

Abstract. Usually, a proof of a theorem contains more knowledge than the mere fact that the theorem is true. For instance, to prove that a graph is Hamiltonian it suffices to exhibit a Hamiltonian tour in it; however, this seems to contain more knowledge than the single bit Hamiltonian/non-Hamiltonian.

In this paper a computational complexity theory of the "knowledge" contained in a proof is developed. Zero-knowledge proofs are defined as those proofs that convey no additional knowledge other than the correctness of the proposition in question. Examples of zero-knowledge proof systems are given for the languages of quadratic residuosity and quadratic nonresiduosity. These are the first examples of zero-knowledge proofs for languages not known to be efficiently recognizable.

Key words. cryptography, zero knowledge, interactive proofs, quadratic residues

AMS(MOS) subject classifications. 68Q15, 94A60

  1. Introduction. It is often regarded that saying a language LL is in NP (that is, acceptable in nondeterministic polynomial time) is equivalent to saying that there is a polynomial time "proof system" for LL. The proof system we have in mind is one where on input xx, a "prover" creates a string α\alpha, and the "verifier" then computes on xx and α\alpha in time polynomial in the length of the binary representation of xx to check that xx is indeed in LL. It is reasonable to ask if there is a more general, and perhaps more natural, notion of a polynomial time proof system. This paper proposes one such notion.

We will still allow the verifier only polynomial time and the prover arbitrary computing power, but will now allow both parties to flip unbiased coins. The result is a probabilistic version of NP, where a small probability of error is allowed. However, to obtain what appears to be the full generality of this idea, we must also allow the prover and verifier to interact (i.e., to talk back and forth) and to keep secret their coin tosses. We call these proof systems "interactive proof systems." This notion is formally defined in § 2, where we also define what it means for a language to have an interactive proof system.

It is far from clear how to use this power of interaction. Languages with nondeterministic polynomial time algorithms or with probabilistic polynomial time algorithms have proof systems with little or no interaction. We would therefore like examples of languages that appear to have neither nondeterministic nor probabilistic polynomial time algorithms, and yet have interactive proof systems. Although we do not present any such examples here, there are now examples in the literature. Using ideas from an initial version of this paper [GMR] Goldreich, Micali, and Wigderson [GMW] have shown that the "graph nonisomorphism" language has an interactive

* Received by the editors August 26, 1985; accepted for publication (in revised form) April 18, 1988. A preliminary version of this paper appeared in the Proceedings of the 27th Annual IEEE Symposium on Foundations of Computer Science, 1986, pp. 174-187. Editor's Note. This paper was originally scheduled to appear in the February 1988 Special Issue on Cryptography (SIAM J. Comput., 17 (1988)). † Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts 02139. The work of these authors was supported by National Science Foundation grants DCR-84-13577 and DCR-85-09905. ‡ Computer Science Department, University of Toronto, Toronto, QNT M5S 1A4 Canada. The work of this author was supported by the Natural Sciences and Engineering Research Council of Canada under grant A3611.

proof system. Independently of this paper, Babai and Szemeredi [BS] show that certain matrix group problems have what they call “Arthur–Merlin” proof systems, which immediately implies that they have interactive proof systems. In fact, the notion of an Arthur–Merlin proof system consists of a restricted interactive proof system in which the prover sees the coin flips of the verifier. Nevertheless, Goldwasser and Sipser [GS] have shown that a language has an interactive proof system if and only if it has an Arthur–Merlin proof system.

It appears, however, that our notion of interactive proof systems generalizes in the right way to attack a novel problem. The main purpose of this current paper, in fact, is to use interactive proof systems to investigate a natural question; how much knowledge is transmitted to the verifier in an interactive proof system for LL? For example, consider SAT, the NP-complete language of satisfiable sentences of the propositional calculus. In the obvious proof system, to prove F∈SATF \in \mathrm{SAT}, the prover gives a satisfying assignment II for the formula FF, which the verifier then checks in polynomial time. This assignment gives the verifier much more knowledge than merely the fact that F∈SATF \in \mathrm{SAT}; it also gives a satisfying assignment. At the other extreme, every language that can be accepted in probabilistic polynomial time has a proof system in which the prover does nothing, and hence gives no knowledge to the verifier.

We say an interactive proof system for LL is zero-knowledge if for each x∈Lx \in L, the prover tells the verifier essentially nothing, other than that x∈Lx \in L; this should be the case even if the verifier chooses not to follow the proof system but instead tries (in polynomial time) to trick the prover into revealing something. The notion of zero-knowledge is formally defined in § 3. This definition is an important contribution of this paper.

The main technical contributions of this paper are the proofs in §§ 5 and 6 that the languages QR and QNR (defined below) both have zero-knowledge interactive proof systems. These are the first zero-knowledge protocols demonstrated for languages not known to be recognizable in probabilistic polynomial time. To understand the languages QR and QNR, it helps to read the (brief) number theory background given in § 4. However, for now, let x,yx, y be integers, 0<y<x0 < y < x, such that gcd⁡(x,y)=1\gcd(x, y) = 1; we say that yy is a quadratic residue mod xx if y=z2mod  xy = z^2 \mod x for some zz; if not, we say that yy is a quadratic nonresidue mod xx. We define

QR={(x,y)∣y is a quadratic residue mod x},andQNR={(x,y)∣y is a quadratic nonresidue mod x}.\begin{align*} \mathrm{QR} &= \{(x, y) | y \text{ is a quadratic residue mod } x\}, \quad \text{and} \\ \mathrm{QNR} &= \{(x, y) | y \text{ is a quadratic nonresidue mod } x\}. \end{align*}

(Actually, QNR will be defined slightly differently in § 4.) Both QR and QNR are in NP, and thus possess an elementary proof system. For instance, to prove membership in QNR, the prover just sends xx's factorization. But looking ahead to zero-knowledge proof systems, let us discuss a more interesting example of a proof system for QNR.

Example 1. Let us call the prover AA and the verifier BB. Say that the input is (x,y)(x, y). Let n=∣x∣n = |x|, where ∣x∣|x| is the length of the binary representation of xx. We will now describe (omitting some details) an interactive proof system for QNR. BB begins by flipping coins to obtain random bits b1,b2,…,bnb_1, b_2, \ldots, b_n. BB then flips additional coins to obtain a string α\alpha, from which BB computes z1,z2,…,znz_1, z_2, \ldots, z_n such that each ziz_i is a random z,0<z<x,gcd⁡(x,z)=1z, 0 < z < x, \gcd(x, z) = 1. BB then computes w1,w2,…,wnw_1, w_2, \ldots, w_n as follows: for each ii, if bi=0b_i = 0 then wi=zi2mod  xw_i = z_i^2 \mod x; if bi=1b_i = 1 then wi=(zi2y)mod  xw_i = (z_i^2 y) \mod x. BB then sends w1,w2,…,wnw_1, w_2, \ldots, w_n to AA. For each ii, AA computes (somehow) whether or not wiw_i is a quadratic residue mod xx, and sends BB a sequence of bits c1,c2,…,cnc_1, c_2, \ldots, c_n, where ci=0c_i = 0 if and only if wiw_i is a quadratic residue mod xx. BB checks if bi=cib_i = c_i for every ii, and if so is “convinced” that (x,y)∈QNR(x, y) \in \mathrm{QNR}.

It is not hard to see that if (x,y)∈QNR(x, y) \in \mathrm{QNR} and both parties follow the protocol, then BB will become "convinced." On the other hand, if yy is a quadratic residue mod xx, then so is each wiw_i, and every value for wiw_i is equally likely; since AA does not see the sequence {bi}\{b_i\}, the probability that every ci=bic_i = b_i (and hence that BB will be convinced) is 2−n2^{-n}. So this is an interactive proof system for QNR. Let us now address the question of how much knowledge AA may release.

It is an interesting question how zero-knowledge should be defined. If the prover is trying to prove to the verifier that yy is a quadratic residue mod xx, then certainly the verifier should not be able to trick the prover into revealing a square root of yy mod xx, or the factorization of xx, or any information which would help the verifier to compute these things much faster than before. In fact, the prover should not reveal anything which would help the verifier compute anything much faster than before. The way to state this formally seems to be that what the verifier sees in the protocol (even if he cheats) should be something which the verifier could have computed for himself, merely from the fact that (x,y)∈QNR(x, y) \in \mathrm{QNR}. Of course, what the verifier sees in the protocol is really a probability distribution. Thus, zero-knowledge means that one can compute in polynomial time, from (x,y)∈QNR(x, y) \in \mathrm{QNR}, without a prover, the same (or almost the same) probability distribution that the verifier would see with the prover. This is defined formally in § 3. Here, let us informally discuss whether the above interactive proof system for QNR is zero-knowledge.

Consider a pair (x,y)∈QNR(x, y) \in \mathrm{QNR}, and say that AA follows the protocol. Can BB obtain any additional knowledge? For the moment, assume that BB follows the protocol. BB "sees" [{bi},α,{wi},{ci}][\{b_i\}, \alpha, \{w_i\}, \{c_i\}] distributed according to a particular distribution. Without any help from a prover, we can quickly generate a random string according to this distribution: just choose {bi}\{b_i\} and α\alpha randomly, and then compute {wi}\{w_i\} from them; then compute ci=bic_i = b_i for each ii.

Now what if BB were to cheat? BB could begin by setting w1=42w_1 = 42, and then behave correctly. Consider now the induced distribution on [{bi},α,{wi},{ci}][\{b_i\}, \alpha, \{w_i\}, \{c_i\}]; in order to compute a random member of it (without help from a prover), we must compute whether or not 42 is a quadratic residue xx, given xx and a quadratic nonresidue yy. At this time it is not known how to compute this in polynomial time, so this proof system may not be zero-knowledge.

A zero-knowledge proof system for QNR is given in § 6. The ideas of this proof system partially come from the secret exchanging protocol of Luby, Micali, and Rackoff [LMR] and are useful there as well. They have also proved useful in the oblivious transfer protocol of Fischer, Micali, Rackoff, and Witenberg [FMRW] and for the identification scheme of Feige, Fiat, and Shamir [FFS]. These ideas have also helped Goldreich, Micali, and Wigderson [GMW] to show that the languages of "graph isomorphism" and "graph nonisomorphism" have zero-knowledge interactive proof systems.

Although we find the idea of a zero-knowledge interactive proof system fascinating in itself, the main motivation for it and the main applications of it are in the area of cryptographic protocols. For example, in the secret exchanging protocol in [LMR], one person wishes to exchange a secret with another without giving away any additional knowledge. Ideas similar to those here must be used to even define this concept.

More generally, however, it often arises at some point in a protocol that AA wishes to convince BB of some fact. Say that we know that the protocol would be secure if at this point an angel or someone BB trusted were to tell BB (truthfully) if AA is telling the truth. We want the notion of zero-knowledge to be such that an appropriate zero-knowledge interactive proof system could be inserted at this point instead of the trusted party, and the whole protocol would remain secure. (Of course, AA would have to possess some additional information enabling her to implement the part of the prover efficiently.) In particular instances, we can prove that such substitution works, but a general framework for discussing protocols must exist before the general theorem can even be stated. However, based on intuition and experience, the authors (and many others who have studied these ideas since their initial appearance) believe that the definition of zero-knowledge proposed here has the required properties.

The most important development since these results first appeared is the proof by Goldreich, Micali, and Wigderson [GMW] that, subject to a common complexity theory assumption, every language in NP has a zero-knowledge interactive proof system. These proof systems for NP languages appear to have applications in just about every protocol problem. It is almost certain that these results will vastly simplify distributed cryptographic protocol design in the future, as demonstrated by the powerful results of [GMW2].

2. Interactive proof systems. Intuitively, what should we require from an efficient theorem-proving procedure? (1) That it should be possible to "prove" a true theorem. (2) That it should not be possible to "prove" a false theorem. (3) That communicating the "proof" should be efficient. Namely, regardless of how much time it takes to come up with the proof, its correctness should be efficiently verified.

The NP formalization of the concept of an efficient proof system captures one way of communicating a proof. In this section, we will generalize the NP proof system to capture a more general way of communicating a proof. The verifier will be a probabilistic polynomial time (in the length of the common input) machine that is able to exchange messages (strings) with the prover.

At the same time that we introduce probability into the proof system, we relax the classical notion of a "proof." Our verifier may erroneously be convinced of the truth of a proposition with a very small probability of error (less than n−kn^{-k} for each positive constant kk and all sufficiently large input-sizes nn).

We proceed to formally define the new system.

2.1. Interactive Turing machines and protocols.

Definition. An interactive Turing machine (ITM) is a Turing machine equipped with a read-only input tape, a work tape, a random tape, one read-only communication tape, and one write-only communication tape. The random tape contains an infinite sequence of random bits, and can be scanned only from left to right. We say that an interactive machine flips a coin, meaning that it reads the next bit in its own random tape.

Figure.

Fig. 1. An interactive protocol. — denotes a read/write head, RR a read-only head, WW a write-only head.

Definition. An interactive protocol is an ordered pair of ITM's AA and BB such that AA and BB share the same input tape, BB's write-only communication tape is AA's read-only communication tape and vice versa. Machine AA is not computationally bounded, while machine BB's computation time is bounded by a polynomial in the length of the common input. The two machines take turns in being active, with BB being active first. During an active stage machine A(B)A(B) first performs some internal computation using its input tape, work tapes, communication tape and random tape; and, second, it writes a string (for B(A)B(A)) on its write-only communication tape. The iith message of A(B)A(B) is the entire string that A(B)A(B) writes on its communication tape during its iith active stage. As soon as machine A(B)A(B) writes its message, it is deactivated and machine B(A)B(A) becomes active, unless the protocol has been terminated. Either machine can terminate the computation of the protocol by not sending any message in an active stage. Machine BB accepts (or rejects) the input by outputting accept (or reject) and terminating the protocol. The computation time of machine BB is the sum of the BB's computation time during its active stages, and it is this time that is bounded by a polynomial in the length of the input, denoted ∣x∣|x|.

2.2. Interactive proof systems.

Definition. Let LL be a language over {0,1}∗\{0, 1\}^*. Let (A,B)(A, B) be an interactive protocol. We say that (A,B)(A, B) is an interactive proof system for LL if we have the following:

(1) For each kk, for sufficiently large xx in LL given as input to (A,B)(A, B), BB halts and accepts with probability at least 1−∣x∣−k1 - |x|^{-k}. (The probabilities here are taken over the coin tosses of AA and BB.)

(2) For each kk, for sufficiently large xx not in LL, for any ITM A′A', on input xx to (A′,B)(A', B), BB accepts with probability at most ∣x∣−k|x|^{-k}. (The probabilities here are taken over the coin tosses of A′A' and BB.)

Remark 1. The above probability of error can be decreased, say to smaller than 2−∣x∣2^{-|x|}, by the standard technique of repeating the protocol many times and choosing to accept by majority vote.

We now argue that this definition captures what we intuitively want from an efficient proof system. Condition (1) essentially says that, if x∈Lx \in L, BB will accept with overwhelming probability. Condition (2) says that, if xx is not in LL, there exists no strategy that succeeds with nonnegligible probability for convincing BB to accept. In fact, BB needs not to trust (or know the program of) the machine with which it is interacting. It is enough for BB to trust the randomness of its own coin tosses.

Similar to the NP proof system, note that the definition of an interactive proof system for a language emphasizes the "yes-instances": when a string is in the language, BB must be led to acceptance with high probability, but when a string is not in the language AA is not required to convince BB of the contrary.

A more general version of the above definition is where AA is not a Turing machine, but an infinite state machine. However it has been shown by Feldman in [F] that this adds no extra power to the model. In fact, he shows that with respect to language recognition it is sufficient for AA to be a deterministic PSPACE machine. The fact that AA is probabilistic is of importance to the more subtle definition of zero-knowledge, which is given in the next section.

We define IP, Interactive Polynomial time, to be the class of languages for which there exists interactive proof systems.

The first examples of a language in IP but not known to be in NP have been exhibited by Babai and Szemeredi [BS]. Their examples are "matrix group nonmembership" and "matrix group order," where the matrix groups over finite fields are represented by a list of generator matrices. The other, more well-known example of “graph nonisomorphism” is due to Goldreich, Micali, and Wigderson [GMW]. They have shown that the language of pairs of graphs that are nonisomorphic to each other is in IP.

2.3. Arthur–Merlin games. Babai independently conceived the notion of an “Arthur–Merlin Game,” an interactive proof system in which Merlin plays the role of AA and Arthur that of BB. The interaction, though, is less “liberal” than in our model since Merlin sees all the coin tosses of Arthur. A message from Arthur to Merlin can only consist of a randomly selected string. In an interactive proof system, instead, the verifier is allowed, given a polynomial time computable function ff, to secretly select a random string RR and transmit only f(R)f(R) to the prover (as in the interactive proof system for QNR of Example 1).

This restriction immediately implies that the languages recognized by an Arthur–Merlin game are a subset of those having an interactive proof system. Interestingly, Goldwasser and Sipser [GS] show that they are not a proper subset. However, there is value in having both definitions around. It is easier to design protocols using the interactive proof systems definition, and it is easier to prove complexity results using the Arthur–Merlin definition.

Though the ability to make secret random choices does not help us to recognize more languages, we believe that it is crucial for recognizing languages in zero-knowledge. We make precise this belief in the conjecture of § 3.7.

An Arthur–Merlin type of interactive proof system was already implicitly used in a paper by Blum [B1]. He showed an interactive protocol for recognizing the language of the Blum integers:

BL={n∣pα divides n and pα+1 does not, where p≡3 mod 4 is prime and α is odd}.\mathrm{BL} = \{ n \mid p^{\alpha} \text{ divides } n \text{ and } p^{\alpha+1} \text{ does not, where } p \equiv 3 \bmod 4 \text{ is prime and } \alpha \text{ is odd} \}.

The prover’s goal was to demonstrate membership in BL without having to send nn's prime factorization. In this proof system, the verifier talks only once and his message consists of sending the sequence of his coin tosses. Protocols of this type were also found by Goldwasser and Micali [GM1] to prove, without releasing the prime factorization membership in the languages:

GM1={n∣n has exactly two distinct prime divisors} and \mathrm{GM1} = \{ n \mid n \text{ has exactly two distinct prime divisors} \} \text{ and }
GM2={(x,n)∣gcd⁡(x,ϕ(n))=1}where ϕ(n) is the number of positive integers smaller and relatively prime to n.\mathrm{GM2} = \{ (x, n) \mid \gcd(x, \phi(n)) = 1 \} \quad \text{where } \phi(n) \text{ is the number of positive integers smaller and relatively prime to } n.
  1. Zero-knowledge. Rather than giving the definition of zero-knowledge only for interactive proof systems, we will give a more general definition. We will define what it means for any interactive protocol (A,B)(A, B) to be zero-knowledge for a language LL, whether or not (A,B)(A, B) is a proof system for LL. Actually the definition will not depend on BB at all; as we shall see, it says that for every polynomial time B′B', the distribution that B′B' “sees” on all its tapes, when interacting with AA on input x∈Lx \in L, is “indistinguishable” from a distribution that can be computed from xx in polynomial time. We thus first focus on the notion of indistinguishability for random variables.

3.1. Indistinguishability of random variables. Throughout this paper, we will only consider families of random variables U={U(x)}U = \{ U(x) \} where the parameter xx is from a language LL, a particular subset of {0,1}∗\{0, 1\}^*, and all random variables take values in {0,1}∗\{0, 1\}^*. Let U={U(x)}U = \{ U(x) \} and V={V(x)}V = \{ V(x) \} be two families of random variables. We want to express the fact that, when the length of xx increases, U(x)U(x) essentially becomes “replaceable” by V(x)V(x). To do this, we consider the following framework.

A random sample is selected either from U(x)U(x) or from V(x)V(x) and it is handed to a “judge.” After studying the sample, the judge will proclaim his verdict: 0 or 1. (We may interpret 0 as the judge’s decision that the sample came from U(x)U(x); 1 as the decision that the sample came from V(x)V(x).) It is then natural to say that U(x)U(x) becomes “replaceable” by V(x)V(x) for xx long enough if, when xx increases, the verdict of any judge becomes “meaningless,” that is, essentially uncorrelated to the distribution from which the sample came.

There are two relevant parameters in this framework: the size of the sample and the amount of time the judge is given to produce his verdict. By bounding these two parameters in different ways we obtain different notions of indistinguishability for random variables. We focus on the three notions we believe to be the most important: equality, statistical indistinguishability, and computational indistinguishability. Roughly speaking, these notions correspond to the following restrictions on the relevant parameters. If the two families of random variables {U(x)}\{U(x)\} and {V(x)}\{V(x)\} are equal, then the judge’s verdict will be meaningless even if he is given samples of arbitrary size and he can study them for an arbitrary amount of time. We will define the two families to be statistically indistinguishable if the judge’s verdict becomes meaningless when he is given an infinite amount of time but only random, polynomial (in ∣x∣|x|) size samples to work on. We will define the two families to be computationally indistinguishable if the judge’s verdict becomes meaningless when he is only given polynomial (∣x∣|x|)-size samples and polynomial (∣x∣|x|) time. Let us now proceed to formalize these notions.

Definition (Statistical indistinguishability). Let L⊂{0,1}∗L \subset \{0, 1\}^* be a language. Two families of random variables {U(x)}\{U(x)\} and {V(x)}\{V(x)\} are statistically indistinguishable on LL if

∑α∈{0,1}∗∣prob⁡(U(x)=α)−prob⁡(V(x)=α)∣<∣x∣−c\sum_{\alpha \in \{0, 1\}^*} |\operatorname{prob}(U(x) = \alpha) - \operatorname{prob}(V(x) = \alpha)| < |x|^{-c}

for all constants c>0c > 0 and all sufficiently long x∈Lx \in L.

Notice that, for UU and VV as above, if a “judge” is handed a polynomial (in ∣x∣|x|) size sample, having infinite computing power will not help him to decide whether it came from U(x)U(x) or V(x)V(x). His answer will be essentially useless, as he will say “1” with essentially the same probability in both cases.

Example 2. Let U(x)U(x) assign equal probability to all strings of length ∣x∣|x|, and let V(x)V(x) assign probability 2−∣x∣2^{-|x|} to all strings of length ∣x∣|x|, except for 0x∣0^{x|}, which is given probability 0 and for 1−∣x∣1^{-|x|}, which is given probability 2−∣x∣+12^{-|x|+1}. Then {U(x)}\{U(x)\} and {V(x)}\{V(x)\} are two families of random variables statistically indistinguishable on {0,1}∗\{0, 1\}^*.

To formalize the notion of computational indistinguishability we make use of nonuniformity (the reasons for this choice can be found in § 3.4). Thus, our “judge,” rather than being a polynomial time Turing machine, will be a poly-size family of circuits. That is a family C={Cx}C = \{C_x\} of Boolean circuits CxC_x with one Boolean output such that, for some constant e>0e > 0, all Cx∈CC_x \in C have at most ∣x∣e|x|^e gates. In order to feed samples from our probability distributions to such circuits, we will consider only poly-bounded families of random variables, that is, families U={U(x)}U = \{U(x)\} such that, for some constant d>0d > 0, all random variable U(x)∈UU(x) \in U assigns positive probability only to strings whose lengths are exactly ∣x∣d|x|^d. If U={U(x)}U = \{U(x)\} is a poly-bounded family of random variables and C={Cx}C = \{C_x\} a poly-size family of circuits, we denote by P(U,C,x)P(U, C, x) the probability that CxC_x outputs 1 on input a random string distributed according to U(x)U(x). (Here we assume that strings assigned positive probability by U(x)U(x) have lengths equal to the number of Boolean inputs of CxC_x.)

Definition (Computational indistinguishability). Let L⊂{0,1}∗L \subset \{0, 1\}^* be a language. Two poly-bounded families of random variables UU and VV are computationally indistinguishable on LL if for all poly-size family of circuits CC, for all constants c>0c > 0 and all sufficiently long strings x∈Lx \in L,

∣P(U,C,x)−P(V,C,x)∣<∣x∣−c.|P(U, C, x) - P(V, C, x)| < |x|^{-c}.

This notion of computational indistinguishability was already used by Goldwasser and Micali [GM] in the context of encryption and by Yao [Y] in the context of pseudorandom generation. It is trivial that if UU and VV are identical, then they are statistically indistinguishable. It is also not hard to see that if UU and VV are statistically indistinguishable, then they are computationally indistinguishable, as follows. Let CxC_x be a circuit and let SS be the set of inputs on which CxC_x outputs 1. Since UU and VV are statistically indistinguishable, the value of U(x)U(x) will be in SS with almost exactly the same probability that the value of V(x)V(x) will be. Hence P(U,C,x)P(U, C, x) will be very close to P(V,C,x)P(V, C, x).

Example 3. Consider a probabilistic encryption algorithm that is secure in the sense of Goldwasser and Micali [GM]; for nn integer, let U(1n)U(1^n) and V(1n)V(1^n) be the random variables taking as values the possible encryptions of 0 and 1, respectively, on security parameter nn. Then UU and VV are computationally indistinguishable on L={1}∗L = \{1\}^*.

We believe that the notion of computational indistinguishability for random variables achieves the right level of generality. Thus we will call indistinguishable any two families of random variables that are computationally indistinguishable.

Remark 2. Let us point out the robustness of the last definition. In this definition, we are handing our computationally bounded "judge" only samples of size 1. This, however, is not restrictive. We note that two families of random variables {Ux}\{U_x\} and {Vx}\{V_x\} are computationally indistinguishable (with respect to samples of size 1) if and only if when CxC_x is given a polynomial in ∣x∣|x| number of input strings, each independently generated according to the distribution UxU_x, then the probability of accepting is close to the probability of accepting when VxV_x is used.

3.2. Approximability of random variables. We now formalize the notion that a random variable UU is essentially easy to generate. That is, there exists an efficient algorithm that randomly outputs strings in a way that is indistinguishable from UU.

Definition. Let MM be a probabilistic Turing machine that on input xx halts with probability 1. We denote by M(x)M(x) the random variable that, for each string α\alpha, takes on α\alpha with exactly the same probability that MM on input xx outputs α\alpha.

Definition. Let L⊂{0,1}∗L \subset \{0, 1\}^* be a language and U={U(x)}U = \{U(x)\} a family of random variables. We say that UU is perfectly approximable on LL if there exists a probabilistic Turing machine MM, running in expected polynomial time, such that for all x∈Lx \in L, M(x)M(x) is equal to U(x)U(x). We say that UU is statistically (computationally) approximable on LL if there exists a probabilistic Turing machine MM, running in expected polynomial time, such that the families of random variables {M(x)}\{M(x)\} and {U(x)}\{U(x)\} are statistically (computationally) indistinguishable on LL.

In what follows, we will use approximability to mean computational approximability. We are now ready to define the notion of zero-knowledge.

3.3. Zero-knowledge protocols and proof systems. We first address the issue of a "cheating verifier," B′B', who is allowed not to follow the protocol.

Definition. Let (A,B)(A, B) be an interactive protocol. Let B′B' be an interactive Turing machine that has as input xx and on an extra input tape HH, where the length of HH is bounded above by a polynomial in the length of xx. (Figure 1 must be emended to allow B′B' this extra tape.) When B′B' interacts with AA, AA sees only xx on its input tape, whereas B′B' sees (x,H)(x, H). A good way to think of HH is as some knowledge about xx that the cheating B′B' already possesses. Alternatively, HH can be considered as the history of previous interactions that the cheating B′B' is trying to use to get knowledge from AA; this is discussed in more detail in the next section. We assume that the total computation time of B′B' when interacting with AA will be bounded above by a polynomial in the length of xx.

For a run of the protocol on common input xx and extra input HH, we define the view of B′B' to be everything that B′B' sees. Namely, let σ\sigma (and ρ\rho) be the strings contained in the random tapes of AA (and B′B'). Say the computation of AA and B′B', with these random choices, consist of nn turns with B′B' going first, where aia_i (and bib_i) are the iith messages of AA (and B′B'), respectively. Then, we say that (ρ,b1,a1,…,bn,an)(\rho, b_1, a_1, \ldots, b_n, a_n) is the view of B′B' on inputs xx and HH, and let ViewA,B′(x,H)\mathrm{View}_{A,B'}(x, H) be the random variable whose value is this view. (Note that it would make no difference if we included in the view the material written by B′B' on its private tape, or excluded the strings that B′B' sends to AA, since these bits can be efficiently computed from the other bits of the view.) For convenience, we consider each view to be a string from {0,1}∗\{0, 1\}^* of length exactly ∣x∣c|x|^c for some fixed c>0c > 0.

Definition. Let L⊂{0,1}∗L \subset \{0, 1\}^* be a language and (A,B)(A, B) a protocol. Let B′B' be as above. We say that (A,B)(A, B) is perfectly (statistically) (computationally) zero-knowledge on LL for B′B' if the family of random variables ViewA,B′\mathrm{View}_{A,B'} is perfectly (statistically) (computationally) approximable on

L′={(x,H)∣x∈L and ∣H∣=∣x∣c}.L' = \{(x, H) \mid x \in L \text{ and } |H| = |x|^c\}.

We say that (A,B)(A, B) is perfectly (statistically) (computationally) zero-knowledge on LL if it is perfectly (statistically) (computationally) zero-knowledge on LL for all probabilistic polynomial time ITM B′B'.

Note that the definition of (A,B)(A, B) being zero-knowledge (in some manner) for B′B' only depends on AA and not at all on BB. It might be less misleading to think of AA as being zero-knowledge for B′B'. A similar issue arises in the definition of an interactive proof system in § 2.2. Part (2) of this definition depends only on BB, and not at all on AA.

Computational zero-knowledge is certainly the most general of the above notions, and we will refer to it simply as zero-knowledge. Zero-knowledge really captures any information, which could not have been obtained efficiently in polynomial time, about members of LL. That is, if (A,B)(A, B) is zero-knowledge, it is not possible, in probabilistic polynomial time, to extract any information about members of LL by interacting with AA, not even by "cheating."

Definition. Let L⊂{0,1}∗L \subset \{0, 1\}^* be a language. We say that (A,B)(A, B) is a perfectly (statistically) (computationally) zero-knowledge proof system for LL if it is an interactive proof system for LL and a perfectly (statistically) (computationally) zero-knowledge protocol on LL.

We will refer to computationally zero-knowledge proof systems (the most general notion of the three) simply as zero-knowledge proof systems. This notion is totally adequate in the real world. That is, if (A,B)(A, B) is a zero-knowledge proof system for LL, it is not possible in polynomial time (not even for a "cheating" B′B') to interact with AA and extract anything else besides proofs of membership in LL.

3.4. Some remarks about the above definitions. First, let us stress that the coin tosses of BB are an essential part of the notion of a view in the definition of zero-knowledge for BB. Consider the language LL of all composite integers and the following protocol (A,B)(A, B). On input an integer nn, BB randomly selects an integer xx between 1 and nn and relatively prime with nn. It then sends AA the number a=x2mod  na = x^2 \mod n. AA responds by sending yy, a randomly chosen square root of amod  na \mod n. Should the view consist only of the text of the interaction between AA and BB, then the above-mentioned protocol would be perfectly zero-knowledge on LL. However, we define the view so as to contain also the coin tosses of BB. Thus, if (x,a,y)(x, a, y) is randomly selected in View(A,B)(n)_{(A,B)}(n), then gcd⁡(x+y,n)\gcd(x + y, n) is not 1 or nn with probability at least 12\frac{1}{2}. Thus, if factoring is not in probabilistic polynomial time, the above protocol is not zero-knowledge for BB. (It should be noted, however, that in the definition of zero-knowledge (for all B′B'), it is not necessary to include the random bits of B′B' in the view; this is because we have included in the view the messages sent by B′B', and for every B′B' there is a B′′B'', which is like B′B' except that it sends its random bits as part of its last message.)

Second, it should be explained why B′B' sees an additional string HH. (The need for this was independently discovered by the authors of this paper, by Oren [O], and by Tompa and Woll [TW].) HH may be thought about in a number of different ways; HH may be some extra information that the verifier (cheating or not) happens to know. For example, a zero-knowledge protocol for graph isomorphism should remain zero-knowledge even if the verifier happens to know colorings for the graphs. It is also possible that the protocol will be inserted in the middle of another protocol, where the verifier has seen some history HH. There is the fear that this HH was generated perhaps by interacting with a machine of unlimited power; we want to rule out the possibility of the verifier then obtaining knowledge by using HH when interacting with AA. It is for a similar reason that the distinguishing circuits in the definition of computational indistinguishability are allowed to be nonuniform. We want to say that two families of random variables can be computationally distinguished if there are circuits that tell them apart, where the circuits may have wired in some information about xx or some information obtained from the history of some protocol in which the protocol of interest is immersed. In other words, the view B′B' obtains on inputs (x,H)(x, H) should look like the simulated distribution M(x,H)M(x, H).

One test of a definition is that we should be able to prove those facts that intuition dictates must be true. One such fact is that the repetition of a zero-knowledge protocol a polynomial number of times is still zero-knowledge. We can prove this with our current definitions, but we cannot prove it if, for example, we do not give B′B' the extra string HH. We can also prove that if B′B' wants to decide a special predicate P(x)P(x) for x∈Lx \in L, it does not help B′B' to engage in a zero-knowledge proof system for LL. We can prove all the intuitively obvious "facts" we have tried to prove, but only time will tell if these definitions are the right ones, or if they need some further modifications. We feel (and hope) that these definitions capture exactly the intuitive ideas we have tried to capture.

Last, there is the peculiar fact that the machine MM simulating the view is allowed to operate in expected polynomial time. This appears to be necessary for the zero-knowledge proof system for QNR given in §6. To see why this is necessary in general, consider a pair (A,B)(A, B), where BB (on input of length nn) sends nn random bits α\alpha to AA; if the predicate P(α)P(\alpha) holds, then AA sends a random β\beta of length nn such that P(β)P(\beta) holds. Imagine that the predicate PP is easily computable, but the number of strings of length nn for which PP holds is small—maybe a fraction n−10n^{-10} or maybe n−20n^{-20}—but we do not know exactly which; imagine that the only way we know to find a string for which PP holds is to select random strings until one satisfying PP is found. The only way we know how to simulate the view of BB statistically closely (or even computationally indistinguishably) is to choose a random α\alpha; if P(α)P(\alpha) holds, look through random nn-bit strings until a β\beta is found such that P(β)P(\beta) holds. This process is only expected polynomial time.

3.5. Examples of zero-knowledge languages. Trivially, all languages in BPP have perfect zero-knowledge proof systems. (A language is in BPP if there is a probabilistic, polynomial time machine which on each input computes membership in the language with small probability of error.)

The first nontrivial zero-knowledge proof systems (i.e., for recognizing languages not known to be in BPP) are the perfect zero-knowledge proof systems for the quadratic residuosity language QR given in § 5, and the statistically zero-knowledge proof system for QNR given in § 6.

Recently, Goldreich, Micali, and Wigderson have shown in [GMW] that the graph isomorphism language has a perfect zero-knowledge proof system, that the graph nonisomorphism language (though not known to belong to NP) has a statistically zero-knowledge proof system, and that all languages in NP possess computationally zero-knowledge proof systems if secure encryption schemes exist. In [BGGHKMR] it is proved that all languages in IP possess zero-knowledge proof systems.

Results by Boppana, Hastad, and Zachos [BHZ] and Fortnow [Fo] show that if an NP-complete language had a perfect or statistically zero-knowledge proof system, the polynomial time hierarchy would collapse. Thus it may not be surprising that the interactive proof systems in [GMW] for graph coloring were zero-knowledge only in a computational sense. A more immediate reason for their being computationally zero-knowledge is that they make use of probabilistic encryption [GM] (see Example 3). This may tempt us to interpret Fortnow’s result as saying that encryption is crucial in any zero-knowledge proof system for NP-complete languages. (Further discussion on Fortnow’s result can be found in § 7.)

3.6. A study of earlier proposals. Having reached the notion of a zero-knowledge proof system, let us now have a second look at the earlier, Arthur–Merlin type, proof systems of Blum [Bl] and Goldwasser and Micali [GM1] that we have already mentioned in § 2.3.

The Proof System for BL (defined in § 2.3). In his beautiful paper, assuming that integer factorization is computationally hard, Blum proposes a protocol for flipping a coin over the telephone. For “fairly” flipping a coin, Alice and Bob need an integer nn whose prime factorization is known to Alice but not to Bob, and has a special property, namely, n∈BLn \in \mathrm{BL}. Alice is sure that the coin flip is fair because she computes nn by multiplying two randomly selected primes both congruent to 3 mod 4, and because she trusts that factoring is hard. Bob, after the coin has come up Head or Tail, checks that the flipping was fair by requesting nn’s factorization from Alice. Thus a different nn should be selected for each coin flip. To make coin flipping more efficient, Blum proposed to test that n∈BLn \in \mathrm{BL}, by means of a protocol that does not give away nn’s factorization in any obvious way. After slightly modifying it, Blum’s protocol can be proved to be perfect zero-knowledge on BL. However, without this modification, it is not clear how much knowledge about nn’s factorization it releases.

The Proof Systems for GM1 and GM2 (defined in § 2.3). The cryptographic protocols of Goldwasser and Micali use the inefficient version of Blum’s coin-flipping protocols, and thus assume that factoring integers is computationally difficult. Based on this assumption, they showed that their proof systems do not give away the prime factorization of an input nn. That is, no cheating polynomial time verifier can, after participating in the protocol, compute nn’s factorization much faster than it could before.

More generally, their same protocols can actually be proved to be computationally zero-knowledge on, respectively, the languages GM1 and GM2. Thus, in particular, their protocols do not even give away whether or not, say, 3 is a quadratic residue mod n.

3.7. Interactive proof systems versus Arthur–Merlin games for zero-knowledge. We are now ready to formally express our belief that interactive proof systems are more appropriate than Arthur–Merlin games for recognizing languages in zero-knowledge.

Conjecture. There exist languages L that have perfect or statistical zero-knowledge proof systems, but do not have any Arthur–Merlin proof system that is perfect or zero-knowledge on L.

  1. The quadratic residuosity problem. In this section we describe the necessary number-theoretic background and notation needed for the proofs in §§ 5 and 6.

Let N denote the natural numbers, x∈Nx \in \mathbb{N} and Zx∗={y∣1≤y<x,gcd⁡(x,y)=1}\mathbb{Z}_x^* = \{ y \mid 1 \leq y < x, \gcd(x, y) = 1 \}. We can determine in time polynomial in ∣x∣|x| and ∣y∣|y| whether or not y∈Zx∗y \in \mathbb{Z}_x^*.

We say that yy in Zx∗\mathbb{Z}_x^* is a quadratic residue mod xx if there exists a ww in Zx∗\mathbb{Z}_x^* such that w2≡ymod  xw^2 \equiv y \mod x. Otherwise, we call yy in Zx∗\mathbb{Z}_x^* a quadratic nonresidue mod xx.

Fact 1. Let x∈Nx \in \mathbb{N} and y∈Zx∗y \in \mathbb{Z}_x^*. Then, yy is a quadratic residue mod xx if and only if it is a quadratic residue mod all of the prime factors of xx.

Define the quadratic residuosity predicate to be

Qx(y)={0if y is a quadratic residue mod x,1otherwise.Q_x(y) = \begin{cases} 0 & \text{if } y \text{ is a quadratic residue mod } x, \\ 1 & \text{otherwise}. \end{cases}

Then we have the following fact.

Fact 2. Let x∈Nx \in \mathbb{N} and y∈Zx∗y \in \mathbb{Z}_x^*. Given yy and the prime factorization of xx, Qx(y)Q_x(y) can be computed in time polynomial in ∣x∣|x|.

Let y∈Zx∗y \in \mathbb{Z}_x^* and the prime factorization of xx be ∏i=1kpiαi\prod_{i=1}^k p_i^{\alpha_i}. Then, the Jacobi symbol of ymod  xy \mod x is defined as

(y/x)=∏i=1k(y/pi)αi,(y/x) = \prod_{i=1}^k (y/p_i)^{\alpha_i},

where (y/pi)=1(y/p_i) = 1 if yy is a quadratic residue mod pip_i, and −1-1 otherwise.

Fact 3. Given x∈Nx \in \mathbb{N} and y∈Zx∗y \in \mathbb{Z}_x^*, (y/x)(y/x) can be computed in time polynomial in ∣x∣|x|.

The Jacobi symbol of ymod  xy \mod x gives some information about whether yy is quadratic residue mod xx or not. If (y/x)=−1(y/x) = -1, then yy is a quadratic nonresidue mod xx and Qx(y)=1Q_x(y) = 1. However, when (y/x)=1(y/x) = 1, no efficient (probabilistic or deterministic polynomial time) solution is known for computing Qx(y)Q_x(y) correctly with probability significantly better than 12\frac{1}{2}. This leads to the formulation of the quadratic residuosity problem.

Definition. We define the quadratic residuosity problem as that of computing Qx(y)Q_x(y) on inputs xx and yy, where yy in Zx∗Z_x^* and (y/x)=1(y/x) = 1,

The current best algorithm for computing Qx(y)Q_x(y), is to first factor xx and then compute Qx(y)Q_x(y). In fact, factoring integers and computing QxQ_x have been conjectured to be of the same time complexity. The difficulty of the quadratic residuosity problem has been used as a basis for the design of several cryptographic protocols [GM], [LMR], [Bl].

Define the following two languages:

QR={(x,y)∣x∈N,y∈Zx∗,and Qx(y)=0},\mathrm{QR} = \{ (x, y) \mid x \in \mathbb{N}, y \in \mathbb{Z}_x^*, \text{and } Q_x(y) = 0 \},
QNR={(x,y)∣x∈N,y∈Zx∗,(y/x)=1,and Qx(y)=1},\mathrm{QNR} = \{ (x, y) \mid x \in \mathbb{N}, y \in \mathbb{Z}_x^*, (y/x) = 1, \text{and } Q_x(y) = 1 \},

where xx and yy are presented in binary.

Clearly, by Facts 1 and 2, both QR and QNR are in the intersection of CO-NP and NP. However, no probabilistic polynomial time algorithm is known that accepts these languages, and thus they are not trivially zero-knowledge. In §5 we show a perfectly zero-knowledge proof system for QR, and in §6 we show a statistically zero-knowledge proof system for QNR. The following facts will be useful in the zero-knowledge proofs of §§ 5 and 6.

Fact 4. Let x∈Nx \in \mathbb{N}. Then, for all yy such that Qx(y)=0Q_x(y) = 0, the number of solutions w∈Zx∗w \in \mathbb{Z}_x^* to w2≡ymod  xw^2 \equiv y \mod x is the same (independent of yy).

Fact 5. Let x∈Nx \in \mathbb{N}, y,z∈Zx∗y, z \in \mathbb{Z}_x^*. Then we have the following: {#goldwasser-1985-zk-fact-5 .statement tag=0528} (a) If Qx(y)=Qx(z)=0Q_x(y) = Q_x(z) = 0, then Qx(yz)=0Q_x(yz) = 0. (b) If Qx(y)≠Qx(z)Q_x(y) \neq Q_x(z), then Qx(yz)=1Q_x(yz) = 1.

Fact 6. Given x,yx, y, the Euclidean gcd algorithm allows us to compute in polynomial time whether or not y∈Zx∗y \in \mathbb{Z}_x^*.

  1. Zero-knowledge proofs of quadratic residuosity. Recall that QR={(x,y)∣y is a quadratic residue mod x}\mathrm{QR} = \{ (x, y) | y \text{ is a quadratic residue mod } x \}, where xx and yy are presented in binary.

We will first informally describe our zero-knowledge interactive proof system for QR, and then describe it with more rigor. Say that AA and BB are given (x,y),∣x∣=m(x, y), |x| = m; then the following is done mm times:

• AA sends BB a random quadratic residue mod x,ux, u. • BB sends AA a random bit, bitbit. • If bit=0bit = 0 then AA sends BB a random square root of umod  x,wu \mod x, w; if bit=1bit = 1 then AA sends BB a random square root of (uy)mod  x,w(uy) \mod x, w. • BB checks that either [bit = 0 and w2mod  x=uw^2 \mod x = u] or [bit = 1 and w2mod  x=(uy)mod  xw^2 \mod x = (uy) \mod x].

More formally, we assume, for convenience, that AA starts the protocol.

A’s PROTOCOL ON INPUT (x,y)∈QR(x, y) \in \mathrm{QR}. FOR i=1i = 1 to mm Use random bits to generate uiu_i, a random quadratic residue mod xx. SEND uiu_i to BB GET a string βi\beta_i from BB; let biti=bit_i = the first bit of βi\beta_i (or 0 if βi\beta_i is empty). If biti=0bit_i = 0, use random bits and generate wiw_i, a random square root of uimod  xu_i \mod x; if biti=1bit_i = 1, use random bits and generate wiw_i, a random square root of (uiy)mod  x(u_iy) \mod x. SEND wiw_i to BB GET a string from BB (this will merely indicate that BB wishes to continue the protocol). END FOR SEND “terminate” (just a string to finish off the protocol) to BB.

B’s PROTOCOL ON INPUT (x,y)(x, y). See if x≥1x \geq 1 and y∈Zx∗y \in \mathbb{Z}_x^*; if not, halt. FOR i=1i = 1 to mm GET uiu_i from AA. See if ui∈Zx∗u_i \in \mathbb{Z}_x^*; if not, halt. Generate a random bitibit_i. SEND bitibit_i to AA. GET wiw_i from AA. See if wi∈Zx∗w_i \in \mathbb{Z}_x^* and either [biti=0bit_i = 0 and wi2mod  x=uiw_i^2 \mod x = u_i] or [biti=1bit_i = 1 and wi2mod  x=(uiy)mod  xw_i^2 \mod x = (u_iy) \mod x]; if not, halt. SEND “okay” (just a string to continue the protocol) to AA. END FOR GET any string from AA, and halt accepting.

This is clearly an interactive protocol.

CLAIM 1. The above (A,B)(A, B) protocol is an interactive proof system for QR.

Proof. Say that BB is interacting with an arbitrary A′A'. Say that x≥1x \geq 1, y∈Zx∗y \in Z_x^*, and yy is not a quadratic residue mod xx. For each uiu_i that BB receives from A′A' it cannot be the case that both uiu_i and (uiy)(u_i y) have square roots mod xx. Since A′A' does not see any bit in advance, there is at most a 12\frac{1}{2} probability that BB will "okay" the iith pass. Hence, the probability that BB will say "convinced" is at most 1/2m1/2^m.

We will now show that the protocol is zero-knowledge for QR.

THEOREM 1. The above (A,B)(A, B) protocol is a perfectly zero-knowledge proof system for QR.

Proof. Let B′B' be an arbitrary polynomial time ITM that interacts with AA. Let (x,y)∈QR(x, y) \in \mathrm{QR} be the common input to the pair (A,B′)(A, B'), ∣x∣=m|x| = m, and let HH be the extra input to B′B'. For convenience we consider the view ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x, y), H) to consist of the random variables

R,U1,BIT1,W1,U2,BIT2,W2,⋯ ,Um,BITm,Wm,R, U_1, \mathrm{BIT}_1, W_1, U_2, \mathrm{BIT}_2, W_2, \cdots, U_m, \mathrm{BIT}_m, W_m,

where RR is the string of random bits generated by B′B', UiU_i takes on the value uiu_i, BITi\mathrm{BIT}_i takes on the iith message of B′B', etc.

One way to describe the distribution of the view is as follows: RR is assigned a random bit string rr (of the appropriate length). Say that R,U1,BIT1,W1,⋯ ,Ui,BITi,WiR, U_1, \mathrm{BIT}_1, W_1, \cdots, U_i, \mathrm{BIT}_i, W_i is the random variable ViV_i. Assume that for some i,1≤i<mi, 1 \leq i < m, ViV_i has been given the value viv_i; we will describe the experiment for giving values to Ui+1,BITi+1,Wi+1U_{i+1}, \mathrm{BIT}_{i+1}, W_{i+1}.

Experiment

Choose for Ui+1U_{i+1} a random quadratic residue mod xx, ui+1u_{i+1}. If B′B' were BB, we would choose BITi+1\mathrm{BIT}_{i+1} to be the (i+1)(i+1)st bit of rr. However, all we can say is that BITi+1\mathrm{BIT}_{i+1} is assigned the value biti+1=f(x,y,H,vi,ui+1)bit_{i+1} = f(x, y, H, v_i, u_{i+1}), where ff is some {0,1}\{0, 1\}-valued function computable in deterministic, polynomial time. If biti+1=0bit_{i+1} = 0, then Wi+1W_{i+1} gets the value wi+1w_{i+1}, a random square root of ui+1mod  xu_{i+1} \mod x; if biti+1=1bit_{i+1} = 1, then Wi+1W_{i+1} gets the value wi+1w_{i+1}, a random square root mod xx of (ui+1y)mod  x(u_{i+1} y) \mod x.

Having characterized the view with the above experiment, we will now describe a probabilistic Turing machine MM that, given (x,y)∈QR(x, y) \in \mathrm{QR} and a string HH, runs in expected polynomial time, and such that its output distribution M((x,y),H)M((x, y), H) is exactly the same as VmV_m above; that is, M((x,y),H)M((x, y), H) is the same as ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x, y), H). MM begins by choosing rr equals a random bit string (of the appropriate length). Assume that viv_i has been chosen for some i,1≤i<mi, 1 \leq i < m; MM outputs ui+1,biti+1,wi+1u_{i+1}, bit_{i+1}, w_{i+1} according to the following program:

            
              DO FOREVER
    bitᵢ₊₁ := a random member of {0, 1}
    wᵢ₊₁ := a random member of Zₓ*
    IF bitᵢ₊₁ = 0 THEN
        uᵢ₊₁ := wᵢ₊₁² mod x
    ELSE
        uᵢ₊₁ := (wᵢ₊₁² y⁻¹) mod x
        IF bitᵢ₊₁ = f(x, y, H, vᵢ, uᵢ₊₁) THEN
            OUTPUT uᵢ₊₁, bitᵢ₊₁, wᵢ₊₁ and HALT
END DO
            
          

Two things about MM's program must be clarified. First, the way MM chooses a random member of Zx∗Z_x^* is by choosing random mm-bit strings until one is found that is in Zx∗Z_x^*; this halts in expected polynomial time. Secondly, by "y−1y^{-1}" we mean that unique member of Zx∗Z_x^* which when multiplied by ymod  xy \mod x yields 1.

We now show that MM halts in expected time polynomial in mm, with exactly the right output distribution.

Let R′,{Ui′,BITi′,Wi′}R', \{ U'_i, \mathrm{BIT}'_i, W'_i \} be the random variables corresponding to the output of MM, and let Vi′V'_i be defined similarly to ViV_i. Certainly R′R' has exactly the same distribution as RR. Let 1≤i<m1 \leq i < m and assume that Vi′V'_i has exactly the same distribution as ViV_i, and assume that MM gives a value to Vi′V'_i in expected time polynomial in mm. Say that both ViV_i and Vi′V'_i have been given the value viv_i; we wish to show that the above piece of program code halts in expected time polynomial in mm, with the same output distribution as the above experiment, given that Vi=Vi′=viV_i = V'_i = v_i.

Consider the body of the DO loop up to but not including the last test. If biti+1=0bit_{i+1} = 0 at this point, then since every quadratic residue in Zx∗Z_x^* has the same number of square roots (mod  x\mod x), ui+1u_{i+1} is equally likely to be any quadratic residue, and wi+1w_{i+1} will be a random square root of ui+1u_{i+1}; if biti+1=1bit_{i+1} = 1 at this point, then ui+1u_{i+1} will also be a random quadratic residue in this case (since yy is a quadratic residue), and wi+1w_{i+1} will be a random square root of (ui+1y)mod  x(u_{i+1}y) \mod x. Therefore, the body of the DO loop has the following effect (even though the following code may not be efficiently executable):

Equivalent Do Body

ui+1:=a random quadratic residue mod x.biti+1:=a random bitIF biti+1=f(x,y,H,vi,ui+1) THENIF biti+1=0 THEN wi+1:=a random square root mod x of ui+1 FIIF biti+1=1 THEN wi+1:=a random square root mod x of (ui+1y) FIHALT and output (ui+1,biti+1,wi+1)FI\begin{align*} u_{i+1} & := \text{a random quadratic residue mod } x. \\ bit_{i+1} & := \text{a random bit} \\ \text{IF } bit_{i+1} = f(x, y, H, v_i, u_{i+1}) & \text{ THEN} \\ & \text{IF } bit_{i+1} = 0 \text{ THEN } w_{i+1} := \text{a random square root mod } x \text{ of } u_{i+1} \text{ FI} \\ & \text{IF } bit_{i+1} = 1 \text{ THEN } w_{i+1} := \text{a random square root mod } x \text{ of } (u_{i+1}y) \text{ FI} \\ & \text{HALT and output } (u_{i+1}, bit_{i+1}, w_{i+1}) \\ & \text{FI} \end{align*}

It is clear that the equivalent body halts (and outputs) with probability 12\frac{1}{2}, and therefore that the actual DO loop halts in expected polynomial time. Since for each value of ui+1u_{i+1} the equivalent body is equally likely to halt, Ui+1′U'_{i+1} gets assigned (by the DO loop) a random quadratic residue. BIT'_{i+1} will be assigned f(x,y,H,vi,ui+1)f(x, y, H, v_i, u_{i+1}). Lastly, we can see from the equivalent body that in the case where the DO loop halts, Wi+1′W'_{i+1} gets assigned a random square root of ui+1u_{i+1} or of (ui+1y)(u_{i+1}y), depending on biti+1bit_{i+1}, as required.

  1. Zero-knowledge proofs of quadratic nonresiduousity. We define QNR = {(x,y)∣y∈Zn∗,(y/x)=1,Qx(y)=1}\{ (x, y) | y \in Z_n^*, (y/x) = 1, Q_x(y) = 1 \}, where xx and yy are presented in binary.

Let (A,B)(A, B) be an interactive protocol given as input (x,y)(x, y) such that ∣x∣=m|x| = m.

The basic idea of the protocol is that BB generates at random elements ww of two types: w≡r2mod  xw \equiv r^2 \mod x (type 1) and w≡r2ymod  xw \equiv r^2 y \mod x (type 2), and sends these elements to AA. If (x,y)∈QNR(x, y) \in \mathrm{QNR} then AA can tell of which type ww is by computing whether ww is a quadratic residue (type 1) or not (type 2). If (x,y)(x, y) is not a member of QNR, ww is always a quadratic residue mod xx and AA cannot guess its type better than guessing at random. Thus, AA will not be able to tell the types of the ww's and BB will not be convinced that (x,y)∈QNR(x, y) \in \mathrm{QNR}.

This idea is sufficient as a proof system but not as a zero-knowledge proof system. The danger is that BB may not have followed the protocol and generated elements ww in a manner differently than specified in the protocol. We get over this difficulty by complicating the protocol to force BB to convince AA that indeed BB knows whether ww is of type 1 or type 2. He does this by convincing AA that he knows either a square root of ww or a square root of wy−1mod  xwy^{-1} \mod x, without giving AA any information (in the information-theoretic sense) of which one he really knows.

Our original protocol, which appeared in [GMR], was more complex to prove than the one presented here. The simplified protocol presented here was suggested by Cohen [Co].

As was done for the QR language, we will first informally describe an interactive protocol, which we claim is a statistical zero-knowledge interactive proof system for QNR, and then describe it with more rigor.

The following (A,B)(A, B) protocol on input (x,y)(x, y) should be repeated mm times.

• BB picks at random r∈Zx∗r \in \mathbb{Z}_x^* and bit∈{0,1}bit \in \{0, 1\}. If bit=0bit = 0, BB sets w=r2mod  xw = r^2 \mod x; otherwise BB sets w=r2ymod  xw = r^2 y \mod x. BB sends ww to AA. For 1≤j≤m1 \leq j \leq m, BB picks random rj1,rj2∈Zx∗r_{j1}, r_{j2} \in \mathbb{Z}_x^* and a random bitj∈{0,1}bit_j \in \{0, 1\}. BB sets aj=rj12mod  xa_j = r_{j1}^2 \mod x, and bj=yrj22mod  xb_j = yr_{j2}^2 \mod x. If bitj=1bit_j = 1, BB sends AA the ordered pair, pairj=(aj,bj)pair_j = (a_j, b_j); else if bitj=0bit_j = 0, BB sends to AA pairj=(bj,aj)_j = (b_j, a_j). • AA sends BB an mm-long random bit vector i=i1i2⋯imi = i_1 i_2 \cdots i_m. • BB sends AA the sequence v=v1,v2,…,vmv = v_1, v_2, \ldots, v_m; if ij=0i_j = 0 then vj=(rj1,rj2)v_j = (r_{j1}, r_{j2}); if ij=1i_j = 1 then vj=rrj1mod  xv_j = rr_{j1} \mod x (a square root of wajmod  xwa_j \mod x) if bit=0bit = 0, and vj=yrrj2mod  xv_j = yrr_{j2} \mod x (a square root of wbjmod  xwb_j \mod x) if bit=1bit = 1. (The intuition behind this step is as follows: if ij=0i_j = 0, then BB is convincing AA that pairj_j was chosen correctly; if ij=1i_j = 1, then BB is convincing that if pairj_j was chosen correctly, then ww was chosen correctly.) • AA verifies that the sequence vv was properly constructed. If not, AA sends terminate to BB and halts. Otherwise, AA sets answer=0answer = 0 if ww is a quadratic residue mod xx and 1 otherwise. AA sends answeranswer to BB. • BB checks whether answer=bitanswer = bit. If so BB continues the protocol, otherwise BB rejects and halts.

After mm repetitions of this protocol, if BB did not reject thus far, BB accepts and halts.

More formally, we proceed to describe first the protocol for BB and then the protocol for AA. The protocol consists of BB going through its first stage, followed by AA's first stage, followed by BB's second stage, followed by AA's second stage, etc., until either AA or BB chooses to terminate the protocol.

Denote by v={v;vj}v = \{v; v_j\} the result of extending sequence vv with element vjv_j.

B's PROTOCOL ON INPUT (x,y)(x, y). Check that x≥1x \geq 1 and that y∈Zx∗y \in \mathbb{Z}_x^* and that (y/x)=1(y/x) = 1. Set m=∣x∣m = |x|. Repeat Stages 1–3 mm times. Stage 1.¹ use random bits to pick r∈Zx∗r \in \mathbb{Z}_x^* and bit∈{0,1}bit \in \{0, 1\}. IF bit=0bit = 0 set w≡r2mod  xw \equiv r^2 \mod x, else set w≡r2ymod  xw \equiv r^2 y \mod x FI FOR j=1,2,…,mj = 1, 2, \ldots, m choose random rj1,rj2∈Zx∗r_{j1}, r_{j2} \in \mathbb{Z}_x^* and random bitj∈{0,1}bit_j \in \{0, 1\}. set aj≡rj12mod  xa_j \equiv r_{j1}^2 \mod x and bj≡rj22ymod  xb_j \equiv r_{j2}^2 y \mod x.

¹ The careful reader may observe that picking r∈Zx∗r \in Z_x^* "exactly at random" can be done in expected polynomial time, while our BB must by definition run in a fixed polynomial number of steps. Fortunately, BB can pick r∈Zx∗r \in Z_x^* "almost at random" in a fixed polynomial time. This will have a negligible effect on the result and we omit any further details on this point.

IF bitj=0bit_j = 0 set pairj=(aj,bj)pair_j = (a_j, b_j) else set pairj=(bj,aj)pair_j = (b_j, a_j) FI END FOR SEND (w,pairjw, pair_j for j=1,⋯ ,mj = 1, \cdots, m) to AA. Stage 2. GET from AA and mm-long bit vector i=i1⋯imi = i_1 \cdots i_m, where ij∈{0,1}i_j \in \{0, 1\}. Initialize the sequence vv to the empty sequence. FOR j=1,⋯ ,mj = 1, \cdots, m IF ij=0i_j = 0 then set vj=(rj1,rj2)v_j = (r_{j1}, r_{j2}) and set v={v;vj}v = \{v; v_j\} FI IF ij=1i_j = 1 do one of the following: IF bit=0bit = 0 then set vj=rrj1mod  x=wajmod  xv_j = rr_{j1} \mod x = \sqrt{w a_j} \mod x and set v={v;vj}v = \{v; v_j\} otherwise set vj=yrrj2mod  x=wbjmod  xv_j = yrr_{j2} \mod x = \sqrt{w b_j} \mod x and set v={v;vj}v = \{v; v_j\} FI FI END FOR SEND vv to AA. Stage 3. GET answer∈{0,1}answer \in \{0, 1\} from AA. IF answer≠bitanswer \neq bit then reject and halt otherwise go to stage 1 FI. After mm iterations of Stages 1–3, if the protocol has not halted by now, accept and halt.

A’s PROTOCOL ON INPUT (x,y)∈QNR(x, y) \in \mathrm{QNR}.

Stage 1. GET (w,pairjw, pair_j for j=1,⋯ ,mj = 1, \cdots, m) from BB. Pick at random i=i1⋯imi = i_1 \cdots i_m where ij∈{0,1}i_j \in \{0, 1\}. SEND ii to BB. Stage 2. GET sequence vv from BB for every j=1,⋯ ,mj = 1, \cdots, m check that, if ij=0i_j = 0, then vjv_j is a pair (s,t)(s, t) such that (s2mod  x,t2ymod  x)(s^2 \mod x, t^2 y \mod x) equals pairjpair_j, possibly with the elements interchanged; and if ij=1i_j = 1, then (vj2)w−1mod  x(v_j^2) w^{-1} \mod x is a member of pairjpair_j. If not, SEND terminate to BB and halt. (Assume that the above checks have succeeded.) If ww is a quadratic residue mod xx, set answer=0answer = 0 and if ww is a quadratic nonresidue mod xx, set answer=1answer = 1. SEND answeranswer to BB. Go to Stage 1.

We first prove that (A,B)(A, B) is an interactive proof system for QNR.

CLAIM 2. (A,B)(A, B) is an interactive proof system for QNR.

Proof. Clearly (A,B)(A, B) is an interactive protocol. If (x,y)∈QNR(x, y) \in \mathrm{QNR} and AA and BB follow the specification of the protocol, then for every execution of Stages 1–2 by BB, ww is a quadratic nonresidue mod xx if and only if bit=1bit = 1. Thus, in AA's Stage 2, AA can always decide whether ww is a quadratic residue mod xx or not and send answeranswer to BB such that answer=bitanswer = bit and BB will always accept.

Suppose that (x,y)(x, y) not in QNR (i.e., yy is a quadratic residue mod xx) and that BB is interacting with an arbitrary prover A′A', in the kkth iteration of Stages 1–3. Then we claim that even an A′A' with infinite computation power cannot distinguish an interaction with BB where bit=0bit = 0 from an interaction with BB where bit=1bit = 1. This is argued as follows. At Stage 1, A′A' gets the list (w,pairj(w, pair_j for j=1,⋯ ,m)j = 1, \cdots, m), where ww is a random quadratic residue, and where pairjpair_j simply consists of a pair of random quadratic residues. This gives absolutely no information about the value of bitbit.

Now consider Stage 2, where ij=0i_j = 0. AA gets (rj1,rj2)(r_{j1}, r_{j2}). Note that rj1r_{j1} is just a random square root of aja_j and rj2r_{j2} is a random square root of bj/ymod  xb_j / y \mod x. So all that AA sees is the result of randomly choosing (or not) to reorder pairj_j, and then taking a random square root of the first element and a random square root of the result of dividing the second element by yy (all mod xx, of course). This gives no information about bit.

Now consider the case where ij=1i_j = 1. If bit=0bit = 0 then AA gets rrj1mod  xrr_{j1} \mod x, which is a random square root of wajmod  xwa_j \mod x. If bit=1bit = 1 then AA gets yrrj2mod  xyrr_{j2} \mod x, which is a random square root of wbjmod  xwb_j \mod x. Since pairj_j is a random reordering of (aj,bj)(a_j, b_j), vjv_j is equally likely to be a random square root of ww times the first element of pairj_j as it is to be a random square root of ww times the second element of pairj_j, no matter what bit is.

Thus, from the information that A′A' receives in Stages 1 and 2, the value of bit is as likely to be 0 as it is to be 1 and the chance that A′A' predicts bit correctly is no greater than 12\frac{1}{2}. In mm iterations through Stages 1–3, the probability that A′A' computed answer such that answer = bit is at most 1/2m1/2^m.

Proving that the (A,B)(A, B) proof system is statistically zero-knowledge for QNR is much more complex.

Theorem 2. The above protocol (A,B)(A, B) is a statistically zero-knowledge proof system for QNR.

Proof. Let B′B' be an arbitrary probabilistic polynomial time interactive Turing machine interacting with AA. Let (x,y)∈QNR(x, y) \in \mathrm{QNR} be input to (A,B′)(A, B'), let m=∣x∣m = |x|, and let HH be the extra input to B′B'.

For convenience, consider the random variable ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x, y), H) (B′B''s view of an iteration of the protocol) to consist of the random variables:

RAN,and\mathrm{RAN}, \quad \text{and}
{Wk,{PAIRjk:1≤j≤m},{Ijk:1≤j≤m},Vk,ANSWERk∣1≤k≤m}.\{ W^k, \{ \mathrm{PAIR}_j^k : 1 \leq j \leq m \}, \{ I_j^k : 1 \leq j \leq m \}, V^k, \mathrm{ANSWER}^k | 1 \leq k \leq m \}.

RAN\mathrm{RAN} is the string of random bits generated by B′B'; WkW^k takes on the value of ww in the kkth iteration of the protocol; PAIRjk\mathrm{PAIR}_j^k takes on the value of pairj_j in the kkth iteration of the protocol; IjkI_j^k takes on the value of iji_j in the kkth iteration of the protocol; Vk={Vjk}V^k = \{ V_j^k \} takes on the value of the sequence vv in the kkth iteration of the protocol; and ANSWERk\mathrm{ANSWER}^k takes on the value of answer in the kkth iteration of the protocol.

For simplicity (notational and otherwise) we concentrate on showing that a single iteration of the protocol is zero-knowledge. Doing the general case implies carrying along the view of the protocol so far as was done in the proof of Theorem 1. Thus, from here on we drop all superscripts and work with the random variables: RAN, WW, {PAIRj}\{ \mathrm{PAIR}_j \}, {Ij}\{ I_j \}, V={Vj}V = \{ V_j \}, and ANSWER.

Note that in a good execution of the protocol (namely, if B′B''s protocol is followed), we expect that W=r2mod  xW = r^2 \mod x or W=r2ymod  xW = r^2 y \mod x, where rr is a substring of RAN; and that PAIRj=(rj12mod  x,rj22ymod  x)\mathrm{PAIR}_j = (r_{j1}^2 \mod x, r_{j2}^2 y \mod x) or (rj22ymod  x,rj12mod  x)(r_{j2}^2 y \mod x, r_{j1}^2 \mod x), where rj1r_{j1} and rj2r_{j2} are substrings of RAN; and that for all 1≤j≤m1 \leq j \leq m, if Ij=0I_j = 0 then VjV_j will equal (rj1,rj2)(r_{j1}, r_{j2}); and if Ij=1I_j = 1 then Vj=rrj1mod  xV_j = rr_{j1} \mod x or yrrj2mod  xyrr_{j2} \mod x.

However, since B′B' may not follow the protocol, all we can say about these random variables is that RAN is a random binary string; WW (and PAIRj\mathrm{PAIR}_j) are assigned values ww (and pairj_j) computed by B′B' on inputs x,y,Hx, y, H and RAN; II is a random binary string of length mm; and VjV_j is a value computed by B′B' on inputs x,y,H,RAN,Ix, y, H, \mathrm{RAN}, I.

We will now describe a probabilistic Turing machine MM that, given (x,y)∈QNR(x, y) \in \mathrm{QNR} and HH, runs in expected polynomial time, and whose output distribution is statistically indistinguishable from ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x, y), H).

M starts by outputting a random string ran of the appropriate length and running B' on inputs (x, y, H), and random tape ran on it. B' goes through Stage 1 outputting w, pair_j, for 1≤j≤m1 \leq j \leq m. Next, M chooses i1,…,imi_1, \ldots, i_m at random in {0, 1}, sets i=i1⋯imi = i_1 \cdots i_m, and writes i on B's communication tape, activating B's Stage 2. B' goes into Stage 2, writing on its communication tapes a sequence v={vi}v = \{ v_i \}. M outputs w{pairj},i,vw\{pair_j\}, i, v. Next M does the checking that A does in Stage 2. If the check fails M outputs "terminate" and halts.

Let us assume that the check succeeds. Think of x, y, H, ran as being fixed, so that w and {pair_j} are also fixed. The fact that the check succeeds means that A sending i to B' causes B' to send a v to A, which causes A to send a one-bit answer to B' (rather than terminate); let us call any such i' special. M has just computed that i is special, and now wants to compute the value of answer that A would send. This value is 0 if w is a quadratic residue mod x, and 1 otherwise. Since B' may not have computed w the way B would have, it is not obvious how to compute the quadratic residuosity of w, i.e., answer.

It turns out that finding one other special string i′≠ii' \neq i will allow M to determine if w is a quadratic residue, as follows:

Say that ij=0i_j = 0 and ij′=1i'_j = 1 and i, i' are special. Let v,v′v, v' be the sequences sent by B' after receiving i or i' (respectively); these can be computed in polynomial time by running B'. Since ij=0i_j = 0, vj=(s,t)v_j = (s, t), where (s2mod  x,t2ymod  x)(s^2 \mod x, t^2 y \mod x) equals pair_j, possibly with the elements reversed. Since ij′=1i'_j = 1, (vj)2w−1mod  x∈pairj(v_j)^2 w^{-1} \mod x \in \text{pair}_j. If (vj)2w−1mod  x=s2mod  x(v_j)^2 w^{-1} \mod x = s^2 \mod x, then w is a quadratic residue mod x; if (vj)2w−1mod  x=t2ymod  x(v_j)^2 w^{-1} \mod x = t^2 y \mod x then w is a quadratic nonresidue mod x.

It therefore remains to find a special i′≠imod  xi' \neq i \mod x. M uses the following algorithm.

ALGORITHM TO FIND A SPECIAL i′≠ii' \neq i.

Test 2m2^m random i′i' of length m (with replacement), halting when either a special i′≠ii' \neq i is found, or when 2m2^m strings have been tried. If no special i′≠ii' \neq i has been found, then test all m-bit strings (in order), looking for a special i′≠ii' \neq i.

If a special i′≠ii' \neq i is found, then M calculates answer as explained above and outputs answer. If no such i′i' exists, then M outputs "?"; note that this will happen when i is the only special string.

In order to show that M operates in expected polynomial time, it is sufficient to show that M operates in expected polynomial time for each fixed value of (x, y, H, ran). Say that x, y, H, ran are fixed, and so w, pair are also fixed. Let k be the number of strings i that are special. If k=0k = 0, then the ALGORITHM TO FIND A SPECIAL i′i' will not be invoked, and the running time is clearly polynomial in m. If k=1k = 1, then with probability (1/2m)(1/2^m) M will choose a special i; in that case the ALGORITHM will run for time 2mmc2^m m^c (for some c), so the expected running time is (1/2m)2mmc+(1/2^m)2^m m^c + a polynomial in m.

Assume that k>1k > 1. M will choose a special i with probability k/2mk/2^m. To calculate an upper bound on the expected running time of the ALGORITHM, imagine that it was changed so that it tested random i′i', including i and with replacement, halting if and when a special i′≠ii' \neq i is found; the expected running time would be at least half that of the ALGORITHM. In effect, a coin is being tossed until "heads" comes up, where the probability of "heads" is exactly (k−1)/2m(k-1)/2^m. It is well known that the expected number of coin tosses is exactly 2m/(k−1)2^m/(k-1). Hence the expected time for the

ALGORITHM is ≤(2m/(k−1))mc\leq (2^m/(k-1))m^c (for some cc). The total expected time is ≤(k/2m)−(2m/(k−1))mc+\leq (k/2^m)-(2^m/(k-1))m^c+ a polynomial in mm, which is polynomial in mm.

Recall that M((x,y),H)M((x,y),H) is the random variable denoting the distribution of MM's output given x,y,Hx,y,H. It remains to show that MM is statistically close to ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x,y),H). Fix x,y,Hx,y,H. If ranran is such that the number of special strings is not exactly 1, then any output string α\alpha beginning with ranran is taken on by ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x,y),H) with exactly the same probability as by M((x,y),H)M((x,y),H). Let SS be the set of (ran,w,{pair},i,u,answer)(ran,w,\{pair\},i,u,answer) where ii is the unique special string determined by ranran. The probability that ViewA,B′((x,y),H)\mathrm{View}_{A,B'}((x,y),H) takes on a value in SS is ≤1/2m\leq 1/2^m, since for each ranran there is at most one ii, which will be the unique special string. Similarly, the probability that M((x,y),H)M((x,y),H) takes on a value in SS is ≤1/2m\leq 1/2^m. Thus,

∑α∣prob⁡(M((x,y),H)=α)−prob⁡(ViewA,B′((x,y),H)=α)∣\sum_{\alpha}\left|\operatorname{prob}(M((x,y),H)=\alpha)-\operatorname{prob}(\mathrm{View}_{A,B'}((x,y),H)=\alpha)\right|
=∑α∉S∣prob⁡(M((x,y),H)=α)−prob⁡(ViewA,B′((x,y),H)=α)∣=\sum_{\alpha\notin S}\left|\operatorname{prob}(M((x,y),H)=\alpha)-\operatorname{prob}(\mathrm{View}_{A,B'}((x,y),H)=\alpha)\right|
+∑α∈S∣prob⁡(M((x,y),H)=α)−prob⁡(ViewA,B′((x,y),H)=α)∣+\sum_{\alpha\in S}\left|\operatorname{prob}(M((x,y),H)=\alpha)-\operatorname{prob}(\mathrm{View}_{A,B'}((x,y),H)=\alpha)\right|
≤0+12m+12m=22m.\leq 0+\frac{1}{2^m}+\frac{1}{2^m}=\frac{2}{2^m}.

And for mm iterations of the protocol, the difference is

∑α∣prob⁡(M((x,y),H)=α)−prob⁡(ViewA,B′((x,y),H)=α)∣≤2m2m.\sum_{\alpha}\left|\operatorname{prob}(M((x,y),H)=\alpha)-\operatorname{prob}(\mathrm{View}_{A,B'}((x,y),H)=\alpha)\right|\leq\frac{2m}{2^m}.

This completes our proof. □

Remarks. In fact, the above protocol can be shown to be perfect zero-knowledge. We just have to change MM so that when it discovers that ii is the unique special string it factors xx in time roughly 2m2^m, and then determines if ww is a quadratic residue mod xx in polynomial time. This does not change the expected running time by more than a polynomial factor, since when MM decides to do this extra work, it has already spent time 2m2^m.

7. Related work.

7.1. Work related to interactive proof systems. In studying his Arthur-Merlin games, Babai [Ba] has focused on the number of rounds, i.e., the number of times the prover and the verifier alternate in sending messages. Babai denotes the set of all languages accepted by ii rounds in an Arthur-Merlin proof system by AM[i]AM[i], and AM[f(n)]AM[f(n)] denotes the set of languages accepted by an Arthur-Merlin proof system with f(n)f(n) rounds. Here ff is a nondecreasing function from natural numbers to natural numbers, and nn the length of the input.

The elegant simplicity of Babai's definition allowed him to show that for every constant kk, AM[k]AM[k] collapses to AM[2]AM[2]. This in turn is a subset of both Π2p\Pi_2^p and nonuniform NP.

We define IP[f(n)]IP[f(n)] as the class of languages having an interactive proof system with f(n)f(n) rounds.

Goldwasser and Sipser [GS] show that, for all ff, AM[f(n)]=IP[f(n)]AM[f(n)]=IP[f(n)].

On the other hand, Aiello, Goldwasser, and Hastad [AGH] have shown that for any two nonconstant functions g(n)g(n) and f(n)f(n) such that g(n)=o(f(n))g(n)=o(f(n)), there exists an oracle XX such that (if we modify the definitions so that one is computing using the oracle XX) IP[g(n)]IP[g(n)] is strictly contained in IP[f(n)]IP[f(n)]. This result is tight as Babai and Moran [BM] have shown that for all constants c>0c>0, IP[f(n)]=IP[cf(n)]IP[f(n)]=IP[cf(n)]. Namely, IP[O(f(n))]IP[O(f(n))] is well defined.

An interesting question is the following. Where does IP stand with respect to the polynomial time heirarchy? Boppana, Hastad, and Zachos [BHZ] have shown that if CO-NP has a constant-round interactive proof system, then the polynomial time hierarchy collapses. Thus, from the results of [GMW], [GS], and [BHZ], it follows that graph isomorphism is not NP-complete unless the polynomial time hierarchy collapses.

Other works related to the study of randomized and nondeterministic complexity classes appear in [P] and [ZF]. In Papadimitriou’s Games Against Nature, the verifier is also a probabilistic polynomial time machine that flips coins and presents them to a prover capable of optimal moves. This is different from our model in that LL is said to be accepted by a game against nature if x∈Lx \in L implies that the probability of the prover to win the game is greater than a 12\frac{1}{2} rather than bounded away from a 12\frac{1}{2}.

Zachos and Furer [ZF], in a work investigating the robustness of probabilistic complexity classes, introduce a framework of probabilistic existential and universal quantifiers and prove several combinatorial lemmas about them. The AM and thus IP complexity classes can be formulated in terms of these special quantifiers.

7.2. Work related to knowledge complexity. Prior to our work, the theory of knowledge had received much attention in a model-theoretic framework (see [FHV] and [HM] for discussion). There are several essential differences between this framework and ours. In the latter, knowledge is defined with respect to a specific computational model with specific computational resources. In the former framework, there are no limitations on the computational power of the participants, i.e., they “know” all logical consequences of the information they possess. (For discussion of this aspect see, Belief, Awareness, and Limited Reasoning [FH].) As for another difference, in our model knowledge is defined with respect to an available public input and is gained by computing on this input. In their model-theoretic framework knowledge is gained by being told (or witnessing) that a certain event is true (e.g., the outcome of a coin flip is heads), rather than by computing.

Galil, Haber, and Yung [GHY] proposed the following extension of the concept of a zero-knowledge interactive proof systems. A language LL is said to have a result-indistinguishable zero-knowledge proof system if there exists an interactive protocol (A,B)(A, B) such that for every string x∈{0,1}∗x \in \{0, 1\}^*, AA can convince BB that x∈Lx \in L or xx is not in LL (whichever is the case) with high probability, such that no passive observer CC can get any information of which is the case. They give a result-indistinguishable proof system for QR.

As previously mentioned, Goldreich, Micali, and Wigderson [GMW] have shown, subject to the existence of secure encryption schemes, that all languages in NP have computationally zero-knowledge proof systems. Subsequently, related notions of proof systems and zero knowledge were given by Brassard and Crepeau [BC] and Chaum [Ch]. They found that for any language LL in NP, there is an interactive protocol that

(1) is zero-knowledge, and (2) proves membership in LL correctly (i.e., with probability approaching 1) only if factoring is computationally difficult and the prover is polynomial time.

Let us explicitly contrast their protocols with the ones in [GMW]. The latter ones

(1) correctly prove membership in LL, and (2) are zero-knowledge only if secure encryption schemes exist (which is true if factoring is difficult).

Finally, let us mention the recent result of Fortnow.

THEOREM [Fo]. Assume a language L has an interactive proof system (A, B) that is statistically zero-knowledge with respect to B. Then L's complement has a constant-round interactive proof system.

As a corollary, if SAT had statistically zero-knowledge proof systems, the polynomial time hierarchy would collapse.

Note that the hypothesis of Fortnow's theorem is much weaker than saying that (A, B) is a statistically zero-knowledge proof system on L, which would mean that, for all verifiers B', A is zero-knowledge on L for B'. Usually, it is defeating this latter quantifier "for all" that makes it hard to find a perfect or statistically zero-knowledge proof system. Thus Fortnow's result has the potential to be widely applicable.

Acknowledgments. We thank Mike Sipser, Steve Cook, and Mike Fischer who helped us focus on this research from its beginning. Without their enthusiastic encouragement we might not have completed this work.

Oded Goldreich and Ron Rivest, as usual, have been generous with comments and ideas. Thanks also go to Leonid Levin, Zvi Galil, and Dan Simon for having helped us in various ways.

Special thanks to Josh Cohen for simplifying our original zero-knowledge protocol for proving quadratic nonresiduosity. Thanks are also due to Manuel Blum for sharing with us so many beautiful ideas about cryptographic protocols.

Finally, we thank the anonymous referees, whose comments greatly improved this paper.

References

  1. [AGH] B. Aiello, S. Goldwasser, and J. Hastad, On the power of interaction, in Proc. 27th Annual IEEE Symposium on Foundations of Computer Science, 1986, pp. 368-379.
  2. [AH] B. Aiello and J. Hastad, Perfect zero-knowledge languages can be recognized in two rounds, in Proc. 28th Annual IEEE Symposium on Foundations of Computer Science, 1987, pp. 439-448.
  3. [BGGHKRM] M. Ben-Or, O. Goldreich, S. Goldwasser, J. Hastad, J. Kilian, P. Rogaway, and S. Micali, Everything provable is provable in zero-knowledge, in Proc. Crypto88, to appear.
  4. [Bl] M. Blum, Coin flipping by telephone, IEEE COMPCON 1982, pp. 133-137.
  5. [BHZ] R. Boppana, J. Hastad, and S. Zachos, Does co-NP have short interactive proofs?, Inform. Process. Lett., 25 (1987) pp. 127-132.
  6. [Ba] L. Babai, Trading group theory for randomness, in Proc. 17th ACM Annual Symposium on Theory of Computation, 1975, pp. 421-429.
  7. [BM] L. Babai and S. Moran, Arthur-Merlin games: A randomized proof system, and a hierarchy of complexity classes, J. Comput. Sci. Systems; a previous version was entitled Trading group theory for randomness, in Proc. 17th Annual ACM Symposium on Theory of Computing, 1985, pp. 421-429.
  8. [BS] L. Babai and E. Szemeredi, On the complexity of matrix group problems, in Proc. 25th Annual IEEE Symposium on Foundations of Computer Science, pp. 229-240.
  9. [BC] G. Brassard and C. Crepeau, Non-transitive transfer of confidence: A perfect zero-knowledge interactive protocol for SAT and beyond, Proc. 27th Annual IEEE Symposium on Foundations of Computer Science, October 1986.
  10. [Ch] D. Chaum, Demonstrating the public predicate can be satisfied without revealing any information how, in Proc. Crypto86.
  11. [Co] J. Cohen (Benaloh), Cryptographic capsules, in Proc. Crypto86.
  12. [CKS] A. Chandra, D. Kozen, and L. Stockmeyer, Alternation, J. Assoc. Comput. Mach., 28 (1981), pp. 114-133.
  13. [C] S. Cook, The complexity of theorem-proving procedures, in Proc. 3rd Annual ACM Symposium of Theory of Computation, 1971, pp. 151-158.
  14. [CR] S. Cook and R. Reckhow, The relative efficiency of propositional proof systems, J. Symbolic Logic, 44 (1979).
  15. [F] P. Feldman, private communication.
  16. [FMRW] M. Fischer, S. Micali, C. Rackoff, and D. Witenberg, *A secure protocol for the oblivious transfer*, unpublished manuscript, 1986.
  17. [FFS] U. Feige, A. Fiat, and A. Shamir, *Zero knowledge proofs of identity*, in Proc. 19th Annual ACM Symposium on Theory of Computing, 1987, pp. 210–217.
  18. [Fo] L. Fortnow, *The complexity of perfect zero-knowledge*, in Proc. 19th Annual ACM Symposium on Theory of Computing, 1987, pp. 204–209.
  19. [FH] R. Fagin and J. Halpern, *Belief, awareness, and limited reasoning*, in Proc. 9th International Joint Conference on Artificial Intelligence, 1985, pp. 491–501.
  20. [FHV] R. Fagin, J. Halpern, and M. Vardi, *A model theoretic analysis of knowledge*, in Proc. 25th Annual IEEE Symposium on Foundations of Computer Science, 1984, pp. 268–278.
  21. [GM] S. Goldwasser and S. Micali, *Probabilistic encryption*, J. Comput. Science and Systems, 28 (1984), pp. 270–299.
  22. [GM1] ———, *Proofs with untrusted oracles*, unpublished manuscript (submitted to STOC, 1984). Revised version: *The information content of proof systems*, unpublished manuscript (submitted to STOC, 1984).
  23. [GMS] O. Goldreich, Y. Mansour, and M. Sipser, *Interactive proof systems: Provers that never fail and random selection*, in Proc. 28th Annual IEEE Symposium on Foundations of Computer Science, 1987, pp. 449–460.
  24. [GMR] S. Goldwasser, S. Micali, and C. Rackoff, *The knowledge complexity of interactive proof systems*, in Proc. 27th Annual Symposium on Foundations of Computer Science, 1985, pp. 291–304. Earlier version: *Knowledge complexity*, unpublished manuscript, (submitted to FOCS, 1984).
  25. [GS] S. Goldwasser and M. Sipser, *Private coins versus public coins in interactive proof-systems*, in Proc. 18th Annual Symposium on Theory of Computing, 1986, pp. 59–68.
  26. [GHY] Z. Galil, S. Haber, and M. Yung, *A private interactive test of a Boolean predicate and minimum-knowledge public-key cryptosystems*, in Proc. 26th Annual IEEE Symposium on Foundations of Computer Science, 1985, pp. 360–371.
  27. [GMW] O. Goldreich, S. Micali, and A. Wigderson, *Proofs that yield nothing but their validity and a methodology of cryptographic protocol design*, in Proc. 27th Annual IEEE Symposium on Foundations of Computer Science, 1986, pp. 174–187.
  28. ———, *How to play any mental game*, in Proc. 19th Annual ACM Symposium on Theory of Computing, 1987, pp. 218–229.
  29. [HM] J. Halpern and Y. Moses, *Knowledge and common knowledge in a distributed environment*, in Proc. 3rd Principles of Distributed Computing Conference, 1984, pp. 50–61.
  30. [LMR] M. Luby, S. Micali, and C. Rackoff, *How to simultaneously exchange a secret bit by flipping a symmetrically-biased coin*, in Proc. 24th Annual IEEE Symposium on Foundations of Computer Science, 1983, pp. 11–22.
  31. [O] Y. Oren, *On the cunning power of cheating verifiers: some observations of zero-knowledge proofs*, in Proc. 28th Annual IEEE Symposium on Foundations of Computer Science, 1987, pp. 462–471.
  32. [P] C. Papadimitriou, *Games against nature*, in Proc. 24th Annual IEEE Symposium on Foundations of Computer Science, 1983, pp. 446–450.
  33. [TW] M. Tompa and H. Woll, *Random self reducibility and zero knowledge interactive proofs of possession of information*, in Proc. 28th Annual IEEE Symposium on Foundations of Computer Science, 1987, pp. 472–482.
  34. [ZF] S. Zachos and M. Furer, *Probabilistic quantifiers vs. distrustful adversaries*, in Proc. Structure of Complexity Classes Conference, 1986.
  35. [Y] A. Yao, *Theory and application of trapdoor functions*, in Proc. 23rd Annual IEEE Symposium on Foundations of Computer Science, November 1982, pp. 80–91.

Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8.