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

Participates in

Builds on Indistinguishability Obfuscation

Produces Indistinguishability Obfuscation

Barriers