Private Program Execution on Untrusted Computers via Shred Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecomputing powerVSAvoidsecurity risk
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveattacker accessVSAvoidsystem complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata confidentialityVSAvoidprocessing speed
Core Design Contradiction:
Loss of informationVSProductivity

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3326345B1Systems and processes for executing private programs on untrusted computers
Publication Date: 2021.10.06 BAFFLE INC
  • EP3326345B1 patent drawingFigure 1
  • EP3326345B1 patent drawingFigure 2
  • EP3326345B1 patent drawingFigure 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.