Paper 2017/344

DUPLO: Unifying Cut-and-Choose for Garbled Circuits

Vladimir Kolesnikov, Jesper Buus Nielsen, Mike Rosulek, Ni Trieu, and Roberto Trifiletti


Cut-and-choose (C&C) is the standard approach to making Yao’s garbled circuit two-party computation (2PC) protocol secure against malicious adversaries. Traditional cut-and-choose operates at the level of entire circuits, whereas the LEGO paradigm (Nielsen & Orlandi, TCC 2009) achieves asymptotic improvements by per- forming cut-and-choose at the level of individual gates. In this work we propose a unified approach called DUPLO that spans the entire continuum between these two extremes. The cut-and-choose step in our protocol operates on the level of arbitrary circuit “components,” which can range in size from a single gate to the entire circuit itself. With this entire continuum of parameter values at our disposal, we find that the best way to scale 2PC to computations of realistic size is to use C&C components of in- termediate size, and not at the extremes. On computations requiring several millions of gates or more, our more general approach to C&C gives between 4-7x improvement over existing approaches. In addition to our technical contributions of modifying and optimizing previous proto- col techniques to work with general C&C components, we also provide an extension of the recent Frigate circuit compiler (Mood et al, EuroS&P 2016) to effectively express any C-style program in terms of components which can be processed efficiently using our protocol.

Note: Minor typo fixes in Appendix B. Some place the naming of E and G were mistaken.

Available format(s)
Cryptographic protocols
Publication info
Preprint. MINOR revision.
Contact author(s)
roberto @ cs au dk
2017-06-22: last of 4 revisions
2017-04-21: received
See all versions
Short URL
Creative Commons Attribution


      author = {Vladimir Kolesnikov and Jesper Buus Nielsen and Mike Rosulek and Ni Trieu and Roberto Trifiletti},
      title = {DUPLO: Unifying Cut-and-Choose for Garbled Circuits},
      howpublished = {Cryptology ePrint Archive, Paper 2017/344},
      year = {2017},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.