Secure Software Components Anti-Reverse Engineering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing digital rights management systems are vulnerable to reverse engineering and key extraction due to the ability of attackers to control and modify software and hardware, compromising decryption keys and tampering with software modules.
Innovation Solution
Implementing a secure software solution using table interleaving and encryption techniques, such as creating a large unique table for operations, encrypting operands and results, sorting, and permutating indices to obscure function implementation, and converting tables into hash tables for secure function calculation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional encryption and key distribution methods are used in digital rights management, then content can be encrypted and decrypted, but the software modules and decryption keys become vulnerable to reverse engineering and extraction attacks
Solution Approach 1:
The patent segments the decryption functionality into multiple separate lookup tables (S-box, inverse S-box, key tables) instead of implementing a monolithic decryption algorithm. Each table contains portions of the cryptographic logic, and they work together to perform decryption. This segmentation prevents attackers from reverse engineering the complete decryption process by analyzing a single code module, as each table appears as independent data rather than executable cryptographic logic.
Solution Approach 2:
The patent introduces encrypted lookup tables as intermediaries between the plaintext and ciphertext. Instead of directly implementing cryptographic algorithms, the system uses pre-computed lookup tables that contain encrypted transformations. These tables act as mediators that obscure the actual cryptographic operations, making it difficult for attackers to extract the decryption key or understand the cryptographic logic through reverse engineering.
2Difficulty of detecting and measuring
If lookup tables are used to obscure cryptographic functions, then reverse engineering becomes more difficult, but the software size and complexity increase
Solution Approach 1:
The patent merges multiple cryptographic lookup tables (S-box, inverse S-box, and key-dependent tables) into a unified structure that can be stored and processed together. The tables are organized in a systematic manner where related tables are positioned adjacent to each other, allowing the system to manage complexity through structured organization rather than scattered separate components. This merging reduces the overall software structure complexity while maintaining the security benefits of multiple tables.
Solution Approach 2:
The patent changes the parameters of the lookup tables by encrypting them with the secret key before embedding them in the software. The tables are transformed from plain cryptographic lookup structures into encrypted forms that appear as random data. This parameter change (encryption of table contents) increases the difficulty of reverse engineering while the tables remain functional when decrypted and used in the cryptographic operations.
3Reliability
If multiple lookup tables are used for cryptographic operations, then security against reverse engineering improves, but the memory usage and processing overhead increase
Solution Approach 1:
The patent designs the lookup tables to serve multiple cryptographic functions simultaneously. The same table structure is used for both encryption and decryption operations by utilizing different portions of the tables or by swapping between forward and inverse transformations. The key-dependent tables are used across multiple rounds of cryptographic processing. This multi-functionality reduces the total number of separate tables needed, thereby reducing memory storage requirements while maintaining strong tamper resistance.
Data Source
Figure 1~2
Figure 3~4
Figure 5
AI summary
A method of securely implementing functions in a secure software application, including: determining, by a processor, two functions to be implemented by the secure software application; generating a first function lookup table; encrypting the first function lookup table; sorting the first function lookup table by encrypted operand; generating a second function lookup table; encrypting the second function lookup table; sorting the second function lookup table by encrypted operand; generating a flattened lookup table from a combination of the encrypted first and second function lookup tables; permutating the flattened table indices e.g. by use of public key cryptography encryption; and sorting the flattened table by the permutated flattened table indices.