Pseudorandomness and one-way functions

Complexity-theoretic foundations of cryptography and derandomization: one-way functions, hardcore predicates (Goldreich–Levin), hardness amplification (Yao's XOR lemma), hardness-versus-randomness generators (Nisan–Wigderson), and Impagliazzo's five worlds.

TheoremNisan-Wigderson: exponential hardness in E derandomizes BPP#●ready to prove

Suppose there are a decision problem \(f\) in E and a natural number \(c > 0\) such that, for every \(n\), every well-formed flat Boolean circuit \(C\) on \(n\) inputs without mod gates that computes \(f\) on all bitstrings of length \(n\) (for every bitstring \(x\) of length \(n\), the value of its last gate on input \(x\) is \(f(x)\)) satisfies \(|C|^c \ge 2^n\), where \(|C|\) is its number of gates; that is, \(C\) has at least \(2^{n/c}\) gates. Then BPP equals P.

public theorem_wanted nisan_wigderson :
    (∃ f : List Bool → Bool, f ∈ E ∧ ∃ c : ℕ, 0 < c ∧
      ∀ n : ℕ, ∀ C : List (ACGate n), WellFormedCircuit C → IsModFree C →
        (∀ x : List Bool, x.length = n →
          (circuitEval C (fun i => x.getD (i : ℕ) false)).getLast? = some (f x)) →
            C.length ^ c ≥ 2 ^ n) →
      BPP = MetaMathlibExt.ComplexityTheory.P
Sources
  • N. Nisan and A. Wigderson, "Hardness vs randomness", Journal of Computer and System Sciences 49 (1994), 149-167 (FOCS 1988).
Uses 9

TheoremOne-way functions imply P ≠ NP#●ready to prove

If some family \(f\), assigning to each natural number \(n\) and each \(n\)-bit string \(x\) a bitstring \(f_n(x)\), is a one-way function family, then \(\mathrm{P} \neq \mathrm{NP}\).

public theorem_wanted owf_implies_p_ne_np :
    ∀ f : (n : ℕ) → (Fin n → Bool) → List Bool, IsOneWayFunction f → P ≠ NP
Sources
  • O. Goldreich, Foundations of Cryptography, Vol. 1, Cambridge University Press, 2001, Section 2.2 (one-way functions imply P ≠ NP); R. Impagliazzo, "A personal view of average-case complexity", Proceedings of the Tenth Annual Structure in Complexities Theory Conference (1995), 134-147 (five worlds).
Uses 4
2 ready to prove

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.