Base Function Encoding for Software Security
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If simple encodings are used for software obfuscation, then time and space consumption are kept low, but protection strength deteriorates
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.
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.
3Ease of operation
If data is passed in unprotected form across communication boundaries, then ease of operation is maintained, but vulnerability to attacks increases
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.
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.
Data Source
Figure 1
Figure 2~3
Figure 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.