Obliv-C is a simple GCC wrapper that makes it easy to embed secure computation protocols inside regular C programs.

The idea is simple: if you are performing a multi-party distributed computation with sensitive data, just write it in our Obliv-C langauge and compile/link it with your project. The result will be a secure multi-party cryptographic protocol that performs this operation without revealing any of the inputs or intermediate values of the computation to any of the parties. Only the final outputs are revealed.

This paper motivates and describes Obliv-C:

Samee Zahur and David Evans. Obliv-C: A Language for Extensible Data-Oblivious Computation, Cryptology ePrint Archive: Report 2015:1153 [PDF], November 2015.

This mini-book provides an introduction to secure multi-party computation:

David Evans, Vladimir Kolesnikov and Mike Rosulek. A Pragmatic Introduction to Secure Multi-Party Computation, NOW Publishers, December 2018. [PDF]

Getting Started

Code: https://github.com/samee/obliv-c

This repository includes the implementation of Obliv-C and several example applications and benchmarks.

Tutorial

Walks through how to install Obliv-C and build your first data-oblivious application using a simple linear regression example application.

Documentation

Documentation on Obliv-C’s language extensions and library functions.

Rust Wrapper

Calling Obliv-C protocols from Rust programs (Phillipp Schoppmann)

Projects Using Obliv-C

Libraries and Protocols

Fast Oblivious Memories:
floram (CCS 2017)
SqORAM (S&P 2016)

Cryptographic library:
Absentminded Crypto Kit

Half-Gates (EuroCrypt 2015)

Applications by Others

Blind Justice: Fairness with Encrypted Sensitive Attributes (ICML 2018)

Private Nearest Neighbors
Secure Deep Learning

Multi-party data analytics:
Conclave (EuroSys 2019)

Encrypted email:
Pretzel (SIGCOMM 2017)

Secure Spreadsheet, Calctopia, 2017.

Publications and Talks

People

Bargav Jayaraman, PhD Student

Youssef Errami, Undergraduate Researcher
Kush Patel, Undergraduate Researcher
David Evans, Faculty Advisor

Alumni

Samee Zahur, Project Founder and Leader (now at Google)

Darion Cassel, Undergraduate Researcher (now at CMU)
Natnatee (“Ko”) Dokmai, Undergraduate Researcher (now at Indiana University)
Jack Doerner, Wizard of Oblivion (now at Northeastern)
Samuel Havron, Undergraduate Researcher (now at Cornell)
Hannah Li, Undergraduate and Masters Student (now at Facebook)
Jesse Nayak, Undergraduate Researcher Nathaniel Grevatt, Undergraduate Researcher (2018-2019)
Jonah Weissman, Undergraduate Researcher (summer 2019)

Other Notable Contributors:
Richard Li, Michael Mahoney, Xiao Wang, Weikeng Chen