Fiat-Shamir Heuristic
The Fiat–Shamir heuristic is a technique for taking an Interactive Proof of Knowledge and creating a digital signature based on it.
Contents
Example
Interactive Version
We have a prime \(n\).
Here is an interactive proof of knowledge of a discrete logarithm.<ref>Template:Cite journal</ref>
- Peggy wants to prove to Victor the verifier that she knows \(x\): the discrete logarithm of \(y = g^x\) to the base \(g\) (mod n).
- She picks a random \(v\in \Z^*_q\), computes \(t = g^v\) and sends \(t\) to Victor.
- Victor picks a random \(c\in \Z^*_q\) and sends it to Peggy.
- Peggy computes \(r = v - cx\) and returns \(r\) to Victor.
- He checks whether \(t \equiv g^ry^c\). This holds because \(g^ry^c = g^{v - cx}g^{xc} = g^v = t\).
Non-Interactive Version
Fiat–Shamir heuristic allows to replace the interactive step 3 with a non-interactive random oracle access. In practice, we can use a cryptographic hash function instead.<ref>Template:Cite journal</ref>
- Peggy wants to prove that she knows \(x\): the discrete logarithm of \(y = g^x\) to the base \(g\).
- She picks a random \(v\in\Z^*_q\) and computes \(t = g^v\).
- Peggy computes \(c = H(g,y,t)\), where \(H()\) is a cryptographic hash function.
- She computes \(r = v - cx\). The resulting proof is the pair \((t,r)\). As \(r\) is an exponent of \(g\), it is calculated modulo \(q-1\), not modulo \(q\).
- Anyone can check whether \(t \equiv g^ry^c\).
If the hash value used below does not depend on the (public) value of y, the security of the scheme is weakened, as a malicious prover can then select a certain value x so that the product cx is known.<ref>Template:Cite book</ref>
Relevant papers
It was first introduced in a paper by Amos Fiat and Adi Shamir (1986).<ref>Template:Cite journal</ref>.
Assumptions
- The first assumption is that the original interactive proof must be public coin
- The second assumption is the existence of Random Oracles i.e. the heuristic only holds in the Random Oracle Model
Security
The heuristic was originally presented without a proof of security; later, Pointcheval and Stern<ref>Template:Cite journal</ref> proved its security against chosen message attacks in the random oracle model, that is, assuming random oracles exist. This result was generalized to the quantum-accessible random oracle (QROM) by Don, Fehr, Majenz and Schaffner<ref>Template:Cite journal</ref>, and concurrently by Liu and Zhandry<ref>Template:Cite journal</ref>. In the case that random oracles do not exist, the Fiat–Shamir heuristic has been proven insecure by Shafi Goldwasser and Yael Tauman Kalai.<ref>Template:Cite journal</ref> The Fiat–Shamir heuristic thus demonstrates a major application of random oracles. More generally, the Fiat–Shamir heuristic may also be viewed as converting a public-coin interactive proof of knowledge into a non-interactive proof of knowledge. If the interactive proof is used as an identification tool, then the non-interactive version can be used directly as a digital signature by using the message as part of the input to the random oracle.
Useful Links and Notes
References
References
<references/>