Correctness of depth-budgeted homomorphic encryption #
The actual acyclic sampler and padded evaluator satisfy the existing encryption interface for every Boolean circuit within the chosen depth budget. Fresh ciphertexts decrypt at the initial endpoint; evaluated ciphertexts decrypt at the final endpoint, independent of actual depth.
The private key has length 3 * secretWidth n + 1 and ciphertexts have length
ciphertextWidth n + 1. These exact lengths are independent of the depth budget. Uniform
polynomial bounds and security remain separate obligations. Correctness takes fresh input
ciphertexts, as in Scheme.Correct; it does not identify evaluated ciphertexts with fresh ones.
The scheme evaluator (scheme D budget).evaluate remains single-hop. Multi-hop evaluation goes
through evaluateHop, with the caller tracking the depth offsets along the chain. Because the
private artifact retains only the two endpoint secrets (0 and 2 * budget n), only a hop that
ends at budget n (offset + step = budget n) yields a ciphertext that
(scheme D budget).decrypt can decrypt; a hop ending before budget n (including a depth-zero
wiring hop at an intermediate offset) produces a true-tagged ciphertext under key
2 * (offset + step) that (scheme D budget).decrypt cannot decrypt.
This level-indexed hop API is an original adaptation, closest to Gentry's sub-scheme E^(δ)
([Gen09], Section 2, p. 171). GHV is cited for the multi-hop notion (paraphrase: evaluation
can be applied to its own outputs) [GHV10]; that notion is not claimed
for the fixed-start scheme evaluator (scheme D budget).evaluate itself.
Main results #
Cslib.Crypto.Homomorphic.Leveled.encryptedWires_evaluateCircuit_drop: evaluating a padded circuit at an arbitrary offset along a generated key chain.Cslib.Crypto.Homomorphic.Leveled.encryptedWires_evaluateCircuit: a common final key for every permitted circuit, including depth-zero wiring and input-free constants.Cslib.Crypto.Homomorphic.Leveled.evaluateHop_spec: correctness of a single depth-bounded evaluation hop from leveloffsettooffset + step.Cslib.Crypto.Homomorphic.Leveled.evaluateHop_twoHop_spec: two-hop leveled evaluation acrossstep₁ + step₂ = budget ndecrypts under the endpoint secret key to the composed circuit value.Cslib.Crypto.Homomorphic.Leveled.correct: perfect correctness of the constructed scheme.Cslib.Crypto.Homomorphic.Leveled.fixedWidth: budget-independent secret and ciphertext widths.
References #
A false tag selects the initial endpoint on valid payloads.
A true tag selects the final endpoint on valid payloads.
Evaluating a circuit of depth at most step starting at depth offset offset (2 * offset
into a generated chain of depth 2 * total) advances the wire invariant to key
2 * (offset + step) and preserves the ordered output vector.
Padding reaches the budget's final key and preserves the original ordered output vector.
Removing fresh tags gives fresh base ciphertexts under the initial public key.
Evaluating one hop of depth at most step starting at offset offset produces a true-tagged
ciphertext of width ciphertextWidth n + 1 whose payload decrypts under key 2 * (offset + step)
to the evaluated circuit output.
Pointwise hop evaluations at offset offset with step budget step advance EncryptedWires
on the stripped ciphertext payloads to 2 * (offset + step).
Final hop reaching the total budget offset + step = budget n: the output ciphertext has
width ciphertextWidth n + 1 and decrypts under (scheme D budget).decrypt to the circuit
value.
Two-hop leveled evaluation: first-hop circuits of depth at most step₁ evaluated on fresh
inputs via evaluateHop D n 0 step₁ keys.1, followed by a second-hop circuit outer of depth at
most step₂ evaluated on the intermediate ciphertexts via evaluateHop D n step₁ step₂ keys.1
with step₁ + step₂ = budget n, produces a ciphertext of width ciphertextWidth n + 1 that
decrypts under (scheme D budget).decrypt n keys.2 to the composed circuit value.
Fresh ciphertexts have the tagged base width and decrypt under the initial endpoint.
Every supported permitted evaluation has the tagged base width and decrypts at the common final endpoint. This includes circuits whose actual depth is smaller than the chosen budget.
Bootstrappability constructs a correct scheme for every circuit within the depth budget. No assumption of leveled correctness is used; the keys, padding, and evaluation are explicit.
Private key and ciphertext lengths are independent of both circuit size and depth budget. Public key size and key-generation work may grow with the budget.