draft-irtf-cfrg-fiat-shamir

Fiat-Shamir Transformation

streamIRTF groupcfrg stateactive intendedInformational pages17 rev02 expires2026-09-03 canonicalhttps://datatracker.ietf.org/doc/draft-irtf-cfrg-fiat-shamir/
This document describes how to construct a non-interactive proof via the Fiat–Shamir transformation, using a generic procedure that compiles an interactive proof into a non-interactive one by relying on a stateful duplex sponge object. The duplex sponge interface requires two methods: absorb and squeeze, which respectively read and write elements of a specified base type. The absorb operation incrementally updates the duplex sponge's internal state, while the squeeze operation produces variable-length, unpredictable outputs. This interface can be instantiated with different constructions based on permutation or compression functions. This specification also defines codecs to securely map prover messages into the duplex sponge domain, from the duplex sponge domain into verifier messages. It also establishes how the non-interactive argument string should be serialized.