pub struct SparseKeyEncapsulationKey<Inst: BFVInstantiation> {
pub C_sparse_sk: CiphertextRing<Inst>,
pub switch_to_sparse_key: KeySwitchKey<Inst>,
pub encapsulated_key: Ciphertext<Inst>,
}Expand description
Data required for performing thin bootstrapping with sparse key encapsulation.
Sparse key encapsulation refers to key-switching a ciphertext to a sparse secret key just before homomorphic decryption (which happens at a very low ciphertext modulus, which can offset the security loss due to key sparsity), and thus introduce much less noise that has to be homomorphically removed.
Fields§
§C_sparse_sk: CiphertextRing<Inst>Ciphertext ring with small modulus, over which encryptions with the sparse key remain secure.
switch_to_sparse_key: KeySwitchKey<Inst>Key-switch key to switch a ciphertext encrypted by the standard key to a ciphertext encrypted by the sparse key.
This is defined w.r.t. the switch-to-sparse ciphertext ring, which has a significantly smaller modulus than the standard ciphertext ring. This is necessary for security.
encapsulated_key: Ciphertext<Inst>An encryption of the sparse secret key (mapped into the plaintext ring
by taking a shortest lift to R) w.r.t. the standard secret key.