Abstract
Software protection is one of the most important issues concerning computer practice. The problem is to sell programs that can be executed by the buyer, yet cannot be duplicated and/or distributed by him to other users. There exist many heuristics and ad-hoc methods for protection, but the problem as a whole did not receive the theoretical treatment it deserves.
In this paper, we make the first steps towards a theoretic treatment of software protection: First, we distill and formulate the key problem of learning about a program from its execution. Second, we present an efficient way of executing programs (i.e. a interpreter) such that it is infeasible to learn anything about the program by monitoring its executions. A scheme that protects against duplication follows.
How can one efficiently execute programs without allowing an adversary, monitoring the execution, to learn anything about the program ? Current cryptographic techniques can be applied to keep the contents of the memory unknow throughout the execution, but are not applicable to the problem of hiding the access pattern. Hiding the access pattern efficiently is the essence of our solution. We show how to implement (on-line and in an “oblivious manner”) t fetch instructions to a memory of size m by making less than t·m ε actual accesses, for every fixed ε>0.
Work done while author was in the Labontory for Computer Science, MIT.
Panially suppoited by a Weizmann Postdoctoral Fellowship, an IBM Postdoctoral Fellowship, and NSF Grant DCR-8509905.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Aho, A.V., J.E. Hopcroft, and J.D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley Publ. Co., 1974.
Ajtai, M., J. Komlos, and E. Szemeredi, “An O(n·log n) Sorting Network”, Proc. 15th STOC, 1983, pp. 1–9.
Alexi, W., B. Chor, O. Goldreich, and C.P. Schnorr, “RSA and Rabin Functions: Certain Parts Are As Hard As The Whole”, to appear in SIAM Jour. on Computing. Extended Abstract in Proc. 25th FOCS, 1984.
Batcher, K., “Sorting Networks and their Applications”, AFIPS Spring Joint Computer Conference, 32, 1968, pp. 307–314.
Best, R., “Microprocessor for Executing Encrypted Programs”, US Patent 4,168,396. Issued September 1979.
Blum, M., unpublished manuscript, 1983.
Blum, M., and S. Goldwasser, “An Efficient Probabilistic Public-Key Encryption Scheme which Hides All Partial Information”, Advances in Cryptology: Proceedings of CRYPTO 84, Springer Verlag, Lecture Notes in Computer Science (196), 1985, pp. 289–299.
Blum, M., and Micali, S., “How to Generate Cryptographically Strong Sequences of Pseudo-Random Bits”, SIAM Jour. on Computing, Vol. 13, 1984, pp. 850–864.
Goldreich, O., S. Goldwasser, and S. Micali, “How to Construct Random Functions”, Proc. of 25th Symp. on Foundation of Computer Science, 1984, pp. 464–479. To appear in Jour. of ACM.
Goldwasser S., and S. Micali, “Probabilistic Encryption”, Jour. of Computer and System Science, Vol. 28, No. 2, 1984, pp. 270–299.
Kent, S.T., “Protecting Externally Supplied Software in Small Computers”, Ph.D. Thesis, MIT/LCS/TR-255, 1980.
Luby, M., and C. Rackoff, “Pseudo-random Permutation Generators and Cryptographic Composition”, Proc. of 18th STOC, 1986, pp. 356–363.
Pippenger, N., and M.J. Fischer, “Relation Among Complexity Measures”, Jour. of ACM, Vol. 26, No. 2, 1979, pp. 361–381.
Yao, A.C., “Theory and Applications of Trapdoor Functions”, Proc. of the 23rd IEEE Symp. on Foundation of Computer Science, 1982, pp. 80–91.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Goldreich, O. (1987). Towards a Theory of Software Protection (Extended Abstract). In: Odlyzko, A.M. (eds) Advances in Cryptology — CRYPTO’ 86. CRYPTO 1986. Lecture Notes in Computer Science, vol 263. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47721-7_31
Download citation
DOI: https://doi.org/10.1007/3-540-47721-7_31
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-18047-0
Online ISBN: 978-3-540-47721-1
eBook Packages: Springer Book Archive