Oblivious RAM with Logarithmic Memory Levels for Access Pattern Concealment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed storage systems face challenges in ensuring data privacy and concealing access patterns, as encryption alone may not suffice, and providing plaintext access is often required for cloud storage services, which can deter sensitive sectors due to concerns about data access patterns revealing sensitive information.

Innovation Solution

The implementation of an oblivious random access memory (ORAM) system that uses a logarithmic number of memory levels and an oblivious hash table to conceal access patterns by executing queries, retrieving values, and performing a multi-array shuffle routine to generate an output array containing un-queried key-value pairs, thereby hiding data access patterns from the distributed system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If encryption is used to protect data in distributed storage systems, then data privacy is improved, but access patterns can still reveal sensitive information about the data

Engineering Contradiction:
Improvedata privacyVSAvoidaccess pattern information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent introduces an intermediary mechanism (the oblivious RAM system with multiple memory levels and shuffle operations) between the client and the distributed storage system. This intermediary conceals access patterns by performing oblivious queries that retrieve data without revealing which data blocks are accessed, thus protecting access pattern information while maintaining data privacy through encryption

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If plaintext access is provided to cloud storage services for search functionalities, then search capabilities are improved, but data privacy and security are worsened

Engineering Contradiction:
Improvesearch functionalityVSAvoiddata privacy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent replaces the conventional mechanical approach of plaintext access with a cryptographic mechanism (oblivious RAM with encryption). The system enables search functionalities by performing encrypted queries through multiple memory levels using oblivious hash tables and shuffle operations, allowing data retrieval without exposing plaintext or access patterns to the cloud storage system

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If access patterns are concealed using oblivious RAM with multiple memory levels, then data privacy is improved, but system complexity increases

Engineering Contradiction:
Improveaccess pattern concealmentVSAvoidmemory level structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the memory structure into multiple levels (first memory level, second memory level, etc.) with different capacities and access characteristics. Each memory level stores data blocks with specific properties, and the system transitions between levels during oblivious queries. This segmentation enables access pattern concealment by distributing data across levels while maintaining manageable complexity through hierarchical organization

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12050579B2Oblivious RAM with logarithmic overhead
Publication Date: 2024.07.30 GOOGLE LLC
  • US12050579B2 patent drawing
  • US12050579B2 patent drawing
  • US12050579B2 patent drawing

AI summary

A method includes executing an instruction to execute a query for a data block, the data block associated with a corresponding memory level of a logarithmic number of memory levels (li) of memory, each memory level (li) including physical memory (RAMi) residing on memory hardware of a distributed system. The method also includes retrieving a value associated with the data block from an oblivious hash table using a corresponding key, and extracting un-queried key value pairs from the oblivious hash table associated with un-queried data blocks after executing a threshold number of queries for data blocks. The method also includes a multi-array shuffle routine on the extracted key value pairs from the oblivious hash table to generate an output array containing the un-queried key value pairs.