Software Interlocking for Tamper-Resistant Program Behavior

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software protection methods fail to provide strong, targeted, and localized protection for specific software-mediated behaviors, leading to vulnerabilities in software against tampering and control flow attacks.

Innovation Solution

The method involves dividing source code into basic blocks of logic, modifying some blocks to extend their outputs and others to extend their inputs, creating dependencies such that tampering with one block causes malfunctioning in others, thereby inducing aggressive fragility and preventing behavioral changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software protection methods are applied, then software security is improved, but the protection is not targeted or localized to specific behaviors

Engineering Contradiction:
Improvesoftware securityVSAvoidtargeted protection capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments software into basic blocks and identifies specific interlocked basic blocks that mediate particular behaviors. This segmentation enables targeted protection by applying protection mechanisms only to selected basic blocks rather than the entire software, thus providing localized security while maintaining adaptability to protect specific behaviors.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different protection qualities to different parts of the software. Interlocked basic blocks receive enhanced protection through interlocking mechanisms that create dependencies, while non-critical blocks remain unprotected. This local quality approach ensures that targeted behaviors receive strong protection without unnecessarily protecting all software portions.

Inventive Principle:
Principle #3Local quality

2Reliability

If code is modified to create dependencies between blocks, then tamper resistance is improved, but code complexity increases

Engineering Contradiction:
Improvetamper resistanceVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides code into basic blocks and selectively interlocks only specific blocks rather than creating universal dependencies throughout the entire codebase. This segmentation limits the propagation of complexity to only those areas where protection is needed, maintaining lower overall code complexity while achieving high tamper resistance for critical behaviors.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies interlocking mechanisms partially to only certain basic blocks that mediate specific behaviors, rather than applying the mechanism to all code. This partial action approach achieves sufficient tamper resistance for critical sections without the excessive complexity that would result from universal application of the interlocking mechanism.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10402547B2System and method of interlocking to protect software-mediated program and device behaviours
Publication Date: 2019.09.03 IRDETO BV
  • US10402547B2 patent drawing
  • US10402547B2 patent drawing
  • US10402547B2 patent drawing

AI summary

A method for rendering a software program resistant to reverse engineering analysis. At least one first expression in a computational expression or statement of the software program is replaced with a second expression. The first expression being simpler than said second expression and the second expression being based on a value or variables found in said first expression. The second expression produces a value which preserves the value of said first expression. The conversion of the first expression is performed according to a mathematical identity of the form Σi=1k ai ei=E, where ai, are coefficients, ei, are bitwise expressions, whether simple or complex, and E is said first expression.