Microsoft SEAL is an easy-to-use open-source (MIT licensed) homomorphic encryption library developed by the Cryptography Research group at Microsoft.
pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code.
This is a python binding for the Microsoft SEAL library.
CMake (>= 3.10), GNU G++ (>= 6.0) or Clang++ (>= 5.0), Python (>=3.6.8)
sudo apt-get update && sudo apt-get install g++ make cmake git python3 python3-dev python3-pip
git clone https://github.com/Huelse/SEAL-Python.git
cd SEAL/native/src
cmake .
make
pip3 install -r requirements.txt
# Check the path at first
# Setuptools (Recommend)
python3 setup.py build_ext -i
# or install
python3 setup.py installDocs: setuptools pybind11
Visual Studio 2017 version 15.3 or newer is required to build Microsoft SEAL.
Open the SEAL/SEAL.sln in VS, config in x64, Release, WinSDK(17763, etc) mode and generate it.
python3 setup.py build_ext -i
# or install
python3 setup.py installMicrosoft official video SEAL in windows.
-
ImportError: undefined symbol
Build a shared SEAL library
cmake . -D SEAL_LIB_BUILD_TYPE=Shared, and get thelibseal.sothen change the lib path in
setup.pyorsrc/CMakeLists.txt, and rebuild. -
ImportError: libseal.so.3.4 cannot find
a.
sudo ln -s /path/to/libseal.so /usr/libb. add
/usr/local/libor theSEAL/native/libto/etc/ld.so.confand refresh itsudo ldconfigc. build in cmake.
cd tests
python3 [example_name].py
- The
.sofile must be in the same folder, or you hadinstallit already.
| C++ | Python | Description |
|---|---|---|
| 1_bfv_basics.cpp | 1_bfv_basics.py | Encrypted modular arithmetic using the BFV scheme |
| 2_encoders.cpp | 2_encoders.py | Encoding more complex data into Microsoft SEAL plaintext objects |
| 3_levels.cpp | 3_levels.py | Introduces the concept of levels; prerequisite for using the CKKS scheme |
| 4_ckks_basics.cpp | 4_ckks_basics.py | Encrypted real number arithmetic using the CKKS scheme |
| 5_rotation.cpp | 5_rotation.py | Performing cyclic rotations on encrypted vectors in the BFV and CKKS schemes |
| 6_performance.cpp | 6_performance.py | Performance tests for Microsoft SEAL |
- pickle
- microsoft gsl
This project is still testing now, if any problems(bugs), Issue please.
Email: huelse@oini.top
-
Professor: Dr. Chen