In 2001, Barak et al., showing that
black-box obfuscation is impossible, also proposed the idea of an indistinguishability obfuscator, and constructed an inefficient one. Although this notion seemed relatively weak, Goldwasser and Rothblum (2007) showed that an efficient indistinguishability obfuscator would be a best-possible obfuscator, and any best-possible obfuscator would be an indistinguishability obfuscator. (However, for
inefficient obfuscators, no best-possible obfuscator exists unless the
polynomial hierarchy collapses to the second level.
Candidate constructions Barak et al. (2001) proved that an
inefficient indistinguishability obfuscator exists for circuits; that is, the lexicographically first circuit that computes the same function. (Previously, Garg, Gentry, and Halevi (2012) had constructed a candidate version of a multilinear map based on heuristic assumptions.) Starting from 2016, Lin began to explore constructions of iO based on less strict versions of multilinear maps, constructing a candidate based on maps of degree up to 30, and eventually a candidate based on maps of degree up to 3. as well as the existence of a super-linear stretch
pseudorandom generator in the function class
NC0.) It is possible that this construction could be broken with
quantum computing, but there is an alternative construction that may be secure even against that (although the latter relies on less established security assumptions).
Practicality There have been attempts to implement and benchmark iO candidates. In 2017, an obfuscation of the function x_1\wedge x_2\wedge \dots \wedge x_{32} at a security level of 80 bits took 23.5 minutes to produce and measured 11.6 GB, with an evaluation time of 77 ms. Additionally, an obfuscation of the
Advanced Encryption Standard encryption circuit at a security level of 128 bits would measure 18 PB and have an evaluation time of about 272 years. == Existence ==