Software Copy Protection via Slow Implementation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software programs, especially machine learning models, are vulnerable to copying even when attackers only have access to inputs and outputs, leading to unauthorized use and monetization, and existing methods like watermarks are costly and difficult to implement, with challenges in verifying software program identities without disclosure of proprietary information.

Innovation Solution

Creating a slow implementation of the software program by adding encoded dummy operations that increase execution time and size, allowing for verification of legitimate copies without disclosing proprietary algorithms, using a method that includes generating a slow implementation with encoded dummy operations and comparing outputs to detect copying.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If watermarks are used to mark and prove ownership of a software program, then ownership verification is improved, but implementation cost and difficulty increase

Engineering Contradiction:
Improveownership verificationVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a copy of the software program (duplicate) that contains embedded ownership information. This duplicate copy serves as a watermarking mechanism where the ownership data is embedded within the program structure itself, allowing verification without complex external watermarking systems.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a duplicate software program as an intermediary that carries ownership information. This duplicate acts as a mediator between the original program and verification mechanisms, enabling ownership proof without directly modifying or exposing the original program's proprietary elements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If software programs are compared to prove copying, then copying detection is improved, but proprietary information disclosure risk increases

Engineering Contradiction:
Improvecopying detectionVSAvoidproprietary information disclosure
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of information

Solution Approach 1:

The patent extracts ownership verification functionality into a separate duplicate program that can be independently analyzed. By separating the verification mechanism from the proprietary algorithm, the system enables copying detection without requiring access to or disclosure of the core proprietary information.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different qualities to different parts of the software system. The duplicate program contains ownership information that is specifically designed for verification purposes, while the original program maintains its proprietary algorithm intact. This local differentiation allows verification without exposing sensitive elements.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If a software program is provided as a service with input-output access, then service accessibility is improved, but software extraction vulnerability increases

Engineering Contradiction:
Improveservice accessibilityVSAvoidsoftware extraction risk
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent performs preliminary action by creating a duplicate program with embedded ownership information before the software is provided as a service. This advance preparation ensures that even if attackers gain access through input-output interfaces, the ownership verification mechanism is already in place and the proprietary algorithm remains protected.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11409843B2Method for protecting a software program from copying
Publication Date: 2022.08.09 NXP BV
  • US11409843B2 patent drawing
  • US11409843B2 patent drawing
  • US11409843B2 patent drawing

AI summary

A method is provided for protecting a software program from copying. The method includes providing a first implementation of the software program. A second implementation of the software program is then provided. The second implementation provides a same functionality as the first implementation, and wherein the second implementation includes a plurality of dummy operations to increase a number of operations and an execution time of the second implementation compared to the first implementation. The dummy operations are encoded. The second implementation may then be compared to another software program to determine if the another software program is a copy of the first implementation of the software program. This allows a copy of the first implementation to be detected without disclosing the first implementation.