运算中非常有用。让我们来看看GLWE(Generalized LWE,包含LWE和RLWE)来简单了解这些密文。消息加密可以表示为: 其中M为加密信息,△= q/p中q和p均为大整数(通常为2的乘方),Si为密钥(k是最多为N次方的多项式),Ai为随机抽样系数(称为“mask”掩码),E为噪声误差。每次加密都对“mask”和噪声误差进行采样,也就是说即使对同一消息进行加密结果也会有所不同。 为了能够解密消息,|E|应该小于△/2 (|E|<△/2)。如果此条件成立,解密将如下所示: 回头看bootstrapping,我们在前文简要介绍了一种降噪工具,该工具正好应用了上述两步解密过程。特别是,它在第一步中计算了单项式X的指数,然后使用这个新的单项式来轮替查找表(Look-Up Table, LUT),用来计算第二个解密步骤(重缩放和近似舍入)。 从GLWE到LWE,取N = 1(N是S中多项式的最大可能乘方)。 从GLWE到RLWE,取k = 1 (S中多项式的个数),N-2的乘方。 为了简要定义GGSW,我们必须简要定义GLev,即GLWE密文的向量。那么,GGSW密文就是GLev密文的向量。若GLWE密文是Rq元素的向量,则GGSW密文就是Rq元素的三维矩阵: Part 2:密文同态加法的运算 假设我们有两个GLWE密文对消息M和M’进行加密。然后,我们可以将两个密文各分量相加,结果将得到一个新的GLWE密文,对M+M’的合进行了加密。 为了执行同态加法运算,我们在Rq 中谨慎添加分量项: A0(+) = A0 + A’0, A1(+) = A1 + A’1, B(+) = B + B’ Part 3:未加密常数的同态乘法运算 假设我们有一个GLWE密文加密了消息M和一个小常数多项式Λ。然后,我们可以将多项式Λ乘以密文M的每个分量,结果将是一个新的GLWE密文加密Λ⋅M的乘积。 至于解密,也可以使用与GLWE相同的方法。 要将两个GLev密文或两个GGSW密文相加,只需将组成它们的对应GLWE密文相加即可。假设我们想要将GLev密文或GGSW密文乘以一个小常数多项式Λ。在这种情况下,将所有GLWE密文相加乘以Λ就足够了。 然而,这只在常数很小的情况下有效。如果常数很大,噪声就会与常数大小成比例地增长。如果我们将密文的各元素与一个较大常数相乘,噪声就会影响结果。为了解决这个问题,需将大常数分解为多个base底数: 为了使分解可逆,可以使用GLev加密。 另一种选择是基于NTRU假设的方案。然而,这些方案也明显安全性不足。 目前,假设只有LWE方法是适用的,但有一个缺点,就是LWE类型加密要求每个密文由两个元素组成,而NTRU方案的主要优点是密文仅由一个ring元素组成。另一个问题是,从某种意义上说,就是把安全性的全部鸡蛋放在一个篮子里。 7、当前区块链FHE项目 Zama——隐私保护开源加密工具。 Secret Network——具有可定制隐私功能的区块链。 Sunscreen——一个用于全同态加密和零知识证明的编译器。 Fhenix——一个由全同态加密提供支持的区块链。 Ingonyma——硬件加速。 Cysic——硬件加速。 Mind Network——隐私rollup。 8、区块链外的FHE项目 FHE可应用于许多需要隐私保护计算的情况。 除了区块链项目,FHE还主要应用于注重隐私保护的机器学习。例如,客户端希望使用自己的私有数据和外部AI模型。 客户端使用FHE对数据进行加密,然后将密文上传到服务器。服务器对密文进行AI模型的同态计算。计算完成后,服务器返回加密结果,客户端可以对其进行解密查看结果。 基于FHE的安全性和功能性,客户端数据的保密性和结果的正确性可以得到保障。该应用的一个突出特性是,在计算过程中,客户端并不需要与服务器交互。 来源:金色财经lg...