Documentation

Complexity.Crypto.Computational.OneWay.Normalize

Normalizing the output length of a one-way function #

Self-delimiting padding using an output-size bound makes the output length depend only on the input length. Equality of padded images implies equality of the original images, even for a candidate of a different length. A uniform strict PPT reduction therefore preserves one-wayness. This supplies the fixed-output-width interface used by the pseudoentropy construction without assuming that the original function is length-preserving, injective or regular.

Main definitions #

Main results #

References #

Adapted from Crypto/Computational/OneWay/Normalize.lean on the cslib crypto branch at 5ff69ca93402e7c947208dc56396d6d86203ccd8. This is the word-encoding reduction to the write-up's fixed-output-width setting, using the shared tidy machine calculus and nonnegative game API.

Normalize a word function using a bound supplied in unary.

Instances For
    theorem Cslib.Crypto.OneWayNormalization.inversion_le (f : List Bool → List Bool) (bound : ℕ → ℕ) (adversary : Inverter) (n : ℕ) :
    Game.succProbability (inversionGame (normalize f bound) adversary n).eval ≤ Game.succProbability (inversionGame f (fun (n : ℕ) (image : List Bool) => adversary n (BitString.padWord (bound n) image)) n).eval

    Any inverter for the normalized function gives an inverter for the original function. Only its challenge is padded; the candidate is returned unchanged, at any length.

    Self-delimiting output padding preserves one-wayness against uniform strict PPT inverters.

    Every OWF yields an OWF whose output length depends only on the input length. Both evaluation and this unary output-length function are uniformly polynomial time.