Method for effective tamper resistance
First Claim
1. A method for preventing offline tampering of a software program, implemented by a computer, comprising:
- evolving a unique initial key value assigned to a copy of the software program when the copy of the software program executes using an integrity check and a one-way function that produces a new key value within a chosen mathematical subgroup, such that the new key value will stay within the subgroup unless tampering to the copy of the software program occurs; and
regulating behavior of the copy of the software program using the new key value, such that the integrity check fails if the evolved new key value is incorrect and the copy of the software program will not function correctly.
0 Assignments
0 Petitions
Accused Products
Abstract
A system, method, and computer program product for preventing a malicious user from analyzing and modifying software content. The one-way functions used in prior art systems using dynamically evolving audit logs or self-modifying applications are replaced with a one-way function based on group theory. With this modification, untampered key evolution will occur inside a defined mathematical group such that all valid key values form a subgroup. However, if the program is altered, the key will evolve incorrectly and will no longer be a member of the subgroup. Once the key value is outside of the subgroup, it is not possible to return it to the subgroup. The present invention provides a limited total number of valid keys. The key evolution points are not restricted to locations along the deterministic path, so the key can be used in various novel ways to regulate the program'"'"'s behavior, including in non-deterministic execution paths.
-
Citations
29 Claims
-
1. A method for preventing offline tampering of a software program, implemented by a computer, comprising:
-
evolving a unique initial key value assigned to a copy of the software program when the copy of the software program executes using an integrity check and a one-way function that produces a new key value within a chosen mathematical subgroup, such that the new key value will stay within the subgroup unless tampering to the copy of the software program occurs; and regulating behavior of the copy of the software program using the new key value, such that the integrity check fails if the evolved new key value is incorrect and the copy of the software program will not function correctly. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer program product for preventing offline analysis and modification of software content for offline tamper resistance of software content, the computer program product usable with a programmable computer having readable program code embodied on a computer readable non-transitory storage medium therein, the readable program code comprising:
-
computer readable program code configured to evolve a unique initial key value assigned to a copy of the software program when the copy of the software program executes using an integrity check and a one-way function that produces a new key value within a chosen mathematical subgroup, such that the new key value will stay within the subgroup unless tampering to the copy of the software program occurs; and computer readable program code configured to regulate behavior of the copy of the software program using the new key value, such that the integrity check fails if the evolved new key value is incorrect and the copy of the software program will not function correctly. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification