Oblivious Parallel RAM: Improved Efficiency and Generic Constructions

Slides:



Advertisements
Similar presentations
CAN 1.Distributed Hash Tables a)DHT recap b)Uses c)Example – CAN.
Advertisements

Hadi Goudarzi and Massoud Pedram
Lecture 12 Reduce Miss Penalty and Hit Time
CMSC 611: Advanced Computer Architecture Cache Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted from.
Efficient Information Retrieval for Ranked Queries in Cost-Effective Cloud Environments Presenter: Qin Liu a,b Joint work with Chiu C. Tan b, Jie Wu b,
Kai-Min Chung (Academia Sinica) joint work with Zhenming Liu (Princeton) and Rafael Pass (Cornell NY Tech)
Gillat Kol (IAS) joint work with Ran Raz (Weizmann + IAS) Interactive Channel Capacity.
June 3, 2015Windows Scheduling Problems for Broadcast System 1 Amotz Bar-Noy, and Richard E. Ladner Presented by Qiaosheng Shi.
CS7380: Privacy Aware Computing Oblivious RAM 1. Motivation  Starting from software protection Prevent from software piracy A valid method is using hardware.
Multiprocessing Memory Management
Computer Organization Cs 147 Prof. Lee Azita Keshmiri.
ObliviStore High Performance Oblivious Cloud Storage Emil StefanovElaine Shi
Chapter 61 Chapter 6 Index Structures for Files. Chapter 62 Indexes Indexes are additional auxiliary access structures with typically provide either faster.
Database Management 8. course. Query types Equality query – Each field has to be equal to a constant Range query – Not all the fields have to be equal.
Oblivious Data Structures Xiao Shaun Wang, Kartik Nayak, Chang Liu, T-H. Hubert Chan, Elaine Shi, Emil Stefanov, Yan Huang 1.
Network Aware Resource Allocation in Distributed Clouds.
Matrices from HELL Paul Taylor Basic Required Matrices PROJECTION WORLD VIEW.
A Linear Lower Bound on the Communication Complexity of Single-Server PIR Weizmann Institute of Science Israel Iftach HaitnerJonathan HochGil Segev.
12.1 Chapter 12: Indexing and Hashing Spring 2009 Sections , , Problems , 12.7, 12.8, 12.13, 12.15,
Indexing and hashing Azita Keshmiri CS 157B. Basic concept An index for a file in a database system works the same way as the index in text book. For.
Time Parallel Simulations I Problem-Specific Approach to Create Massively Parallel Simulations.
Privacy Preserving Payments in Credit Networks By: Moreno-Sanchez et al from Saarland University Presented By: Cody Watson Some Slides Borrowed From NDSS’15.
Data Integrity Proofs in Cloud Storage Author: Sravan Kumar R and Ashutosh Saxena. Source: The Third International Conference on Communication Systems.
Content caching and scheduling in wireless networks with elastic and inelastic traffic Group-VI 09CS CS CS30020 Performance Modelling in Computer.
Static Process Scheduling
Onion ORAM: A Constant Bandwidth Blowup ORAM
Private Information Retrieval Based on the talk by Yuval Ishai, Eyal Kushilevitz, Tal Malkin.
Searching Over Encrypted Data Charalampos Papamanthou ECE and UMIACS University of Maryland, College Park Research Supported By.
Secure Data Outsourcing
1 Plaxton Routing. 2 History Greg Plaxton, Rajmohan Rajaraman, Andrea Richa. Accessing nearby copies of replicated objects, SPAA 1997 Used in several.
Load Rebalancing for Distributed File Systems in Clouds.
DATABASE OPERATORS AND SOLID STATE DRIVES Geetali Tyagi ( ) Mahima Malik ( ) Shrey Gupta ( ) Vedanshi Kataria ( )
CS 704 Advanced Computer Architecture
Distributed and Parallel Processing
Azita Keshmiri CS 157B Ch 12 indexing and hashing
OblivP2P: An Oblivious Peer-to-Peer Content Sharing System
Hybrid Cloud Architecture for Software-as-a-Service Provider to Achieve Higher Privacy and Decrease Securiity Concerns about Cloud Computing P. Reinhold.
OblivP2P: An Oblivious Peer-to-Peer Content Sharing System
Spatial Indexing I Point Access Methods.
---On the ‘Vuvuzela’ Scheme
Temporal Indexing MVBT.
So far we have covered … Basic visualization algorithms
Fast Searchable Encryption with Tunable Locality
Communication Complexity as a Lower Bound for Learning in Games
Oblivious RAM: A Dissection and Experimental Evaluation
TaoStore Overcoming Asynchronicity in Oblivious Data Storage
Database Performance Tuning and Query Optimization
Accessing nearby copies of replicated objects
Verifiable Oblivious Storage
Lecture 7: Introduction to Distributed Computing.
Distributed Computing Made Secure: A New Cycle Cover Theorem
Searching.
CS7380: Privacy Aware Computing
Ali Shafiee Rajeev Balasubramonian Feifei Li
Indexing and Hashing Basic Concepts Ordered Indices
University of Maryland
Numerical Algorithms Quiz questions
Database Systems Instructor Name: Lecture-3.
Searching CLRS, Sections 9.1 – 9.3.
Resolution Proofs for Combinational Equivalence
Multithreaded Programming
Range-Efficient Computation of F0 over Massive Data Streams
CS 584 Lecture7 Assignment -- Due Now! Paper Review is due next week.
Chapter 11 Database Performance Tuning and Query Optimization
Low Depth Cache-Oblivious Algorithms
Scalable Group Key Management with Partially Trusted Controllers
Combinatorial Optimization of Multicast Key Management
Path Oram An Extremely Simple Oblivious RAM Protocol
OblivP2P: An Oblivious Peer-to-Peer Content Sharing System
Presentation transcript:

