Polynomial-Time Completeness of $\text{OT}_1^4$ for Semi-Honest Multi-Party Computation #
This module formalizes a proper-coalition variant of Goldreich's semi-honest multi-party
completeness theorem for 1-out-of-4 bit oblivious transfer $\text{OT}_1^4$ (Section 7.5.2.4,
Theorem 7.5.12, print p. 707; generalizing Section 7.3.4, Theorem 7.3.11, print p. 648), with
uniform efficiency certificates for the joint word-level runner and coalition simulators.
Given any polynomial-time computable family of $m$-party randomized functionalities specified
by a word-level evaluator
F : α × List Bool → List Bool with polynomial-time unary input width n : α → ℕ, output width
k : α → ℕ, and shared-coin width coins : α → ℕ:
- Uniform Circuit Compilation:
Cslib.Complexity.CircuitValue.exists_uniformCircuitFamilycompilesFinto a polynomial-time constructible family of Boolean circuitsC : (a : α) → Circuit Boolean.signature (m * n a + coins a) (m * k a)whose evaluation agrees withwordRandomizedFunctionality m coins n k F a. - Word-Level Protocol Execution & Bridge Lemma:
Protocol.runEncodedexecutes anyot14Spec-hybrid protocol inCslib.Probability.WordOracleComp Unit (List Bool)by translating each typedot14Specquery to a 6-bit word query and reading the 1-bit reply prefix.Protocol.eval_runEncoded_eq_evalWith_mapproves that runningΠ.runEncodedagainstot14WordHandleryields the exact distribution of(Π.evalWith ot14World x).map (encodeViewsAndOutputs encView encOut). - Uniform Efficiency Certificates: Over
Sigma-packaged family inputsFamilyRunInputandFamilySimInput,isOraclePPTOn_gmwOT14RandomizedProtocolcertifies that the centralized joint word-encoded executionProtocol.runEncodedofgmwOT14RandomizedProtocolacross allmparties isCslib.Probability.IsOraclePPTOn(note that this certifies the joint word-level runner rather than separate per-party local PPT strategies), andisPPTOn_gmwOT14RandomizedSimcertifies that for every static coalitionI : Finset (Fin m), the encoded view simulatorgmwOT14RandomizedSimisCslib.Probability.IsPPTOn. BecausegmwCircuitProtocol(Construction 7.5.10, p. 706) includes onesharedMulSpec mshare-refresh call per output coordinate(r, j) : Fin m × Fin k ain Step 3 in addition to one call per.and/.orgate in Step 2, composing withmultiPartyMulProtocol m(Construction 7.5.8, p. 704) andtwoPartyMulProtocol(Construction 7.3.7, pp. 643–644) expands eachsharedMulSpec mcall into $m(m-1)/2$ pairwiseot14Speccalls (adding $m \cdot k(a) \cdot m(m-1)/2$ calls in Step 3, polynomial in $m, n(a), k(a), (C\,a).\text{size}$). - End-to-End Completeness (
exists_perfectSemiHonestPrivate_ot14_of_polyTime): Formalizes a proper-coalition variant of Goldreich's Theorem 7.5.12, combining uniform circuit compilation, proper-coalition perfect semi-honest privacy inot14World(PerfectSemiHonestPrivateProper), and uniformIsOraclePPTOn/IsPPTOnefficiency. The proper-coalition quantifierI ≠ Finset.univis narrower than Goldreich's Definition 7.5.1 and Theorem 7.5.12 (which quantify over allI ⊆ [m], p. 696; Goldreich's text on pp. 697 and 703 treatsI = [m]as trivial without restricting that remark to deterministic functionalities or to the view-only Eq. 7.39). Under the joint view-and-output equation Eq. 7.40 for randomized functionalities,I = Finset.univis not vacuous: the canonical independent-coin-share simulatorrandomizedWrapperSimis refuted atI = Finset.univbynot_perfectSemiHonestPrivate_coinEchoRandomizedWrapper_univin ComplexityTests/Crypto/MPC.lean, and any full-coalition simulator receiving only(x, y)would have to sample coin shares whose XORrsatisfiesg(r, x) = y.
Main definitions #
Cslib.Crypto.Protocols.MPC.encodeCoinsAndInputs,Cslib.Crypto.Protocols.MPC.wordRandomizedFunctionality: word-encodedm-party randomized functionality family induced byF : α × List Bool → List Bool.Cslib.Crypto.Protocols.MPC.encodeOT14Query,Cslib.Crypto.Protocols.MPC.ot14WordHandler,Cslib.Crypto.Protocols.MPC.decodeOT14Reply: 6-bit query encoding and stateful word-oracle handler forot14World(Section 7.3.2, Eq. 7.20, p. 640).Cslib.Crypto.Protocols.MPC.Steps.runEncoded,Cslib.Crypto.Protocols.MPC.Protocol.runEncoded,Cslib.Crypto.Protocols.MPC.encodeViewsAndOutputs: generic word-level protocol runner inWordOracleComp Unit (List Bool).Cslib.Crypto.Protocols.MPC.FamilyRunInput,Cslib.Crypto.Protocols.MPC.FamilySimInput,Cslib.Crypto.Protocols.MPC.encFamilyRunInput,Cslib.Crypto.Protocols.MPC.encFamilySimInput:Sigma-packaged family input records and injective bit-list encodings.Cslib.Crypto.Protocols.MPC.encGMWPartyView,Cslib.Crypto.Protocols.MPC.encodeCoalitionView: word-level view encoders forgmwOT14RandomizedProtocolandgmwOT14RandomizedSim.
Main results #
Cslib.Crypto.Protocols.MPC.Steps.runWith_runEncoded_eq_evalWith,Cslib.Crypto.Protocols.MPC.Protocol.eval_runEncoded_eq_evalWith_map: bridge lemmas relatingSteps.runEncoded/Protocol.runEncodedunderot14WordHandlertoevalWith ot14World.Cslib.Crypto.Protocols.MPC.isOraclePPTOn_gmwOT14RandomizedProtocol: uniformIsOraclePPTOncertificate for the joint word-level runnerProtocol.runEncodedapplied togmwOT14RandomizedProtocol.Cslib.Crypto.Protocols.MPC.isPPTOn_gmwOT14RandomizedSim: uniformIsPPTOncertificate forgmwOT14RandomizedSim.Cslib.Crypto.Protocols.MPC.exists_perfectSemiHonestPrivate_ot14_of_polyTime: proper-coalition variant of Theorem 7.5.12 (Section 7.5.2.4, print p. 707; generalizing Theorem 7.3.11, Section 7.3.4, print p. 648), establishing polynomial-time completeness of $\text{OT}_1^4$ for $m$-party semi-honest computation against every proper coalitionI ≠ Finset.univ.
References #
- O. Goldreich, Foundations of Cryptography, Volume 2: Basic Applications, Section 7.3.2 (Eq. 7.20, p. 640), Section 7.3.3 (Construction 7.3.7, pp. 643–644), Section 7.3.4 (Theorem 7.3.11, p. 648), Section 7.5.1.2 (Definition 7.5.1, Eqs. 7.39–7.40, p. 696; p. 697), Section 7.5.2.1 (p. 703), Section 7.5.2.2 (Construction 7.5.8, p. 704), Section 7.5.2.3 (Construction 7.5.10, p. 706), and Section 7.5.2.4 (Theorem 7.5.12, p. 707).
Part 1: Word-Level Functionality, ot14Spec Word Handler, and Protocol.runEncoded #
Randomized m-party functionality family induced by a word-level function
F : α × List Bool → List Bool with coins a random bits, n a-bit party inputs, and k a-bit
party outputs.
Instances For
Serialize a typed ot14Spec query q : (s : Fin 2) → ot14Spec.Query () s as a 6-bit word:
the sender's four table bits q 0 0, q 0 1, q 0 2, q 0 3 followed by the receiver's two selector
bits (fin4ToBoolPair (q 1)).1, (fin4ToBoolPair (q 1)).2.
Instances For
Stateful word-oracle handler realizing ot14World on 6-bit requests produced by
encodeOT14Query: returns the selected sender bit [req.getD idx false] while leaving the Unit
state unchanged.
Instances For
Execute steps : Steps State Out sc over ot14Spec in WordOracleComp Unit, translating each
.oracle round into a 1-bit ProbOracleComp.query call with payload encodeOT14Query.
Instances For
Encode a complete (views, outputs) execution outcome into a single bit string List Bool
by pairing the framed list of all m encoded party views with the framed list of all m encoded
party outputs.
Instances For
Generic word-level execution of proto.run x in WordOracleComp Unit (List Bool), translating
each ot14Spec query to a word-oracle call and encoding the resulting (views, outputs) pair
via (encView, encOut).
Instances For
Step-level bridge lemma: interpreting steps.runEncoded st against ot14WordHandler produces
the exact distribution of steps.evalWith ot14World st paired with ().
Bridge lemma: interpreting proto.runEncoded against the word-encoded ot14World handler
produces the exact law of proto.evalWith ot14World x mapped through encodeViewsAndOutputs.
Part 2: Sigma-Packaged Family Input Encodings and encGMWPartyView #
Injective bit-list encoding of FamilyRunInput α m n: pairs enc a with the packed m * n a
party input bits List.ofFn (BitString.blocksEquiv.symm x).
Instances For
Injective bit-list encoding of FamilySimInput α m n k I: pairs enc a with the zero-extended
packed coalition input bits extendCoalitionBits I xI and output bits
extendCoalitionBits I yI.
Instances For
Serialize party i's complete PartyView in gmwOT14RandomizedProtocol m coins n k C to a
List Bool encoding:
v.input : BitString nv.coins.1 : BitString coins(randomized-wrapper coin share)v.coins.2.1.1 : Fin (n + coins) → Fin (m - 1) → Bool(Step 1 input-sharing coins)encOTSubCoins _ i v.coins.2.2(Step 2 & Step 3 $\text{OT}_1^4$ sender coins)- Step 1 received input shares (
encPairsMsgReceived) - Step 2 & Step 3 received $\text{OT}_1^4$ receiver answers (
encOTOracleAnswers) - Step 3 received output-reconstruction shares (
encOutCoordsMsgReceived).
Instances For
Encode a coalition view tuple vI : (i : I) → PartyView In Coins sc i.1 into List Bool
by listing encView i (vI ⟨i, hi⟩) for i ∈ I and [] for i ∉ I.
Instances For
Part 3: Uniform Polynomial-Time Compilation of xorPreludeCircuit #
Part 4: Bounded-Growth Monadic List Folds and Word-Level Efficiency #
Section 4B: Word-Level Real and Simulated Runners and Their PPT Certificates #
Section 4C: Equivalence of Word-Level Runners with Protocol.runEncoded and #
gmwOT14RandomizedSim
Sub-part 4C.2: One sharedMulSpec m Round & Step 1 Input Sharing #
Sub-part 4C.2: Step 1 (inputShareSteps) Equivalence #
Sub-part 4C.3: Step 2 (progSteps) Equivalence #
Sub-part 4C.4: Step 3 (outputSteps) Equivalence #
Sub-part 4C.5: End-to-End Runner & Simulator Equivalence #
Part 5: Uniform Polynomial-Time Certificates and End-to-End Theorem 7.5.12 #
Uniform oracle-PPT certificate for the centralized joint word-level runner Protocol.runEncoded
applied to the m-party $\text{OT}_1^4$-hybrid GMW protocol family gmwOT14RandomizedProtocol
(certifying the joint word-level execution across all m parties over encFamilyRunInput enc m n
rather than separate per-party local PPT strategies).
Uniform PPT certificate for the m-party $\text{OT}_1^4$-hybrid GMW coalition simulator family
gmwOT14RandomizedSim for any static coalition I : Finset (Fin m).
Proper-coalition variant of Theorem 7.5.12 (Goldreich Section 7.5.2.4, p. 707; generalizing
Theorem 7.3.11, Section 7.3.4, p. 648): every polynomial-time m-party randomized functionality
family F is privately reducible to $\text{OT}_1^4$ in the semi-honest model against every proper
static coalition I ≠ Finset.univ, with uniform polynomial-time circuit family C, uniform
IsOraclePPTOn joint word-level protocol execution via Protocol.runEncoded (linked to
Protocol.evalWith ot14World by Protocol.eval_runEncoded_eq_evalWith_map), and uniform
IsPPTOn coalition simulators.
Note that the proper-coalition quantifier I ≠ Finset.univ (PerfectSemiHonestPrivateProper) is
narrower than Goldreich's Definition 7.5.1 and Theorem 7.5.12 (which quantify over all I ⊆ [m],
p. 696; Goldreich's text on pp. 697 and 703 treats I = [m] as trivial without restricting that
remark to deterministic functionalities or to the view-only Eq. 7.39). Under the joint
view-and-output equation Eq. 7.40 for randomized functionalities, I = Finset.univ is not vacuous:
the canonical independent-coin-share simulator randomizedWrapperSim is refuted at
I = Finset.univ by not_perfectSemiHonestPrivate_coinEchoRandomizedWrapper_univ in
ComplexityTests/Crypto/MPC.lean,
and any full-coalition simulator receiving only (x, y) would have to sample coin shares whose
XOR r satisfies g(r, x) = y.