Randomized Compiler Optimization Paths for Software Subversion Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compiler optimization algorithms are limited and can be further optimized to enhance security against software subversion by hackers, as memory and CPU time are no longer the primary concerns for organizations, and there is a need to protect against unauthorized access.

Innovation Solution

Randomizing the decision-making process within compiler optimization routines to create varying memory layouts and execution flows, while maintaining functional equivalence, and incorporating a pre-processor directive for debugging and watermarking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If compiler optimization algorithms are made more sophisticated to enhance security, then security against software subversion is improved, but compiler complexity increases

Engineering Contradiction:
Improvesecurity against software subversionVSAvoidcompiler complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by making the compiler optimization process non-deterministic through randomization. The compiler randomly selects from multiple valid optimization paths, transforming a static, predictable compilation process into a dynamic one. This randomization enhances security by preventing hackers from exploiting predictable optimization patterns, while the underlying optimization algorithms remain sophisticated but less complex in their deterministic behavior.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of optimization selection from deterministic to random. Instead of always choosing the same optimization path for identical code, the compiler uses random number generation to select different valid optimization paths. This parameter change maintains optimization effectiveness while introducing variability that strengthens security against subversion attempts.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If deterministic optimization algorithms are used, then compilation consistency is maintained, but security against predictable exploitation is reduced

Engineering Contradiction:
Improvesecurity against predictable exploitationVSAvoidcompilation consistency
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The patent introduces dynamics into the compilation process by randomizing optimization selections. While the compilation process remains stable in producing functionally equivalent code, the specific optimization path taken varies randomly. This dynamic approach breaks predictability for hackers while maintaining functional consistency for the compiled software.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates asymmetry in the optimization process by introducing random variability. Different compilation runs produce different optimization sequences, breaking the symmetric predictability that hackers could exploit. The asymmetry is introduced through random number generation while maintaining functional equivalence of the output.

Inventive Principle:
Principle #4Asymmetry

3Reliability

If multiple optimization paths are explored, then security is enhanced through randomization, but compilation time increases

Engineering Contradiction:
Improvesecurity through randomizationVSAvoidcompilation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by randomly selecting from multiple optimization paths rather than exhaustively exploring all possibilities. The compiler evaluates multiple paths and uses randomization to pick one, avoiding the time-consuming process of analyzing every possible optimization sequence while still achieving security benefits through the random selection process.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes the selection parameter from exhaustive search to random sampling. Instead of systematically exploring all optimization paths (which would be time-consuming), the compiler uses random number generation to select from a set of valid optimization paths, significantly reducing compilation time while maintaining security through the unpredictability of the selection.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20250238212A1Randomized compiler optimization selection for improved computer security
Publication Date: 2025.07.24 CALIFORNIA INST OF TECH
  • US20250238212A1 patent drawing
  • US20250238212A1 patent drawing
  • US20250238212A1 patent drawing

AI summary

A method and system provide the ability to compile computer code. Human readable text in a programming language is optimized in a compiler, into a processor specific language. The optimization includes determining a set of two or more optimization routines, randomly selecting a selected optimization routine from the set of two or more optimization routines, and applying the selected optimization routine to each segment of the human readable text. Binary code is then output based on the optimized human readable text and has improved resistance to subversion.