Towards a theory of software protection

  • Authors:
  • Oded Goldreich

  • Affiliations:
  • Technion, Haifa, Israel

  • Venue:
  • Proceedings on Advances in cryptology---CRYPTO '86
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

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.