1. DUPLO: Unifying Cut-and-Choose for Garbled Circuits 2017 2PC CCS GarbledCircuits
    Vladimir Kolesnikov, Jesper Buus Nielsen, Mike Rosulek, Ni Trieu, and Roberto Trifiletti
    [View PDF on acmccs.github.io]
    [Show BibTex Citation]

    author = {Kolesnikov, Vladimir and Nielsen, Jesper Buus and Rosulek, Mike and Trieu, Ni and Trifiletti, Roberto},
    title = {DUPLO: Unifying Cut-and-Choose for Garbled Circuits},
    year = {2017},
    isbn = {9781450349468},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3133956.3133991},
    doi = {10.1145/3133956.3133991},
    booktitle = {Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security},
    pages = {3–20},
    numpages = {18},
    keywords = {2pc, uc-secure, cut-and-choose, implementation, malicious adversary, cryptographic protocol, garbled circuits},
    location = {Dallas, Texas, USA},
    series = {CCS ’17}

Cut-and-choose (CC) 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 performing 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 CC components of intermediate size, and not at the extremes. On computations requiring several millions of gates or more, our more general approach to CC gives between 4-7x improvement over existing approaches.

In addition to our technical contributions of modifying and optimizing previous protocol techniques to work with general CC components, we also provide an extension of the recent Frigate circuit compiler (Mood et al, Euro S&P 2016) to effectively express any C-style program in terms of components which can be processed efficiently using our protocol.