PrORAM: dynamic prefetcher for oblivious RAM

Oblivious RAM (ORAM) is an established technique tohide the access pattern to an untrusted storage system. WithORAM, a curious adversary cannot tell what address the useris accessing when observing the bits moving between the userand the storage system. All existing ORAM schemes achieveobliviou...

Full description

Bibliographic Details
Main Authors: Yu, Xiangyao, Ren, Ling, Fletcher, Christopher Wardlaw, Kwon, Albert Hyukjae, Devadas, Srinivas
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Format: Article
Language:English
Published: Association for Computing Machinery (ACM) 2021
Online Access:https://hdl.handle.net/1721.1/129832
Description
Summary:Oblivious RAM (ORAM) is an established technique tohide the access pattern to an untrusted storage system. WithORAM, a curious adversary cannot tell what address the useris accessing when observing the bits moving between the userand the storage system. All existing ORAM schemes achieveobliviousness by adding redundancy to the storage system, i.e.,each access is turned into multiple random accesses. Suchredundancy incurs a large performance overhead.Although traditional data prefetching techniques success-fully hide memory latency in DRAM based systems, it turns outthat they do not work well for ORAM because ORAM does nothave enough memory bandwidth available for issuing prefetchrequests. In this paper, we exploit ORAM locality by taking ad-vantage of the ORAM internal structures. While it might seemapparent that obliviousness and locality are two contradictoryconcepts, we challenge this intuition by exploiting data local-ity in ORAM without sacrificing security. In particular, we propose a dynamic ORAM prefetching technique called PrO-RAM (Dynamic Prefetcher for ORAM) and comprehensivelyexplore its design space. PrORAM detects data locality inprograms at runtime, and exploits the locality without leakingany information on the access pattern.Our simulation results show that with PrORAM, the per-formance of ORAM can be significantly improved. PrORAMachieves an average performance gain of 20% over the base-line ORAM for memory intensive benchmarks among Splash2and 5.5% for SPEC06 workloads. The performance gain forYCSB and TPCC in DBMS benchmarks is 23.6% and 5% re-spectively. On average, PrORAM offers twice the performancegain than that offered by a static super block scheme.