Paper 2015/1153 Original: eprint.iacr.org/2015/1153 ↗

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

Samee Zahur
David Evans
Abstract

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.

Metadata
Available format(s)
PDF
Category
Cryptographic protocols
Publication info
Preprint.
History
2015-11-30: last updated
2015-11-30: published
Short URL
https://ia.cr/2015/1153
License
https://creativecommons.org/licenses/by/4.0/

BibTeX

@misc{cryptoeprint:2015/1153,
      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},
      url = {https://eprint.iacr.org/2015/1153}
}
Note: In order to protect the privacy of readers, this archive does not use cookies or embedded third party content.