The BFV scheme is designed for homomorphic addition and multiplication of integers. BFV’s encoding scheme does not require such approximation issues because BFV is designed to encode only integers. Therefore, BFV guarantees exact encryption and decryption. BFV is suitable for use cases where the encrypted and decrypted values should exactly match (e.g., voting, financial computation), whereas CKKS is suitable for the use cases that tolerate tiny errors (e.g., data analytics, machine learning).
In BFV, each plaintext is encrypted as an RLWE ciphertext. Therefore, BFV’s ciphertext-to-ciphertext addition, ciphertext-to-plaintext addition, and ciphertext-to-plaintext multiplication are implemented based on GLWE’s homomorphic addition and multiplication (as we learned in ), with to make GLWE an RLWE.
Required Background