Trace oblivious computation
Chang Liu · 2015
In recent years, execution trace obliviousness has become an important security property in various applications in the presence of side channels. On the one hand, a cryptographic protocol called Oblivious RAM (ORAM) has been developed as a generic tool to achieve obliviousness, while incurring an overhead. On the other hand, customized oblivious algorithms with better performance have been developed. This method, however, is not scalable in terms of human efforts. This thesis work adopts a language design approach to facilitate users to develop efficient oblivious applications. I will study sequential and parallel programs and different channels. I will design languages and security type systems to support efficient algorithm implementations, while formally enforcing obliviousness. My study for the secure computation application shows that using our compiler, one PhD student can develop an oblivious algorithm in one day which took a research group of 5 researchers 4 months to develop in 2013, while achieving 10* to 20* better performance.