Microsoft SEAL
![]() | |
Developer(s) | Microsoft Research |
---|---|
Initial release | December 3, 2018 |
Stable release | 4.0.0
/ March 17, 2022 |
ARM64 | |
Type | Homomorphic encryption library |
License | MIT License |
Website | www |
Simple Encrypted Arithmetic Library or SEAL is a
History
Development originally came out of the Cryptonets paper,[3] demonstrating that artificial intelligence algorithms could be run on homomorphically encrypted data.[4]
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.
Features
Algorithms
Microsoft SEAL supports both asymmetric and symmetric (added in version 3.4) encryption algorithms.
Scheme types
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.
Compression
Data compression can be achieved by building SEAL with
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
JavaScript
TypeScript
References
- ^ Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.: microsoft/SEAL, Microsoft, 2019-11-20, archived from the original on 2019-05-31, retrieved 2019-11-20
- ISBN 9783319566146.
- ^ Downlin, Nathan; Gilad-Bachrach, Ran; Laine, Kim; Lauter, Kirstin; Naehrig, Michael; Wernsing, John (2016-05-25). "CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy" (PDF). Proceedings of the 33rd International Conference on Machine Learning. Archived from the original (PDF) on 2018-08-26.
- ^ "The Microsoft Simple Encrypted Arithmetic Library goes open source". Microsoft Research. 2018-12-03. Archived from the original on 2019-11-12. Retrieved 2019-11-20.
- ^ Fan, Junfeng; Vercauteren, Frederik (2012). "Somewhat Practical Fully Homomorphic Encryption".
{{cite journal}}
: Cite journal requires|journal=
(help) - S2CID 3164123.