OptORAMa: Optimal Oblivious RAM

IF 2.3 2区 计算机科学 Q2 COMPUTER SCIENCE, HARDWARE & ARCHITECTURE
Gilad Asharov, Ilan Komargodski, Wei-Kai Lin, Kartik Nayak, Enoch Peserico, Elaine Shi
{"title":"OptORAMa: Optimal Oblivious RAM","authors":"Gilad Asharov, Ilan Komargodski, Wei-Kai Lin, Kartik Nayak, Enoch Peserico, Elaine Shi","doi":"https://dl.acm.org/doi/10.1145/3566049","DOIUrl":null,"url":null,"abstract":"<p>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 <i>N</i>) amortized blowup in memory accesses is necessary, where <i>N</i> 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 <i>balls-and-bins</i> model), and recently by Larsen and Nielsen (CRYPTO ’18) for computational security.</p><p>A long-standing open question is whether there exists an <i>optimal</i> 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 <i>O</i>(log <i>N</i>) 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 <i>O</i>(log <i>N</i>⋅ log log <i>N</i>) amortized blowup, assuming one-way functions. </p><p>One of our building blocks of independent interest is a linear-time deterministic oblivious algorithm for tight compaction: Given an array of <i>n</i> 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 <i>O</i>(<i>n</i>) algorithm improves the previously best-known deterministic or randomized algorithms whose running time is <i>O</i>(<i>n</i> ⋅ log <i>n</i>) or <i>O</i>(<i>n</i> ⋅ log log <i>n</i>), respectively.</p>","PeriodicalId":50022,"journal":{"name":"Journal of the ACM","volume":"22 4","pages":""},"PeriodicalIF":2.3000,"publicationDate":"2022-12-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of the ACM","FirstCategoryId":"94","ListUrlMain":"https://doi.org/https://dl.acm.org/doi/10.1145/3566049","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, HARDWARE & ARCHITECTURE","Score":null,"Total":0}
引用次数: 0

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.

OptORAMa:最佳遗忘内存
遗忘RAM (ORAM),在Goldreich和Ostrovsky (STOC ' 87和J. ACM ' 96)的开创性工作中首次引入,是一种可证明的混淆程序访问模式的技术,这样访问模式就不会泄露有关程序秘密输入的信息。要将一个通用程序编译为无关的对应程序,众所周知,在内存访问中需要Ω (log N)平摊爆炸,其中N是逻辑内存的大小。这在golddreich和Ostrovksy关于统计安全的原始ORAM工作中以及在某种程度上受限制的模型(所谓的球与箱模型)中得到了证明,最近由Larsen和Nielsen (CRYPTO ' 18)在计算安全方面得到了证明。一个长期存在的悬而未决的问题是,是否存在匹配上述对数下界的最佳ORAM结构(不做大内存字假设,并假设CPU寄存器数量恒定)。在本文中,我们解决了这个问题,并提出了第一个具有O(log N)平摊爆炸的安全ORAM,假设函数是单向的。我们的结果受到了Patel et al. (FOCS ' 18)最近的漂亮工作的启发,并对其进行了非平凡的改进,Patel et al. (FOCS ' 18)给出了O(log N·log log N)平摊放大的构造,假设单向函数。我们感兴趣的独立构建块之一是用于紧密压缩的线性时间确定性遗忘算法:给定一个包含n个元素的数组,其中一些元素被标记,我们对数组中的元素进行排列,以便所有标记的元素最终位于数组的前面。我们的O(n)算法改进了之前最著名的确定性或随机算法,它们的运行时间分别为O(n·log n)或O(n·log log n)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Journal of the ACM
Journal of the ACM 工程技术-计算机:理论方法
CiteScore
7.50
自引率
0.00%
发文量
51
审稿时长
3 months
期刊介绍: The best indicator of the scope of the journal is provided by the areas covered by its Editorial Board. These areas change from time to time, as the field evolves. The following areas are currently covered by a member of the Editorial Board: Algorithms and Combinatorial Optimization; Algorithms and Data Structures; Algorithms, Combinatorial Optimization, and Games; Artificial Intelligence; Complexity Theory; Computational Biology; Computational Geometry; Computer Graphics and Computer Vision; Computer-Aided Verification; Cryptography and Security; Cyber-Physical, Embedded, and Real-Time Systems; Database Systems and Theory; Distributed Computing; Economics and Computation; Information Theory; Logic and Computation; Logic, Algorithms, and Complexity; Machine Learning and Computational Learning Theory; Networking; Parallel Computing and Architecture; Programming Languages; Quantum Computing; Randomized Algorithms and Probabilistic Analysis of Algorithms; Scientific Computing and High Performance Computing; Software Engineering; Web Algorithms and Data Mining
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信