Patent ID: 8522047

Claim:
A computer-implemented method of generating tamper-protected computer program code, the method comprising: obtaining a representation of the computer program code, the computer program code being adapted to cause a data processing system to perform a plurality of computational tasks in a first order of execution that results in a known functionality, each computational task being represented in the representation of the computer program code by at least one program statement; obtaining a plurality of alternative orders of execution of the computational tasks, wherein each one of the alternative orders of execution of the computational tasks results in the known functionality; generating an executable representation of the program code adapted to cause a data processing system to select a randomized order of execution from the plurality of alternative orders of execution and to execute the computational tasks in the selected randomized order of execution; wherein generating an executable representation of the program code comprises including computer-executable instructions in the executable representation of the program code, the computer-executable instructions being adapted to cause a data processing system to perform the following tasks, when the program code image is executed by the data processing system: a) performing an initial one of the computational tasks; b) selecting a subsequent computational task from a set of alternative successors of the performed computational task based on a representation of a set of precedence constraints imposed on the order of execution of the computational tasks; c) performing the selected computational task; and d) repeating steps b) and c) until all computational tasks have been performed, thereby achieving the known functionality.