Skip to main content

Cryptographic Program Obfuscation: Practical Solutions and Application-Driven Models

  • Chapter
  • First Online:

Part of the book series: Advances in Information Security ((ADIS,volume 72))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   149.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. 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.

    Google Scholar 

  2. Abhishek Banerjee, Chris Peikert, and Alon Rosen. Pseudorandom functions and lattices. In Proc. of EUROCRYPT 2012, pages 719–737.

    Google Scholar 

  3. Boaz Barak. Hopes, fears, and software obfuscation. Commun. ACM, 59(3):88–96, 2016.

    Article  Google Scholar 

  4. 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.

    Google Scholar 

  5. Mihir Bellare and Igors Stepanovs. Point-function obfuscation: A framework and generic constructions. In Proc. of TCC 2016-A2, pages 565–594.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. Joppe W. Bos and Peter L. Montgomery. Montgomery arithmetic from a software perspective. IACR Cryptology ePrint Archive, 2017:1057, 2017.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Ran Canetti. Towards realizing random oracles: Hash functions that hide all partial information. In Proc. of CRYPTO 1997, pages 455–469.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Larry Carter and Mark N. Wegman. Universal classes of hash functions. J. Comput. Syst. Sci., 18(2):143–154, 1979.

    Article  MathSciNet  Google Scholar 

  15. C. Collberg, C. Thomborson, and D. Low. A taxonomy of obfuscating transformations. In Technical Report 148, Department of Computer Science, University of Auckland, 1997.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. Léo Ducas, Alain Durmus, Tancrède Lepoint, and Vadim Lyubashevsky. Lattice signatures and bimodal gaussians. In Proc. of CRYPTO 2013, pages 40–56.

    Google Scholar 

  21. 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.

    Chapter  Google Scholar 

  22. Steven D. Galbraith. Space-efficient variants of cryptosystems based on learning with errors, 2013.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. Daniel M. Gordon. A survey of fast exponentiation methods. J. Algorithms, 27(1):129–146, 1998.

    Article  MathSciNet  Google Scholar 

  25. 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.

    Google Scholar 

  26. 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.

    Article  MathSciNet  Google Scholar 

  27. Susan Hohenberger, Guy N. Rothblum, Abhi Shelat, and Vinod Vaikuntanathan. Securely obfuscating re-encryption. J. Cryptology, 24(4):694–719, 2011.

    Article  MathSciNet  Google Scholar 

  28. Ben Lynn, Manoj Prabhakaran, and Amit Sahai. Positive results and techniques for obfuscation. In Proc. of EUROCRYPT 2004, pages 20–39.

    Google Scholar 

  29. Daniele Micciancio. Lattice-based cryptography. In Encyclopedia of Cryptography and Security, 2nd Ed., pages 713–715. 2011.

    Google Scholar 

  30. Daniele Micciancio and Chris Peikert. Trapdoors for lattices: Simpler, tighter, faster, smaller. In Proc. of EUROCRYPT 2012, pages 700–718.

    Google Scholar 

  31. Pascal Paillier. Public-key cryptosystems based on composite degree residuosity classes. In Proc. of EUROCRYPT ‘99, pages 223–238, 1999.

    Google Scholar 

  32. Chris Peikert. A decade of lattice cryptography. Foundations and Trends in Theoretical Computer Science, 10(4):283–424, 2016.

    Article  MathSciNet  Google Scholar 

  33. Oded Regev. On lattices, learning with errors, random linear codes, and cryptography. In Proc. of 37th ACM STOC, pages 84–93, 2005.

    Google Scholar 

  34. Gadiel Seroussi. Table of low-weight binary irreducible polynomials. In Technical Report HPL-98-135, 1998.

    Google Scholar 

  35. 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.

    Google Scholar 

  36. Hoeteck Wee. On obfuscating point functions. In Proc. of 37th ACM STOC 2005, pages 523–532.

    Google Scholar 

  37. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Giovanni Di Crescenzo .

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

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics