In
cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
, indistinguishability obfuscation (abbreviated IO or iO) is a type of
software obfuscation
In software development, obfuscation is the practice of creating source or machine code that is intentionally difficult for humans or computers to understand. Similar to obfuscation in natural language, code obfuscation may involve using unnece ...
with the defining property that obfuscating any two programs that compute the same
mathematical function
In mathematics, a function from a set (mathematics), set to a set assigns to each element of exactly one element of .; the words ''map'', ''mapping'', ''transformation'', ''correspondence'', and ''operator'' are sometimes used synonymously. ...
results in programs that cannot be distinguished from each other. Informally, such obfuscation hides the implementation of a program while still allowing users to run it.
Formally, iO satisfies the property that obfuscations of two circuits of the same size which implement the same function are
computationally indistinguishable.
Indistinguishability obfuscation has several interesting theoretical properties. Firstly, iO is the "best-possible" obfuscation (in the sense that any secret about a program that can be hidden by any obfuscator at all can also be hidden by iO). Secondly, iO can be used to construct nearly the entire gamut of
cryptographic primitive Cryptographic primitives are well-established, low-level cryptography, cryptographic algorithms that are frequently used to build cryptographic protocols for computer security systems. These routines include, but are not limited to, one-way hash fun ...
s, including both mundane ones such as
public-key cryptography
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
and more exotic ones such as
deniable encryption
In cryptography and steganography, plausibly deniable encryption describes encryption techniques where the existence of an encrypted file or message is deniable in the sense that an adversary cannot prove that the plaintext data exists.
The use ...
and
functional encryption (which are types of cryptography that no-one previously knew how to construct
), but with the notable exception of collision-resistant
hash function
A hash function is any Function (mathematics), function that can be used to map data (computing), data of arbitrary size to fixed-size values, though there are some hash functions that support variable-length output. The values returned by a ...
families. For this reason, it has been referred to as "crypto-complete". Lastly, unlike many other kinds of cryptography, indistinguishability obfuscation continues to exist even if
P=NP (though it would have to be constructed differently in this case), though this does not necessarily imply that iO exists unconditionally.
Though the idea of cryptographic software obfuscation has been around since 1996, indistinguishability obfuscation was first proposed by Barak et al. (2001), who proved that iO exists if P=NP is the case. For the P≠NP case (which is harder, but also more plausible
), progress was slower: Garg et al. (2013)
proposed a construction of iO based on a
computational hardness assumption
In computational complexity theory, a computational hardness assumption is the hypothesis that a particular problem cannot be solved efficiently (where ''efficiently'' typically means "in polynomial time"). It is not known how to prove (unconditi ...
relating to
multilinear map
Multilinear may refer to:
* Multilinear form, a type of mathematical function from a vector space to the underlying field
* Multilinear map, a type of mathematical function between vector spaces
* Multilinear algebra, a field of mathematics ...
s, but this assumption was later disproven. A construction based on "well-founded assumptions" (hardness assumptions that have been well-studied by cryptographers, and thus widely assumed secure) had to wait until Jain, Lin, and Sahai (2020). (Even so, one of these assumptions used in the 2020 proposal is not secure against
quantum computers.)
Currently known indistinguishability obfuscation candidates are very far from being practical. As measured by a 2017 paper, even obfuscating the
toy function which outputs the
logical conjunction
In logic, mathematics and linguistics, ''and'' (\wedge) is the Truth function, truth-functional operator of conjunction or logical conjunction. The logical connective of this operator is typically represented as \wedge or \& or K (prefix) or ...
of its thirty-two
Boolean data type
In computer science, the Boolean (sometimes shortened to Bool) is a data type that has one of two possible values (usually denoted ''true'' and ''false'') which is intended to represent the two truth values of logic and Boolean algebra. It is na ...
inputs produces a program nearly a dozen
gigabyte
The gigabyte () is a multiple of the unit byte for digital information. The SI prefix, prefix ''giga-, giga'' means 109 in the International System of Units (SI). Therefore, one gigabyte is one billion bytes. The unit symbol for the gigabyte i ...
s large.
Formal definition
Let
be some uniform
probabilistic polynomial-time algorithm. Then
is called an ''indistinguishability obfuscator'' if and only if it satisfies both of the following two statements:
* Completeness or Functionality: For any
Boolean circuit
In computational complexity theory and circuit complexity, a Boolean circuit is a mathematical model for combinational digital logic circuits. A formal language can be decided by a family of Boolean circuits, one circuit for each possible inpu ...
''C'' of input length ''n'' and input
, we have
* Indistinguishability: For every pair of circuits
of the same size ''k'' that implement the same functionality, the distributions
and
are computationally indistinguishable. In other words, for any probabilistic polynomial-time
adversary
An adversary is generally considered to be a person, group, or force that opposes and/or attacks.
Adversary may also refer to:
* Satan ("adversary" in Hebrew), in Abrahamic religions
Entertainment Fiction
* Adversary (comics), villain from t ...
''A'', there is a negligible function
(''i.e.'', a function that eventually grows slower than
for any polynomial ''p'') such that, for every pair of circuits
of the same size ''k'' that implement the same functionality, we have
History
In 2001, Barak et al., showing that
black-box obfuscation
In cryptography, black-box obfuscation was a proposed cryptographic primitive which would allow a computer program to be obfuscated in a way such that it was impossible to determine anything about it except its input and output behavior. Black-box ...
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
In computational complexity theory, the polynomial hierarchy (sometimes called the polynomial-time hierarchy) is a hierarchy of complexity classes that generalize the classes NP and co-NP. Each class in the hierarchy is contained within PSPACE. ...
collapses to the second level.
)
An
open-source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
implementation of an iO candidate was created in 2015.
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.
If
P = NP holds, then an indistinguishability obfuscator exists, even though no other kind of cryptography would also exist.
A candidate construction of iO with
provable security
Provable security refers to any type or level of computer security that can be proved. It is used in different ways by different fields.
Usually, this refers to mathematical proofs, which are common in cryptography. In such a proof, the capabilit ...
under concrete
hardness assumptions relating to
multilinear maps was published by Garg et al. (2013),
but this assumption was later invalidated.
(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.
Finally, in 2020, Jain, Lin, and Sahai proposed a construction of iO based on the
symmetric external Diffie-Helman,
learning with errors
In cryptography, learning with errors (LWE) is a mathematical problem that is widely used to create secure encryption algorithms. It is based on the idea of representing secret information as a set of equations with errors. In other words, LWE is ...
, and
learning plus noise assumptions,
as well as the existence of a super-linear stretch
pseudorandom generator
In theoretical computer science and cryptography, a pseudorandom generator (PRG) for a class of statistical tests is a deterministic procedure that maps a random seed to a longer pseudorandom string such that no statistical test in the class c ...
in the function class
NC0.
(The existence of pseudorandom generators in NC
0 (even with sub-linear stretch) was a long-standing open problem until 2006.) It is possible that this construction could be broken with
quantum computing
A quantum computer is a computer that exploits quantum mechanical phenomena. On small scales, physical matter exhibits properties of wave-particle duality, both particles and waves, and quantum computing takes advantage of this behavior using s ...
, 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
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
The Advanced Encryption Standard (AES), also known by its original name Rijndael (), is a specification for the encryption of electronic data established by the U.S. National Institute of Standards and Technology (NIST) in 2001.
AES is a variant ...
encryption circuit at a security level of 128 bits would measure 18 PB and have an evaluation time of about 272 years.
Existence
It is useful to divide the question of the existence of iO by using
Russell Impagliazzo's "five worlds", which are five different hypothetical situations about
average-case complexity
In computational complexity theory, the average-case complexity of an algorithm is the amount of some computational resource (typically time) used by the algorithm, averaged over all possible inputs. It is frequently contrasted with worst-case comp ...
:
* ''Algorithmica'': In this case
P = NP, but iO exists.
* ''Heuristica'': In this case NP problems are easy on average; iO does not exist.
*''Pessiland'': In this case, BPP ≠ NP, but
one-way functions do not exist; as a result, iO does not exist.
*''Minicrypt'': In this case,
one-way functions exist, but secure
public-key cryptography
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
does not; iO does not exist (because explicit constructions of public-key cryptography from iO and one-way functions are known).
*''Cryptomania'': In this case, secure
public-key cryptography
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
exists, but iO does not exist.
*''Obfustopia'': In this case, iO is believed to exist.
Potential applications
Indistinguishability obfuscators, if they exist, could be used for an enormous range of
cryptographic
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or '' -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adversarial behavior. More gen ...
applications, so much so that it has been referred to as a "central hub" for cryptography,
the "crown jewel of cryptography",
or "crypto-complete".
Concretely, an indistinguishability obfuscator (with the additional assumption of the existence of
one-way function
In computer science, a one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random input. Here, "easy" and "hard" are to be understood in the sense of computational complexity theory, s ...
s
) could be used to construct the following kinds of cryptography:
* Indistinguishability obfuscation for programs in the RAM model
and for
Turing machine
A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
s
*
IND-CCA-secure
public-key cryptography
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
* Short
digital signatures
*
IND-CCA-secure
key encapsulation schemes
* Perfectly zero-knowledge
non-interactive zero-knowledge proof
Across the many fields concerned with interactivity, including information science, computer science, human-computer interaction, communication, and industrial design, there is little agreement over the meaning of the term "interactivity", but ...
s and succinct non-interactive arguments
* Constant-round concurrent zero-knowledge protocols
*
Multilinear map
Multilinear may refer to:
* Multilinear form, a type of mathematical function from a vector space to the underlying field
* Multilinear map, a type of mathematical function between vector spaces
* Multilinear algebra, a field of mathematics ...
s with bounded polynomial degrees
*
Injective
In mathematics, an injective function (also known as injection, or one-to-one function ) is a function that maps distinct elements of its domain to distinct elements of its codomain; that is, implies (equivalently by contraposition, impl ...
trapdoor functions
*
Fully homomorphic encryption
*
Witness encryption
*
Functional encryption
*
Secret sharing
Secret sharing (also called secret splitting) refers to methods for distributing a secrecy, secret among a group, in such a way that no individual holds any intelligible information about the secret, but when a sufficient number of individuals c ...
for any monotone NP language
* Semi-honest
oblivious transfer
*
Deniable encryption
In cryptography and steganography, plausibly deniable encryption describes encryption techniques where the existence of an encrypted file or message is deniable in the sense that an adversary cannot prove that the plaintext data exists.
The use ...
(both sender-deniable and fully-deniable)
* Multiparty, non-interactive
key exchange
* Adaptively secure succinct garbled RAM
* Correlation intractable functions
* Attribute-based encryption
*Oblivious transfer
*Traitor tracing
*Graded encoding schemes
Additionally, if iO and one-way functions exist, then problems in the
PPAD
In computer science, PPAD ("Polynomial Parity Arguments on Directed graphs") is a complexity class introduced by Christos Papadimitriou in 1994. PPAD is a subclass of TFNP based on functions that can be shown to be total by a parity argument. The ...
complexity class are provably hard.
However, indistinguishability obfuscation cannot be used to construct ''every'' possible cryptographic protocol: for example, no black-box construction can convert an indistinguishability obfuscator to a collision-resistant
hash function
A hash function is any Function (mathematics), function that can be used to map data (computing), data of arbitrary size to fixed-size values, though there are some hash functions that support variable-length output. The values returned by a ...
family, even with a
trapdoor permutation, except with an ''exponential'' loss of security.
See also
*
Black-box obfuscation
In cryptography, black-box obfuscation was a proposed cryptographic primitive which would allow a computer program to be obfuscated in a way such that it was impossible to determine anything about it except its input and output behavior. Black-box ...
, a stronger form of obfuscation proven to be impossible
*
References
{{reflist
Cryptographic primitives
Software obfuscation