Base Function Encoding for Software Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing encryption systems, particularly those using the black box and white box models, are vulnerable to attacks such as side-channel and homomorphic mapping attacks, and conventional obfuscation techniques are ineffective against sophisticated attacks, leading to a need for more robust secret-hiding and tamper-resistance techniques to protect software code and data.

Innovation Solution

The implementation of bijective base functions and diverse encoding techniques that create 'profound data dependence' and dynamic diversity, blurring boundaries between code modules and protection code, making it difficult for attackers to distinguish or crack the protected code, using techniques like function-indexed interleaving, memory-shuffling, and biased permutations to enhance security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If conventional obfuscation techniques are used to protect software, then implementation simplicity is maintained, but security against sophisticated attacks deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidsecurity against attacks
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The protected code is divided into multiple code segments that are interleaved with dummy code segments. The actual functional code is segmented and distributed throughout the program, making it difficult for attackers to identify and analyze the real logic. This segmentation approach maintains implementation simplicity while significantly improving security against sophisticated attacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Dummy code segments are introduced as intermediaries between the actual code segments. These dummy segments act as mediators that obscure the real code execution flow and data dependencies. The intermediary dummy code creates barriers that prevent attackers from directly observing and analyzing the protected logic, thereby enhancing security without complicating the implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If simple encodings are used for software obfuscation, then time and space consumption are kept low, but protection strength deteriorates

Engineering Contradiction:
Improvetime and space consumptionVSAvoidprotection strength
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The encoding scheme dynamically selects different encoding methods based on the type of code being protected. Different data types and code patterns are encoded using appropriate techniques from a repertoire of encoding methods. This dynamic approach provides strong protection tailored to each code segment while avoiding the overhead of applying the most complex encoding to all code, thus maintaining reasonable time and space consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The encoding parameters such as operand size, encoding complexity, and transformation intensity are adjusted based on the security requirements and characteristics of the protected code. Critical code segments receive more intensive encoding with larger operand sizes and complex transformations, while less critical segments use lighter encoding. This parameter adjustment provides strong protection where needed while optimizing performance.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If data is passed in unprotected form across communication boundaries, then ease of operation is maintained, but vulnerability to attacks increases

Engineering Contradiction:
Improveease of data passageVSAvoidvulnerability to attacks
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

Data is encoded and protected before being passed across communication boundaries. The encoding process is performed in advance as a preliminary action, transforming the data into a protected form that maintains its functionality while preventing attacks. This preliminary encoding ensures that data entering or leaving the protected program is already secured, eliminating the need for additional protection mechanisms at the boundaries.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The encoding and decoding functions are copied and embedded within the protected program itself, rather than relying on external protection mechanisms. This self-contained copying of protection logic ensures that data is consistently encoded before leaving the program and decoded when entering, maintaining ease of operation while providing robust protection against attacks at communication boundaries.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP2831794B1Securing accessible systems using base function encoding
Publication Date: 2021.11.10 IRDETO BV
  • EP2831794B1 patent drawingFigure 1
  • EP2831794B1 patent drawingFigure 2~3
  • EP2831794B1 patent drawingFigure 4

AI summary

Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.