Data Array Obfuscation via Entry Masking and Address Shuffling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for obfuscating data arrays in computer software are inefficient, particularly in non-secure environments, as they either lead to large memory misallocations or slow down processing speeds, and lack sufficient security diversification.
Innovation Solution
The proposed solution involves two methods: (1) masking data entries using affine or additive functions with a security parameter to obscure data, and (2) shuffling addresses to decouple logical and physical memory allocations, allowing for secure and efficient obfuscation without significant processing speed reduction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional obfuscation methods are applied to data arrays, then security is improved, but processing speed deteriorates
Solution Approach 1:
The patent applies obfuscation transformations during the code compilation phase rather than during runtime execution. The obfuscator modifies the bytecode instructions to include transformed array access patterns, constant modifications, and control flow changes before the code is executed. This preliminary transformation ensures security is built into the code structure without adding runtime overhead, thus improving security while maintaining processing speed.
2Reliability
If array obfuscation transformations are applied, then security is improved, but code complexity increases
Solution Approach 1:
The patent introduces an intermediary obfuscation tool that acts as a translator between the original source code and the final executable code. This tool automatically applies transformations such as array index modifications, constant substitutions, and control flow restructuring without requiring the original programmer to manually complexify the code. The intermediary handles the complexity management, providing security enhancements while keeping the original code structure intact and maintainable.
3Reliability
If data transformations are applied to obfuscate arrays, then security is improved, but memory allocation efficiency deteriorates
Solution Approach 1:
The patent modifies array access parameters through obfuscation transformations that change indices, offsets, and dimensions without altering the underlying data storage requirements. The obfuscator transforms array access instructions to use modified indices and dimensions, but the actual array data structures remain in their original form in memory. This approach maintains memory allocation efficiency while providing security through transformed access patterns that are difficult to reverse engineer.
Data Source
AI summary
In a first computer (digital) data obfuscation process, data which is conventionally arranged in a data structure called an array (e.g., a table) and conventionally stored in computer or computer device memory is obfuscated (masked) by logically or mathematically combining the data, entry-by-entry, with a masking value which is computed as a logical or mathematical function of the entry itself or its index in the array, modulo a security value. The complementary unmasking value is a pointer to the entry's address in the table modulo the security value. In a second computer (digital) data obfuscation process, the addresses (location designations) in memory of a data array are themselves obfuscated (masked) by partitioning the array into blocks of entries and shuffling the order of the data entries in each block by a predetermined algorithm, resulting in a shuffled array also differing from the original array in terms of its size (the total number of entries).


