Trusted Execution Environment Data Chunking for Privacy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for secure data transmission, such as oblivious transfer, face challenges in achieving data privacy from third-party server operators due to high computational and memory costs associated with using trusted execution environments (TEEs), particularly when dealing with large data objects like videos.

Innovation Solution

The approach involves dividing data objects into chunks and assigning them to multiple data buckets, using fingerprint values and permutation tokens to identify and reorder chunks within TEEs, enabling efficient compression and secure transmission while maintaining data privacy, by encoding data object identifiers with information for chunk identification and ordering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data objects are stored and processed entirely within the trusted execution environment (TEE), then data privacy from the server operator is improved, but the memory capacity requirements and computational costs become prohibitively high

Engineering Contradiction:
Improvedata privacyVSAvoidmemory capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The data object is divided into multiple data chunks and distributed across multiple data buckets. Only the relevant data chunk needed for the requested data object is loaded into the TEE's limited memory, rather than loading the entire data object. This segmentation allows the TEE to maintain data privacy for the specific requested chunk while avoiding the prohibitive memory costs of storing entire large data objects within the TEE.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the entire data object is transmitted to the trusted execution environment for processing, then data privacy is improved, but the transmission time and processing speed deteriorate

Engineering Contradiction:
Improvedata privacyVSAvoidtransmission speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The server extracts and transmits only the specific data chunk corresponding to the requested data object from the entire data object, rather than transmitting the whole data object to the TEE. This extraction approach maintains data privacy by ensuring only the necessary portion is processed in the secure environment, while dramatically reducing transmission time and improving processing speed.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If data chunks are identified and processed within the trusted execution environment, then data privacy is maintained, but the computational complexity and memory costs increase

Engineering Contradiction:
Improvedata privacyVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Data chunks are pre-organized into multiple data buckets with metadata information before being stored on the server. When a data object is requested, the TEE can efficiently identify and retrieve the specific needed chunk by comparing the requested data object identifier with the pre-organized metadata, rather than performing complex computations on the entire data object. This preliminary organization reduces computational complexity within the TEE while maintaining data privacy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11303617B2Methods and apparatuses for oblivious transfer using trusted environment
Publication Date: 2022.04.12 HUAWEI TECH CO LTD
  • US11303617B2 patent drawing
  • US11303617B2 patent drawing
  • US11303617B2 patent drawing

AI summary

Methods and apparatuses for performing oblivious transfer using a trusted intermediate environment are described. A data object identifier is used to identify requested data object. The requested data object is stored as a plurality of corresponding data chunks over a plurality of data buckets. The data object identifier is encoded with information identifying each of the plurality of corresponding data chunks within each respective data bucket. A trusted intermediate environment receives a data stream that includes data chunks stored in an assigned data bucket. Using the encoded information from the data object identifier, the trusted intermediate environment determines which of the data chunks in the data stream is the corresponding data chunk streamed from the assigned data bucket.