Skip to content

算法Algorithm

同态自举刷新

Bootstrapping for FHE

把旧密文作为公开常量、旧私钥位作为新密钥下的密文,求值解密电路以刷新表示,并区分功能余量、独立密钥链和循环安全。

形式陈述 ​

自举用同态求值计算一份密文的解密函数,结果仍处于加密状态。它的关键条件不是“方案能算几个乘法”,而是能在正确性预算内计算自己的解密电路,并为下一次有效运算留出余量。[1,2]

先分开旧、新两对密钥。旧密文 c 在 skold 下解出 m。对旧私钥的每一位,公开新密钥下的加密

s^j=Encpknew((skold)j).

把旧密文的全部比特当作公开常量,得到只以私钥位为变量的电路

Dc(s)=Decs(c).

刷新输出为

(1)c′=Evalpknew(Dc,s^1,…,s^k).

若旧密文本来可正确解密,且求值这张电路也在新方案允许的预算内,则

Decsknew(c′)=Dc(skold)=m.

标准的可自举条件通常写成能够求值“解密两份密文后再做一个通用门”的增广解密电路。它比仅能算完解密更有用,因为可以反复接力。这个条件关心实际解密电路的门基、深度、扇入与噪声放大,而不仅是一个抽象函数名。

安全性另有要求:公开 s^j 后,底层加密仍须在所声明的攻击模型下安全。旧、新钥独立形成有限链时,可从基础 CPA 安全归约;同一密钥加密自己的私钥位时,则涉及循环安全或相应密钥相关消息安全,不能只引用未带这些辅助密文的 CPA 定义。

直觉

服务器把一团已有噪声的密文交给一个加密着的解密程序。旧密文的各个位都是服务器能读取的公开数据,噪声藏在这些位与秘密的数学关系中;它们不是新一轮求值的“高噪声加密输入”。

新一轮真正的加密输入是那些新鲜的私钥位密文。于是式 (1) 的输出噪声主要由这批输入与固定解密电路决定,而不会机械地继承旧密文原来的巨大误差值。只要旧密文尚能正确解密,这次计算就重新得到一份可继续使用的消息表示。

例子与边界

一个明确的深度账本 ​

为看清条件,设某教学方案已证明:从新鲜密文开始,所有深度至多5的指定门电路都可正确求值;固定旧密文后,解密电路深度为3。还假设同一份参数证明覆盖中间密文和多次刷新接口。

一次刷新要用3层。刷新后再做一层外部门,等价于从私钥位新鲜密文起算的一张深度4电路,仍在5层内。甚至可以再做第二层外部门,到深度5,然后在尚未超预算时刷新。

下一次刷新重新以新鲜私钥位密文为输入,而将当前密文当作常量。深度计数因此重新从解密的3层开始,不会变成“旧电路深度加3”。若解密电路本身需要6层,则这个方案尚不可自举;如果恰好需要5层,也没有仅凭上述保证就再接一门的余量。

深度只是此例中已证明的预算摘要。对于GSW一类具体构造,还要把解密接线翻译成 NAND 门,并核对各门误差递推。不能把“可算深度5”的口头描述当成真实参数安全证书。

为什么不能等到已经解错再刷新 ​

若旧密文的噪声已越界,使 Dc(sk)=1,但它原本想表示0,自举忠实计算的是当前解密函数,输出一份加密1。它不会知道此前计算意图,也没有纠正历史错误的信息。

因此噪声管理应在失效前刷新。自举是重新表示,不是对任意损坏密文的纠错魔法。类似地,恶意服务器替换了密文后,自举不能证明它遵守了原先电路。

三把独立钥怎样接力 ​

生成独立密钥 (pk0,sk0),(pk1,sk1),(pk2,sk2),公开

Encpk1(sk0),Encpk2(sk1)

的逐位版本。输入在 pk0 下加密;第一轮刷新转到 pk1,第二轮刷新转到 pk2,最终由 sk2 解密。若客户希望最终总用一把原钥,则那是另一个需要安排的接口,不能把链末密文交给 sk0 后假装仍能正确解密。

这条链没有“某钥加密自身”的环,但公钥材料随允许的刷新次数增长。它给出预设层数的方案,不是固定公开材料后无限延长计算的证明。

推论与应用

独立密钥链为何能用普通CPA ​

混合证明可从链的末端开始,把 pk2 下的 sk1 位加密换成零加密,再向前处理 pk1 下的 sk0。模拟一个未知目标私钥时,其向后输出的相关材料已经在前面的混合中换成零,归约无须知道它;被加密的上一把私钥则由归约自行生成。

一条有限链的替换次数与链长和密钥位数成正比。全部链材料换成零之后,再用输入密钥的 CPA 安全处理挑战消息。这个顺序说明为什么无环依赖可处理,也说明不能把同样论证原封不动套到同钥循环上。

若使用 pk=pkold=pknew,同一份加密私钥材料可以反复刷新,消除预设链长。但攻击者始终得到 Encpk(sk),须在包含这份辅助信息的游戏中证明消息保密。功能上的“能算自身解密”和安全上的“能公开加密自身私钥”是两项不同定理。[2]

刷新结果一般只保证正确和有受控的新噪声,不自动与普通新鲜加密同分布。若还要向私钥持有者隐藏服务器所算电路,应另看电路隐私。自举成本也要按解密电路门数乘每门求值成本,并加入求值密钥传输/存储,而不是把刷新当常数时间黑盒。

参考资料
  • [1] Craig Gentry, A Fully Homomorphic Encryption Scheme, 2009,§§4.1–4.3:Recrypt、逐层密钥链与循环安全版本。
  • [2] Zvika Brakerski, Cryptographic Methods for the Clouds, PhD thesis, Weizmann Institute of Science, July 2011,§2.3.2,Definition 2.3.7、Theorems 2.3.1–2.3.2:增广解密与弱循环安全。引用以节号与定理号定位。
关系图谱7 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系