用于在不公开特定识别信息的情况下建立标识符之间的链接的系统和方法与流程

文档序号:15930108发布日期:2018-11-14 01:32阅读:220来源:国知局

本申请要求于2017年3月3日提交的美国临时专利申请no.62/466,797的权益和优先权,其全部公开内容通过引用并入本文。

背景技术

web数据可以包括企业在受保护数据库中存储的用户可识别信息。管理存储用户可识别信息的系统的企业可能期望在不公开特定用户识别信息的情况下在两方的标识符之间建立链接。



技术实现要素:

一种说明性方法是用于在不公开特定用户识别信息的情况下在不同系统的用户标识符之间建立链接的方法。该方法包括:由第一方系统加密一个或多个第一数据集,该一个或多个第一数据集中的每个包括匹配密钥和与第一方系统相关联的用户标识符;以及由第一方系统向第三方系统发送加密的一个或多个第一数据集。该方法包括:由第一方系统从第三方系统接收一个或多个加密的第二数据集,该一个或多个加密的第二数据集中的每个包括匹配密钥和与第三方系统相关联的用户标识符;以及由第一方系统从第三方系统接收一个或多个双重加密的第一数据集,该一个或多个双重加密的第一数据集包括由第三方系统进一步加密的该加密的一个或多个第一数据集。该方法还包括由第一方系统加密从第三方系统接收的加密的一个或多个第二数据集,以生成一个或多个双重加密的第二数据集。该方法包括由第一方系统基于双重加密的一个或多个第一数据集和双重加密的一个或多个第二数据集来生成匹配关系,该匹配关系指示与第一方系统相关联的匹配密钥和与第三方系统相关联的匹配密钥之间的一个或多个链接,以及由第一方系统基于匹配关系为与第一方系统相关联的用户标识符和与第三方系统相关联的用户标识符分配网桥标识符,该网桥标识符是与第一方系统相关联的用户标识符和与第三方系统相关联的用户标识符之间的链接。

在一些实施方式中,该方法包括由第三方系统将一个或多个第二数据集的与第三方系统相关联的用户标识符选择为椭圆曲线上的随机点,以及由第三方系统通过用第三方确定性指数对一个或多个第二数据集的与第三方系统相关联的所选择的用户标识符取幂(exponentiate)来加密一个或多个第二数据集。

在一些实施方式中,该方法包括由第一方系统通过从匹配关系移除链接使得与第三方系统相关联的每个匹配密钥具有到第一方系统的匹配密钥的一个链接并且与第一方系统相关联的每个匹配密钥具有到第三方系统的匹配密钥的一个链接来修剪匹配关系。

在一些实施方式中,该方法包括由第一方系统通过确定具有多于一个链接的、第三方系统的匹配密钥来移除匹配密钥之间的链接中的一个或多个来修剪匹配关系。在一些实施方式中,移除匹配关系的链接使得第一方系统和第三方系统的一些用户标识符匹配,并且第一方系统和第三方系统的一些用户标识符不匹配。在一些实施方式中,由第一方系统基于匹配关系为与第一方系统相关联的用户标识符和与第三方系统相关联的用户标识符分配网桥标识符包括为第一方系统和第三方系统的匹配的和不匹配的用户标识符分配网桥标识符。

在一些实施方式中,该方法包括由第一方系统对具有第一指数的一个或多个第一元组取幂,每个第一元组将与第一方系统相关联的用户标识符链接到网桥标识符。在一些实施方式中,该方法包括由第一方系统向第三方系统发送一个或多个取幂的第一元组。此外,该方法包括由第一方系统向第三方系统发送一个或多个第二元组,每个第二元组将与第三方系统相关联的用户标识符中的一个链接到网桥标识符中的一个。在一些实施方式中,该方法包括由第三方系统通过用第二指数对一个或多个第二元组的网桥标识符取幂、由第三方系统用第二指数对一个或多个取幂的第一元组取幂来生成网桥标识符映射,以及由第三方系统向第一方系统发送一个或多个取幂的第一元组。该方法还可以包括由第一方系统通过从一个或多个取幂的第一元组移除第一指数来生成第一方系统的网桥标识符映射。

个一些实施方式中,该方法包括由第一方系统通过用el-gamal密钥加密与第一方系统相关联的用户标识符并用第一方确定性密钥加密与第一方系统相关联的匹配密钥来加密第一数据集。在一些实施方式中,该方法包括由第三方系统加密一个或多个第一数据集以通过用第三方确定性加密密钥加密与第一方系统相关联的加密的匹配密钥并将用el-gamal密钥加密的该加密的用户标识符自乘(raise)为指数幂来生成一个或多个双重加密的第一数据集。

在一些实施方式中,该方法包括:由第一方系统向第三方系统发送第一方el-gamal密钥,第一方el-gamal密钥是第一方系统的公钥;以及由第一方系统从第三方系统接收第三方el-gamal密钥,第三方el-gamal密钥是第三方系统的公钥。在一些实施方式中,该方法包括:由第一方系统加密一个或多个第一数据集包括由第一方系统用第一方el-gamal密钥和第一方确定性密钥加密一个或多个第一数据集。在一些实施方式中,该方法还包括由第三方系统用第三方确定性密钥对加密的一个或多个第一数据集加密,以生成一个或多个双重加密的第一数据集,以及由第三方系统通过用第三方确定性密钥加密与第三方系统相关联的匹配密钥来对加密的一个或多个第二数据集加密。

在一些实施方式中,该方法包括由第一方系统用第一方el-gamal密钥和第二方el-gamal密钥加密分配的网桥标识符中的每一个,由第一方系统向第三方系统发送包括加密的网桥标识符和与第一方系统相关联的关联用户标识符的一个或多个第一元组,以及由第一方系统向第三方系统发送包括加密的网桥标识符和与第三方系统相关联的关联用户标识符的一个或多个第二元组。

在一些实施方式中,该方法包括由第三方系统通过用第三方el-gamal密钥解密一个或多个第二元组来生成第三方系统的网桥标识符映射,由第三方系统对一个或多个第一元组进行去取幂(de-exponentiate)并向第一方系统发送去取幂的一个或多个第一元组,以及由第一方系统通过用第一方el-gamal密钥解密一个或多个第一元组来生成第一方系统的网桥标识符映射。

本公开的另一实施方式是用于在不公开特定用户识别信息的情况下在不同系统的用户标识符之间建立链接的第一方系统,该第一方系统包括可操作地耦合到存储器的处理电路。处理电路被配置为:加密一个或多个第一数据集,该一个或多个第一数据集中的每个包括匹配密钥和与第一方系统相关联的用户标识符;向第三方系统发送加密的一个或多个第一数据集;从第三方系统接收一个或多个加密的第二数据集,该一个或多个加密的第二数据集中的每个包括匹配密钥和与第三方系统相关联的用户标识符;以及从第三方系统接收一个或多个双重加密的第一数据集,一个或多个双重加密的第一数据集是由第三方系统加密的该加密的一个或多个第一数据集。处理电路被配置为:加密从第三方系统接收的加密的一个或多个第二数据集,以生成一个或多个双重加密的第二数据集;基于双重加密的一个或多个第一数据集和双重加密的一个或多个第二数据集生成匹配关系,匹配关系指示与第一方系统相关联的匹配密钥和与第三方系统相关联的匹配密钥之间的一个或多个链接,以及基于匹配关系为与第一方系统相关联的用户标识符和与第三方系统相关联的用户标识符分配网桥标识符,网桥标识符是与第一方系统相关联的用户标识符和与第三方系统相关联的用户标识符之间的链接。

在一些实施方式中,处理电路被配置为通过从匹配关系移除链接使得与第三方系统相关联的每个匹配密钥具有到第一方系统的匹配密钥的一个链接并且与第一方系统相关联的每个匹配密钥具有到第三方系统的匹配密钥的一个链接来修剪匹配关系。

