Yesterday, Microsoft with the goal to standardize homomorphic encryption, open sourced Microsoft Simple Encrypted Arithmetic Library (Microsoft SEAL) under the MIT License. It is an easy-to-use homomorphic encryption library developed by researchers in the Cryptography Research group at Microsoft.
Microsoft SEAL was first released in 2015 to provide “a well-engineered and documented homomorphic encryption library, free of external dependencies, that would be easy for both cryptography experts and novice practitioners to use.”
Industries have moved over to the cloud for data storage because it is convenient. But this does raise some privacy concerns. In order to get practical guidance on our decision making that cloud and machine learning provide, we need to share our personal information. The traditional encryption schemes do not allow running any computation on encrypted data. So we need to choose between storing our data encrypted in the cloud and downloading it to perform any useful operations or providing the decryption key to service providers which risks our privacy.
But these concerns are solved by the homomorphic encryption approach. Homomorphic encryption is a cryptographic mechanism in which specific types of mathematical operations are carried out on the ciphertext, instead of on the actual data. This mechanism then generates an encrypted result, which on decryption, matches the result of operations performed on the plaintexts. In a nutshell, it produces the same output that will be obtained from decrypting the operated cipher text as from simply operating on the initial plain text.
Some of the key advantages of using Microsoft SEAL are: it does not have any external dependencies and since it is written in standard C++, compiling it in many different environments is easy. At its core, it makes use of two encryption schemes: the Brakerski/Fan-Vercauteren (BFV) scheme and the Cheon-Kim-Kim-Song (CKKS) scheme.
Along with the license change, the team have also added few updates in the latest release SEAL 3.1.0, some of which are listed here:
- Support for 32-bit platforms
- Google Test framework for unit tests
- To configure SEAL on Windows, Visual Studio now uses CMake
- Generating Galois keys for specific rotations is easier
- New EncryptionParameterQualifiers flag is added which indicates HomomorphicEncryption.org security standard compliance for parameters
- Now, secret key data is cleared automatically from memory by destructors of SecretKey, KeyGenerator, and Decryptor
To read more in detail, check out Microsoft’s official announcement.