Abstract
Program obfuscation is about modifying source or machine code into functionally equivalent code that is hard to understand to a human or some other program. Early obfuscation techniques included heuristic non-cryptographic code transformations, many of which however, have been found to be ineffective against sufficiently motivated adversaries. The recent area of cryptographic program obfuscation targets the design and implementation of program obfuscators that are provably secure under a widely accepted intractability assumption, following the standard of modern cryptography solutions. In this chapter we provide a brief summary of the state of the art in cryptographic program obfuscation, focusing on two main aspects: first, there are many implementations of point function obfuscators, satisfying different obfuscation notions, and many of them can be used with practical performance guarantees; second, multiple application-driven obfuscation models and problems can be generated, where practical attack classes can be addressed by leveraging current implementations of point function obfuscators, as well as potential future practical implementations of special-purpose obfuscators.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Lisa Bahler, Giovanni Di Crescenzo, Yuriy Polyakov, Kurt Rohloff, and David Bruce Cousins. Practical implementation of lattice-based program obfuscators for point functions. In 2017 International Conference on High Performance Computing & Simulation, HPCS 2017, Genoa, Italy, July 17-21, 2017, pages 761–768, 2017.
Abhishek Banerjee, Chris Peikert, and Alon Rosen. Pseudorandom functions and lattices. In Proc. of EUROCRYPT 2012, pages 719–737.
Boaz Barak. Hopes, fears, and software obfuscation. Commun. ACM, 59(3):88–96, 2016.
Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, and Ke Yang. On the (im)possibility of obfuscating programs. In Proc. of CRYPTO 2001, pages 1–18.
Mihir Bellare and Igors Stepanovs. Point-function obfuscation: A framework and generic constructions. In Proc. of TCC 2016-A2, pages 565–594.
Manuel Blum and Silvio Micali. How to generate cryptographically strong sequences of pseudo random bits. In Proc. of 23rd IEEE FOCS 1982, pages 112–117, 1982.
Alexandra Boldyreva, Serge Fehr, and Adam O’Neill. On notions of security for deterministic encryption, and efficient constructions without random oracles. In Proc. of CRYPTO 2008, pages 335–359.
Dan Boneh. The decision diffie-hellman problem. In Algorithmic Number Theory, Third International Symposium, ANTS-III, Portland, Oregon, USA, June 21–25, 1998, Proceedings, pages 48–63, 1998.
Joppe W. Bos and Peter L. Montgomery. Montgomery arithmetic from a software perspective. IACR Cryptology ePrint Archive, 2017:1057, 2017.
Zvika Brakerski, Vinod Vaikuntanathan, Hoeteck Wee, and Daniel Wichs. Obfuscating conjunctions under entropic ring LWE. In Proceedings of the 2016 ACM Conference on Innovations in Theoretical Computer Science, Cambridge, MA, USA, January 14–16, 2016, pages 147–156, 2016.
Ran Canetti. Towards realizing random oracles: Hash functions that hide all partial information. In Proc. of CRYPTO 1997, pages 455–469.
Ran Canetti, Daniele Micciancio, and Omer Reingold. Perfectly one-way probabilistic hash functions (preliminary version). In Proc. of 13th ACM STOC, 1998, pages 131–140.
Ran Canetti, Guy N. Rothblum, and Mayank Varia. Obfuscation of hyperplane membership. In Theory of Cryptography, 7th Theory of Cryptography Conference, TCC 2010, Zurich, Switzerland, February 9–11, 2010. Proceedings, pages 72–89, 2010.
Larry Carter and Mark N. Wegman. Universal classes of hash functions. J. Comput. Syst. Sci., 18(2):143–154, 1979.
C. Collberg, C. Thomborson, and D. Low. A taxonomy of obfuscating transformations. In Technical Report 148, Department of Computer Science, University of Auckland, 1997.
Giovanni Di Crescenzo, Jeyavijayan Rajendran, Ramesh Karri, and Nasir D. Memon. Boolean circuit camouflage: Cryptographic models, limitations, provable results and a random oracle realization. In Proceedings of the 2017 Workshop on Attacks and Solutions in Hardware Security, ASHES@CCS 2017, Dallas, TX, USA, November 3, 2017, pages 7–16, 2017.
Ivan Damgård and Mads Jurik. A generalisation, a simplification and some applications of paillier’s probabilistic public-key system. In Proc. of PKC 2001, pages 119–136, 2001.
Giovanni DiCrescenzo, Lisa Bahler, Brian A. Coan, Yuriy Polyakov, Kurt Rohloff, and David Bruce Cousins. Practical implementations of program obfuscators for point functions. In Proc. of HPCS 2016, pages 460–467.
Yevgeniy Dodis and Adam D. Smith. Correcting errors without leaking partial information. In Proceedings of the 37th Annual ACM Symposium on Theory of Computing, Baltimore, MD, USA, May 22–24, 2005, pages 654–663, 2005.
Léo Ducas, Alain Durmus, Tancrède Lepoint, and Vadim Lyubashevsky. Lattice signatures and bimodal gaussians. In Proc. of CRYPTO 2013, pages 40–56.
David Mandell Freeman, Oded Goldreich, Eike Kiltz, Alon Rosen, and Gil Segev. More constructions of lossy and correlation-secure trapdoor functions. In Proc. of PKC 2010, pages 279–295.
Steven D. Galbraith. Space-efficient variants of cryptosystems based on learning with errors, 2013.
Craig Gentry, Shai Halevi, and Nigel P. Smart. Homomorphic evaluation of the AES circuit. In Proc. of CRYPTO 2012 (see also updated version on eprint), pages 850–867.
Daniel M. Gordon. A survey of fast exponentiation methods. J. Algorithms, 27(1):129–146, 1998.
Satoshi Hada. Zero-knowledge and code obfuscation. In Advances in Cryptology - ASIACRYPT 2000, 6th International Conference on the Theory and Application of Cryptology and Information Security, Kyoto, Japan, December 3–7, 2000, Proceedings, pages 443–457, 2000.
Johan Håstad, Russell Impagliazzo, Leonid A. Levin, and Michael Luby. A pseudorandom generator from any one-way function. SIAM J. Comput., 28(4):1364–1396, 1999.
Susan Hohenberger, Guy N. Rothblum, Abhi Shelat, and Vinod Vaikuntanathan. Securely obfuscating re-encryption. J. Cryptology, 24(4):694–719, 2011.
Ben Lynn, Manoj Prabhakaran, and Amit Sahai. Positive results and techniques for obfuscation. In Proc. of EUROCRYPT 2004, pages 20–39.
Daniele Micciancio. Lattice-based cryptography. In Encyclopedia of Cryptography and Security, 2nd Ed., pages 713–715. 2011.
Daniele Micciancio and Chris Peikert. Trapdoors for lattices: Simpler, tighter, faster, smaller. In Proc. of EUROCRYPT 2012, pages 700–718.
Pascal Paillier. Public-key cryptosystems based on composite degree residuosity classes. In Proc. of EUROCRYPT ‘99, pages 223–238, 1999.
Chris Peikert. A decade of lattice cryptography. Foundations and Trends in Theoretical Computer Science, 10(4):283–424, 2016.
Oded Regev. On lattices, learning with errors, random linear codes, and cryptography. In Proc. of 37th ACM STOC, pages 84–93, 2005.
Gadiel Seroussi. Table of low-weight binary irreducible polynomials. In Technical Report HPL-98-135, 1998.
Sharath K. Udupa, Saumya K. Debray, and Matias Madou. Deobfuscation: Reverse engineering obfuscated code. In 12th Working Conference on Reverse Engineering, WCRE 2005, Pittsburgh, PA, USA, November 7–11, 2005, pages 45–54, 2005.
Hoeteck Wee. On obfuscating point functions. In Proc. of 37th ACM STOC 2005, pages 523–532.
Xiang Xie, Rui Xue, and Rui Zhang. Deterministic public key encryption and identity-based encryption from lattices in the auxiliary-input setting. In Proc. of SCN 2012, pages 1–18.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Additional information
This work was supported by the Defense Advanced Research Projects Agency (DARPA) via U.S. Army Research Office (ARO), contract number W911NF-15-C-0233. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation hereon. Disclaimer: The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of DARPA, ARO or the U.S. Government. Approved for Public Release, Distribution Unlimited.
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Crescenzo, G.D. (2018). Cryptographic Program Obfuscation: Practical Solutions and Application-Driven Models. In: Conti, M., Somani, G., Poovendran, R. (eds) Versatile Cybersecurity. Advances in Information Security, vol 72. Springer, Cham. https://doi.org/10.1007/978-3-319-97643-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-97643-3_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-97642-6
Online ISBN: 978-3-319-97643-3
eBook Packages: Computer ScienceComputer Science (R0)