Oblivious Parallel RAM: Improved Efficiency and Generic Constructions Binyi Chen UCSB joint work with Huijia (Rachel) Lin Stefano Tessaro

Cloud Computing Access pattern reveals information File 5 is important Read file 5 …… Client Honest Access pattern reveals information Honest but curious

Oblivious RAM 1 v’1 … N’ v’N’ 1 v1 … N vN wrt (b1, v1) Read (a) ORAM rd (b2) va rd (b3) Client Obliviousness: Adv only know # of logical accessses given the actual accesses Translates every logical access into actual accesses on server Correctness: Always return/update the correct value

Client-server communication / block size Efficiency Bandwidth overhead: Client-server communication / block size Efficiency: communication/computation complexity of the client is significantly smaller than O(N) (e.g. polylog(N) ) N = # of logical blocks

ORAM in the parallel setting Crucial for real world application Scalable cloud storage services Multi-processor architectures Performance enhancement Parallel computing Multiple clients Traditional ORAM does not support parallel access Parallel program

Oblivious Parallel RAM [BCP’16] read(a1) Honest but curious C1 va1 wrt(bj,vj) msg2 Channels Round i … read(am-1) Cm-1 vam-1 rd(bi) msg1 write(am,v’am) Cm Adv’s view = clients comm + data accesses vam Honest

Correctness: Obliviousness: Efficiency: Always return/update the correct value Obliviousness: Only know the # of rounds of clients’ logical accesses after observing the communication/actual accesses Efficiency: Small inter-client & client-server communication

Generic transformation The only OPRAM [BCP’16] w(log3N) client-server comm overhead Best ORAM O(log2N) overhead Result 1: An OPRAM with (amortized) client-server comm overhead O(log2N). We close the gap! ORAM & OPRAM Equivalent? Result 2: Every ORAM can be transformed into an OPRAM with O(logN) factor increase in complexity Generic transformation

The challenge In the parallel setting: [BCP’16]: Our solution: Multiple clients might need to access the same storage cell simultaneously How to coordinate obliviously? [BCP’16]: Expensive coordination protocol Our solution: Partitioning: Each client manages disjoint partition

the partitioning technique Generic construction from ORAM to OPRAM Roadmap Starting point Review of Path-ORAM Efficient OPRAM: the partitioning technique Generic construction from ORAM to OPRAM

Path-ORAM [Stefanov et. al. 13] Bucket: Z=O(1) blocks B random L N = # of logical blocks Server Position Map B  L ……… Can be moved to the server with recursion Stash Client

Path-ORAM [Stefanov et. al. 13] Should only access a random path for each logical access Stash Access B Position Map B  L’ ……… Position Map B  L ……… B many blocks Move to the leaf? Client L’ random L N

lowest possible position Path-ORAM [Stefanov et. al. 13] Only Flush path L Stash small Re-encrypt & put to the lowest possible position Fetch every block on path L Position Map B  L’ ……… B Client many blocks L’ random L N

Tree ORAM  Tree OPRAM Simplifying assumptions All clients want to access a distinct logical address All clients share the position map locally

First Attempt Our solution Partitioning M clients retrieve and flush m paths independently, w/o coordination Paths always overlap!! Our solution Partitioning C2 C1 C3

Partitioning Stash Simulate our first attempt: Retrieve & flush m paths Stash Blocks from Stash & upper logm levels go to stashi if its path ends in subtree i Client i responsible for all blocks whose path ends in subtree i logm Subtree 1 Subtree 2 Subtree 3 Subtree 4 Stash1 Stash2 Stash3 Stash4

How to retrieve values? Security, so far: Addresses are all distinct Each client j is responsible for retrieving the requested blocks by traversing subtree STj Client i sends the block-path request to client j If Bi’s path ends in subtree j The requested blocks’ paths in subtree j form a random subtree STj Security, so far: Addresses are all distinct Path-assignments are independent and random Subtree 1 Subtree 2 Subtree 3 Subtree 4 ST1 ST2 ST3 ST4 B1? B3? Stash1 B2? Stash2 Stash3 B4? Stash4

How to re-insert the blocks to the new paths? Oblivious Routing[BCP’16] Hides L’i while obliviously sending Bi to corresponding client Sending back the block into the subtree that the new path belongs to Leaks information: Bi’s new assignment Efficient! O(logm logN) Subtree 1 Subtree 2 Subtree 3 Subtree 4

Client j flushes blocks in subtree STj Distinction to PathORAM Subtree Flushing Client j flushes blocks in subtree STj Distinction to PathORAM Optimize the positions within the entire sub-tree instead of an individual path Overflow analysis Blocks are placed at even lower position Stash size is bounded Tricky!

Removing restrictions Multiple clients access the same (logical) block? The access patterns coincide Elect leader + random fake reads [BCP’16] Move the position map to the server by Recursion See our paper!

OPRAM is not much harder! Generic OPRAM ? A new OPRAM A new ORAM OPRAM is not much harder! Generic construction Partitioning

Subtree partitioning Subtree 1 Subtree 2 Subtree 3 Subtree 4 Stash1

Partitioning P1 P2 P3 P4 Server Replace the subtree partitions with ORAMs Queueing process& cuckoo hashing enter the game Server O1 O2 O3 O4 ORAM1 ORAM2 ORAM3 ORAM4 Stash Stash Stash Stash

Partitioning Wrap-up Result 2: ORAM  OPRAM Result 1: An OPRAM with (amortized) client-server comm overhead O(log2N). Partitioning Result 2: ORAM  OPRAM

Thank you! https://eprint.iacr.org/2015/1053.pdf