Computational cryptography › Hashes and symmetric ciphers
SECURE COMPUTATIONPrimitive

Garbled circuits

In plain words

Turn a computation into an encrypted circuit that someone else can run without learning the inputs.

The idea: One party turns the computation into a circuit of logic gates and replaces each wire's 0 and 1 with random secret labels. Each gate becomes a small table of encryptions: given the labels for its inputs, you can unlock exactly one output label and nothing else. The other party gets the labels for their own input through oblivious transfer, evaluates gate by gate seeing only random labels, and only the final labels are translated back into the answer.

Why it matters: One of the main ways two parties compute together privately.

The details

On the map: fixed-key AES, with OT gives Yao MPC

Yao's technique[1]: one party encrypts a Boolean circuit gate by gate, and the other evaluates it on encrypted inputs, learning only the final output.

Modern implementations use AES with a fixed, public key as if it were a random permutation, for speed: an idealization like the random oracle. Guo, Katz, Wang and Yu (2020)[2] found that many implementations used it in ways that idealization doesn't justify, some open to concrete attacks, and gave provably secure ways to do it. Combined with oblivious transfer for the evaluator's inputs, it gives two-party secure computation.

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Nothing on the map depends on it: it is an end point, something people use directly.

References

  1. Andrew Chi-Chih Yao. How to generate and exchange secrets. 27th Annual Symposium on Foundations of Computer Science (sfcs 1986). doi:10.1109/sfcs.1986.25
  2. Chun Guo, Jonathan Katz, Xiao Wang and Yu Yu. Efficient and Secure Multiparty Computation from Fixed-Key Block Ciphers. 2020 IEEE Symposium on Security and Privacy (SP). doi:10.1109/sp40000.2020.00016