Documentation

Complexity.Crypto.Computational.Homomorphic.Leveled.Security

IND-CPA security of the acyclic leveled construction #

Every native two-stage adversary against the actual serialized leveled scheme has negligible advantage, assuming base IND-CPA security, native base key generation and encryption, fixed supported secret length, and an efficient unary depth budget. The public key includes the complete encrypted-key chain, and message selection occurs after the adversary sees it.

Two public-artifact hybrids replace secret encryptions by zero encryptions in the two challenge worlds, and zeroLinkAdversary simulates the intervening zero-link experiment. The unified two-stage reduction leveledAdversary combines all three hops into a single base IND-CPA adversary with concrete loss 4 * dyadicSize (2 * budget n) * dyadicSize (capacity n) ≤ 16 * (2 * budget n + 1) * (capacity n + 1), matching Gentry's Theorem 4 ([Gen09], Section 2, p. 171) up to a constant factor from power-of-two coin sampling and NAND-compiled depth 2 * d, with asymptotic IsPPT rather than a multiplicative runtime bound relative to the adversary. Correctness, evaluation efficiency, compactness, a concrete base cryptosystem and fixed-key unbounded-depth bootstrapping are separate results or obligations.

Main results #

References #

theorem Cslib.Crypto.Homomorphic.Leveled.advantage_scheme_eq_leveledAdversary {E : Scheme} {secretWidth ciphertextWidth : ℕ → ℕ} (D : DecryptionCircuits E secretWidth ciphertextWidth) (budget capacity : ℕ → ℕ) (adversary : Encryption.Adversary) (n width : ℕ) (hwidth : ∀ keys ∈ (E.keyGen n).eval.support, keys.2.length = width) (hcapacity : width ≤ capacity n) :
Game.advantage (Encryption.game (scheme D budget).keyGen (scheme D budget).encrypt adversary false n).eval (Encryption.game (scheme D budget).keyGen (scheme D budget).encrypt adversary true n).eval = 4 * ↑(Probability.dyadicSize (2 * budget n)) * ↑(Probability.dyadicSize (capacity n)) * Game.advantage (Encryption.game E.keyGen E.encrypt (leveledAdversary E (fun (n : ℕ) => 2 * budget n) capacity adversary) false n).eval (Encryption.game E.keyGen E.encrypt (leveledAdversary E (fun (n : ℕ) => 2 * budget n) capacity adversary) true n).eval

Exact chosen-message advantage of the depth-budgeted scheme scheme D budget in terms of the unified two-stage base reduction leveledAdversary ([Gen09], Section 2, Theorem 4, p. 171, up to a constant factor in the loss; the running-time clause is not formalized).

theorem Cslib.Crypto.Homomorphic.Leveled.advantage_scheme_le_mul_leveledAdversary {E : Scheme} {secretWidth ciphertextWidth : ℕ → ℕ} (D : DecryptionCircuits E secretWidth ciphertextWidth) (budget capacity : ℕ → ℕ) (adversary : Encryption.Adversary) (n width : ℕ) (hwidth : ∀ keys ∈ (E.keyGen n).eval.support, keys.2.length = width) (hcapacity : width ≤ capacity n) :
Game.advantage (Encryption.game (scheme D budget).keyGen (scheme D budget).encrypt adversary false n).eval (Encryption.game (scheme D budget).keyGen (scheme D budget).encrypt adversary true n).eval ≤ 16 * (2 * ↑(budget n) + 1) * (↑(capacity n) + 1) * Game.advantage (Encryption.game E.keyGen E.encrypt (leveledAdversary E (fun (n : ℕ) => 2 * budget n) capacity adversary) false n).eval (Encryption.game E.keyGen E.encrypt (leveledAdversary E (fun (n : ℕ) => 2 * budget n) capacity adversary) true n).eval

Polynomial concrete-security bound for the depth-budgeted scheme scheme D budget with explicit factor 16 * (2 * budget n + 1) * (capacity n + 1) ([Gen09], Section 2, Theorem 4, p. 171, up to a constant factor in the loss; the running-time clause is not formalized).

The actual serialized public key is computationally indistinguishable from the same independent public keys with equal-length zero plaintexts in every encrypted link.

The actual serialized acyclic public key and fresh tagged encryption preserve IND-CPA. Both adversary stages are uniform strict PPT, with arbitrary polynomial saved state.

The actual depth-budgeted scheme is IND-CPA secure. The decryption circuit family identifies the scheme but supplies no security premise; only base security and the stated native hypotheses are used.