International Association for Cryptologic Research

International Association
for Cryptologic Research

CryptoDB

Breaking and Fixing Garbled Circuits When a Gate has Duplicate Input Wires

Authors:
Raine Nieminen
Thomas Schneider
Download:
DOI: 10.1007/s00145-023-09472-4
Search ePrint
Search Google
Abstract: Garbled circuits are a fundamental cryptographic primitive that allows two or more parties to securely evaluate an arbitrary Boolean circuit without revealing any information beyond the output using a constant number of communication rounds. Garbled circuits have been introduced by Yao (FOCS’86) and generalized to the multi-party setting by Beaver, Micali and Rogaway (STOC’90). Since then, several works have improved their efficiency by providing different garbling schemes and several implementations exist. Starting with the seminal Fairplay compiler (USENIX Security’04), several implementation frameworks decoupled the task of compiling the function to be evaluated into a Boolean circuit from the engine that securely evaluates that circuit, e.g., using a secure two-party computation protocol based on garbled circuits. In this paper, we show that this decoupling of circuit generation and evaluation allows a subtle attack on several prominent garbling schemes. It occurs when violating the implicit assumption on the circuit that gates have different input wires which is most often not explicitly specified in the respective papers. The affected garbling schemes use separate calls to a deterministic encryption function for the left and right input wire of a gate to derive pseudo-random encryption pads that are XORed together. When a circuit contains a gate where the left and right input wire are the same, these two per-wire encryption pads cancel out and we demonstrate that this can result in a complete break of privacy. We show how the vulnerable garbling schemes can be fixed easily.
BibTeX
@article{jofc-2023-33830,
  title={Breaking and Fixing Garbled Circuits When a Gate has Duplicate Input Wires},
  journal={Journal of Cryptology},
  publisher={Springer},
  volume={36},
  doi={10.1007/s00145-023-09472-4},
  author={Raine Nieminen and Thomas Schneider},
  year=2023
}