SEAL-Python安装
SEAL-Python简介
Microsoft SEAL
是一个易于使用的开源(MIT 许可)同态加密库,由 Microsoft 的密码学研究小组开发。而 SEAL-Python
是SEAL
的python版本,能方便用python实现同态加密功能。我们在linux
系统和Windows
系统下实现安装,linux
系统是用的Ubuntu22
版(当然我用的Windows
下的Ubuntu
的子系统)。下面我们分系统介绍如何安装SEAL-Python
。
Ubuntu系统
基础环境
- 平台:Ubuntu22(只要是Ubuntu系统就行)
- 环境需求:Clang++ (>= 10.0) 或 GNU G++ (>= 9.4)、CMake (>= 3.16)、git。
- 安装上述内容:
sudo apt-get install clang sudo apt-get install cmake sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install git
- 安装上述内容:
安装步骤
- 安装
Python
。sudo apt-get install git build-essential cmake python3 python3-dev python3-pip
- 从SEAL-python下载。
git clone https://github.com/Huelse/SEAL-Python.git cd SEAL-Python
- 安装
pybind11
和numpy
pip3 install numpy pybind11
- 安装
SEAL
# 下载相关依赖 git submodule update --init --recursive # 进入SEAL文件夹,安装SEAL cd SEAL cmake -S . -B build -DSEAL_USE_MSGSL=OFF -DSEAL_USE_ZLIB=OFF cmake --build build cd ..
- 安装
SEAL-Python
python3 setup.py build_ext -i
测试
cp seal.*.so examples
cd examples
python3 4_bgv_basics.py
运行命令会打印一个bgv方案的简单例子,如果能正确运行,则安装成功。
Windows系统
Windows系统下安装SEAL-Python
相对来说更加复杂。
基础环境
- 平台:Windows11
- 环境需求:Visual Studio 2022(2019以上)、git、python。
Visual Studio 2022
和git
参考链接: 在Windows环境下安装SEAL同态加密库。
python
比较简单,自行安装。
安装步骤
-
下载
SEAL-Python
和SEAL
。
下载地址:SEAL-Python
下载地址:SEAL下载时也可以通过链接直接下载所有源码,并且能保证正确的目录结构。
-
安装
SEAL
-
需要 Visual Studio 2019 或更高版本。仅支持 x64!并使用VS 命令提示符的 x64 Native Tools Command Prompt 来配置和构建 Microsoft SEAL 库。
将目录调整到SEAL-Python
的解压目录。 -
进入
SEAL
文件夹# 进入SEAL文件夹,安装SEAL cd SEAL cmake -S . -B build -DSEAL_USE_MSGSL=OFF -DSEAL_USE_ZLIB=OFF cmake --build build cd ..
-
-
安装
pybind11
和numpy
pip3 install numpy pybind11
-
安装
SEAL-Python
python3 setup.py build_ext -i
注:在安装时可以通过以下步骤将库安装到
Anaconda
环境中。//激活环境 activate your_environment //进入到setup.py文件目录下执行命令 python setup.py build python setup.py install
pip list
打印结果中包含seal库。
测试
copy seal.*.so examples
cd examples
python3 4_bgv_basics.py
运行命令会打印一个bgv方案的简单例子,如果能正确运行,则安装成功。
注:这是官方给的例子,他依赖生成的后缀文件.so
,所以并不是所有地方运行都能完成,必须要保证运行目录下有这个文件才行。如果是安装到库,则使用from seal import *
直接使用,以下是4_bgv_basics
文件内容和运行成功截图,一定要保证环境正确。