systemslibrarian/crypto-lab-fhe-arena
GitHub: systemslibrarian/crypto-lab-fhe-arena
一个基于浏览器的 BGV/BFV 整数全同态加密教学演示平台,通过实时噪声预算可视化和交互式展项帮助用户直观理解密文同态运算的原理与限制。
Stars: 0 | Forks: 0
# crypto-lab-fhe-arena
## 1. 它是什么
FHE Arena 展示了 BGV (Brakerski-Gentry-Vaikuntanathan, 2012) 和 BFV (Fan-Vercauteren, 2012) —— 这两种部署最广泛的整数全同态加密 (Fully Homomorphic Encryption) 方案。两者都对整数进行加密,并支持直接在密文上进行加法和乘法,允许服务器在不进行解密的情况下对加密数据进行计算。核心挑战在于噪声预算:每次操作都会给密文增加噪声,当噪声超过阈值时,解密就会失败。BGV 通过模数切换来管理此问题;BFV 则通过重缩放。本演示是 Blind Oracle (TFHE 比特级 FHE) 的整数 FHE 配套项目。
## 2. 何时使用
- ✅ BFV:加密整数算术,简单到中等的计算深度,最易于上手的起点 (Microsoft SEAL 默认方案)
- ✅ BGV:需要更多乘级深度的深度计算,针对加密整数的统计工作负载
- ✅ 两者皆可:加密数据库查询、隐私基因组学、加密投票计票、针对整数数据的隐私机器学习推理
- ❌ 两者都不适用于加密浮点数 / 近似算术 —— 请使用 CKKS (参见 crypto-lab-ckks-lab)
- ❌ 如果没有自举,两者都不支持无限的计算深度 (开销极大 —— 请仔细规划您的电路深度)
- ❌ 在没有 GPU 加速的情况下,对于深层电路仍无法用于实时应用 (2024 年的最先进水平)
## 3. 在线演示
链接:
演示中的每一个数字都是由真实的 (玩具参数) BFV 引擎通过真正的负循环 环算术计算出来的 —— 绝无造假。该实验室旨在*教学*,因此隐藏的机制被直观地展示出来:
- **实时的解密等式。** 展项 2 完全展示了密钥恢复的内容:`c0 + c1·s = Δ·m + e`。您可以看到纯净的信号 `Δ·m`、实际恢复的值以及噪声 `e` —— 从而让“噪声”不再抽象。
- **以比特为单位的噪声预算。** 每个仪表都以*比特*为单位报告预算 (类似于 Microsoft SEAL 的 `invariant_noise_budget`),采用健康 → 偏低 → 失败的颜色编码,并配有直观的进度条。
- **测量值而非断言。** 展项 3 记录每次操作后*实际测量到*的噪声和预算,并将其绘制在实时图表上 —— 加法步骤平缓延伸,每次乘法则呈现悬崖式下跌。一个“乘至崩溃”按钮生动展示了其向解密失败底线崩塌的过程。
- **坦诚面对失败。** 当预算耗尽时,演示会显示*实际的* (已损坏) 解密结果,并解释预算是对整个密文的保证 —— 单个槽位可能会巧合地幸存,而其余部分全是乱码。绝不会为了看起来像坏了而弄虚作假。
- **展示语义安全性。** 对同一个值加密两次,观察密文如何产生天壤之别,同时两者仍能正确解密 —— 这是 IND-CPA 随机化加密的具体演示。
- **展示自举。** 耗尽预算,然后按下 *Bootstrap*,看着它瞬间恢复满格 —— 并附有一条坦诚的提示:真实的自举是以同态方式 (无需密钥) 刷新噪声,并且必须在溢出*之前*运行,而不是之后。
- **直观体验参数权衡。** 基于真实的同态加密标准 (128 位安全性) 的滑块,展示了更大的度 `n` 如何换取更大的模数 `q` → 更高的乘法深度 → 但操作速度会变慢。
- **实时的隐私计算。** 投出十张秘密的赞成/反对选票,对其进行加密,同态地对密文求和,然后*仅解密总计结果* —— 这是 FHE 的标志性应用,可进行端到端验证,且绝不会透露任何个人投票。
- **验证徽章。** 加密结果会与明文算术进行对比,并带有 ✓/✗ 徽章,让同态的收益一目了然。
六个展项:核心理念 (在锁箱上进行计算,并附带客户端/服务器信任图解);使用直观的 `Δ·m + e` 揭示和语义安全演示进行加密-加法-解密;带有实时图表、生动的“乘至崩溃”以及自举刷新功能的噪声预算可视化工具;乘法、重线性化 (2→3→2 密文组件) 和 SIMD 批处理;BGV vs BFV vs TFHE 对比表、决策树和交互式参数探索器;以及以现场加密计票为高潮的真实 FHE 部署案例。
## 4. 如何在本地运行
```
git clone https://github.com/systemslibrarian/crypto-lab-fhe-arena
cd crypto-lab-fhe-arena
npm install
npm run dev
```
## 5. Crypto-Lab 套件的一部分
它是 [crypto-lab](https://systemslibrarian.github.io/crypto-lab/) 的一部分 —— 基于浏览器的密码学演示,涵盖了从 2500 年的密码学历史到 NIST FIPS 2024 后量子标准。
你们或吃或喝,无论做什么,一切都要为上帝的荣耀而行。——《哥林多前书》10:31
标签:BFV, BGV, WebAssembly, 全同态加密, 密码学, 手动系统调用, 数据加密, 数据可视化, 暗色界面, 自动化攻击, 隐私计算