Lazy random functions with independent private randomness #
The eager/lazy completion law also holds for clients interleaving external queries with fresh private finite-uniform samples. Only external replies are cached. The joint law retains the client's result and the completed table, including when a private sample or an earlier reply determines a later query.
Main results #
Cslib.RandomOracle.run_interpret_answer_complete_prob: the full joint completion law.Cslib.RandomOracle.interpret_prob_eq_lazy: the marginal eager/lazy equivalence.Cslib.RandomOracle.uniform_interpret_prob_eq_lazy: specialization to a uniform random function.Cslib.RandomOracle.run_interpret_memoize_prob: the list cache implements the partial table.Cslib.RandomOracle.memoize_cache_bounds_prob: external budgets control the list cache.Cslib.RandomOracle.eval_run_interpret_memoize_prob: closed samplers realize the list cache.Cslib.RandomOracle.interpret_prob_eq_memoize_map: injective representations preserve the game.
References #
Extends the crypto-branch lazy-sampling proof at 5ff69ca93402e7c947208dc56396d6d86203ccd8
to the disjoint-sum interface of ProbOracleComp, reusing the general state simulation rule.
External query budgets control cache growth and new-entry provenance for randomized clients. Preassigned entries are retained regardless of the sampling distribution's support.
List memoization implements the mathematical random oracle for clients with private samples, retaining the result and represented final cache even over infinite query domains.
Closed samplers and the client's private randomness implement the same joint result/cache law as the mathematical lazy oracle. Only external requests are memoized.
Complete the cache before or after a client with fresh private randomness: the joint result and complete-table distributions agree, even for arbitrary preassigned cache entries.
Lazy sampling from an empty cache implements the eager table experiment for randomized, adaptive clients, with private randomness independent of the table.
A uniform random function can be implemented by consistent lazy uniform replies even when the client uses private randomness between its adaptive queries.
A list cache implements eager independent sampling for clients with private randomness.
Injective keys and mapped values implement the same finite random function, including independent private samples and adaptive external queries in the client.
Executable closed samplers with a list cache implement the eager independent-table experiment, including the adversary's private samples and adaptive external calls.