Acyclic chains of encrypted secret keys #
The sampler generates one more key pair than the requested depth, then encrypts each secret key under the next public key. This is the acyclic construction of [Gentry2009, Section 2], indexed in evaluation order. Sampling and support are explicit; no security claim is made here. The returned key pairs retain the secret keys as private correctness witnesses. Public evaluation uses only the public-key projection and encrypted links. Acyclicity refers to positions in the chain; sampled key values may coincide.
Main definitions #
Cslib.Crypto.Homomorphic.Scheme.generateKeys: independently sample the key pairs.Cslib.Crypto.Homomorphic.Scheme.encryptKeyLinks: encrypt secrets between adjacent keys.Cslib.Crypto.Homomorphic.Scheme.generateKeyChain: sample the keys and their encrypted links.Cslib.Crypto.Homomorphic.Scheme.ValidLinks: the links are pointwise fresh encryptions.
Main results #
Cslib.Crypto.Homomorphic.Scheme.mem_support_generateKeyChain_iff: exact supported keys, key count, and encrypted links of the actual sampler.
References #
Sample all key pairs before encrypting their adjacent secret-key links. The result retains private secret-key witnesses and is not the public key artifact.
Instances For
At each link index, the link freshly encrypts that level's secret under the next public key. The bounds ensure that none of the default values is used.
Every supported key chain has the requested number of transitions and one additional key.
Every position through the final level of a generated chain is a supported base key pair. The index bound ensures that the default pair is never used.