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.
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.
If any of these breaks, this breaks too.
If this breaks, these break with it.
Nothing on the map depends on it: it is an end point, something people use directly.