【117】基于完全同态加密的改进计算委托

0x00 Abstract

继 Gennaro、Gentry 和 Parno(Cryptology ePrint Archive 2009/547)之后,我们使用完全同态加密来设计用于委托计算的改进方案。在这种方案中,委托人将函数 F 在许多动态选择的输入 xi 上的计算外包给工作人员,使得工作人员无法让委托人接受 F (xi) 以外的结果。 Gennaro 等人的“在线阶段”。方案非常有效:双方交换两条消息,委托人在时间 poly(log T ) 中运行,工作人员在时间 poly(T ) 中运行,其中 T 是 F 的时间复杂度。然而,“离线阶段”(取决于函数 F 而不是要委托的输入)效率低下:委托者及时运行 poly(T ) 并生成需要访问的长度为 poly(T ) 的公钥在在线阶段由工人。

我们的第一个构造消除了 Gennaro 等人的大公钥。方案。委托人仍然在离线阶段投入 poly(T ) 时间,但不需要沟通或发布任何内容。我们的第二个构造将离线阶段委托人的工作减少到 poly(log T),代价是与 poly(T)-time worker 进行 4 条消息(离线)交互(不必与 worker 相同)在线阶段使用)。最后,我们描述了第二个构造的“流水线”实现,它避免了在检测到错误后重新运行离线构造的需要(假设错误不是太频繁)。

关键词:可验证计算,外包计算,最坏情况/平均情况减少,计算上合理的证明,通用论证系统。

0x01 Introduction

委托计算的问题考虑了这样一种情况,即委托方希望将函数 f 的计算委托给另一方党, 工人.挑战在于委托人可能不信任工作人员,因此希望工作人员“证明”计算已正确完成。显然,我们希望验证这个证明比进行计算更容易。

这种“外包”计算的概念与现实世界的几个场景相关,如以下三个示例所示(取自 [GGP09,GKR08]):

  1. 志愿计算。志愿者计算的想法是让服务器将大型计算拆分为小单元,将这些单元发送给志愿者进行处理,然后重新组合结果(通过更简单的计算)。伯克利网络计算开放基础设施 (BOINC) [And03,And04] 就是这种平台的一个例子。使用 BOINC 平台的一些著名项目是 SETI@home 和 Great Internet Mersenne Prime Search [Mer07]。我们建议读者参考 [GKR08] 以了解有关这些项目的更多详细信息。
  2. 云计算。在云计算的背景下,企业从服务中购买计算时间,而不是购买自己的计算资源。
  3. 弱的移动设备。移动设备,如手机、安全访问卡、音乐播放器和传感器,通常在计算方面非常薄弱,因此需要远程计算机的帮助来运行昂贵的计算。

关于这种情况,一个很自然的问题是:如果工人不诚实怎么办?例如,在志愿者计算设置中,敌对的志愿者可能会将错误引入计算。在云计算示例中,云(即提供计算服务的业务)可能有经济动机来返回不正确的答案,如果这样的答案需要较少的工作并且不太可能被客户机检测到。此外,在某些情况下,外包给云的应用程序可能非常关键,委托方希望排除计算过程中的意外错误。对于弱移动设备,设备和远程计算机之间的通信通道可能被对手破坏。

在实践中,许多项目通过冗余来应对这种欺诈;同一个工作单元被发送给几个工作人员,然后比较结果的一致性。然而,这需要使用几个工人,对工人的串通几乎没有提供防御。

相反,我们希望工人向委托证明计算是正确执行的。当然,验证证明所需的时间要明显小于实际运行计算所需的时间,这一点很重要。同时,进行证明的工作人员的运行时间也应该是合理的——与进行计算所需的时间相当。例如,当委托计算一个花费时间T且输入和输出长度为n的函数f时,我们希望委托运行时间为poly(n, log T),而工作函数运行时间为poly(T)。

1.1以前的工作

从[Bab85,GMR89]开始,关于概率证明系统的大量工作与安全委托非常相关。实际上,在对输入x计算被委托函数f并发送结果y之后,worker可以使用各种类型的证明系统来说服委托方相信“f(x) = y”这一陈述。

