# zkFHE

## What is FHE

Homomorphic encryption (HE) is a powerful cryptographic primitive, that allows computations to be performed on encrypted data without first having to decrypt it. Note the encrypted data, i.e., a ciphertext, which is generated from a traditional public key encryption algorithm, is NOT mathematically manipulatable due to its encoding structure.

Homomorphic encryption includes multiple types of encryption schemes that can perform different classes of computations over encrypted data. The computations are represented as either Boolean or arithmetic circuits. Some common types of homomorphic encryption are partially homomorphic, somewhat homomorphic, leveled fully homomorphic, and fully homomorphic encryption:

- Partially homomorphic encryption encompasses schemes that support the evaluation of circuits consisting of only one type of gate, e.g., addition or multiplication.
- Somewhat homomorphic encryption schemes can evaluate two types of gates, but only for a subset of circuits.
- Leveled fully homomorphic encryption supports the evaluation of arbitrary circuits composed of multiple types of gates of bounded (pre-determined) depth.
- Fully homomorphic encryption (FHE) allows the evaluation of arbitrary circuits composed of multiple types of gates of unbounded depth and is the strongest notion of homomorphic encryption.

## What is zkFHE

FHE schemes are so powerful that can be used in different applications including outsourced computing, cloud computing and privacy-preserving machine learning. However, one drawback among FHE applications is the **unverifiability**. Indeed there is no way to ensure the correctness of the computation, mainly about the evaluation of the encrypted data. A typical example is one can not distinguish the result of a machine learning model prediction from a random sample.

zkFHE is a hybrid cryptographic technique that uses zero-knowledge proofs, especially zk-SNARKs, to guarantee the integrity/correctness of the evaluation operations on encrypted data. In general, zk-snarks can be equipped with evaluation, i.e., computation on encrypted data, to present the integrity and verifiability of the operations.

The design and implementation of a secure and performant zkFHE scheme is non-trivial, as it incorporates several intricate cryptographic methodologies and optimization tactics.