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.
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.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.
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.