互动的证明。IP=PSPACE定理[LFKN92,Sha92]对任何可在多项式空间中计算的函数f产生交互证明,其验证器(委托)运行时间为多项式时间。然而,证明者(工作者)的复杂性也仅受多项式空间(因此是指数时间)的限制。这个定理是精制和按比例缩小(FL93)给验证器复杂性聚(n, s)和验证的复杂性2聚为函数f (s)在时间T和空间年代可计算的,输入的长度n。注意,验证的复杂性仍然superpolynomial T,甚至对于在尽可能最小的空间中运行的计算,即s = O (log T)。然而,最近Goldwasser等人[GKR08]将证明复杂度改进为poly(T, 2s),即poly(T) we n s = O(log T)。更一般地,Goldwasser等人[GKR08]给出了小深度d(即并行时间)计算的交互证明。对于这些,它们实现了证明复杂性poly(T)和验证复杂性poly(n, d, log T)。(这意味着空间有界计算的结果,因为在时间T和空间s中运行的算法可以转换为在时间poly(T, 2s)和深度d = O(s2)中运行的算法。)然而,如果我们不局限于小空间或小深度的计算,那么我们就不能使用交互证明。事实上,任何具有与验证者运行时间(从而通信)TV的交互证明的语言,都可以在空间poly(n, TV)中确定。

pcp和MIPs。MIP=NEXP定理[BFL91]和Babai等人[BFLS91]给出了时间T计算的多证明交互证明和概率可检验证明,证明运行在时间poly(T)和验证运行在时间poly(n, log T),完全符合我们的要求。然而,使用这些委托需要专门的通信模型——要么是两个非通信的验证者,要么是验证者给予验证者随机访问长PCP(长度为poly(T))的机制,验证者在验证期间不能更改该PCP。

交互式参数。交互论证[BCC88](又名计算上的合理证明[Mic94])将合理性条件放宽为计算性的,而不是改变通信模型。也就是说,不是要求任何证明者策略都不能说服错误陈述的验证者,而是要求任何计算上可行的证明者策略都不能说服错误陈述的验证者。在该模型中,Kilian [Kil92]和Micali [Mic94]给出了证明复杂性poly(T, k)和验证复杂性poly(n, k, log T)的恒轮协议(其中k为安全参数),并假设存在抗碰撞函数。在亚指数硬度假设下,安全参数可以取小到polylog(T);对于下面描述的方案也是如此。

对交互的解决方案。在这项工作中,我们感兴趣的是接近非交互解决方案(具有计算可靠性)。理想情况下,工作者/验证者应该能够在发送计算结果的同一消息中向委托/验证者发送一个证明。

这种可能性的有效的非交互式参数是由Micali [Mic94],与验证表明,非交互式参数复杂性保利(T, k)和验证器复杂性聚(n, k,日志T)可能在随机预言模型(Oracle是用来消除交互la菲亚特-沙米尔[FS86])。试探性地,人们可能希望通过使用适当的哈希函数族实例化随机oracle,我们可以获得委托计算的非交互式解决方案:在离线阶段,验证者/委派者(或可信的第三方)从族中选择并发布一个随机哈希函数,而在在线阶段,证明完全是非交互的(从验证者到验证者只有一条消息)。然而,众所周知,随机Oracle启发式在一般情况下是不可靠的[CGH04],甚至在Fiat-Shamir [Bar01,GK03]的背景下也是如此。因此,尽管进行了大量的努力,有效的非交互参数的存在仍然是复杂性和密码学中一个重要的开放问题。

最近在减少互动方面取得了一些进展。通过Kalai和Raz [KR09]的转换,Goldwasser、Kalai和Rothblum [GKR08]展示了如何将小深度计算的交互证明转换为“公钥”模型中的非交互参数(假设存在单服务器私人信息检索(PIR)方案):在脱机阶段,验证者/委派者生成公钥/秘钥对,发布公钥并存储秘钥。然后,在在线阶段,验证者/工作者检索公钥,并可以构造一个证明,并将其与计算结果一起发送。然而,与[GKR08]的交互证明一样,这个解决方案只适用于小深度的计算,因为验证者的复杂性随深度线性增长。

最近,Gennaro、Gentry和Parno [GGP09]展示了如何通过增加验证器的离线复杂度和公钥大小,以及使用完全同态加密(FHE)方案(最近由Gentry [Gen09]构建)来委派任意计算。在他们的建筑,在委托投资保利(T, k)工作在离线阶段构造公钥的大小保利(T, k)和一个密钥大小聚(k) (f o r d e l e g T i n g f u n c T i o n f中可计算的时间T)。在线阶段,在委托的运行时间减少了聚(n, k,日志T)对于一个长度为n的输入,和工人的复杂性是保利(T, k)。因此,在委托的大型投资在离线阶段可以平摊在网上的许多执行阶段委托f的计算资源。他们的在线舞台并非完全没有互动,而是由两条信息组成。然而,在许多应用程序中,两条消息无论如何都是必要的,因为委托可能需要将输入x传递给工作者。

我们注意到,在委托方拥有秘钥的方案中(即[GKR08]和[GGP09],以及我们下面的两个结构),存在稳健性只有当对抗性的工作人员不知道授权人已经拒绝了一个证明时才有保证。因此,要么接受/拒绝的决定应该保密,要么在拒绝后重新运行(可能很昂贵)离线阶段。

1.2我们的结果

在这项工作中,我们提供了以下协议,以改进Gennaro等人的工作[GGP09]:

  • 我们的第一个协议消除了Gennaro等人方案的大公钥。也就是说,委托在脱机阶段仍然执行poly(T, k)工作,但这次计算的结果只是一个长度为poly(n, k, log T)的秘钥;在在线阶段之前,不需要与工作者进行任何交互(甚至不需要传输公钥)。
  • 我们的第二个协议将离线阶段的委托工作减少到poly(n, k, log T),代价是与时间为poly(T, k)的worker进行恒轮交互。在这个协议中,在一个被拒绝的证明之后重新运行离线阶段变得更加合理。因此,没有理由对接受/拒绝的决定保密。
  • 最后,我们描述了第二个协议的“流水线”实现,它避免了重新运行脱机阶段的延迟,同时保持了可靠性,即使接受/拒绝的决定被揭示。此解决方案要求双方都维护状态,并且如果故障不经常发生,则保持完整性。因此,这个解决方案最适用于这样的情况:委托多次使用一个worker,并且有随机错误(在通信或计算)可能导致委托偶尔拒绝。

与[GGP09]一样,我们所有的协议都要求使用完全同态加密方案,并有一个2消息在线阶段。表1给出了我们的模型和结果与以往工作的完整比较。

组织。关于完全同态加密方案的初步介绍见第2节。然后我们在第3节给出我们的模型的正式定义。在第4 - 8节中,我们从一个简单的方案Del1开始,它实现了相当弱的属性,并通过一系列步骤加强它,从而得到我们的主要委托方案Del4和Del5。

由于空间限制,我们跳过了所有的证明。详细内容请参考本文全文[CKV10]。

0x02 关于完全同态加密的初步研究

受Gennaro, Gentry和Parno [GGP09]最近关于安全授权的工作的启发,我们的结构依赖于使用完全同态加密方案。

完全同态加密。如果一个公钥加密方案 E = (KeyGen, Enc, Dec) 与一个额外的多项式时间算法 Eval 相关联,则称它是完全同态的,该算法将公钥 pk 作为输入,密文 ^x = E n c ( x) 和电路 C,并输出一个新的密文 c = Evalpk(^x, C),使得 Decsk(c) = C(x),其中 sk 是与公钥 pk 对应的密钥。要求 c = E v a lpk(Encpk(x), C) 的大小在多项式上取决于安全参数和 C(x) 的长度,但在其他方面与电路 C 的大小无关。我们还要求Eval 是确定性的,并且该方案具有完美的正确性(即它始终保持 Decsk(Encpk(x)) = x 和 Decsk(Evalpk(Encpk(x), C)) = C(x))。为了安全,我们只要求 E 在语义上是安全的。

在最近的一项突破中,Gentry [Gen09] 提出了一种基于理想格的完全同态加密方案。在他的基本方案中,算法的复杂性(KeyGen、Enc、Dec)线性依赖于电路 C 的深度,其中 d 是电路 C 深度的上限,允许作为 Eval 的输入。然而,在他的方案是循环安全的附加假设下(即,即使给定密钥的加密,它仍然是安全的),这些算法的复杂性与 C 无关。此外,Gentry 的构造满足完美的正确性和 Eval他的方案可以是确定性的。详情请参阅 [Gen09]。

[GGP09] 构造的一个有趣方面是他们如何使用完全同态加密方案的保密属性来实现其委托方案中的健全性;这种现象在我们的工作中也多次出现。

0x03 模型

在本节中,我们正式定义了一个模型来捕获我们感兴趣的委托计算场景。

定义 1(委派方案)。委托方案是一个交互协议 Del = ?D, W?委托人 D 和工作人员 W 之间的结构如下:

......

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小海马的人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值