Patent ID: 8667301

Claim:
A method of obfuscating an array of data implemented by a machine comprising at least one processing unit and a machine readable storage, the method comprising: computing a security parameter that is a function of a page number of a primary memory address of the array, wherein the primary address is a physical address of the first entry of the array; computing a masking value by using a first function that takes as an input one of (i) an address of a selected entry from a plurality of entries of the array modulo the computed security parameter and (ii) an index of the selected entry modulo the computed security parameter; computing an obfuscated value for the selected entry of the array by using an invertible second function that takes as input the computed masking value and a value of the selected entry of the array, wherein the computation of the security parameter, the masking value, and the obfuscated value are performed by the machine; and storing the obfuscated value of the selected entry in the machine readable storage.