Rényi-∞ divergence machinery for oracle-bounded reductions#1076
Rényi-∞ divergence machinery for oracle-bounded reductions#1076Gustavo2622 wants to merge 1 commit into
Conversation
The Rényi-∞ (max-divergence / dominance) machinery for bounded-query reductions: - RDiv.ec: Rényi-∞ / max-divergence (rdiv_inf, dominated) with probability preservation (dominated_pr / rdiv_inf_pr), structural composition (dmap/dlet/dprod/dlist/dexcepted/dcond/djoin/dfold/dfun), and a distinguisher layer (Sample, adv_rdiv_inf, adv_rdiv_inf_dlist). - BoundedPreSample.ec: fresh-sampling = presampling-a-list equivalence (eq_pr_fresh_ref) for bounded-query adversaries; admit-free. - RDivOracle.ec: parametric bounded-query advantage bound rdiv_bound_sampler (Pr[Game1] <= M^N * Pr[Game2]) via BoundedPreSample + dlist tensorization.
abd5301 to
5a014e7
Compare
| (* Single Iface clone — both top-level access target (consumers use | ||
| [RDO.Iface.Oracle]/[RDO.Iface.Adv]) and BPS substitution target. *) | ||
| clone import BPS_Iface as Iface with | ||
| type out_t = out_t, |
There was a problem hiding this comment.
Use <- to avoid proliferation.
|
|
||
| declare axiom A_bound1 : | ||
| hoare[ A(BPS1.Count(Sampler1)).main : | ||
| BPS1.Count.n = 0 ==> BPS1.Count.n <= N ]. |
There was a problem hiding this comment.
Here you probably want a quantification over the initial value of the counter, so the result can be applied generally where there is a preamble that cannot trigger distinguishing behaviour. (Did we discuss this already? If so, ignore this.)
| }. | ||
|
|
||
| module type Adv (O : Oracle) = { | ||
| proc main(p : param_t) : bool |
There was a problem hiding this comment.
We could generalise this to arbitrary return types. This would require replace all the raw res events in probabilities below with a "for all event over res (and perhaps the game's globals)".
Not super clear what value this would add, but the presampling argument certainly doesn't rely on the event being the game's output only.
If you choose to generalise, be careful: if you include the globals in scope, you will need to post-sample unused queries in the lazy version.
The Rényi-∞ (max-divergence / dominance) machinery for bounded-query reductions: