Correctness of fixed-key homomorphic evaluation #
The same supported base key and self-encrypted secret can be reused at every compiled layer. The proof requires pointwise supported secret-bit encryptions, not independent copies of their randomness. Inputs need only have the base ciphertext width and the desired decryption; this includes outputs of previous evaluations. Every finite circuit preserves the same key and exact ciphertext width.
GHV is cited for the multi-hop notion (paraphrase: evaluation can be applied to its own outputs)
[GHV10], which evaluate_twoHop_spec instantiates for the fixed-key
scheme evaluator itself.
Main results #
Cslib.Crypto.Homomorphic.FixedKey.encryptedWires_evaluateCircuit: arbitrary circuit outputs retain their plaintexts and width under the same key.Cslib.Crypto.Homomorphic.FixedKey.evaluate_spec: the constructed evaluator accepts earlier evaluated ciphertexts with the correct width and decryption.Cslib.Crypto.Homomorphic.FixedKey.encryptedWires_of_evaluate: outputs of pointwise fixed-key evaluations again satisfy the wire invariant and can be fed into further evaluations.Cslib.Crypto.Homomorphic.FixedKey.evaluate_twoHop_spec: two-hop fixed-key evaluation produces a base-width ciphertext that decrypts to the composed circuit value.Cslib.Crypto.Homomorphic.FixedKey.correct: perfect correctness for every finite circuit.Cslib.Crypto.Homomorphic.FixedKey.fixedWidth: unchanged secret and ciphertext widths.Cslib.Crypto.Homomorphic.FixedKey.decryptionCircuits: reuse the actual decryption circuit.
References #
Executing the decryption circuit agrees with base decryption on every well-sized word.
On the unchanged secret and ciphertext representation, both schemes have the same well-sized encrypted-wire relation. No freshness hypothesis is needed.
Repeating one supported key and its self-encrypted secret evaluates any finite circuit. The starting wires may already have been evaluated; output selection also handles depth zero.
Fresh fixed-key encryptions retain the exact base width and decrypt under the base secret.
Fresh inputs satisfy the constructed scheme's stronger wire invariant.
Every supported evaluator result has the exact base width and correct decryption under the same secret key. The inputs may be prior evaluation outputs; they need not be fresh.
Outputs of pointwise fixed-key evaluations again satisfy the wire invariant under the same secret key, so they can be fed into subsequent homomorphic evaluations.
Two-hop fixed-key evaluation: feeding outputs of first-hop circuit evaluations into an outer circuit evaluation retains the base ciphertext width and decrypts to the composed circuit value.
Actual bootstrapping constructs a correct scheme permitting every finite Boolean circuit.
Secret keys and all valid ciphertexts retain exactly the base widths, independently of the evaluated circuit and any previous sequence of evaluations.
The constructed scheme executes the same decryption circuit, including on malformed data.