多承租人数据中心中的安全计算方法转让专利

申请号 : CN201210011020.X

文献号 : CN102611692B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·F·卡马拉M·P·雷科娃

申请人 : 微软公司

摘要 :

本文档描述了用于在多承租人数据中心中的安全计算的各技术和装置。这些技术准许客户机将对功能的计算委托给多个物理计算设备,而没有客户机信息易受暴露。这些技术防止恶意实体发现客户机的信息,即使该实体是作为客户机的相同物理计算设备中的许多上的共同承租人。

权利要求 :

1.一种计算机实现的方法,包括:

执行秘密共享方案的秘密共享操作,用于将对函数的输入拆分成能够由所述秘密共享方案的恢复操作恢复的输入份额,所述对函数的输入从客户机设备处接收;

使得所述输入份额由不同的物理计算设备接收,所述不同的物理计算设备之一是从其接收所述对函数的输入的客户机设备,用于阻止潜在的恶意实体在全部所述不同的物理计算设备上运行,所述不同的物理计算设备能够联合地执行多方计算协议,用于评估与所述函数和所述秘密共享方案相关联的功能,从而导致所述多个物理计算设备中的每一个产生不同的输出份额;

从所述不同的物理计算设备接收所述不同的输出份额;以及

对所述不同的输出份额执行所述恢复操作,用于确定对所述函数的输出。

2.如权利要求1所述的计算机实现的方法,其特征在于,所述多方计算协议用于阻止在所述不同的物理计算设备中的一个上的共同承租的所述恶意实体或另一恶意实体来确定除了由所述恶意实体或所述另一恶意实体所接收的输入份额以外的输入份额中的任一个。

3.如权利要求1所述的计算机实现的方法,其特征在于,执行所述秘密共享操作用于在所述输入份额中的任一个是未知的情况下阻止对所述函数的输入的恢复。

4.如权利要求1所述的计算机实现的方法,其特征在于,执行所述秘密共享操作用于在所述输入份额中的任一个或所述不同的输出份额中的任一个是未知的情况下阻止对所述函数的输出的恢复。

5.如权利要求1所述的计算机实现的方法,其特征在于,执行所述秘密共享操作执行两个多项式时间算法,所述两个多项式时间算法用于阻止基于所述输入份额中的任何子集来计算所述输入。

6.如权利要求1所述的计算机实现的方法,其特征在于,所述不同的物理计算设备是不同的个人计算机。

7.一种计算机实现的方法,包括:

接收函数以及对所述函数的输入,其中在对所述输入执行所述函数时得到输出,所述对函数的输入从客户机设备处接收;

确定在其上执行多方计算协议的不同的物理计算设备,其中通过将所述不同的物理计算设备之一分配给所述客户机设备,没有潜在的恶意实体能够在全部所述不同的物理计算设备上运行;

执行秘密共享方案的秘密共享操作,用于将所述输入拆分成与所述不同的物理计算设备相同数量的输入份额;

使得不同的物理计算设备执行所述多方计算协议,以基于所述秘密共享方案和所述函数来评估功能,其中所述不同的物理计算设备中的每一个只具有所述输入份额中的一个;

从所述不同的物理计算设备中的每一个接收一个输出份额;以及

执行所述秘密共享方案的恢复操作,以便从所述输出份额确定所述输出。

8.如权利要求7所述的计算机实现的方法,其特征在于,还包括基于所述秘密共享方案、所述函数、以及所述多方计算协议来确定所述功能。

9.如权利要求7所述的计算机实现的方法,其特征在于,所述不同的物理计算设备执行与从其中接收所述输入的客户机设备相关联的虚拟机。

说明书 :

多承租人数据中心中的安全计算方法

技术领域

[0001] 本发明涉及通信邻域,尤其涉及多承租人数据中心中的安全计算。

背景技术

[0002] 现代数据中心是高效、可靠的,且可伸缩自如地对变化的计算需要作出响应。例如,这些数据中心可使数万个体能够使用广泛的计算资源来浏览因特网或执行操作。
[0003] 为满足这些需要,现代数据中心常常使用多承租人技术。多承租人技术在诸如相同的计算机服务器等相同的物理机上分配虚拟机。由此,一个客户机的虚拟机可在与另一客户机的虚拟机相同的物理机上运行。当这种情况发生时,一个客户机的信息可能易遭受其他客户机的发现。
[0004] 为尝试解决这一问题,当前技术通过系统管理程序来隔离虚拟机或减少多承租人的使用。然而,这些技术常常不足以纠正这一漏洞,或降低现代数据中心的效率、可靠性或弹性。

发明内容

[0005] 本文档描述了用于在多承租人数据中心中的安全计算的各技术。这些技术准许客户机将对函数的计算委托给多个物理计算设备,而客户机信息不会易受暴露。这些技术防止恶意实体发现客户机的信息,即使该实体是作为客户机的相同物理计算设备中的许多上的共同承租人。
[0006] 提供本发明内容以便介绍将在以下详细描述中进一步描述的用于多承租人数据中心中的安全计算的简化概念。本发明内容并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。用于多承租人数据中心中的安全计算的各技术和/或装置此处也被分开地或结合地称为“技术”,如上下文所准许的。

附图说明

[0007] 参考以下附图描述用于多承租人数据中心中的安全计算的各实施例。在各附图中,使用相同的标号来指示相同的特征和组件:
[0008] 图1示出可实现多承租人数据中心中的安全计算的各技术的示例环境,该环境具有客户机设备、可信第三方、以及各自具有物理计算设备的数据中心。
[0009] 图2示出图1的客户机设备的示例实施例。
[0010] 图3示出图1的数据中心中的一个的示例实施例。
[0011] 图4示出用于聚焦于客户机设备作出的动作的多承租人数据中心中的安全计算的示例方法。
[0012] 图5示出聚焦于可信第三方和/或数据中心进程管理器作出的动作的多承租人数据中心中的安全计算的示例方法。
[0013] 图6示出可实现用于多承租人数据中心中的安全计算的各技术的示例设备。

具体实施方式

[0014] 概览
[0015] 本文档描述了用于在多承租人数据中心中的安全计算的各技术和装置。考虑客户机具有在两个数据中心中的九个计算机服务器上运行的九个虚拟机的情况。这些技术防止恶意的其他客户机发现客户机的信息,即使该恶意其他客户机具有在相同的这九个计算机服务器中的大多数上运行的虚拟机。
[0016] 本讨论以下继续描述这些技术可操作的示例环境、可由这些技术执行的各方法、示例实现、以及示例装置。
[0017] 示例环境
[0018] 图1示出可实现多承租人数据中心中的安全计算的各技术的示例环境100,该环境具有客户机设备102、可信第三方104、各自具有物理计算设备110的数据中心106和108、以及通信网络112。这些物理计算设备110被示为数据中心中的服务器计算机,但也可使用其他计算设备且无需位于数据中心中,其他计算设备诸如不同的桌面计算机(例如,类似于执行搜索外星生命(Search for Extra-Terrestrial Life,SETI)的个人计算机网络)。仅举几个例子,通信网 络112可包括因特网、局域网、广域网、无线网络、USB集线器、计算机总线、或其组合。
[0019] 如图1所示,客户机设备102包括函数f(x)=y,其中,该函数为f,输入为x,且输出为y。该函数可以是对输入执行并得到输出的任何函数,诸如对计算应用的一个或许多操作。如上所述,这些技术防止诸如客户机设备102的输入x或输出y等信息由在一个或多个数据中心106、108的物理计算设备110上具有某些共同承租人的恶意的其他实体发现。
[0020] 图1示出各技术可操作的许多可能的方式中的两种。第一种方式示出客户机设备102通过通信网络112向可信第三方104提供输入x。可信第三方104接收输入,将输入拆分成某一数目的输入份额114(这里为五个),并将这些提供给数据中心106和108的物理计算设备110。可信第三方104可与数据中心106、108集成或与之不同,如下文将更详细地描述的。
[0021] 图1示出各技术可操作的第二种方法,第二种方法示出客户机设备102将输入x拆分成五个份额114,并将这些份额通过通信网络112直接提供给物理计算设备106和108。本文稍后详述各技术如何执行这两种方式、以及如何找出对函数的输出。
[0022] 图2是客户机设备102的示例实施例的图示。客户机设备102包括一个或多个处理器202以及计算机可读介质204。计算机可读介质202包括函数管理器206、函数208、以及在某些情况下的秘密共享方案210。
[0023] 函数管理器206能够管理函数和/或客户机设备102与诸如可信第三方104和数据中心106、108等远程实体之间的通信。如上所述,客户机设备102可按多种方式动作,在某些情况下,函数管理器206执行秘密共享方案210的操作,用于将输入x拆分成n数量的输入份额(x1,...,xn),提供这些输入份额,接收n数量的输出份额(y1,...,yn),并且执行秘密共享方案210用于从这些输出份额中恢复输出y。在某些其他情况下,客户机设备102通过函数管理器206提供输入x和接收到的输出y(例如,从可信第三方104)。
[0024] 如图2所示,客户机设备102可以是各种计算设备中的一个或其组合,这里以六个示例示出:膝上型计算机102-1、平板计算机102-2、智能电话102-3、机顶盒102-4、台式计算机102-5、或游戏设备102-6,但也可使用诸如服务器 和上网本等其他计算设备和系统。
[0025] 图3是数据中心106和108的示例实施例的图示。数据中心106和108可以是相似的、相同的或不同的,虽然两者至少包括物理计算设备110、一个或多个数据中心处理器302、和数据中心计算机可读介质304。介质304包括进程管理器306、可信第三方104、多方计算协议308、以及功能310。进程管理器306可包括可信第三方104和/或数据中心106、
108中的一个或多个的数据中心控制器,或被包括在其中,或与其集成。可信第三方104被示为分开的实体且被包括在数据中心106和/或108中,虽然这些中没有一个是必需的。物理计算设备110中的每一个包括处理器,并且包括介质或能访问介质,该介质可与处理器
302和/或介质304重叠(未示出)。
[0026] 进程管理器306能够使得物理计算设备110(或是在一个数据中心或是在多个数据中心)能够联合执行多方计算协议308用于执行功能310。每一分配的物理计算设备110基于其接收到的输入份额xi来这样做,并输出其输出份额yi。功能310基于如上所述的函数f。图1-3的实体动作和交互的方式在下文中更详细地阐述。
[0027] 示例方法
[0028] 图4描绘用于聚焦于客户机设备作出的动作的多承租人数据中心中的安全计算的方法400。在以下讨论的各部分中,将对图1的且如图2和3中详细描述的环境100做出参考,对其的做出的参考仅出于示例目的。
[0029] 框402执行秘密共享方案的秘密共享操作,用于将对函数的输入拆分成能够由秘密共享方案的恢复操作恢复的输出份额。这一秘密共享操作可由客户机设备102或诸如可信第三方104等某一其他设备来执行。方法400聚焦于客户机设备102的性能;稍后的方法聚焦于可信第三方104的性能。
[0030] 作为示例,假设客户机设备102向函数f输入x,且希望函数由一个或多个数据中心执行用于安全地得到输出y,而输入x和输出y不会易于遭受在这些数据中心的一个或多个物理计算设备110上潜在地共享共同承租人的某一实体发现。因此,在框402,函数管理器206具有输入x,函数208(f(x)=y),且期望得到y。为这样做,函数管理器206在框402执行对输入x执行秘密共享方 案210的秘密共享操作,用于将x拆分成某一数量n的输入份额(x1,...,xn)。
[0031] 一般而言,秘密共享操作用于防止在任何输入份额子集上恢复对该函数的输入。由此,如果单个输入份额对恶意实体是未知的,则该实体无法恢复该输入。在输入份额或输出份额中的任一个对恶意实体是未知的情况下,可防止对该函数的输入的恢复。如上所述,这准许在许多相同的物理计算设备上对输入份额和输出份额的共同承租。由此,如果秘密共享操作被执行用于将一输入拆分成被发送到42个不同的物理计算设备的42个输入份额,则即使恶意实体能够诸如通过与42个不同的物理计算设备中的41个共同承租地操作,来确定41个不同的输入份额,该恶意实体也无法知道该输入。各技术可假设完全共同承租的可能性如此低以至于可以忽略,诸如在物理计算设备是从许多上万个物理计算设备中随机分配的情况下。在某些其他情况下,各技术确保不同的物理计算设备中的至少一个不与任何潜在的恶意实体共享共同承租。
[0032] 此处构想了各种特定类型的秘密共享方案,诸如两个多项式时间算法,它们的示例可在以下示例实现部分中提供。
[0033] 框404使得这些输入份额要由不同的物理计算设备接收。如上所述,这些不同的物理计算设备能够联合执行多方计算协议,用于评估与该函数和秘密共享方案相关联的功能。完成时,不同的物理计算设备产生不同的输出份额。框404可使得这些输入份额以各种方式来接收,其中一种方式是将每一输入份额安全地传输至每一物理计算设备或传输至能够这样做的管理器。
[0034] 继续正在进行的示例,函数管理器206将数量n的输入份额(x1,...,xn)传输至图3的进程管理器306,该进程管理器306随后将每一个输入份额安全地传递给不同的物理计算设备110。进程管理器306管理这些设备110以联合执行多方计算协议308用于执行功能310,以便提供数量n的输出份额(y1,...,yn)。可执行这个的方式在下文稍后详述。
[0035] 框406或只是直接地或是通过中介从不同的物理计算设备接收不同的输出份额。在该正在进行的示例中,进程管理器306经由通信网络112将这些输入份额(y1,...,n)提供给函数管理器206。
[0036] 框408对不同的输出份额执行秘密共享方案的恢复操作,用于确定对该函数的输出。这里,进程管理器306对输出份额(y1,...,yn)执行与秘密共享方案 +210的秘密共享操作相对应的恢复操作,用于确定输出y。
[0037] 图5描绘聚焦于可信第三方和/或数据中心进程管理器作出的动作的多承租人数据中心中的安全计算的方法500。在以下讨论的各部分中,将对图1的且如图2和3中详细描述的环境100做出参考,对其的做出的参考仅出于示例目的。
[0038] 框502接收函数以及对函数的输入。如果对输入执行这一函数,则这一函数得到输出。作为示例,假设可信第三方104经由通信网络112从客户机设备102接收函数208和输入x。
[0039] 框504确定功能,该功能当被多方实体评估时得到能够被恢复以找出对该函数的输出的输出份额,其中多方实体联合执行多方计算协议且各自具有对该函数的输入的输入份额。作为示例,假设可信第三方104接收函数208,即f(x)=y,且确定功能310,这里被称为f’,使得:
[0040]
[0041] 当多方计算协议308被执行时,物理计算设备110中正对其相应的输入份额xi执行协议308的每一个物理计算设备返回yi的结果。注意,这些项在下文示例实现部分中描述或定义。
[0042] 可信第三方104可基于秘密共享方案、函数、和多方计算协议,即秘密共享方案210、函数208和多方计算协议308来确定这一功能310。在这种情况下,可信第三方104已经具有这些内容,或从客户机设备102接收这些内容。尽管方法500聚焦于可信第三方104的动作,但框504可改为由客户机设备102,即函数管理器206来执行。在这种情况下,函数管理器206具有、确定、或接收多方计算协议308。
[0043] 框506确定在其上执行多方计算协议的不同的物理计算设备。框506由具有对不同的物理计算设备的直接或间接控制的某一实体执行,诸如数据中心控制器或多个数据中心控制器。这里假设可信第三方104与数据中心106或108上的进程管理器306一起工作,用于确定物理计算设备以基于输入份额对功能310执行多方计算协议308。
[0044] 进程管理器306可从许多可能的选择中确定要使用哪些设备,诸如使用来自供选择的20,000个计算机服务器中的九个物理设备。进程管理器306可通过随机选择或通过确定或导致没有其他实体共享完全的共同承租,来选择这些设备,以使得几乎不可能与潜在的恶意实体(例如,任何其他客户机)共同承租。由此,在某些情况下,进程管理器306将九个物理设备中的一个在一相关时间段(该相关时间段可以相当短)内仅专用于客户机设备102。在某些其他情况下,进程管理器306检查全部九个所选物理计算设备,以确保没有潜在的恶意实体正对全部这九个设备进行操作。在又一些情况下,进程管理器306确定潜在的恶意实体能够对其操作的最大物理计算设备数,并且分配一附加设备数。
[0045] 继续该正在进行的示例,可信第三方104与进程管理器306一起工作,并且确定图1的五个物理计算设备110来执行多方通信协议308。这五个设备110在图1中示出,设备中的四个在数据中心108上而一个在数据中心106上。
[0046] 框508执行秘密共享方案的秘密共享操作,用于将输入拆分成与不同的物理计算设备相同数量的输入份额。注意,框504、506和508可以按与方法500中所呈现的不同次序来执行。然而,在这一情况下,输入份额在物理计算设备之后被确定,且由此为五个所选物理计算设备创建五个输入份额。输入份额数量n为五(n=5),得到:
[0047] 输入份额x1,...,xn=x1,x2,x3,x4,x5
[0048] 这五个输入份额在图1中的输入份额114处示出。
[0049] 框510使得不同的物理计算设备执行多方计算协议,以基于秘密共享方案和函数来评估功能,其中不同的物理计算设备中的每一个只具有输入份额中的一个。由此,在这一示例中,五个物理计算设备110执行多方计算协议308用于分别对输入份额x1、x2、x3、x4、x5评估功能310。多方计算协议308以及物理计算设备110的执行由进程管理器306来管理。
[0050] 框510可直接或间接导致这些执行。由此,如果框510由进程管理器306执行,则直接导致(并管理)这些执行。如果框510由客户机设备102或可信第三方执行且不与进程管理器306一起操作,则间接导致这些执行,诸如命令 或请求被发送给进程管理器306。
[0051] 框512从不同的物理计算设备中的每一个接收一个输出份额。在这一示例中,进程管理器306接收五个输出份额,y1、y2、y3、y4、y5,从图1所示的物理计算设备110中的每一个中接收一个(未示出输出份额的接收)。然而,如上所述,这些可改为由客户机102直接接收或从进程管理器306接收。
[0052] 框514执行秘密共享方案的恢复操作,以便从接收到的输出份额确定输出。框514可在客户机设备102处执行或由可信第三方104来执行。
[0053] 在该正在进行的示例中,进程管理器306接收输出份额,将它们提供给可信第三方104,可信第三方104随后执行恢复操作以得到输出y,可信第三方104随后通过通信网络112将输出y安全地提供给客户机设备102。关于恢复操作的附加描述和细节在上文以及下文的示例实现部分中阐述。
[0054] 前面的讨论描述了用于在多承租人数据中心中的安全计算的各方法。这些方法被示为指定所执行的操作的各组框,但不必限于所示次序来执行相应框的操作。
[0055] 这些方法的各方面可用硬件(例如,固定逻辑电路)、固件、软件、手动处理、或其任何组合。软件实现表示当由计算机处理器执行时执行指定任务的程序代码。可以在计算机可执行指令的一般上下文中描述示例方法,这些指令可包括软件、应用程序、例程、程序、对象、组件、数据结构、过程、模块、功能等等。程序代码可被存储在计算机处理器本地和/或远程的一个或多个计算机可读存储器设备中。方法还可以在分布式计算环境中由多个计算设备实施。
[0056] 示例实现
[0057] 作为示例而非限制,考虑上文描述的技术的特定示例实现。本部分以各种定义开始,该部分稍后将依赖这些定义。在定义之后,本部分转到真实世界和理想世界执行中的多方计算。多方计算之后,本部分转到安全委托计算,同样在真实世界和理想世界执行中。该部分以各技术可使用的示例协议结束,以允许多承租人数据中心中的安全计算。
[0058] 定义
[0059] 符号。我们写x←χ来表示元素x是从分布χ中采样的, 来表示元素x是从集合X中均匀地采样的。算法 的输出x由 来表示。我们将向量v的第i个元素称为vi或v[i]。贯穿本文,k将指代安全参数。如果对于每一多项式p(·)和足够大的k,v(k)<1/p(k),则在k处的函数v: 是可忽略的。令“多项式(k)”和“可忽略(k)”分别表示k中未指定的多项式和可忽略的函数。我们写f(k)=多项式(k),意味着存在多项式p(·),使得对于所有足够大的k,f(k)≤p(k),并且写f(k)=多项式(k),意味着存在可忽略函数v(·),使得对于所有足够大的k,f(k)≤v(k)。
[0060] 多方功能。n方随机化功能为以下函数:
[0061]
[0062] 其中,第一输入为安全参数k,第二输入为字符串向量x,第三输入为一组随机币,以及输出为字符串向量。在MPC上下文中,每一方Pi保持输入xi,且期望接收输出yi,其中:
[0063] 对于
[0064] 贯穿本部分,我们将省略安全参数和硬币,简单地写成 在功能仅取安全参数和字符串x作为输入的情况下该功能是确定性的,在所有方接收相同输出的情况下功能是对称的。已知可使用安全地计算确定性功能的任何协议,来安全地计算随机化功能,因此,这在此处不进行详述。
[0065] 秘密共享。阈值秘密共享方案包括两个多项式时间算法∑=(份额,恢复),使得份额取以下作为输入:来自某一输入空间的秘密x,多个份额 阈值 以及输出n份额(x1,...,xn);以及恢复取以下作为输入:一组t份额,并且输出秘密。如果在给定任何x的t份额的子集的情况下,恢复返回x,则∑是正确的。给定任何q<t的份额,如果没有对手可获悉与秘密x有关的任何部分信息,则是隐藏的。隐藏属性通过要求存在模拟器 来公式化,使得对于输入空间中的所有秘密x,对于所有n=多项式(k)以及所有t≤n, 可生成与“真实” 份额不可区分的n个份额,例如,使用份额来生成。Shamir秘密共享可提供理论上信息隐藏的秘密共享的高效实例,例如,模拟器的输出与真实份额完全一样地分布。
[0066] 多方计算
[0067] 在本部分,我们提供用于多方计算(MPC)的理想/真实世界安全定义,该理想/真实世界安全定义将用于计算n方函数f的协议的真实世界执行与可信方进行的理想世界评估f作比较。
[0068] 在MPC中,不诚实的玩家通过被允许破坏各方的子集的单个对手来建模。“单片式”对手捕捉欺骗方之间勾结的可能性。通常在被动破坏与主动破坏之间进行区分,其中在被动破坏中对手仅获悉被破坏方的状态,在主动破坏中对手完全控制该方,且具体而言不被假定遵守协议。可对于对手如何选择破坏哪方作出另一区分。如果对手必需在协议的执行之前决定,则我们可以说该对手是静态的。另一方面,如果对手可在协议的执行期间决定,则我们说该对手是自适应的。
[0069] 在具有不诚实的大多数人和一恶意对手的MPC设置中,可阻止某一敌意行为。具体而言,不诚实的工作者可选择不参与计算,可计算任意输入,或过早中止计算。由此,我们仅考虑带有中止的安全性。
[0070] 真实世界。在真实世界执行的开始,每一玩家Pi接收其输入xi,而对手 在该方为静态的情况下接收一组被破坏方 且在该方为动态的情况下接收安全参数。被表示为真实 的玩家P=(P1,...,Pn)与对手 之间的真实执行∏,包括诚实玩家的输出和 的输出(可以是其视图的任意函数)。
[0071] 理想世界。在理想执行中,各方与评估f的可信第三方交互。如在真实世界执行中那样,理想世界执行以每一玩家接收其输入xi且对手接收该组被破坏方I开始。诚实方向可信方发送其输入xi,而被破坏方在 为半诚实的情况下发送值xi,且在 为恶意的情况下发送任意值xi。
[0072] 输出递送工作如下。如果任一方发送⊥,则可信方中止执行且向所有方返回⊥。否则,其计算 且向对手发送{yi}i∈I。对手随后可决定中止或继续该执行。如果 选择中止,则可信方向所有诚实方发送⊥。如果对手选择 继续,则可信方向诚实方Pi发送yi。
[0073] 被表示为理想 的玩家P=(P1,...,Pn)与对手 之间的理想评估f,包括诚实玩家的输出和 的输出(可以是其视图的任意函数)。
[0074] 安全性。一般而言,在真实世界中模拟理想世界中对f的评估的情况下,实现函数f的协议∏被认为是安全的。这通过要求任何真实世界对手 可在理想世界评估中被模仿来公式化。令f为函数,且∏为协议。如果对于所有PPT对手 存在PPT对手 则可以说∏t安全地计算f,使得对于所有 使得|I|≤t,
[0075]
[0076] 如果 是动态的,则它接收1k作为输入并在执行期间选择I。
[0077] 安全委托计算
[0078] 计算的安全委托允许客户机(例如通过函数管理器206的客户机设备102)安全地将对私人输入x的函数f的评估外包给不可信的工作者群集。一般而言,安全委托方案应确保:(1)工作者将不获悉与客户机的输入和输出有关的任何部分信息;以及(2)正确地计算该函数。
[0079] 我们正式地在理想/真实世界范例中捕捉这项要求。我们的定义与MPC的模型类似,除了只有一方(例如,客户机)提供输入并从计算接收输出并且对手无法破坏客户机。为完整性起见,我们正式地在这里描述该模型。
[0080] 真实世界。在真实世界执行的开始,客户机接收其输入x,而工作者不具备输入。如果对手是静态的,则接收指定被破坏的机器的一组 另一方面,如果 是动态的,则将选择在协议的执行期间要破坏哪些工作者。客户机、工作者和对手 之间的真实执行∏被表示为真实 且包括客户机、诚实的工作者和 的输出(可以是其视图的任意函数)。
[0081] 理想世界。在理想执行中,各方与评估由外包协议Ω所实现的函数f的可信第三方进行交互。如在真实世界执行中,理想世界执行以客户机接收其输入x开始。同样,工作者不接收输入。如果对手是静态的,则接收指定被破坏的 工作者的一组 而如果对手是动态的,则在执行期间对手选择它的破坏。
[0082] 客户机向可信方发送其输入x。如果对手是恶意的,则可信方还询问 是否希望中止计算。如果是,则可信方向客户机返回⊥并停止。如果否,则可信方计算并将y ←f(x)返回给客户机。
[0083] 客户机、工作者(例如,图1的物理计算设备110中某些)和对手之间的理想评估f(被表示为理想 )包括客户机、诚实的工作者的输出以及A的输出(可以是其视图的任意函数)。
[0084] 安全性。一般而言,在真实世界中模拟理想世界中对f的评估的情况下,实现函数f的外包协议Ω被认为是安全的。这通过要求任何真实世界对手 可在理想世界评估中被模仿来公式化。
[0085] 由此,令f为函数,且Ω为委托协议。如果对于所有PPT对手 存在PPT对手 则可以说Ωt安全地计算f,使得对于所有 使得|I|≤t,
[0086]
[0087] 示例协议
[0088] 我们限制提供示例协议Ω以供在多承租人数据中心中的安全计算。我们的协议利用MPC协议∏和秘密共享机制∑=(份额,恢复),并如下工作。首先将输入x拆分成份额(x1,...,xn),且将每一份额发送给工作者(例如,物理计算设备110)。工作者则执行∏来安全地评估如下定义的功能f’:
[0089]
[0090] 执行∏将导致工作者各自接收输出y=f(x)的份额。在接收到这些份额之后,工作者将它们发送给客户机(或可信第三方),客户机(或可信第三方)继续恢复输出y。
[0091] 直观上,只要至少一个工作者是诚实的,则对手将不获悉与输入或输出有关的任何信息。输入的机密性从∏的安全性得出,这确保被破坏的工作者将不获悉与诚实工作者的首个输入(例如,它们的份额x,xi)有关的且从∑的安全 性得出的任何信息,这确保只要至少一个份额对于对手是未知的,则没有与秘密(例如,x)有关的信息可被恢复。输出的机密性从∑的安全性得出,这确保如果至少一个份额对于对手而言保持未知,则没有与输出有关的信息可被恢复。这一最后属性在用于生成份额的随机性是均匀的情况下成立,这确保在至少一个工作者是诚实的情况下成立,因为只要至少一个ri分布均匀则 分布均匀。
[0092] 我们在下面的定理中公式化这一直觉。注意,Ω继承底层MPC协议的安全属性,但我们仅出于安全性相对于自适应性和恶意对手而示出它。
[0093] 由此,如果∏是相对于自适应和恶意对手的t安全,且∑是安全秘密共享方案,则如上所述的Ω是相对于在大多数t工作者处破坏的自适应和恶意对手的安全。这以下面的证明示出:其中 和 分别是通过∏的安全性和∑的隐藏属性确保存在的模拟器,且考虑以下模拟器 通过计算 和 开始。随后使用具有输入(y′1,...,y′n)的 来模拟带有 的∏的执行。如果工作者Wi在任何点处被破坏,则 向 发送值x′i。如果在任何点处∏的模拟中止,则 要求可信方中止。在多项式上的许多步骤之后, 输出 返回作为其自身的输出的某一值。我们通过游戏序列示出真实 实验的输出与理想 实验的输出不可区分。
[0094] 游戏0包括真实 实验:即,在接收其输入x之后,客户机向对执行协议∏的n个工作者发送份额(x1,...,xn),其中f′如上所
述,且其中 以及 在工作者Wi未被破坏的情况下被均匀随机地选择。如果A不中止,则每一工作者Wi向计算y←恢复(y1,...,yn)的客户机发送其输出yi。
[0095] 在游戏1中,我们用使用 所生成的(x′1,...,x′n)来代替游戏0中的份额。游戏0和游戏1是不可区分的,否则,会违反∑的隐藏属性。
[0096] 在游戏2中,我们用使用 所生成的(y′1,...,y′n)来代替游戏1中的份额(y1,...,yn)。在游戏1中,如果至少一个工作者被破坏,则 将均匀分布,且由此份额(y1,...,yn)将被“正确地”计算。于是,游戏2和游戏1是不可区分的(因为我们假设至少一个工作者保持未被破坏),否则会违背∑的隐藏属性。
[0097] 在游戏3中,代替执行∏,我们使用带有输入(y′1,...,y′n)的 来模拟客户机、可信方和 之间的协议执行。只要至少一个工作者保持未被破坏,则∏的安全性确保两个游戏是不可区分的。然而,注意到游戏3被分布成与理想 实验完全一致。
[0098] 示例设备
[0099] 图6示出了可被实现为参考图1-5来描述的任何类型的客户机、服务器、和/或计算设备来实现在多承租人数据中心中的安全计算的各技术的示例设备600的各个组件。在各实施例中,设备600可被实现为有线和/或无线设备中的一个或其组合,如任何形式的电视客户机设备(例如,电视机顶盒、数字录像机(DVR)等等)、消费设备、计算机设备、服务器设备、便携式计算机设备、用户设备、通信设备、视频处理和/或呈现设备、电器设备、游戏设备、电子设备和/或被实现为另一类型的设备。设备600还可与用户(例如,人)和/或操作该设备的实体相关联,从而使得设备描述包括用户、软件、固件和/或设备的组合的逻辑设备。
[0100] 设备600包括实现设备数据604(例如,所接收的数据、正被接收的数据、排定用于广播的数据、数据的数据包等等)的有线和/或无线通信的通信设备602。设备数据604或其它设备内容可以包括设备的配置设置、存储在设备上的媒体内容和/或与设备用户相关联的信息。存储在设备600上的媒体内容可以包括任何类型的音频、视频和/或图像数据。设备600包括经由其可接收任何类型的数据、媒体内容、和/或输入的一个或多个数据输入
606,诸如用户可选输入、消息、音乐、电视机媒体内容、记录的视频内容、以及从任何内容和/或数据源接收的任何其它类型的音频、视频和/或图像数据。
[0101] 设备600还包括通信接口608,其可被实现为串行和/或并行接口、无线接口、任何类型的网络接口、调制解调器、和任何其他类型的通信接口中的任一个或多个。通信接口608提供设备600和通信网络之间的连接和/或通信链路,其它电子、计算和通信设备通过其来与设备600传递数据。
[0102] 设备600包括一个或多个处理器610(例如,微处理器、控制器等中的任一个),该处理器处理各种计算机可执行指令来控制设备600的操作。除此之 外或作为替代,设备600可用硬件、固件、或结合在612处概括标识的处理和控制电路来实现的固定逻辑电路中的任何一个或组合来实现。虽然未示出,但是设备600可包括耦合设备内的各种组件的系统总线或数据传输系统。系统总线可包括不同总线结构中的任一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线体系结构中的任一种的处理器或局部总线。
[0103] 设备600还包括诸如一个或多个存储器设备等启用持久和/或非暂态数据存储(例如,与仅仅信号传输相对比)的计算机可读介质614,存储器设备的示例包括随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存、EPROM、EEPROM等中的任一个或多个)、以及盘存储设备。盘存储设备可被实现为任何类型的磁性或光学存储设备,如硬盘驱动器、可记录和/或可重写紧致盘(CD)、任何类型的数字多功能盘(DVD)等等。设备600还可包括大容量存储介质设备616。
[0104] 计算机可读存储介质614提供数据存储机制以便存储设备数据604、以及各种设备应用618和关于设备600的各操作方面的任何其它类型的信息和/或数据。例如,操作系统620可以用计算机可读存储介质614作为计算机应用程序来维护并在处理器610上执行。设备应用618可以包括设备管理器,如任何形式的控制应用程序、软件应用程序、信号处理和控制模块、特定设备本地的代码、特定设备的硬件抽象层等等。
[0105] 设备应用618还可包括任何系统组件或模块以实现多承租人数据中心中的安全计算的各技术。在这一示例中,设备应用618可包括函数管理器206、进程管理器306、和/或可信第三方104。
[0106] 包括如通过以上示例实现所示出的各技术可在图1(以及在图2-3中详述)的环境100中示出的实体中的一个或多个上和/或示例设备600上实现,它们可以被进一步划分、组合等。由此,环境100和/或设备600示出能够采用所述技术的许多可能的系统或设备中的某些。环境100和/或设备600的实体一般表示软件、固件、硬件、整个设备或网络、或其组合。在软件实现的情况下,例如,实体(例如,图2的函数管理器206、图3的进程管理器306、或图1或3的可信第三方104)表示当在处理器(例如,分别为处理器202和302)上被执 行时执行指定任务的程序代码。程序代码可被储存在一个或多个计算机可读存储器设备中,诸如计算机可读存储介质202、304、或计算机可读介质614。本文描述的各技术和特征是平台无关的,从而意味着它们可在具有各种处理器的各种商用计算平台上实现。
[0107] 结论
[0108] 尽管已经用结构特征和/或方法专用的语言描述了在多承租人数据中心中的安全计算的各技术和设备的各实施例,但是应该理解所附权利要求的主题不必限于所述的具体特征或方法。相反,具体特征和方法是作为多承租人数据中心中的安全技术的示例实现来公开的。