MCSP in BPP rules out one-way functions #
If the Minimum Circuit Size Problem is decidable in probabilistic polynomial time, then one-way
functions do not exist Kabanets and Cai. One-way functions give pseudorandom
functions (Cslib.Crypto.OneWay.exists_pseudorandomFunction), and an MCSP decider distinguishes a
pseudorandom function from a random one:
- The restriction of a keyed family computable in polynomial time to the
2 ^ minputs of lengthnwhose firstn - mbits arefalse, read through the first output bit (Cslib.Crypto.KabanetsCai.restriction), has a circuit with at mostc (3 n + 2) ^ c + 2gates for a constantc(Cslib.Crypto.KabanetsCai.exists_complexity_restriction_le). - A random function restricts to a uniformly random truth table
(
Cslib.Crypto.KabanetsCai.uniformOfFintype_map_restrictTable), and at most2 ^ (2 ^ m / 4)of the2 ^ (2 ^ m)truth tables have circuits with at most⌊2 ^ m / (5 m)⌋gates (Cslib.MCSP.ncard_setOf_mem_le,Cslib.Crypto.KabanetsCai.toReal_map_restrictTable_mem_le).
The distinguisher (Cslib.Crypto.KabanetsCai.mcspDistinguisher) takes m = d ⌈log₂ n⌉ for
d = c + 2, queries the oracle on the 2 ^ m ≤ (2 n) ^ d words above, assembles the first bits
of the replies into a truth table, and runs the bounded-error MCSP decider at threshold
⌊2 ^ m / (5 m)⌋. For large n this threshold is at least the circuit size of every restriction
of the family, so the decider accepts the pseudorandom table with probability at least 2 / 3,
and a random table with probability at most 1 / 3 + 2 ^ (2 ^ m / 4) / 2 ^ (2 ^ m). The
distinguisher is a uniform strict oracle PPT adversary in the model of
Cslib.Crypto.PseudorandomFunction (Cslib.Crypto.KabanetsCai.isOraclePPT_mcspDistinguisher),
and its advantage is at least 1 / 4 for all large n, which is not negligible.
MCSP is the language Cslib.MCSP of instances (T, s) whose truth table T of 2 ^ m bits has
a De Morgan circuit with at most s gates (all gates counted), encoded by the table followed by
s in binary (Cslib.MCSP.encInstance); BPP is Cslib.Complexity.BPP for this encoding. The
hypothesis is that MCSP is in BPP at all thresholds; the distinguisher only runs the decider at
thresholds ⌊2 ^ m / (5 m)⌋. The parts of the distinguisher live in the namespace
Cslib.Crypto.KabanetsCai.
Main definitions #
Cslib.Crypto.KabanetsCai.mcspRun: run a bounded-error decider for MCSP on fresh coins.Cslib.Crypto.KabanetsCai.mcspDistinguisher: the oracle adversary built from an MCSP decider.
Main results #
Cslib.Crypto.KabanetsCai.toReal_map_restrictTable_mem_le: few restrictions of a random function have small circuits.Cslib.Crypto.KabanetsCai.isOraclePPT_mcspDistinguisher: the distinguisher is uniform strict oracle PPT.Cslib.Crypto.KabanetsCai.eval_prfRealGame_mcspDistinguisher,Cslib.Crypto.KabanetsCai.eval_prfIdealGame_mcspDistinguisher: in both games the decider runs on the truth table of a restriction.Cslib.Crypto.not_pseudorandomFunction_of_MCSP_mem_BPP: if MCSP is inBPP, there are no pseudorandom functions.Cslib.Crypto.not_oneWay_of_MCSP_mem_BPP,Cslib.Crypto.not_oneWay_of_MCSP_mem_P: Kabanets–Cai: if MCSP is inBPP, or inP, there are no one-way functions.
References #
Few random restrictions have small circuits #
Few restrictions of a random function have small circuits. For 16 ≤ m ≤ n, the
restriction of a uniformly random function from n bits to n bits to m inputs has a circuit
with at most ⌊2 ^ m / (5 m)⌋ gates with probability at most 2 ^ (2 ^ m / 4) / 2 ^ (2 ^ m).
Running a bounded-error decider for MCSP #
Run a decider with random coins for MCSP on one instance, with fresh uniform coins of the length the bounded-error condition prescribes.
Instances For
The acceptance probability of mcspRun is the fraction of accepting coin strings.
A bounded-error decider accepts a member of MCSP with probability at least 2 / 3.
A bounded-error decider accepts a non-member of MCSP with probability at most 1 / 3.
The distinguisher #
The number of inputs of the truth tables read at parameter n: d ⌈log₂ n⌉.
Instances For
The MCSP instance read from a list of answers at arity m, with threshold 2 ^ m / (5 m).
Instances For
The Kabanets–Cai distinguisher. At parameter n, ask the oracle for the truth table of
its restriction to m = d ⌈log₂ n⌉ inputs and run the bounded-error decider V for MCSP at
threshold 2 ^ m / (5 m).
Instances For
The answers of a deterministic oracle to the queries form the truth table of its restriction.
Against a deterministic oracle, the distinguisher runs the decider on the truth table of the oracle's restriction.
The distinguisher is uniform strict oracle PPT #
The arity is computed in unary from the unary parameter.
The table size 2 ^ m is computed in unary from the unary parameter.
The queries are computed in polynomial time from the unary parameter.
The instance read from the answers is computed in polynomial time.
The Kabanets–Cai distinguisher is uniform strict oracle PPT, for a polynomial-time
decider V: it makes 2 ^ m ≤ (2 (n + 1)) ^ d queries of length n and runs V on a truth table
of 2 ^ m bits.
The advantage of the distinguisher #
In the real game, the decider runs on the truth table of the restriction of the family with a uniform key.
In the ideal game, the decider runs on the truth table of the restriction of a uniformly random function.
For large n, the arity m = d ⌈log₂ n⌉ with d = c + 2 satisfies 16 ≤ m ≤ n, and the
threshold 2 ^ m / (5 m) is at least c (3 n + 2) ^ c + 2.
MCSP in BPP rules out pseudorandom functions. If a bounded-error polynomial-time
decider for MCSP exists, then every keyed family computable in polynomial time is distinguished
from a random function by a uniform strict oracle PPT adversary (mcspDistinguisher) with
advantage at least 1 / 4 for all large n.
Kabanets–Cai Kabanets and Cai: if MCSP is in BPP, with
instances encoded by their truth table and threshold, then no function is one-way.
Kabanets–Cai for deterministic deciders: if MCSP is in P, no function is one-way.