A standard use case for fully-homomorphic encryption (FHE) is outsourced computation:
- The client encrypts its data x with an FHE scheme under a private key k and sends the ciphertext c = Enc(k, x) to the server
- The server uses the homomorphism to compute c' = f(Enc(k, x)) = Enc(k, f(x)) and returns c' to the client
- The client decrypts to obtain f(x)
The homomorphic encryption protects the confidentiality of x against a malicious server. However, since we do not trust the server, we might also need integrity in the form of assurance that the server performed the computation correctly.
What are the current standard techniques to protect the integrity of the above protocol?
It is a special case of general "verifiable computing," I found some papers about this, such as the protocol by Gennaro, Gentry, and Parno from CRYPTO 2010. Are there more practical or specific techniques for the case described above?
I guess asking for detailed explanations is probably too much to ask for, but I would appreciate pointers to the literature or keywords that I can search for.