本节摘要:第一个全同态方案证明了可能性,也交出了密码学史上罕见的昂贵账单:公钥以千兆字节计、单比特门运算以分钟计、每个密文只装一比特明文。本节逐项解剖开销来源(逐门自举、压缩解密的公钥膨胀、比特级明文、大整数理想格运算),对照第二代方案的改进方向,说明"逃离自举"为何成为二零一一年后的第一主题。
历史叙述容易美化起点。破冰之后的首个完整工程实现(Gentry 与 Halevi 在二零一一年发布)给出了如下量级的数字:公开密钥约二点三千兆字节,比当年一部高清电影还大;单个比特的与门或异或门,连同自举,耗时约三十分钟量级;每个密文承载一比特明文,加密一个字节需要八个独立密文。把这套方案接到真实负载上算笔账:统计十万条记录的加密求和,即便只做线性运算也要以小时计;若含乘法,时间单位直接进入天。这不是实现粗糙的问题,而是构造本身的四个结构性开销,值得逐个解剖——因为第二代的每项优化都精确对着它们来。
第一个开销是逐门自举。第一代构造要求每个基本门之后立刻刷新噪声,也就是说,电路里每走一步就要把整个解密电路同态跑一遍。计算成本与门数量呈线性放大,而每一步的"一遍"本身就是天价。对比后文:分层方案让自举从"每门一次"降到"全程零次或偶尔一次",这一个改动就换回两到三个数量级。
第二个开销来自压缩解密电路的副作用。上一节讲过,为了让解密电路足够浅,私钥被转写成大量提示比特并发布——公钥因此膨胀到千兆字节级。后续优化用更聪明的编码把公钥压到数十兆字节,但"用公钥体积换解密深度"的交易结构没变。这个开销教会社区一个原则:公开辅助物的体积是同态方案的一等公民参数,后来的重线性化密钥、旋转密钥、自举密钥都要在论文里单列尺寸。
第三个开销是比特级明文。第一代方案一个密文只能表达零或一,没有任何打包。做一次三十二位整数加法需要展开成比特电路,约几十个门;乘法的比特电路规模以百计。对照第三章:BFV 一个密文打包数千个明文槽,一次密文乘法等于数千次明文乘法——打包技术单独就贡献了三个数量级以上的摊销收益。一比特时代没有这个杠杆。
第四个开销是实现层的:理想格上的运算落在数千比特长的大整数上,乘法与模归约在当时的通用处理器上没有原生支持,软件大整数库每一步都在燃烧周期。这个开销的清算要等到残差数系统实现与硬件加速(第四章与第六章),此处先记账。

