Development originally came out of the Cryptonets paper,[3] demonstrating that artificial intelligence algorithms could be run on homomorphically encrypted data.[4]
It isopen-source (under theMIT License) and written in standardC++ without external dependencies and so it can be compiled cross platform. An official.NET wrapper written inC# is available and makes it easier for .NET applications to interact with SEAL.
Microsoft SEAL comes with two different homomorphic encryption schemes with very different properties:
BFV:[5] 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:[6] 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.
Data compression can be achieved by building SEAL withZlib support. By default, data is compressed using theDEFLATE algorithm which achieves significantmemory 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.