促成对等覆盖网络中的访问控制的制作方法

文档序号:7992382阅读:233来源:国知局
促成对等覆盖网络中的访问控制的制作方法
【专利摘要】提供了用于促成对存储在对等覆盖网络内的数字对象的访问控制的方法和装置。提供了用于在对等网络中的第一对等节点和第二对等节点之间匹配身份的隐私保留方法。此种身份匹配可被用于例如查明第一对等节点是否应该提供对存储在对等覆盖网络中的某些数字对象的访问。第二对等体可以并非以不受保护的格式提供其身份,而是按隐藏表示向第一对等节点提供其身份从而防止第一对等体获悉非匹配的身份。此种隐藏表示可以是一种数据结构,该数据结构通过密码学方式在该数据结构的共享数据空间内隐藏第二对等节点的或第二对等节点的用户的一个或多个身份。
【专利说明】促成对等覆盖网络中的访问控制
[0001]背景
[0002]领域
[0003]本文公开的各特征一般涉及对等覆盖网络,并且至少一些特征涉及促成对等覆盖网络中的访问控制而同时维持用户隐私。
[0004]背景
[0005]对等(P2P)覆盖网络是为低成本可伸缩性和易于部署应用而设计的。在P2P网络中,每个用户经由对等体集合连接到网络的其余部分。此外,每个用户可具有形成离散集的身份集(例如,成员信息、电子邮件地址、群成员资格、账户标识符、和/或其它形式的成员/账户标识符)。此身份集可被认为是数学意义上的离散集,即指具有相同特性的元素的集合。问题出现在两个对等体(A和B)希望发现其身份集的交集时。例如,对等体A可包括身份(1&11004”、‘411^14”、“作4”、“吐&74”等),并且对等体B可包括身份(“gmail-B”、“Linkedln-B”、“bank(银行)-B”等)。身份匹配可发生在A和B正尝试发现它们是否属于同一群(因此具有相同的群凭证)时;或者当一方正对一对象执行访问控制(这需要来自准予身份集的身份),并且另一方正尝试访问该对象时。例如,仅那些具有eBay?账户(“ebay-n”)的对等体可被准予访问特定对象。
[0006]在对等网络中,这两个身份集必须被传输给同一对等体以执行操作(例如,对等体A将他的身份发送给对等体B)。一种非安全解决方案是P2P网络上的一个对等体将存储在其机器上的整个 集发送到另一对等体(例如,对等体A向对等体B发送其所有身份一“Yah00-A”、“gmail-A”、“fb-A”、“ebay-A”等)。接收方对等体能随后执行集合运算,并发送回运算结果。即,集合运算可确定对等体是否包括给予其对特定数字对象(例如,数据、密钥、口令、可执行件、应用等)的访问的身份。当操作中涉及的集合较大时,此种解决方案在消息接发和计算方面导致显著的开销。此外,此种操作可向对等体B以及潜在地向路由路径中的所有节点泄露对等体A所有的身份或成员资格,这可能侵犯对等体A的隐私。例如,如果对等体要发送具有其身份的身份集,则这可能允许接收方对等体和/或中间对等体查明其中一些或所有身份或相关信息,由此潜在地泄露私密信息(例如,对等体A可发送身份集,该身份集可能泄露指示对等体A患有罕见疾病的该疾病医疗组织成员资格)。
[0007]因此,需要一种方式来保留对等体的隐私(例如,身份、成员资格等)而同时仍能够执行对等网络中的访问控制。
[0008]概述
[0009]提供了一种在请求方对等节点中操作的用于获得对数字对象的访问而同时保护请求方的隐私的方法。生成一种数据结构,该数据结构通过密码学方式将请求方对等节点的或请求方对等节点用户的一个或多个身份隐藏在该数据结构的共享数据空间内。这一个或多个身份的每一个的表示可以沿共享数据空间均匀并随机地分布。该数据结构可随后作为访问数字对象的请求的一部分被发送至验证方对等节点。作为响应,请求方对等节点可从验证方对等节点接收信息,该信息指示这一个或多个身份中是否有任一个是用于访问所请求的数字对象的匹配。[0010]根据所收到的信息,请求方对等节点可将第一身份标识为匹配并选择与第一身份对应的认证数据。所选择的认证数据随后被发送至验证方对等节点以认证对数字对象的访问。如果所选择的认证数据被验证方对等节点成功认证,则请求方对等节点可获得对该数字对象的访问。
[0011]这一个或多个身份可以是群身份且数字对象是仅特定群的成员可用的数据。请求方对等节点和验证方对等节点可通过覆盖对等网络无线通信。该数据结构可以是二进制矢量,其中这一个或多个身份的每一个由沿该二进制矢量均匀且随机分布的多个位来表示。
[0012]在一个示例中,该二进制矢量可如下生成:(a)向第一身份应用密码散列函数以生成二进制串;(b)将该二进制串划分成二进制段;(c)将每个二进制段转换为该二进制矢量内的位置索引;和/或(d)将该二进制矢量在所指示的位置索引处的矢量值设置为非默认值。多个附加身份可被转换为在该二进制矢量中被设为非默认值的位置索引。该数据结构可以是布隆过滤器矢量,其中每个身份由沿该布隆过滤器矢量均匀且随机分布的多个位来表示。在此意义上,该数据结构是其中假阳性身份匹配是可能的概率性数据结构。
[0013]提供了一种在验证方对等节点中操作的用于促成对数字对象的访问而同时保护请求方的隐私的方法。可从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构,其中所收到的数据结构通过密码学方式将请求方对等节点的或请求方对等节点用户的一个或多个身份隐藏在该数据结构的共享数据空间内。这一个或多个身份的每一个的表示可以沿共享数据空间均匀并随机地分布。获得被允许访问该数字对象的一个或多个访问身份。针对这些访问身份中的每一个生成第二数据结构,其中第二数据结构通过密码学方式隐藏该数字对象的访问身份。随后在收到的数据结构和第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集。该信息随后被发送至请求方对等节点,该信息指示该请求方对等节点的这一个或多个身份中是否有任一个是用于访问所请求的数字对象的匹配。
[0014]作为响应,验证方对等节点可接收与由该验证方对等设备标识出的匹配身份相关联的认证数据。如果收到的认证数据被成功认证,则验证方对等节点可随后准予请求方对等节点访问所请求的数字对象。认证数据被认证以验证请求方对等节点是由匹配身份所标识的群的成员。由验证方对等节点发送以指示匹配的信息可以是匹配身份。由验证方对等节点发送以指示匹配的信息可以是匹配身份的隐藏版本。在各种实现中,所请求的数字对象可由验证方对等节点或由存储方对等节点存储。
[0015]在一个示例中,收到的数据结构可以是二进制矢量,其中该请求方对等节点的这一个或多个身份中的每一个由沿该二进制矢量均匀且随机地分布的多个位来表示。例如,该数据结构可以是布隆过滤器矢量,其中每个身份由沿二进制矢量均匀且随机地分布的多个位来表示。
[0016]第二数据结构是如下生成的二进制矢量:(a)向第一身份应用密码散列函数以生成二进制串;(b)将该二进制串划分成二进制段;(c)将每个二进制段转换为二进制矢量内的位置索引;和/或(d)将二进制矢量在所指示的位置索引处的矢量值设置为非默认值。
[0017]附图简要说明
[0018]图1是解说包括对等覆盖网络和多个对等节点的网络的框图。
[0019]图2是解说请求方对等节点和存储方和/或验证方对等节点之间用以处理访问请求而同时保护请求方对等节点的身份的隐私的交换的流图。
[0020]图3解说了生成隐藏请求方对等节点的多个身份的布隆过滤器矢量的一个示例。
[0021]图4解说了生成隐藏请求方对等节点的多个身份的布隆过滤器矢量而同时降低假阳性概率的示例。
[0022]图5解说了生成隐藏请求方对等节点的多个身份的布隆过滤器矢量而同时降低假阳性概率的另一示例。
[0023]图6解说了可针对被允许访问数字对象的访问身份生成的一个或多个布隆过滤器矢量的示例。
[0024]图7解说了可针对被允许访问数字对象的一个或多个身份生成的一个或多个布隆过滤器矢量的示例。
[0025]图8是解说根据一个示例的请求方对等节点的框图。
[0026]图9解说了一种在请求方对等节点中操作的用于在访问控制期间保护其身份的隐私的方法。
[0027]图10解说了一种在请求方对等节点中操作的用于将身份隐藏在布隆过滤器矢量中的方法。
[0028]图11是解说根据一个示例的验证方/存储方对等节点的框图。
[0029]图12解说了一种在验证方对等节点中操作的用于保护请求方对等节点身份的隐私而同时执行访问控制的方法。
[0030]详细描述
[0031]在以下描述中,给出了具体细节以提供对所描述的实现的透彻理解。然而,本领域普通技术人员将理解,没有这些具体细节也可实践各种实现。例如,电路可能以框图形式示出,以免使这些实现湮没在不必要的细节中。在其他实例中,公知的电路、结构和技术可能被详细示出以免湮没所描述的实现。
[0032]措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实现或实施例不必被解释为优于或胜过其他实施例或实现。同样,术语“实施例”并不要求所有实施例都包括所讨论的特征、优点、或工作模式。本文中使用的术语“对等覆盖网络”和“对等节点”旨在被宽泛地解释。例如,“对等覆盖网络”可以指不由服务器或稳定主机集中式地协调的、且包括在各对等方之间划分任务或工作负载的分布式应用架构的覆盖网络。此外,“对等节点”可以指促成对等覆盖网络上的通信的设备。“对等节点”的示例可包括打印机、平板计算机、电视机、移动电话、个人数字助理、个人媒体播放器、膝上型计算机、笔记本计算机、台式计算机等。
[0033]综览
[0034]一个特征促成对存储在对等覆盖网络中的数字对象的访问控制。提供了一种用于在对等网络中的第一对等体和第二对等体之间匹配身份的隐私保留方法,并且该方法可被扩展至多个附加对等体。此种身份匹配可被用于例如查明第一对等体是否应向第二对等体提供对某些数字对象(例如,数据、应用、可执行件、密钥等)的访问(例如,读访问、写访问、删除访问、执行访问等)。例如,第二对等体可向第一对等体提供第二对等体的身份列表从而可执行身份匹配。然而,第二对等体可以并非以不受保护的格式提供其身份,而是按隐藏表示提供其身份从而防止第一对等体获悉非匹配身份。即,通过隐藏身份,仅第二对等体的匹配身份被揭示给第一对等体,而第二对等体的其它身份则保持私密。
[0035]在一个示例中,由第一对等体向第二对等体提供的身份可以是群身份。例如,此类群身份可标识第一对等体的用户可以是其成员或具有其账户/订阅的各种类型的群,诸如俱乐部、学校、联盟、公司等。即,第一对等体可提供一个或多个群身份(按隐藏格式),而第二对等体可用其查明是否准予第一对等体访问(例如,访问数据对象、可执行代码、密钥等)。即,如果第一对等体的特定群身份与被允许访问数字对象的群身份匹配,则第二对等体可准予此种访问。在一些实现中,为了验证第一对等体所作的是特定群的成员的声明,可执行后续认证过程以认证第一对等体的特定群成员资格。例如,这可以通过由第一对等体出示由该特定群的群管理员签名的某些凭证(例如,用户身份)(例如,通过用属于该特定群的私钥签名以及可通过相应的公钥验证)来达成。
[0036]根据一方面,身份的隐藏可通过散列一个或多个身份并在二进制矢量内表不这些散列值来达成。例如,此种二进制矢量可被实现为布隆过滤器,即一种由长度为m且散列函数数目为k的二进制矢量构成的数据结构。在这些操作之前,发送方对等体和接收方对等体商定一系列散列函数,由来表示,其中散列函数的数目可以是任意大的。这些散列函数中的一个或多个随后可被用于生成可代表第一对等体的多个身份的复合二进制矢量中的一个或多个偏移或位置索引值。该复合二进制矢量可由第一对等体发送至第二对等体。第二对等体可随后以类似方式针对它希望比较的每个身份(例如,被允许访问所请求的数字对象的身份)生成本地二进制矢量。本地二进制矢量可随后与复合二进制矢量比较以确定是否发现匹配。
[0037]示例性操作网络
[0038]图1是解说包括对等覆盖网络102和多个对等节点104A-104F的网络的框图。对等覆盖网络102可以是分散式的和/或分布式的,从而其不由服务器或稳定的主机集中地协调。数字对象可被存储在网络的对等节点104A-104F中。本文使用的术语“数字对象”指各种类型的信息,包括数据对象、可执行代码、程序、密钥、证书等。对等覆盖网络102可在现有的网络结构(例如,无线网络)上实现。例如,对等覆盖网络102可被实现为在通信协议栈的最高层(例如,应用层)处操作。此种对等覆盖网络102可利用任何类型的底下的网络(诸如网际协议网络)以允许覆盖网络102上的多个对等节点104A-104F彼此通信。底下的网络可包括任何数量的网络类型,诸如广域网(WAN)、局域网(LAN)、无线网络(例如,WffAN,WLAN)和/或任何其他类型的网络。
[0039]对等节点104A-104F可包括适于经由对等覆盖网络102通信的设备。此类设备可包括适于促成经由对等覆盖网络102的通信的中间件层。作为示例而非限定,对等节点可包括诸如打印机104A、平板计算机104B、电视机104C、移动电话、个人数字助理、以及个人媒体播放器104D、膝上型和笔记本计算机104E、和/或台式计算机104F之类的设备。
[0040]采用对等覆盖网络102,对等节点104A-104F中的每一个能够与其他对等节点104A-104F进行通信,而无需服务器或稳定主机的集中协调。例如,每个对等节点104A-104F可使其资源(例如,处理能力、盘存储、网络带宽)的一部分可供另一对等节点使用,并且可利用另一对等节点的资源的一部分,而无需服务器或稳定主机进行集中协调。一个或多个对等节点104A-104F可存储可由对等覆盖网络102内的其它对等节点访问的数字对象。术语“访问”可指各种类型的访问,包括读、写、删除、修改、执行和存储访问。每个此种数字对象可具有可被用于定位对等网络102内的数字对象的相关联的标识符。在一个示例中,对对等网络内的数字对象的访问可被限制于能出示对访问此种数字对象的权限的用户或对等节点。例如,此种访问权限可被限制于一个或多个群的成员。访问权限可通过例如证明群内成员资格(例如,具有与特定群相关联的账户,其中该账户可通过该群的私钥签名并可使用相应的公钥验证)来验证。
[0041]希望获取对数字对象的访问的请求方对等节点可向另一对等节点(例如,存储方对等节点或验证方对等节点)请求此种访问(或数字对象本身)。寻求此种访问的一种高效方式是请求方对等节点一次提供所有其身份(例如,账户或成员资格信息),而非对每一个进行个别核查。从请求方对等节点向存储/验证方对等节点提供此类身份可允许存储方/验证方对等节点查明请求方对等节点是否属于具有对所请求的数字对象的访问的群。然而,为了防止对等节点身份的不期望或不想要的泄露,对等覆盖网络可提供定义访问请求的中间件格式。例如,访问请求可被构造成以隐藏格式包括请求方对等节点的所有或多个身份。
[0042]图2是解说请求方对等节点和存储方和/或验证方对等节点之间用以处理访问请求而同时保护请求方对等节点的身份的隐私的交换的流图。请求方对等节点202可包括多个身份206 (例如,群_身份4、群_身份-B、……群_身份-N)。此类身份可能先前已被获得和/或建立。每个身份可例如与请求方对等节点的用户是其成员的群(例如,学校、公司、支持群体、俱乐部、联盟等)相关联。另外,对于每个群身份,请求方对等节点(或用户)可具有可用于将请求方对等节点的用户标识和/或认证为群成员(例如,投资俱乐部的成员、公司成员、大学成员等)的认证数据(例如,用户身份、证书和/或数字签名)。
[0043]存储方和/或验证方对等节点204可存储数字对象-x208和/或被允许访问数字对象-X的身份210。在一些实现中,存储方对等节点可存储数字对象-X并可验证对数字对象-X的访问。在其它实现中,验证方对等节点可简单地查明请求方对等节点是否应被准予访问存储在另一对等节点(即,存储方对等节点)中的数字对象-X。
[0044]为了获得或获取对数字对象-X的访问,请求方对等节点202可生成其身份(例如,群身份)的隐藏表示212。它随后向数字对象-X发送可包括这些隐藏身份的访问请求214。一旦收到访问请求214,存储方/验证方对等节点204就可确定这些隐藏身份中是否有一个匹配允许访问数字对象-X的身份。在一个实现中,身份可以是请求方对等节点或请求方对等节点用户所属的群名称(例如,公司、联盟、学校等)。隐藏的身份可与存储的身份210 (例如,允许访问数字对象-X的身份)比较(例如,使用集合运算)以确定是否存在匹配。存储方/验证方对等节点204可随后发送匹配身份或无匹配身份的指示218。如果发现匹配身份,则指示218可提供足够的数据来允许请求方对等节点202标识该匹配身份。一旦收到此种信息,请求方对等节点202就可使用所标识的/匹配身份来执行与存储方/验证方对等节点204的认证交换222。例如,匹配身份可被请求方对等节点202用于选择与匹配身份相关联的对应的认证数据(例如,证书、签名和/或用户身份)。对应的认证数据可被请求方对等节点用于向存储方/验证方对等节点204认证其自身(例如,通过发送对应的证书或用户身份,或通过一些质询/响应交换)。如果此种认证成功224,则对数字对象-X的访问可被准予给请求方对等节点202。例如,存储方/验证方对等节点204可向请求方对等节点202发送数字对象-X或准予访问的指示。注意,可以使用各种认证协议,包括质询-响应协议,其中验证方对等节点204向请求方对等节点202发送随机质询并接收可由验证方对等节点验证的该随机质询的经签名版本(例如,随机质询由请求方对等节点使用其私钥签名并可由验证方对等节点使用相应的公钥验证)。
[0045]根据一个示例,群身份206可以是请求方对等节点202(或该请求方对等节点的用户)声称是其成员的群的名称(例如,“美国_工程_协会”、“科幻_小说_发烧友”、“高通_雇员”、“ucla_学生会”等)。这些群身份可通过将其散列和/或组合成二进制矢量来隐藏,该二进制矢量被传送给存储方/验证方对等节点204。存储方/验证方对等节点204可随后查明其中是否有任何群身份被允许访问所请求的数字对象-X。由于群身份的隐藏(例如,通过散列或映射为二进制矢量),除了匹配群身份以外,实际的群身份不被泄露给存储方/验证方对等节点。如果发现匹配群身份(例如,“高通_雇员”),则该匹配被传达给请求方对等节点202。在后续步骤中,可要求请求方对等节点202证明在由匹配群身份所标识的群中的实际成员资格。此种证明可通过例如由请求方对等节点202提供由匹配群身份的群管理员签名的证书或用户身份来进行。在一个示例中,此种证书或用户身份可通过与该群相关联的私钥(例如,Cert (用户身份))来签名。相应的公钥可被用于认证所签名的证书或用户身份。如果所提供的证书或用户身份被成功认证,则可准予请求对等体202对数字对象-X的访问。
[0046]使用二进制矢量的身份隐藏的示例性实现
[0047]在一个实现中,请求方对等节点的身份(例如,群身份)可使用二进制矢量数据结构(诸如布隆过滤器矢量)来隐藏。布隆过滤器是用于测试元素是否为集合成员的空间高效概率性数据结构(即,位阵列)。假阳性是可能的,但假阴性是不可能的。元素可被添加至阵列,但不能被移除。被添加至位阵列的元素越多,假阳性的概率就越大。
[0048]在一个示例中,身份(例如,群身份)可通过某种转换函数(例如,散列函数)被转换为位序列。例如,可定义k个不同的散列函数以转换/变换不同的身份。每个散列函数可将身份(即,集合中的元素)映射或散列为具有均匀随机分布的位阵列的m个阵列位置中的一个。布隆过滤器数据结构藉由在映射(索引)至该布隆过滤器数据结构(例如,矢量)之前对身份进行散列来隐藏或混淆这些身份。即,除非接收方对等节点具有特定身份,否则它将不能标识收到的布隆过滤器数据结构内的该身份(或任何其它身份)。
[0049]图3解说了生成隐藏针对请求方对等节点的多个身份的布隆过滤器矢量的一个示例。空的布隆过滤器矢量(BFV)是都被设置为默认值(例如,零(O))的m个位的位阵列。本文中的BFV被定义为具有位置O到m-Ι。多个散列函数H1、H2、H3、……、Hk可被请求方对等节点和验证方/存储方对等节点知晓或商定。注意,尽管本示例解说了针对每个身份使用不同的散列函数,但其它实现可对所有身份使用相同(例如,单个)散列函数。
[0050]在该示例中,请求方对等节点(例如,对等体A)可具有构成对等节点A的身份集(Sa)的多个身份或群身份(例如,yahoo-A、gmail-A、facebook-A、amazon-A、ebay-A、公司-A、学校-A等)。集Sa中的每个身份可以被散列的以获得散列值。在此示例中,散列值中的仅3位被用于生成位置或偏移索引。随后在BFV上设置该位置或偏移索引。如可见的,第一身份(yahoo-A)被散列(使用第一散列函数HI)以获得偏移或位置索引“2”,从而导致BFV的第二位置被设置为一(I)。对于每个身份,针对每个此种偏移或位置索引的结果产生的布隆过滤器表示被标示为fA1、fA2> fA3> fA4> fA5和fA6。针对每个其它身份重复该过程以获得结果所得的BFV,其中从对身份的散列所获得的每个位置或偏移位被设置为非默认值(例如,一(I))。注意,在此方案中,假阳性是可能的。例如,身份yahoo-A和amazon-A两者都导致相同的BLV位置或偏移索引(例如,2)。
[0051]为了降低假阳性的概率,可对每个身份使用较大数目的散列位。另外,为了进一步降低这种假阳性概率,可在BFV中针对每个身份设置较大数目的位。
[0052]图4解说了生成隐藏请求方对等节点的多个身份的布隆过滤器矢量而同时降低假阳性概率的示例。在此示例中,布隆过滤器矢量(BFV)是m=4096位的位阵列,该位阵列被初始化为默认值(例如,零(O))。本文中的BFV被定义为具有位置O到m-1,且多个散列函数H1、H2、H3、……Hk可被请求方对等节点和验证方/存储方对等节点知晓或商定。
[0053]在此示例中,请求方对等节点(例如,对等体A)可具有构成对等节点A的身份集(Sa)的多个身份或群身份(例如,yahoo-A、gmail-A、facebook-A、amazon-A> ebay-A、公司-A、学校-A等)。集合Sa中的每个身份可通过多个散列函数来散列以获得用作BFV中的位置或偏移索引的多个散列值。在此示例中,12位的散列值被用于生成每个位置或偏移索引。因此,在此示例中,散列函数的数目k还对应于相等数目的(k个)索引。随后在BFV上设置这些位置或偏移索引。如可见的,第一身份(yahoo-A)被散列(使用多个散列函数H1、H2、H3、……、Hk)以获得第一多个偏移或位置索引。该第一多个偏移或位置索引随后被用于将BFV的相应位设置为非默认值(例如,一(I))。对于特定的身份i,针对每个此种偏移或位置索引的结果所得的布隆过滤器表示被标示为……、fAi_k。随后针对每个其余身份重复该过程,从而针对每个身份生成多个偏移或位置索引。
[0054]尽管图4中解说的办法因为针对每个身份生成多个偏移或位置索引而降低了假阳性的概率,但针对每个身份计算多个不同散列可能是资源密集的。
[0055]图5解说了生成隐藏请求方对等节点的多个身份的布隆过滤器矢量而同时降低假阳性概率的另一示例。与图4的实现相反,本方法使用单个散列函数(例如,SHA-1函数)来针对每个身份生成多个偏移或位置索引。对于每个身份(例如,身份i),单个散列函数被应用于该身份以生成足够长的位串,该位串能被划分成多个段,其中每个段H1、H2……H13、H14、H15、……Hk可被认为是不同散列函数的结果并用作布隆过滤器矢量(BFV)中的偏移或位置索引。即,这k段中的每一段对应于一偏移或位置索引。对于特定的身份i,结果所得的布隆过滤器表示可由偏移或位置索引fAi的集合定义,其中此种偏移或位置索引fAi的集合可包括由 f*Ai—1、f*Ai—2、f*Ai—3、.……、fAi_k标示的多个偏移或位置索引。
[0056]注意,在此示例中,所选择的散列函数是生成160位输出的SHA-1函数。因为在此示例中希望每个身份有k=20个不同的索引且每个索引是十二(12)位长,故总共需要两百四十(240)位。因此,通过使用从最初的散列操作中产生的160位来生成附加位作为第二散列操作的输入。在此示例中,来自第二散列操作的八十(80)位被用于补足这240位(SP,来自第一散列操作的160位与来自第二散列操作的80位级联)。也应注意,散列段H14可横跨在第一和第二散列之间(即,来自第一散列操作的4位和来自第二散列操作的8位)。在BFV中为每个生成的索引设置非默认值(例如,一(I))。随后为对等节点的用户的每个身份重复该过程。
[0057]—旦生成了 BFV以隐藏一个或多个身份,该BFV就由请求方对等节点传送给存储方或验证方对等节点。如果先前并未商定,则请求方对等节点还可提供或发送BFV的长度m、所使用的偏移或位置索引的数量k、和/或每个索引段的位长度。存储方或验证方对等节点接收BFV(以及可能接收所使用的散列函数的指示、BFV长度m、所使用的偏移或位置索引的数目k、和/或索引位长度),并且可执行集合运算以查明是否发现准予访问所请求的数字对象的匹配。
[0058]图6和7解说了使用布隆过滤器矢量在请求方对等节点和存储方或验证方对等节点之间匹配身份而同时隐藏此类身份的示例。存储方或验证方节点可执行与由请求方对等节点生成BFV所使用的那些操作类似的操作。在一些实现中,针对对象-X的布隆过滤器矢量(BFV-对象-X)可能已用与请求方对等节点所使用的相同的散列函数、BFV长度m、偏移或位置索引的数目k、和/或每个索引段的位长度来预先生成。在其它实现中,BFV-对象-X可在从请求方对等节点收到数字对象请求之际生成。在一个实现中,每个BFV-对象-X可表示允许访问数字对象-X的单个身份。如果数字对象-X具有多个访问身份,则可针对每个访问身份计算单独的BFV-对象-X矢量。
[0059]BFV-A可能已作为访问 数字对象-X的请求的一部分从请求方对等节点A接收。在此示例中,收到的BFV-A可以代表由多个偏移或位置索引集fA1、fA2、fA3、……、fAn定义的多个身份。偏移或位置索引集fA1、fA2、fA3、……、fAn的每一个可代表布隆过滤器矢量BFV-A中的一个或多个偏移或位置索引。
[0060]在图6中解说的第一示例中,可针对允许访问数字对象-X的访问身份生成一个或多个BFV-对象-X矢量。允许访问数字对象-X的这一个或多个身份可被称为集合Sx,其中此种集合由偏移或位置索引集fxl、fx2、fx3、……、‘来定义。在此示例中,收到的偏移或位置索引集(集合fA1、fA2、fA3、……、fA?)没有任何一个与针对数字对象-X的偏移或位置索引
集(集合fx1、fx2、fX3、......、fxg)相交或匹配;这意味着请求方对等节点身份和数字对象-X
的访问身份之间没有任何匹配。
[0061]在图7中解说的第二示例中,可针对允许访问数字对象-X的一个或多个身份生成BFV-对象-X。允许访问数字对象-X的这一个或多个身份可被称为集合Sx,其中此种集合由偏移或位置索引集fxl、fx2、fx3、……、匕£来定义。在此示例中,收到的偏移或位置索引集(集合fA1、fA2、fA3、……、fto)中的一者与针对数字对象-X的偏移或位置索引集(集合fxl、fx2、fffAf)中的一者相交或匹配(例如,fx2中的所有I都在BFV-A中找到)。因此,请求方对等节点身份和数字对象-X的身份之间存在匹配,并且对数字对象-X的访问可被准予给请求方对等节点。
[0062]身份的匹配可使用针对请求方对等节点的布隆过滤器矢量BFV-A和针对所请求的数字对象的布隆过滤器矢量BFV-对象-X之间的集合运算来执行。由布隆过滤器提供的最简单的集合运算是通过使用布隆过滤器矢量来测试一身份(元素)是否在(请求方对等节点的)身份集Sa中。设想存储方或验证方对等节点B接收代表对等节点A的身份集Sa的布隆过滤器矢量BFV-A。数字对象-X可具有允许访问该数字对象-X的一个或多个访问身份(身份集\)。因此,存储方或验证方对等节点B还可针对与数字对象-X相关联的这些访问身份(元素)中的每一个计算一个或多个布隆过滤器矢量BFV-对象-X。即,每个访问身
份可由单独的BFV-对象-X (B卩,BFV-Object-xl、BFV-对象_x2、......、BFV对象_xg)来
表示。如果(集合Sx中的)一访问身份在集合Sa中找到,则对于BFV-对象-X中的每个位“1”,BFV-A中相应的位位置也必须是一。例如,在图6中,可以看到每个访问身份(由矢量BFV-对象-xl、BFV-对象-x2、......、BFV_对象_xg来表示)都具有在BFV-A的相应偏移或
位置中未找到的“I”。相反,在图7中,可以看到BFV-对象-x2 (或即fx2)中的每个“I”都在BFV-A中被找到。因此,对等节点B可容易地测试集合Sx中的一个或多个访问身份(元
素)是否属于集合Sa。
[0063]根据一个示例,身份匹配可通过执行求交集操作Sa H Sb来查明,即存储方或验证方对等节点B对矢量BFV-A和BFV-对象_xi执行逐位“与(AND)”操作以获得代表交集BFV-1Nt=BFV-A “AND” BFV-对象-xi 的新矢量。
[0064]有若干方式可将匹配的身份从存储方或验证方对等节点B返回至请求方对等节点A。
[0065]在第一方法中,存储方或验证方对等节点B可将所有或部分匹配的身份按其身份形式(例如,实际电子邮件地址、群名称、域名等)发送给请求方对等节点A。一旦请求方对等节点A收到响应,它就确切地知晓哪些是匹配身份,因为这些匹配身份在响应中被明确标识。也可能在布隆过滤器匹配中发现任何假阳性,因为请求方对等节点A能够查明它是否拥有响应中所标识的任何身份。本方法中的缺陷在于它可能向中间路由节点泄露匹配的身份。同样,如果匹配身份的数目较大,则发送所有匹配的身份可能招致大的消息开销。
[0066]根据第二方法,存储方或验证方对等节点B可向请求方对等节点A发送结果所得的布隆过滤器矢量(例如,从BFV-A和BFV-对象-X中间的逐位“与”操作获得),而非集合表示。即,对等节点B不是用集合求交集结果(S卩,具体的匹配身份)向请求方对等节点A作出响应,而是简单地用表示此交集的矢量BFV-1NT来答复请求方对等节点A。请求方对等节点A随后使用收到的BFV-1NT执行集合元素测试以找出其哪些身份在匹配结果中。本方法可防止路由路径上的中间节点标识对等节点A和对等节点B之间的匹配身份集。它也将消息开销限制至所使用的布隆过滤器矢量的大小(通常较小,例如4096位长)。然而,如果匹配结果中存在假阳性,则对等节点A将不能发现此假阳性,直至使用了匹配身份(例如,用于访问控制)或者通过实现了附加的认证步骤。
[0067]在一些实现中,小几率的假阳性可通过协议设计来校正。例如,即使在发现身份匹配后,也可提供对匹配身份的附加认证。例如,身份匹配可涉及匹配两个域名。例如,请求方对等节点可包括“大学.com”的第一身份(S卩,群身份),而数字对象-X可由具有“大学.com”下的账户的任何人访问。因此,使用布隆过滤器矢量的最初身份匹配是在域“大学.com”之间。如果发现此种最初匹配,可发生后续交换以认证请求方对等节点(或用户)在此种群中的成员资格。
[0068]在一个示例中,在已经发现初始身份匹配后,请求方对等节点可提供附加信息以证明其访问数字对象-X的权限。例如,请求方对等节点可具有先前从群管理员(例如,“大学.com”的管理员)获得的经签名的证书或用户标识符。例如,一旦成为该群的成员,群管理员就可能已经准予请求方对等节点通过该群的私钥签名的证书。在一个示例中,此种证书可以是通过该群的私钥签名的用户身份。
[0069]示例性的请求方对等节点和其中的操作
[0070]图8是解说根据一个示例的请求方对等节点的框图。请求方对等节点800可包括耦合至通信接口 804和存储设备或介质806的处理电路802。通信接口 804可包括或实现发射机808 (例如,无线发射电路或模块)和/或接收机810 (例如,无线接收机电路或模块),其可被配置成便于去往和/或来自网络(例如,无线网络)和/或与覆盖网络的一个或多个对等节点的传输。
[0071]存储设备或介质806可以是例如存储器设备、数据存储设备、处理器可读或计算机可读介质,其可适用于存储(临时或永久)一个或多个指令,当执行这些指令时执行请求方对等节点的一个或多个功能,包括与其它对等节点通信,请求访问存储在覆盖网络的其它节点中的数字对象,和/或在访问控制操作期间隐藏其一个或多个身份。存储设备或介质806还可存储与请求方对等节点800的用户相关联或与请求方对等节点800本身相关联的一个或多个身份(例如,群名称、公司名称、学校名称、联盟名称等)。存储设备或介质806还可用于存储可以用于在覆盖网络上的访问控制操作期间隐藏或混淆一个或多个身份812的一个或多个散列函数814。
[0072]身份隐藏模块816可由处理电路实现以生成通过密码学方法隐藏一个或多个身份812 (例如,隐藏在数据结构的共享数据空间内)的数据结构。此种数据结构可作为访问数字对象的请求的一部分经由通信接口 804被发送至验证方对等节点。作为响应,请求方对等节点800可从验证方对等节点接收信息,该信息指示这一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。此种信息可以是验证方对等节点发现了匹配的身份。身份匹配模块818可根据收到信息将第一身份标识为匹配,选择与第一身份对应的证书,和/或向验证方对等节点发送所选的证书以认证对数字对象的访问。
[0073]图9解说了一种在请求方对等节点中操作的用于在访问控制期间保护其身份的隐私的方法。请求方对等节点可获得一个或多个身份(例如,群身份或群名称)。此类身份可指示请求方对等节点或其用户是其成员的群。例如,这一个或多个身份可以是群身份且针对所述群的数字对象可以是仅对所述群的成员可用的(或可访问的)。
[0074]连同这一个或多个身份,请求方对等节点可包括相应的证书,所述证书允许请求方对等节点(或其用户)证明它是与每个身份相关联的每个群的成员。
[0075]请求方对等节点可生成一数据结构,该数据结构通过密码学方式将请求方对等节点的或请求方对等节点用户的一个或多个身份隐藏在该数据结构的共享数据空间内902。即,共享数据空间可将这一个或多个身份中的每一个的表示沿该共享数据空间均匀和/或随机地分布。
[0076]该数据结构可随后作为访问数字对象的请求的一部分被发送至验证方对等节点904。这一个或多个身份可以沿共享数据空间均匀和/或随机地分布。例如,各身份可被转换为横跨共享数据空间的二进制表示。例如,在图5中,每个身份的非默认值(为一的位(O)集被沿共享数据空间随机和/或均匀地放置。在一个示例中,请求方对等节点和验证方对等节点可在覆盖对等网络上无线通信。“统一”分布是指将每个身份的非默认值(位一)的位置以相等似然性设置在共享数据空间的每个位位置处。“随机”分布是指非默认值(位一)在共享数据空间的给定位位置处的出现是由概率性过程(例如,随机或伪随机位置选择过程)来确定的。
[0077]响应于发送该数据结构,请求方对等节点可从验证方对等节点接收信息,该信息指示这一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配906。
[0078]请求方对等节点可随后寻求证明其与所匹配的身份的关联性。第一身份可根据收到信息被标识为匹配908。对应于第一身份的证书可随后被请求方对等节点选择910。所选择的证书随后由请求方对等节点发送至验证方对等节点以认证对数字对象的访问912。如果所选择的证书被验证方对等节点成功认证,则请求方对等节点可获得对数字对象的访问 914。
[0079]根据一个示例,该数据结构可以是二进制矢量,其中这一个或多个身份中的每一个由沿该二进制矢量均匀和随机分布的多个位来表示。该二进制矢量可如下来生成:(a)向第一身份应用密码散列函数以生成二进制串;(b)将该二进制串划分成二进制段;(c)将每个二进制段转换为在二进制矢量内的位置索引;和/或(d)将该二进制矢量在所指示的位置索引处的矢量值设置为一。以类似方式,多个附加身份可被转换为在二进制矢量中被设为一的位置索引。
[0080]在一个示例中,此种数据结构是布隆过滤器矢量,其中每个身份由沿二进制矢量均匀且随机分布的多个位来表示。在此意义上,该数据结构可以是假阳性身份匹配是可能的概率性数据结构。即,布隆过滤器矢量将不能产生假阴性但是可能产生假阳性。
[0081]图10解说了一种在请求方对等节点中操作的用于将身份隐藏在布隆过滤器矢量中的方法。获得与请求方对等节点和/或请求方对等节点用户相关联的多个身份1002。例如,此类身份可以是可以用于验证群成员资格的电子邮件地址、成员资格、账户信息。每个身份可随后被散列以获得m位长的二进制序列1004。该二进制序列可被划分为多(k)个w位散列段,其中w〈m。例如,对于m=240位长的二进制序列和w=12位长的段,段的数目为k=20。每个段的值可以用作偏移或位置索引1008。对于每个偏移或位置索引,设置布隆过滤器矢量的相应位(例如,将该位设置为“I”)1010。针对身份的每个偏移或位置索引重复该过程1012并且针对正使用或选择的所有身份重复该过程1014。以此方式,布隆过滤器矢量可表示多个身份,其中每个身份由布隆过滤器矢量中的多个设置位来表示。
[0082]示例性的存储方/验证方对等节点和其中的操作
[0083]图11是解说根据一个示例的验证方/存储方对等节点的框图。验证方/存储方对等节点1100可包括耦合至通信接口 1104和存储设备或介质1106的处理电路1102。通信接口 1104可包括或实现发射机1108 (例如,无线发射电路或模块)和/或接收机1110 (例如,无线接收机电路或模块),其可被配置成便于去往和/或来自网络(例如,无线网络)和/或与覆盖网络的一个或多个对等节点的传输。
[0084]存储设备或介质1106可以是例如存储器设备、数据存储设备、处理器可读或计算机可读介质,其可适用于存储(临时或永久)一个或多个指令,当执行这些指令时执行验证方/存储方对等节点的一个或多个功能,包括与其它对等节点通信,验证对存储在覆盖网络的其它节点中的数字对象的访问,和/或在访问控制操作期间执行身份匹配。存储设备或介质1106还可存储与特定的数字对象相关联的一个或多个身份(例如,群名称、公司名称、学校名称、联盟名称等)。存储设备或介质1106还可用于存储可以用于在覆盖网络上的访问控制操作期间隐藏或混淆一个或多个身份1112的一个或多个散列函数1114。
[0085]身份匹配模块1118可从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构(经由通信接口 1104),其中所收到的数据结构通过密码学方式将请求方对等节点的或请求方对等节点用户的一个或多个身份隐藏在该数据结构的共享数据空间内。身份匹配模块1118可获得被允许访问数字对象的一个或多个访问身份。身份隐藏模块1116可针对这些访问身份中的每一个生成第二数据结构,其中第二数据结构通过密码学方式隐藏数字对象的访问身份。身份匹配模块1118随后在收到的数据结构和第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集。身份匹配模块1118可随后向请求方对等节点发送信息,该信息指示请求方对等节点的这一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。作为响应,访问验证模块1120可接收与由验证方对等节点标识的匹配身份相关联的证书。访问认证模块1120可随后认证该证书以验证请求方对等节点是由匹配身份所标识的群的成员。
[0086]如果收到的证书被成功认证,则准予请求方对等节点对所请求的数字对象的访问。
[0087]图12解说了一种在验证方对等节点中操作的用于保护请求方对等节点身份的隐私而同时执行访问控制的方法。可从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构,其中所收到的数据结构以密码学方式将请求方对等节点的或请求方对等节点用户的一个或多个身份隐藏在该数据结构的共享数据空间内1202。例如,这一个或多个身份的每一个的表示可以沿该共享数据空间均匀和/或随机地分布。在各种实现中,所请求的数字对象可由不同存储方对等节点或由验证方对等节点本身存储。在一个示例中,收到的数据结构可以是二进制矢量,其中请求方对等节点的这一个或多个身份中的每一个由沿该二进制矢量均匀且随机分布的多个位来表示。例如,该数据结构可以是布隆过滤器矢量,其中每个身份由沿二进制矢量均匀且随机分布的多个位来表示。
[0088]验证方对等节点可随后获得被允许访问数字对象的一个或多个访问身份1204,并为每个访问身份生成第二数据结构,其中第二数据结构通过密码学方式隐藏数字对象的访问身份1206。随后在收到的数据结构和第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集1208。验证方对等节点可随后向请求方对等节点发送信息,该信息指示请求方对等节点的这一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配1210。在各个示例中,由验证方对等节点发送以指示匹配的信息可以是(a)匹配身份或(b)匹配身份的隐藏版本。
[0089]作为响应,验证方对等节点可接收与由验证方对等体设备所标识的匹配身份相关联的证书1212。收到的证书可被认证以验证请求方对等节点是由匹配身份所标识的群的成员1214。如果收到的证书被成功认证,则准予请求方对等节点对所请求的数字对象的访问1216。
[0090]在一个实现中,第二数据结构可以是如下生成的二进制矢量:(a)向第一身份应用密码散列函数以生成二进制串;(b)将该二进制串划分成二进制段;(c)将每个二进制段转换为二进制矢量内的位置索引;和/或(d)将二进制矢量在所指示的位置索引处的矢量值设置为一。注意,可为被允许访问数字对象的每个身份生成不同的第二数据结构。这样,每个第二数据结构可与收到的数据结构进行个别比较以标识任何潜在的匹配身份。
[0091]图1、2、3、4、5、6、7、8、9、10、11和/或12中解说的组件、步骤、特征和/或功能中的一个或多个可以被重新安排和/或组合成单个组件、步骤、特征或功能,或可以实施在数个组件、步骤、或功能中。还可添加更多的元件、组件、步骤、和/或功能而不会脱离本公开的范围。在图1、8和/或11中解说的装置、设备、组件和/或传输帧可被配置成执行在图2-7,9-10和/或12中描述的方法、特征、或步骤中的一个或多个。本文中描述的新颖算法还可以高效地实现在软件中和/或嵌入在硬件中。[0092]另外,注意到至少一些实现是作为被描绘为流图、流程图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多能够并行或并发地执行。另外,这些操作的次序可以被重新安排。过程在其操作完成时终止。过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。
[0093]此外,各实施例可由硬件、软件、固件、中间件、微代码、或其任何组合来实现。当在软件、固件、中间件或微码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质之类的机器可读介质或其它存储中。处理器可以执行这些必要的任务。代码段可表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类,或是指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数、或存储器内容,一代码段可被耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段被传递、转发、或传输。
[0094]术语“机器可读介质”、“计算机可读介质”、和/或“处理器可读介质”可包括,但不限于,便携或固定的存储设备、光学存储设备、以及能够存储、包含或携带指令和/或数据的各种其他非瞬态介质。因此,本文中描述的各种方法可部分或全部地由可存储在“机器可读介质”、“计算机可读介质”和/或“处理器可读介质”中并由一个或多个处理器、机器和/或设备执行的指令和/或数据来实现。
[0095]结合本文中公开的示例描述的方法或算法可直接在硬件中、在能由处理器执行的软件模块中、或在这两者的组合中以处理单元、编程指令、或其他指示的形式实施,并且可包含在单个设备中或跨多个设备分布。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。存储介质可耦合到处理器以使得该处理器能从/向该存储介质读写信息。替换地,存储介质可以被整合到处理器。
[0096]本领域技术人员将可进一步领会,结合本文中公开的实施例描述的各种解说性逻辑块、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。
[0097]本文中所描述的实施例的各种特征可实现于不同系统中而不会脱离本公开的范围。应注意,以上实施例仅是示例,且并不应被解释成限定本公开。这些实施例的描述旨在解说,而并非旨在限定权利要求的范围。由此,本发明的教导可以现成地应用于其他类型的装置,并且许多替换、修改、和变形对于本领域技术人员将是显而易见的。
【权利要求】
1.一种在请求方对等节点中操作的方法,包括: 生成数据结构,所述数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份中的每一个身份的表示沿所述共享数据空间均匀且随机地分布;以及将所述数据结构作为访问数字对象的请求的一部分发送至验证方对等节点。
2.如权利要求1所述的方法,其特征在于,进一步包括: 从所述验证方对等节点接收信息,所述信息指示所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
3.如权利要求2所述的方法,其特征在于,进一步包括: 根据收到信息将第一身份标识为匹配; 选择对应于所述第一身份的认证数据;以及 将所选择的认证数据发送给所述验证方对等节点以认证对所述数字对象的访问。
4.如权利要求3所述的方法,其特征在于,进一步包括: 如果所选择的认证数据被所述验证方对等节点成功认证,则获得对所述数字对象的访问。
5.如权利要求1所述的方法,其特征在于,所述一个或多个身份是群身份并且所述数字对象是仅对特定群的成员可用的数据。
6.如权利要求1所述的方法,其特征在于,所述请求方对等节点和所述验证方对等节点通过覆盖对等网络无线通信。
7.如权利要求1所述的方法,其特征在于,所述数据结构是二进制矢量,其中所述一个或多个身份中的每一个身份由沿所述二进制矢量均匀且随机分布的多个位来表示。
8.如权利要求7所述的方法,其特征在于,所述二进制矢量通过以下来生成: 向第一身份应用密码散列函数以生成二进制串; 将所述二进制串划分为二进制段; 将每个二进制段转换为所述二进制矢量内的位置索引;以及 将所述二进制矢量的在所指示的位置索引处的矢量值设置为非默认值。
9.如权利要求8所述的方法,其特征在于,多个附加身份被转换为在所述二进制矢量中被设置为所述非默认值的位置索引。
10.如权利要求1所述的方法,其特征在于,所述数据结构是布隆过滤器矢量,其中每个身份由沿所述布隆过滤器矢量均匀且随机分布的多个位来表示。
11.如权利要求1所述的方法,其特征在于,所述数据结构是其中假阳性身份匹配是可能的概率性数据结构。
12.—种请求方对等节点,包括: 通信接口,用于在覆盖网络上与其它对等节点通信; 耦合至所述通信接口的处理电路,所述处理电路被适配成: 生成数据结构,所述数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份中的每一个身份的表示是沿所述共享数据空间均匀且随机地分布的;以及将所述数据结构作为访问数字对象的请求的一部分发送至验证方对等节点。
13.如权利要求12所述的请求方对等节点,其特征在于,所述处理电路被进一步适配成: 从所述验证方对等节点接收信息,所述信息指示所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
14.如权利要求13所述的请求方对等节点,其特征在于,所述处理电路被进一步适配成: 根据收到信息将第一身份标识为匹配; 选择对应于所述第一身份的认证数据;以及 将所选择的认证数据发送给所述验证方对等节点以认证对所述数字对象的访问。
15.如权利要求14所述的请求方对等节点,其特征在于,所述处理电路被进一步适配成: 如果所选择的认证数据被所述验证方对等节点成功认证,则获得对所述数字对象的访问。
16.如权利要 求12所述的请求方对等节点,其特征在于,所述数据结构是二进制矢量,其中所述一个或多个身份中的每一个身份由沿所述二进制矢量均匀且随机分布的多个位来表示。
17.如权利要求14所述的请求方对等节点,其特征在于,所述二进制矢量如下来生成: 向第一身份应用密码散列函数以生成二进制串; 将所述二进制串划分为二进制段; 将每个二进制段转换为所述二进制矢量内的位置索引;以及 将所述二进制矢量的在所指示的位置索引处的矢量值设置为非默认值。
18.—种请求方对等节点,包括:用于生成数据结构的装置,所述数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份中的每一个身份的表示沿所述共享数据空间均匀且随机地分布;以及用于将所述数据结构作为访问数字对象的请求的一部分发送至验证方对等节点的装置。
19.如权利要求18所述的请求方对等节点,其特征在于,进一步包括: 用于从所述验证方对等节点接收信息的装置,所述信息指示所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
20.如权利要求19所述的请求方对等节点,其特征在于,进一步包括: 用于根据收到信息将第一身份标识为匹配的装置; 用于选择对应于所述第一身份的认证数据的装置;以及 用于将所选择的认证数据发送给所述验证方对等节点以认证对所述数字对象的访问的装置。
21.如权利要求20所述的请求方对等节点,其特征在于,进一步包括: 用于在所选择的认证数据被所述验证方对等节点成功认证时获得对所述数字对象的访问的装置。
22.一种包括在对等节点上操作的指令的处理器可读介质,所述指令在由处理器执行时使所述处理器: 生成数据结构,所述数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份中的每一个身份的表示沿所述共享数据空间均匀且随机地分布;以及 将所述数据结构作为访问数字对象的请求的一部分发送至验证方对等节点。
23.一种在验证方对等节点中操作的方法,包括: 从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构,其中所收到的数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份中的每一个身份的表示沿所述共享数据空间均匀且随机地分布; 获得被允许访问所述数字对象的一个或多个访问身份; 针对所述访问身份中的每一个生成第二数据结构,其中所述第二数据结构通过密码学方式隐藏所述 数字对象的访问身份;以及 在收到的数据结构和所述第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集。
24.如权利要求23所述的方法,其特征在于,进一步包括: 向所述请求方对等节点发送信息,所述信息指示所述请求方对等节点的所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
25.如权利要求24所述的方法,其特征在于,进一步包括: 接收与由所述验证方对等节点标识的匹配身份相关联的认证数据;以及 如果收到的认证数据被成功认证,则准予所述请求方对等节点访问所请求的数字对象。
26.如权利要求25所述的方法,其特征在于,进一步包括: 认证所述认证数据以验证所述请求方对等节点是由所述匹配身份所标识的群的成员。
27.如权利要求24所述的方法,其特征在于,由所述验证方对等节点发送以指示匹配的所述信息是匹配身份。
28.如权利要求24所述的方法,其特征在于,由所述验证方对等节点发送以指示匹配的所述信息是所述匹配身份的隐藏版本。
29.如权利要求23所述的方法,其特征在于,所收到的数据结构是二进制矢量,其中所述请求方对等节点的所述一个或多个身份的每一个身份由沿所述二进制矢量均匀且沿随机分布的多个位来表不。
30.如权利要求29所述的方法,其特征在于,所述数据结构是布隆过滤器矢量,其中每个身份由沿所述二进制矢量均匀且随机分布的多个位来表示。
31.如权利要求23所述的方法,其特征在于,所述第二数据结构是如下生成的二进制矢量: 向第一身份应用密码散列函数以生成二进制串; 将所述二进制串划分为二进制段; 将每个二进制段转换为所述二进制矢量内的位置索引;以及 将所述二进制矢量的在所指示的位置索引处的矢量值设置为非默认值。
32.如权利要求23所述的方法,其特征在于,所请求的数字对象由所述验证方对等节点存储。
33.如权利要求23所述的方法,其特征在于,所请求的数字对象由存储方对等节点存储。
34.一种验证方对等节点,包括: 通信接口,用于在覆盖网络上与其它对等节点通信; 耦合至所述通信接口的处理电路,所述处理电路被适配成: 从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构,其中所收到的数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份的每一个身份的表示沿所述共享数据空间均匀且随机地分布; 获得被允许访问所述数字对象的一个或多个访问身份; 针对所述访问身份的每一个生成第二数据结构,其中所述第二数据结构通过密码学方式隐藏所述数字对象的访问身份;以及 在收到的数据结构和所述第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集。
35.如权利要求34所述的验证方对等节点,其特征在于,所述处理电路被进一步适配成: 向所述请求方对等节点发送信息,所述信息指示所述请求方对等节点的所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
36.如权利要求35所述的验证方对等节点,其特征在于,所述处理电路被进一步适配成: 接收与由所述验证方对等节点标识的匹配身份相关联的认证数据;以及 如果收到的认证数据被成功认证,则准予所述请求方对等节点访问所请求的数字对象。
37.如权利要求36所述的验证方对等节点,其特征在于,所述处理电路被进一步适配成: 认证所述认证数据以验证所述请求方对等节点是由所述匹配身份所标识的群的成员。
38.一种验证方对等节点,包括: 用于从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构的装置,其中所收到的数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份的每一个身份的表示沿所述共享数据空间均匀且随机地分布; 用于获得被允许访问所述数字对象的一个或多个访问身份的装置; 用于针对所述访问身份的每一个生成第二数据结构的装置,其中所述第二数据结构通过密码学方式隐藏所述数字对象的访问身份;以及 用于在收到的数据结构和所述第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集的装置。
39.如权利要求38所述的方法,其特征在于,进一步包括:用于向所述请求方对等节点发送信息的装置,所述信息指示所述请求方对等节点的所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
40.如权利要求39所述的方法,其特征在于,进一步包括: 用于接收与由所述验证方对等节点标识的匹配身份相关联的认证数据的装置;以及用于在收到的认证数据被成功认证时准予所述请求方对等节点访问所请求的数字对象的装置。
41.一种包括在验证方对等节点上操作的指令的处理器可读介质,所述指令在由处理器执行时使所述处理器: 从请求方对等节点接收作为访问数字对象的请求的一部分的数据结构,其中所收到的数据结构通过密码学方式将所述请求方对等节点或所述请求方对等节点的用户的一个或多个身份隐藏在所述数据结构的共享数据空间内,其中所述一个或多个身份的每一个身份的表示沿所述共享数据空间均匀且随机地分布; 获得被允许访问所述数字对象的一个或多个访问身份; 针对所述访问身份的每一个生成第二数据结构,其中所述第二数据结构通过密码学方式隐藏所述数字对象的访问身份;以及 在收到的数据结构和所述第二数据结构之间执行比较以查明是否存在指示潜在匹配的身份交集。
42.如权利要求41所述的处理器可读介质,其特征在于,进一步包括在由处理器执行时使所述处理器执行以下操作的指令: 向所述请求方对等节点发送信息,所述信息指示所述请求方对等节点的所述一个或多个身份中是否有任何身份是用于访问所请求的数字对象的匹配。
43.如权利要求42所述的处理器可读介质,其特征在于,进一步包括在由处理器执行时使所述处理器执行以下操作的指令: 接收与由所述验证方对等节点标识的匹配身份相关联的认证数据;以及 如果收到的认证数据被成功认证,则准予所述请求方对等节点访问所请求的数字对象。
【文档编号】H04L29/06GK103843299SQ201280048162
【公开日】2014年6月4日 申请日期:2012年7月30日 优先权日:2011年7月29日
【发明者】Y·毛, D·W·克雷格 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1