On Software Protection via Function Hiding

  • Tomas Sander
  • Christian F. Tschudin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1525)


Software piracy is a major economic problem: it leads to revenue losses, it favors big software houses that are less hurt by these losses and it prevents new software economy models where small enterprises can sell software on a per-usage basis. Proprietary algorithms are currently hard to protect, both at the technical as well as the legal level. In this paper we show how encrypted programs can be used to achieve protection of algorithms against disclosure. Moreover, using this approach we describe a protocol that ensures - under reasonable conditions - that only licensed users are able to obtain the cleartext output of the program. This protocol also allows to charge clients on a per-usage basis.

These results are applied to a special class of functions for which we obtain a secure and computationally feasible solution: the key point is to encrypt functions such that they remain executable. We further show how to robustly fingerprint the resulting programs. Our approach is fully software based and does not rely on tamper resistant hardware.


Encryption Scheme Quadratic Residue Software Pirate Encryption Function Boolean Circuit 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. Abadi and J. Feigenbaum. Secure circuit evaluation. Journal of Cryptology, 2(1):1–12, 1990.CrossRefMathSciNetzbMATHGoogle Scholar
  2. 2.
    David Aucsmith. Tamper resistant software: An implementation. In Ross Anderson, editor, Information Hiding-Proceedings of the First International Workshop, May/June 1996, number 1174 in LNCS, pages 317–333, 1996.Google Scholar
  3. 3.
    J. Benaloh. Dense probabilistic encryption. In Proceedings of the Workshop on Selected Areas of Cryptography, pages 120–128, 1994.Google Scholar
  4. 4.
    P. Bürgisser, M. Clausen, and M. A. Shokrollahi. Algebraic Complexity Theory. Number 315 in Grundlehren der mathematischen Wissenschaften. Springer, 1997.Google Scholar
  5. 5.
    O. Goldreich and R. Ostrovsky. Software protection and simulation on oblivious RAMs. revised October 1995,
  6. 6.
    S. Goldwasser and S. Micali. Probabilistic encryption. Journal of Computer and System Sciences, 28(2):270–299, April 1984.Google Scholar
  7. 7.
    Richard Lipton and Tomas Sander. An additively homomorphic encryption scheme or how to introduce a partial trapdoor in the discrete log. In preparation.Google Scholar
  8. 8.
    S. Micali, C. Rackoff, and B. Sloan. The notion of security for probabilistic cryptosystems. SIAM Journal on Computing, 17(2):412–426, 1988.CrossRefMathSciNetzbMATHGoogle Scholar
  9. 9.
    Ronald L. Rivest, Len Adleman, and Michael L. Dertouzos. On data banks and privacy homomorphisms. In R. A. DeMillo, D. P. Dobkin, A. K. Jones, and R. J. Lipton, editors, Foundations of Secure Computation, pages 169–179. Academic Press, 1978.Google Scholar
  10. 10.
    T. Sander and Chr. Tschudin. Towards mobile cryptography. In IEEE Symposium on Security & Privacy’98, Oakland, California, May 1998.Google Scholar
  11. 11.
    Ingo Wegener. The Complexity of Boolean Functions. Eiley-Teubner, 1987.Google Scholar
  12. 12.
    R. E. Zippel. Interpolating polynomials from their values. Journal of Symbolic Computation, 9:375–403, March 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Tomas Sander
    • 1
  • Christian F. Tschudin
    • 1
  1. 1.International Computer Science InstituteBerkeleyUSA

Personalised recommendations