# microsoft/seal

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-seal).**

3,985 stars · 772 forks · C++ · MIT

## Links

- GitHub: https://github.com/microsoft/SEAL
- Homepage: https://www.microsoft.com/en-us/research/group/cryptography-research/
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-seal.md

## Topics

`cryptography` `encryption` `homomorphic-encryption`

## Description

SEAL is a homomorphic encryption library and C++ cryptography framework that enables mathematical operations on encrypted data without requiring decryption. It provides a toolset for performing additions and multiplications on encrypted integers and complex numbers to support privacy-preserving computation.

The framework implements the BFV and CKKS schemes, allowing for both modular arithmetic on encrypted integers and approximate arithmetic on fixed-precision floating-point numbers. It includes specialized wrappers to integrate these cryptographic workflows into .NET environments and supports cross-platform deployment for Android, iOS, and WebAssembly.

The library manages computational precision and security through ciphertext moduli switching, noise control, and the validation of cryptographic parameters against security standards. It also provides utilities for ciphertext compression and the creation of encrypted storage architectures where the service provider cannot access the decryption keys.

## Tags

### Security & Cryptography

- [Homomorphic Encryption](https://awesome-repositories.com/f/security-cryptography/homomorphic-encryption.md) — Implements homomorphic encryption schemes (BFV, CKKS) to allow computation on encrypted data.
- [C++ Cryptography Frameworks](https://awesome-repositories.com/f/security-cryptography/c-cryptography-frameworks.md) — Provides a high-performance C++ codebase for secure computation and ciphertext manipulation.
- [Ciphertext Noise Management](https://awesome-repositories.com/f/security-cryptography/ciphertext-noise-management.md) — Uses modulus-switching to reduce the scale of ciphertext coefficients and maintain computational precision.
- [Homomorphic Ciphertext Execution](https://awesome-repositories.com/f/security-cryptography/ciphertext-transformations/homomorphic-ciphertext-execution.md) — Performs mathematical operations directly on ciphertexts to maintain privacy during processing. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal))
- [Moduli Switching](https://awesome-repositories.com/f/security-cryptography/ciphertext-transformations/moduli-switching.md) — Implements ciphertext moduli switching to reduce noise growth and maintain precision during complex homomorphic computations. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal/release-news/))
- [Encrypted Arithmetic](https://awesome-repositories.com/f/security-cryptography/homomorphic-encryption/encrypted-arithmetic.md) — Executes additions and multiplications on encrypted integers and complex numbers without decryption. ([source](https://cdn.jsdelivr.net/gh/microsoft/seal@main/README.md))
- [Approximate](https://awesome-repositories.com/f/security-cryptography/homomorphic-encryption/encrypted-arithmetic/approximate.md) — Supports calculations on floating-point numbers with controlled precision via the CKKS scheme. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal/release-news/))
- [Encrypted Integer Computation](https://awesome-repositories.com/f/security-cryptography/homomorphic-encryption/encrypted-integer-computation.md) — Implements modular arithmetic specifically for encrypted integers using the BFV scheme.
- [Homomorphic Scheme Implementations](https://awesome-repositories.com/f/security-cryptography/homomorphic-encryption/encrypted-integer-computation/homomorphic-scheme-implementations.md) — Provides a specialized toolkit for computing on encrypted data using the BFV and CKKS schemes.
- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — Provides a framework where data remains encrypted throughout its entire computational lifecycle. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal))
- [Cross-Platform Encryption Utilities](https://awesome-repositories.com/f/security-cryptography/cross-platform-encryption-utilities.md) — Provides a consistent encryption toolset deployable across multiple operating systems and runtimes.
- [Cryptographic Parameter Validations](https://awesome-repositories.com/f/security-cryptography/cryptographic-parameter-validations.md) — Ensures encryption keys and ciphertexts are compatible by matching them against shared security parameters.
- [Parameter Validation](https://awesome-repositories.com/f/security-cryptography/cryptographic-verification/parameter-validation.md) — Provides mechanisms to check the correctness of plaintexts and keys against a specific context to ensure compatibility. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal/release-news/))
- [Encrypted Storage](https://awesome-repositories.com/f/security-cryptography/encrypted-storage.md) — Enables the creation of storage architectures where the service provider cannot access data content due to user-held keys. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal/))
- [Encrypted Storage Solutions](https://awesome-repositories.com/f/security-cryptography/encrypted-storage-solutions.md) — Enables the creation of storage systems where the provider cannot access the content.
- [Strength Validations](https://awesome-repositories.com/f/security-cryptography/security-standards/strength-validations.md) — Includes mechanisms to validate encryption parameters against industry security standards to ensure minimum strength requirements. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal/release-news/))

### Data & Databases

- [Privacy-Preserving Computation Frameworks](https://awesome-repositories.com/f/data-databases/data-engineering/distributed-compute-frameworks/distributed-computing-engines/privacy-preserving-compute-engines/privacy-preserving-computation-frameworks.md) — Provides a framework where data stays encrypted throughout its lifecycle and service providers never access keys.

### Scientific & Mathematical Computing

- [Encrypted](https://awesome-repositories.com/f/scientific-mathematical-computing/floating-point-arithmetic/encrypted.md) — Implements the CKKS scheme to enable fixed-precision floating-point operations on ciphertexts.
- [Secure](https://awesome-repositories.com/f/scientific-mathematical-computing/floating-point-arithmetic/secure.md) — Performs calculations on encrypted floating-point numbers with controlled precision for sensitive data.
- [Residue Number System Implementations](https://awesome-repositories.com/f/scientific-mathematical-computing/polynomial-arithmetic/residue-number-system-implementations.md) — Implements RNS-based polynomial arithmetic to perform modular operations using standard machine-word integers.

### Programming Languages & Runtimes

- [C-API Wrappers](https://awesome-repositories.com/f/programming-languages-runtimes/c-api-wrappers.md) — Provides object-oriented wrappers to expose C++ cryptographic primitives to .NET environments.
- [Cross-Platform Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/cross-platform-compilers.md) — Supports compiling the library for Android, iOS, WebAssembly, and .NET Standard. ([source](https://cdn.jsdelivr.net/gh/microsoft/seal@main/README.md))
- [Cryptographic Wrappers](https://awesome-repositories.com/f/programming-languages-runtimes/net-ecosystem-integrations/cryptographic-wrappers.md) — Provides specialized .NET language wrappers to integrate homomorphic encryption workflows into managed environments. ([source](https://www.microsoft.com/en-us/research/project/microsoft-seal/news-and-awards/))
