Paper 2015/1153

Obliv-C: A Language for Extensible Data-Oblivious Computation

Samee Zahur and David Evans


Many techniques for secure or private execution depend on executing programs in a data-oblivious way, where the same instructions execute independent of the private inputs which are kept in encrypted form throughout the computation. Designers of such computations today must either put substantial effort into constructing a circuit representation of their algorithm, or use a high-level language and lose the opportunity to make important optimizations or experiment with protocol variations. We show how extensibility can be improved by judiciously exposing the nature of data-oblivious computation. We introduce a new language that allows application developers to program secure computations without being experts in cryptography, while enabling programmers to create abstractions such as oblivious RAM and width-limited integers, or even new protocols without needing to modify the compiler. This paper explains the key language features that safely enable such extensibility and describes the simple implementation approach we use to ensure security properties are preserved.

Available format(s)
Cryptographic protocols
Publication info
Preprint. MINOR revision.
Contact author(s)
sza4uq @ virginia edu
2015-11-30: received
Short URL
Creative Commons Attribution


      author = {Samee Zahur and David Evans},
      title = {Obliv-C: A Language for Extensible Data-Oblivious Computation},
      howpublished = {Cryptology ePrint Archive, Paper 2015/1153},
      year = {2015},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.