Improved bounds for Path ORAM
(Elaine Shi)
Path ORAM (Oblivious RAM) is a protocol to hide memory access patterns. A client wants to access memory from an untrusted server; Path ORAM “adds random noise” to the memory accesses so the server learns nothing about which memory was accessed.
A solution to this problem would improve the efficiency of Path ORAM.
We will analyze a random process on the following data structure. In a binary tree of depth , every node has a “bucket” that can store up to blocks. (Imagine is 3 or 5.) Additionally, the root note has a “stash” which has infinite capacity to store blocks.
You have a total of blocks; to start with, none of the blocks are stored in the data structure. After an “initialization” step, you want to perform a sequence of “read/write” operations. The sequence of read/writes is described as a sequence of blocks, where .
-
Initialization: you assign to each block a “label” . The label is one of the leaves of the binary tree; the labels are assigned independently at random from among the leaves.
After block is inserted into the tree, its position in the tree must always be an ancestor of its label . (However, the initialization step does not insert any blocks into the tree.)
- Sequentially for each from to ,
apply the following procedure.
- Let be the label currently assigned to the block . In this step, you will only touch buckets along the path from the root to .
- Assign to block a new label , chosen uniformly at random from among the leaves of the tree.
- Move block into the “stash” at the root of the tree.
- Iterate through the blocks in the path from root to leaf . For each such block, move it as far as possible toward the leaf , subject to the following conditions: _ Block can only be moved to a node that is an ancestor of its label _ Block can only be moved to a node that is an ancestor of . * At most blocks can be stored in any bucket.
The problem is to prove that not too many blocks end up stored in the stash. Specifically, prove that the probability that the stash ends up holding more than blocks after steps is less than , for some constants and .
For , the result is known to be true. A proof can be found in Section 5 of this paper. Numerical experiments suggest that it is also true for . Can you prove it for or even ?