用于处理客户请求的方法和系统的制作方法

文档序号:6474247阅读:160来源:国知局
专利名称:用于处理客户请求的方法和系统的制作方法
技术领域
本发明涉及一种处理客户请求的方法和系统。本发明尤其涉及移动代理的加密安全。
移动代理是以用户的名义自主地作用以便连续收集、过滤和处理信息的移动代码。它们结合了代理范例的优点以及远程代码执行的特征,其中代理范例的优点例如用于改变环境和自主操作;它们在计算机网络中操作,并能够按照需要从服务器向服务器移动,以实现它们的目的。重要的用途包括移动计算(其中带宽是受限制的,或者用户未连接),从大的数据库中检索数据,以及软件和网络的配置管理。随着在大规模应用中引入该范例,移动代理漫游因特网这一设想很快将变为现实。
移动代码可以被理解为一个程序,它由一个被称为发起者(originator)的实体生成,并随后在由一个实体(主机)执行之前被传送到该主机。换句话说,不需要以主机的名义进行人为干涉,例如执行安装或运行安装例程;移动代码可以准备好运行。另外,移动代理能够在与发起者不连接的情况下进行连续、自主的操作,并在其使用寿命期间自由的移动到其他的主机上。这种代理也被称之为巡回代理。移动代码被暴露在各种安全危险之中恶意的主机可以检查该代码,试图获悉由代理所携带的机密,并在它与代理的交互作用中利用这种知识来获取不正当的优势。主机还试图操纵计算的结果。
在移动代码领域中至少有两种安全问题(1)保护主机不受恶意代码侵害,以及(2)保护代码不受恶意主机侵害。由于计算机病毒和特洛伊木马的迫切威胁,所以第一个问题已经受到相当大的注意。当前的解决方案是利用精细访问控制在所谓的沙箱中运行移动代码并且采用代码签名以便与代码生成者建立信任关系。
保护移动代码对于一些移动代码研究人员来说似乎是不可能的,直到T.Sander和C.F.Tschudin认识到来自理论密码术的工具可以有效地用于在一个未置信的主机上以加密形式执行移动代码,如他们的论文“Protecting mobile agents against malicious hosts,Mobile Agentsand Security”(G.Vigna,ed.,)Lecture Notes In Computer Science,vol.1419,Springer,1998所述。用于所谓的安全计算的大多数协议需要几个回合的交互,但是不能用于实现移动应用的安全和它们输出的完整性。Sander和Tschudin得出结论,只有可以表示为多项式的函数能够按照这种方式进行安全的计算。Sander等人的随后工作将这一结论扩展为通过对数深度电路可以计算的所有函数,如T.Sander,A.Young和M.Yung在“N0n-InteractiVe Crypt0Computing forNC1”,Proc.40th IEEE Symposium on Foundations of ComputerScience(FOCS),1999所述。
代码的另一种形式是活动移动代码,它在主机上进行某种立即操作。由此关于加密计算的信息通常被泄漏给主机,从而只有发起者才会接收任何输出。
活动移动代码的一个基本问题是恶意主机可以观察到计算的输出,并利用不同的输入再次运行该代码。对活动移动代码抵抗恶意主机的唯一现存防御是使用置信的硬件。这一方法已经被提出,并限定专门在防止窜改的硬件中运行移动代码,在其一离开该置信的环境时立即对其进行加密。
US专利6026374涉及一种系统和方法,其中利用置信的第三方以向潜在的购买者提供信息产品的说明,而不会披露信息产品的完整内容,否则将会危害销售商的利益。购买者相信第三方提供所出售的信息的准确说明,同时销售商信息第三方不会披露过多的信息产品内容。该系统可以包括信息产品的销售商,这种产品的购买者,以及置信的第三方概述(summarizer),他们每一个都操作作为例如因特网的通信网络的节点。该系统和方法的缺点在于第三方必须是置信的一方,并且该第三方获取信息并了解一切。如果所述第三方有问题就相当危险。另外,处理购买者的请求必须要求几个信息。
这样的优点在于,只有客户知道计算的结果,由此其它实体或主机除了对于指派给它们的结果外一无所知。包括发起者请求的移动代码或代理在网络中发送给几个实体,由此该代码或至少其片断可以在第一实体处无须任何附加的客户硬件地安全执行。通过作为普通独立实体的计算实体获得了安全性。该独立实体可以是计算服务机构,它以移动代理的名义进行加密计算,但是不会知道有关该加密计算的任何事情。该独立实体可以提供许多不同的应用程序,由此在应用它之前无须知道有关其使用的任何情况。因此可以实现对于移动代理的保密性以及可靠性。而且,假设计算服务机构没有与代码发起者或第一实体暗中勾结,则该计算服务程序自身不知道有关该计算的任何事情。
该独立实体可以是通用的而不是束缚在特定的服务机构或应用程序环境上。例如,安全计算服务器可以由这些独立实体建立和操作。
该方法和系统可以基于软件和商品硬件,因此与任意涉及专门硬件的解决方案相比其建立和操作更便宜。
加密操作可以应用在包括请求或结果的移动代理上。因此,可以有利地保证该移动代理的完整性。
当通过应用加密电路结构形成发起者操作时,其优点在于,可以实现请求的安全计算,并且那个请求的发起者可以限定一个实体应该接收多少信息。
发起者请求可以包括加密形式的函数。这是有利的,因为处理该发起者请求的其它实体除了被分配那些实体的结果之外不能从中推导出有用的信息。
发起者请求、第一修改请求、计算实体结果以及第一实体结果可以包括加密部分。这是有利的,因为敏感信息受到了保护并且不会象明码文本一样可读取。
该发起者请求可以包括一个报价或任意其它合法指令。它还可以包括购买信息或客户信息,例如用于交付的地址或用于金融交易的信用卡号码。
第一实体包括提供服务或货物的网络服务系统。该服务机构可以仅仅是包括销售、租借、许可证或金融交易在内的任何事情。
第一实体结果可以包括有关发起者请求的接受的客户信息。这是有利的,因为这样该第一实体可以立即交付其服务或货物并且启动必要的交易。
该客户结果可以包括有关发起者请求的接受的第一实体信息。因此该客户知其发起者请求将得到满足并且不需要进一步的动作。


