Paper 2015/1153
Obliv-C: A Language for Extensible Data-Oblivious Computation
Samee Zahur and 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)
- Category
- Cryptographic protocols
- Publication info
- Preprint. MINOR revision.
- Contact author(s)
- sza4uq @ virginia edu
- History
- 2015-11-30: received
- Short URL
- https://ia.cr/2015/1153
- License
-
CC BY
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} }