用于同态加密库的python
Pyfhel的Python项目详细描述
Pyfhel[v2.0.1]
链接]。示例很快就会出现。
依赖项:有三种可能的后端,它们都是C++中的库:
摘要
pythonf或hmomorphicencryptionl库,pyfhel实现了多个同态加密库的功能,如加法、乘法,python中的指数运算或标量积。pyfhel使用类似于普通算术的语法(+,-,*)。这个库对于简单的同态加密演示和复杂的问题(如机器学习算法)都很有用。
pyfhel是建立在afhel之上的,是c++中的一个abstractionhmomorphicencryptionl库。afhel作为所有三个后端的通用api。此外,本项目还包含一系列关于"直升机基地"的演示和测试。
最后但并非最不重要的一点是,我们将编译和安装的makefilehelib、seal和afhel作为ubuntu中的共享库,然后可以使用标记-lhelib
链接到其他c++程序,-lseal
和-lafhel
安装和卸载
此项目已上载到pypi。以便从源安装(警告!编译需要几分钟,耐心点!,运行:
> pip install Pyfhel
在本地,您可以克隆此存储库并通过运行:
> pip install .
要卸载,只需运行:
> pip uninstall Pyfhel
或者,也只有对于ubuntu操作系统,在克隆之后,您可以使用这个项目上的makefile将所有库安装并编译为共享(.so)。为此,请在pyfhel
目录中运行:
> ./configure # Just puts all makefiles in their correct directories
> make
> sudo make install
你也可以只安装密封件和AFHEL。只需在pyfhel
目录中运行make seal afhel
,在pyfhel/afhel
或pyfhel/seal
目录中运行make install。make file还有
clean
和uninstall
命令,以及make sourcefilename_x
命令来编译和链接源文件(.cpp)。
开发通知
更改cython文件后,需要在重新安装pyfhel之前编译它们。 为此,请运行:
> python setup.py build --CYTHONIZE
项目内容
pyfhel/
包含pyfhel、afhel、seal、palisade和helib的源代码。文档/
项目过时的文档:- doc.md:过时的项目基本文档。
- doc_api.md:pyfhel中所有可用类和方法的过时综合列表。
helib/
:最新的文档和图像,用于解释这个未记录的库。
pyfhel/demos_tests
,演示和测试的集合。今天已经过时了。检查test.py
!pyfhel/.makefiles/makefile\u helib
,将helib编译并安装为动态库的生成文件(-lhelib
)。pyfhel/.makefiles/makefile\u seal
,将seal编译并安装为动态库的生成文件(-lseal
)。
作者和致谢
- 作者:alberto ibarrondo@ibarrond与劳伦特·戈麦斯(SAP)合作,与欧洲经济共同体(Eurecom)合作(melek onen)。
- 最新版本:2018年8月3日
这个图书馆最初是为Eurecom的"大数据分析隐私"项目创建的。软件基于shai halevi的helib,通过grant frame对heide进行触摸。以及由于Matheus S.H.Cruz对加法的分析而提高了性能。根据他们各自的许可证,我在本节中列出了他们的名字。没有他们这个项目是不可能的。有关任何法律免责声明,请与此存储库的所有者联系。同样,同一类型的许可证(GNU GPLV3)也适用于AFHEL&PYFHEL,如有规定。
法律免责声明
pyfhel可以用任何你认为合适的方式使用、修改、复制。这个项目是在gnu gplv3许可(许可文件)下开源的,因此使用pyfhel的开发人员必须遵守以下要求:
承认并提及pyfhel在任何派生开发中的原始作者,即
ibarrondo、laurent(sap)和onen(eurecom)
提供完全相同的许可,允许使用pyfhel复制、分发和/或修改任何软件的合法许可。因此,任何使用pyfhel的软件都必须保持开源。