在一些实施方式中,处理电路被配置为通过确定具有多于一个链接的、第三方系统的匹配密钥来移除匹配密钥之间的链接中的一个或多个来修剪匹配关系。

在一些实施方式中,处理电路被配置为:用第一指数对一个或多个第一元组取幂,每个第一元组将与第一方系统相关联的用户标识符链接到网桥标识符;以及向第三方系统发送一个或多个取幂的第一元组。在一些实施方式中,处理电路被配置为:向第三方系统发送一个或多个第二元组,每个第二元组将与第三方系统相关联的用户标识符中的一个链接到网桥标识符中的一个。第三方系统可以通过用第二指数对一个或多个第二元组的网桥标识符取幂来生成网桥标识符映射。处理电路可以被配置为从第三方系统接收用第二指数取幂的一个或多个取幂的元组,以及通过从一个或多个取幂的第一元组移除第一指数来生成第一方系统的网桥标识符映射。

另一种说明性方法是用于在不公开特定用户识别信息的情况下在不同系统的用户标识符之间建立链接的方法。该方法包括:由第一方处理电路加密一个或多个第一数据集,该一个或多个第一数据集中的每个包括匹配密钥和与第一方系统相关联的用户标识符;由第一方处理向第三方处理电路发送加密的一个或多个第一数据集;以及由第一方处理电路从第三方处理电路接收一个或多个加密的第二集,该一个或多个加密的第二集中的每个包括密钥和与第三方处理电路相关联的用户标识符。该方法包括:由第一方处理电路从第三方处理电路接收一个或多个双重加密的第一数据集,该一个或多个双重加密的第一数据集是由第三方处理电路加密的该加密的一个或多个第一数据集;由第一方处理电路加密从第三方处理电路接收的加密的一个或多个第二数据集,以生成一个或多个双重加密的第二数据集;以及由第一方处理电路基于双重加密的一个或多个第一数据集和双重加密的一个或多个第二数据集生成匹配关系,该匹配关系指示与第一方处理电路相关联的匹配密钥和与第三方处理电路相关联的匹配密钥之间的一个或多个链接。此外,该方法包括由第一方处理电路通过确定具有多于一个链接的、第三方处理电路的匹配密钥来移除匹配密钥之间的链接中的一个或多个来修剪匹配关系,以及由第一方处理电路基于修剪的匹配关系为与第一方处理电路相关联的用户标识符和与第三方处理电路相关联的用户标识符分配网桥标识符,该网桥标识符是与第一方处理电路相关联的用户标识符和与第三方处理电路相关联的用户标识符之间的链接,该网桥标识符是与第一方系统相关联的用户标识符和与第三方系统相关联的用户标识符之间的链接。

在一些实施方式中,该方法包括由第三方处理电路将一个或多个第二数据集的与第三方处理电路相关联的用户标识符选择为椭圆曲线上的随机点,以及由第三方处理电路通过用第三方确定性指数来对一个或多个第二数据集的与第三方处理电路相关联的所选择的用户标识符取幂来加密一个或多个第二数据集。

在一些实施方式中,该方法包括:由第一方处理电路修剪匹配关系包括从匹配关系移除链接,使得与第三方处理电路相关联的每个匹配密钥具有到第一方处理电路的匹配密钥的一个链接,并且与第一方处理电路相关联的每个匹配密钥具有到第三方处理电路的匹配密钥的一个链接。

在一些实施方式中,该方法包括:由第一方处理电路用第一指数对一个或多个第一元组取幂,每个第一元组将与第一方处理电路相关联的用户标识符链接到网桥标识符;由第一方处理电路向第三方处理电路发送一个或多个取幂的第一元组;以及由第一方处理电路向第三方处理电路发送一个或多个第二元组,每个第二元组将与第三方处理电路相关联的用户标识符中的一个链接到网桥标识符中的一个。在一些实施方式中,该方法包括由第三方处理电路通过用第二指数对一个或多个第二元组的网桥标识符取幂来生成网桥标识符映射,由第三方处理电路用第二指数对一个或多个取幂的第一元组取幂,由第三方处理电路向第一方处理电路发送一个或多个取幂的第一元组,以及由第一方处理电路通过从一个或多个取幂的第一元组移除第一指数来生成第一方处理电路的网桥标识符映射。

在一些实施方式中,由第一方处理电路加密第一数据集包括用el-gamal密钥加密与第一方处理电路相关联的用户标识符,以及用第一方确定性密钥加密与第一方处理电路相关联的匹配密钥。在一些实施方式中,该方法还包括由第三方处理电路加密一个或多个第一数据集以通过用第三方确定性加密密钥加密与第一方处理电路相关联的加密的匹配密钥并将用el-gamal密钥加密的该加密的用户标识符自乘为指数幂来生成一个或多个双重加密第一数据集。

在一些实施方式中,该方法包括:由第一方处理电路向第三方处理电路发送第一方el-gamal密钥,第一方el-gamal密钥是第一方处理电路的公钥;以及由第一方处理电路从第三方处理电路接收第三方el-gamal密钥,第三方el-gamal密钥是第三方处理电路的公钥。在一些实施方式中,该方法包括:由第一方处理电路加密一个或多个第一数据集包括由第一方处理电路用第一方el-gamal密钥和第一方确定性密钥加密一个或多个第一数据集。在一些实施方式中,该方法包括由第三方处理电路用第三方确定性密钥对加密的一个或多个第一数据集加密以生成一个或多个双重加密的第一数据集,以及由第三方处理电路通过用第三方确定性密钥加密与第三方处理电路相关联的匹配密钥来对加密的一个或多个第二数据集加密。该方法可以包括:由第一方处理电路用第一方el-gamal密钥和第二方el-gamal密钥加密分配的网桥标识符中的每一个;由第一方处理电路向第三方处理电路发送一个或多个第一元组,该一个或多个第一元组包括加密的网桥标识符和与第一方处理电路相关联的关联用户标识符;以及由第一方处理电路向第三方处理电路发送一个或多个第二元组,该一个或多个第二元组包括加密的网桥标识符和与第三方处理电路相关联的关联用户标识符。

在一些实施方式中,该方法包括由第三方处理电路通过用第三方el-gamal密钥解密一个或多个第二元组来生成第三方处理电路的网桥标识符映射,由第三方处理电路对一个或多个第一元组进行去取幂并向第一方处理电路发送去取幂的一个或多个第一元组,以及由第一方处理电路通过用第一方el-gamal密钥解密一个或多个第一元组来生成第一方处理电路的网桥标识符映射。

附图说明

图1是根据说明性实施方式的第一方系统和第三方系统以及关联环境的框图。

图2a和图2b是根据说明性实施方式的用于在不公开内部用户标识符链接的情况下在第一方系统和第三方系统的用户标识符之间建立链接的过程的流程图。

图2c是根据说明性实施方式的用于更详细地说明图2a和图2b的方法的图2a和图2b的流程图的传输图。

图3a是根据说明性实施方式的用于使用网桥标识符来建立第一方系统和第三方系统的用户标识符之间的链接的过程的流程图,其中网桥标识符是第三方系统的取幂的用户标识符。

图3b是根据说明性实施方式的用于图3a的过程的传输图。

图4a和图4b是根据说明性实施方式的用于使用加密的网桥标识符来建立第一方系统和第三方系统的用户标识符之间的链接的过程的流程图。

图4c是根据说明性实施方式的用于图4a和图4b的过程的传输图。

图5a是根据说明性实施方式的用于执行其中第三方系统确定由图a-图c的过程生成的网桥标识符的交集的安全交集方法的过程的流程图。

图5b是根据说明性实施方式的用于执行其中第一方系统确定由图a-图c的过程生成的网桥标识符的交集的安全交集-总和方法的过程的传输图。

图5c是根据说明性实施方式的用于用指示符比特确定匹配的网桥id的数量的过程的传输图。

图6是根据说明性实施方式的计算系统的框图。

具体实施方式

