Yao's Weak-to-Strong One-Way Function Hardness Amplification #
This module formalizes Yao's hardness amplification theorem ([Yao82];
Goldreich, Vol. 1, §2.3, Theorem 2.3.2;
Liu and Pass, Theorem 2.3, §2.1, p. 8 of arXiv:2009.11514v1):
if there exists a weak one-way function (WeakOneWay), then there exists a strong one-way
function (OneWay).
Construction Overview #
- Output-length normalization: Given
hf : WeakOneWay f, applyWeakOneWay.exists_fixedOutputLengthto obtain a weak one-way function $g$ with a polynomial-time unary output-length scheduleoutLen : ℕ → ℕ(∀ x, (g x).length = outLen x.length) and a polynomial $q : \mathbb{N}[X]$ ($\forall N,\, 0 < q(N)$) such thatWeakOneWayAt g (fun N => 1 / (q.eval N : ℝ)). - Parallel direct product on schedule $m(n)$: At parameter $n \in \mathbb{N}$, set block width
$w(n) := n + 1$, block count $k(n) := 2 \cdot q(w(n)) \cdot w(n)$, and input length
$m(n) := k(n) \cdot w(n)$. On an input $X \in \{0, 1\}^{m(n)}$,
parallelCore k w g n Xsplits $X$ into $k(n)$ blocks $x_0, \dots, x_{k(n)-1} \in \{0, 1\}^{w(n)}$ viaBitString.listRowand concatenates $g(x_0) \mathbin{\Vert} \dots \mathbin{\Vert} g(x_{k(n)-1})$. - Direct reduction and probability bound: For any uniform strict PPT inverter $\mathcal{A}$
against
familyInversionGame m (parallelCore k w g)and any target polynomial degree $d \in \mathbb{N}$, running $t_d(n) := 4 \cdot q(w(n)) \cdot k(n) \cdot p_d(n)$ independent planted-slot trials (where $p_d(n) = (n + 1)^{d + 1}$) defines a uniform strict PPT inverter $B_d$ against $g$. UsingBitString.uniformList_all_listRow_truetwice—once across the $k(n)$ input blocks of $X$ and once across the $t_d(n)$ independent seed blocks of $B_d$—together with the exact single-slot planting lawBitString.uniformList_replaceRow, the weak one-wayness bound on $g$ forces $\mathcal{A}$'s inversion probability at parameter $n$ to be at most $(1/2)^{n+1} + \frac{1}{2 p_d(n)} \le \frac{1}{p_d(n)}$ for all sufficiently large $n$. - Length-universal extension: Applying
OneWayReindex.oneWayto the schedule $m(n)$ ($m(n) \ge n + 1$) extendsparallelCore k w gto a single strong one-way function on all binary strings.
Main definitions #
Cslib.Crypto.OneWayAmplification.parallelCore: evaluate $f$ in parallel on $k(n)$ blocks of width $w(n)$ and concatenate the outputs.Cslib.Crypto.OneWayAmplification.plantedImage: form the $k(n)$-block parallel output with a challenge $y$ planted in slot $j$.
Main results #
Cslib.Crypto.OneWayAmplification.familyInversionGame_parallelCore_negligible: any uniform strict PPT adversary has negligible inversion probability againstparallelCoreon schedule $m(n) = 2 q(n+1) (n+1)^2$.Cslib.Crypto.WeakOneWay.exists_oneWay: every weak one-way function yields a strong one-way function (Liu and Pass, Theorem 2.3, §2.1, p. 8 ofarXiv:2009.11514v1; [Yao82]).Cslib.Crypto.exists_oneWay_of_exists_weakOneWay: existential form of Theorem 2.3.Cslib.Crypto.exists_oneWay_iff_exists_weakOneWay: equivalence of weak and strong one-way functions (Goldreich, Vol. 1, §2.3, Theorem 2.3.2).
References #
- Y. Liu and R. Pass, On One-Way Functions and Kolmogorov Complexity,
full version
arXiv:2009.11514v1(Section 2.1, Theorem 2.3, p. 8). - A. C. Yao, Theory and Application of Trapdoor Functions.
- O. Goldreich, Foundations of Cryptography, Volume 1, Section 2.3, Theorem 2.3.2.
Geometric amplification bounds #
Parallel evaluation and planted challenges #
When f has fixed output length outLen |x| on inputs of length |x|, parallelCore
produces outputs of exact length k n * outLen (w n).
Extracting the j-th output block of width outLen (w n) from parallelCore recovers
f (BitString.listRow (w n) j X).
Any preimage under parallelCore k w f n must invert every individual block j < k n.
When y has length outLen (w n), plantedImage has length k n * outLen (w n).
Candidate selection, mega-trials, and repeated trials #
Polynomial-time certificates for the reduction #
Quantitative probability bounds at a fixed security parameter #
Any uniform strict PPT adversary has negligible inversion probability against parallelCore
on schedule m n = (2 * q.eval (n + 1) * (n + 1)) * (n + 1) when f has fixed output length
outLen and is (1 / q(·))-weak one-way.
Yao's Weak-to-Strong One-Way Function Hardness Amplification
(Liu and Pass, Theorem 2.3, §2.1, p. 8 of arXiv:2009.11514v1;
[Yao82]; Goldreich, Vol. 1, §2.3, Theorem 2.3.2):
if f is a weak one-way function (WeakOneWay f), then there exists a strong one-way function
F : List Bool → List Bool (OneWay F).
Existential Form of Yao's Hardness Amplification
(Liu and Pass, Theorem 2.3, §2.1, p. 8 of arXiv:2009.11514v1):
if there exists a weak one-way function, then there exists a strong one-way function.
Equivalence of Weak and Strong One-Way Functions
(Goldreich, Vol. 1, §2.3, Theorem 2.3.2; weak-to-strong direction
Liu and Pass, Theorem 2.3, §2.1, p. 8 of arXiv:2009.11514v1 and [Yao82];
strong-to-weak direction OneWay.weakOneWay):
strong one-way functions exist if and only if weak one-way functions exist.