Computational cryptography › Hashes and symmetric ciphers
Trust or structural assumption

Fiat-Shamir holds with real hashes

In plain words

A trick that replaces a verifier's random questions with a hash, so a proof becomes a single file anyone can check. It's proven safe only for an imaginary, perfectly random hash.

The idea: In an interactive proof, the verifier keeps the prover honest with unpredictable questions: a cheater can't prepare answers in advance. Fiat-Shamir lets the prover generate those questions by hashing the conversation so far, so changing anything changes the questions. That works as long as the prover can't steer the hash, which is guaranteed for a perfectly random one. The 2025 attack found a way to steer a real one: make the statement being proven compute the hash itself, so the prover can see its own questions coming.

Why it matters: Nearly every zero-knowledge proof used in practice depends on it, and in 2025 researchers forged proofs against one standard design.

The details

On the map: for multi-round proofs, proven only for an idealized hash. A 2025 attack forged GKR-based proofs for any hash, using a crafted circuit

Fiat-Shamir (1986)[1] turns an interactive proof, where a verifier keeps the prover honest with random challenges, into a non-interactive one: the prover computes each challenge as a hash of everything said so far. Almost every practical non-interactive proof is built this way, as are many signatures.

It is proven secure only if the hash behaves like a random oracle[2, 3]. With real hash functions there is no general proof, and there are known failures:

This box covers multi-round proof systems, where the risk is real. The FS tag marks what depends on it. Signatures built with Fiat-Shamir from simple three-move protocols (Schnorr, EdDSA, ML-DSA, SQIsign) are the well-understood case, shown with the ROM tag instead. For specific protocols Fiat-Shamir can be proven secure with special hash functions built from LWE (2019)[10, 11], but those aren't the hashes used in practice.

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

References

  1. Amos Fiat and Adi Shamir. How To Prove Yourself: Practical Solutions to Identification and Signature Problems. Advances in Cryptology — CRYPTO’ 86, 1986. doi:10.1007/3-540-47721-7_12
  2. David Pointcheval and Jacques Stern. Security Arguments for Digital Signatures and Blind Signatures. Journal of Cryptology, 2000. doi:10.1007/s001450010003
  3. Eli Ben-Sasson, Alessandro Chiesa and Nicholas Spooner. Interactive Oracle Proofs. Theory of Cryptography, 2016. doi:10.1007/978-3-662-53644-5_2
  4. Ran Canetti, Oded Goldreich and Shai Halevi. The random oracle methodology, revisited (preliminary version). Proceedings of the thirtieth annual ACM symposium on Theory of computing - STOC '98, 1998. doi:10.1145/276698.276741
  5. Ran Canetti, Oded Goldreich and Shai Halevi. The random oracle methodology, revisited. Journal of the ACM, 2004. doi:10.1145/1008731.1008734
  6. S. Goldwasser and Y.T. Kalai. On the (In)security of the Fiat-Shamir paradigm. 44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings.. doi:10.1109/sfcs.2003.1238185
  7. Dmitry Khovratovich, Ron D. Rothblum and Lev Soukhanov. How to Prove False Statements: Practical Attacks on Fiat-Shamir. IACR Cryptology ePrint Archive, Paper 2025/118. eprint.iacr.org/2025/118
  8. David Bernhard, Olivier Pereira and Bogdan Warinschi. How Not to Prove Yourself: Pitfalls of the Fiat-Shamir Heuristic and Applications to Helios. Advances in Cryptology – ASIACRYPT 2012. doi:10.1007/978-3-642-34961-4_38
  9. Trail of Bits. Coordinated disclosure of vulnerabilities affecting Girault, Bulletproofs, and PlonK. Trail of Bits blog, 2022. blog.trailofbits.com/2022/04/13/part-1-coordinated-disclosure-of-vulnerabilities-affecting-girault-bulletproofs-and-plonk
  10. Ran Canetti, Yilei Chen, Justin Holmgren et al. Fiat-Shamir: from practice to theory. Proceedings of the 51st Annual ACM SIGACT Symposium on Theory of Computing, 2019. doi:10.1145/3313276.3316380
  11. Chris Peikert and Sina Shiehian. Noninteractive Zero Knowledge for NP from (Plain) Learning with Errors. Advances in Cryptology – CRYPTO 2019. doi:10.1007/978-3-030-26948-7_4