msteslov/WonderFullyHE

GitHub: msteslov/WonderFullyHE

基于 Microsoft SEAL 的 CKKS 同态加密研究库,提供精度跟踪、参数规划和实验性 Bootstrapping 组件。

Stars: 0 | Forks: 0

# WonderFullyHE WonderFullyHE 是一个基于 Microsoft SEAL 构建的 C++17 CKKS 研究库。 项目的稳定部分是 `m2424` 库层:SEAL 适配器、 精度指标、ABFT 检查、操作预算跟踪、参数规划、 线性变换、多项式求值,以及配置/安全报告。 Bootstrapping 仍处于实验阶段。该仓库包含 `ModRaise -> CoeffToSlot -> EvalMod -> SlotToCoeff` 的实现片段和诊断工具套件,但完整的生产级 Bootstrapping 尚不是稳定的 API。 在使用 bootstrap、 EvalMod、诊断性 scale 管理或 bootstrap 规划器内部结构时,需显式使用 `#include "m2424/experimental.hpp"`。稳定的 umbrella header `#include "m2424/m2424.hpp"` 特意不包含这些 研究接口。 ## 构建 克隆 SEAL 子模块: ``` git clone --recurse-submodules ``` 配置并构建库、测试和稳定应用: ``` cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON cmake --build build -j ctest --test-dir build --output-on-failure ``` 运行最小的 demo: ``` ./build/demo_basic ``` ## 构建选项 `M2424_BUILD_APPS=ON` 构建稳定的命令行 demo 和测量工具。 该项默认启用。 `M2424_BUILD_RESEARCH_APPS=OFF` 会在 默认构建中排除实验性的 bootstrap 工具套件。仅在处理 bootstrap 内部结构时启用它: ``` cmake -S . -B build -DM2424_BUILD_RESEARCH_APPS=ON cmake --build build --target bench_bootstrap_multi_cycle -j ``` ## 稳定应用 - `demo_basic` - 最小化的编码/加密/求值/解密 demo。 - `demo_abft` - 针对加密操作的校验和式 ABFT 检查。 - `demo_checked_pipeline` - 已检查的 `add -> mul -> rotate -> sum_slots` 流程。 - `demo_client_compute_roundtrip` - 客户端/服务器模式的密钥和密文流。 - `demo_eval_mod_polynomial` - 独立的 EvalMod 多项式检查。 - `demo_galois_key_optimization` - 旋转密钥大小/运行时比较。 - `demo_mod_raise` - 底层 ModRaise 诊断。 - `demo_noise_growth` - 不包含 bootstrapping 的深度和误差增长。 - `demo_precision_profiles` - profile 比较。 - `demo_profile_report` - profile 表。 - `demo_secure_stats` - 加密的求和/平均值示例。 - `demo_security_report` - SEAL 安全限制报告。 - `bench_ckks` - 核心 CKKS 操作计时和误差。 - `bench_chain_accuracy` - 链长度、scale、工作位精度扫描。 - `bench_parameter_planner` - 针对 SEAL 运行的规划器健全性检查。 - `bench_parallel_throughput` - 独立密文的吞吐量。 ## 测试 默认的 CTest 仅运行不变量测试: - `test_smoke` - `test_accuracy` - `test_adapter_failures` - `test_bootstrap_dft` - `test_bootstrap_scalable_refresh` - `test_bootstrap_scale_design` - `test_operation_budget` - `test_parameter_planner` ## 当前 Bootstrap 状态 代码库包含可复用的 bootstrap 构建模块: - 类 FFT 的 `CoeffToSlot` / `SlotToCoeff` 规划。 - 基于 SEAL 级别原语的 `ModRaise` 封装。 - EvalMod P3/P5/P7 以及诊断性的 `P3DoubleAngle` 路径。 - Scale 和周期规划对象。 - 显式的实验性 `SlotsToCoeffsFirst/FftLike/P3` 刷新路径。 目前的阻碍是围绕 EvalMod 的周期/输出 scale 模型。现有的 研究工具套件被保留在 `M2424_BUILD_RESEARCH_APPS` 之后,直到该模型 足够正确,能够支持稳定的完整 bootstrap API。 ## API 概览 ``` #include "m2424/m2424.hpp" auto adapter = m2424::SealAdapter::create(m2424::profiles::basic_ckks()); adapter.keygen(true, true); auto encrypted = adapter.encrypt(adapter.encode({1.0, 2.0, 3.0})); auto squared = adapter.mul_relin_rescale(encrypted, encrypted); auto decoded = adapter.decode(adapter.decrypt(squared)); ``` 实用文档: - `docs/architecture.md` - `docs/ckks_parameters.md` - `docs/project_status.md`
标签:Bash脚本, C++, CKKS, Microsoft SEAL, 同态加密, 密码学, 手动系统调用, 数据擦除, 隐私计算