“本构造的矩阵格式直接维持固定维数,不需要先乘成秘密的平方再做重线性化。若希望在固定噪声参数下继续更深计算,可研究自举;公开加密私钥带来的安全条件需另外证明,原有 LWE 公钥混合并未自动包含…”
形式陈述
自举用同态求值计算一份密文的解密函数,结果仍处于加密状态。它的关键条件不是“方案能算几个乘法”,而是能在正确性预算内计算自己的解密电路,并为下一次有效运算留出余量。[1,2]
先分开旧、新两对密钥。旧密文
把旧密文的全部比特当作公开常量,得到只以私钥位为变量的电路
刷新输出为
若旧密文本来可正确解密,且求值这张电路也在新方案允许的预算内,则
标准的可自举条件通常写成能够求值“解密两份密文后再做一个通用门”的增广解密电路。它比仅能算完解密更有用,因为可以反复接力。这个条件关心实际解密电路的门基、深度、扇入与噪声放大,而不仅是一个抽象函数名。
安全性另有要求:公开
直觉
服务器把一团已有噪声的密文交给一个加密着的解密程序。旧密文的各个位都是服务器能读取的公开数据,噪声藏在这些位与秘密的数学关系中;它们不是新一轮求值的“高噪声加密输入”。
新一轮真正的加密输入是那些新鲜的私钥位密文。于是式 (1) 的输出噪声主要由这批输入与固定解密电路决定,而不会机械地继承旧密文原来的巨大误差值。只要旧密文尚能正确解密,这次计算就重新得到一份可继续使用的消息表示。
例子与边界
一个明确的深度账本
为看清条件,设某教学方案已证明:从新鲜密文开始,所有深度至多5的指定门电路都可正确求值;固定旧密文后,解密电路深度为3。还假设同一份参数证明覆盖中间密文和多次刷新接口。
一次刷新要用3层。刷新后再做一层外部门,等价于从私钥位新鲜密文起算的一张深度4电路,仍在5层内。甚至可以再做第二层外部门,到深度5,然后在尚未超预算时刷新。
下一次刷新重新以新鲜私钥位密文为输入,而将当前密文当作常量。深度计数因此重新从解密的3层开始,不会变成“旧电路深度加3”。若解密电路本身需要6层,则这个方案尚不可自举;如果恰好需要5层,也没有仅凭上述保证就再接一门的余量。
深度只是此例中已证明的预算摘要。对于GSW一类具体构造,还要把解密接线翻译成 NAND 门,并核对各门误差递推。不能把“可算深度5”的口头描述当成真实参数安全证书。
为什么不能等到已经解错再刷新
若旧密文的噪声已越界,使
因此噪声管理应在失效前刷新。自举是重新表示,不是对任意损坏密文的纠错魔法。类似地,恶意服务器替换了密文后,自举不能证明它遵守了原先电路。
三把独立钥怎样接力
生成独立密钥
的逐位版本。输入在
这条链没有“某钥加密自身”的环,但公钥材料随允许的刷新次数增长。它给出预设层数的方案,不是固定公开材料后无限延长计算的证明。
推论与应用
独立密钥链为何能用普通CPA
混合证明可从链的末端开始,把
一条有限链的替换次数与链长和密钥位数成正比。全部链材料换成零之后,再用输入密钥的 CPA 安全处理挑战消息。这个顺序说明为什么无环依赖可处理,也说明不能把同样论证原封不动套到同钥循环上。
若使用
刷新结果一般只保证正确和有受控的新噪声,不自动与普通新鲜加密同分布。若还要向私钥持有者隐藏服务器所算电路,应另看电路隐私。自举成本也要按解密电路门数乘每门求值成本,并加入求值密钥传输/存储,而不是把刷新当常数时间黑盒。
参考资料
- [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:增广解密与弱循环安全。引用以节号与定理号定位。