PAGES
← all tools
◆ General Utilities & Libraries

Microsoft SEAL

v4.3.0 open-source

Open-source homomorphic encryption library supporting BFV, BGV, and CKKS schemes for computing on encrypted integers and real numbers.

Summary

Microsoft SEAL is an open-source (MIT licensed) homomorphic encryption library that lets applications compute directly on encrypted data, supporting the BFV, BGV, and CKKS schemes for encrypted integers and real numbers. It is a library, written in standard C++ with bindings for other environments, that developers link into their own code rather than a standalone service. It is aimed at application developers and researchers building systems that must process sensitive data without ever decrypting it, such as privacy-preserving analytics or machine learning. It sits in the applied cryptography space, a category with few widely known alternatives outside academic and research libraries. Maintained by Microsoft's Cryptography Research Group since 2018, with 69 contributors and a release only 17 days ago, it is actively developed, and its latest version fixes untrusted-input handling and memory-safety issues, making the upgrade a security-relevant one rather than routine maintenance.

Open-source homomorphic encryption library supporting BFV, BGV, and CKKS schemes for computing on encrypted integers and real numbers.

How Microsoft SEAL helps

Can a service compute on sensitive numeric data without ever seeing it unencrypted?

encrypts integers or real numbers under BFV, BGV, or CKKS before they leave the caller's code, so the arithmetic performed downstream runs entirely on ciphertext and the result only decrypts correctly back at the source

Which arithmetic operations can a workload push into encrypted computation?

supports addition and multiplication directly on ciphertexts under the scheme chosen, so a design can be checked against BFV/BGV for exact integer results or CKKS for approximate real-number results before committing to one

Is this year's build against the library exposed to the security defect just fixed?

the CHANGES history and the 4.4 advisory identify the untrusted-input handling and memory-safety issues by version, so a linked copy can be checked against that version number to see if it predates the fix

Can a .NET or native C++ codebase share the same encrypted-computation logic?

ships as a C++ core with bindings, so the same ciphertexts and keys produced in one environment can be operated on from the other without re-implementing the scheme

Who else has touched the cryptographic code a project is trusting with sensitive data?

the maintained-since-2018 history and ongoing commit record from the Cryptography Research Group show how many contributors and how much active review has passed over the codebase being linked in

all 11 features, with the evidence for each →

Languages

Not documented

Features

11 capabilities

Built from Microsoft SEAL's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date.

Compare with peers →

All capabilities 11 capabilities
Homomorphic encryption coefficient modulus limit shipped Supports larger coefficient moduli in homomorphic encryption schemes by increasing the maximum count. 6 releases · first seen Jan 2020

