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. explores the theoretical limits of program obfuscation, a technique that aims to make a program "unintelligible" while preserving its functionality. The authors initiate a theoretical investigation of obfuscation, proving that under weak formalizations of the "virtual black box" property, obfuscation is impossible. They construct a family of efficient programs that are unobfuscatable, meaning that while the source code of any program computing the same function as these programs can be efficiently reconstructed, no efficient algorithm can reconstruct the original program or distinguish certain bits in its code from random with negligible probability. This result holds even if the obfuscator is not required to run in polynomial time and only needs to approximately preserve functionality. The authors also extend their findings to various restricted models of computation and demonstrate that several applications of obfuscators, such as software protection, removing random oracles, and transforming private-key encryption into public-key encryption, are impossible. They conclude by discussing the implications of their results and suggesting weaker definitions of obfuscators that might still be achievable.The paper "On the (Im)possibility of Obfuscating Programs" by Barak et al. explores the theoretical limits of program obfuscation, a technique that aims to make a program "unintelligible" while preserving its functionality. The authors initiate a theoretical investigation of obfuscation, proving that under weak formalizations of the "virtual black box" property, obfuscation is impossible. They construct a family of efficient programs that are unobfuscatable, meaning that while the source code of any program computing the same function as these programs can be efficiently reconstructed, no efficient algorithm can reconstruct the original program or distinguish certain bits in its code from random with negligible probability. This result holds even if the obfuscator is not required to run in polynomial time and only needs to approximately preserve functionality. The authors also extend their findings to various restricted models of computation and demonstrate that several applications of obfuscators, such as software protection, removing random oracles, and transforming private-key encryption into public-key encryption, are impossible. They conclude by discussing the implications of their results and suggesting weaker definitions of obfuscators that might still be achievable.
Reach us at info@study.space
[slides and audio] On the (im)possibility of obfuscating programs