I am a little confused rereading the question and Mikero's answer. Do you want to keep the computation private (e.g., the function that is being computed) or just the inputs?
–
mikeazo♦Jul 26 '12 at 11:17

does it make any difference , it has been proved that if you can get functional privacy you can get data ( inputs) privacy and vice versa , can't recollect the paper, i can dig for it though !
–
sashankJul 26 '12 at 12:24

@shashank, I'd be very interested to see the paper as that would seem to contradict another paper
–
mikeazo♦Jul 26 '12 at 12:30

@mikeazo , finally i got the paper , search for "secure circuit evaluation" by Abadi, Fiegenbaum , page no 5 , second paragraph, although i did not get it how , let me know if you understand it
–
sashankApr 20 '13 at 4:12

2 Answers
2

In outsourced computation, privacy of the computation itself is usually not important. You have your encrypted data in the cloud, and you want the cloud to perform a computation on it, on your behalf, so that you get no information about what computation was actually done?? That seems totally useless. Far more likely is that you know exactly what computation should be done on the encrypted data, and you want assurance that you received the correctly-computed output. This is a guarantee of integrity, not privacy.

Maybe you are thinking that the cloud has some kind of additional, secret input to the (agreed-upon) computation. In that case, the entire field of secure multi-party computation (SMPC) involves formalizations of what it means to "learn no more about the other guy's input than could be legitimately inferred from the output of the computation." Not all of SMPC involves settings that are suitable for outsourced cloud computing. But if you're just looking for formalizations of the requirements (i.e., security definitions), the SMPC literature will give you an idea of what they look like. It's hard to tell from your question whether you are interested in security definitions or constructions.

yeah not all SMPC involves settings suitable for cloud computing , because , SMPC is more about "Untrusted parties trying to compute something securely" where as for cloud most of the applications we need "Trusted parties trying to compute in presence of untrusted server" for ex: i trust my friends for sharing something in facebook but i may not trust facebook itself !
–
sashankJul 26 '12 at 3:38

It depends on how strict you are. In the traditional cloud computing sense, where one party "sends their data to the cloud" for all the computations to be performed, no. There aren't any other methods other than homomorphic encryption.

The most common techniques for computation on encrypted data besides homomorphic encryption are garbled circuits and secret sharing based schemes. The problem with them is that they are much more interactive than the traditional cloud computation model, where the data is encrypted and sent off.