Skip to content

Huelse/SEAL-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 update && sudo apt-get install g++ make cmake git python3 python3-dev python3.6-pip

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

cd SEAL/native/src
cmake .
make

cd src
pip3 install -r requirements.txt

# Check the path at first
# Setuptools (Recommend)
cd src
python3 setup.py build_ext -i
# or install
python3 setup.py install

# CMake (Optional)
mkdir build
cd build
cmake ..
make

setuptools docs

pybind11 docs

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.

cd src
python3 setup.py build_ext -i
# or install
python3 setup.py install

Microsoft official video SEAL in windows.

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 Progress
1_bfv_basics.cpp 1_bfv_basics.py Encrypted modular arithmetic using the BFV scheme Finished
2_encoders.cpp 2_encoders.py Encoding more complex data into Microsoft SEAL plaintext objects Finished
3_levels.cpp 3_levels.py Introduces the concept of levels; prerequisite for using the CKKS scheme Finished
4_ckks_basics.cpp 4_ckks_basics.py Encrypted real number arithmetic using the CKKS scheme Finished
5_rotation.cpp 5_rotation.py Performing cyclic rotations on encrypted vectors in the BFV and CKKS schemes Finished
6_performance.cpp 6_performance.py Performance tests for Microsoft SEAL Finished

Future

  • SEAL 3.4 or higher support

About

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

Email: huelse@oini.top

Contributing

Sponsor this project

Contributors 7