Polynomial-time and PPT certificates for the 3-copy GMW protocol #
This module registers @[fun_prop] polynomial-time and strict-(oracle-)PPT certificates for the
3-copy masked-3SAT GMW protocol gadgets defined in Complexity.Crypto.Computational.GMW.Protocol,
proves that runTwoRound preserves strict PPT when driven by polynomial-time round functions and a
strict oracle PPT verifier (isPPTOn_runTwoRound), defines the zero-knowledge simulator
gmwSimulator (via gmwFirstSuccess, gmwSampleSimCoins, gmwSimWithPads, gmwSimAttempt), and
certifies:
isOraclePPTOn_gmwVerifier: the honest verifiergmwVerifieris uniform strict oracle PPT;isPPTOn_gmwInteract: running any uniform strict oracle PPT verifier against the honest prover is uniform strict PPT;isPPTOn_gmwSimulator: the GMW zero-knowledge simulatorgmwSimulatoris uniform strict PPT.
Main definitions #
Cslib.Crypto.GMW.gmwFirstSuccess: extracts the payload of the first successful simulation attempt (true :: out) from a list of attempts.Cslib.Crypto.GMW.gmwSampleSimCoins,Cslib.Crypto.GMW.gmwSimWithPads,Cslib.Crypto.GMW.gmwSimAttempt: single-attempt GMW simulator components.Cslib.Crypto.GMW.gmwSimulator: the GMW zero-knowledge simulator repeatinggmwSimAttemptn + 1times.
Main results #
Cslib.Crypto.GMW.isOraclePPTOn_gmwVerifier:gmwVerifierisIsOraclePPTOn.Cslib.Crypto.GMW.isPPTOn_gmwInteract:gmwInteractisIsPPTOn.Cslib.Crypto.GMW.isPPTOn_gmwSimulator:gmwSimulatorisIsPPTOn.
References #
Polynomial-time certificates for protocol gadgets #
PPT certificates for runTwoRound and honest interaction #
GMW zero-knowledge simulator and its PPT certificate #
Sample the GMW simulator's random strings and commitment seeds for a guessed challenge
ch_guess, returning (simBits φ ch_guess r₀ r₁ r₂, seeds).
Instances For
Run one simulated GMW attempt with pre-sampled unopened pads pads (without any witness).
Instances For
The GMW zero-knowledge simulator: repeat gmwSimAttempt n + 1 times and return the first
successful output (gmwFirstSuccess).