| 开销项 | 第一代量级 | 第二代对策 | 后文出处 |
|---|---|---|---|
| 自举频率 | 每个门一次 | 分层定参,全程零自举 | 第三章 BGV |
| 公钥体积 | 千兆字节级 | 取消压缩解密,改用小尺寸重线性化密钥 | 第三章 |
| 明文粒度 | 每密文一比特 | 中国剩余定理打包数千槽 | 第三、四章 |
| 基础运算 | 软件大整数 | 环上结构加数论变换,后落残差系统 | 第四章 |
这张表是本章与下一章的交接文书:左列是账单,右列是下一代的清偿计划。值得强调的是,第二代并不是把四项开销同时清零,而是做了取舍——分层方案牺牲了"深度任意"(要预先知道电路深度),换取全程不自举;这个取舍在深度未知的负载(比如带迭代的训练)上会翻车,届时又要回到自举路线。工程史上很少有无代价的进步,方案的代际更替本质上是"把代价换了个位置"。
把账单倒过来看,就是二零一一年之后的研究议程。公钥太贵,就发明尺寸可控的密钥交换材料;逐门自举太贵,就让模交换把噪声增长压到可预报,按深度定参数;明文太稀,就用打包把一个密文填满;大整数太慢,就换环上结构、上数论变换、最后拆成机器字的残差。四个方向各自开花,合起来构成第三章的两条家族线(分层家族与快速自举家族)。
还有一个更宏观的教训值得写进笔记:第一代方案的学术价值与工程价值完全不成比例,但正是这份"不可用的实现"给了后续所有优化一个可信的基线与靶子。社区花了一年时间去证明它可行,又花了十几年去证明它可付得起。评估任何一项处于婴儿期的技术,都应当区分"可能性证明"与"可用性交付"两个阶段——这也是本册反复使用的阅读框架。
💡 关键直觉:把第一代方案理解为一座用毛坯结构封顶的大楼——承重逻辑全部验证通过,但入住前还需要水电、电梯与内装;第二代方案的每项优化都是一次装修,而装修从来不会改动承重墙(安全假设)。
第一代方案的公钥尺寸引发了一场持续约三年的压缩竞赛,这段历史把"公开辅助物是一等公民参数"的教训刻进了社区共识。首发的公钥以千兆字节计(压缩解密电路的提示比特占绝对大头)。第一轮优化改变提示比特的编码方式,把尺寸压到数百兆字节量级;第二轮引入更聪明的采样与批处理技巧,压到数十兆字节;第三轮的系统性重构最终落到个位数到两位数兆字节——三年三个数量级,全部来自工程智慧而非数学结构改变。这场竞赛的历史意义在于:它让后续所有方案在设计阶段就把辅助密钥的尺寸写进论文的对比表格,"发布多大"从此与"算得多快"同等级重要。
竞赛的另一层遗产是基准测试文化的形成。公钥尺寸、单门延迟、自举速率、每秒吞吐——这些今天看来理所当然的指标体系,正是在第一代方案的优化竞赛中被逐项定义与比较的。不同团队的数字要可比,就必须统一口径(参数档、负载形状、硬件平台),口径协商的过程催生了社区标准的雏形(第六章的标准化叙事从这里萌芽)。换句话说,第一代方案留给后世的不仅是"可行"的证明,还有"如何比较"的方法论。
把抽象的账单翻译成日常参照,帮助建立永久的数量级直觉。公钥二点三千兆字节:约等于一部标准清晰度电影,传输它需要主流家用宽带数十秒到分钟级。单比特门约三十分钟:加密计算一个字节(八门)约需数小时;加密比较两个三十二位整数(数百门)以天计。密钥生成:首个实现的密钥生成同样以小时计。这些换算不是嘲笑先驱——同年的乐观估计认为全同态永远不会实用——而是给读者两个锚点:其一,从分钟级单门到今天毫秒级加密推理(第五章的数字),性能跨越了五到六个数量级,软件工程史上罕有对手;其二,今天任何"太慢不可用"的新技术判断,都应该参考这条曲线再下结论。
| 账单项 | 第一代量级 | 日常参照 | 第二代对策后的量级 |
|---|---|---|---|
| 公钥体积 | 约二点三千兆字节 | 一部电影 | 数十兆字节 |
| 单门延迟 | 约三十分钟 | 一集电视剧 | 百毫秒级密文乘法 |
| 明文粒度 | 每密文一比特 | 一个开关量 | 数千槽每密文 |
| 密钥生成 | 小时级 | 一次长途航班 | 秒到分钟级 |
三个理由。其一,理解现代方案的必要性:不知道第一代为什么慢,就体会不到模交换与打包这两个设计的分量——它们不是锦上添花,是把技术从"论文"变成"系统"的关键跳跃。其二,理解自举的本质:第一代把自举放在每次运算后,这个极端安排反而把自举的机制暴露得最清楚;现代方案把自举藏进调度器,机制反而难看到了。其三,建立技术评估的历史感:每个领域都有自己的"第一代账单",识别"可能性证明阶段"的技术并给它合理的期待,是工程决策者的高级素养——把第一代当产品会错失未来,把第五代当第一代会错过现在。