This paper presents a new compiler and architecture called GhostRider for supporting privacy preserving computation in the cloud. The architecture employs Oblivious RAM (ORAM) which our compiler uses to emit programs that satisfy memory-trace obliviousness (MTO): Even an adversary that observes memory, bus traffic, and access times while the program executes can learn nothing about the program’s sensitive inputs and outputs. A na¨ıve way to achieve MTO is to allocate all code and data in a single ORAM, and disable caches or fix the rate of memory traffic to avoid timing channels. GhostRider’s compiler instead allocates data to non-oblivious, encrypted RAM (ERAM) and employs a scratchpad when the memory trace, and timing differences, are not a source of leaks, respectively. The compiler can also allocate to multiple ORAM banks when safe, which sometimes significantly reduces access times. We have formalized our approach and proved it enjoys MTO. Our FPGAbased hardware prototy...
Chang Liu, Austin Harris, Martin Maas, Michael W.