# Can homomorphic encryption achieve program integrity (verification) in the cloud?

As I understand it, homomorphic encryption can be used to keep data confidential while still allowing computations over the data. From another question, I found out that one can also verify the integrity of the computation, (by which I mean one can verify that a returned value is indeed the result of the requested computation) by re-computing the result.

I am interested in a scenario where re-computing is not possible. For example, the original data might not be available anymore or the original data is very large and re-computing is too expensive. Are there other ways to verify that a result corresponds to the required computation?

That is, say I want to perform the operation r = a + b + c using homomorphic encryption, in the cloud. Once the cloud returns the result r, how can I verify that r is the result of a + b + c and not, say, the result of a + b or some other computation?

• The terms "program integrity in the cloud", "keep cloud computation confidential", and "guarantee the integrity of computation" have no commonly accepted and precise meaning. – fgrieu Aug 6 '18 at 17:44
• does "keep cloud computation confidential" refer to hiding the algorithm that is run, or hiding the data it is running on? If the former, how can you verify something that you don't know? (assuming "guarantee the integrity" means that you want to be sure the correct algorithm was evaluated) – Florian Bourse Aug 9 '18 at 9:27