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, 同态加密, 密码学, 手动系统调用, 数据擦除, 隐私计算