PrORAM

Oblivious RAM (ORAM) is an established technique to hide the access pattern to an untrusted storage system. With ORAM, a curious adversary cannot tell what address the user is accessing when observing the bits moving between the user and the storage system. All existing ORAM schemes achieve obliviou...

Full description

Bibliographic Details
Main Authors: Haider, Syed Kamran, van Dijk, Marten, Yu, Xiangyao, Ren, Ling, Fletcher, Christopher Wardlaw, Kwon, Albert Hyukjae, Devadas, Srinivas
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: Association for Computing Machinery 2018
Online Access:http://hdl.handle.net/1721.1/113047
https://orcid.org/0000-0003-4317-3457
https://orcid.org/0000-0003-3437-7570
https://orcid.org/0000-0003-1467-2150
https://orcid.org/0000-0001-8253-7714
_version_ 1826205639083294720
author Haider, Syed Kamran
van Dijk, Marten
Yu, Xiangyao
Ren, Ling
Fletcher, Christopher Wardlaw
Kwon, Albert Hyukjae
Devadas, Srinivas
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Haider, Syed Kamran
van Dijk, Marten
Yu, Xiangyao
Ren, Ling
Fletcher, Christopher Wardlaw
Kwon, Albert Hyukjae
Devadas, Srinivas
author_sort Haider, Syed Kamran
collection MIT
description Oblivious RAM (ORAM) is an established technique to hide the access pattern to an untrusted storage system. With ORAM, a curious adversary cannot tell what address the user is accessing when observing the bits moving between the user and the storage system. All existing ORAM schemes achieve obliviousness by adding redundancy to the storage system, i.e., each access is turned into multiple random accesses. Such redundancy incurs a large performance overhead. Although traditional data prefetching techniques successfully hide memory latency in DRAM based systems, it turns out that they do not work well for ORAM because ORAM does not have enough memory bandwidth available for issuing prefetch requests. In this paper, we exploit ORAM locality by taking advantage of the ORAM internal structures. While it might seem apparent that obliviousness and locality are two contradictory concepts, we challenge this intuition by exploiting data locality in ORAM without sacrificing security. In particular, we propose a dynamic ORAM prefetching technique called PrORAM (Dynamic Prefetcher for ORAM) and comprehensively explore its design space. PrORAM detects data locality in programs at runtime, and exploits the locality without leaking any information on the access pattern. Our simulation results show that with PrORAM, the performance of ORAM can be significantly improved. PrORAM achieves an average performance gain of 20% over the baseline ORAM for memory intensive benchmarks among Splash2 and 5.5% for SPEC06 workloads. The performance gain for YCSB and TPCC in DBMS benchmarks is 23.6% and 5% respectively. On average, PrORAM offers twice the performance gain than that offered by a static super block scheme.
first_indexed 2024-09-23T13:16:17Z
format Article
id mit-1721.1/113047
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T13:16:17Z
publishDate 2018
publisher Association for Computing Machinery
record_format dspace
spelling mit-1721.1/1130472022-10-01T14:10:08Z PrORAM Haider, Syed Kamran van Dijk, Marten Yu, Xiangyao Ren, Ling Fletcher, Christopher Wardlaw Kwon, Albert Hyukjae Devadas, Srinivas Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Yu, Xiangyao Ren, Ling Fletcher, Christopher Wardlaw Kwon, Albert Hyukjae Devadas, Srinivas Oblivious RAM (ORAM) is an established technique to hide the access pattern to an untrusted storage system. With ORAM, a curious adversary cannot tell what address the user is accessing when observing the bits moving between the user and the storage system. All existing ORAM schemes achieve obliviousness by adding redundancy to the storage system, i.e., each access is turned into multiple random accesses. Such redundancy incurs a large performance overhead. Although traditional data prefetching techniques successfully hide memory latency in DRAM based systems, it turns out that they do not work well for ORAM because ORAM does not have enough memory bandwidth available for issuing prefetch requests. In this paper, we exploit ORAM locality by taking advantage of the ORAM internal structures. While it might seem apparent that obliviousness and locality are two contradictory concepts, we challenge this intuition by exploiting data locality in ORAM without sacrificing security. In particular, we propose a dynamic ORAM prefetching technique called PrORAM (Dynamic Prefetcher for ORAM) and comprehensively explore its design space. PrORAM detects data locality in programs at runtime, and exploits the locality without leaking any information on the access pattern. Our simulation results show that with PrORAM, the performance of ORAM can be significantly improved. PrORAM achieves an average performance gain of 20% over the baseline ORAM for memory intensive benchmarks among Splash2 and 5.5% for SPEC06 workloads. The performance gain for YCSB and TPCC in DBMS benchmarks is 23.6% and 5% respectively. On average, PrORAM offers twice the performance gain than that offered by a static super block scheme. National Science Foundation (U.S.) Qatar Computing Research Institute 2018-01-10T19:06:51Z 2018-01-10T19:06:51Z 2015-06 Article http://purl.org/eprint/type/ConferencePaper 978-1-4503-3402-0 http://hdl.handle.net/1721.1/113047 Yu, Xiangyao, et al. "PrORAM: Dynamic Prefetcher for Oblivious RAM." ACM SIGARCH Computer Architecture News - ISCA'15, 13-17 June 2015, Portland, Oregon, ACM Press, 2015, pp. 616–28. https://orcid.org/0000-0003-4317-3457 https://orcid.org/0000-0003-3437-7570 https://orcid.org/0000-0003-1467-2150 https://orcid.org/0000-0001-8253-7714 en_US http://dx.doi.org/10.1145/2749469.2750413 Proceedings of the 42nd Annual International Symposium on Computer Architecture - ISCA '15 Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Association for Computing Machinery MIT Web Domain
spellingShingle Haider, Syed Kamran
van Dijk, Marten
Yu, Xiangyao
Ren, Ling
Fletcher, Christopher Wardlaw
Kwon, Albert Hyukjae
Devadas, Srinivas
PrORAM
title PrORAM
title_full PrORAM
title_fullStr PrORAM
title_full_unstemmed PrORAM
title_short PrORAM
title_sort proram
url http://hdl.handle.net/1721.1/113047
https://orcid.org/0000-0003-4317-3457
https://orcid.org/0000-0003-3437-7570
https://orcid.org/0000-0003-1467-2150
https://orcid.org/0000-0001-8253-7714
work_keys_str_mv AT haidersyedkamran proram
AT vandijkmarten proram
AT yuxiangyao proram
AT renling proram
AT fletcherchristopherwardlaw proram
AT kwonalberthyukjae proram
AT devadassrinivas proram