Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 2.79 KB

Readme.md

File metadata and controls

76 lines (54 loc) · 2.79 KB

Framework for Hybrid Homomorphic Encryption

This repository contains code to test and benchmark symmetric ciphers in hybrid homomorphic encryption. This code is also used in the evaluations of the ciphers in the paper [1].

HE libraries

The following Homomorphic Encryption Libraries are part of the framework:

The libraries are included as submodules in this repository and will be downloaded to the thirdparty directory.

Ciphers

The following ciphers are already implemented in the framework:

Compilation

The framework is developed and tested on Linux (and WSL2). The dependencies of the framework are git, gcc/g++ (or clang/clang++), cmake, autoconf, and libtool. Install these dependencies with

sudo apt install build-essential cmake autoconf libtool

To compile the framework, execute the following commands from the root directory:

mkdir build
cd build
cmake ..
make -j4

Each cipher for each library will then have its own executable, located in build/test.

Adding a cipher

A new cipher can be added to the framework by adding the source code to the ciphers directory. Make sure to use the same structure and naming convention as the already implemented ciphers! Furthermore, add the cipher to CMakeLists.txt.

Benchmarking a cipher

The framework already includes different benchmarks, which are implemented in ciphers/common/<lib>_kats for Z_2 ciphers and in ciphers/common_Zp/<lib>_kats for Z_p ciphers. The benchmarks can be chosen by adding corresponding tests to the testvectors.h file of the cipher.

Citing our work

Please use the following BibTeX entry to cite our work in academic papers.

@article{HybridHE,
  author    = {Christoph Dobraunig and
               Lorenzo Grassi and
               Lukas Helminger and
               Christian Rechberger and
               Markus Schofnegger and
               Roman Walch},
  title     = {Pasta: A Case for Hybrid Homomorphic Encryption},
  journal   = {{IACR} Cryptol. ePrint Arch.},
  volume    = {2021},
  pages     = {731},
  year      = {2021}
}

[1] https://eprint.iacr.org/2021/731.pdf