On Software Protection via Function Hiding
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.
KeywordsEncryption Scheme Quadratic Residue Software Pirate Encryption Function Boolean Circuit
Unable to display preview. Download preview PDF.
- 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.J. Benaloh. Dense probabilistic encryption. In Proceedings of the Workshop on Selected Areas of Cryptography, pages 120–128, 1994.Google Scholar
- 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.O. Goldreich and R. Ostrovsky. Software protection and simulation on oblivious RAMs. revised October 1995, ftp://ftp.theory.lcs.mit.edu/pub/people/oded/soft.ps..
- 6.S. Goldwasser and S. Micali. Probabilistic encryption. Journal of Computer and System Sciences, 28(2):270–299, April 1984.Google Scholar
- 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
- 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.T. Sander and Chr. Tschudin. Towards mobile cryptography. In IEEE Symposium on Security & Privacy’98, Oakland, California, May 1998.Google Scholar
- 11.Ingo Wegener. The Complexity of Boolean Functions. Eiley-Teubner, 1987.Google Scholar
- 12.R. E. Zippel. Interpolating polynomials from their values. Journal of Symbolic Computation, 9:375–403, March 1990.Google Scholar