一般地参考附图,根据各种说明性实施方式,示出并描述了用于在不公开特定识别信息的情况下在第一方系统的用户标识符和第三方系统的用户标识符之间建立链接的系统和方法。内容系统可以存储访问企业网站(例如,查看内容或进行交易)的用户共享的个人可识别信息(personalidentifiableinformation,pii)。pii可以是例如电子邮件地址、电话号码、电话标识符号、cookie标识符等。内容系统可以将pii映射到区分用户彼此的用户标识符(identifier,id)。例如,如果用户与电子邮件地址a和电话号码a相关联,则内容系统可以将电子邮件地址a和电话号码a映射到单个用户id,用户ida。

建立该链接的一种方法涉及第三方系统向公司提供与散列pii数据配对的用户id。密码散列函数被设计成实际上非可逆的(即,不可逆的)。由于散列函数是不可逆的,所以拥有散列数据不会导致拥有对应的输入数据。散列pii数据是将散列函数应用于pii数据得到的输出,允许比较pii数据元素而不泄露pii数据本身。

在一些实施方式中,数据伙伴可以提供用户的用户id和用户的电子邮件地址的散列值。然后,公司将第三方系统的散列pii数据与第一方系统的散列pii数据进行比较,以建立第三方系统的用户id和第一方系统的用户id之间的链接。当仅使用单个pii数据元素时(诸如当仅基于一个pii(例如,用户的电子邮件地址)匹配第一方系统的用户id和第三方系统的用户id时),该方法有效。

然而,为了匹配多个pii数据元素(例如,用户的电子邮件和电话号码),第三方系统必须提供与散列电子邮件和散列电话号码配对的用户id。结果,这向第一方系统泄露了内部数据链接,即,它泄露了特定用户的第三方系统的电子邮件地址到电话号码链接。以这种方式在第一方系统和第三方系统之间共享信息以匹配多个pii数据元素可能提供足够的信息以泄露链接到pii数据元素的特定用户的身份。

因此,本公开针对用于在不将一方或双方的用户id到pii数据映射暴露给另一方的情况下在两方的用户id之间建立链接的系统和方法。在一些实施方式中,所描述的系统和方法涉及获知网桥id(诸如确定性地取幂的网桥id)的双方。

更具体地,本文讨论了两方,第一方系统和第三方系统。在一些实施方式中,每一方可以存储由特定用户id映射的用户的数据的私有数据库。此外,数据库可以包括链接到用户id的、用户中的每一个的pii数据元素。第一方系统和第三方系统的用户id可以具有不同的格式,并且可能难以比较相等性。本文的系统和方法详述了用于在其各自的数据库中获知用户的公共网桥标识符(bridgeidentifier,bid)的步骤,允许在没有任何一方获知关于彼此的用户的额外数据的情况下进行相等性检查。

在一些实施方式中,任何一方都不应该在其自己的数据库或另一方的数据库中获知任何用户的任何附加pii数据元素。在一些实施方式中,任何一方都不应该在其自己的数据库中获知用户之间的附加“链接”,例如,其自己的数据库中的两个不同用户被另一方认为是相同的用户。此外,本文描述的一些方法限制至少一方获知哪些用户在交集中。

如本文所使用的,ui可以表示第一方系统的第i个用户id(可以是短暂的id)。对于第一方系统,每个ui可以具有多达t(mki,k,mkti,k)对。匹配密钥(matchkey,mk)可以包括pii数据元素或与pii数据元素相关联。mk的示例是电子邮件地址、电话号码和ip地址。匹配密钥类型(matchkeytype,mkt)可以指示信息的类型或特性。例如,对于mkabc@123.com,mkt可以是字符串“电子邮件地址”或指示mk是电子邮件地址的任何其他数据片段。

如本文所使用的,vj可以是与第三方系统相关联的第j个用户id的对应假名。每个vj也可以具有多达与之相关联的t(mkj,k,mktj,k)个对。在一些实施方式中,ui和vj是分别由第一方系统和第三方系统选择的伪随机数、字符串或其他数据。ui和vj的值在执行本文描述的方法中的一种或多种方法的持续时间内可以是常数。

在一些实施方式中,ui和vj分别由第一方系统和第三方系统在执行本文描述的方法之前或在开始执行本文描述的方法时经由散列函数确定。例如,可以经由等式ui=hash(kf,uidi)和vj=hash(k3p,pidj)来选择ui值,其中密钥kf、k3p可以分别是仅第一方系统和第三方系统知道的密钥(例如,数值)。在一些实施方式中,uidi和pidj可以是用户的名称、用户的pii或任何其他用户定义信息。由于值uidi和pidj被用密钥(kf和k3p)散列化,因此它们可以被加密,并且用户的个人信息可以是安全的。hash()函数可以是任何类型的散列函数,包括安全散列算法(sha)-256、md5、blake-256和/或任何其他类型的密码散列函数。

如本文进一步描述的,系统和方法可以使得第一方系统能够获知ui:bidi,k映射,其中每个ui可以映射到多达tbidi,k个值。bidi,k值中的一些可以是虚值。第三方系统可以配置为获知vj:bidj,k,其中每个vj映射到仅单个bid。

此外,在本文描述的系统和方法的一些实施方式中,在加密方法的最后,第一方将获知ui值中的哪一个在交集中(两个集a和b具有交集c,其中c是属于集b的、a的所有元素,即a∩b)。相反,第三方系统可能只获知vj:bidj,k映射和第一方系统的数据集的大小。特别地,第三方系统可以既不获知交集元素也不获知交集大小。

如本文所使用的,符号f[]和t[]可以分别表示用指数f和t的单确定性椭圆曲线密码(ecc)取幂。符号ft[]表示用指数f和t两者的双确定性加密。f可以表示第一方系统的确定性加密密钥。在一些实施方式中,f可以是第一方系统不与第三方系统共享的秘密密钥。类似地,在一些实施方式中,t可以是用于由第三方系统执行确定性加密的另一确定性加密密钥。第三方系统可以将t保密,而不直接与第一方系统共享。

此外,符号ef[]可以表示具有密钥f的el-gamal加密。f表示可以由第一方系统执行的用于el-gamal加密的第一el-gamal方密钥。第一方系统可以存储第一方el-gamal密钥,用第一方el-gamal密钥执行加密,和/或向第三方系统传输第一el-gamal密钥。et可以表示第三方系统的el-gamal加密密钥。第三方系统可以存储第三方el-gamal密钥,用第三方el-gamal密钥执行加密,或者向第一方系统传输第三方el-gamal密钥。el-gamal密钥、ef和et可以分别是第一方系统和第二方系统的公钥。

本文描述的密码方法可以依赖于两种不同类型的加密的两个特定性质,可交换性质和同态性质。同态性质指示对于函数f[],f[x]*f[y]=f[x*y]。el-gamal加密是同态的。具体地,对于el-gamal加密函数e[],e[x]*e[y]=e[x*y]。

用f[]和t[]的确定性加密(确定性ecc)可以是可交换的,其中f[]是第一方系统的加密并且t[]是第二方系统的加密。此外,el-gamal加密可以是可交换的。具体地,可交换性质是t[f[x]]=f[t[x]]。作为示例,第一方系统和第三方系统可以分别具有mk值x1和x2。第一方系统或第三方系统可以在不互相公开x1和x2的实际值的情况下基于可交换性质确定x1和x2是否相等。在不互相公开加密方法f[]和t[]并且不公开值x1和x2的情况下,第一方和第三方系统可以计算x1和x2的双重加密版本,即t[f[x1]]和f[t[x2]]。如果x1=x2,则t[f[x1]]=f[t[x2]]。类似地,如果x1≠x2,则t[f[x1]]≠f[t[x2]]。这允许第一和第三方系统在不公开x1和x2的实际值或每个系统的确定性加密的情况下检查x1是否等于x2。这将参考本文描述的方法进一步详细描述。

