Expand description

A trait implemented by types embodying an LWE keyswitch key.

Formal Definition

Key Switching Key

A key switching key is a vector of Lev ciphertexts (described on the bottom of this page). It encrypts the coefficient of the LWE secret key $\vec{s}_{\mathsf{in}}$ under the LWE secret key $\vec{s}_{\mathsf{out}}$.

$$\mathsf{KSK}_{\vec{s}_{\mathsf{in}}\rightarrow \vec{s}_{\mathsf{out}}} = \left( \overline{\mathsf{ct}_0}, \cdots , \overline{\mathsf{ct}_{n_{\mathsf{in}}-1}}\right) \subseteq \mathbb{Z}_q^{(n_{\mathsf{out}}+1)\cdot n_{\mathsf{in}}}$$

where $\vec{s}_{\mathsf{in}} = \left( s_0 , \cdots , s_{\mathsf{in}-1} \right)$ and for all $0\le i <n_{\mathsf{in}}$ we have $\overline{\mathsf{ct}_i} \in \mathsf{Lev}_{\vec{s}_{\mathsf{out}}}^{\beta, \ell}\left(s_i\right)$.

Required Methods

Returns the input LWE dimension of the key.

Returns the output lew dimension of the key.

Returns the number of decomposition levels of the key.

Returns the logarithm of the base used in the key.

Implementors