参考文献:
-
CLOT21\] Chillotti I, Ligier D, Orfila J B, et al. Improved programmable bootstrapping with larger precision and efficient arithmetic circuits for TFHE\[C\]//Advances in Cryptology--ASIACRYPT 2021: 27th International Conference on the Theory and Application of Cryptology and Information Security, Singapore, December 6--10, 2021, Proceedings, Part III 27. Springer International Publishing, 2021: 670-699.
文章目录
- [Homomorphic Floor Function](#Homomorphic Floor Function)
-
- [Using 2 PBS](#Using 2 PBS)
- [Using 3 PBS](#Using 3 PBS)
- [PBS of Arbitrary Function](#PBS of Arbitrary Function)
- [Homomorphic Digit Decomposition](#Homomorphic Digit Decomposition)
- [Parameter Selection](#Parameter Selection)
CLOT21\] 提出了 WoP-PBS,它基于事实 ( − 1 ) ⋅ ( − m ) = m (-1) \\cdot (-m)=m (−1)⋅(−m)=m,先将 m m m 扩展为 β ∥ m \\beta\\\|m β∥m,然后使用 GenPBS 分别计算出 ( − 1 ) β ⋅ f ( m ) (-1)\^\\beta \\cdot f(m) (−1)β⋅f(m) 和 ( − 1 ) β (-1)\^\\beta (−1)β,最后使用 FV-like 同态乘法,将它们组合成 f ( m ) f(m) f(m)。这需要底层的 LWE 同时支持加法和乘法,并且同态乘法导致了噪声增长。因此,模数(正确性)和维度(安全性)都会相应的变大,导致它比一般的 FHEW/TFHE 的效率更至少一倍。 \[LMP22\] 也是将 m m m 扩展到 β ∥ m \\beta\\\|m β∥m,单它首先将 β \\beta β 消除掉使之成为 0 ∥ m 0\\\|m 0∥m,接着使用原始的 PBS 就可以计算出正确的 f ( m ) f(m) f(m)。在这个过程中,并不需要使用同态乘法,因此它的噪声就是 PBS 本身的噪声,常规的参数就足够使用。 ## Homomorphic Floor Function 首先,\[LMP22\] 研究了如何对于**高精度 LWE 密文**执行自举。这里的 "精度" 指的是 MSD 编码的消息的比特长度。我们先给出一些参数定义: * LWE: * 维度 n n n,不需要是二的幂 * 模数 Q Q Q,是二的幂,用于 LWE 同态运算 * 模数 q q q,是二的幂,用于 PBS 自举 * 缩放因子 α \\alpha α,是二的幂,用于纠错 * 噪声界 β \\beta β,是二的幂 * ACC: * 多项式长度 N N N,是二的幂 * RLWE 密文模数 Q ′ Q' Q′,是满足 2 N ∣ Q ′ − 1 2N \\mid Q'-1 2N∣Q′−1 的素数 * 输入 LWE 密文模数 q ∣ 2 N q \\mid 2N q∣2N * 输出 LWE 密文模数 Q Q Q FHEW/TFHE 要求 LWE 的密文模数满足 Q ∣ 2 N Q \\mid 2N Q∣2N,随着明文精度的增加( k k k 比特),多项式长度 N N N 指数级增加( 2 k 2\^k 2k 倍)。对于通常的参数集 N = 1024 / 2048 N=1024/2048 N=1024/2048,只能支持至多 3 , 4 3,4 3,4 比特的明文精度。\[LMP22\] 为了计算高精度的 Sign 函数,通过不断移除 LSD(保持 MSB 不变),直到密文模数 Q Q Q 倍缩减到 q q q 规模,从而可以使用常规参数集执行 PBS。 这个过程中,一个关键步骤是**同态 Floor 函数** 。假设 LWE 密文 ( c , d ) ∈ Z Q n + 1 (c,d) \\in \\mathbb Z_Q\^{n+1} (c,d)∈ZQn+1 的相位是: ψ = α ⋅ m + e ( m o d Q ) \\psi = \\alpha \\cdot m + e \\pmod Q ψ=α⋅m+e(modQ) 其中 ∣ e ∣ ≤ β ≪ q \|e\| \\le \\beta \\ll q ∣e∣≤β≪q, m ∈ Z Q / α m \\in \\mathbb Z_{Q/\\alpha} m∈ZQ/α,根据不同的场景 α \\alpha α 选取不同的值。 注意到 Q \> q \> α Q\>q\>\\alpha Q\>q\>α 都是二的幂次。如果我们将 LWE 密文模掉 q q q,获得的 ( a , b ) ∈ Z q n + 1 (a,b) \\in \\mathbb Z_q\^{n+1} (a,b)∈Zqn+1: \[ m ′ \] q = α ⋅ \[ m \] q / α + e ( m o d q ) \[m'\]_q = \\alpha \\cdot \[m\]_{q/\\alpha} + e \\pmod q \[m′\]q=α⋅\[m\]q/α+e(modq) **使用 PBS 将它提升回 ( a ′ , b ′ ) ∈ Z Q n + 1 (a',b') \\in \\mathbb Z_Q\^{n+1} (a′,b′)∈ZQn+1,并从原始密文中把它减掉** ,就清除了 m m m 的最低 log q / α \\log{q/\\alpha} logq/α 比特。密文 ( c ′ , d ′ ) (c',d') (c′,d′) 的相位是: ψ ′ = α ⋅ ( ⌊ α q m ⌋ ⋅ q α ) + e ′ ( m o d Q ) \\psi' = \\alpha \\cdot \\left(\\left\\lfloor \\frac{\\alpha}{q} m \\right\\rfloor \\cdot \\frac{q}{\\alpha} \\right) + e' \\pmod Q ψ′=α⋅(⌊qαm⌋⋅αq)+e′(modQ) 现在,我们可以把 α , Q \\alpha,Q α,Q 同时缩小 q / α q/\\alpha q/α 倍,得到的密文 ( c ′ ′ , d ′ ′ ) ∈ Z ( α / q ) ⋅ Q n + 1 (c'',d'') \\in \\mathbb Z_{(\\alpha/q) \\cdot Q}\^{n+1} (c′′,d′′)∈Z(α/q)⋅Qn+1 相位的 MSB 保持和 ( c , d ) ∈ Z Q n + 1 (c,d) \\in \\mathbb Z_Q\^{n+1} (c,d)∈ZQn+1 的一样。 我们将这个长度 log ( q / α ) \\log(q/\\alpha) log(q/α) 的小块明文称为 **LSD** ,我们的目标是将它清零。然而,函数 f : m ∈ Z q / α ↦ m ∈ Z Q / α f:m \\in \\mathbb Z_{q/\\alpha} \\mapsto m \\in \\mathbb Z_{Q/\\alpha} f:m∈Zq/α↦m∈ZQ/α **并非反循环的** ,导致了原始的 PBS 无法实现从 ( a , b ) (a,b) (a,b) 到 ( a ′ , b ′ ) (a',b') (a′,b′) 的自举过程。\[LMP22\] 给出了两种实现,通过 2 , 3 2,3 2,3 次 PBS 来实现它。用到的三个函数为:  为了构造 LUT 的方便,下面的推导中总是使得 PBS 输入的密文**噪声是正整数** ,范围是 \[ 0 , 2 β ) \[0,2\\beta) \[0,2β)。这可通过 ( c , d ) → ( c , d + β ) (c,d) \\to (c,d+\\beta) (c,d)→(c,d+β) 来实现。只要满足 α ≥ 2 β \\alpha \\ge 2\\beta α≥2β,就可以准确解密。FHEW/TFHE 中的 LWE 私钥 s ∈ { 0 , ± 1 } n s \\in \\{0,\\pm1\\}\^n s∈{0,±1}n 服从**三元分布**。 ### Using 2 PBS \[LMP22\] 的第一个方法:使用两次 PBS,但是对于噪声的约束较强, α ≥ 4 β \\alpha \\ge 4\\beta α≥4β 基本思路:分别提取 ( \[ c \] q , \[ d \] q ) (\[c\]_q,\[d\]_q) (\[c\]q,\[d\]q) 相位(加密了 LSD)的 MSB 和其他位置, 1. 先提取 ( \[ c \] q , \[ d \] q ) (\[c\]_q,\[d\]_q) (\[c\]q,\[d\]q) 的 MSB,将它从 ( c , d ) ∈ Z Q n + 1 (c,d) \\in \\mathbb Z_Q\^{n+1} (c,d)∈ZQn+1 中移除。现在 ( \[ c ′ \] q , \[ d ′ \] q ) (\[c'\]_q,\[d'\]_q) (\[c′\]q,\[d′\]q) 的相位只位于半个环面上。 2. 再提取 ( \[ c ′ \] q , \[ d ′ \] q ) (\[c'\]_q,\[d'\]_q) (\[c′\]q,\[d′\]q) 的消息,将它从 ( c ′ , d ′ ) ∈ Z Q n + 1 (c',d') \\in \\mathbb Z_Q\^{n+1} (c′,d′)∈ZQn+1 中移除。现在 ( \[ c ′ ′ \] q , \[ d ′ ′ \] q ) (\[c''\]_q,\[d''\]_q) (\[c′′\]q,\[d′′\]q) 的相位是零。 3. 将 ( c ′ ′ , d ′ ′ ) (c'',d'') (c′′,d′′) 缩放 q / α q/\\alpha q/α,降低密文模数。  假定 PBS 输出的噪声界是 β \\beta β,初始输入 ( c , d ) c,d) c,d) 的噪声上界也是 β \\beta β, * HomFloor: * 输入噪声范围 ( − β , β ) (-\\beta,\\beta) (−β,β),执行 step 2 噪声范围 ( 0 , 2 β ) (0,2\\beta) (0,2β), * 执行 step 4,5,噪声范围是 ( 0 , 4 β ) (0,4\\beta) (0,4β),**这里需要 α ≥ 4 β \\alpha \\ge 4 \\beta α≥4β,使得这个噪声不会影响到我们刚刚消除掉的 MSB** ,从而此时的 ( c , d ) (c,d) (c,d) 相位是 m \~ q + x \\tilde mq+x m\~q+x,其中 x ∈ \[ 0 , q / 2 ) x \\in \[0,q/2) x∈\[0,q/2) 包含了 LSD 以及噪声 * 执行 step 6 和 step 7,获得相位 x + e x+e x+e 的密文,从 ( c , d ) (c,d) (c,d) 中减掉后,返回的相位是 m \~ q + e \\tilde mq+e m\~q+e(注意函数 f 1 : x ∈ Z q / 2 ↦ x ∈ Z q / 2 f_1:x\\in \\mathbb Z_{q/2} \\mapsto x \\in \\mathbb Z_{q/2} f1:x∈Zq/2↦x∈Zq/2,整个 x x x 都被清零,包括本来的噪声),满足 ∣ e ∣ \< β \|e\| \< \\beta ∣e∣\<β * HomSign: * 输入噪声范围 ( − β , β ) (-\\beta,\\beta) (−β,β),执行 HomFloor 输出的噪声范围也是 ( − β , β ) (-\\beta,\\beta) (−β,β), * 执行 step 13 的模切换,噪声规模是 α / q ⋅ β + ( ∥ s ∥ 1 + 1 ) / 2 \\alpha/q \\cdot \\beta + (\\\|s\\\|_1+1)/2 α/q⋅β+(∥s∥1+1)/2, * **假如满足 ∥ s ∥ 1 = O ( n ) ≤ β \\\|s\\\|_1=O(n)\\le \\beta ∥s∥1=O(n)≤β,并且假设 q ≥ 4 α q\\ge4\\alpha q≥4α 以及 β ≥ 2 \\beta\\ge 2 β≥2** ,那么就有 α / q ⋅ β + ( ∥ s ∥ 1 + 1 ) / 2 \< β \\alpha/q \\cdot \\beta + (\\\|s\\\|_1+1)/2 \< \\beta α/q⋅β+(∥s∥1+1)/2\<β,因此可以正确地执行 HomFloor * 执行 step 17 虽然噪声规模可能超过 α \\alpha α,但是并不会影响 MSB 的值,因此可以正确地执行 Boot,最终的噪声范围是 ( − β , β ) (-\\beta,\\beta) (−β,β) 当然,上述的分析是最坏情况的。如果使用平均情况,那么 ∥ s ∥ 2 = O ( n ) \\\|s\\\|_2 = O(\\sqrt{n}) ∥s∥2=O(n ),独立密文的加和噪声界 2 β \\sqrt{2}\\beta 2 β,可以将 β \\beta β 和 α \\alpha α 都降低一些。 ### Using 3 PBS 为了给出通用的算法(尤其是 CKKS 的噪声和明文混合在一起),\[LMP22\] 给出了第二个方法:使用三次 PBS,支持任意的噪声, α ≥ 2 β \\alpha \\ge 2\\beta α≥2β 基本思路: 1. 首先消除 ( \[ c \] q , \[ d \] q ) (\[c\]_q,\[d\]_q) (\[c\]q,\[d\]q) 相位的第二高比特。现在(正的)噪声向上传播时,遇到被清零的第二高比特后,不再继续向 MSB 传递影响。 2. 利用上一小节的算法,清理掉 LSD,然后模切换。  假定 PBS 输出的噪声界是 β \\beta β,初始输入 ( c , d ) c,d) c,d) 的噪声上界也是 β \\beta β, * HomFloorAlt: * 输入噪声范围 ( − β , β ) (-\\beta,\\beta) (−β,β),相位是 m \~ q + b q / 4 + x \\tilde mq+bq/4+x m\~q+bq/4+x,其中 b ∈ { 0 , 1 , 2 , 3 } , x ∈ \[ 0 , q / 4 ) b \\in \\{0,1,2,3\\},x \\in \[0,q/4) b∈{0,1,2,3},x∈\[0,q/4),这里的 x x x 包含了噪声项 * 执行 step 3,4 将 LSD 的第二高比特置为零,相位形如 m \~ q + b \~ q / 2 + x + e \\tilde mq+\\tilde bq/2+x+e m\~q+b\~q/2+x+e,其中 b \~ ∈ { 0 , 1 } \\tilde b \\in \\{0,1\\} b\~∈{0,1},噪声为 e ∈ \[ 0 , 2 β ) e \\in \[0,2\\beta) e∈\[0,2β) * **假设满足 q ≥ 8 β q \\ge 8\\beta q≥8β** ,那么 x + e \< q / 4 + 2 β ≤ q / 2 x+e\