现在参考图1,根据说明性实施方式示出了第一方系统120、第三方系统140和关联环境100的框图。可以由用户使用一个或多个用户设备104来执行各种动作和/或访问各种类型的内容,该内容中的一些可以通过网络102(例如,互联网、lan、wan等)提供。本文使用的“用户”或“实体”可以指个人操作用户设备104,经由用户设备104等与资源或内容项交互。用户设备104可以用于(例如,使用互联网浏览器)访问网站、媒体文件和/或任何其他类型的内容。内容管理系统108可以被配置为选择用于在资源(例如,网页、应用等)内向用户显示的内容,并且通过网络102将内容项112从内容数据库提供给用户设备104,用于在资源内显示。内容管理系统108从其选择项的内容可以由一个或多个内容提供商使用一个或多个内容提供商设备106经由网络102提供。

在一些实施方式中,内容管理系统108可以选择来自内容提供商的内容项以在用户设备104上显示。在这样的实施方式中,内容管理系统108可以确定要在资源(例如,网页、应用等)的一个或多个内容接口中发布的内容。内容管理系统108可以被配置为在第三方内容提供商当中进行内容拍卖,以确定哪个第三方内容被提供给用户设备104。可以基于出价金额和质量得分(即,用户设备104的用户点击内容的可能性的度量)来确定拍卖获胜者。在一些实施方式中,内容管理系统108允许内容提供商创建内容活动。活动可以包括任何数量的参数,诸如最小和最大出价金额、目标出价金额或一个或多个预算金额(例如,每日预算、每周预算、总预算等)。

第一方系统120和第三方系统140可以包括一个或多个处理器(例如,任何通用或专用处理器),并且可以包括和/或可操作地耦合到一个或多个暂时性和/或非暂时性储存介质和/或存储器(例如,任何计算机可读储存介质,诸如磁储存器、光储存器、闪存储存器、ram等)。在各种实施方式中,第一方系统120和/或第三方系统140和内容管理系统108可以实现为单独的系统或集成在单个系统内。例如,第一方系统120可以与第一内容管理系统(例如,内容管理系统108)相关联和/或是其一部分,而第三方系统140可以是第二内容管理系统(例如,类似于内容管理系统108的内容管理系统)的一部分。

第一方系统120和/或第三方系统140可以可通信地且可操作地耦合和/或包括数据储存设备,例如数据库。第一方系统120和/或第三方系统140可以被配置为向数据库查询信息并在数据库中存储信息。在各种实施方式中,数据库包括各种暂时性和/或非暂时性储存介质。储存介质可以包括但不限于磁储存器、光储存器、闪存储存器、ram等。数据库和/或第一方系统120和/或第三方系统140可以使用各种api来执行数据库功能(即,管理存储在数据库中的数据)。api可以是但不限于sql、odbc、jdbc等。

第一方系统120和/或第三方系统140可以被配置为从网络102接收信息。该信息可以包括浏览历史、cookie日志、电视广告数据、印刷出版物广告数据、无线电广告数据、在线活动数据和/或任何其他指示或与用户(即,用户设备104)可以在网络102上具有的在线资源的任何其他交互。第一方系统120和/或第三方系统140可以被配置为接收和/或收集用户设备104在网络102上具有的交互。该信息可以由第一方系统120和/或第三方系统140存储。

第一方系统120和/或第三方系统140可以包括被配置为执行各种功能的一个或多个模块(即,可由处理器执行的计算机可读指令)和/或电路(即,asic、处理器存储器组合、逻辑电路等)。在一些实施方式中,模块可以是或包括加密管理器122和加密管理器142。此外,第一方系统120和/或第三方系统140可以存储网桥标识符映射124和/或网桥标识符映射144和用户数据,即输入数据126和输入数据146。

加密管理器122和加密管理器142可以被配置为执行本文描述的各种加密方法。此外,加密管理器122和加密管理器142可以执行特定的加密步骤,例如,确定性ec加密、el-gamal加密和解密方法。第一方系统120的加密管理器122可以被配置为加密要发送到第三方系统140的数据并解密从第三方系统140接收的数据。同样,第三方系统140的加密管理器142可以是配置为加密要发送到第一方系统120的数据并解密从第一方系统接收的数据。在一些实施方式中,加密管理器122和加密管理器142可以被配置为执行本文描述的方法。

在一些实施方式中,第一方系统120的加密管理器122的输入是一个或多个第一集126,形式为(ui,mki,mkti)的三元组。可以有具有相同ui的几个三元组。可以假设没有两个三元组共享相同的mki,即没有两个ui被链接到相同的mki。但是,多个mki可以链接到单个ui。

第三方系统140输入的加密管理器142的输入可以是一个或多个第二数据集146,形式为(vj,mkj,mktj)的三元组。与第一方系统120的一个或多个第一集126一样,可以存在具有相同vj的多个三元组,但是没有两个三元组共享相同的mkj。在本文描述的一些方法中,mkti和mktj值“以普通文字”传递,即它们可以在不加密的情况下在第一方系统120和第三方系统140之间通信传送。由于这个原因,本文的一些方法没有是示出在第一方系统120和第三方系统140之间通信传送的mkti和mktj。任何时候在第一方系统120和第三方系统140之间通信传送mk值,还可以通信传送对应的mkt值。

网桥标识符映射124可以是将用户idui链接到网桥id、bid的映射。网桥标识符映射124可以是执行本文描述的方法的产品。第一方系统120的网桥标识符映射(即,网桥标识符映射124)可以是其中每个ui映射到一个或多个bid值的映射。

网桥标识符映射144可以类似于网桥标识符映射124。网桥标识符映射144可以将vj映射到bid。网桥标识符映射144可以是执行本文描述的方法的产品。然而,与网桥标识符映射124不同,第三方系统140的所有vj可以仅映射到单个bid。

现在参考图2a和图2b,示出了根据说明性实施方式的用于在第一方系统120与第三方系统140的用户id之间建立链接的过程200。第一方系统120和第三方系统140可以被配置为执行过程200的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程200。

参考图2c,如果示出的话传输图更详细地说明了过程200。除了示出匹配关系生成步骤、匹配关系修剪步骤和bid分配步骤之外,图2c的传输图还示出了在第一方系统120和第三方系统140之间传输的数据。

更具体地参考图2a和图2b,在步骤202中,第一方系统120可以加密第一数据集126并向第三方系统140发送加密的数据集126。如前所述,第一数据集126可以是用户idui、匹配密钥mki、以及mki的匹配密钥类型mkti的一个或多个集。

在步骤202中,第一方系统120可以被配置为选择第一方加密的值f(例如,ecc取幂密钥)和el-gamal密钥f′。基于所选择的密钥f和f′,第一方系统120可以加密它存储的mk数据。具体地,第一方系统120可以用el-gamal密钥f′加密它存储的ui值,用ecc取幂密钥f加密它存储的mk值,并留下它存储的mkt值未加密。结果可以是ef′(ui),f[mki,k],mkti,k。第一方系统120可以向第三方系统140发送该结果。在一些实施方式中,可以存在多个元组,即与相同的基础(underlying)ui相关联的mk和mkt组合。

在步骤204中,第三方系统140可以接收加密的第一集126,对加密的第一数据组126双重加密,并向第一方系统120发送双重加密的第一数据组126。第三方系统140可以选择值t。值t可以是ecc取幂密钥。此外,第三方系统140可以选择值r、确定性密钥。第三方系统140可以加密它在步骤202中从第一方系统120接收的加密的数据。这可以称为双重加密。

第三方系统140可以用所选择的值t和所选择的值r双重加密其在步骤202中接收的数据ef′(ui),f[mki,k],mkti,k。具体地,第三方系统140可以对所接收的ui取幂,并且用值t双重加密f[mki,k]。第三方系统140可以留下mkti,k未加密。结果可以是ef′(uir),ft[mki,k],mkti,k。第三方系统140可以向第一方系统120发送回该结果。在一些实施方式中,第三方系统140可以对结果的顺序进行排序或混洗。

