Documentation

Complexity.Crypto.Computational.GMW.Soundness

Completeness and soundness of the 3-copy GMW protocol #

This module proves perfect completeness (acceptProb_gmwVerifier_gmwProver) and unconditional soundness (acceptProb_gmwVerifier_le) for Cslib.Crypto.GMW.gmwVerifier.

Main results #

References #

Completeness of gmwVerifier with gmwProver #

theorem Cslib.Crypto.GMW.acceptProb_gmwVerifier_gmwProver {α : Type} {generator : List Bool → List Bool} {length : ℕ → ℕ} (hlen : ∀ (seed : List Bool), (generator seed).length = length seed.length) (f : α → Logic.PL.CNF ℕ) (n : ℕ) (a : α) {w : List Bool} (hw : Complexity.ThreeSAT.verifier (f a, w) = true) :
Complexity.acceptProb (gmwVerifier generator length f n a) (gmwProver generator (n + 7) (length (n + 7)) (f a) w) = 1

Completeness of the GMW protocol. When ThreeSAT.verifier (f a, w) = true, the honest prover gmwProver makes gmwVerifier accept with probability 1.

Soundness of gmwVerifier against arbitrary provers #

theorem Cslib.Crypto.GMW.mem_ThreeSAT_of_verifyTranscript_ne {generator : List Bool → List Bool} {s m : ℕ} {φ : Logic.PL.CNF ℕ} {r commitReply openReply₁ openReply₂ : List Bool} {x₁ x₂ : BitString 3} (hbind : NaorBinding generator s (BitString.listRow m 0 r)) (hne : x₁ ≠ x₂) (hv₁ : verifyTranscript generator s m φ r commitReply (List.ofFn x₁) openReply₁ = true) (hv₂ : verifyTranscript generator s m φ r commitReply (List.ofFn x₂) openReply₂ = true) :

If a first-round commitment transcript commitReply under a binding receiver string r admits accepting second-round openings for two distinct 3-bit challenges x₁ ≠ x₂, then φ ∈ ThreeSAT.

theorem Cslib.Crypto.GMW.acceptProb_gmwVerifier_le {α : Type} {generator : List Bool → List Bool} {length : ℕ → ℕ} (hlen : ∀ (seed : List Bool), (generator seed).length = length seed.length) (hstretch : ∀ (k : ℕ), 3 * k + 1 ≤ length k) (f : α → Logic.PL.CNF ℕ) (n : ℕ) (a : α) (hnot : f a ∉ Complexity.ThreeSAT) (P : Complexity.Prover Unit) :
Complexity.acceptProb (gmwVerifier generator length f n a) P ≤ 1 / 3

Soundness of the GMW protocol. When f a ∉ ThreeSAT and 3 * k + 1 ≤ length k for all k, no unbounded stateful prover P makes gmwVerifier accept with probability greater than 1 / 3.