4.On the Achievability of funcCPA for Existing Schemes
在这部分我们提出我们的结果在对于存在HE方案funcCPA安全的可实现性。在积极的一面,我们证明了funcCPA-security 对于所有有限级的同态方案带有独立的级别密钥(independent level keys)(定义12)是可满足的,例如,在4.1部分关于BV[9],BGV[8]和B\FV[7,18]有限级的全同态方案(leveled HE schemes)。相反的,我们展示funcCPA-security对于同态方案支持不经意密钥提取(oblivious secret key extraction)(定义14),例如,在4.2部分BV[9]和BGV[8]暗示了弱循环安全。
4.1 funcCPA Security of leveled HE Schemes
在这部分我们证明对于自然的有限级HE方案funcCPA-security 成立,例如BV[9],BGV[8]和B\FV[7,18](provided they are CPA-secure)。为了证明这个,我们首先再制定CPA和funcCPA的定义,为了捕捉有限级HE方案的安全性(leveled-funcCPA)。接下来,我们展示了CPA暗示funcCPA对于leveled HE方案满足一个自然的性质,我们叫做独立级别的密钥(independent level keys),并且总结BV,BGV,B/FV(略微修改求值密钥)是leveled-funcCPA-secure。
Security Definitions for leveled HE. 我们处理有限级HE方案用共同结构,每一级别联系一个结合的密钥(通常,公钥,私钥,和求值密钥),并且每个密文用一个(efficiently recognizable)级别关于密钥联系,这个密钥使用在密文中。在这些方案,这是足够去使用恰当level keys去加密,解密,和求值。例如,这成立在BV[9],BGV[8],B/FV[7,18]和CKKS[13]。
对于有限级HE,CPA-security的定义对于标准CPA定义是相似的,并且这两者唯一的不同是敌手选择级别关于挑战密文被加密的能力,定义10。这保证了方案的安全性对于所有级别并且不仅仅对特别的一个。更一般地,
现在我们定义funcCPA关于leveled HE 表示为leveled-funcCPA。这里,除了挑战密文的级别,"decrypt-function-encrypt"预言机是修改返回下一级别的密文。这是,为了回答级别的询问,密文首先使用解密,然后要求的函数是计算明文并且结果是加密的在下一级别公钥,然后返回给敌手,看定义11。更一般地,
CPA implies funcCPA for leveled HE. 在这部分我们定义一个自然的性质关于leveled HE 方案,我们叫做independent level keys并且展示了funcCPA-security对满足这个性质的所有方案成立。(提供它们是CPA-secure)。非正式地,我们说一个leveled HE 方案有独立级别的密钥如果公钥和私钥对对于每一个水平能被独立的取样,并且对于每一个级别的求值密钥能被从当前级别的私钥和下一级别的公钥有效的生成。看定义12.
例如,在BV,BGV和B/FV,的确每个密文是联系一个级别并且有独立加密和解密密钥对于每一级别。此外,求值密钥(在BV,BGV和B叫做密钥转换(key switching)在FV是再线性密钥(re-linearization keys))本质上是对于当前级别(具体地,加密)和下一级别的公钥有效可计算函数的加密。
更精确地,为了生成,他们使用一个fresh 公钥用来。这是重要的当举例说明他们的方案作为全同态方案,即,当有唯一的密钥元组使用在所有级别,在这种情况下使用(而不是)去加密关于的函数要求循环安全。相反,当使用这些方案作为一个有限级HE,正如我们一样,至少密钥是独立取样关于,用加密不在要求循环安全。因此,关于求值密钥的生成能被修改成输出在加密下的,在不损害安全的正确性。在略微的修改下的确这些方案的确满足定义12。
我们现在证明CPA-secure 有限级HE方案带有独立级别的密钥是funcCPA-secure关于任意容许族。函数族应该是容许的在某种感觉所有的是多项式时间可计算的(在安全参数下)并且有固定的输出长度,即,对于所有,。我们注意到后者平凡地成立当指定为电路族。
证明:让是CPA-secure公钥有限级HE方案,信息空间为。假设存在一个容许函数族关于函数在上,使得关于不是funcCPA-secure。那么存在一个敌手和一个多项式对于无穷多的和L下式成立:
(1)
我们在下面展示给敌手我们可以构造敌手可以赢得实验带有不可忽略的优势,违反了是CPA-security。
敌手执行,传递信息在挑战者和,回答来自的任意询问用加密作用于任意信息。做如下事情,
- 当从挑战者收到,把它传给敌手。
- 回答询问对于一个密文级别为通过,对于任意的。
- 一旦生成,和,把他们给挑战者并且返回回答给。
- 输出输出的
由于敌手是ppt和是容许的,敌手是ppt的。此外所有与的互动,都被完全模仿,除了对于询问的回答,被使用作用于任意一个信息模仿。
让实验表示的变体,通过模拟的,即是等同于除了每个对Chal的询问是回答对任意的,公钥对的加密。
通过的定义这是成立:
(2)
此外,CPA安全和关于保证的独立级别密钥(在下面引理4展示的一样)在中获胜的概率和中的概率是计算不可区分的。特别,
(3)
把等式(3)和等式(1)(2)结合,有
(4)
结合是ppt,我们得到矛盾是CPA-secure。完成了证明。
证明在附录C
4.2 Barriers on Proving funcCPA for Existing HE Schemes
在这部分我们证明如果BV[9],BGV[8]同态加密方案是funcCPA-secure,这是弱循环安全的。更一般的,我们展示了满足oblivious secret key extraction(ObvSK)这一性质的所有方案都成立。接下来我们首先正式定义若循环安全和ObvSK;然后证明对于支持ObvSK的方案,funcCPA-security关于恰当的族暗示了弱循环安全;通过展示BV和BGV方案支持ObvSK结束。
循环安全延伸了CPA-security去捕捉公钥加密方案的安全性抵挡敌手看见对私钥加密([11],定义2.5).这要求当前已知全同态加密方案,当他们公布在自举(bootstrapping)过程私钥的加密(这里bootstrapping[19]是同态的求值方案的解密电路对于加密的私钥的输入)。具体地,他们要求安全性成立抵挡敌手可以看见私钥编码过程中的加密,该密钥被指定为解密电路的输入(参见[9]中的定义3.8)。
正式声明,对于一个公钥加密方案,使用接下来的在Chal和敌手实验(这里sk表示在编码中指定的为解密电路所需的私钥)。
Oblivious secret key捕获了从公钥中生成密文加密与密钥相关的数据的能力,以便通过解密可以根据解密电路的需要有效地计算出编码中的密钥。
funcCPA-security 对于方案来说支持ObvSK暗示了弱循环安全。接下来我们展示如果一个公钥加密方案支持ObvSK关于并且对于包含于的函数族是funcCPA-secure,那么是弱循环安全的。
证明:证明的思想是,给一个pk,首先使用Alg(来自ObcSK性质)去得到关于sk的加密数据;然后使用(来自funcCPA的性质)去转化它们成为密文,对sk的加密(对于解密电路的编码);最后展示-如果方案不是循环安全的-那么使用我们可以打破funcCPA-security。正式的细节出现在附录C.2.
作为定理12的推论,我们总结对于可自举的(bootstrappable) ObvSK方案,funcCPA-security暗示全同态在不依赖任何循环安全的假设。
证明:这个证明是结合了两个事实。首先,通过在[19]中定理4.3.2,可自举的HE方案是弱循环安全是全同态的。第二,通过定理12,如果支持ObvSK关于并且关于包含于的函数族是funcCPA-secure,是弱循环安全。结合上面,我们总结是全同态。
Schemes support ObvSK. BV和BGV是支持ObvSK方案的例子。更一般地,我们展示了ObvSK是支持对于所有公钥加密方案满足下面:
- 私钥和密文是来自环: -LWE-based 方案: -RLWE-based 方案:对于 这里q,n,d是正整数,d为2的幂次。,s有小的系数在某种程度上解密正确性成立对每个s的系数的加密。
- 通过内积解密(with messages encoded in the least significant bits):这里是z除x的剩余,并且p是正整数。