★ wanayoo — archive 1999 https://github.com/Huelse/SEAL-PythonNouvelle recherche | Portail wanayoo
Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Microsoft SEAL For Python

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.

Contents

Build

Linux

CMake (>= 3.10), GNU G++ (>= 6.0) or Clang++ (>= 5.0), Python (>=3.6.8)

sudo apt-get install build-essential cmake python3 python3-dev python3-pip

git clone https://github.com/Huelse/SEAL-Python.git

# Build the seal lib at first
cd SEAL/native/src
cmake .
make

pip3 install -r requirements.txt

# Check the path if necessary
# Build in the current path (Recommend)
python3 setup.py build_ext -i
# or install
python3 setup.py install

Docs: setuptools pybind11

Windows

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.

# Same as above
# It must be inside x64 native tools command prompt
python3 setup.py build_ext -i

Microsoft official video SEAL in windows.

FAQ

  1. ImportError: undefined symbol

    Build a shared SEAL library cmake . -D SEAL_LIB_BUILD_TYPE=Shared, and get the libseal.so

    then change the lib path in setup.py or src/CMakeLists.txt, and rebuild.

  2. ImportError: libseal.so.3.4 cannot find

    a. sudo ln -s /path/to/libseal.so /usr/lib

    b. add /usr/local/lib or the SEAL/native/lib to /etc/ld.so.conf and refresh it sudo ldconfig

    c. build in cmake.

  3. BuildError: C++17 at least

Tests

cd tests

python3 [example_name].py

  • The .so file must be in the same folder, or you had install it already.

Getting Started

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
- 7_matrix_operations.py Encrypted matrix multiplication and transpose examples from paper

Future

  • pickle
  • microsoft gsl

About

This project is still testing now, if any problems(bugs), Issue please.

Email: huelse@oini.top

Contributing

You can’t perform that action at this time.