TY - GEN
T1 - Oblivious Single Access Machines A New Model for Oblivious Computation
AU - Appan, Ananya
AU - Heath, David
AU - Ren, Ling
N1 - Acknowledgements. Thanks to Javier Nieto and Ziling Yang for a discussion that helped inspire our design of smart pointers. This research was developed with funding from NSF grants CNS-2246353 and CNS-2246386.
PY - 2024/12/9
Y1 - 2024/12/9
N2 - Oblivious RAM (ORAM) allows a client to securely outsource memory storage to an untrusted server. It has been shown that no ORAM can simultaneously achieve small bandwidth blow-up, small client storage, and a single roundtrip of latency. We consider a weakening of the RAM model, which we call the Single Access Machine (SAM) model. In the SAM model, each memory slot can be written to at most once and read from at most once. We adapt existing tree-based ORAM to obtain an oblivious SAM (OSAM) that has O(log n) bandwidth blow-up (which we show is optimal), small client storage, and a single roundtrip. OSAM unlocks improvements to oblivious data structures/algorithms. For instance, we achieve oblivious unbalanced binary trees (e.g. tries, splay trees). By leveraging splay trees, we obtain a notion of caching ORAM, where an access in the worst case incurs amortized O(log2 n) bandwidth blow-up and O(log n) roundtrips, but in many common cases (e.g. sequential scans) incurs only amortized O(log n) bandwidth blow-up and O(1) roundtrips. We also give new oblivious graph algorithms, including computing minimum spanning trees and single source shortest paths, in which the OSAM client reads/writes O(|E| · log |E|) words using O(|E|) roundtrips, where |E| is the number of edges. This improves over prior custom solutions by a log factor. At a higher level, OSAM provides a general model for oblivious computation. We construct a programming interface around OSAM that supports arbitrary pointer-manipulating programs such that dereferencing a pointer to an object incurs O(log d log n) bandwidth blowup and O(log d) roundtrips, where d is the number of pointers to that object. This new interface captures a wide variety of data structures and algorithms (e.g., trees, tries, doubly-linked lists) while matching or exceeding prior best asymptotic results. It both unifies much of our understanding of oblivious computation and allows the programmer to write oblivious algorithms combining various common data structures/algorithms and beyond.
AB - Oblivious RAM (ORAM) allows a client to securely outsource memory storage to an untrusted server. It has been shown that no ORAM can simultaneously achieve small bandwidth blow-up, small client storage, and a single roundtrip of latency. We consider a weakening of the RAM model, which we call the Single Access Machine (SAM) model. In the SAM model, each memory slot can be written to at most once and read from at most once. We adapt existing tree-based ORAM to obtain an oblivious SAM (OSAM) that has O(log n) bandwidth blow-up (which we show is optimal), small client storage, and a single roundtrip. OSAM unlocks improvements to oblivious data structures/algorithms. For instance, we achieve oblivious unbalanced binary trees (e.g. tries, splay trees). By leveraging splay trees, we obtain a notion of caching ORAM, where an access in the worst case incurs amortized O(log2 n) bandwidth blow-up and O(log n) roundtrips, but in many common cases (e.g. sequential scans) incurs only amortized O(log n) bandwidth blow-up and O(1) roundtrips. We also give new oblivious graph algorithms, including computing minimum spanning trees and single source shortest paths, in which the OSAM client reads/writes O(|E| · log |E|) words using O(|E|) roundtrips, where |E| is the number of edges. This improves over prior custom solutions by a log factor. At a higher level, OSAM provides a general model for oblivious computation. We construct a programming interface around OSAM that supports arbitrary pointer-manipulating programs such that dereferencing a pointer to an object incurs O(log d log n) bandwidth blowup and O(log d) roundtrips, where d is the number of pointers to that object. This new interface captures a wide variety of data structures and algorithms (e.g., trees, tries, doubly-linked lists) while matching or exceeding prior best asymptotic results. It both unifies much of our understanding of oblivious computation and allows the programmer to write oblivious algorithms combining various common data structures/algorithms and beyond.
KW - Oblivious Data Structures
KW - Oblivious Graph Algorithms
KW - Oblivious RAM
UR - http://www.scopus.com/inward/record.url?scp=85215509814&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85215509814&partnerID=8YFLogxK
U2 - 10.1145/3658644.3690352
DO - 10.1145/3658644.3690352
M3 - Conference contribution
AN - SCOPUS:85215509814
T3 - CCS 2024 - Proceedings of the 2024 ACM SIGSAC Conference on Computer and Communications Security
SP - 3080
EP - 3094
BT - CCS 2024 - Proceedings of the 2024 ACM SIGSAC Conference on Computer and Communications Security
PB - Association for Computing Machinery
T2 - 31st ACM SIGSAC Conference on Computer and Communications Security, CCS 2024
Y2 - 14 October 2024 through 18 October 2024
ER -