Skip to content
Shai Halevi edited this page Mar 27, 2015 · 6 revisions

Welcome to the HElib wiki!

March 27, 2015. HElib now supports multi-threading. Building on the newly introduced supports for multi-threading in NTL, it is now possible to use multiple threads in HElib (when compiled with the flag -DFHE_THREADS). The current release contains two examples for using multi-threading:

(i) compiling HElib with -DFHE_DCRT_THREADS enables multi-threaded implementation of some low-level transformations. As these transformations only account for ~40% of the run-time, enabling this flag entails only a modest run-time improvement (upto x1.5 speedup in our tests)

(ii) compiling HElib with -DFHE_BOOT_THREADS enables multi-threaded implementation of bootstrapping. This yields almost a linear speedup (e.g., using 16 cores we got 12x speedup), but it only affects bootstrapping time.

December 30, 2014. We re-implemented homomorphic-AES on top of HElib, the code is available in the branch aes, in the directory src/aes. In our tests, were were able to evaluate homomorphic AES-128 encryption on a commodity laptop in just over four minutes, this is roughly a 500x improvement in run-time over the early implementation of Gentry-Halevi-Smart from 2012.

November 26, 2014. We finally have bootstrapping!! The new version of the library contains many fixes and optimizations, but more importantly it now contains a working implementation of recryption/bootstrapping. See an example of how to use it in src/Test_bootstrapping.cpp.

Clone this wiki locally