Multi-Instance → Single-Instance Reduction (Case Study 2) #
This file implements Case Study 2 from "Mechanizing Nested Hybrid Arguments" (Larsen & Schurmann, CSF 2025): reducing multi-instance CPA$ security to single-instance (many-time) CPA$ security using a second layer of SLIDE.
Main Results #
MI_hybrid- Hybrid game indexed by instance switch positionMI_slideAdv- SLIDE adversary for the instance dimensionMI_step_eq- Per-step:Adv(MI_hybrid i, MI_hybrid (i+1)) = MT_CPA_AdvantageAdv_MI_MT_CPA- Main:Adv(MI, A) ≤ n * εwhere n = number of instancesAdv_MI_MT_CPA_nested- Composed:Adv(MI, A) ≤ n * q * ε_OT
References #
- [Larsen & Schurmann, Mechanizing Nested Hybrid Arguments, CSF 2025, §4.2]
Multi-Instance Hybrid Game #
Multi-instance hybrid loop with position counter j and threshold i.
When j < i: use MT_CPA_ideal (random ciphertexts).
When j ≥ i: use MT_CPA_real (encrypted ciphertexts).
Equations
- One or more equations did not get rendered due to their size.
- CatCrypt.Examples.PKE.MultiInstance.MI_hybridLoop P pks i x✝ [] = CatCrypt.Core.SPComp.pure []
Instances For
Multi-instance hybrid game: first i instances ideal, rest real.
Equations
- CatCrypt.Examples.PKE.MultiInstance.MI_hybrid P pks msgs i = CatCrypt.Examples.PKE.MultiInstance.MI_hybridLoop P pks i 0 msgs
Instances For
Prefix/Suffix Helpers #
Sample n instances as ideal (random) ciphertexts.
Equations
- One or more equations did not get rendered due to their size.
- CatCrypt.Examples.PKE.MultiInstance.MI_sampleN P 0 x✝ = CatCrypt.Core.SPComp.pure []
- CatCrypt.Examples.PKE.MultiInstance.MI_sampleN P n.succ [] = CatCrypt.Core.SPComp.pure []
Instances For
Encrypt instances under their keys (all real), starting at position j.
Equations
- One or more equations did not get rendered due to their size.
- CatCrypt.Examples.PKE.MultiInstance.MI_encList P pks x✝ [] = CatCrypt.Core.SPComp.pure []
Instances For
Boundary Conditions #
IsPure Lemmas #
Decomposition Lemmas #
We decompose `MI_hybridLoop pks (j + k) j msgs` as:
prefix (k ideal instances) + core (at position j + k) + suffix (real instances).
The generalized form over `(j, k)` avoids the "shift" trick, which fails
when public keys are indexed by position (`pks.getD j`). Instead, the IH
works because `(j+1) + k = j + (k+1)` preserves the `pks.getD` index.
Generalized decomposition with real core at position j + k.
The SLIDE Adversary (Instance Dimension) #
SLIDE adversary for the instance dimension: embeds a single instance's ciphertext list into the multi-instance context.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Per-Step Advantage Bound #
Per-step advantage equality: adjacent MI hybrids differ by one MT-CPA$ query.
Per-step advantage bound (≤ version).
Main Reduction Theorems #
Multi-instance to single-instance reduction (CSF 2025, Case Study 2).
Alternative: MI-CPA bound with explicit per-step hypothesis.
Nested hybrid composition (CSF 2025, combining Cases 1 & 2).