IP Library Granted Patent US 9,141,788
Granted Patent B2
US 9,141,788 · App. 14/263,650 · Granted Sep 22, 2015

Software self-checking systems and methods

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,141,788
App. No.
14/263,650
Granted
Sep 22, 2015
Kind
B2
Abstract

Software self-checking mechanisms are described for improving software tamper resistance and/or reliability. Redundant tests are performed to detect modifications to a program while it is running. Modifications are recorded or reported. Embodiments of the software self-checking mechanisms can be implemented such that they are relatively stealthy and robust, and so that it they are compatible with copy-specific static watermarking and other tamper-resistance techniques.

Claims (21)

1. A non-transitory computer-readable storage medium, the computer-readable storage medium storing programming instructions that, if executed by a processor of a computer system, are operable to cause the computer system to perform operations comprising:

calculating, by a self-checking code sequence included in a program, during execution of the program, a result of a function based on a portion of the program;

comparing, by the self-checking code sequence, the result with a predefined value;

determining, by the self-checking code sequence, that the result does not match a predefined value based on the comparison; and

triggering a tamper response mechanism based on the determination that the result does not match the predefined value.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the self-checking code sequence comprises a first self-checking code sequence of a plurality of self-checking code sequences.

3. The non-transitory computer-readable storage medium of claim 2 , wherein the portion of the program comprises a first portion of a plurality of portions of the program.

4. The non-transitory computer-readable storage medium of claim 3 , wherein each portion of the plurality of portions comprises at least one corrector value.

5. The non-transitory computer-readable storage medium of claim 3 , wherein the plurality of portions of the program overlap at least in part.

6. The non-transitory computer-readable storage medium of claim 3 , wherein the self-checking code sequence is included in the first portion of the program.

7. The non-transitory computer-readable storage medium of claim 3 , wherein the self-checking code sequence is included in a second portion of the program different, at least in part, from the first portion.

8. The non-transitory computer-readable storage medium of claim 5 , wherein each self-checking code sequence of the plurality of self-checking code sequences is associated with a portion of the plurality of portions of the program in a relatively random fashion.

9. The non-transitory computer-readable storage medium of claim 3 , wherein the first self-checking code sequence is configured to check the integrity of at least one other self-checking code sequence of the plurality of self-checking code sequences.

10. The non-transitory computer-readable storage medium of claim 3 , wherein the plurality of self-checking code sequences are distributed in a relatively uniform fashion throughout the program.

11. The non-transitory computer-readable storage medium of claim 1 , wherein the function comprises a hash function.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the hash function is invertible.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the hash function is relatively lightweight.

14. The non-transitory computer-readable storage medium of claim 1 , wherein triggering the tamper response mechanism comprises terminating execution of the program.

15. The non-transitory computer-readable storage medium of claim 1 , wherein triggering the tamper response mechanism comprises disabling a function of the program.

16. The non-transitory computer-readable storage medium of claim 1 , wherein triggering the tamper response mechanism comprises terminating the ability of the program to access protected data.

17. The non-transitory computer-readable storage medium of claim 1 , wherein triggering the tamper response mechanism comprises generating and transmitting a message to a system administrator.

Assignments (4)
PATENT ASSIGNMENT Recorded May 27, 2025
From: INTERTRUST TECHNOLOGIES CORPORATION
To: INNOVATION TECHNOLOGIES PARTNERS LP
Reel/Frame 071408/0320 →
RELEASE OF SECURITY INTEREST Recorded Feb 14, 2023
From: ORIGIN FUTURE ENERGY PTY LTD.
To: INTERTRUST TECHNOLOGIES CORPORATION
Reel/Frame 062747/0742 →
SECURITY INTEREST Recorded Mar 18, 2020
From: INTERTRUST TECHNOLOGIES CORPORATION
To: ORIGIN FUTURE ENERGY PTY LTD
Reel/Frame 052189/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2019
From: HORNE, WILLIAM; MATHESON, LESLEY; SHEEHAN, CASEY; TARJAN, ROBERT
To: INTERTRUST TECHNOLOGIES CORPORATION
Reel/Frame 049580/0948 →