11个版本
0.2.8 |
|
---|---|
0.2.0 | 2024年6月26日 |
0.1.8 | 2024年6月21日 |
0.1.4 | 2024年5月18日 |
0.0.0 | 2024年3月18日 |
#181 in 密码学
850 每月下载
170KB
3K SLoC
关于OpenFHE-rs
☀️ OpenFHE-rs是FairMath和OpenFHE的合作项目。
🔔 请注意,该库是WIP,可能包含一些未完善的接口。如果您遇到任何问题或有任何建议,请随时在我们的Discord服务器上ping我们或在GitHub仓库中打开一个新问题。
OpenFHE-rs是OpenFHE库的Rust接口,该库以其全面的完全同态加密(FHE)方案而闻名,所有方案均使用C++实现。通过为OpenFHE提供Rust包装器,我们旨在使这些高级FHE功能易于Rust开发者使用。
无论您是开发安全数据处理应用还是关注隐私的工具,OpenFHE-rs都使您能够无缝地在Rust项目中利用OpenFHE的强大加密技术。
安装
要使用OpenFHE-rs,您需要安装几个依赖项,并按照核心OpenFHE库和Rust crate的安装步骤进行。
先决条件
请确保已安装以下依赖项
CMake>= 3.5.1
G++ >= 11.4
Rust>= 1.78
Git
安装过程
核心OpenFHE库安装
要构建和安装OpenFHE库,请按照以下步骤操作或参阅OpenFHE的安装文档。
- 克隆仓库
git clone https://github.com/openfheorg/openfhe-development.git
cd openfhe-development
- 配置CMake
cmake -B ./build -DBUILD_SHARED=ON .
- 构建和安装C++ OpenFHE库
make -C ./build -j$(nproc)
make -C ./build install
- 更新链接器缓存
sudo ldconfig
配置项目以使用crate
要在Rust项目中使用OpenFHE crate,请从crates.io将其添加为依赖项
cargo add openfhe
您还需要在您的build.rs
文件中添加一小段用于配置核心依赖项的代码
fn main
{
// linking openFHE
println!("cargo::rustc-link-arg=-L/usr/local/lib");
println!("cargo::rustc-link-arg=-lOPENFHEpke");
println!("cargo::rustc-link-arg=-lOPENFHEbinfhe");
println!("cargo::rustc-link-arg=-lOPENFHEcore");
// linking OpenMP
println!("cargo::rustc-link-arg=-fopenmp");
// necessary to avoid LD_LIBRARY_PATH
println!("cargo::rustc-link-arg=-Wl,-rpath=/usr/local/lib");
}
要构建和运行一个完整的示例,请访问crate_usage目录(假设OpenFHE库已经安装),
- 构建应用程序
cargo build
- 运行
cargo run
从源代码安装自定义crate
您可以通过手动构建crate来调整安装过程。在这种情况下,您需要将Fair Math的openfhe-rs仓库克隆到本地计算机并构建它
- 克隆仓库
git clone https://github.com/fairmath/openfhe-rs.git
cd openfhe-rs
- 构建库
cargo build
- 运行测试
cargo test -- --test-threads=1
- 运行示例
cargo run --example function_evaluation
cargo run --example polynomial_evaluation
cargo run --example simple_integers
cargo run --example simple_real_numbers
贡献
贡献始终受欢迎!如果您发现错误,有功能请求或想贡献代码,请在该GitHub仓库上打开一个问题或拉取请求。
许可证
OpenFHE-rs
采用BSD 2-Clause License。有关详细信息,请参阅LICENSE文件。
依赖
~0.5–2MB
~29K SLoC