Watermarking Compiled Code via Fake Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional steganography methods are ineffective for embedding watermarks in compiled computer programs, as changing any bit in the code can render it non-functional, unlike digital pictures and sounds where low-order bits can be modified without noticeable difference.

Innovation Solution

A method involving the insertion of fake instructions at specific locations in the compiled code, determined by a mathematical function, which are legal and do not affect the program's operation, allowing for the encoding and decoding of binary data as part of the program itself, with optional encryption and removal by authorized systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional steganography methods are used to embed watermarks by modifying low-order bits, then the watermark can be hidden in digital pictures and sounds, but this method cannot be applied to compiled computer programs because every bit is important and changing any bit can render the code non-functional

Engineering Contradiction:
Improveapplicability of steganographyVSAvoidprogram functionality
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent changes the parameter space from modifying low-order bits of data values to inserting fake instructions at specific code locations. This parameter transformation allows watermark embedding while preserving program functionality, as fake instructions are designed to be semantically neutral and not affect execution flow.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces fake instructions as intermediary elements that serve dual purposes: they carry watermark information and maintain program functionality. These intermediary instructions act as mediators between the watermark data and the executable code, allowing information embedding without compromising reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If fake instructions are inserted into compiled code to embed watermark data, then the watermark can be embedded without affecting program operation, but the code size increases and the insertion locations must be precisely determined

Engineering Contradiction:
Improveprogram functionalityVSAvoidcode structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-identifying suitable insertion locations for fake instructions using mathematical functions before the watermark embedding process. This preliminary determination of safe insertion points allows the watermark to be embedded without affecting program functionality, while the locations are predetermined to avoid disrupting code structure.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent transforms the complexity issue by changing from arbitrary insertion to mathematically-determined insertion locations. The mathematical function provides a systematic parameter transformation that distributes fake instructions predictably throughout the code, making the added complexity manageable and deterministic rather than arbitrary.

Inventive Principle:
Principle #35Parameter changes

3Loss of information

If watermark data is inserted into compiled programs, then secure tracking and identification of licensed uses is enabled, but unauthorized users may execute the program without detection if the watermark is not properly protected

Engineering Contradiction:
Improvewatermark securityVSAvoidunauthorized execution
Core Design Contradiction:
Loss of informationVSObject-affected harmful factors

Solution Approach 1:

The patent converts the potential harm of fake instructions (which could be seen as code bloat or potential execution errors) into a benefit by making them the carrier of secure watermark information. The very elements that could disrupt execution are designed to be safe, while simultaneously providing the security mechanism for detecting unauthorized use through cryptographic protection of the watermark data.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Solution Approach 2:

The patent applies nesting by embedding the watermark data within the structure of fake instructions, which are themselves nested within the compiled program code. This nested structure allows the watermark to be hidden within the code fabric, and when combined with encryption, creates multiple layers of protection against unauthorized extraction or modification.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS9607133B1Method and apparatus for watermarking binary computer code
Publication Date: 2017.03.28 NVIDIA CORP
  • US9607133B1 patent drawing
  • US9607133B1 patent drawing
  • US9607133B1 patent drawing

AI summary

A method and apparatus for inserting a watermark into a compiled computer program. A location process specifies an insertion point in the compiled program and a watermark generating process inserts a watermark, based on data to be encoded, into the program at the insertion point. The location process is also utilized to specify the location of watermark data to be decoded.