OptORAMa: Optimal Oblivious RAM
Gilad Asharov, Ilan Komargodski, Wei-Kai Lin, Kartik Nayak, Enoch Peserico, Elaine Shi
Abstract
Oblivious RAM (ORAM), first introduced in the ground-breaking work of Goldreich and Ostrovsky (STOC ’87 and J. ACM ’96) is a technique for provably obfuscating programs’ access patterns, such that the access patterns leak no information about the programs’ secret inputs. To compile a general program to an oblivious counterpart, it is well-known that Ω (log N) amortized blowup in memory accesses is necessary, where N is the size of the logical memory. This was shown in Goldreich and Ostrovksy’s original ORAM work for statistical security and in a somewhat restricted model (the so-called balls-and-bins model), and recently by Larsen and Nielsen (CRYPTO ’18) for computational security. A long-standing open question is whether there exists an optimal ORAM construction that matches the aforementioned logarithmic lower bounds (without making large memory word assumptions, and assuming a constant number of CPU registers). In this article, we resolve this problem and present the first secure ORAM with O(log N) amortized blowup, assuming one-way functions. Our result is inspired by and non-trivially improves on the recent beautiful work of Patel et al. (FOCS ’18) who gave a construction with O(log N⋅ log log N) amortized blowup, assuming one-way functions. One of our building blocks of independent interest is a linear-time deterministic oblivious algorithm for tight compaction: Given an array of n elements where some elements are marked, we permute the elements in the array so that all marked elements end up in the front of the array. Our O(n) algorithm improves the previously best-known deterministic or randomized algorithms whose running time is O(n ⋅ log n) or O(n ⋅ log log n), respectively.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 1c681d7f-afce-45c6-af65-8b6daa470c11Cited by top-tier papers40
- Onion Ring ORAM: Efficient Constant Bandwidth Oblivious RAM from (Leveled) TFHEHao Chen, Ilaria Chillotti, Ling RenCCS 2019 · 64 citations
- Doubly Efficient Private Information Retrieval and Fully Homomorphic RAM Computation from Ring LWEWei-Kai Lin, Ethan Mook, Daniel WichsSTOC 2023 · 50 citations
- Path Oblivious Heap: Optimal and Practical Oblivious Priority QueueElaine ShiS&P 2020 · 36 citations
- Efficient Secure Three-Party Sorting with Applications to Data Analysis and Heavy HittersGilad Asharov, Koki Hamada, Dai Ikarashi, Ryo Kikuchi et al.CCS 2022 · 30 citations
- GraphOS: Towards Oblivious Graph ProcessingJavad Ghareh Chamani, Ioannis Demertzis, Dimitrios Papadopoulos, Charalampos Papamanthou et al.VLDB 2023 · 21 citations
Related papers
- Optimal Oblivious Parallel RAMGilad Asharov, Ilan Komargodski, Wei-Kai Lin, Enoch Peserico et al.SODA 2022 · 19 citations
- Oblivious RAM with Worst-Case Logarithmic OverheadGilad Asharov, Ilan Komargodski, Wei-Kai Lin, Elaine ShiCRYPTO 2021 · 12 citations
- FutORAMa: A Concretely Efficient Hierarchical Oblivious RAMGilad Asharov, Ilan Komargodski, Yehuda MichelsonCCS 2023 · 7 citations
- MacORAMa: Optimal Oblivious RAM with IntegritySurya Mathialagan, Neekon VafaCRYPTO 2023 · 5 citations
- A Logarithmic Lower Bound for Oblivious RAM (for All Parameters)Ilan Komargodski, Wei-Kai LinCRYPTO 2021 · 17 citations
