On the (Im)possibility of Obfuscating Programs
 Boaz Barak,
 Oded Goldreich,
 Rusell Impagliazzo,
 Steven Rudich,
 Amit Sahai,
 Salil Vadhan,
 Ke Yang
 … show all 7 hide
Abstract
Informally, an obfuscator \( \mathcal{O} \) is an (efficient, probabilistic) “compiler” that takes as input a program (or circuit) P and produces a new program \( \mathcal{O} \) (P) that has the same functionality as P yet is “unintelligible” in some sense. Obfuscators, if they exist, would have a wide variety of cryptographic and complexitytheoretic applications, ranging from software protection to homomorphic encryption to complexitytheoretic analogues of Rice’s theorem. Most of these applications are based on an interpretation of the “unintelligibility” condition in obfuscation as meaning that \( \mathcal{O} \) is a “virtual black box,” in the sense that anything one can efficiently compute given \( \mathcal{O} \) , one could also efficiently compute given oracle access to P.
In this work, we initiate a theoretical investigation of obfuscation. Our main result is that, even under very weak formalizations of the above intuition, obfuscation is impossible. We prove this by constructing a family of functions \( \mathcal{F} \) that are inherently unobfuscatable in the following sense: there is a property π: \( \mathcal{F} \) → {0,1} such that (a) given any program that computes a function f ∈ \( \mathcal{F} \) , the value π(f) can be efficiently computed, yet (b) given oracle access to a (randomly selected) function f ∈ \( \mathcal{F} \) , no efficient algorithm can compute π(f) much better than random guessing. We extend our impossibility result in a number of ways, including even obfuscators that (a) are not necessarily computable in polynomial time, (b) only approximately preserve the functionality, and (c) only need to work for very restricted models of computation (TC _{0}). We also rule out several potential applications of obfuscators, by constructing “unobfuscatable” signature schemes, encryption schemes, and pseudorandom function families.
 Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, and Ke Yang. On the (im)possibility of obfuscating programs. Technical report, Electronic Colloquium on Computational Complexity, 2001. http://www.eccc.unitrier.de/eccc.
 Mihir Bellare and Phillip Rogaway. Random oracles are practical: A paradigm for designing efficient protocols. In Proceedings of the First Annual Conference on Computer and Communications Security. ACM, November 1993.
 Dan Boneh and Richard Lipton. Algorithms for blackbox fields and their applications to cryptography. In M. Wiener, editor, Advances in Cryptology—CRYPTO’ 96, volume 1109 of Lecture Notes in Computer Science, pages 283–297. SpringerVerlag, August 1996.
 Ran Canetti, Oded Goldreich, and Shai Halevi. The random oracle methodology, revisited. In Proceedings of the Thirtieth Annual ACM Symposium on Theory of Computing, pages 209–218, Dallas, 23–26 May 1998.
 Christian Collberg and Clark Thomborson. Watermarking, tamperproofing, and obfuscationtools for software protection. Technical Report TR0003, The Department of Computer Science, University of Arizona, February 2000.
 Danny Dolev, Cynthia Dwork, and Moni Naor. Nonmalleable cryptography. SIAM Journal on Computing, 30(2):391–437 (electronic), 2000. CrossRef
 Joan Feigenbaum and Michael Merritt, editors. Distributed computing and cryptography, Providence, RI, 1991. American Mathematical Society.
 Amos Fiat and Adi Shamir. How to prove yourself: practical solutions to identification and signature problems. In Advances in cryptology— CRYPTO’ 86 (Santa Barbara, Calif., 1986), pages 186–194. Springer, Berlin, 1987.
 Oded Goldreich, Shafi Goldwasser, and Silvio Micali. How to construct random functions. Journal of the Association for Computing Machinery, 33(4):792–807, 1986.
 Oded Goldreich and Rafail Ostrovsky. Software protection and simulation on oblivious RAMs. Journal of the ACM, 43(3):431–473, 1996. CrossRef
 Shafi Goldwasser and Silvio Micali. Probabilistic encryption. Journal of Computer and System Sciences, 28(2):270–299, April 1984.
 Satoshi Hada. Zeroknowledge and code obfuscation. In T. Okamoto, editor, Advances in CryptologyASIACRYPT’ 2000, Lecture Notes in Computer Science, pages 443–457, Kyoto, Japan, 2000. International Association for Cryptologic Research, SpringerVerlag, Berlin Germany. CrossRef
 Jonathan Katz and Moti Yung. Complete characterization of security notions for privatekey encryption. In Proceedings of the 32nd Annual ACM Symposium on Theory of Computing, pages 245–254, Portland, OR, May 2000. ACM.
 David Naccache, Adi Shamir, and Julien P. Stern. How to copyright a function? In H. Imai and Y. Zheng, editors, Public Key Cryptography— PKC’ 99, volume 1560 of Lecture Notes in Computer Science, pages 188–196. SpringerVerlag, March 1999. CrossRef
 Moni Naor and Omer Reingold. Numbertheoretic constructions of efficient pseudorandom functions. In 38th Annual Symposium on Foundations of Computer Science, pages 458–467, Miami Beach, Florida, 2022 October 1997. IEEE.
 Ronald L. Rivest, Len Adleman, and Michael L. Dertouzos. On data banks and privacy homomorphisms. In Foundations of secure computation (Workshop, Georgia Inst. Tech., Atlanta, Ga., 1977), pages 169–179. Academic, New York, 1978.
 Thomas Sander, Adam Young, and Moti Yung. Noninteractive cryptocomputing for NC1. In 40th Annual Symposium on Foundations of Computer Science, pages 554–566, New York, NY, 1719 October 1999. IEEE.
 Frans van Dorsselaer. Obsolescent feature. Winning entry for the 1998 International Obfuscated C Code Contest, 1998. http://www.ioccc.org/.
 Title
 On the (Im)possibility of Obfuscating Programs
 Book Title
 Advances in Cryptology — CRYPTO 2001
 Book Subtitle
 21st Annual International Cryptology Conference, Santa Barbara, California, USA, August 19–23, 2001 Proceedings
 Pages
 pp 118
 Copyright
 2001
 DOI
 10.1007/3540446478_1
 Print ISBN
 9783540424567
 Online ISBN
 9783540446477
 Series Title
 Lecture Notes in Computer Science
 Series Volume
 2139
 Series ISSN
 03029743
 Publisher
 Springer Berlin Heidelberg
 Copyright Holder
 SpringerVerlag Berlin Heidelberg
 Additional Links
 Topics
 Industry Sectors
 eBook Packages
 Editors

 Joe Kilian ^{(4)}
 Editor Affiliations

 4. Yianilos Labs.
 Authors

 Boaz Barak ^{(5)}
 Oded Goldreich ^{(5)}
 Rusell Impagliazzo ^{(6)}
 Steven Rudich ^{(7)}
 Amit Sahai ^{(8)}
 Salil Vadhan ^{(9)}
 Ke Yang ^{(7)}
 Author Affiliations

 5. Department of Computer Science, Weizmann Institute of Science, Rehovot, Israel
 6. Department of Computer Science and Engineering, University of California, San Diego, La Jolla, CA, 920930114
 7. Computer Science Department, Carnegie Mellon University, 5000 Forbes Ave., Pittsburgh, PA, 5213
 8. Department of Computer Science, Princeton University, 35 Olden St., Princeton, NJ, 08540
 9. Division of Engineering and Applied Sciences, Harvard University, 33 Oxford Street, Cambridge, MA, 02138
Continue reading...
To view the rest of this content please follow the download PDF link above.