Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Microsoft SEAL 4.X For Python

License

NotificationsYou must be signed in to change notification settings

Huelse/SEAL-Python

Repository files navigation

MicrosoftSEAL 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

    Recommend: Clang++ (>= 10.0) or GNU G++ (>= 9.4), CMake (>= 3.16)

    # Optionalsudo apt-get install git build-essential cmake python3 python3-dev python3-pip# Get the repository or download from the releasesgit clone https://github.com/Huelse/SEAL-Python.gitcd SEAL-Python# Install dependenciespip3 install numpy pybind11# Init the SEAL and pybind11git submodule update --init --recursive# Get the newest repositories (dev only)# git submodule update --remote# Build the SEAL lib without the msgsl zlib and zstandard compressioncd SEALcmake -S. -B build -DSEAL_USE_MSGSL=OFF -DSEAL_USE_ZLIB=OFF -DSEAL_USE_ZSTD=OFFcmake --build buildcd ..# Run the setup.py, the dynamic library will be generated in the current directorypython3 setup.py build_ext -i# Testcp seal.*.so examplescd examplespython3 4_bgv_basics.py

    Build examples:-DSEAL_BUILD_EXAMPLES=ON

    More cmake options

  • Windows

    Visual Studio 2019 or newer is required. x64 support only! And use thex64 Native Tools Command Prompt for VS command prompt to configure and build the Microsoft SEAL library. It's usually can be found in your Start Menu.

    # Run in "x64 Native Tools Command Prompt for VS" command promptcmake -S. -B build -G Ninja -DSEAL_USE_MSGSL=OFF -DSEAL_USE_ZLIB=OFFcmake --build build# Buildpip install numpy pybind11python setup.py build_ext -i# Testcp seal.*.pyd examplescd examplespython 4_bgv_basics.py

    Microsoft SEAL officialdocs.

  • Docker

    requires:Docker

    To build source code into a docker image (from this directory):

    docker build -t huelse/seal -f Dockerfile.

    To use the image by running it as an interactive container:

    docker run -it huelse/seal

Note

  • Serialize

    See more inexamples/7_serialization.py, here is a simple example:

    cipher.save('cipher')load_cipher=Ciphertext()load_cipher.load(context,'cipher')# work if the context is valid.

    Supported classes:EncryptionParameters, Ciphertext, Plaintext, SecretKey, PublicKey, RelinKeys, GaloisKeys

  • Other

    There are a lot of changes in the latest SEAL lib, we try to make the API in python can be used easier, but it may remain some problems unknown, if any problems or bugs, reportissues.

    Email:topmaxz@protonmail.com

FAQ

  1. ImportError: undefined symbol

    Build a shared SEAL librarycmake . -DBUILD_SHARED_LIBS=ON, and get thelibseal.so,

    then change the path insetup.py, and rebuild.

  2. ImportError: libseal.so... cannot find

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

    b. add/usr/local/lib or theSEAL/native/lib to/etc/ld.so.conf and refresh itsudo ldconfig

    c. build in cmake.

  3. BuildError:

    1. C++17 at least

    2. x86_64 is required, whichx86_32 is not supported

  4. ModuleNotFoundError: No module named 'seal'

    The.so or.pyd file must be in the current directory, or you haveinstall it already.

  5. Windows Error LNK2001, RuntimeLibrary and MT_StaticRelease mismatch

    Onlyx64 is supported, Choosex64 Native Tools Command Prompt for VS.

  6. Warning about building the dynamic library with static library in MacOS, etc.

    1. Build a shared SEAL library by adding a CMake option-DBUILD_SHARED_LIBS=ON

    2. Editextra_objects in setup.py to*.dylib or else.

Contributing

Sponsor this project

    Contributors7


    [8]ページ先頭

    ©2009-2025 Movatter.jp