The matrix-hash prediction-to-inversion bound #
Split a leaked matrix hash into an almost uniform prefix and a short suffix. The inverter guesses the entire digest uniformly and invokes Goldreich--Levin. Its definition does not use the split point or the size of the image's fiber. Empty prefixes incur no extraction error.
The finite bounds also allow independent saved coins, reused across every decoder query.
Pseudoentropy.WordReduction implements the inverter as a word program.
Main definitions #
Cslib.Crypto.Pseudoentropy.matrixPrediction: prediction from a leaked matrix hash.Cslib.Crypto.Pseudoentropy.matrixInverter: one inverter for all fibers and hash lengths.
Main results #
Cslib.Crypto.Pseudoentropy.matrixPrediction_entropy_le_of_coins: entropy threshold with independent saved predictor randomness.Cslib.Crypto.Pseudoentropy.matrixInverter_success_ge: the resulting polynomial loss.
References #
- T. Holenstein, Pseudorandom Generators from One-Way Functions: A Simple Construction for
Any Hardness, Section 4, Lemma 4, Games 1--5.
The hash family here is a public Boolean matrix; the suffix-guessing argument is the one
developed in
Pseudoentropy.ReductionandProbability.Guessing.
Adapted from Crypto/Computational/Pseudoentropy/HashReduction.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8, reusing the pinned finite-PMF distance
and shared decoder.
The parity predictor receives the image, length, full public matrix, and leaked digest.
Instances For
The prediction game for the hashed parity construction, with uniform matrices.
Instances For
The inverter guesses a length, matrix, and digest, then invokes the common decoder.
Instances For
A digest at most six bits longer than the logarithmic fiber size can be split into an almost uniform prefix and a suffix with polynomially many guesses. This split is used only in the proof; neither the inverter nor the predictor is given the fiber size.
On each fiber, prediction from a matrix hash is bounded by the decoder's accuracy, the prefix extraction error, and inversion with a uniform digest guess. The public matrix may contain additional unused rows.
A hash within six bits of the logarithmic fiber size has a uniform polynomial reduction loss. This one inverter works for every fiber; their sizes determine only its analysis.
Averaging all hash lengths removes the restriction on digest size. A range at least
n + 6 makes the truncation threshold valid even for the largest possible fiber.
The complete finite reduction bound, averaged over images as well as hash lengths. All fibers share one inverter and one precision; no regularity or injectivity is required.
Prediction beyond the hashed pair's entropy threshold forces inversion with polynomial loss. This is the finite content of Holenstein's Lemma 4, for public matrix hashing.
The entropy reduction survives independent predictor randomness. The inverter samples one coin tape and reuses the resulting deterministic predictor throughout all decoder calls.
Beating the entropy threshold by 1 / count yields inverse-polynomial inversion success.
Since dyadicSize (16 * count) ≤ 32 * count + 2, the denominator is cubic in the hash range.