IP Library Granted Patent US 7,770,016
Granted Patent B2
US 7,770,016 · App. 11/737,428 · Granted Aug 3, 2010

Systems and methods for watermarking software and other media

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 7,770,016
App. No.
11/737,428
Granted
Aug 3, 2010
Kind
B2
Abstract

Systems and methods are disclosed for embedding information in software and/or other electronic content such that the information is difficult for an unauthorized party to detect, remove, insert, forge, and/or corrupt. The embedded information can be used to protect electronic content by identifying the content's source, thus enabling unauthorized copies or derivatives to be reliably traced, and thus facilitating effective legal recourse by the content owner. Systems and methods are also disclosed for protecting, detecting, removing, and decoding information embedded in electronic content, and for using the embedded information to protect software or other media from unauthorized analysis, attack, and/or modification.

Claims (24)

1. A method for watermarking computer code utilizing a system comprising a processor and a memory encoded with program instructions that, when executed by the processor, cause the processor to perform the method, the method comprising:

mapping a set of payload information onto a first set of sparse space strings, wherein each sparse space string in the first set of sparse space strings is chosen randomly from a second set of sparse space strings;

inserting a sparse space string from the first set of sparse space strings into the computer code, and

distributing the computer code to a recipient, wherein the recipient of the computer code:

extracts at least some of the inserted sparse space string from the computer code to form an extracted string, and

transmits the extracted string to a database operator,

wherein the database operator:

identifies the sparse space string in the first set of sparse space strings associated with the extracted string,

retrieves the payload information mapped to the identified sparse space string, and

transmits the payload information to the recipient.

2. The method as in claim 1 , wherein the number of sparse space strings in the second set of sparse space strings is at least 2 1000 times greater than the number of sparse space strings in the first set of sparse space strings.

3. The method as in claim 1 , further comprising:

dividing the sparse space string to be inserted into the computer code into a sequence of subparts,

wherein inserting the sparse space string into the computer code further includes inserting each subpart of the sparse space string into the computer code, and

wherein extracting at least some of the inserted sparse space string further includes extracting at least one of the subparts in the sequence of subparts.

4. The method as in claim 3 , wherein each subpart in the sequence of subparts is randomly inserted into the computer code.

5. The method as in claim 3 , wherein one or more subparts in the sequence of subparts is inserted multiple times into the computer code.

6. The method as in claim 3 , wherein one or more subparts in the sequence of subparts is inserted using error correction codes.

7. The method as in claim 3 , wherein the extracted string contains less than all of the subparts of the inserted sparse space string.

8. The method as in claim 7 , wherein the database operator uses one or more probability techniques to determine which sparse space string in the first set of sparse space strings corresponds to the extracted string.

9. The method as in claim 3 , further comprising:

combining each subpart with one or more of position and signature information to create a modified subpart; and

encrypting each of the modified subparts.

10. The method as in claim 9 , wherein the position information is used to construct the extracted string.

Assignments (3)
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 →