Simple Encrypted Arithmetic Library – SEAL

Simple Encrypted Arithmetic Library – 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. SEAL uses the Microsoft Research License Agreement, and is free for research use.

News

7/21/2017: SEAL has found a new home

SEAL is now available at http://sealcrypto.visualstudio.com. To get access, send us an email at sealcrypto@microsoft.com, include an email address associated to your Microsoft Live Account, and tell us briefly what you are planning on using SEAL for. SEAL v2.3 will be available only through the new repository.

 

6/4/2017: SEAL v2.2 released

SEAL v2.2 has been released. It includes the changes from the experimental branch, and many other improvements. We have big plans for major improvements to be implemented this summer, so stay tuned!

 

10/13/2016: Experimental Branch

A new experimental branch has been created. This branch will get much more frequent updates than the master branch, but these updates may not have been tested as thoroughly as the code in the master branch, may introduce frequent API changes, and may contain incomplete functionality. This first experimental commit contains some significant performance improvements over SEAL v2.1.

 

9/30/2016: SEAL v2.1 released

Again a new version of SEAL has been released. This is a fairly large update, which focuses mostly on performance, but also introduces some small API changes.

To accompany the release and to explain the changes in SEAL v2.1, we have released a new version of the documentation, available here.

Download

To get access to SEAL, please send us an email at sealcrypto@microsoft.com, include an email address associated to your Microsoft Live Account, and tell us briefly what you are planning on using SEAL for. We will then give you access to the git repository available through http://sealcrypto.visualstudio.com.

Documentation

A detailed manual for SEAL v2.2 is available here.

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.

License

Microsoft Research License Agreement for Simple Encrypted Arithmetic Library – SEAL

This Microsoft Research License Agreement, including all exhibits (“Agreement”) is a legal agreement between you and Microsoft Corporation (or based on where you live, one of its affiliates). Please read them. They apply to the Microsoft Research software named above, which may include source code and any associated materials, text or speech files, associated media and “online” or electronic documentation and any updates we provide in our discretion (together, the “Software”). The terms also apply to any Microsoft (i) updates, (ii) supplements, (iii) internet-based services, and (iv) support services for this Software, unless other terms accompany those items. If so, those terms apply.
By agreeing to this Agreement and/or by using the Software, you accept these terms. If you do not accept them, do not use the Software. If you comply with these license terms, you have the rights below.
1. SCOPE OF RIGHTS.
a. License Grant. You may use, copy, modify, create derivative works, and distribute the Software for non-commercial purposes, subject to the restrictions in this Agreement. Examples of non-commercial uses are teaching, academic research, public demonstrations and personal experimentation.
b. Publication. You may publish (or present papers or articles) on your results from using the Software.
2. DISTRIBUTION REQUIREMENTS:
a. If you distribute the Software or any derivative works of the Software, you will distribute them under the same terms and conditions as in this license, and you will not grant other rights to the Software or derivative works that are different from those provided by this Agreement.
b. If you have created derivative works of the Software, and distribute such derivative works, you will cause the modified files to carry prominent notices so that recipients know that they are not receiving the original software. Such notices must state: (i) that you have changed the software; and (ii) the date of any changes.
3. LICENSE TO MICROSOFT. In the event you contribute code or other materials to the Simple Encrypted Arithmetic Library – SEAL project, Microsoft is granted back, without any restrictions or limitations, a non-exclusive, perpetual, irrevocable, royalty-free, assignable and sub-licensable license, to reproduce, publicly perform or display, install, use, modify, post, distribute, make and have made, sell and transfer such contributions, and any other modifications to and/or derivative works of the Software source code or data, for any purpose.
4. SCOPE OF LICENSE. The Software is licensed, not sold. This Agreement only gives you some rights to use the Software. Microsoft reserves all other rights. The patent rights, if any, granted to you in this Agreement only apply to the Software, not to any derivative works you make. In using the Software, you must comply with any technical limitations in the Software that may only allow you to use it in certain ways. You may not:
a. Publish the Software for others to copy;
b. Rent, lease or lend the Software; or
c. Transfer the Software or this Agreement to any third party.
5. FEEDBACK. Any feedback about the Software provided by you to us is voluntarily given, and Microsoft shall be free to use the feedback as it sees fit without obligation or restriction of any kind, even if the feedback is designated by you as confidential.
6. TERM; TERMINATION. The term of this Agreement will commence upon your acceptance of these license terms and will continue unless terminated earlier as provided herein. If you breach this Agreement or if you sue Microsoft or any other party over patents that you think may apply to or read on the Software or anyone’s use of the Software, this Agreement (and your license and rights obtained herein) terminate automatically. If this Agreement is terminated, you must cease using and distributing any derivative works or modifications of the Software. Any sections that are intended to survive termination of this Agreement shall survive.
7. EXPORT RESTRICTIONS. The Software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
8. ENTIRE AGREEMENT. This Agreement, any exhibits, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the Software and support services.
9. SEVERABILITY. If any court of competent jurisdiction determines that any provision of this Agreement is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect.
10. GOVERNING LAW AND VENUE. This Agreement is governed by and construed in accordance with the laws of the state of Washington, without reference to its choice of law principles to the contrary. Each party hereby consents to the jurisdiction and venue of the state and federal courts located in King County, Washington, with regard to any suit or claim arising under or by reason of this Agreement.
11. LEGAL EFFECT. This Agreement describes certain legal rights. You may have other rights under the laws of your country. This Agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
12. NO ASSIGNMENT. You may not assign this Agreement or any rights or obligations hereunder, except with Microsoft’s express written consent. Any attempted assignment in violation of this section will be void.
13. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.

Internships

We are always looking for talented Ph.D. student interns to work with us on the SEAL project, and related homomorphic encryption research. If you are interested in a fun and productive 12-week internship at Microsoft Research, send us an email at sealcrypto@microsoft.com. Internships can take place at any time of the year.

 

Current and past interns:

Nathan Dowlin (Princeton University) Rachel Player (Royal Holloway, University of London)
Gizem Cetin (Worcester Polytechnic Institute) Yuhou (Susan) Xia (Princeton University)
Peter Rindal (Oregon State University) Kyoohyung Han (Seoul National University)
Zhicong Huang (EPFL) Amir Jalali (Florida Atlantic University)

Contact Us

If you have any questions, suggestions, comments, or bug reports, please contact us by emailing sealcrypto@microsoft.com.