Patent ID: 7647640

Claim:
A method of determining whether a software product can be used on a second computer system having a second hardware configuration, wherein the second computer system is identical to or different from the first computer system, wherein the method comprises: identifying the n components classes used to determine the strong hardware identification (SHWID); identifying all instances within each component class of the second hardware configuration; retrieving an identification string that represents each individual component instance; generating instance primes, i p,q , for each component instance, wherein each instance prime is a positive prime number, and wherein p represents a given component class number ranging from 1 to n, and q represents the q-th type of component within the first hardware configuration or the second hardware configuration; retrieving possible class partial secrets, P p,q , wherein: P p,q =[C p (mod i p,q )]; extracting possible class primes, p p,q , and possible class remainders, d p,q , from the possible class partial secrets, P p,q ; solving a set of congruences provided by a permutation of the possible class primes and the possible class remainders to produce a possible secret; and testing the possible secret by decoding a given ciphertext using the possible secret as the key for decoding and testing the resultant plaintext obtained by decrypting the given ciphertext with the possible secret against a corresponding known plaintext; wherein: if the resultant plaintext matches the known plaintext, loading the software product onto the second computer system; and if the resultant plaintext does not match the known plaintext, preventing the software product from being loaded onto the second computer system.