在步骤206中,第三方系统140用来自步骤204的所选择的值t加密由第三方系统140存储的第二集146。第三方系统140可以加密与特定v值相关联的mk值、和mkt值。具体地,第三方系统可以用所选择的值t加密它存储的mk值。结果可以是(vj,t[mkj,k],mktj,k)。第三方系统140可以向第一方系统120发送该结果。在一些实施方式中,第三方系统140在向第一方系统120发送加密的第二数据集146之前对加密的第二数据集146进行排序和/或混洗。

在步骤208中,第一方系统120可以双重加密第三方系统140在步骤206中发送给第一方系统120的加密的集146,即,第一方系统120可以双重加密所接收的集(vj,t[mkj,k],mktj,k)。具体地,第三方系统140可以用f加密t[mkj,k]值。结果可以是(vj,ft[mkj,k],mktj,k)。

在步骤210中,第一方系统120可以生成匹配关系,该匹配关系包括第一集126的匹配密钥和第二集146的匹配密钥之间的多个链接,其中第一集126和第二集146的匹配密钥都是双重加密的。匹配关系可以可视化地表示为图形(例如,如图2c所示),但可以是指示各种值之间的关系的任何数据元素。

根据第一数据集,第一方系统120可以具有tf[mki,k]值,而根据第二数据集可以具有ft[mkj,k]。用t和f加密可以是可交换的,即其中mki,k等于mkj,k,tf[mki,k]等于ft[mkj,k]。因此,tf[mki,k]和ft[mkj,k]之间的交集可以根据哪些tf[mki,k]和ft[mkj,k]值相等来确定。在图2c中可视化地描述了匹配关系。匹配关系的顶点可以表示盲用户id,即,uir解密值和vj值。两个顶点之间的边(链接)可以表示匹配tf[mki,k]和ft[mkj,k]值。

在步骤212中,第一方系统120可以通过从匹配关系移除链接使得第二数据集146中的每个mk具有到第一数据集126的mk的仅一个链接来修剪匹配关系。具体地,第一方系统120可以修剪匹配关系,使得每个vj顶点具有仅一个关联边。这可以防止第一方系统120获知与第一方系统120相关联的用户id中的两个是否与第三方系统140的单个用户id相对应。第一方系统120可以使用重复匹配的数量和匹配的mkt来帮助选择要保存的最佳边。例如,某些mkt值可以指示应该保存哪些链接。可以保存与电子邮件地址相关联的链接,同时可以丢弃与家庭住宅地址相关联的链接。

每个uir仍然可以具有与其相关联的多个边。在步骤214中,第一方系统120可以伪随机地将伪随机网桥标识符b分配给关联顶点。值b可以由第一方系统120从bid空间选择。bid空间可以是作为b的可能值的值的集。一个或多个参数可以定义bid空间。例如,一个或多个参数可以定义从其选择值的椭圆曲线。值b可以与和vj的顶点相关联。对于不与值b相关联的所有顶点vj,第一方系统120可以向其分配新的伪随机值bj。

对于不与任何b相关联的所有顶点第一方系统120可以用从ec组伪随机地选择并且与所有其他值不同的虚值替换顶点。第一方系统120可能不知道r,但可以选择ec组中的任何随机并且不同的元素,并且对于某些未知的ui,它将是的形式。第一方系统120可能不知道该值将去取幂什么ui,但这不是问题,只要新的与所有先前的不同。

在步骤216中,对于包括来自前一步骤214的新替换的所有顶点第一方系统120可以分配预定数量的伪随机网桥标识符。第一方系统120可以将每个顶点与附加的新的伪随机bi,k值相关联,直到每个具有t个关联值。

在步骤218中,第一方系统120可以向第三方系统140发送一个或多个第二元组。每个元组可以包括与第三方系统140相关联的用户idvj和网桥标识符bj的关联。具体地,元组可以是(vj,bj)的集。值bj可以是与第三方系统140的用户id相关联的网桥标识符vj。

在步骤220中,第一方系统可以选择第一指数并对一个或多个第一元组取幂,并向第三方系统140发送取幂的一个或多个第一元组。第一方系统120可以将第一指数选择为ecc指数。所选择的ecc指数可以是指数s。第一方系统120可以确定与第一方系统120相关联的用户标识符和关联的网桥标识符bj,k的第一元组。第一方系统120可以用指数s对第二元组的网桥标识符取幂。结果可以是元组(bi,ks)。对于每个i和k,每个可以与bi,k相关联。还可以包括替换的值。

在步骤222中,第三方系统140可以选择第二指数并经由对所接收的、步骤218的一个或多个的第二元组取幂来生成网桥标识符映射144。网桥标识符映射144可以包括在步骤220中接收的、与第三方系统140相关联的用户id和网桥标识符的关联。由第三方系统140选择的指数可以是bid空间的指数t。第三方系统140可以基于在步骤218中接收的元组(vj,bj)确定对(vj,)。第三方系统140可以验证没有任何对在第二位置中具有重复的值。第三方系统140可以在其网桥标识符映射144vj:bidj中使用这些对,v_j:〖bid〗_j。映射可以是

在继续之前,第三方系统140可以验证(bi,ks)对中没有两对具有相同的bi,ks值。如果存在具有相同的bi,ks值的两对,则第三方系统140可以中止过程200。否则,第三方系统140可以继续到步骤224。

在步骤224中,第三方系统140可以加密(在步骤220中接收的)一个或多个取幂的第一元组,该一个或多个取幂的第一元组包括与第一方系统120相关联的用户标识符和由第一指数(s)与第二指数(t)取幂的关联网桥标识符。具体地,第三方系统140可以用第二指数t对第一元组(bi,ks)取幂并且移除r。在这方面,在步骤226中,第三方系统140可以在所有这样的元组(ui,bi,kst)排序和/或混洗之后向第一方系统120发送所有这样的元组(ui,bi,kst)。

在步骤228中,第一方系统120可以从所接收的、步骤224的取幂的一个或多个第一元组移除第一指数s。通过移除第一指数,第一方系统120可以生成第一方系统120的网桥标识符映射。在所接收的元组中,第一方系统120可以丢弃不与ui相对应的所有那些元组。在这样做时,第一方系统120将丢弃在步骤216中引入的所有虚ui值,并且仅保存与至少一个vj匹配的那些ui。在216中新选择的与所有其他不同,因此将始终去取幂为与第一方系统120在步骤202中最初提供的那些不同的ui。

对于所有剩余的ui,第一方系统120可以移除所接收的对的第二位置中的幂s,以从在步骤226中接收的元组(ui,bi,kst)恢复形式为(ui,bi,kt)的对,并构造ui:bidi,k映射,其中bidi,k=bi,kt。注意,每个ui可以与几个bidi,k相关联,如在步骤216中插入的该几个bidi,k中一些是真实的,一些是假的。第一方系统120可能不知道哪些是假的。

在过程200的结尾时,第一方系统120已经获知其哪个用户idui与第三方系统140的用户idvj匹配。在后续方法中,第一方系统120可以还要获知其关联bid中的哪些是真实的和假的;假bid永远不会出现在交集中。在随后的交易上传中,如果由第三方系统140提供的多个bid与该与单个ui相关联的多个bid匹配,则第一方获知匹配于单个用户id的多个第三方id。

在一些实施方式中,可以通过在212中另外修剪pii图形来防止该泄漏,使得uir和vj顶点都具有最多1个关联边。这进一步参考图3的过程300进行描述。在一些实施方式中,如果第三方系统140根本没有接收到非盲信息,则它除了其bid映射和第一方系统120的数据的大小之外什么都不获知。第一方系统120可以获知pii匹配图形的盲结构。然而,该泄漏的积极方面是第一方系统120可以利用图形结构来改善链接修剪。

在一些实施方式中,可以修改过程200,使得第一方系统120不能获知其用户id中的哪个匹配。对过程200的一些修改使用bid作为从未匹配且永远不会出现在交集中的用户id。在一些实施方式中,第三方系统140可以不接收除了第一方数据的大小外获知非常少的非盲信息。第一方可以利用图形结构来优化链接修剪。

