全同态加密的理论与构造-上篇

1基础知识同态加密算法的简单定义如下:

同态加密的一个经典的应用是外包计算(或者说云计算)。有一个客户端计算能力很弱,而服务器计算能力很强。客户端希望云服务器执行计算任务,但又不想泄露隐私数据。此时可以考虑使用同态加密进行加密计算。这是一个非常经典的应用场景。

1.1 安全性

为了保证更强的安全性,GoldWasser和Micali在1984年提出了概率加密,引入更强的安全目标:语义安全。理论上已证明,语义安全(Semantic Security,SS)等价于密文不可区分性。semantic security 语义安全:一个密文不会泄露除了长度之外的任何明文信息。我们很少用semantic security的形式来说明算法的安全性,因为他形式化的描述比较晦涩。IND-CPA 、IND-CCA1、IND-CCA2是常见的对于公钥加密安全性的定义。这里对三者进行简单介绍。参考了下面链接的文章。

[https://blog.csdn.net/m0_47659650/article/details/125223197]

IND-CPA

IND-CPA是选择明文攻击下的不可区分性。敌手和挑战者商定目标密码体制,选定加密密钥pk,然后进行以下各阶段:寻找阶段:敌手选择两个等长的明文,

猜测阶段:敌手被挑战者告知其中一个明文和随机数r的加密结果, 判断是还是, 其中b是保密的。

敌手的目标是以大于二分之一的概率猜对b的值。下面定义敌手的优势。

如果可以忽略,那么可以认为和不可区分。

IND-CCA1

IND-CCA1是选择密文攻击下的不可区分性。相对前者,增加敌手可以在收到之前,调用一次加密或解密能力,下面是具体流程:

训练: 敌手向挑战者请求任意密文的解密(多项式有界次数),即选取密文C给挑战者,挑战者返回解密结果给敌手。

挑战:敌手A选择两个等长的明文,, 再从挑战者接受加密后的密文, b是随机的;猜测:敌手输出, 若=, 则敌手成功。敌手的目标是以大于二分之一的概率猜对b的值。下面定义敌手的优势:

敌手

如果敌手可以忽略,那么认为此密码体制在非适应性选择密文攻击下具有不可区分性,称为IND-CCA1安全。

IND-CCA2

IND-CCA2是自适应选择密文攻击下的不可区分性。
相对前者,不限制敌手调用解密的时间。下面是具体流程:

训练1:敌手向挑战者请求任意密文的解密(多项式有界次数),即选取密文C给挑战者,挑战者返回解密结果给敌手。挑战:敌手A选择两个等长的明文,, 再从挑战者接受加密后的密文, b是随机的;训练2:敌手继续向挑战者请求任意密文的解密(多项式有界次数),即选取密文C(C不能是)给挑战者,挑战者返回解密结果给敌手。猜测:敌手输出, 若=, 则敌手成功。

同态算法是不能做到IND-CCA2的。IND-CCA1能做到但是比较复杂。在这个课程,只专注于IND-CPA这个级别的语义安全。

1.2 从SK-HE 到 PK-HE

在同态加密暑期班郁昱老师的课程笔记中我们也提到过,可以从一个对称同态加密算法来构造一个非对称的同态加密算法。我们接下来再简单回顾一下。假设是一个对称同态加密算法。

定义:

其中B是密文的规模上限。

假设我们要加密, 定义

Choose, such that.

Define.

Let定义则得到的是一个公钥加密的同态加密算法。因此,在不考虑效率的情况下,对称的全同态算法和非对称的全同态算法是等价的。

2Gentry's Bootstrapping 理论

2.1 Augmented Decryption Circuit

假设是一个非对称同态加密方案。我们定义一个Decryption Circuit如下:

这个公式可以理解为用对密文进行解密。在这里是输入,是公开的。

若=,则:

Augmented Decryption Circuit:

NAND是一个通用电路,我们可以使用NAND来构造任何逻辑电路。NAND可用如下式表达,

这个定义也有一个很好的性质,

NANDNAND

2.2 Bootstrapping Theorem

对于一个同态加密算法,如果他对密文计算支持Augmented Decryption Circuit,那么它是bootstrappable。

如果存在一个bootstrappable公钥同态加密机制,那么就一定存在全同态加密机制。

remark: 这里是对定理的一个简化版本的描述,完整版还需要加上更多的限制。但是这并不影响我们对课程的理解。

2.3 Gentry's Construction

假设是一个bootstrappable的同态加密算法。我们根据以下步骤来进行构造。

1 密钥生成

这里生成了一个BK, 方法是用PK加密SK.

2 加密

3 解密

4 Eval

这里Eval的计算,其实就是将加密后的放到AGC电路里面进行计算,得到的就是两个密文对应的明文的NAND。也就是,NAND如下图,这个过程是可以一直做下去的。理论上就实现了一个全同态算法了!

注意

1 刚才的计算定义的明文空间是,我们需要按比特拆开来计算

2 这里用自己的公钥加密自己的私钥,这个操作是否是安全的。到目前为止,这仍是一个开放的问题。

2.4 Leveled FHE

Leveled FHE方案的定义:给定一个整数, 我们可以对电路深度不超过的电路执行同态加密操作。假设是一个bootstrappable的同态加密算法。它的构造方法如下。1 密钥生成这个方案先生成对公私钥,然后的生成跟刚才不一样。是使用加密,用加密,以此类推。

2 加密

注意这里是使用来做加密

3 解密

4 Eval

对于第层,当进行Eval计算时,将放入ADC电路中,得到的结果是用加密的明文。同理,层得到的是的密文。以此类推,最终得到的密文。

可以将这个方案理解为一个链式的拓展。这样的链式方案就避免了用自己的公钥来加密私钥的问题。

作者简介:

庄智廉,重庆大学大数据与软件学院研究生。主要研究兴趣包括隐私保护机器学习、差分隐私、联邦学习。知乎:acai

关注开放隐私计算公众号,了解更多内容

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值