I'm currently trying to understand all the differences between homomorphic encryption and garbeled circuits. As I understood the use of homomorphic encryption hides either the data or the computation from the computational party, but what about the circuit? Is only the data hidden with homomorphic encryption?

  • 2
    $\begingroup$ @sashank I think you may have changed the meaning of the question. As I read it, the original question was whether homomorphic encryption also hides the circuit/algorithm. But hopefully M. Reif can clarify? $\endgroup$
    – otus
    Sep 24, 2015 at 10:19
  • 1
    $\begingroup$ @otus yes, you are right. The question was exacly about whether homomorphic encryption does hide the algorithm $\endgroup$
    – M. Reif
    Sep 24, 2015 at 12:14
  • $\begingroup$ Does it look correct now? Feel free to edit further if you don't think so. $\endgroup$
    – otus
    Sep 24, 2015 at 12:49

2 Answers 2


There has been work on using garbled circuits while also hiding the function. This can be done via implementing a universal circuit inside the garbled circuit. However, the standard garbled circuit does reveal the topology of the circuit. Also, when considering malicious security, the most efficient method is cut-and-choose, and this reveals the actual circuit. When you need to hide the function, then you need to take care of this explicitly (e.g., via a universal circuit, as mentioned). Here is one paper by Mohassel and Sadeghian that considers this question.

Beyond this, there are many differences between FHE and secure computation. In general, FHE is one way of getting secure computation, but it can also be used in other settings where secure computation is not applicable (e.g., when you cannot have interaction). However, FHE is not yet efficient enough for most tasks, and garbled circuits is much much faster. Having said this, in some cases, it suffices to use somewhat FHE (which works for low-depth circuits), and this can be very fast.


yes in general garbled circuits allow hiding of data from other party. Secure Two party computation is all about a known function which both the parties agree upon priorly (For example, in millionaire's problem, it is comparison) and Subsequently hiding their particular inputs from other


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.