Hashing isolates preimages #
Given an image f x, a universal hash can isolate x among its other preimages. On successful
isolation, every predicate of x is determined by the revealed information. Consequently, the
remaining conditional entropy of a bit is bounded by the probability of a hash collision inside
the fiber. The seed stays public; a predicate may depend on it, so it can include a fresh parity
query as well as the hash matrix.
Main results #
Cslib.Probability.IsTwoUniversal.fiber_collision_le: failure to isolate a preimage.Cslib.Probability.IsTwoUniversal.conditionalEntropy_hash_le: entropy bounded by collisions.Cslib.Probability.conditionalEntropy_random_hash_le: entropy averaged over public hash lengths.
References #
- T. Holenstein, Pseudorandom Generators from One-Way Functions: A Simple Construction for Any Hardness, Section 4, proof of Lemma 3. The isolation and averaged entropy bounds allow arbitrary two-universal families and input distributions, retaining the sampled hash length as public information.
Adapted from Probability/HashIsolation.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8.
The chance that a hash fails to isolate a preimage is at most the number of its competitors divided by the hash alphabet size, capped at one. No assumption on the fiber sizes is needed.
Conditional entropy after revealing the seed, the function image, and the hash value is bounded by the expected probability that the hash leaves more than one possible preimage.
The averaged bound applies to the actual joint experiment with a public uniform hash length. The dependent observation type records exactly the number of revealed hash bits.