Recent work, including ZKBoo, ZKB++, and Ligero, has developed efficient non-interactive zero-knowledge proofs of knowledge

(NIZKPoKs) for Boolean circuits based on symmetric-key primitives alone, using the “MPC-in-the-head” paradigm of Ishai et al.

We show how to instantiate this paradigm with MPC protocols in

the preprocessing model; once optimized, this results in an NIZKPoK

with shorter proofs (and comparable computation) as in prior work

for circuits containing roughly 300–100,000 AND gates. In contrast

to prior work, our NIZKPoK also supports witness-independent

preprocessing, which allows the prover to shift most of its work to

an offline phase before the witness is known.

We use our NIZKPoK to construct a signature scheme based

only on symmetric-key primitives (and hence with “post-quantum”

security). The resulting scheme has shorter signatures than the

scheme built using ZKB++ (and comparable signing/verification

time), and is even competitive with hash-based signature schemes.

To further highlight the flexibility and power of our NIZKPoK,

we also use it to build efficient ring and group signatures based on

symmetric-key primitives alone. To our knowledge, the resulting

schemes are the most efficient constructions of these primitives

that offer post-quantum security.