SEAL在Python上的接口[pyseal]


pyseal

简介

这是我开发的一个接口库,主要是将最新版的SEAL库对接到Python上来。
现已在Github上开源,有兴趣的朋友可以看看Huelse/pyseal

SEAL库的全称是简单加密算术库,也是同态加密库的一员
其最大电路深度在初始化的时候就已确定,很适合不太了解密码学的人员使用。
全同态加密最大的特点在于其支持密文下的加减乘和旋转运算,保证了数据的安全性。
尤其是在大数据云计算环境下,全同态加密是保护数据的最佳手段。
国外对全同态加密方案的研究也在不断深入,希望其发展会越来越好。

编译

环境要求:
CMake (>= 3.10), GNU G++ (>= 6.0) or Clang++ (>= 5.0), Python (>=3.6.8)
sudo apt-get update && sudo apt-get install g++ cmake git python3 python3-dev python3.6-pip
git clone https://github.com/Huelse/pyseal.git

1.SEAL

cd SEAL/native/src
cmake .
make
make install

2.pybind11

pip3 install pytest

cd pybind11
mkdir build
cd build
cmake ..
make check -j 4
make install

3.pyseal

cd src
pip3 install -r requirements.txt

python3 setup.py build_ext -i

其他说明:
如果从SEAL官方库克隆一个最新版的,记得要在seal/ciphertext.h第632行左右加上一个方法,如下

/**
Set the scale.
*/
inline void set_scale(double scale)
{
  scale_ = scale;
}

这也是本接口对SEAL的唯一一处修改。
当然除了可以用Setuptools编译,也可以用CMake编译,
我已经写好了CMakelists.txt只要SEAL和pybind11安装好了就行。

测试

cd tests
python3 [example_name].py
.so动态链接库需要指定好位置,一般放当前目录tests下即可。

介绍与使用到这就差不多了,如有问题欢迎指正。

声明:有限可能|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - SEAL在Python上的接口[pyseal]


Something for nothing