Skip to content
This repository has been archived by the owner on Sep 13, 2022. It is now read-only.
/ BPobfus Public archive

implementation of GGH15-based obfuscation of read-once branching programs

License

Notifications You must be signed in to change notification settings

shaih/BPobfus

Repository files navigation

GGH15-Based Branching-Program Obfuscation

An implementation of the GGH15 Graded encoding scheme, and its use for obfuscating read-once branching programs (BPs). A description of many aspect of this implementation can be found here.

To be able to handle anything more than just toy problems, we developed a host of algorithmic and code-level optimizations. These include new variants of discrete Gaussian sampler and lattice trapdoor sampler, efficient matrix-manipulation routines, and many tradeoffs. Some of these optimizations can likely find other uses in lattice-based cryptography.

This implementation is written in C++ and uses the NTL mathematical library (version 10.4.0 or higher). It is distributed under the terms of the Apache License v2.0.

Content

The top-level directory constains most of the implementations code, and a Makefile to compile it. After cloning the repository, just run make depend and then make in the top-level directory.

The utils subdirectory contains some utility functions (many of which were lifted from HElib or NTL). The programs subdirectory contains the obfuscation programs and some unit-test programs. To build these programs, run make <progName>_x in the top-level directory (e.g., make initialize_x to make the initialization program).

Contributors

This implementation was written by Shai Halevi from IBM, Tzipora Halevi from Brooklyn College, and Victor Shoup and Noah Stephens-Davidowitz from NYU. It was Supported by the Defense Advanced Research Projects Agency (DARPA) and Army Research Office(ARO) under Contract No. W911NF-15-C-0236.

About

implementation of GGH15-based obfuscation of read-once branching programs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published