The Absentminded Crypto Kit

This project seeks to develop a comprehensive Cryptographic SDK for use in secure multi-party computation. It supports a growing number of useful mathematical cryptographic primitives with efficient implementations based upon recent research, simplifying the development of complex applications in a secure multi-party context. In addition, it includes a number of useful non-cryptographic algorithms, such as Stable Matching and Breadth-first Search. It also includes a comprehensive set of test cases and benchmarks. The ACK library is written in obliv-c, a c-derived language for secure multiparty computation. Primary development is undertaken by Jack Doerner. Thanks also to Samee Zahur and Xiao Wang for their contributions.



  1. You must first build obliv-c, though it need not be installed in any particular location.

  2. To compile ACK, set the path to obliv-c's main project directory via export OBLIVC_PATH=<path to obliv-c>, then run make.

Project Organization

Source for this project is divided into two directories: src contains code for the primary library, while tests contains code for tests and benchmarks. The library will be compiled to build/lib/liback.a, and all testing and benchmarking binaries are found in build/tests.