在第一方系统120不再能够获知其用户id中的哪个匹配的一些实施方式中,第三方系统140不再能够获知第三方系统140的用户id之间的链接,因为在第一方系统120与mk值交叉之后,第三方仅看到盲bid和加密的用户id。代替在步骤228中看到更多信息,第三方可能看不到该信息,使得第三方盲执行修剪。修改过程200以提供两个质量相对泄漏(quality-vs-leakage)权衡中的任何一个是可能的。

现在参考图3a,示出了根据说明性实施方式的用于在第一方系统120和第三方系统140的用户id之间建立链接的过程300,其中网桥id是第三方系统140的用户id。选择网桥id作为用户id可以简化数据流,从而改善流程。第一方系统120和第三方系统140可以被配置为执行过程300的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程300。过程300可以类似于参考图2a-图2c描述的过程200。过程300可以包括与过程200相同的步骤中的许多步骤。然而,过程300可以通过使用第三方系统140的用户id作为网桥id以至少一种方式不同于过程200。

参考图3b,如果示出的话更详细地说明过程300的传输图。除了说明匹配关系生成步骤、匹配关系修剪步骤和bid分配步骤之外,图3b的传输图还说明了在第一方系统120和第三方系统140之间传输的数据。

更具体地参考图3a,在步骤302中,第三方系统140可以选择与第三方系统140相关联的用户id的伪随机值。这些值vj可以是通过伪随机选择椭圆曲线上的点而选择的伪随机值。在执行步骤302之后,过程300可以包括过程200的步骤202和204。这些步骤可以分别由第一方系统和第三方系统执行。

在步骤304中,第三方系统140可以加密第二数据集146并向第一方系统120发送加密的第二数据集146。如前所述,第二数据集146可以包括与与第三方系统140相关联的用户idvj、与用户id链接的mk值、以及mk值的mkt值。一个或多个第二数据集可以是vj,mkj,k,mktj,k。

第三方系统140可以用确定性指数t′和确定性指数t加密一个或多个第二数据集。具体地,第三方系统140可以用指数t′加密与第三方系统140相关联的用户id,并且用指数t加密与第三方系统140相关联的mk。结果可以是vjt′,t[mkj,k],mktj,k的一个或多个集。第三方系统140可以向第一方系统120发送该结果。在步骤304之后,在过程300中,第三方系统140可以用vjt′而不是vj执行如进一步参考图2a-图2c和过程200描述的步骤208-210。第一方系统120可以执行步骤208-210。

在步骤308中,第一方系统120可以修剪在步骤210中生成的匹配关系。第一方系统120可以通过从匹配关系移除链接使得第二数据集146的每个mk具有到第一数据集126的mk的一个链接并且进一步使得第一数据集126的每个mk具有到第二数据集146的mk的一个链接来修剪匹配关系。

在步骤310中,第一方系统120可以选择一个或多个第一数据集的mk和第二数据集146的mk之间的链接的网桥id,网桥id是与第三方系统140相关联的取幂的用户标识符。更具体地,所选择的网桥id可以是与第三方系统140相关联的加密的用户id。网桥idbi可以是vit′值。这在图3b中可视化地说明,在图3b中u1r的tf[mk1,k]和v1t′的ft[mk1,k]之间的链接的b1值被分配值v1t′。如果第一方系统120的标识符不匹配第三方系统140的标识符,则第一方系统120可以为其分配随机网桥id。例如,在图3b中的b3。该随机分配可以与参考图2a-图2c描述的过程200的步骤214相同地执行。

过程300可以跳过过程200的步骤218,因为可能不需要该步骤。在步骤218中,元组(vj,bj)可以从第一方系统120被发送到第三方系统140。然而,这与发送形式为(vjt′,vjt′)的元组相同,这是多余的。然而,过程300可以包括执行步骤220。在步骤220中,第一方系统120可以发送包括与第一方系统120相关联的用户id和关联网桥id的元组。元组可以是bi,ks。然而,由于在步骤308中选择的网桥id可以是与第三方系统140相关联的用户id,所以元组可以是vj,kt′s。这在图3b的传输图中说明。

在步骤312中,第三方系统140可以对与第三方系统140相关联的用户id进行去取幂。具体地,第三方系统140可以移除指数t′但是留下指数s。结果可以是并且可以通过从在步骤220中接收的元组νj,kt′s移除指数t′来确定。过程300可以继续如参考过程200描述的由第一方系统执行第一步骤224-228。注意,虽然第一方系统120可以完全恢复匹配的id的vj,但将恢复不匹配的所有id的随机点。

现在参考图4a-图4b,示出了根据说明性实施方式的用于在第一方系统120与第三方系统140的用户id之间建立链接的过程400,其中网桥id被加密。在一些实施方式中,代替获知bid,第一方系统120和第三方系统140都获知加密的bid。在检查加密的bid的质量之前,可以使用单独的协议以在线方式对加密的bid解密。第一方系统120和第三方系统140可以被配置为执行过程400的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程400。

参考图4c,如果示出的话传输图更详细地说明了过程400。除了说明匹配关系生成步骤414和bid分配步骤416-420之外,图4c的传输图还说明了在第一方系统120和第三方系统140之间传输的数据。

修剪链接以防止泄漏用户id之间的附加链接(诸如在过程200的步骤212中执行)可能导致不准确。一般地参考过程400,过程400可以避免该修剪步骤,并因此可以给出更好的质量匹配。在一些实施方式中,代替在过程400结束时以普通文字获知网桥id,第一方系统120和第三方系统140而是将根据另一系统的el-gamal加密密钥获知网桥id的随机加密。由于网桥id被加密,因此双方都不会获知其各自用户的用户id之间的其他链接。

在一些实施方式中,除了获知与其自己的用户id相关联的网桥id之外,第一方系统120和第三方系统140中的每一个可能没有获知关于另一系统的数据集的任何事。具体地,没有参与者可以获知他们的用户id之间的新链接。例如,第一方可能没有获知第三方认为与第三方系统140相关联的用户ida和用户idb是相同用户,并且类似地,第一方系统120可能没有获知第一方认为与第三方系统140相关联的用户idc和用户idd是相同用户。在一些实施方式中,这样的过程可以允许第一方系统120和第三方系统140获知关于两个数据集的一些聚合统计。

更具体地参考图4a-图4b,在步骤402中,第一方系统120和第三方系统140可以交换公共el-gamal密钥。公共el-gamal密钥可以是第一方系统120和第三方系统140中的每一个被配置为存储、生成和/或接收的el-gamal密钥。具体地,第一方系统120可以向第三方系统140发送第一方el-gamal密钥ef,并且第三方系统140可以向第一方系统120发送第三方el-gamal密钥et。

在步骤404中,第一方系统120可以用第一方elgamal密钥和第一方确定性密钥加密一个或多个第一数据集126,并向第三方系统140发送加密的第一数据集126。具体地,第一方系统120可以用第一方密钥ef加密ui以生成ef(ui),并且用第一方确定性密钥f加密mki以生成f(mki)。加密的一个或多个第一数据集126可以是元组ef(ui),f(mki)的形式。第一方系统120可以向第三方系统140发送加密的第一数据集126ef(ui),f(mki)。由于用el-gamal加密ui,即使多个元组共享相同ui,他们将具有不同的加密。

在步骤406中,第三方系统140可以用第三方确定性密钥t对加密的第一数据集126双重加密。然后,第三方系统140可以随机化双重加密的第一数据集126。双重加密的结果可以是(eftf[mki]),其中第三方系统140可以用相同的r加密所有ui。结果可以以混选的顺序被发送到第一方系统。120。

在步骤408中,第三方系统140可以用第三方确定性密钥加密一个或多个第二数据集146,并向第一方系统120发送一个或多个加密的第二数据集146。具体地,通过用第三方密钥t加密mkj来加密一个或者多个第二数据集146(vj,mkj)。结果可以是可以由第三方系统140向第一方系统120发送的(vj,t(mkj))。

