Paper 2013/073

Zero-Knowledge Using Garbled Circuits: How To Prove Non-Algebraic Statements Efficiently

Marek Jawurek, Florian Kerschbaum, and Claudio Orlandi


Zero-knowledge protocols are one of the fundamental concepts in modern cryptography and have countless applications. However, after more than 30 years from their introduction, there are only very few languages (essentially those with a group structure) for which we can construct zero-knowledge protocols that are efficient enough to be used in practice. In this paper we address the problem of how to construct efficient zero-knowledge protocols for generic languages and we propose a protocol based on Yao's garbled circuit technique. The motivation for our work is that in many cryptographic applications it is useful to be able to prove efficiently statements of the form e.g., ``I know x s.t. y=SHA-256(x)'' for a common input y (or other ``unstructured'' languages), but no efficient protocols for this task are currently known. It is clear that zero-knowledge is a subset of secure two-party computation (i.e., any protocol for generic secure computation can be used to do zero-knowledge). The main contribution of this paper is to construct an efficient protocol for the special case of secure two-party computation where only one party has input (like in the zero-knowledge case). The protocol achieves active security and is essentially only twice as slow as Yao's garbled circuit protocol. This is a great improvement with respect to the cut-n-choose technique to make Yao's protocol actively secure, where the complexity grows linearly with the security parameter.

Available format(s)
Cryptographic protocols
Publication info
Published elsewhere. Major revision.This is an extended version of a paper appeared at CCS 2013
Zero-knowledgeGarbled CircuitsSecure Two-Party ComputationActive Security
Contact author(s)
orlandi @ cs au dk
2013-08-26: last of 2 revisions
2013-02-20: received
See all versions
Short URL
Creative Commons Attribution


      author = {Marek Jawurek and Florian Kerschbaum and Claudio Orlandi},
      title = {Zero-Knowledge Using Garbled Circuits: How To Prove Non-Algebraic Statements Efficiently},
      howpublished = {Cryptology ePrint Archive, Paper 2013/073},
      year = {2013},
      doi = {10.1145/2508859.2516662},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.