With the gaining popularity of remote storage (e.g. in the Cloud), we consider the setting where a small, protected local machine wishes to access data on a large, untrusted remote machine. This setting was introduced in the RAM model in the context of software protection by Goldreich and Ostrovsky. A secure Oblivious RAM simulation allows for a client, with small (e.g., constant size) protected memory, to hide not only the data but also the sequence of locations it accesses (both reads and writes) in the unprotected memory of size n. • We analyze several schemes from the literature, observing a repeated design flaw that leaks information on the memory access pattern. For some of these schemes, the leakage is actually nonnegligible, while for others it is negligible. • On the positive side, we present a new secure oblivious RAM scheme, extending a recent scheme by Goodrich and Mitzenmacher. Our scheme uses only O(1) local memory, and its (amortized) overhead is O(log 2 n/ log log n), outperforming the previously-best O(log 2 n) overhead (among schemes where the client only uses O(1) additional local memory). • We also present a transformation of our scheme above (whose amortized overhead is O(log 2 n/ log log n)) into a scheme with worst-case overhead of O(log 2 n/ log log n).
Theoretically, the best known ORAM scheme (with constant CPU cache) for small O(log N )-sized memory words 3 is a construction by Kushilevitz et al. REF , achieving O(log 2 N/ log log N ) bandwidth and runtime blowup.
On the (In)security of Hash-based Oblivious RAM and a New Balancing Scheme
In SODA 2012
Computer Science