ImreAngelo/sPAR

GitHub: ImreAngelo/sPAR

该项目使用 OpenFHE 在 C++ 中实现基于全同态加密的匿名路由器理论构造,旨在评估其在不同参与者规模下的实际性能和可扩展性。

Stars: 1 | Forks: 0

# (某种程度上)实用的匿名路由器 目前已经提出了许多匿名通信系统并付诸实施,旨在让用户能够在网络上交换消息而不泄露通信双方的身份。这些设计(如 Tor、I2P、mixnets)大多依赖 _阈值模型_ 来提供匿名性,即其基础设施中的某些组件必须保持诚实。提供更强匿名性保证的系统(如 DC-nets)通常面临可扩展性差的问题,或者在实例化时不切实际。 本论文探讨了一种名为(某种程度上)实用的匿名路由器([https://eprint.iacr.org/2025/860](https://eprint.iacr.org/2025/860))的新构造,它解决了现有系统在信任和实用性方面的顾虑。该构造仅依赖于成熟的 FHE 方案,使其在现实中具备可实现性。尽管 sPAR 为构建匿名通信系统提供了一条充满前景的新途径,但它目前仍是一种理论上的构造。因此,需要进行具体的实现和更深入的研究,以评估其在更大规模网络中的实际性能和可行性。 为了探究 sPAR 的可行性,本论文旨在使用 OpenFHE 用 C++ 实现该方案,并针对系统参与者的数量对其性能进行结构化评估。 __研究问题:__ * sPAR 的计算成本是多少?与原论文中描述的理论复杂度相比表现如何? * sPAR 的性能如何随参与者数量扩展?在什么情况下它会变得不切实际? ## 目录 ## 构建说明 1. 克隆仓库 `git clone git@github.com:ImreAngelo/sPAR.git` 2. 递归初始化子模块 `git submodule update --init --recursive` 3. 运行 `make build` 来构建 OpenFHE 和本项目 4. 大功告成 ## 项目结构 拆分为 3 个独立的库 + 用于单元测试等的辅助工具。 - `lib` 内的主目录:`libs/core`、`libs/client`、`libs/server` - 辅助目录:`benchmark`、`test`、`scripts` ## 单元测试 单元测试位于 `tests` 目录中。 使用 [Google Test](https://github.com/google/googletest) 配置。 ## 基准测试 基准测试位于 `benchmark` 目录中。 使用 [Google Benchmark](https://github.com/google/benchmark) 配置。 ``` # 运行完整的 benchmark suite make bench ``` | **标志** | **描述** | **默认值** | |-------------------|-----------------------------------------------------------------------------------------------------------------|------------------------| | BENCH_REPETITIONS | 多次运行测试以获取额外的统计数据(中位数、标准差等) | 1 | | BENCH_NAMES | 指定要运行的 benchmark 文件 | `benchmark/src` 中的全部 | | BENCH_FILTER | 仅运行匹配此过滤器的 benchmark | .* | | BENCH_TIME_UNIT | 以该单位输出时间 | ms | | BENCH_OMP_THREADS | 限制程序使用的线程数(注意:benchmark 也会并行运行多次迭代) | 6 | RGSW benchmarks ## TODO - [ ] 添加/验证对 BFV 的支持 - [ ] 通过 CLI 传递参数
标签:C++, 全同态加密, 匿名通信, 学术研究, 密码学, 性能测试, 手动系统调用, 数据擦除