I. Introduction
Trusted computer hardware is critical to the security of computing systems. One of the most vulnerable parts of the computer hardware is the memory bus between the processor chip and the off-chip memory. The data transferred on the bus can be snooped and the information about the system and the application running on the processor can be leaked through the memory access patterns even if the data have been encrypted, as was demonstrated in [37] and [21]. A promising solution to prevent such an information leak is to use the Oblivious RAM (ORAM) scheme [14], as illustrated in Fig. 1, where data transferred from/to memory are encrypted, and for each memory access requested by the processor, ORAM generates a set of random dummy reads and writes to the off-chip memory. Hence, both the data and the address traces on the memory bus appear random to the adversary and thus no useful information is revealed.