OpenMined/TenSEAL
A library for doing homomorphic encryption operations on tensors
What it solves
TenSEAL allows developers to perform mathematical operations on encrypted data without needing to decrypt it first. This ensures data privacy by allowing a server or service to process information (such as performing a dot product or matrix multiplication) while the data remains encrypted throughout the computation.
How it works
It is a Python library built on top of Microsoft SEAL, implementing homomorphic encryption (HE) schemes like BFV (for integers) and CKKS (for real numbers). It provides a tensor layer that allows users to treat encrypted data as vectors or N-dimensional tensors, supporting operations like element-wise addition, subtraction, multiplication, and matrix multiplication. The core operations are implemented in C++ for efficiency, while the Python API makes the library easy to use.
Who it’s for
Developers and researchers working on privacy-preserving machine learning and secure computation, specifically those who need to perform linear algebra operations on encrypted tensors.
Highlights
- Homomorphic Encryption Support: Supports both BFV and CKKS schemes for encrypted integers and real numbers.
- Tensor Operations: Provides
CKKSTensorandBFVTensorfor N-dimensional operations, including reshape, broadcast, and transpose. - Linear Algebra: Built-in support for dot products and vector-matrix multiplication.
- SEAL Integration: Provides full access to the underlying Microsoft SEAL API via
tenseal.sealapi. - Serialization: Ability to serialize contexts, keys, and encrypted tensors for storage or transmission.
Related
- Project
- Project
- Project
- Project
- Project