Pyfhel是一个基于Python的强大的同态加密库,可以实现各种高级的加密算法,包括BFV、BGV和CKKS等。Pyfhel实现了多个同态加密的功能,例如加法、乘法、求幂以及标量积等。该库可应用于简单的同态加密算法演示以及机器学习算法等复杂问题。
下面介绍如何在macOS上安装Pyfhel库,Linux系统类似。
安装gcc
注意:不要使用系统自带的clang,这会导致安装Pyfhel报错
- macOS:
brew install gcc
- Ubuntu:
sudo apt install gcc g++
- macOS:
查看gcc版本,这里以gcc14版本为例。
gcc-14 -v
macOS用户还必须设置多个环境变量
1
2
3
4
5
6
7
8
9
10# Brew installs GCC in /opt/homebrew/bin on Apple Silicon and /usr/local/bin on Intel.
if [[ $(uname -m) = "arm64" ]]; then BREW_GCC_PATH="/opt/homebrew/bin"; else BREW_GCC_PATH="/usr/local/bin"; fi
# Set CC/CXX environment variables to the most recent GNU GCC
export CC="$BREW_GCC_PATH/$(ls $BREW_GCC_PATH | grep ^gcc-14 | sort -V -r | head -n 1)"
export CXX="$BREW_GCC_PATH/$(ls $BREW_GCC_PATH | grep ^g++-14 | sort -V -r | head -n 1)"
# Set MACOSX_DEPLOYMENT_TARGET to avoid version mismatch warnings
echo "MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion)" >> $GITHUB_ENV
echo "MACOSX_DEPLOYMENT_TARGET=${{ env.MACOSX_DEPLOYMENT_TARGET }}"
安装Python
注意:不要使用系统自带的python,因为它可能是使用clang编译的
brew install python
安装Pyfhel
pip install Pyfhel
安装最新版本
git clone --recursive https://github.com/ibarrond/Pyfhel.git pip install .
如果安装过程中有类似的报错
[Config.h - No such file or directory]
,可能系统中缺少libconfig-dev包brew install libconfig-dev
结语
Pyfhel是一个很有用的库,更多内容可以自行查阅:
Pyfhel库