Software Watermarking via Code Transformation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If code transformations are applied to embed watermark, then tracking robustness is improved, but the complexity of the code increases
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.
3Loss of information
If watermark is embedded in software code, then distribution tracking is enabled, but the watermark may be removed by attackers
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.