Methods and systems for securing computer software
First Claim
1. A digital data computing method comprising:
- executing a process that makes requests and that requires at least asynchronous responses to those requests to continue normal operation;
generating those responses external to the process and supplying them to that process;
the executing step including continuing normal operation of the process when at least asynchronous responses are received to the requests and otherwise discontinuing normal operation such that there is no real-time dependency of that process to those responses.
1 Assignment
0 Petitions
Accused Products
Abstract
A digital data computing method and system for transforming an original set of computer instructions into a process that makes requests and a response generator wherein the process operates normally only if it receives at least asynchronous replies to its requests. The response generator is external to the process and secured against unauthorized use, access, copying and functional analysis. Moreover, the execution speed of the process is not affected by expected time delays of the means for communication. Further, the methods and system provide such that it is computationally hard to determine the response, or to determine the action the process will take after receiving a response. As such, the invention is suitable for controlling access to computer programs for purposes such as enforcing lease agreements, licensing agreements, and the like, including time-sensitive computer programs where execution timing is a consideration.
-
Citations
43 Claims
-
1. A digital data computing method comprising:
-
executing a process that makes requests and that requires at least asynchronous responses to those requests to continue normal operation;
generating those responses external to the process and supplying them to that process;
the executing step including continuing normal operation of the process when at least asynchronous responses are received to the requests and otherwise discontinuing normal operation such that there is no real-time dependency of that process to those responses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32)
-
-
13. A digital data computing method securing and controlling a set of instructions (hereafter, “
- code”
) against at least one of unauthorized use, access, copying and functional analysis comprising;
including within the code requests to which the code requires at least asynchronous responses in order to continue normal operation;
generating those responses external to the code and supplying them to that process;
the executing step including continuing normal operation of the process when at least asynchronous responses are received to the requests and otherwise discontinuing normal operation such that there is no real-time dependency of that process to those responses.
- code”
-
26. A digital data computing method, comprising:
-
executing a computer programming process, the executing step including performing any of allocation and de-allocation of data storage resources; and
providing data necessary for performing such allocation and de-allocation from a source external to the process, wherein that data includes at least one of a size and a location of an area to allocate or de-allocate.
-
-
33. A digital data computing method for securing and controlling the executing a set of instructions (hereafter, “
- code”
) against at least one of unauthorized use, access, copying and functional analysis comprising;
including, within the code, requests to which the code requires at least asynchronous responses in order to perform allocation and de-allocation of data storages resources;
generating those responses external to the process and supplying them to that process;
continuing normal operation of the code only if at least asynchronous responses are received to the requests and, otherwise, discontinuing normal operation, such that there is no real-time dependency of that code to those responses. - View Dependent Claims (34, 35, 36, 38, 39, 40, 41, 42, 43)
- code”
-
37. A digital data computing method, comprising:
-
executing a computer programming process, the executing step including performing any of allocation and de-allocation of dynamic resources; and
providing data necessary for performing such allocation and de-allocation from a source external to the process, wherein that data includes at least a description of the resource to be allocated or de-allocated.
-
Specification