Skip to content

算法Algorithm

GSW 近似特征向量同态加密

GSW encryption · GSW approximate-eigenvector encryption

把明文变为密文矩阵关于秘密gadget向量的近似特征值,用Flatten维持小系数,并逐门证明NAND误差递推与深度预算。

形式陈述 ​

GSW 构造的核心关系是

(1)Cv=μv+e(modq).

C 是公开密文矩阵,v 是秘密向量,消息 μ 是近似特征值,e 是受控的小误差。普通矩阵乘法因而能对应明文乘法。[1] 要把这句话变成安全的同态加密,还需规定 C,v 的特殊形状。

取正整数 n,m 与模数 q≥3,令 ℓ=⌊log2⁡q⌋+1、N=(n+1)ℓ。对 a∈Zqn+1,BD(a) 把每个坐标的标准代表分解成 ℓ 个低位在前的二进制位。定义

P2(s)=(s0,2s0,…,2ℓ−1s0;…;sn,…,2ℓ−1sn).

BD−1 将每个长度 ℓ 的块按权重 1,2,…,2ℓ−1 加回,再模 q;输入块无须已经是二进制。令

Flatten(w)=BD(BD−1(w)).

对矩阵逐行应用这些操作。它们满足

(2)BD(a)⋅P2(s)=a⋅s,Flatten(w)⋅P2(s)=w⋅P2(s)(modq).

密钥、加密与一位解密 ​

取均匀 t∈Zqn、B∈Zqm×n,独立抽误差 e0←χm,令

b=Bt+e0,A=(b∣B),s=(1,−t),v=P2(s).

公开 A,保留 s,于是 As=e0(modq)。加密一位 μ 时均匀抽 R∈{0,1}N×m,输出

C=Flatten(μIN+BD(RA)).

C 为 N×N 二进制矩阵,并有 Cv=μv+Re0。在 v 的第一块选一个已知坐标 vj=2j∈(q/4,q/2],计算 (Cv)j,按模 q 圆周距离选择更接近0还是 vj。若误差各坐标的绝对值都小于 q/8,这个解密正确。

安全性假设是所选参数的均匀秘密判定LWE困难性;还要让 m 留足随机子集和熵余量。例如若每行统计误差上界为 η0=12qn+1/2m,应使 Nη0 可忽略。正确性则要求噪声预算与所支持深度相容。这些是同时要满足的条件。

直觉

若没有误差,v 就是每份密文共同的特征向量,消息就是相应特征值。两个矩阵相乘时,特征值相乘,这是同态运算的代数来源。

真正困难的是误差。普通矩阵经过多轮乘法后,系数很快变大,接下来会把另一份密文的误差放大。gadget 表示允许每次把大系数重新写成位,而不改变矩阵作用于秘密 v 的结果。服务器不知道 v,仍可完成这种“改写表示”。

例子与边界

三个位怎样保住一个内积 ​

取 q=7,ℓ=3,a=(5,3)、s=(2,1)。低位在前的分解为

BD(a)=(1,0,1;1,1,0),P2(s)=(2,4,1;1,2,4)(mod7).

展开后的内积为 2+1+1+2=6,原内积为 5⋅2+3⋅1=13≡6(mod7)。这些位不是把秘密公开拆开;公开的是密文坐标的位,秘密向量的重复倍数只由持钥者计算。

再取一个不是二进制的块 w=(3,2,0)。压回去得到 3+2⋅2=7≡0,再展开为 (0,0,0)。它们与 (s,2s,4s) 的内积都模7等于零。这说明 Flatten 可以把系数从3、2改为0、0,同时保持式 (2)。

一个NAND门的完整误差账本 ​

设 Civ=μiv+ei,其中 μi∈{0,1}。先乘:

C1C2v=C1(μ2v+e2)=μ1μ2v+μ2e1+C1e2.

所以 NAND 可定义为

CNAND=Flatten(IN−C1C2).

新消息为 1−μ1μ2,新误差为 −(μ2e1+C1e2)。因为进入每一门的 C1 已经 Flatten,系数都是0或1,用无穷范数与行和界可得

‖eout‖∞≤‖e1‖∞+N‖e2‖∞.

若两输入都以 E 为界,则下一层以 (N+1)E 为界。对深度至多 L 的 NAND 电路,保守充分条件为

(3)(N+1)LE0<q/8,E0≥‖Re0‖∞.

NAND 是通用门,因此这一账本覆盖通用 Boolean 计算。若直接把加法当 XOR,却仍把中间消息当作0或1,误差分析就会用错:模 q 的 1+1 是2,不是0。

例如只检查算术预算,取 q=65537,n=1,则 ℓ=17,N=34。假设新鲜误差界 E0=1,逐层上界为1、35、1225、42875。前两层小于 q/8=8192.125,第三层的这一充分证书失效。失去上界证书不表示每个具体密文必然解错;也不表示这些微小维数参数安全。

Flatten没有洗掉噪声 ​

式 (2) 保持 Cv,所以它也保持已有误差。它修复的是下一步误差将被多大系数放大的问题,而非把已经增长的误差降回新鲜水平。

如果省去 Flatten,下一次左乘矩阵的行和可能接近 Nq,式 (3) 就不再成立。这是位分解在构造中的必要作用,不是为了让文件看起来更像二进制。

推论与应用

安全证明用两段混合。先以 LWE 把 A 换为均匀矩阵。随后每行 rTA 由剩余哈希引理的有限输出集版本接近均匀,N 行的联合距离可用逐行替换界为 Nη0。矩阵 μBD−1(IN) 只是对均匀矩阵加一个固定偏移,因此隐藏消息;再应用公开的 BD 不增加区分能力。

每份 Flatten 后的密文有 N2 个比特,与已求值的门数无关;朴素每门矩阵乘法用 O(N3) 次模运算,解密只需一行与 v 作内积,即 O(N) 次模运算。N,q 与噪声参数可依赖预选深度 L,不能把这个依赖从性能结论里抹掉。

本构造的矩阵格式直接维持固定维数,不需要先乘成秘密的平方再做重线性化。若希望在固定噪声参数下继续更深计算,可研究自举;公开加密私钥带来的安全条件需另外证明,原有 LWE 公钥混合并未自动包含它。

参考资料
关系图谱20 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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