在步骤410中,第一方系统120可以对双重加密的第一数据集126解密。第一方系统120可以通过移除第一方el-gamal加密ef来对双重加密的一个或多个第一数据集126(即,(eftf[mki]))解密。结果可以是(tf[mki])形式的元组。

在步骤412中,第一方系统120可以用第一方确定性密钥双重加密在步骤408中从第三方系统140接收的一个或多个加密的第二数据集146。具体地,步骤408中接收的一个或多个加密的第二数据集146可以是(vj,t(mkj)。对于每个元组,第一方系统120可以用第一方密钥f双重加密t(mkj)。结果可以是(vj,ft(mkj))形式的元组。

在步骤414中,第一方系统120可以生成匹配关系,该匹配关系包括双重加密的第一数据集126的mk值和双重加密的第二数据集146的mk值之间的多个链接。匹配关系的顶点可以表示用户id(经由加密而不可见)和vj(用普通文字,未加密),并且两个顶点之间的边表示匹配ft(mk)。第一方系统120可以在联合匹配关系/盲匹配关系中找到连通分量。

在步骤416中,第一方系统120可以用第一方el-gamal密钥和第三方elgamal密钥分配加密的网桥id。对于每个连通分量(例如,每个匹配或不匹配的用户id顶点),第一方系统120可以选择用于该分量的随机网桥idbj并根据第一方el-gamal密钥和第三方el-gamal密钥加密网桥id值。

网桥id的该加密可以是匹配关系中的每个顶点的单独的随机化加密,而相同的明文被加密。在步骤418中,第一方系统120可以用第一方el-gamal密钥和第三方el-gamal密钥加密分配的网桥标识符。在步骤418的加密之后,每个将与单个efet(bi)相关联,并且每个vj将与单个efet(bj)相关联。这是去重发生的地方;因为每个vj仅与对应于其分量的单个加密的网桥id相关联,所以第三方系统140根本不会看到重复。

在步骤420中,第一方系统120可以混洗并向第三方系统140发送一个或多个第一元组和一个或多个第二元组,该一个或多个第一元组包括在步骤420中生成的加密的网桥标识符和与第一方系统相关联的用户id,该一个或多个第二元组包括加密的网桥标识符和与第三方系统相关联的用户id。元组可以将第一方系统120和第三方系统140的用户id与双重加密的网桥id相关联。元组可以是(efet(bj),vj)(第一元组)和(efet(bi),)(第二元组),即连通分量的顶点及其双重加密的网桥id。

在步骤422中,第三方系统140可以通过用第三方el-gamal密钥解密一个或多个第二元组来生成第三方系统140的网桥标识符映射144。对于一个或多个第二元组(efet(bj),vj),第三方系统140可以用第三方el-gamal加密密钥et解密网桥id以生成加密的网桥id映射(ef(bj),vj)。

在步骤424中,第三方系统140可以对一个或多个第一元组进行去取幂,并向第一方系统120发送去取幂的一个或多个第一元组。可以由第三方系统140通过移除指数r来对形式为(efet(bi),uir)的一个或多个第一元组进行去取幂。第三方系统140可以在第一位置重新随机化加密,移除在第二位置中的指数ui中的幂r,得到(etef(bj),ui)。第三方系统140可以将结果混洗和/或向第一方系统120发送结果。

在步骤426中,第一方系统120可以通过用第一方el-gamal密钥解密一个或多个第一元组来生成第一方系统120的网桥标识符映射126。对于每个元组(etef(bi),ui),第一方系统120用第一方系统的e-gamal密钥et解密第一分量,以得到第一方系统120的加密的bid映射(ef(bi),ui)。

现在参考图5a,示出了根据说明性实施方式的过程500a的传输图,该过程是用于由第三方系统140确定加密的网桥标识符的交集的安全交集过程。过程500a可以用于由第三方系统140确定在过程400中生成的加密的网桥标识符的交集。第一方系统120和第三方系统140可以被配置为执行过程500a的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程500a。

在过程500a的广义概述中,第三方系统140可以首先对其加密的网桥标识符进行同态取幂,并将它们发送到第一方系统120。第一方系统120然后可以解密、双重加密、混洗它们,并将它们发送回第三方系统140。第一方系统120然后可以对其自己的加密的网桥id取幂,并向第三方系统140发送这些密文。第三方系统140然后可以解密第一方系统120的网桥id并对它们双重取幂。第三方系统140然后具有每一方的双重加密的bid,并且可以如之前一样执行交集(在一些实施方式中,角色可以交换以从正向改变为反向)。

在步骤502中,第一方系统120可以生成第一方确定性加密密钥f,同时第三方系统140可以生成第三方确定性加密密钥t。

在步骤504中,对于分段中的每个用户vj,第三方系统140可以对关联的el-gamal加密的网桥id进行同态取幂,生成结果ef(bjt),其可以被发送到第一方系统120。在步骤506中,第一方系统120可以对ef(bjt)解密并双重取幂以生成bjtf,并向第三方系统发送bjtf。更具体地,第一方系统120可以解密每个ef(bit),移除ef,并用f双重取幂以生成结果bjtf。在被发送之前,可以混洗值的顺序。在步骤508中,对于该分段中的每个ui,第一方对关联的el-gamal加密的网桥id进行同态取幂,向第三方系统发送et(bif)。

在步骤510中,第三方系统140可以解密每个et并对结果双重取幂以生成在步骤512中,第三方系统140可以通过交叉双重取幂的网桥标识符来确定交集大小。更具体地,第三方系统140可以将值与所接收的值交叉,并且获知交集大小。上面的协议可以自然地扩展到获知交集总和,也可以反转,使得另一方执行交集。在图5b中更详细地描述了安全交集-总和过程。

现在参考图5b,示出了根据说明性实施方式的过程500b的传输图,该过程是用于由第一方系统120确定加密的网桥标识符的交集的安全交集-总和过程。过程500b可以用于由第一方系统120确定在过程400中生成的加密的网桥标识符的交集。第一方系统120和第三方系统140可以被配置为执行过程500b的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程500b。

在一些实施方式中,执行交集的一方会看到bift和bjft值,并且具体地,可以看到重复了多少这样的值。这完全泄漏了分段中的(属于任何一方的)用户有多少在相同的连通分量中,而不是哪些特定用户在相同的连通分量中。

第三方(不执行交集)会看到第一方的bit值,并且具体地,可以看到重复了多少这样的值。这完全泄漏了该分段中的第一方用户有多少在相同的连通分量中,而不是哪些特定用户在相同的连通分量中。

在步骤522中,第三方系统140发送{(ef(bjt),p(sj)}。在步骤524中,第一方系统120向第三方系统140发送{(p(sj+rj))}和{et}。在步骤526中,第三方系统140发送∑jb(si+ri)和在步骤528中,第三方系统140发送∑jbsj。

现在参考图5c,根据实施方式的用于确定具有指示符比特的匹配的网桥id的数量的过程500c的传输图。第一方系统120和第三方系统140可以被配置为执行过程500c的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程500c。

在步骤530中,第一方系统120向第三方系统140发送{(ef(ui),)}。在步骤532中,第三方系统通过向第一方系统发送{(ef(ui),)}和{(vj,)}来回复。

在步骤534中,第一方系统120确定连通分量并将网桥id分配给每个分量。对于“单例”分量中的每个第一方顶点,即没有具有任何其他顶点的边,第一方将efet(e)分配给该顶点,并且对于具有非零度的顶点,将efet(g)分配给顶点,其中e是ec组的单位元素,g是生成元。第一方系统120然后可以向第三方系统140发送{(efet(bi),efet(ki)和{vi,efet(bj)}。

在步骤536中,第三方系统140用{ui,efet(bi),efet(ki)}回复第三方系统。在该方法期间,第一方系统120应该包括具有其分段网桥id的efet(ki)。确定分段中的元素有多少具有关于第三方系统140侧的对应的网桥id。第三方系统140可以确定πisef(ki)=eg(πiski),即,它可以使用el-gamal同态。每个ki是e或g,因此ki=g,即指数是匹配的网桥id的计数。一般很难计算指数,但是分段大小不是很大(最多数百万),这意味着指数的下限很小。第一方可以保留可能的指数的查找表来解码该数字。注意,如果需要,也可以仅对交集进行此操作。

现在参考图6,图6示出了计算机系统600的描绘,该计算机系统600可以用于例如实施说明性用户设备104、说明性内容管理系统108、说明性内容提供者设备106、说明性第一方系统120、说明性第三方系统140和/或本公开中描述的各种其他说明性系统。计算系统600包括总线605或用于通信传送信息的其他通信组件以及耦合到总线605用于处理信息的处理器610。计算系统600还包括耦合到总线605用于存储信息和要由处理器610执行的指令的主存储器615,诸如随机存取存储器(randomaccessmemory,ram)或其他动态储存设备。主存储器615也可以是用于在由处理器610执行指令期间存储位置信息、临时变量或其他中间信息。计算系统600还可包括耦合到总线605用于存储处理器610的静态信息和指令的只读存储器(readonlymemory,rom)620或其他静态储存设备。诸如固态设备、磁盘或光盘的储存设备625耦合到总线605用于持久存储信息和指令。

计算系统600可以经由总线605耦合到显示器635(诸如液晶显示器或有源矩阵显示器)用于向用户显示信息。输入设备630(诸如包括字母数字键和其他键的键盘)可以耦合到总线605用于将信息和命令选择通信传送到处理器610。在另一实施方式中,输入设备630具有触摸屏显示器635。输入设备630可以包括光标控件(诸如鼠标、轨迹球或光标方向键)用于将方向信息和命令选择通信传送到处理器610并用于在显示器635上控制光标移动。

在一些实施方式中,计算系统600可以包括通信适配器640,诸如网络适配器。通信适配器640可以耦合到总线605,并且可以被配置为使能与计算或通信网络645和/或其他计算系统的通信。在各种说明性实施方式中,可以使用通信适配器640来实现任何类型的网络配置,诸如有线(例如,经由以太网)、无线(例如,经由wifi、蓝牙等)、预配置、自组网、lan、wan等

根据各种实施方式,可以由计算系统600响应于处理器610执行被包含在主存储器615中的指令的布置来实现本文描述的说明性实施方式的过程。这样的指令可以从另一计算机可读介质(诸如储存设备625)读入主存储器615。执行被包含在主存储器615中的指令的布置使得计算系统600执行本文所述的说明性过程。还可以采用多处理布置中的一个或多个处理器来执行被包含在主存储器615中的指令。在可替代实施方式中,可以代替软件指令使用硬连线电路或与软件指令组合使用硬连线电路来实施说明性实施方式。因此,实施方式不限于硬件电路和软件的任何特定组合。

尽管已经在图6中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式可以使用其他类型的数字电子电路或者以计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)或以它们中的一个或多个的组合来实现。

本说明书中描述的主题和操作的实施方式可以使用数字电子电路或以在有形介质上体现的计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物,)或以它们中的一个或多个的组合执行。本说明书中描述的主题的实施方式可以被实施为编码在一个或多个计算机储存介质上用于由数据处理装置执行或以控制数据处理装置的操作的一个或多个计算机程序,即,计算机程序指令的一个或多个子系统。可替代地或另外地,程序指令可以在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上编码,其被生成以编码信息用于传输到合适的接收器装置用于由数据处理装置执行。计算机储存介质可以是或可以被包括在计算机可读储存设备、计算机可读储存基板、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,尽管计算机储存介质不是传播信号,计算机储存介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机储存介质也可以是或被包括在一个或多个单独的组件或介质(例如,多个cd、磁盘或其他储存设备)中。因此,计算机储存介质是有形的和非暂时性的。

本说明书中描述的操作可以实施为由数据处理装置对存储在一个或多个计算机可读储存设备上或从其他源接收的数据执行的操作。

术语“数据处理装置”或“计算设备”包含用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述中的多个或组合。该装置可以包括专用逻辑电路,例如fpga(fieldprogrammablegatearray,现场可编程门阵列)或asic(application-specificintegratedcircuit,专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,组成处理器固件的代码、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或它们中的一个或多个的组合。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言、声明或程序语言)编写,并且其可以以任何形式(包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元)部署。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分、专用于所讨论的程序的单个文件、或多个协调文件(例如,存储一个或多个子系统、子程序或代码的部分的文件)中。可以部署计算机程序以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且装置也可以实现为专用逻辑电路。

适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机中的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括或可操作地耦合来从用于存储数据的一个或多个一个或多个大容量储存设备(例如,磁盘、磁光盘或光盘)接收数据或向其传送数据,或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备(例如,移动电话、个人数字助理(personaldigitalassistant,pda)、移动音频或视频播放器、游戏控制台、全球定位系统(globalpositioningsystem,gps)接收器、或便携式储存设备(通用串行总线(universalserialbus,usb)闪存驱动器))中,仅举几例。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,eprom、eeprom和闪存存储器设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,可以使用具有用于向用户显示信息的显示设备(例如,crt(cathoderaytube,阴极射线管)或lcd(liquidcrystaldisplay,液晶显示器)监视器)和用户可以通过其向计算机提供输入键盘和指点设备(例如,鼠标或轨迹球)的计算机来实现本说明书中描述的主题的实施方式。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向由用户使用的设备发送文档和从其接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户的客户端设备上的web浏览器发送网页。

可以使用计算系统来执行本说明书中描述的主题的实施方式,其中该计算系统是包括后端组件的计算系统,例如,作为数据服务器;或者包括中间件组件的计算系统,例如,应用服务器;或者包括前端组件的计算系统,例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过该客户端计算机与本说明书中描述的主题的实施方式进行交互;或者一个或多个这样的后端、中间件、或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“localareanetwork,lan”)和广域网(“wideareanetwork,wan”)、网络间(例如,互联网)、以及对等网络(例如,自组网对等网络)。

计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。客户端和服务器的关系由于在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器将数据(例如,html页面)传输到客户端设备(例如,出于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。可以从在服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

在一些说明性实施方式中,本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实施,其可以包括被配置为将互联网连接与(例如,经由有线、卫星、无线或其他信号接收的)更传统的电视节目源集成的处理电路。智能电视模块可以物理地并入到电视机中,或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统、以及其他配套设备。智能电视模块可以被配置为允许观看者搜索和查找在网络上、在本地有线电视频道上、在卫星电视频道上、或存储在本地硬盘驱动器上的视频、电影、照片和其他内容。机顶盒(set-topbox,stb)或机顶单元(set-topunit,stu)可以包括信息家电设备,该信息家电设备可以包含调谐器并连接到电视机和外部信号源,将信号转换成然后显示在电视屏幕或其他显示设备上的内容。智能电视模块可以被配置为提供主屏幕或顶级屏幕,其包括多个不同应用(诸如网络浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他网络“频道”等)的图标。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的配套应用可在移动计算设备上操作,以向用户提供关于可用节目的附加信息,以允许用户控制智能电视模块等。在替代实施方式中,该特征可以在膝上型计算机或其他个人计算机、智能手机、其他移动电话、手持式计算机、平板计算机或其他计算设备上实施。

尽管本说明书包含许多特定的实施方式细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施方式的特征的描述。在单独的实施方式的上下文中的在本说明书中描述的某些特征也可以以组合或单个实施方式实现。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独地或以任何适合的子组合来实现。此外,虽然特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变化。

另外,关于特定标题描述的特征可以关于其他标题下描述的说明性实施方式和/或与其组合而使用;标题(如果提供的话)仅出于可读性的目的而被包括,并且不应被解释为限制关于这样的标题提供的任何特征。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或以连续顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这样的分离,并且应当理解,所描述的程序组件和系统一般可以在单个软件产品中集成在一起或者被打包到在有形介质上体现的多个软件产品中。

因此,已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1