Simple Encrypted Arithmetic Library or SEAL is a free and open-source cross platform software library developed by Microsoft Research that implements various forms of homomorphic encryption.

History

Development originally came out of the Cryptonets paper, demonstrating that artificial intelligence algorithms could be run on homomorphically encrypted data.

Microsoft SEAL

It is open-source (under the MIT License) and written in standard C++ without external dependencies and so it can be compiled cross platform. An official .NET wrapper written in C# is available and makes it easier for .NET applications to interact with SEAL.

Microsoft SEAL

Features

Algorithms

Microsoft SEAL supports both asymmetric and symmetric (added in version 3.4) encryption algorithms.

Microsoft SEAL

Scheme types

Microsoft SEAL comes with two different homomorphic encryption schemes with very different properties:

BFV: The BFV scheme allows modular arithmetic to be performed on encrypted integers. For applications where exact values are necessary, the BFV scheme is the only choice. CKKS: The CKKS scheme allows additions and multiplications on encrypted real or complex numbers, but yields only approximate results. In applications such as summing up encrypted real numbers, evaluating machine learning models on encrypted data, or computing distances of encrypted locations CKKS is going to be by far the best choice.

Compression

Data compression can be achieved by building SEAL with Zlib support. By default, data is compressed using the DEFLATE algorithm which achieves significant memory footprint savings when serializing objects such as encryption parameters, ciphertexts, plaintexts, and all available keys: Public, Secret, Relin (relinearization), and Galois. Compression can always be disabled.

Availability

There are several known ports of SEAL to other languages in active development:

C++

Microsoft SEAL (Microsoft's source)

C#/F#

NuGet (Microsoft's official package)

Python

PySEAL

SEAL-Python

tf-seal

Pyfhel

JavaScript

node-seal

sealjs

TypeScript

node-seal

References

External links

Homomorphic encryption

Cryptographic software

Free and open-source software

SEAL

Microsoft Research

Free software programmed in C++

Software using the MIT license

2018 software