Incryptography, theFiat–Shamir heuristic, orFiat–Shamir transformation, is a technique for taking an interactiveproof of knowledge and creating adigital signature based on it. This way, some fact (for example, knowledge of a certain secret number) can be publicly proven without revealing underlying information. The technique is due toAmos Fiat andAdi Shamir (1986).[1] For the method to work, the original interactive proof must have the property of beingpublic-coin, i.e. verifier's random coins are made public throughout the proof protocol.
The heuristic was originally presented without a proof of security; later,Pointcheval andStern[2] proved its security againstchosen message attacks in therandom oracle model, that is, assumingrandom oracles exist. This result was generalized to thequantum-accessible random oracle (QROM) by Don, Fehr, Majenz and Schaffner,[3] and concurrently by Liu and Zhandry.[4] In the case that random oracles do not exist, the Fiat–Shamir heuristic has been proven insecure byShafi Goldwasser andYael Tauman Kalai.[5] 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 anon-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.[6]
Here is aninteractive proof of knowledge of a discrete logarithm in, based onSchnorr signature.[7] The public values are and a generatorg of, while the secret value is the discrete logarithm ofy to the baseg.
Peggy wants to prove to Victor, the verifier, that she knows satisfying without revealing.
Peggy picks a random, computes and sends to Victor.
Peggy wants to prove that she knows such that without revealing.
Peggy picks a random and computes.
Peggy computes, where is a cryptographic hash function.
Peggy computes. The resulting proof is the pair.
Anyone can use this proof to calculate and check whether.
If the hash value used below does not depend on the (public) value ofy, the security of the scheme is weakened, as a malicious prover can then select a certain valuet so that the productcx is known.[9]
As long as a fixed random generator can be constructed with the data known to both parties, then any interactive protocol can be transformed into a non-interactive one.[citation needed]
^Fiat, Amos; Shamir, Adi (1987). "How to Prove Yourself: Practical Solutions to Identification and Signature Problems".Advances in Cryptology — CRYPTO' 86. Lecture Notes in Computer Science. Vol. 263. Springer Berlin Heidelberg. pp. 186–194.doi:10.1007/3-540-47721-7_12.ISBN978-3-540-18047-0.
^Pointcheval, David; Stern, Jacques (1996). "Security Proofs for Signature Schemes".Advances in Cryptology — EUROCRYPT '96. Lecture Notes in Computer Science. Vol. 1070. Springer Berlin Heidelberg. pp. 387–398.doi:10.1007/3-540-68339-9_33.ISBN978-3-540-61186-8.
^Goldwasser, S.; Kalai, Y. T. (October 2003). "On the (In)security of the Fiat-Shamir paradigm".44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings. pp. 102–113.doi:10.1109/SFCS.2003.1238185.ISBN0-7695-2040-5.S2CID295289.
^Bellare, Mihir; Rogaway, Phillip (1995),Random Oracles are Practical: A Paradigm for Designing Efficient Protocols, ACM Press, pp. 62–73,CiteSeerX10.1.1.50.3345