On the (Im)possibility of Obfuscating Programs

On the (Im)possibility of Obfuscating Programs

2012 | Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, and Ke Yang
The paper "On the (Im)possibility of Obfuscating Programs" by Barak et al. investigates the theoretical feasibility of program obfuscation. The authors argue that it is impossible to create an obfuscator that makes a program "unintelligible" while preserving its functionality. They define an obfuscator as a compiler that transforms a program into another program with the same functionality but that is a "virtual black box"—meaning that anything that can be efficiently computed from the obfuscated program can also be efficiently computed from the original program. The main result of the paper is that under very weak formalizations of the intuition behind obfuscation, it is impossible to achieve this goal. The authors construct a family of efficient programs that are unobfuscatable, meaning that while any efficient program that computes the same function as a program in the family can be efficiently reconstructed, given oracle access to a randomly selected program in the family, no efficient algorithm can reconstruct the original program or even distinguish a certain bit in the code from random with high probability. The paper extends this impossibility result in several ways, including obfuscators that do not necessarily run in polynomial time, obfuscators that only approximately preserve functionality, and obfuscators that work for very restricted models of computation such as TC^0. The authors also rule out several potential applications of obfuscators by constructing "unobfuscatable" signature schemes, encryption schemes, and pseudorandom function families. The paper discusses various applications of obfuscators, including software protection, removing random oracles, transforming private-key encryption into public-key encryption, homomorphic encryption, and software watermarking. The authors argue that the existence of such functions shows that the "virtual black box" paradigm for general-purpose obfuscators is inherently flawed. They suggest that alternative definitions of obfuscators that avoid the "virtual black box" paradigm may be more promising for future research.The paper "On the (Im)possibility of Obfuscating Programs" by Barak et al. investigates the theoretical feasibility of program obfuscation. The authors argue that it is impossible to create an obfuscator that makes a program "unintelligible" while preserving its functionality. They define an obfuscator as a compiler that transforms a program into another program with the same functionality but that is a "virtual black box"—meaning that anything that can be efficiently computed from the obfuscated program can also be efficiently computed from the original program. The main result of the paper is that under very weak formalizations of the intuition behind obfuscation, it is impossible to achieve this goal. The authors construct a family of efficient programs that are unobfuscatable, meaning that while any efficient program that computes the same function as a program in the family can be efficiently reconstructed, given oracle access to a randomly selected program in the family, no efficient algorithm can reconstruct the original program or even distinguish a certain bit in the code from random with high probability. The paper extends this impossibility result in several ways, including obfuscators that do not necessarily run in polynomial time, obfuscators that only approximately preserve functionality, and obfuscators that work for very restricted models of computation such as TC^0. The authors also rule out several potential applications of obfuscators by constructing "unobfuscatable" signature schemes, encryption schemes, and pseudorandom function families. The paper discusses various applications of obfuscators, including software protection, removing random oracles, transforming private-key encryption into public-key encryption, homomorphic encryption, and software watermarking. The authors argue that the existence of such functions shows that the "virtual black box" paradigm for general-purpose obfuscators is inherently flawed. They suggest that alternative definitions of obfuscators that avoid the "virtual black box" paradigm may be more promising for future research.
Reach us at info@futurestudyspace.com
Understanding On the (im)possibility of obfuscating programs