The hashed parity pair #
Reveal a function image, a random hash length, a public matrix, the corresponding hash prefix, and an independent parity query. The hidden bit is the input's inner product with the query.
joint gives the finite joint distribution and sample is its word implementation. The entropy
bound and the strict PPT certificate are proved here. pair packages the sampler and its exact
finite law. HashReduction proves the finite prediction-to-inversion bound, WordReduction
implements that reduction, and OneWay derives the computational prediction gap.
Main definitions #
Cslib.Crypto.Pseudoentropy.HashPair.joint: the complete finite hashed-parity experiment.Cslib.Crypto.Pseudoentropy.HashPair.sample: its executable sampler.Cslib.Crypto.Pseudoentropy.HashPair.pair: package the exact law and efficiency certificate.
Main results #
Cslib.Crypto.Pseudoentropy.HashPair.conditionalEntropy_joint_le: the entropy upper bound.Cslib.Crypto.Pseudoentropy.HashPair.isPPTOn_sample: uniform strict PPT sampling.Cslib.Crypto.Pseudoentropy.HashPair.eval_sample: exact agreement of the two representations.
References #
- T. Holenstein, Pseudorandom Generators from One-Way Functions: A Simple Construction for Any Hardness, Section 4, equations (4) and (5), and Lemma 3. We use Boolean matrices in place of field multiplication. The executable sampler chooses the hash length exactly uniformly in a dyadic range, avoiding the sampling approximation in footnote 3. The entropy bound holds for any positive number of possible hash lengths.
Adapted from Crypto/Computational/Pseudoentropy/HashPair.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8, using the shared bit-string and tidy machine APIs.
The number of possible hash lengths. Six extra lengths leave room for the truncation threshold in the inversion proof; rounding up makes sampling exact with fair bits.
Instances For
Sampling among the enlarged hash lengths requires only a polynomial range.
Compute the sampling range from an efficiently available unary parameter.
A flat matrix seed and an independent parity query, both retained in the public output.
Instances For
A public observation records the hash length and exactly that many hash bits.
Instances For
The query can be included in the public seed without changing hash universality.
The public observation and hidden parity bit under independent uniform inputs.
Instances For
Holenstein's entropy bound for the complete hashed parity experiment. No regularity, injectivity, or computational hardness of the function is assumed.
Assemble the public fields using the ordinary tuple encoding.
Encode a finite public observation using the chosen image representation.
Instances For
Encoding loses none of the public information, even though the digest's width varies.
The construction is strict PPT whenever the given function is polynomial time.
The executable observation and hidden bit have exactly the finite joint distribution.
Package the efficient sampler with its finite observation type and exact joint law. The image representation is needed for entropy bookkeeping, not as an extra algorithmic oracle.