SEAL  by microsoft

HE library for homomorphic encryption (additions/multiplications on encrypted data)

created 6 years ago
3,843 stars

Top 13.0% on sourcepulse

GitHubView on GitHub
Project Summary

Microsoft SEAL is an open-source C++ library for homomorphic encryption, enabling computations on encrypted data. It targets developers and researchers needing to implement privacy-preserving computations, particularly in cloud environments, offering two main schemes (BFV/BGV for exact integer arithmetic, CKKS for approximate real/complex number arithmetic) with significant performance overhead.

How It Works

Microsoft SEAL implements the BFV, BGV, and CKKS homomorphic encryption schemes. These schemes allow specific operations (addition, multiplication) on encrypted data without decryption. The library manages the complex mathematical operations, including polynomial arithmetic and noise management, to ensure correct decryption of results. The CKKS scheme uses approximate arithmetic, requiring careful parameter selection and rescaling to maintain accuracy.

Quick Start & Requirements

  • Install: Via package managers (vcpkg, Homebrew, pkg) or NuGet for .NET. Manual build with CMake is also supported.
  • Prerequisites: C++17 compiler, CMake (>= 3.13). Optional: Intel HEXL for performance, ZLIB/Zstandard for compression.
  • Setup: Package manager installation is typically fast. Manual builds may take several minutes.
  • Docs: sealcrypto.org, Examples

Highlighted Details

  • Supports BFV, BGV (exact integer arithmetic), and CKKS (approximate real/complex arithmetic) schemes.
  • Optional Intel HEXL integration for significant performance gains on compatible Intel CPUs.
  • Includes a C++ wrapper (SEAL_C) and a .NET wrapper for cross-platform development.
  • Offers an experimental EVA compiler for simplifying CKKS programming in Python.

Maintenance & Community

  • Actively developed by Microsoft Research.
  • Community contributions are merged into main/master/contrib branches.
  • Related projects: EVA (CKKS compiler), SEAL-Embedded, APSI (PSI).

Licensing & Compatibility

  • MIT License. Permissive for commercial use and closed-source linking.

Limitations & Caveats

  • Homomorphic encryption has substantial performance and data size overhead; not suitable for all computations or large datasets.
  • CKKS scheme yields approximate results, requiring careful handling of precision.
  • Steep learning curve; understanding HE concepts and optimizing performance requires significant effort and study of examples.
  • Branching on encrypted data is not feasible.
Health Check
Last commit

4 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
92 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.