Oblivious RAM (ORAM) is a well-researched primitive to hide the memory access pattern of a RAM computation; it has a variety of applications in trusted computing, outsourced storage, and multiparty computation. In this paper, we study the so-called offline ORAM in which the sequence of memory access locations to be hidden is known in advance. Apart from their theoretical significance, offline ORAMs can be used to construct efficient oblivious algorithms. We obtain the first optimal offline ORAM with perfect security from oblivious priority queues via time-forward processing. For this, we present a simple construction of an oblivious priority queue with perfect security. Our construction achieves an asymptotically optimal (amortized) runtime of $\Theta(\log N)$ per operation for a capacity of $N$ elements and is of independent interest. Building on our construction, we additionally present efficient external-memory instantiations of our oblivious, perfectly-secure construction: For the cache-aware setting, we match the optimal I/O complexity of $\Theta(\frac{1}{B} \log \frac{N}{M})$ per operation (amortized), and for the cache-oblivious setting we achieve a near-optimal I/O complexity of $O(\frac{1}{B} \log \frac{N}{M} \log\log_M N)$ per operation (amortized).
翻译:无意识随机存取存储器(ORAM)是一种经过深入研究的原语,用于隐藏RAM计算的内存访问模式;它在可信计算、外包存储和多方计算等领域有广泛的应用。本文研究所谓的离线ORAM,其中待隐藏的内存访问位置序列是预先已知的。除了理论意义外,离线ORAM可用于构建高效的无意识算法。我们首次通过时间前向处理,利用无意识优先级队列实现了具有完美安全性的最优离线ORAM。为此,我们提出了一种具有完美安全性的简单无意识优先级队列构造。对于容量为N个元素的队列,我们的构造实现了每次操作Θ(log N)的渐近最优(摊销)运行时间,这本身具有独立的研究价值。基于我们的构造,我们还进一步提出了我们无意识且完美安全的构造的高效外部存储器实例化:在缓存感知设置中,我们达到了每次操作Θ(1/B log N/M)的最优I/O复杂度(摊销);在缓存无关设置中,我们实现了每次操作O(1/B log N/M log log_M N)的近乎最优I/O复杂度(摊销)。