Patent ID: 8661535

Claim:
A method for executing an application compiled in intermediate code, on a portable digital device having a processor and a memory that implement a virtual executing machine for interpreting the intermediate code and executing a first set of arithmetic and/or logical operations on data items, comprising: storing, in the memory, a second set of operations comprising operations that respectively correspond to each of the arithmetic and/or logical operations in said first set, wherein each operation of the second set is related to its corresponding operation in the first set by a predetermined checksum function; generating, by the processor, a checksum item for each of a plurality of data items, based on the predetermined checksum function, and storing the checksum items in memory; during execution of the application in the executing machine implemented by the processor and memory, performing the following security procedure for an operation that is carried out on data items: a) providing, to the executing machine, at least one data item from said plurality of data items, and operations in said first set that are to be performed on the provided data item; b) obtaining, by the executing machine, the stored checksum item corresponding to the data item provided to the executing machine, and operations in said second set that correspond to the operations provided in step (a); c) performing, in parallel, by the executing machine, the operations provided in step (a) on the at least one data item provided in step (a), and the operations obtained in step (b) on the stored checksum item obtained in step (b); and verifying the integrity of a security procedure at any time during the execution of operations by applying the predetermined checksum function to a result obtained at such time from execution of operations provided in step (a), and determining whether the checksum matches the result obtained at that same time from execution of operations provided in step (b).