A Cut-and-Choose protocol for proving that two graphs are isomorphic.
This protocol is very similar to Quadratic Residue Protocol.
The main idea
Following the Cut-and-Choose paradigm, the protocol splits and homomorphism into
- for a random permutation .
Intuition
For , the two parts read as
- is isomorphic to (with random isomorphism )
- is isomorphic to (with random isomorphism )
Then we get the two required properties (see Splitting the statement into parts):
- Neither nor on their own reveal anything about (given that is a random isomorphism)
- Together, and reveal .
The protocol
Following the The protocol template:
Protocol between and
- Announcement: Prover chooses a random graph isomorphism and sends .
- Challenge: The verifier chooses a random challenge (challenging the prover to reveal an isomorphism between and ).
- Response: The prover reveals
- The verifier checks that is an isomorphism and .
Optimization of the Cut-and-Choose template
Instead of sending both “split” instances and , we simply send , given that the verifier already knows .
The ZK property
This follows Typical simulator outline.
The Zero Knowledge (Classical) simulator for (malicious) verifier works as follows:
Simulator
- computes a random transcript of the protocol:
- chooses a random challenge
- chooses a random response
- computes the unique fitting announcement
- rejects challenges not consistent with what would output:
- chooses randomness and computes
- If , then output the view Otherwise, start from the beginning and try again.
The PoK property
For simplicity, we assume that the prover has probability 1 to convince an honest verifier, which puts us into the A simplified toy definition scenario. The extractor for prover works as follows:
Extractor
- retrieves the prover’s announcement (for some random )
- retrieves the prover’s response for both challenges as
- From the verification equation, we get
- outputs the witness
Intuitively, the two verification equations give us maps , which we just plug together to get from to (via ). Formally, the witness is correct because .
Non-simplified scenario
Theorem: the Graph Isomorphism protocol is a Proof of Knowledge (Classical) with knowledge error .
For a prover that may not answer all challenges correctly always (but convinces the verifier with probability ), it may happen that when gets the two responses in the second step, one or more of them is actually invalid, i.e. fails the verification equation. In that case, the response is useless for the extractor. In that scenario, will have to restart and try different prover randomness . Using a counting argument, one can show that for some , the prover has to be able to answer both challenges (otherwise it cannot be convincing with probability larger than ). The extractor then tries different until it finds one for which both challenges can be answered.
Notes
- Graph Isomorphism is not known to be -complete, so the language is not of much importance. However, its complement (“prove two graphs are not isomorphic”) is not known to be in , so Graph Isomorphism and its complement often come up in educational contexts as good examples for the power of the class IP.