HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
It seems that if m is not a power of two, then we choose coefficients of the secret key such that the secret key is a polynomial of degree m. How is it reduced into a polynomial of degree phi(m)? If we just reduce mod Phi_m(X) then the coefficients may be outside {-1,1}, so I assume based on the way it is written that there is some other method.
This question is about secret key generation, based on section 4.7 in the design document: https://homenc.github.io/HElib/documentation/Design_Document/HElib-design.pdf
It seems that if m is not a power of two, then we choose coefficients of the secret key such that the secret key is a polynomial of degree m. How is it reduced into a polynomial of degree phi(m)? If we just reduce mod Phi_m(X) then the coefficients may be outside {-1,1}, so I assume based on the way it is written that there is some other method.