Indistinguishability Obfuscation
Indistinguishability obfuscation (iO) is a form of program obfuscation in which the obfuscated programs for any two functionally equivalent circuits are computationally indistinguishable. It is considered a “universal” cryptographic primitive: combined with one-way functions, iO implies a vast number of cryptographic primitives. The first candidate construction was given by Garg, Gentry, Halevi, Raykova, Sahai, and Waters — GGHRSW13; the first construction from well-founded assumptions was given by Jain, Lin, and Sahai — JLS21.
Syntax
An indistinguishability obfuscator is an efficient randomized algorithm such that:
- , takes a circuit and outputs an obfuscated circuit ,
- for all inputs (functionality preservation).
Properties
Correctness
For all , circuits , and inputs : with probability 1.
Indistinguishability
For all pairs of circuits of the same size that compute the same function (i.e., for all ), and all efficient adversaries :
is negligible, where .
Variations
Virtual black-box obfuscation (VBB)
A stronger notion requiring that anything an efficient adversary can compute from the obfuscated program could be computed by a simulator with only oracle access to the program. VBB obfuscation is impossible for general circuits — standard (Barak et al. 2001).
Differing-inputs obfuscation (diO)
An intermediate notion between iO and VBB, which requires indistinguishability for pairs of circuits that are hard to distinguish on any input. Known to be equivalent to iO under certain conditions.
Other results
- First iO candidate construction (based on multilinear maps) — GGHRSW13
- First iO from well-founded assumptions: sub-exponential LWE, LPN, pseudorandom generators in , and DDH — JLS21
- iO + OWF → PKE — SW14
- iO + OWF → functional encryption for all circuits — GGHRSW13, SW14
- iO + OWF → NIZK in the plain model (no CRS) — SW14
- iO + OWF → deniable encryption, lossy functions, and many other primitives — SW14
- iO is implied by functional encryption for (circuits of any polynomial size) in a strong sense — standard
- VBB obfuscation is impossible for general circuits; iO is believed to be the “best possible” general obfuscation — standard