Lattice-based Cryptography: Zero-Knowledge Proofs of Knowledge
Posted on
ZK proofs and -protocols
In the general sense, a Zero-Knowledge proof allows a prover to convince a verifier of some property, without revealing any further information other than the property.
-protocol
We consider some language , and a relation such that .
A protocol is a -protocol for the relation iff:
- is of the 3-move form:
- sends a message . (The commitment).
- sends some response . (The challenge).
- sends a reply , and decides to accept or reject.
Completeness:
If and are honest and follow the protocol on , then always accept.
Soundness:
If , no cheating prover can convince an honest verifier of the opposite, except with some small probability.
Knowledge extractor / Special soundness:
Given two accepting transcripts on the same input , , where , one can efficiently compute a witness such that .
From what I understand, this is essentially the “proof of knowledge” part of a ZKPoK. If an extractor can always compute from interacting with , it means that has to know .
Sometimes the following notation seems to be used to express the proof of knowledge:
Honest-Verifier / Zero-Knowledge:
There exists a polynomial-time simulator , which on input and a random , can output an accepting conversation of the form indistinguishable from the real conversations distribution between , on input .
OR -protocol
Given , , , from two -protocols, one can construct a new -protocol for the union of both languages with relation .
For a proof of , the following protocol does not leak information about which of the two languages comes from.
- computes the first message , using , as input.
chooses at random and runs the simulator on input (, ).sends output to . - chooses a random -bit string and sends it to .
- sets , and computes the answer to challenge . sends back values .
- checks that , and that both conversations and are accepting, on input .
Relaxed ZK proofs
Relaxed -protocol
Given two NP-languages , defined by the relations , a relaxed -protocol for is a 3-round 2-party protocol between algorithms (, ), that satisfies standard compleness and ZK, but with the following difference:
Knowledge extractor is only guaranteed to output a witness such that .
Relaxed unbounded simulation soundness
There exists some PPT simulator such that for all PPT adversaries ,
is negligible, where is the set pairs where made a query and obtained response .
Stern’s Protocol
Stern’s protocol allows to prove knowledge of a binary vector of fixed Hamming weight such that , where is public. The simple idea is to send to the verifier a permutation of the vector so that the constraint is satisfied but does not leak any information about .
Note that here, having is not interesting per se, but being able to prove this means knowing a witness such that , without disclosing .
We have .
Remarks
- Imposing a fixed Hamming weight means we do leak some information about .
Abstracting Stern’s Protocol
Libert et al provide a more general Stern-like protocol which gets rid of the Hamming weight constraint. Now, belongs to a set endowed with permutations such that:
- if and uniform in , then uniform in .
Fiat-Shamir with Aborts
Fiat-Shamir with Aborts is a proof of knowledge for proving linear relations, also based on the hardness of lattice problems. Given an satisfying the relation:
the construction is a proof of knowledge of some low-norm and satisfying:
Relaxed Verifiable Encryption