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 every polynomial , every pair of circuit families with and for all , and all efficient adversaries ,
is negligible, where — GGHRSW13. The circuits grow with : for one fixed pair, the obfuscator that outputs a canonical truth table once exceeds the pair’s truth-table size, and the circuit itself before, has advantage eventually yet hides nothing — standard.
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 — BGI+01.
Sub-exponentially secure iO
iO is sub-exponentially secure if there is a constant such that every adversary of size has advantage at most in the indistinguishability game. Trapdoor permutations from iO — BPW16 — and fully homomorphic encryption without circular security — CLTV15 — assume it.
Statistical iO
An efficient, perfectly correct obfuscator is statistically secure if for all circuit families as in the indistinguishability game, the distributions and are within negligible statistical distance — GR07. Statistical iO is iO, but it does not exist even for 3-CNF formulas unless the polynomial hierarchy collapses to its second level (No reduction from iO to statistical iO) — GR07.
Differing-inputs obfuscation (diO)
A differing-inputs obfuscator requires that for every efficient sampler of with such that no efficient algorithm given finds with except with negligible probability, and are computationally indistinguishable — BCP14. Functionally equivalent circuits have no differing input, so diO implies iO — standard. iO implies diO for circuit pairs that differ on polynomially many inputs — BCP14 — and diO for general auxiliary input is implausible — GGHW14.
Other results
- MMap + Leveled FHE ⇒ iO (candidate)
- Sub-exponential SXDH + LWE + LPN + NC0-PRG ⇒ iO
- OWF + iO ⇒ PKE
- OWF + iO ⇒ FE
- OWF + iO ⇒ Non-adaptively sound NIZK argument
- OWF + iO ⇒ Deniable encryption
- iO together with one-way functions (or close variants of them) also yields injective trapdoor functions, CCA-secure PKE and oblivious transfer — SW14
- FE ⇒ iO
- VBB obfuscation is impossible for general circuits — BGI+01; efficient iO is best-possible obfuscation: it leaks no more than any other circuit of comparable size computing the same function — GR07
Participates in
Builds on Indistinguishability Obfuscation
- Differing-inputs obfuscation (diO) ⇒ iO (via Differing-inputs obfuscation (diO))
- OWF + iO ⇒ Deniable encryption
- OWF + iO ⇒ DS
- OWF + iO ⇒ FE
- OWF + iO ⇒ Non-adaptively sound NIZK argument
- OWF + iO ⇒ PKE
- iO + NP ⊄ io-BPP ⇒ OWF
- iO + OWF ⇒ Multiparty NIKE (Boneh–Zhandry)
- iO + OWP ⇒ CLS hardness
- iO + OWP ⇒ PPAD hardness
- iO ⇒ Statistical ZK arguments for NP
- iO ⇒ Witness encryption
- Statistical iO ⇒ iO (via Statistical iO)
- Sub-exponential OWF + iO ⇒ PPAD hardness (via Sub-exponentially secure iO)
- Sub-exponential iO + Sub-exponential OWF ⇒ TDP (Bitansky–Paneth–Wichs) (via Sub-exponentially secure iO)
- Sub-exponential iO + Rerandomizable encryption ⇒ Compact FHE (CLTV) (via Sub-exponentially secure iO)
- Sub-exponentially secure iO ⇒ iO (via Sub-exponentially secure iO)
Produces Indistinguishability Obfuscation
- Sub-exponential SXDH + LWE + LPN + NC0-PRG ⇒ iO
- Differing-inputs obfuscation (diO) ⇒ iO
- FE ⇒ iO
- MMap + Leveled FHE ⇒ iO
- Statistical iO ⇒ iO
- Sub-exponentially secure iO ⇒ iO
Barriers