SEAL is an easy-to-use homomorphic encryption library, developed by researchers in the Cryptography Research group at Microsoft Research. SEAL is written in C++11, and contains .NET wrappers for the public API. It has no external dependencies.
We have released a massive update to SEAL, which will eventually turn into version 2.0. Please download the new version, experiment with it, and let us know if you run into problems of any kind.
Among other things, we have switched the encryption scheme to one with significantly better noise growth properties, so in many cases you might be able to use smaller (=faster) parameters in your computations. Also Encryptor, Decryptor, and Evaluator are
now thread-safe, which makes it much more convenient to write multi-threaded programs using SEAL.
The update is not backwards-compatible, and you will need to make small changes to port your old code to use the new SEAL. The most significant changes are described at the end of the
The code-base contains examples written both in C++ and in C#. These examples are heavily commented, serving as a self-contained short introduction to using the library. In addition, the .h files both in the C++ library and in the .NET wrapper
library contain detailed comments for the public API.
To learn to use SEAL, we recommend looking at the example projects, as they contain several detailed and thoroughly commented examples demonstrating most of the basic features.
A now outdated introduction to using the library can be found
here. We are currently working on a more detailed paper describing the library, and how to use it in an optimal way.
We would like to thank John Wernsing, Rachel Player, Michael Naehrig, and Nathan Dowlin for their huge contributions to the SEAL project. We would also like to thank everyone who has sent us helpful comments, suggestions, and bug reports.
If you have any questions, suggestions, comments, or bug reports, please contact us either via CodePlex, or by emailing email@example.com.