Software Watermarking via Code Transformation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software watermarking techniques are not robust enough to survive processing such as compilation and can interfere with the functionality of the software, making them ineffective for tracking unauthorized distribution.

Innovation Solution

A system and method that identifies locations in software code where modifications can be made to preserve functionality, applies code transformations with intrinsic constants, and injects derived constants into the code to create a watermark that is difficult to remove without affecting the software's functionality, along with metadata to track the origin of derived code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current watermarking techniques are applied to software code, then tracking capability is provided, but the watermark is easily removed or interferes with software functionality

Engineering Contradiction:
Improvewatermark robustnessVSAvoidsoftware functionality interference
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent transforms the software code parameters by applying mathematical transformations (e.g., adding constants, modifying expressions) that embed watermark information while preserving the code's functional behavior. The transformation changes the representation of constants and expressions in a way that makes the watermark robust to removal attempts while maintaining software functionality.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The watermark information is merged with the functional code by integrating transformation constants and metadata directly into the code structure. The watermark is not a separate entity but is combined with the code's mathematical expressions and constants, making it difficult to separate or remove without affecting the code structure.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If code transformations are applied to embed watermark, then tracking robustness is improved, but the complexity of the code increases

Engineering Contradiction:
Improvewatermark survival through processingVSAvoidcode structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes to code constants and expressions that embed watermark information while maintaining functional equivalence. Mathematical transformations modify the representation of constants (e.g., changing 5 to 5+0 or 10-5) in a way that preserves functionality but embeds tracking information, thereby improving watermark survival through compilation and processing.

Inventive Principle:
Principle #35Parameter changes

3Loss of information

If watermark is embedded in software code, then distribution tracking is enabled, but the watermark may be removed by attackers

Engineering Contradiction:
Improvetracking information preservationVSAvoidattack resistance
Core Design Contradiction:
Loss of informationVSObject-affected harmful factors

Solution Approach 1:

The patent uses parameter changes to transform code constants and expressions, embedding watermark information that survives compilation and processing. The transformations create derived constants that are mathematically linked to the original code, making it difficult for attackers to remove the watermark without breaking the code's functionality.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent performs preliminary actions by embedding the watermark during the code transformation phase, before distribution. The watermark is integrated into the code structure through mathematical transformations, and metadata is prepared in advance to facilitate detection, making the tracking information resilient to subsequent attacks.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3834106B1System and method for watermarking software
Publication Date: 2024.01.10 IRDETO BV
  • EP3834106B1 patent drawingFigure 1
  • EP3834106B1 patent drawingFigure 2
  • EP3834106B1 patent drawingFigure 3

AI summary

Systems, methods, and storage media implemented by a computer for enabling tracking of software are disclosed. Exemplary implementations may: receive marking input code corresponding to a computer program; identify locations of the marking input code that can be modified in ways that preserve functionality of the computer program; choose at least one code transformation with associated intrinsic constants; derive derived constants from the specific intrinsic constants; apply the at least one chosen code transformation, including injecting the derived constants into the marking input code; saving the results of the above steps on computer readable media as marked code; and save metadata including a list of the derived constants on computer readable media in a file that is separate from the marked code.