Private Program Execution on Untrusted Computers via Shred Distribution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is a need for a method to execute a computer program on untrusted computers while keeping the program and data private from attackers who have access to these computers, especially in cloud networks where confidentiality is compromised.
Innovation Solution
The method involves dividing the computer program into a series of operations, sending each operation to multiple networked computers for partial computation, and using encryption and obfuscation to secure the process, ensuring that each computer only processes its designated part and forwards results securely.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a program is executed on remote untrusted computers to utilize combined computing power, then productivity and processing speed are improved, but security and confidentiality of the program and data deteriorate because attackers may have access to these computers
Solution Approach 1:
The program is divided into multiple independent shreds that are distributed across different remote computers. Each shred contains only a portion of the code and data, making it useless to attackers who compromise individual computers. The segmentation is achieved by splitting the program into code shreds and data shreds, which are then further divided and assigned to different nodes in the network.
Solution Approach 2:
A trusted computer acts as an intermediary that coordinates the execution of shreds across untrusted remote computers. The trusted computer distributes shreds, receives results, and reassembles the final output without exposing the complete program or data to any single untrusted node. This intermediary layer protects confidentiality while enabling distributed computation.
2Object-affected harmful factors
If the program is divided and distributed across multiple computers, then security against attackers is improved, but device complexity and system overhead increase
Solution Approach 1:
Each remote computer is designed to perform multiple functions: executing code shreds, storing data shreds, forwarding results to other nodes, and communicating with the trusted computer. This multi-functionality reduces the need for specialized components at each node, simplifying the overall system architecture despite the distributed nature of the computation.
Solution Approach 2:
The program is pre-processed into shreds and encrypted before distribution to remote computers. The trusted computer prepares all necessary code shreds and data shreds in advance, assigning them to appropriate nodes based on the computation graph. This preliminary preparation reduces runtime complexity and eliminates the need for dynamic program analysis during execution.
3Loss of information
If encryption and obfuscation are applied to protect shreds, then security and confidentiality are improved, but processing speed and productivity deteriorate due to additional computational overhead
Solution Approach 1:
Different levels of encryption and obfuscation are applied to different parts of the program based on their sensitivity and computational requirements. Critical data shreds receive stronger encryption, while code shreds that require frequent manipulation use lighter obfuscation. This localized approach optimizes the balance between security and performance for each component.
Solution Approach 2:
The encryption and obfuscation parameters are dynamically adjusted based on the security requirements and computational resources available. The system can modify key lengths, encryption algorithms, and obfuscation intensity to achieve the desired security level while minimizing performance impact. Parameter changes allow flexible optimization of the security-speed tradeoff.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention provides methods for executing a private computer program on untrusted computers. The present invention also provides for products produced by the methods of the present invention and for apparatuses used to perform the methods of the present invention.