在某些同态加密方案(如多密钥全同态加密报告、计算蒙住双眼:全同态加密的新进展)中,定义了加密密钥、解密密钥和计算密钥,以对加密数据执行计算。你能解释一下评估键和其他键的区别吗?
发布于 2019-09-10 07:30:32
公钥用于加密,私钥用于解密,评估密钥用于执行同态运算(通常是同态乘积或某种等价操作,逻辑和门)。
同态加密(HE)方案中的公钥和私钥与其他类型的方案是完全相同的。
评估密钥(evk)也是公开的,它通常由私钥生成,用于控制同态评估过程中的噪声增长或密文扩展。
有些方案有一个“密钥交换”密钥而不是评估密钥,但它们或多或少是相同的。例如,关于FV和YASHE的描述,您可以看到,要执行同态积,首先要乘以密文,\tilde{c}_{mult} := c_1 \otimes c_2,然后使用这个“额外公钥”来调整\tilde{c}_{mult},即得到一个具有正确维数的密文c_{mult},并且可以使用原始密钥解密。
因此,一般来说,这就是使用evk的方式:您执行一个同态操作,它会引入大量噪声,或者在更高的维度生成密文,然后使用evk执行额外的操作来“纠正”该密文。
作为一个额外的例子,看看FHEW库接口,您将看到NAND门使用evk,但not门不使用。
发布于 2019-09-09 14:44:26
在正常情况下,有一个实体想要评估云中的电路而不透露它们的数据。在这种情况下,实体有一个公钥和私钥。实体使用公钥对数据进行加密,并将电路\mathcal{C}发送给\text{EVAL}。
\text{EVAL}( \mathcal{C}(c_1,\ldots,c_l,k_{pub}),其中c_i = Enc(k_{pub},p_i).
在多密钥全同态加密中,每个用户都有自己的敏感数据,不想透露给他人(年龄、性别、薪水等)。但是他们想要根据他们的数据来评估电路。当然,它们可以将数据发送给可信用户,后者可以计算和返回值。问题是,它是真正值得信赖或隐蔽的对手,无论如何,我们通常假设评估者是半诚实的。每个用户不信任多密钥FHE中的想法,而是用他/她的公钥加密他/她的数据,并用他/她的私钥解密他/她的数据。
C_j = Enc(k_{pub_j},P_j),其中k_{pub_j}是用户j的公钥。
现在,如果您使用看,您将看到用户发送他们的公钥进行评估。由于数据是用不同的公钥加密的,所以定义了洋葱加密。这是一系列的操作,以统一数据下的同一洋葱的加密。在此之后,可以对\mathcal{C}进行评估,结果可以由用户私钥解密,其中每个私钥删除一层洋葱。
(标准) LWE中的有效全同态加密中定义的评估键
自举使用加密密钥(在评估密钥中给定)同态运行解密函数,从而“刷新”密文,从而降低噪声。
如果需要引导,可以在密钥生成期间创建评估密钥,并通过电路传输服务器。
在Multy-FHE中,每个用户也发送了他们的评估密钥。
对于这些键中的每一个,密文都用计算键进行“更正”,这样这个键的威力就会在新键中下降。
https://crypto.stackexchange.com/questions/73176
复制相似问题