11个版本

0.2.8 2024年6月26日
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 密码学

Download history 243/week @ 2024-05-10 233/week @ 2024-05-17 13/week @ 2024-05-24 2/week @ 2024-05-31 115/week @ 2024-06-07 365/week @ 2024-06-14 387/week @ 2024-06-21 19/week @ 2024-06-28

850 每月下载

BSD-2-Clause

170KB
3K SLoC

C++ 2K SLoC // 0.0% comments Rust 1.5K SLoC // 0.0% comments Shell 22 SLoC

关于OpenFHE-rs

☀️ OpenFHE-rs是FairMath和OpenFHE的合作项目。


Discord Twitter

🔔 请注意,该库是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的安装文档

  1. 克隆仓库
git clone https://github.com/openfheorg/openfhe-development.git
cd openfhe-development
  1. 配置CMake
cmake -B ./build -DBUILD_SHARED=ON .
  1. 构建和安装C++ OpenFHE库
make -C ./build -j$(nproc)
make -C ./build install
  1. 更新链接器缓存
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库已经安装),

  1. 构建应用程序
cargo build
  1. 运行
cargo run

从源代码安装自定义crate

您可以通过手动构建crate来调整安装过程。在这种情况下,您需要将Fair Math的openfhe-rs仓库克隆到本地计算机并构建它

  1. 克隆仓库
git clone https://github.com/fairmath/openfhe-rs.git
cd openfhe-rs
  1. 构建库
cargo build
  1. 运行测试
cargo test -- --test-threads=1
  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