下面将参照下面的示意图只是以实施例的方式对本发明的优选实施方案进行详细说明。
图1显示出根据本发明的通信信息流的图解说明;图2显示出通信信息流的更详细的图解说明;图3显示出通信信息流的另一个图解说明。
这些图面只是用来进行说明,而不是必定按比例代表本发明的实际移动代码或代理计算的限定要素在于,它自主地并且与代码的发起者无关地进行。在图1显示出该安全移动代理计算的原理模型,由此根据下面的说明标明这些方框。
存在一个代码发起者O和移动代理(以下简称代理)在其上运行的l个主机,之后被称为实体H1、...Hl。
图1显示出一个网络(例如因特网),由此代码发起者O与第一实体H1连接,该实体进一步与第二实体H2连接。第二实体H2与标为Hj的实体连接(实体Hj又与标为Hj+1的实体连接),由此几个其它实体可以如由虚线所示一样位于其间。实体Hj+1与标为Hl的实体连接,而实体H1在下面返回连接在代码发起者O上。每个实体H1、H2、...、Hj、Hj+1、Hl都与一个计算实体T连接。
代码发起者O以及每个实体H1、H2、...、Hj、Hj+1、Hl只发送和接收单个消息,该消息包括代理。代码发起者O发送给第一实体H1的消息表示为mo,并且另一个实体Hj发送给Hj+1的信息表示为mj,其中j=1,...,l-1,并且最后实体H1返回给代码发起者O的消息表示为ml。
图2显示出如在图1中所示的通信信息流的更详细的图解说明。在这里为客户O的代码发起者O与在这里标为H的第一实体连接,该实体又与计算实体T连接。用于处理客户O的发起者请求OR(例如包括产品的下限的价格请求)的方法如下运行。客户O将发起者请求OR发送给第一实体H。这由标为mOR的箭头表示。第一实体H为几个产品给出特定的价格。第一实体H与计算实体T连接,并且在接收到发起者请求OR时添加与发起者请求OR相关的信息I,例如其愿意接受的价格,从而形成第一修改的请求FMR。如由标为mFMR的箭头所示一样,将该第一修改的请求FMR发送给计算实体T。如果该计算实体T已经接收到第一修改的请求FMR,则它从中推导出计算实体结果CER,而不从该计算中了解任何事情。之后,如由标为mCER的箭头所示一样将该计算实体结果CER发送回第一实体H。如果该第一实体H已经接收到该计算实体结果CER,则从中推导出第一实体结果FER,并且如由标为mFER的箭头所示一样将这个结果转发回给客户O。该客户O能够从该第一实体结果FER中推导出客户结果CR。该客户结果CR向客户提供他的发起者请求OR是否已经得到满足的信息。第一实体H从第一实体结果FER中得知其报价是否为客户O所接受。发起者请求OR可以包含关于客户O的信息,例如地址、信用卡信息,这使得第一实体H能够立即交付所请求的产品。
在上述的实施方案中,移动代理访问几个卖主位置,并且比较报价。发起者请求OR不仅基于价格,而且还可以包括其它属性。发起者或客户O想要保持他的优选选择的保密性,但是商店有兴趣了解买方的策略以及有关其它卖主的报价的信息。对于其中价格是针对每个客户根据其需要单独确定的复杂报价而言,例如在保险市场中,卖主想要使其计算价格的方法保密。所有这些要求可以通过用于安全移动代码的上述构想来得到满足。
在另一个实施方案中,选购代理在网络中浏览并且收集来自几个卖主或实体H1、H2、...、Hj、Hj+1、Hl的报价,由此在这些报价的数据格式方面的在先协定是有帮助的。
图3显示出采用了与如在图1和2中所示的相同或相似部分的另一个实施方案。其差别在于,代码发起者O将其发起者请求OR直接发送给每个实体H1、H2、...、Hl,由此发起者请求OR可以对于每个实体H1、H2、...、Hl相同或不同。
在另一个实施方案中,将对电子协商进行说明。在买方和单个卖主之间的电子协商可以采用用于访问单个主机或实体H的安全移动代码的方案来进行。通常,卖主作为发起者O,并且将小程序下载到买方的浏览器上(这在因特网上已经相当普遍)。该小程序通过买方利用计算实体T的帮助来运行,并且向买方显示报价。卖主同样可以获得一些信息,它将必须在伴随着该小程序的“保密性声明”中清楚地说明这些。
具有通用出价策略的拍卖对于安全移动代码而言是一个令人感兴趣的应用领域。出价代理可以实现一种作为时间和其它参与者的行为的函数的复杂策略,这与纯粹基于价格的传统单参数拍卖相比给予了出价者更多的灵活性。由于这些拍卖项目的价值是相关的,所以出价者希望尽可能动态地限定其出价行为,例如使对一项拍卖项目的估价取决于他在前面回合中观察到的其它获得反标(winning bid)。如果这些出价者可以将它们的策略表达为一种可计算的函数的话,则人们可以构造一个电路,利用所述策略作为所有参与者的私人输入来计算该拍卖函数(即拍卖的结果)。这将需要只访问每个出价者一次的拍卖代理。但是,在出价者不能数学地表达它们的策略的可能情况中,拍卖的每个回合也可以通过拍卖小程序安全地执行,所述小程序访问每个出价者一次并且返回到拍卖商。在那里它输出获得反标或者如果这些出价没有超过最小加价的话则输出拍卖结束。如果采用用于安全移动计算的方案的话,则没有任何单个实体H1、H2、...、Hj、Hj+1、Hl会看见所有出价(如拍卖商、其计算机系统或其操作人员)。通用的拍卖在电气市场、证券交易、带宽拍卖以及运输交换中是常见的,并且出价者往往在物品的组合上具有优先选择。
在下面,将对实现细节进行说明。
计算使移动代理的状态成为一集合X中的一个元素。其初始状态xo由O确定。将Hj的输入作为一个集合Yj中的一个元素,并且将向Hj的输出作为集合Zj的一个元素。在实体Hj上的代理计算由下面两个函数表示gjX×Yj→X,并且hjX×Yj→Zj这两个函数确定了该代理的新状态Xj=gj(xj-1,yj)和输出zj=hj(xj-1,yj)。O获得了代理的最终状态ξ=xl∈X。这些函数gj和hj对于所有实体H1,...,Hl而言都是已知的。
移动计算方案包括2l+2个算法A0,A1…Al,B1…Bl和D,从而对于所有j=1,…,L和X0∈X,Yj∈Y;以及m0=A0(x0)mj=Aj(mj-1,yj),其中j=1,...,lzj=Bj(mj-1,yj),其中j=1,...,lξ=D(ml)下面两个条件(正确性和保密性)成立。
正确性ξ=gl(xl-1,yl)并且zj=hj(xj-1,yj),其中j=1,...,l使用xj′=gj′(...(g2(g1(x0,y1),y2)...),yj′)其中j’=1,...,l-1。
保密性除了从它们的输出中得出的内容之外,所有实体的输入、输出和计算结果都保持不为发起者和所有其它实体所知。O只知道ξ,但是不知道除了从x0和ξ得出的之外有关任何yj的情况,并且同样Hj只知道zj,但不知道除了从zj和yj得出的之外有关x0和yj(其中j′<j)的情况。
由于简明的原因,上面的方案假设该代理访问所有实体的顺序是固定的。它延伸至通过引入函数πZj→{1,...,l}并且从Hj将代理发送给 从而使得该顺序取决于zj。在具有单个主机即只有第一实体H的移动代码应用的情况中,函数g产生O的输出ξ,并且h给出H的输出z。
设有可以是一般安全计算服务机构的计算实体T。该计算实体T是在线的并且与运行代理的所有实体H1,...H1或主机连接,并且由所述实体或主机管理以保证代理计算的安全。在假设(1)计算实体T不会背着任意实体与发起者相互勾结并且(2)该计算实体T不会背着发起者或背着任意实体与任意其它实体勾结的情况下,计算实体T自身不论它如何操作也不会获得任何有关该计算的信息。所有计算在最小或没有任何交互作用的情况下进行。该方案是一般的并且没有被限制在任意特定用途上。因此,计算实体T的服务可以提供作为用来在因特网上进行“安全移动代理计算”的公用服务。以O或H的角色使用该服务(例如进行比较购物)的客户或用户不必害怕计算实体T具有试图侵犯它们的保密性(例如客户的情况和收集市场数据)的“第二想法而且计算实体T自身感兴趣的是保持其作为安全提供者的声誉。
该方案基于加密形式的函数。例如,对一个二进制数字电路进行加密实现了部分代理计算。这可以通过如在下面所述的加密电路结构来实现。
加密电路结构Yao的加密电路结构,如由A.C.Yao在Proc.27thIEEE Symposiumon Foundations of Computer Science(FOCS),1986,第162-167页上的其文章“How to generate and exchange secrets”中提出的一样,是用于在两方或两个实体之间进行安全函数评估的交互式协议。这是针对二进制函数g(·,·)与Alice(具有输入x)和Bob(具有输入y)双方来说明的。Bob接收输出z=g(x,y),但是不知道任何其它事情,并且Alice根本不知道任何事情。
令 和 分别表示x,y和z的二进制代表,并且令C表示多项式二进制电路计算g。Yao氏结构的组件有(I)第一算法“构造”,Alice使用该算法来构造一个加密电路,(II)Alice和Bob之间的传输协议,以及(III)允许Bob取回g(x,y)的第二算法“求值”。更精确地说,这些过程如下操作。
(I)概率性的第一算法“构造(C)”采取该电路作为输入并且输出数组(e,L,K,U)
其中e可以看作是nx+ny-输入电路C(·,·)的加密形式,并且其中L,K和U表示分别与x,y和z相对应的所谓密钥对的列表L=(L1,0,L1,1),...,(Lnx,0,Lnx,1)]]>K=(K1,0,K1,1),...,(Kny,0,Kny,1)]]>U=(U1,0,U1,1),...,(Unz,0,Unz,1)]]>为了从加密e中计算出C(x,y),Bob对于每个输入位需要一个“密钥Li,b与输入位xi=b相对应,Ki,b与输入位yi=b相对应。密钥Ui,0和Ui,1表示加密电路的输出位,即如果评估产生Ui,b,则该输出位zi被设定位b。
其中e被加密的具体方法确保了,对于在该电路中的每个门而言,只要给出表示其输入位的两个密钥,则可以很容易计算出表示所得到的输出位的密钥,但是不会泄露有关它表示哪个明码报文的任何信息。
(II)Alice和Bob参加用于忘却传送(oblivions transfer)的协议,例如如由S.Even,O.Goldreich和A.Lempel在“A randomized protocolfor signing contract”,Communications of the ACM28(1985),637-647中或者由G.Brassard,C.Crépeau和J.-M.Robet在“Information-theoretic reductions among disclosureproblems”,Proc.27thIEEE Symposium on Foundations of ComputerScience(FOCS),1986中所披露的一样。这是一个交互式双方协议,用于具有输入两个消息m0和m1的发送者和具有输入一个位σ的选择者。最后,选择者接收mσ,但不知道关于mσ1的任何事情,并且发送者不知道关于σ的任何事情。
更精确地说,Alice作为发送者,而Bob针对他的输入的每个位yi获得数值K′i=Ki,yi,]]>但是不知道有关 的任何事情。同时,Alice不知道有关yi的任何事情。另外,Alice计算出将x表示为L′i=Li,xi(i=1,...,nx)的密钥并且将e,L′1,...,L′nx,U发送给Bob。
(III)第二算法“求值(e,L′1,...,L′nx,K′1,...,K′ny)”通过相应的密钥采取加密电路、x的表示和y的表示作为输入。它输出Bob可以从中恢复z的密钥U′1,...,U′nz,并且如果Alice和Bob遵守该协议,则z=g(x,y)。
实施第一和第二算法“构造”和“求值”可以通过伪随机函数来实现,例如如由O.Goldreich,S.Goldwasser和S.Micali在“How toconstruct random functions”,Journal of the ACM33(1986),no.4.792-807中所提出的一样,这些函数实际上是通过分组密码来实现的。分组密码即使在软件中实现也是非常快速的加密原语(primitive)。
下面说明如何使用加密电路结构来实现与单个或第一实体进行安全移动代码计算。在这之后考虑向多个实体的扩展。
计算实体T公布了加密方案的公共密钥。相应的加密和解密操作分别由ET(·)和DT(·)表示。所有实体可以在经安全鉴定的链路上通信,这可以通过采用标准公共密钥加密和数字签名来实现。
基本方案是,O构造计算两个数值ξ和z的加密电路e。代码发起者O将e发送给第一实体H,但是将用于T的在K中的所有密钥加密,但不包括与ξ相对应的在U中的密钥对(由Ux表示),从而第一实体H不会知道有关ξ的任何事情。接着,第一实体H从K中选择表示y的加密密钥,并且调用计算实体T在单次交互回合中将它们解密。然后,第一实体H对该电路求值并且获得z;它还在该电路输出中将表示ξ的密钥返回到O,O可以从中确定ξ。
使C成为从具有nx+ny输入位x1,...,xnx,y1,...,yny和nx+nz输出位ξ1,...,ξnx,z1,...,znz的相同输入中计算(ξ,z)=(g(x,y),h(x,y))的二进制电路,从而稍微改变了来自前面部分的表示法。如在下面中所述一样,该方案在五个步骤1)至5)中进行。
1)O选择唯一识别该计算的字符串id,例如包含O的姓名、g和h的说明以及顺序计数器。O调用“构造(C)”并且如上一样获得(e,L,K,U),其中U整个由nx+nz个密钥对构成。Ux表示在U中具有下标1,...,nx的密钥对,并且Uz表示具有下标nx+1,...,nx+nz的那些密钥对。
对于i=1,...,ny并且b∈{0,1}而言,它计算Ki,b=ET(id‖i‖Ki,b)。
使K表示所有这类K的密钥对列表。然后O如上一样使L′i=Li,xi(其中i=1,...,nx)并且将 U发送给第一实体H。
2)第一实体H将K‾′i=K‾i,yi(i=1,...,ny)]]>设定为表示其输入y的加密,并且将它们与id一起发送给计算实体T。
3)计算实体T对K′i(i=1,...,ny)解密并且验证第i个解密的字符串包含标识符id和下标i。如果所有检查都成功的话,则计算实体T使解密的密钥K′1,...,K′ny返回给第一实体H。
4)第一实体H调用第二算法“求值(e,L′1,...,L′nx,K′1,...,K′ny)]]>”并且获得U′1,..., 然后,第一实体H确定z=(z1,...,znz),]]>从而Unx+i,zi=U′nx+i(i=1,...,nz)]]>并且将剩下的数值U′1,..., 转发给代码发起者O。
5)代码发起者O确定其输出ξ=(ξ1,...,ξnx),]]>从而Ui,ξi=U′i(i=1,...,nx).]]>为了提高安全性,计算实体T应该采用公共密钥密码系统,该系统防止受到自适应选择加密文本的攻击,这意味着不可延展性,如由D.Dolev,C.Dwork和M.Naor在“Non-malleable cryptography”,SIAMJournal on Computing30(2000),no.2,391-437中所披露的一样。代码发起者O和第一实体H还应该牢记他们的输入。在实际系统中,所有这些都可以在所谓的“随机oracle模型”中采用安全散列函数来实现,如M.Bellare和P.Rogaway在“Random oracles are practicalAparadigm for designing efficient protocols”,Proc.1stACM Conferenceon Computer and Communications Security,1993中所述的一样。在这种情况中,用于电路加密的公共密钥加密方案和伪随机函数可以根据Diffie-Hellman问题的难度通过离散对数来实施,如由M.Naor和O.Reingold在“Number-theoretic construction of effcientpseudo-random functions”,Proc.38thIEEE Symposium onFoundations of Computer Science(FOCS),1997中所述的一样。
在下面,披露了上述方法的扩展以便实现如在图1中所示一样的具有多个实体H1,...,Hl的一般移动计算方案。一般化是自然情况,其中每个实体进行上述基本方案的步骤2)至4),并且将代理发送给后一个实体。
由此,代码发起者O为每个实体H1,…Hl准备一个加密电路e,并且将加密状态xj-1从e(j-1)结合进e(j)中(j>1)。这是通过采用来自e(j-1)的输出密钥U′1(j-1),...,U′nx(j-1)以便将给e(j)的输入的隐藏表达式解密来实现的。
在其加密和解密操作是在分别由Ek(·)和Dk(·)表示的密钥k下进行的对称加密系统中,该加密系统包括足够的冗余,从而只要给定潜在密钥U和密文c,则人们可以以很高的概率确定c是否是用U进行加密得到的。对该方案的改进方案如下。
1a)代码发起者O以与上面e相同的方式获得e(j),L(j),K(j),U(j)和K(j)(j=1,...,l)。但是,代码发起者O只选择用于e(1)的数值L′i=L′i,xi(1).]]>在第j个阶段中的标识符设定为id‖j。代码发起者O还准备两个加密EUi,0(j-1)(Li,0(j))]]>和EUi,0(j-1)(Li,1(j))]]>其中每个j>1并且i=1,...,nx,并且在将它们分配给Vi,0(j)和Vi,l(j)之前随机地改变它们的序列;调用这些对V(j)的列表。
然后,代码发起者O在单个消息内将id, e(1),K(1),Uz(1)和e(j),K(j),Uz(j),V(j)(其中j=2,...,l)发送给第一实体H。
2a)对于j>1而言,当Hj运行基本方案的步骤2时,它从Hj-1中接收之前已经对e(j-1)求值的V(j)和 每个实体将每个U′1(j-1)解释作为对E的对称密钥,确定它对Vi,0(j)和Vi,1(j)中哪一个进行解密,然后对相匹配的一个进行解密。这产生出Ki(j),它是在代理的当前状态xj中的第i位的忘却(oblivious)表示式。然后使用那些密钥来对e(j)求值。
3a)当Hj已经从对e(j)求值中获得其输出,它将已经从Hj-l中接收到的所有数据与U′1(j),...,U′nx(j)一起转发给Hj+1。在该循环的最后,H1将U′i(l)返回给代码发起者O。
计算实体T产生代码在其中O和T的角色发生变换的变型中,计算实体T产生加密电路。因为相信它会遵守协议,所以人们不必针对整个电路的正确性加入代价很高的零知识验证系统。因此,其它实体和确保稳固性的相应验证系统的操作变得简单得多。计算实体T必须知道g和h以便构造出该电路,但是它可以在第一协议消息中从O获得C的说明。
如由M.Naor,B.Pinkas和R.Summer在“Privacy preservingauctions and mechanism design”,Proc.1stACM Conference onElectronic Commerce,1999中所介绍的一样,采用一种三方忘却传输协议,其中选择者的角色在选择者和被称为接收者的第三方间是不同的。与忘却传输的标准概念相比,接收者获得由选择者指定的输出消息mσ,该选择者自己不知道任何事情。这种所谓的“代理服务系统”(proxy)忘却传输可以采用三个消息流来实现从选择者到接收者和从接收者到发送者以及返回。
该协议还在两方之间使用标准忘却传输单回合(one-round)实施,这可以采用C.Cachin,J.Camenisch,J.Kilian和J.Müller的方法来实现,该方法被公布在他们在Proc.27thInternational Colloquium onAutomata,Languages and Programming(ICALP)(U.Montanari,J.P.Rolim和E.Welzl,eds.),Lecture Notes in ComputerScience,vol.1853,Springer,July 2000,第512-523页上的文章“One-round secure computation and secure autonomous mobileagents”中。
如在基本方案中一样,应用了加密电路结构的组件。该协议是针对具有单个实体H的移动代码的基本情况进行说明的。假设O采用具有分别由EO(·)和DO(·)表示的加密和解密操作的公共密钥加密方案。O作为选择者在nx个并行三方忘却传输(x的每一个位一个)中开始计算。它将这些隐藏的选择以及C和EO(·)一起发送给H(该H在三方忘却传输中作为接收者)。H将适当的数据转送给T,该T作为发送者;它将在三方忘却传输中发送密钥对L。另外,H还将准备其到ny个并行单回合忘却传输的输入(扮演选择者的角色),y中的每一个位一个。它将这些与C和EO(·)的说明一起发送给T;T将在单回合忘却传输中发送这些密钥对K。
T调用“构造(C)”以获得e和密钥对L,K和U。它在所有忘却传输协议中用Eo(Ux),e,Uz和最终流应答H。
由此H可以确定表示x的密钥L′1,..., 和表示y的密钥K′1,..., 它运行“求值(e,L′1,...,L′nx,K′1,...,K′ny)”以获得上面的U′1,..., 然后,它从U′nx+1,...,U′nx+nz]]>中并且从Uz中确定其输出,并且它将U′1,..., 与EO(Ux)一起转送给O。这使得O能够获得其输出ξ。
以下表示将协议从单个主机或第一实体H1根据至1个主机H1,…,Hl的情形。该协议如同前面那样针对第一主机开始。但是用于H2,…,Hl的步骤略有不同不使用三方忘却传输和借助Eo的加密。取而代之的是,与前面V(j)一样,T借助在来自e(j-1)的u(j-1)中的输出密钥对在e(j)的输入中、并且表示代理的状态xj-1的密钥L(j)进行加密。密钥u(j-1)可以由T在步骤j-1和步骤j之间进行存储,或者它们可以连同协议流被发送并通过Hj-1和Hj传送给T,由此它们是由ET(·)来加密的。另外,最后的主机从T获得用EO(·)加密的ux,并将其传送给O,如上所述。
通信模式与基本方案中的一样有一个从O至H1的消息,一个从每个Hj-1至Hj的消息,以及一个从Hl至O的消息,加上一个在每个主机和计算实体T之间的通信流。通过使用非延展性的公共密钥加密方案和非交互式零知识验证系统可以加强稳固性。但是结果会更加具有实用性,因为对于潜在的大加密电路来说不需要零知识验证系统。另外,可以用分组密码代替公共密钥操作,来实现加密电路结构。
任何所述的实施方案可以与一个或几个所示和/或所描述的其他实施方案相结合。对于这些实施方案的一个或多个特征来说也是一样的。
本发明可以在硬件、软件、以及硬件和软件的结合中实现。任何类型的计算机系统-或其他用于进行此处所述方法的设备都是适用的。硬件和软件的典型的结合可以是带有计算机程序的通用计算机系统,当所述程序被加载并被执行时,控制计算机系统,从而它可以执行上述的方法。本发明也可以嵌入在计算机程序产品中,它包括使此处所描述的方法得以实施的所有特征,当该计算机程序产品被加载在计算机系统中时,能够执行这些方法。
在本文中计算机程序装置或计算机程序意味着使用任何语言、代码或符号的一组指令的任何表达,所述指令使得具有信息处理能力的系统直接或在经过(a)转换为其他语言、代码或符号;(b)在不同的材料形式中复制这两个步骤的一个或两个步骤之后执行一个特定的函数。
权利要求
1.一种处理客户(O)的可发送至至少一个第一实体(H)的发起者请求(OR)的方法,该方法包括a)从所述客户(O)将发起者请求(OR)发送给所述或每个第一实体(H);b)使所述或每个第一实体(H)与计算实体(T)连接;c)由所述或每个第一实体(H)在接收到发起者请求(OR)时添加与该发起者请求(OR)相关的信息(I),由此形成第一修改的请求(FMR);d)将至少部分所述第一修改的请求(FMR)发送给至少所述计算实体(T);e)在所述计算实体(T)已经接收到至少部分所述第一修改的请求(FMR)之后,从所述至少部分所述第一修改的请求(FMR)中推导出计算实体结果(CER);f)将至少部分所述计算实体结果(CER)发送给所述或每个第一实体(H);g)在所述或每个第一实体(H)已经接收到至少部分所述计算实体结果(CER)之后,从中推导出第一实体结果(FER)并且至少部分将它转送;并且h)在客户(O)已经接收到至少部分所述第一实体结果(FER)之后,从中推导出客户结果(CR)。
2.一种由卖主(H)处理客户(O)的发起者请求(OR)的方法,该方法包括a)从所述客户(O)接收所述发起者请求(OR),并添加与该发起者请求(OR)相关的信息(I),由此形成第一修改的请求(FMR);b)将至少部分所述第一修改的请求(FMR)发送给至少计算实体(T),所述计算实体(T)从中推导出计算实体结果(CER),并将其至少部分返回;以及c)在所述第一实体(H)已经接收到至少部分所述计算实体结果(CER)之后,从中推导出第一实体结果(FER)并且至少部分将它转送,由此所述客户(O)能够从所述至少部分所述第一实体结果(FER)中推导出客户结果(CR)。
3.一种由计算实体(T)处理来自至少一个第一实体(H)的第一修改的请求(FMR)的方法,其中该第一修改的请求(FMR)包括来自客户(O)的至少部分发起者请求(OR),所述方法包括a)从所述或每个第一实体(H)接收所述第一修改的请求(FMR);b)从至少部分所述第一修改的请求(FMR)推导出计算实体结果(CER);c)将至少部分所述计算实体结果(CER)发送给所述或每个第一实体(H),该所述或每个第一实体(H)从中推导出第一实体结果(FER)并且至少部分将它转送,由此所述客户(O)能够从所述至少部分所述第一实体结果(FER)推导出客户结果(CR)。
4.一种处理发起者请求(OR)的方法,该方法包括a)形成所述发起者请求(OR);b)将所述发起者请求(OR)发送给至少一个第一实体(H),由此所述或每个第一实体(H)添加与该发起者请求(OR)相关的信息(I),从而形成第一修改的请求(FMR),并将至少部分所述第一修改的请求(FMR)发送给至少计算实体(T),所述计算实体(T)从中推导出计算实体结果(CER),至少部分所述计算实体结果(CER)被发送给所述或每个第一实体(H),该所述或每个第一实体(H)从中推导出第一实体结果(FER)并且至少部分将它转送;并且c)在已经接收到所述至少部分所述第一实体结果(FER)之后,从中推导出客户结果(CR)。
5.如前述任一项权利要求的方法,还包括向请求(OR,FMR)和结果(CER,FER)应用加密操作的步骤。
6.如权利要求4的方法,形成发起者请求(OR)的步骤包括应用加密电路结构(e)。
7.一种计算机程序单元,包括用于在所述程序在计算机上运行时执行权利要求1-6任一项的方法的程序代码部件。
8.一种存储在计算机可用介质上的计算机程序产品,包括计算机可读的程序部件,用于使得计算机执行权利要求1-6任一项的方法。
9.一种处理发起者请求(OR)的系统,包括连接至至少一个第一实体(H)的客户(O);以及连接至至少所述第一实体(H)的计算实体(T);其中所述客户(O)将发起者请求(OR)发送给所述或每个第一实体(H),该所述或每个第一实体(H)添加与该发起者请求(OR)相关的信息(I),由此形成第一修改的请求(FMR),并将至少部分所述第一修改的请求(FMR)发送给至少所述计算实体(T),所述计算实体(T)从所述至少部分所述第一修改的请求(FMR)中推导出计算实体结果(CER),并将至少部分所述计算实体结果(CER)发送给所述或每个第一实体(H),所述或每个第一实体(H)从所述至少部分所述计算实体结果(CER)中推导出第一实体结果(FER)并且至少部分将它转送,所述客户(O)能够从所述至少部分所述第一实体结果(FER)中推导出客户结果(CR)。
10.如权利要求9的系统,其中发起者请求(OR)包括加密形式的函数。
11.如权利要求10的系统,其中所述加密形式的函数包括加密电路结构(e)。
12.如权利要求9的系统,其中发起者请求(OR)是移动代码的一部分。
13.如权利要求9的系统,其中发起者请求(OR)、第一修改的请求(FMR)、计算实体结果(CER)和第一实体结果(FER)包括加密部分。
14.如权利要求9-13任一项的系统,其中发起者请求(OR)包括一种或多种以下信息报价、客户信息、购买信息。
15.如权利要求9的系统,其中第一实体(H)包括提供服务和/或与发起者请求(OR)的接受相关的客户信息的网络服务器。
16.如权利要求9的系统,其中客户结果(CR)包括与发起者请求(OR)的接受相关的第一实体信息。
全文摘要
本发明提供一种用于安全的处理客户的发起者请求的方法和系统。发起者请求可以被发送至至少一个第一实体。用于处理发起者请求的方法包括以下步骤a)从客户将发起者请求发送给所述或每个第一实体;b)使所述或每个第一实体与计算实体连接;c)由所述或每个第一实体在接收到发起者请求时添加与该发起者请求相关的信息,由此形成第一修改的请求;d)将至少一部分所述第一修改的请求发送给至少所述计算实体;e)在所述计算实体已经接收到将该至少一部分的第一修改的请求之后,从所述至少一部分第一修改的请求中推导出计算实体结果;f)将至少一部分所述计算实体结果发送给所述或每个第一实体;g)在所述或每个第一实体已经接收到至少部分所述计算实体结果之后,从中推导出第一实体结果并且至少部分将它转送;并且h)在客户已经接收到至少部分第一实体结果之后,从中推导出客户结果。
文档编号G06F9/46GK1478222SQ01818247
公开日2004年2月25日 申请日期2001年10月24日 优先权日2000年11月6日
发明者乔伊·阿尔格舍伊默-穆勒, 克里斯蒂安·卡辛, 简·卡默尼施, 昆特·卡约施, 乔伊 阿尔格舍伊默-穆勒, 卡约施, 蒂安 卡辛, 默尼施 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1