CN1645332A - 不可靠计算环境中使用扰乱计算单元的分布式计算 - Google Patents
不可靠计算环境中使用扰乱计算单元的分布式计算 Download PDFInfo
- Publication number
- CN1645332A CN1645332A CNA2005100055306A CN200510005530A CN1645332A CN 1645332 A CN1645332 A CN 1645332A CN A2005100055306 A CNA2005100055306 A CN A2005100055306A CN 200510005530 A CN200510005530 A CN 200510005530A CN 1645332 A CN1645332 A CN 1645332A
- Authority
- CN
- China
- Prior art keywords
- computing
- calculating
- computing unit
- units
- unreliable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000000354 decomposition reaction Methods 0.000 claims description 9
- 241001274660 Modulus Species 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000000638 solvent extraction Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Abstract
一种装置、程序产品和方法,在不可靠计算机上启动其它计算单元的运行的同时,启动扰乱计算单元的运行,以防止不可靠方对计算的重建。具体地说,在将特定计算分解为多个计算单元的同时,生成一个或多个扰乱计算单元,并将其提供给一个或多个资源提供者,以便与被分解的计算的那些计算单元一起运行。
Description
技术领域
本发明涉及计算机和计算机软件,尤其涉及保护在不可靠分布式计算环境中执行的计算。
背景技术
计算机工业开始越来越依赖于计算的效用模型(utility model)。与组织通常购买并维持满足它们各自计算需要所需的所有必要的硬件和软件计算机资源的传统计算范式相反,计算的效用模型更多在效用或服务方面来看待计算机资源,其可有效地为多个组织所共享,以满足所有那些组织的集体计算需要。
一种这样的计算效用环境被称为网格(grid)计算,其中,将一组可能不同种类且地理上遥远的计算机系统以分布方式连接在一起,以共享它们各自的资源,并呈现出单个大型又强大的虚拟计算机系统的外部特征(appearance)。网格计算环境可用来共享各种硬件和软件资源,如处理器、应用、储存设备(storage)、存储器(memory)、打印机、网络连接、以及其它外设。在计算网格中,提取多个计算机的硬件和/或软件资源,其中使用专用软件以使基础资源的效用最大化的方式来将工作发到各个资源。
网格计算在系统利用效率方面经常比已知有很多计算机在大多数时间经常严重地利用不足的传统计算环境更为有效。使用传统计算环境的组织通常需要维持足够的计算能力,以满足那些组织对其每一个计算系统的最大或峰值需求,而不管那些峰值需求的出现频率如何。另一方面,通过网格计算,可有效地共享多个组织的计算能力(或甚至同一组织所拥有的多个地点或系统的计算能力),使得可以将工作分发给网格中的不同资源,用于使整体系统利用率最大化。在很多情况下,网格中维持的集体计算能力可小于其它方式下满足网格的每个使用者的各计算需求所需的计算能力。
在很多情况下,网格计算还提供很多复杂计算应用所期望的高度并行处理的可能性。此外,网格计算经常提供故障排除(failover)、负载平衡和其它高可用性能力来增加网格的可靠性和可用性,以及其它高级能力,如安全、管理等。
尽管可在单个组织内维持一些计算效用环境,但在很多情况下,计算效用环境由多个组织使用,或甚至可以被公共维持和/或支持。例如,可利用网格和网络服务来从多个组织提取计算资源,并使网格的客户或使用者(甚至不在网格中贡献(host)任何计算资源的那些人)能够让一个或多个资源提供者为其执行计算或其它任务。此外,可开发成本结构来使网格的客户能够基于每次交易或预订而为资源使用付费。
作为例子,可使用网格计算来执行通常在数百万美元的超级计算机上执行的多种类型的计算。通过使网格中成百上千个显著低价且低性能的计算机互连,并然后将复杂计算分解为由多个计算机并行处理的计算单元,网格可提供与很多超级计算机同等的性能,并且成本显著减小。很多组织更加愿意基于交易或预订而为使用网格付费,以避免为处理复杂计算而购买并维持自身充分的计算能力的需要。
然而,网格计算和其它形式的分布式计算效用环境的一个缺点在于,由于网格的多组织结构而带来的安全性问题。
例如,在很多分布式计算效用环境中,预期大量组织会将计算资源提供给该环境的底层结构(infrastructure)。在一些情况下,那些组织甚至可能彼此之间是竞争对手。因此,希望在这种环境中执行工作的客户可能不具有对其数据保密性的完全控制。
尽管可使用加密通信来保护计算机之间的通信,但是当在计算效用环境中的特定计算机上执行数据的基础处理时,通常,计算机必须能够在执行计算之前对数据解密。换句话说,加密通常在客户端和资源之间的传送期间保护数据,而一旦由该资源接收并处理数据,则不保护数据。
结果,计算效用环境中为客户执行的计算有可能至少部分地由竞争对手或其它不可靠方所贡献的计算资源来执行。因此,存在好奇或恶意的不可靠方将在贡献计算资源时对计算和/或与计算相关的通信进行窃听的实质性风险,从而产生了危及客户的保密数据的安全的风险。
因此,本领域中存在对在计算效用或其它不可靠分布式计算环境中执行的计算加以保护的重大需要。
发明内容
本发明通过提供一种装置、程序产品和方法来解决与现有技术相关的这些和其它问题,其中在不可靠计算机上启动其它计算单元的运行的同时,启动扰乱计算单元的运行,以防止不可靠方对计算的重建。具体地说,在将特定计算分解为多个计算单元的同时,生成一个或多个扰乱计算单元,并将其提供给一个或多个资源提供者,以便与被分解的计算的那些计算单元一起运行。可以相信,扰乱计算单元随同作为分解所关注的计算的结果而生成的一个或多个计算单元的存在,可以使得从提供给不可靠计算机的计算单元对计算或其总的结果的检测和重建显著地复杂化。
根据本发明的各个实施例可以以多种不同方式来实现扰乱计算单元。例如,可将扰乱计算单元实现为不用来生成结果数据的伪计算单元。作为另一个例子,可将扰乱计算单元实现为来自另一个被分解的计算的计算单元。当附加地与来自对多个不同的计算机的给定分解的其它计算单元的可选运行组合时,显著地减小了不可靠方重建计算的能力。然而,应当理解,上面讨论的特定例子实际上仅是说明性的,并且本发明不限于这些特定的例子。
所附权利要求中阐述了表现本发明特征的这些和其它优点和特征。然而,为了更好地理解本发明和通过使用本发明而实现的优点和目的,应当参考附图和所附描述内容,其中描述了本发明的示例实施例。
附图说明
图1为适用于实现根据本发明的扰乱分布式计算的计算效用环境的方框图。
图2为在图1的计算效用环境的示例实现中的软件层的方框图。
图3为图1的计算效用环境的示例硬件和软件实现的方框图。
图4为图示由图3中提到的代理(broker)计算机运行的实现根据本发明的扰乱分布式计算的示例处理计算例程的流程图。
图5为图示由图3中提到的代理计算机运行的实现根据本发明的扰乱分布式计算的另一个示例处理计算例程的流程图。
具体实施方式
下文中讨论的实施例利用扰乱计算单元来防止对至少部分由不可靠计算机运行的被分解的计算的重建。例如,不可靠计算机可被耦接到计算效用环境,如计算网格,由此利用网格服务、网络服务、以及其它分布式计算功能来允许使用计算资源来为客户执行计算。在这点上,计算机在以下意义上是不可靠的,即客户或计算的所有者不能确保可以访问该不可靠计算机或者向或从这样的计算机进行通信的一方将不能够“窃听”或以其它方式监视保密计算和/或数据业务。
根据本发明,将计算分解或划分为多个计算单元,然后以使任何不可靠计算提供者不能够有效地重新组合计算单元以重建原始计算的方式,将所述多个计算单元分发给一个或多个计算提供者。然后将结果重新组合,以便通常在没有被未授权方窃听的危险的环境中产生最终结果。
为防止对计算的重建或重新组合,将扰乱计算单元连同来自被分解的计算的计算单元一起分发给不可靠计算机。在此上下文中,扰乱计算单元为:使不可靠计算机确定传递到不可靠计算机的那些计算单元中的哪些计算单元属于相同的被分解的计算的能力被扰乱或以其它方式复杂化的计算单元。例如,可将扰乱计算单元实现为伪计算单元,换句话说,不用来生成结果数据,但所述伪计算单元对不可靠计算机呈现为计算的成员。作为另一个例子,可将扰乱计算单元实现为来自另一个被分解的计算的计算单元,所述另一个被分解的计算甚至可以是同一计算的复制,以便将来自多个计算的单元以难以或不可能确定那些计算单元的成员资格的方式,发到不可靠计算机。还应当理解,可以通过将一些计算单元分发给在与特定的不可靠方不相关且不通信的其他方控制下的其它计算机,来提供附加保护。对于受益于此公开的本领域的普通技术人员来说,扰乱计算单元的其它实现将是明显的。
现在转到附图,其中,几幅图中的相同标号总是表示相同的部件,图1图示了根据本发明的示例计算效用环境10。例如,使用计算网格12来实现环境10,所述计算网格12用来将多个客户端14耦接到多个计算资源16。
如本领域中所公知的,可使用任意数目的计算机、外设、存储设备、网络连接和适于提供对资源16的共享访问的其它软件和组件来实现计算网格12。应当理解,网格12、客户端14和资源16的组件可位于任意数目的地点,并可在任意数目的组织或个人的控制或领域下。此外,这种组件可为性质上同类或不同类的。
接下来,图2图示了用于计算效用环境10的示范高度抽象的架构20。例如,架构20包括组织(fabric)层22,用于提供对通过网格协议来间接进行共享访问的资源的逻辑表示。在图示的实施例中,组织组件主要实现本地的特定资源的操作。架构20还包括连接层24,其定义用于网格事务(具体地说,组织层组件之间的网格事务)的主要通信和验证协议。通信协议可包括各种通信相关服务,如传输、路由选择和命名。例如,可使用验证协议来提供用于检验用户和资源的身份的安全机制。
架构20还包括资源层26,例如,资源层26通过支持各个资源的共享操作的安全协商、启动、监测、控制、记账、以及支付,来提供用于对资源的共享访问的协议。另外,使用集合(collective)层28来协调对各组资源的访问,尤其包括例如目录服务、共同分配(co-allocation)、安排时间和代理服务、监测和诊断服务、数据复制服务、编程系统、工作负荷管理系统和协作框架、软件发现(software discovery)服务、团体授权服务、团体记账和支付服务、以及协作服务。通常,层24、26和28可由允许网格的应用30来访问。
应当理解,可在架构20的每一层中实现不同服务。此外,架构20实际上仅为示例,可替换地,可使用其它网格或计算效用架构。因此,本发明不限于这里图示的特定计算效用环境。
接下来,图3图示了用于适于执行根据本发明的扰乱分布式计算的装置40的示例硬件和软件环境。具体地说,将装置40实现为图1的计算效用环境10中驻留的代理计算机。然而,为了本发明的目的,装置40在实践中可表示任何类型的计算机、计算机系统或其它可编程电子设备,包括客户端计算机、服务器计算机、便携计算机、手持计算机、嵌入控制器等。此外,可使用例如在集群、计算网格、或其它分布式计算系统中的多个网络计算机,来实现装置40。下文中,还将装置40称为“计算机”,尽管应当理解,术语“装置”也可包括根据本发明的其它适合的可编程电子设备。
计算机40通常包括中央处理单元(CPU)42,其包括耦接到存储器44的一个或多个处理器,存储器44可表示随机存取存储器(RAM)设备,所述存储器设备包括计算机40的主储存器、以及任何补充级别的存储器,例如高速缓冲存储器、非易失性或备份存储器(例如,可编程或快闪存储器)、只读存储器等。另外,可考虑存储器44包括物理上位于计算机40中的其它位置的存储装置(memory storage),例如,CPU 42的处理器中的任何高速缓冲存储器,以及任何用作虚拟存储器的储存容量(storage capacity),该储存容量例如存储在大容量储存设备上或存储在耦接到计算机40的另一个计算机上。
对于非易失性储存器来说,计算机40通常包括一个或多个大容量储存设备46,例如,尤其是,软盘或其它可移动盘驱动器、硬盘驱动器、直接存取储存设备(DASD)、光学驱动器(例如,CD驱动器、DVD驱动器等)和/或带驱动器。此外,计算机40还可包括对一个或多个网络50(例如,尤其是,LAN、WAN、无线网络和/或因特网)的接口48,以允许与其它计算机和电子设备,例如一个或多个客户端或管理计算机52、一个或多个计算所有者54、以及一个或多个计算提供者56,进行信息通信。在其它实现中,计算网格可仅驻留在计算机40内,从而计算所有者和计算提供者可通过用户接口58与网格通信。
通常,计算机40还接收用于与外部进行信息通信的多个输入和输出。为了给用户或操作者提供接口,计算机40通常包括用户接口58,其合并一个或多个用户输入设备(例如,尤其是,键盘、鼠标、轨迹球、操纵杆、触摸垫和/或麦克风)、以及显示器(例如,尤其是,CRT监视器、LCD显示面板、和/或扬声器)。另外,可通过另一个计算机或终端,例如通过经由网络50和网络接口48耦接到计算机40的客户端计算机52,来接收用户输入。应当理解,如本领域所公知的,计算机40通常包括在CPU 42和组件44、46、48和58中每一个之间的适当的模拟和/或数字接口。
计算机40在操作系统60的控制下工作,并运行,或相反地,依赖于各种计算机软件应用、组件、程序、对象、模块、数据结构等。例如,可驻留网格中间件组件62,以实现一部分前面提到的计算网格12,并且其对于也驻留在计算机40上的一个或多个允许网格的应用64来说,是可访问的。此外,还可在例如分布式或客户端-服务器计算环境中,在通过网络耦接到计算机40的另一个计算机中的一个或多个处理器上运行附加应用、组件、程序、对象、模块等,从而可将实现计算机程序的功能所需要的处理分配到网络上多个计算机。
通常,无论是作为操作系统的一部分还是特定应用、组件、程序、对象、模块或指令序列乃至其子集来实现,被运行以实现本发明的实施例的例程在此处将被称为“计算机程序代码”,或简称为“程序代码”。程序代码通常包括一个或多个指令,其在不同时间驻留在计算机中的不同存储器和储存设备中,并且,当计算机中的一个或多个处理器读取并运行所述指令时,使该计算机执行运行体现本发明的各个方面的步骤或要素所必需的步骤。此外,尽管已经并且在下文中仍将在全功能计算机和计算机系统的上下文中描述本发明,但是本领域的技术人员将理解,本发明的各个实施例能够作为程序产品以各种形式发布,并且,不管用于实际进行所述发布的计算机可读信号承载介质的具体类型为何,本发明都同样适用。计算机可读信号承载介质的例子包括但不限于:可记录型介质,例如,尤其是,易失性和非易失性存储设备、软盘和其它可移动盘、硬盘驱动器、磁带、光盘(例如CD-ROM、DVD等);以及传输型介质,如数字和模拟通信链路。
还应当理解,还能够将本发明的各个实施例实现为在一个或多个计算机上实现的服务,并且,对于可以访问该服务的客户端来说是可用的。例如,这种服务可通过计算效用、网格服务、网络服务等来提供。
另外,可基于应用来标识下文中描述的各种程序代码,其中在本发明的特定实施例中,在所述应用内实现所述程序代码。然而,应当理解,下面的任何特定程序命名仅为了方便而使用,因此,本发明不应当限于只在由这种命名所标识和/或暗示的任何特定应用中使用。此外,给定有通常为无穷数目的可将计算机程序组织为例程、过程、方法、模块、对象等的方式,以及各种可在驻留在典型计算机内的各种软件层(例如,操作系统、库、API、应用、小应用程序等)中分配程序功能的方式,应当理解,本发明不限于这里描述的对程序功能的特定组织和分配。
本领域的技术人员将认识到,图1-3中示出的示例环境不试图限制本发明。实际上,本领域的技术人员将认识到,可使用其它替换硬件和/或软件环境,而不脱离本发明的范围。此外,本领域的技术人员将理解,可在其它在一个或多个不可靠计算机上执行计算的环境中利用本发明,而不管所述环境被实现为计算效用环境、网格环境、分布式计算环境、客户端-服务器环境、对等网络环境、还是本领域所公知的其它多计算机环境。
现在转到图4,其中更详细地示出了例如由计算网格12中的一个或多个代理计算机响应客户或所有者的请求而运行的示例处理计算例程100。通常,客户或所有者的请求指定特定计算,其中,通过将该计算分解为多个计算单元,例程100在方框102开始处理。
尽管在其它实施例中可以使用其它分解计算的方式,但是,可在方框102中使用的一种分解方式对计算变量利用中国剩余定理(CRT,ChineseRemainder Theorem)。按照CRT,并以小于最大大小M的两个整数J和K作为计算变量,可以选择模数m1、m2和m3(其中,m1、m2和m3两两互质,并且m1*m2*m3=M),使得:
j1=J(mod m1) k1=K(mod m1)
j2=J(mod m2) k2=K(mod m2)
j3=J(mod m3) k3=K(mod m3)
按照CRT:
j1+k1=J+K(mod m1) j1*k1=J*K(mod m1)
j2+k2=J+K(mod m2) j2*k2=J*K(mod m2)
j3+k3=J+K(mod m3) j3*k3=J*K(mod m3)也可以相同的方式执行减法和除法。此外,可重新组合j1、j2和j3,以求出J,并且可重新组合k1、k2和k3,以求出K。
同样,给定大于计算中的任何整数的最大大小的值M,可以通过选择m1、m2和m3,并对计算的变量执行模运算以生成分别使用不同mi的三个分离的计算单元,来将涉及整数的计算划分为多个计算单元。
在所示实施例中,mi的大小通常应当约为M的立方根。还应当理解,可通过选择约为M的N次方根(并且互质)的mi,将计算划分为N个计算单元。另外,在一些实施例中,可期望对于每个mi仅选择质数。
同样,一旦计算在方框102中被分解,则控制流转到方框104,以生成至少一个扰乱计算单元,接下来,控制流转到方框106,以将计算单元(包括扰乱计算单元)转发给一个或多个计算提供者,以有效地启动那些计算单元在计算提供者的计算资源上的运行。然后在方框108收集由计算提供者生成的计算结果,并且,在方框110使用CRT来重新组合该结果,以生成总的结果。然后在方框112将计算结果返回到客户端,并且例程100完成。
在其它实施例中,可由不同实体来执行图4中概述的各个步骤。例如,在一些实施例中,客户或所有者可执行将计算分解为计算单元和/或对结果的重新组合,而计算网格中的可靠代理计算机或其它实体仅用于将计算单元传递到计算提供者以及从计算提供者传递结果。在另一些实施例中,客户或所有者可执行图4中概述的所有步骤。对于受益于此公开的本领域的技术人员来说,其它替换方式将是明显的。
可以预想将计算分解为计算单元并生成扰乱计算单元以防止不可靠方重建计算的各种实现。例如,如上面提到的,可将扰乱计算单元实现为具有其它计算单元的外部特征而一旦返回便不再使用其结果的伪计算单元。可随机生成或以其它编程方式来生成这种伪计算单元。在基于每个计算而产生费用的一些实现中,伪计算单元的使用可能增加计算所有者的费用;然而,这种单元的出现可显著增加恶意方可能需要考虑的可能的重新组合的数目。
在另一个例子中,通过给每个计算单元赋予只有分解该计算和组合结果的一方才知道的唯一且不相关的ID,可以在大致相同的时间一起提交用于大量(F个)完整计算的计算单元,而在各个计算单元中没有指明计算单元和完整计算之间的具体关联的标识符。另外,可期望使传递到每个不可靠计算机的计算单元交错,以便计算单元的顺序不指明它们和任何特定计算的关联。在此点上,用于每个计算的计算单元起到针对与其一起提交的其它计算的扰乱计算单元的作用。
按照CRT,例如,组合计算单元<F1,m1>、<F2,m2>和<F3,m3>将给出看似有效的结果,即使该结果实际上没有意义,因为这些单元来自三个完全分离的完整计算(F1、F2和F3)。
作为另一个例子,例如,可期望通过在使用CRT来分解计算时为不同计算选择不同的mi,而选择不同方式或算法来分解各个计算。例如,在一些实现中,不可靠方也许有可能通过窃听该计算来确定为每个计算单元使用了哪个mi。通过这样做,不可靠方也许能够将多个计算单元分类到具有相同mi的存储桶(bucket)。按照CRT,由于CRT中的mi必定互质,所以,来自一个存储桶的计算单元不能与来自相同存储桶的计算单元重新组合。这样,如果F个计算被分解为分别使用相同mi的三个计算单元,那么不可靠方可将计算单元分类到三个存储桶,然后分析那些单元可重新组合的F3种方式。通常,如果F个计算各自被分解为P个计算单元,则将有FP种可能方式来重新组合那些计算单元。
为了解决这种潜在的攻击形式,可例如通过从适当mi的超集中选择mi,来为每个完整计算选择不同的mi组。例如,在很多实现中,将每个计算划分为三个单元将是足够的。然而,除了选择三个mi,还可通过选择多于三个mi,例如10个mi(其都大约为M的立方根),来提供更强的安全性。在很多情况下,为计算选择的任意三个mi的乘积是否精确为M是不相干的,只要三个所选mi的乘积满足前面提到的CRT中对M的约束即可。由此,对于每个计算来说,可使用10个可用mi中的三个不同mi来分解该计算。在这种实现中,不可靠方需要对F个计算考虑的可能有效组合的数目将非常大,即(10 3)F3,一般地,如果为F个计算中的每一个使用P个计算单元,并且从TP个模数的超集中选择P个模数来生成P个计算单元,那么,将有(TP P)FP种方式来重新组合所得计算单元。
作为另一个例子,可以以多种方式对给定计算进行分解,而将为多次分解生成的计算单元集体提交,从而,来自一个分解的计算单元起到针对来自其它每一个分解的计算单元的扰乱计算单元的作用。
通过图5中示出的处理计算例程120,更详细地示出了根据本发明的利用上面讨论的多种扰乱技术的扰乱分布式计算的一个特定实现。例程120在方框122以使用从模数超集取出的不同模数,按照CRT将F个计算分解为计算单元而开始。另外,在方框122为每个计算单元分配不相关的标识符,以防止导出计算单元和特定计算之间的关联。
接下来,在方框124对计算单元重新排序,以将其转发给一个或多个计算提供者,由此使来自不同计算的计算单元一起交错。
接下来,在方框126将来自多个计算的计算单元转发给一个或多个计算提供者,以有效地启动那些计算单元在计算提供者的计算资源上的运行。然后,在方框128收集计算提供者生成的计算结果,并且在方框130使用CRT来重新组合所述结果,以生成总的结果。然后在方框132将计算结果返回到客户端,并且例程120完成。
可以在不脱离本发明的精神和范围的情况下,对这里描述的实施例进行各种附加修改。因此,本发明的范围由所附权利要求限定。
Claims (34)
1、一种启动计算在至少一个不可靠计算机上的执行的方法,该方法包括:
将该计算分解为多个计算单元,所述多个计算单元可组合而生成该计算的结果;
生成至少一个扰乱计算单元;
在不可靠计算机上启动至少一个扰乱计算单元和所述多个计算单元中的至少一个计算单元的运行,以防止不可靠方重建该计算。
2、如权利要求1所述的方法,其中,扰乱计算单元包括通过分解第二计算而生成的计算单元。
3、如权利要求2所述的方法,其中,启动至少一个扰乱计算单元和所述多个计算单元中的至少一个计算单元的运行的步骤包括:使多个计算单元中的至少一个扰乱计算单元与所述多个计算单元交错。
4、如权利要求2所述的方法,其中,使用与用于分解第二计算的算法不同的算法来分解该计算。
5、如权利要求1所述的方法,其中,扰乱计算单元包括伪计算单元。
6、如权利要求1所述的方法,其中,扰乱计算单元包括通过对该计算的第二分解生成的计算单元。
7、如权利要求1所述的方法,还包括:在第二计算机上启动所述多个计算单元中的至少一个计算单元的运行。
8、如权利要求1所述的方法,还包括:在不可靠计算机上启动全部所述多个计算单元的运行。
9、如权利要求1所述的方法,其中,将该计算分解为多个计算单元包括:使用中国剩余定理(CRT)来进行分解。
10、如权利要求9所述的方法,其中,该计算包括多个变量,并且其中,将该计算分解为多个计算单元包括:
选择多个互质的模数;以及
通过使用所述多个互质的模数中的一个来对所述多个变量中的每一个执行模运算,而生成每一个计算单元。
11、如权利要求10所述的方法,其中,选择多个互质的模数包括:从互质模数超集中选择每一个模数,该方法还包括:
使用从互质模数超集中选择的不同的模数集,来将多个计算分解为多个计算单元;以及
在不可靠计算机上启动来自所述多个计算的计算单元的运行。
12、如权利要求1所述的方法,还包括:
接收在所述多个计算单元中的每一个的运行期间生成的结果数据;以及
从该结果数据生成该计算的结果。
13、如权利要求1所述的方法,其中,不可靠计算机被耦接到网格计算网络。
14、如权利要求13所述的方法,其中,由耦接到网格计算网络的客户端计算机来执行对该计算的分解。
15、如权利要求13所述的方法,其中,由耦接到网格计算网络的代理计算机来执行对该计算的分解,该方法还包括:从客户端计算机接收该计算。
16、如权利要求1所述的方法,其中,由耦接到不可靠计算机的至少一个计算机来执行对该计算的分解、扰乱计算单元的生成、以及不可靠计算机上扰乱计算单元和所述多个计算单元中的一个计算单元的运行的启动,该方法还包括:将扰乱计算单元和所述多个计算单元中的一个计算单元传递到不可靠计算机。
17、一种装置,包括:
至少一个处理器;以及
程序代码,配置为用来由至少一个处理器运行,以通过将计算分解为可组合而生成该计算的结果的多个计算单元,生成至少一个扰乱计算单元,并且在不可靠计算机上启动至少一个扰乱计算单元和所述多个计算单元中的至少一个计算单元的运行以防止不可靠方重建计算,来启动该计算在至少一个不可靠计算机上的执行。
18、如权利要求17所述的装置,其中,扰乱计算单元包括通过分解第二计算而生成的计算单元。
19、如权利要求18所述的装置,其中,该程序代码配置为:通过使多个计算单元中的至少一个扰乱计算单元与所述多个计算单元交错,来启动至少一个扰乱计算单元和所述多个计算单元中的至少一个计算单元的运行。
20、如权利要求18所述的装置,其中,该程序代码配置为:使用与用于分解第二计算的算法不同的算法来分解该计算。
21、如权利要求17所述的装置,其中,扰乱计算单元包括伪计算单元。
22、如权利要求17所述的装置,其中,扰乱计算单元包括通过对该计算的第二分解生成的计算单元。
23、如权利要求17所述的装置,该程序代码还配置为:在第二计算机上启动所述多个计算单元中的至少一个的运行。
24、如权利要求17所述的装置,该程序代码还配置为:在不可靠计算机上启动全部所述多个计算单元的运行。
25、如权利要求17所述的装置,其中,该程序代码配置为:使用中国剩余定理(CRT)来将该计算分解为多个计算单元。
26、如权利要求25所述的装置,其中,该计算包括多个变量,并且其中,该程序代码配置为:通过选择多个互质的模数,并使用所述多个互质的模数中的一个来对所述多个变量中的每一个执行模运算而生成每一个计算单元,从而将该计算分解为多个计算单元。
27、如权利要求26所述的装置,其中,该程序代码配置为:从互质模数超集中选择所述多个互质的模数,其中,该程序代码还配置为:使用从互质模数超集中选择的不同模数集,来将多个计算分解为多个计算单元,并在不可靠计算机上启动来自所述多个计算的计算单元的运行。
28、如权利要求17所述的装置,其中,该程序代码还配置为:接收在所述多个计算单元中的每一个的运行期间生成的结果数据,并从该结果数据生成该计算的结果。
29、如权利要求17所述的装置,其中,不可靠计算机被耦接到网格计算网络。
30、如权利要求29所述的装置,还包括耦接到网格计算网络的客户端计算机,并且该程序代码驻留在该客户端计算机上。
31、如权利要求29所述的装置,还包括耦接到网格计算网络的客户端计算机,并且该程序代码驻留在该客户端计算机上,其中,该程序代码还配置为:从客户端计算机接收计算。
32、如权利要求17所述的装置,其中,该程序代码驻留在耦接到不可靠计算机上的分离计算机上,并且其中,该程序代码还配置为:将扰乱计算单元和所述多个计算单元中的一个计算单元传递到不可靠计算机。
33、一种程序产品,包括:
程序代码,配置为用来通过将计算分解为可组合而生成该计算的结果的多个计算单元,生成至少一个扰乱计算单元,并且在不可靠计算机上启动至少一个扰乱计算单元和所述多个计算单元中的至少一个计算单元的运行以防止不可靠方重建计算,来启动计算在至少一个不可靠计算机上的执行;和
承载该程序代码的计算机可读信号承载介质。
34、如权利要求33所述的程序产品,其中,信号承载介质包括可读介质和传输介质中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/760,592 US7426749B2 (en) | 2004-01-20 | 2004-01-20 | Distributed computation in untrusted computing environments using distractive computational units |
US10/760,592 | 2004-01-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1645332A true CN1645332A (zh) | 2005-07-27 |
CN100407148C CN100407148C (zh) | 2008-07-30 |
Family
ID=34634555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100055306A Expired - Fee Related CN100407148C (zh) | 2004-01-20 | 2005-01-20 | 不可靠计算环境中使用扰乱计算单元的分布式计算 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7426749B2 (zh) |
EP (1) | EP1557739A1 (zh) |
JP (1) | JP4041497B2 (zh) |
CN (1) | CN100407148C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103392197A (zh) * | 2011-03-04 | 2013-11-13 | 日本电信电话株式会社 | 代理计算系统、方法、委托装置以及程序 |
CN108108188A (zh) * | 2011-03-25 | 2018-06-01 | 英特尔公司 | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 |
US11656875B2 (en) | 2013-03-15 | 2023-05-23 | Intel Corporation | Method and system for instruction block to execution unit grouping |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7426749B2 (en) * | 2004-01-20 | 2008-09-16 | International Business Machines Corporation | Distributed computation in untrusted computing environments using distractive computational units |
US7975270B2 (en) * | 2004-03-10 | 2011-07-05 | International Business Machines Corporation | Facilitating allocation of resources in a heterogeneous computing environment |
WO2006065102A1 (en) * | 2004-12-17 | 2006-06-22 | Nhn Corporation | Communication network system of bus network structure and method for transmitting and receiving data using the system |
JP4771528B2 (ja) * | 2005-10-26 | 2011-09-14 | キヤノン株式会社 | 分散処理システムおよび分散処理方法 |
US7594104B2 (en) * | 2006-06-09 | 2009-09-22 | International Business Machines Corporation | System and method for masking a hardware boot sequence |
US20070288761A1 (en) * | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors |
US20070288738A1 (en) * | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for selecting a random processor to boot on a multiprocessor system |
US7774616B2 (en) * | 2006-06-09 | 2010-08-10 | International Business Machines Corporation | Masking a boot sequence by providing a dummy processor |
US20070288740A1 (en) * | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for secure boot across a plurality of processors |
EP2438511B1 (en) | 2010-03-22 | 2019-07-03 | LRDC Systems, LLC | A method of identifying and protecting the integrity of a set of source data |
JP5745446B2 (ja) * | 2012-03-19 | 2015-07-08 | 三菱日立パワーシステムズ株式会社 | 技術計算方法、技術計算システム及びクライアント装置 |
DE102013007676A1 (de) | 2013-05-03 | 2014-11-06 | All4Ip Management Gmbh | Dynamische App-Rechenlast-Verteilung und nahtlose Netzwerkausfallverarbeitung zwischen Smartphone, Fahrzeug und Cloud |
US9995835B2 (en) * | 2013-07-17 | 2018-06-12 | Chevron U.S.A. Inc. | System and method of implementing finite difference time domain models with multiple accelerated processing components (APCS) |
US10498807B2 (en) * | 2015-10-19 | 2019-12-03 | Citrix Systems, Inc. | Multi-tenant multi-session catalogs with machine-level isolation |
US10970180B2 (en) * | 2019-03-29 | 2021-04-06 | Nakamoto & Turing Labs Inc | Methods and apparatus for verifying processing results and/or taking corrective actions in response to a detected invalid result |
CN112134841B (zh) * | 2020-08-18 | 2022-12-13 | 河南信大网御科技有限公司 | 异构执行体动态可重组方法、拟态防御架构及介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0842482B1 (en) * | 1995-07-28 | 2002-10-16 | Exxon Mobil Upstream Research Company | Method for determining seismic data traveltime fields on a massively parallel computer |
CN101794212B (zh) * | 1995-08-31 | 2015-01-07 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
US5933160A (en) * | 1995-11-27 | 1999-08-03 | Sun Microsystems | High-performance band combine function |
US5640336A (en) * | 1996-01-02 | 1997-06-17 | Motorola | Computational array and method for calculating multiple terms of a polynomial in a single computing element |
US5892899A (en) | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
US6356899B1 (en) * | 1998-08-29 | 2002-03-12 | International Business Machines Corporation | Method for interactively creating an information database including preferred information elements, such as preferred-authority, world wide web pages |
US6317700B1 (en) * | 1999-12-22 | 2001-11-13 | Curtis A. Bagne | Computational method and system to perform empirical induction |
US20020174227A1 (en) | 2000-03-03 | 2002-11-21 | Hartsell Neal D. | Systems and methods for prioritization in information management environments |
JP2001325041A (ja) | 2000-05-12 | 2001-11-22 | Toyo Eng Corp | 計算機資源活用方法及びシステム |
JP2002175008A (ja) | 2000-09-27 | 2002-06-21 | Nec Soft Ltd | 暗号化方法、暗号化器、暗号化及び復号化システム |
DE10061998A1 (de) * | 2000-12-13 | 2002-07-18 | Infineon Technologies Ag | Kryptographieprozessor |
CA2348355A1 (en) | 2001-05-24 | 2002-11-24 | Cloakware Corporation | General scheme of using encodings in computations |
US6950937B2 (en) | 2001-05-30 | 2005-09-27 | Lucent Technologies Inc. | Secure distributed computation in cryptographic applications |
US6694435B2 (en) | 2001-07-25 | 2004-02-17 | Apple Computer, Inc. | Method of obfuscating computer instruction streams |
DE10143728B4 (de) * | 2001-09-06 | 2004-09-02 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation |
JP2004004341A (ja) | 2002-05-31 | 2004-01-08 | Toshiba Corp | べき乗剰余計算装置、べき乗剰余計算方法及びプログラム |
US20060294238A1 (en) * | 2002-12-16 | 2006-12-28 | Naik Vijay K | Policy-based hierarchical management of shared resources in a grid environment |
US20050160423A1 (en) * | 2002-12-16 | 2005-07-21 | Bantz David F. | Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations |
US7467180B2 (en) * | 2003-05-29 | 2008-12-16 | International Business Machines Corporation | Automatically segmenting and populating a distributed computing problem |
US7426749B2 (en) * | 2004-01-20 | 2008-09-16 | International Business Machines Corporation | Distributed computation in untrusted computing environments using distractive computational units |
US20070174290A1 (en) * | 2006-01-19 | 2007-07-26 | International Business Machines Corporation | System and architecture for enterprise-scale, parallel data mining |
-
2004
- 2004-01-20 US US10/760,592 patent/US7426749B2/en not_active Expired - Fee Related
-
2005
- 2005-01-07 EP EP05250063A patent/EP1557739A1/en not_active Withdrawn
- 2005-01-20 JP JP2005012363A patent/JP4041497B2/ja not_active Expired - Fee Related
- 2005-01-20 CN CN2005100055306A patent/CN100407148C/zh not_active Expired - Fee Related
-
2008
- 2008-07-17 US US12/174,938 patent/US7661137B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103392197A (zh) * | 2011-03-04 | 2013-11-13 | 日本电信电话株式会社 | 代理计算系统、方法、委托装置以及程序 |
CN103392197B (zh) * | 2011-03-04 | 2016-04-13 | 日本电信电话株式会社 | 代理计算系统、方法、委托装置 |
CN108108188A (zh) * | 2011-03-25 | 2018-06-01 | 英特尔公司 | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 |
US11204769B2 (en) | 2011-03-25 | 2021-12-21 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN108108188B (zh) * | 2011-03-25 | 2022-06-28 | 英特尔公司 | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 |
US11656875B2 (en) | 2013-03-15 | 2023-05-23 | Intel Corporation | Method and system for instruction block to execution unit grouping |
Also Published As
Publication number | Publication date |
---|---|
JP4041497B2 (ja) | 2008-01-30 |
EP1557739A1 (en) | 2005-07-27 |
CN100407148C (zh) | 2008-07-30 |
US20050160288A1 (en) | 2005-07-21 |
US20080301806A1 (en) | 2008-12-04 |
US7661137B2 (en) | 2010-02-09 |
JP2005209202A (ja) | 2005-08-04 |
US7426749B2 (en) | 2008-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100407148C (zh) | 不可靠计算环境中使用扰乱计算单元的分布式计算 | |
Sanka et al. | A systematic review of blockchain scalability: Issues, solutions, analysis and future research | |
CN1770109A (zh) | 在hpc环境下的拓扑认识作业调度和回填的系统和方法 | |
CN1704921A (zh) | 高性能计算系统和方法 | |
CN104731658A (zh) | 供应和合并共享资源以最大化资源可用性的方法和系统 | |
Kaur et al. | Analyzing data security for cloud computing using cryptographic algorithms | |
Navaz et al. | Data grid concepts for data security in distributed computing | |
CN112217642A (zh) | 数据的加密共享方法、装置、电子设备及计算机存储介质 | |
Saxena et al. | A survey and comparative study on multi-cloud architectures: emerging issues and challenges for cloud federation | |
Molo et al. | A review of evolutionary trends in cloud computing and applications to the healthcare ecosystem | |
Kleinjung et al. | A heterogeneous computing environment to solve the 768-bit RSA challenge | |
US11895098B2 (en) | Storing encrypted chunksets of data in a vast storage network | |
Mukherjee et al. | A Secure Cloud Computing | |
Altarawneh et al. | Evaluation of cloud computing platform for image processing algorithms | |
Omran et al. | A new technique to partition and manage data security in cloud databases | |
Cong et al. | Fast PGAS connected components algorithms | |
Esposito et al. | Grid computing for electromagnetics: A beginner's guide with applications | |
Jain et al. | The Role of Intelligent Grid Technology in Cloud Computing | |
Gawali et al. | Enhancement for data security in cloud computing environment | |
Kotliar | IHEP cluster for Grid and distributed computing | |
Dubey et al. | Cloud computing and data management | |
Alhosani et al. | Comprehensive Study of The Cloud Computing Service Providers | |
Beck et al. | Active Logistical State Management in GridSolve/L | |
Yang et al. | A fair, secure and trustworthy peer-to-peer based cycle-sharing system | |
Ramamoorthy et al. | Cloud Computing: Issues, Challenges and Remedies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080730 Termination date: 20190120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |