PKE Key-Switching documentation
Github Source: This folder contains the header files of the key-switching methods present in Open-FHE
.
The documentation is based on Revisiting Homomorphic Encryption Schemes for Finite Fields
Page Contents
Intuition
Let be a ciphertext , which can be decrypted with .
Through key-switching, we create a new ciphertext, such that , which contains the same message as , but can be decrypted by a different secret key .
Key switching
This feature is needed to compute automorphisms(rotations) of ciphertexts, or to relinearize ciphertexts
Key-Switching Class Inheritance
File Listings
Key-Switch Base (keyswitch-base.h)
Base class for key switching algorithms.
Key-Switch RNS (keyswitch-rns.h)
Abstract interface class for key switching algorithms in RNS
Key-Switch BV (keyswitch-bv.h)
Implements BV scheme from Fully Homomorphic Encryption from Ring-LWE and Security for Key Dependent Messages (BV Scheme)
Requires the computation of a quadratic number of NTTs.
See the Appendix of https://eprint.iacr.org/2021/204 for more detailed description of the RNS variant.
Key-switch Hybrid (keyswitch-hybrid.h)
Hybrid key switching method first introduced in https://eprint.iacr.org/2012/099.pdf
RNS version was introduced in https://eprint.iacr.org/2019/688.
See the Appendix of https://eprint.iacr.org/2021/204 for more detailed description.