release

  • Increased SEAL_COEFF_MOD_COUNT_MAX from 64 to 256, allowing larger coefficient moduli in homomorphic encryption schemes. v4.1.0 · Jan 2023 · source · release history
  • Adds the enum value seal::scheme_type::bgv to select the new BGV encryption scheme v4.0.0 · Mar 2022 · source · release history
  • Adds BGV scheme [(PR 283)](https://github.com/microsoft/SEAL/pull/283) for homomorphic encryption capabilities v4.0.0 · Mar 2022 · source · release history
  • Deleted header file native/defaultparameters.h and removed DefaultParams class; default BFV moduli must now be accessed via CoeffModulus::BFVDefault(...) v3.3.0 · Jan 2020 · source · release history
  • SEALContext::Create() (C++) and constructor (C#) now accepts an optional security level based on the HomomorphicEncryption.org standard, defaulting to 128-bit v3.3.0 · Jan 2020 · source · release history
  • uint64_count_capacity and uint64_count methods removed from Ciphertext (replaced by int_array) v3.4.0 · Jan 2020 · source · release history
Modular reduction operations shipped Provides public API for modular reduction operations on encrypted data. 5 releases · first seen Jan 2020

release

  • Evaluator::mod_reduce_xxx() (native) and Evaluator::ModReduceXxx(...) (dotnet) add new public API for modular reduction operations. v4.1.0 · Jan 2023 · source · release history
  • Adds public API for modular reduction to the Modulus class. v3.6.0 · Dec 2020 · source · release history
  • Adds save_size, encrypt_symmetric_save, and relin_keys_save methods for direct memory buffer serialization v3.4.0 · Jan 2020 · source · release history
  • Adds Serialization class configured to use ZLIB compression for all serializable objects v3.4.0 · Jan 2020 · source · release history
  • Old serialized Microsoft SEAL objects are incompatible with the new format due to rewritten serialization using Serialization::SEALHeader v3.4.0 · Jan 2020 · source · release history
Build and packaging configuration shipped Provides configuration and automation for generating build artifacts, cross-platform frameworks, and custom package distributions from source. 4 releases · first seen Apr 2026

release

  • NuGet.org is no longer updated; existing consumers relying on the latest nuget.org version will not receive updates and must switch to building packages from source v4.3.0 · Apr 2026 · source · release history
  • Adds cmake/ios_xcframework.cmake to build a single-command iOS/macOS libseal-<ver>.xcframework artifact v4.3.0 · Apr 2026 · source · release history
  • Drops official NuGet.org publishing; users must now build their own NuGet package from source v4.3.0 · Apr 2026 · source · release history
  • Adds CMakePresets.json for Windows, Linux, and macOS development v4.3.0 · Apr 2026 · source · release history
CMake dependency configuration shipped Allows configuring how the build system resolves external dependencies, including silent handling when the SEAL library is not found. 2 releases · 1 other source · first seen Jan 2020

release

example

  • Suppress CMake errors when SEAL is missing during configuration. find_package(seal QUIET) v3.3.2 · Jan 2020 · source
PRNG implementation for cryptography shipped Implements pseudo-random number generation using Shake256 XOF for cryptographic security. 2 releases · 1 other source · first seen Dec 2020

release

  • Added support to build Microsoft SEAL with Intel HEXL as an optional dependency v3.6.3 · Apr 2021 · source · release history
  • Adds Shake256PRNG and Shake256PRNGFactory classes for pseudo-random number generation using the Shake256 (FIPS-202) XOF. v3.6.0 · Dec 2020 · source · release history

example

  • Switch to Shake256 for PRNG in SEALNet (C#). var prng = new Shake256PRNG(); var factory = new Shake256PRNGFactory(prng); var context = Context::Create(SEAL_CIPHERSET, 0, factory.Create()); v3.6.0 · Dec 2020 · source
Serialization and compression options shipped Provides flexible serialization of cryptographic objects with support for Zstandard compression, replacing previous ZLIB-based formats and API structures. 3 releases · first seen Apr 2020

release

  • Adds support for Zstandard compression as an alternative to ZLIB, offering 20–30x performance improvement. v3.6.0 · Dec 2020 · source · release history
  • Adds Serializable class to wrap Ciphertext, RelinKeys, and GaloisKeys for flexible serialization and compression. v3.5.0 · Apr 2020 · source · release history
  • KeyGenerator::[relin|galois]_keys_save and Encryptor::encrypt_[zero_]symmetric_save functions are removed and replaced with overloads of KeyGenerator::[relin|galois]_keys and Encryptor::encrypt_[zero_]symmetric that return Serializable objects. v3.5.0 · Apr 2020 · source · release history
Noise distribution configuration shipped Supports switching encryption error sampling between Centered Binomial Distribution and Gaussian distribution via CMake options. 1 release · 1 other source · first seen Dec 2020

release

  • Adds SEAL_USE_GAUSSIAN_NOISE CMake option to switch encryption error sampling from Centered Binomial Distribution (CBD) to Gaussian distribution. v3.6.0 · Dec 2020 · source · release history

example

  • Enable Gaussian noise sampling via CMake for NIST PQC compatibility. cmake -DSEAL_USE_GAUSSIAN_NOISE=ON .. v3.6.0 · Dec 2020 · source
Symmetric key encryption support shipped Allows the Encryptor to be constructed with a secret key for symmetric encryption operations. 1 release · 1 other source · first seen Jan 2020

release

  • Enables Encryptor construction with a secret key for symmetric key encryption v3.4.0 · Jan 2020 · source · release history

example

  • Create an Encryptor instance for symmetric key encryption using a secret key directly Encryptor encryptor(context, secret_key); v3.4.0 · Jan 2020 · source
.NET SDK and Visual Studio version support shipped Supports updated versions of the .NET SDK and Visual Studio for development compatibility. 1 release · first seen Mar 2022

release

  • Updates .NET SDK support to version 6.0.x and adds support for Visual Studio 17 2022 v3.7.3 · Mar 2022 · source · release history
Branching elimination optimization shipped Allows eliminating branching in critical functions to prevent issues with maliciously inserted compiler flags. 1 release · first seen Mar 2022

release

  • Adds SEAL_AVOID_BRANCHING CMake option to eliminate branching in critical functions for use with maliciously inserted compiler flags v3.7.3 · Mar 2022 · source · release history
Build output isolation shipped Ensures all generated files and dependencies are created strictly within the build directory. 1 release · first seen Mar 2022

release

  • Ensures all output files, including third-party dependencies and Visual Studio projects/solutions, are created in the build directory v3.7.3 · Mar 2022 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for Microsoft SEAL, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail Microsoft SEAL puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Commercials

pricing & packaging history · Microsoft vendor page

16 readings of Microsoft's pricing page since Mar 2022, with 3 relaunches of its plan lineup — each one dated, compared with the reading before it, and explained for someone buying the tool.

Pricing and packaging history is included with Researcher and Business. See how every vendor we track sells, and how that has changed over time, using data we don't publish anywhere else.

See plans →

Website history

microsoft.com, every change

Microsoft's home page and 40 more pages as they looked each month from October 2021 to October 2026: 1520 renders, 335 changes of tagline or palette. Step through them, play them, or put any two months side by side.

Website history is included with Researcher and Business.

See plans →

Releases

Show

13 entries

  1. April 20261
  2. January 20231
  3. March 20222
  4. May 20211
  5. April 20211
  6. December 20201
  7. July 20201
  8. May 20201
  9. April 20201
  10. January 20203
    Show

    13 entries

    Project health

    Issue, contributor and maintainer activity in microsoft/SEAL, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 7 +3 vs prior 12 months
    2. Maintainers 2 +1 joined · −1 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close 19 days first maintainer reply 19 days
    6. Open backlog 107 of 600 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 107
    3. Contributors / month 1
    4. Commits / month 1
    5. Stars 4,037
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →