掌桥专利:专业的专利平台
掌桥专利
首页

用于保护隐私的方法

文献发布时间:2023-06-19 11:55:48


用于保护隐私的方法

相关专利申请的交叉引用

本申请要求于2019年4月5日提交的美国临时专利申请No.62/830,266的权益和优先权,其全部公开内容通过引用合并于此。

背景技术

能够确定有关来自客户端设备的数据的聚合信息(诸如多少设备与特定内容项交互)对于分析系统来说可能会有所帮助。但是,通常对维护个人可标识信息的隐私感兴趣。例如,实体可能对接收有关以下的信息感兴趣:特定类型的内容到达了多少个设备,或者有多少个设备在没有接收到可能标识信息来源的该信息(诸如与设备相关联的标识符)的情况下以特定方式与该内容进行了交互。

发明内容

本公开的一种实施方式涉及一种方法,该方法包括:在多个客户端设备中的每个客户端设备处接收数据项,从第二计算系统接收公钥,通过使用所述公钥对所述数据项进行加密以产生单个加密数据项,通过使用所述单个加密数据项来与第一计算系统参与不经意伪随机函数协议以产生种子,通过使用所述种子和所述单个加密数据项、通过利用阈值秘密共享函数来生成加密秘密份额,在该阈值秘密共享函数下不能解密所述加密秘密份额直到接收到与相同单个加密数据项相关联的阈值数量的加密秘密份额为止,以及将所述加密秘密份额传送到所述第一计算系统。另一种实施方式涉及一种方法,该方法包括:在所述第一计算系统处从所述多个客户端设备接收多个加密秘密份额,处理所述多个加密秘密份额以产生经处理的数据,以及将经处理的数据传送到第二计算系统。可以根据上述实施方式和/或根据本文所述的其它技术由多个客户端设备生成多个加密秘密份额。另一种实施方式涉及一种方法,该方法包括:在所述第二计算系统处解密经处理的数据以产生解密的经处理的数据,以及通过使用解密的经处理的数据来生成共享第一特征的所述多个秘密份额的计数,而无需访问与所述多个客户端设备相关联的个人可标识信息。可以根据上述实施方式和/或根据本文所述的其它技术由第二计算系统生成所述经处理的数据。

在一些实施方式中,第一计算系统还被配置为在处理所述多个加密秘密份额之前,混洗所述多个加密秘密份额。在一些实施方式中,参与所述不经意伪随机函数协议以产生所述种子包括使用所述单个加密数据项和人群标识符,其中,所述人群标识符与所述多个客户端设备中的两个或更多个客户端设备相关联。在一些实施方式中,所述第一计算系统是所述第二计算系统的一部分。在一些实施方式中,所述第一计算系统存在于所述第二计算系统的受保护环境内,所述受保护环境防止所述第二计算系统访问所述第一计算系统。

在一些实施方式中,所述多个客户端设备中的每个客户端设备通过使用所述单个加密数据项来与第三计算系统参与所述不经意伪随机函数协议,以产生所述种子。在一些实施方式中,所述第二计算系统处理所述多个加密秘密份额,以产生所述经处理的数据。在一些实施方式中,所述多个客户端设备通过使用安全网络与所述第一计算系统通信,其中,所述安全网络是洋葱网络。在一些实施方式中,参与所述不经意伪随机函数协议以产生所述种子包括:使用所述单个加密数据项和私有标识符,其中,所述私有标识符唯一地标识所述多个客户端设备中的客户端设备。在一些实施方式中,所述第一计算系统是分布式计算系统。

本公开的另一种实施方式涉及一个或多个计算装置,包括具有存储在其上的指令的一个或多个存储器、以及一个或多个处理器,所述处理器被配置为执行所述指令以执行以上阐述或本文描述的实施方式的方法。例如,另一种实施方式涉及第一计算系统,该第一计算系统包括:具有存储在其上的指令的存储器,以及处理器,该处理器被配置为执行该指令,以通过使用多个数据项来与多个客户端设备参与不经意伪随机函数协议,以产生多个种子,从所述多个客户端设备接收多个加密秘密份额和多个验证份额,通过使用所述多个验证份额来认证所述多个加密秘密份额,处理所述多个加密秘密份额以产生经处理的数据,以及将所述经处理的数据传送到第二计算系统。

在一些实施方式中,第一计算系统还被配置为在处理之前对所述多个加密秘密份额进行混洗。在一些实施方式中,参与所述不经意伪随机函数协议以产生所述种子包括将人群标识符编码到所述种子中,其中,所述人群标识符与所述多个客户端设备中的两个或更多个客户端设备相关联。在一些实施方式中,第一计算系统是第二计算系统的一部分。在一些实施方式中,所述第一计算系统存在于所述第二计算系统的受保护环境内,所述受保护环境防止所述第二计算系统访问所述第一计算系统。在一些实施方式中,所述第一计算系统通过使用安全网络与所述多个客户端设备通信,其中,所述安全网络是洋葱网络。

在一些实施方式中,参与所述不经意伪随机函数协议以产生所述种子包括:使用私有标识符,其中,所述私有标识符唯一地标识所述多个客户端设备中的客户端设备。在一些实施方式中,第一计算系统是分布式计算系统。在一些实施方式中,处理所述多个加密秘密份额以产生所述经处理的数据包括:通过使用阈值加密函数协议来对所述加密秘密份额进行解密。在一些实施方式中,第一计算系统还包括应用编程接口(API),其中,所述第一计算系统响应于来自所述第二计算系统的API查询而将所述经处理的数据传送到所述第二计算系统。

各个方面和实施方式可以在适当情况下组合。

附图说明

图1是示出根据说明性实施方式的通过网络交互的各种实体的图。

图2是示出根据实施方式的使用编码混洗分析(ESA)架构的数据传输和相关的图。

图3是示出根据说明性实施方式的生成用于图2的ESA架构的交互数据的方法的流程图。

图4是示出根据说明性实施方式的生成用于图2的ESA架构的交互数据的另一方法的流程图。

图5是示出根据说明性实施方式的包括秘密共享方案的图2的ESA架构的图。

图6是示出根据说明性实施方式的根据图5的秘密共享方案的秘密共享方法的流程图。

图6A是示出根据说明性实施方式的图6的秘密共享方法生成秘密份额的方法的流程图。

图7是示出根据说明性实施方式的根据图6的秘密共享方法的阈值秘密共享多项式的图。

图8是示出根据说明性实施方式的包括确定性种子的图5的秘密共享方案的图。

图9是示出根据说明性实施方式的通过使用根据图8的秘密共享方案的确定性种子来生成秘密份额的方法的流程图。

图9A是示出根据说明性实施方式的通过使用根据图8的秘密共享方案的确定性种子来生成可验证秘密份额的方法的流程图。

图10是示出根据说明性实施方式的包括第三数据处理系统的图8的秘密共享方案的图。

图11是示出根据说明性实施方式的交互数据的安全传输和相关的图。

图12是示出根据说明性实施方式的根据图11的系统的交互数据的安全传输和相关的方法的流程图。

图13是示出根据说明性实施方式的使用可验证秘密共享方案的图12的方法的流程图。

图14是示出根据说明性实施方式的用于验证可验证秘密份额的图12的方法的流程图。

图15是示出根据说明性实施方式的包括多个数据处理系统的图8的秘密共享方案的图。

图16是根据说明性实施方式的用于保护用户隐私的过程的流程图。

图17是根据说明性实施方式的用于保护用户隐私的另一过程的流程图。

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

具体实施方式

以下是与用于以隐私意识方式将在线交互与离线动作相关的方法、装置和系统有关的各种概念及其实施方式的更详细描述。由于所描述的概念不限于任何特定的实施方式,所以可以以多种方式中的任何一种来实施上面介绍的以及下面更详细讨论的各种概念。

为了在许多领域,可能有必要或期望由用户确定对预定义动作或者与软件或内容的交互的聚合测量。例如,在数字疗法领域(由软件程序驱动的用于预防、管理或治疗医疗失调或疾病的医疗保健干预措施),通常需要确定干预措施依从性(即成功参与规定动作的患者人数)。在其它域中,对于第三方内容的提供者来说,可能期望确定与该第三方内容的交互速率。

本公开的系统和方法通常涉及以安全的方式向内容提供者供应关于与由所述内容提供者产生的在线内容有关的在线交互的信息。更具体地,本公开的系统和方法涉及以更安全的方式将来自不同实体的数据进行相关的独特密码学和计算机架构方法。通常,将来自不同实体的数据相关需要计算系统访问用户特定数据。为避免泄露个人可标识信息(“PII”),在报告所述数据时必须隐藏并且适当保护所述用户的身份。

期望以保护PII免受暴露的方式进行某些分析活动。因此,需要以更安全的方式将来自不同实体的数据相关的独特密码学和计算机架构方法。本公开的各方面提供了改进的加密方法和计算机架构。该加密方法和架构可以用于通过提供增加的安全性并且也保护用户隐私,来以安全方式使用户的在线交互相关。

为了确保PII的隐私和安全性,本公开的系统和方法使数据匿名化以防止实体(例如,内容提供者、第三方等)接收PII。非限制性示例实施方式如下:第二数据处理系统可以产生用于非对称加密的公钥。客户端设备可以使用公钥来加密交互数据。客户端设备可以通过使用加密交互数据来与第一数据处理系统参与不经意伪随机函数(OPRF)协议,以产生种子。客户端设备可以对加密交互数据进行阈值加密,以生成秘密份额。第一数据处理系统可以从多个客户端设备接收多个秘密份额。一旦接收到阈值数量的秘密份额,第一数据处理系统就可以解密所述秘密份额,以恢复加密交互数据。第一数据处理系统可以将加密交互数据发送到第二数据处理系统,该第二数据处理系统可以通过使用与公钥相对应的私钥来解密所述加密交互数据。因此,第二数据处理系统可以在不揭露PII的情况下促进交互数据的相关。

例如,诸如个人计算机、智能移动电话或平板电脑之类的在计算设备上的应用(例如,web浏览器)可以导航到由内容发布者维护的网页(或其它在线文档)。内容发布者可以包括由内容提供者产生的内容项。计算设备可以标识(i)与内容项的交互、和/或(ii)作为与内容项的交互的结果的与内容提供者的交互。所述交互可以与标识符相关联。计算设备可以将关于在线内容在生成交互时的有效性的标识符和/或附加信息安全地传送到第一数据处理系统(例如,隐私代理)。第一数据处理系统可以使所述信息匿名化,并且将其传送到第二数据处理系统。第二数据处理系统可以提供关于所述交互的更详细的信息,包括是否发生购买、购买了什么项目(如果有的话)以及项目的价格。

现在参照图1,根据说明性实施方式示出了用于安全地使来自不同实体的数据相关的系统100。系统100包括客户端设备10、内容发布者设备20、内容提供者设备30、第一数据处理系统300和第二数据处理系统400。在各种实施方式中,系统100的组件通过网络60进行通信。网络60可以包括诸如互联网、局域网、广域网、城域网或其它区域网络、内联网、卫星网络的计算机网络、诸如语音或数据移动电话通信网络的其它计算机网络、及其组合、或任何其它类型的电子通信网络。网络60可以包括或构成显示网络(例如,互联网上与内容放置或者搜索引擎结果系统相关联的、或者有资格包括第三方内容项作为内容项放置活动的一部分的可用信息资源的子集)。在各种实施方式中,网络60促进在系统100的组件之间的安全通信。作为非限制性示例,网络60可以实施传输层安全性(TLS)、安全套接字层(SSL)、超文本传输协议安全性(HTTPS)、和/或任何其它安全通信协议。

客户端设备10可以是个人计算机、移动计算设备、智能电话、平板电脑、或任何其它设备,以促进接收、显示在线内容(例如,网页)以及与之交互。客户端设备10可以包括用于接收和显示在线内容以及接收与在线内容的用户交互的应用200。例如,应用200可以是web浏览器。

在各种实施方式中,应用200与内容发布者设备20和内容提供者设备30交互以接收在线内容。例如,应用200可以从内容发布者设备20接收信息资源22。在各种实施方式中,内容发布者设备20与内容发布者相关联。信息资源22可以是基于web的内容项,例如网页或其它在线文档。信息资源22可以包括指令(例如,脚本、可执行代码等),其当由应用200解释时使应用200向用户显示诸如可交互网页的图形用户界面。在各种实施方式中,信息资源22包括一个或多个内容请求者24。内容请求者24可以促进包括除内容发布者设备20所提供的内容以外的内容。例如,在线文档可以包括被配置用于显示营销项目(例如广告)的槽。内容请求者24可以包括被请求的内容的位置。在一些实施方式中,内容请求者24是动态的。例如,内容请求者24可以与一个或多个第三方交互以确定要包括什么内容。作为具体示例,可以在移动设备上显示包括内容请求者24的信息资源22。内容请求者24因此可以请求特定于移动设备的内容(例如,具有不同大小等)。

内容提供者设备30可以托管内容项32。在各种实施方式中,内容提供者设备30与内容提供者相关联。内容提供者设备30可以是或包括第三方计算系统。例如,内容提供者设备30可以是与零售商相关联的服务器。内容项32可以是与第三方相关联的营销项目(例如,广告)。附加地或可替代地,内容项32可以包括将被配置为包括在信息资源22内的其它内容。例如,第一内容项32可以是被配置为链接到社交媒体平台的“共享按钮”,并且第二内容项32可以是被配置为显示新闻标题的RSS新闻提要。

内容项32可以包括标识符34。在各种实施方式中,标识符34唯一地标识每个内容项32。在一些实施方式中,标识符34与营销活动相关联。例如,对体育活动感兴趣的用户可以接收与体育用品相关联的内容项32,并且每个内容项32可以共享标识符34。在一些实施方式中,应用200存储与接收到的信息资源22相关联的标识符34。下面参照图2至图4详细地描述标识符34的分区。

应用200被示出为包括私有ID电路210、群组ID电路220、内容交互电路230和编码电路240。私有ID电路210可以促进私有ID的生成。私有ID可以唯一地标识客户端设备10。另外地或替代地,私有ID可以唯一地标识与客户端设备10相关联的用户。作为具体示例,用户可以具有第一客户端设备10和第二客户端设备10。第一客户端设备10和第二客户端设备10各自可以具有安装在其上的应用200(例如,第一客户端设备10具有应用200的第一安装,且第二客户端设备10具有应用200的第二安装)。私有ID电路210可以为第一和第二客户端设备10产生私有ID。所述私有ID对于第一和第二客户端设备10两者可以是相同的,从而唯一地标识用户以及第一和第二客户端设备10作为所述用户的客户端设备10。在一些实施方式中,由客户端设备10共享的交互数据包括私有ID。在各种实施方式中,私有ID电路210与一个或多个外部系统/组件交互以生成私有ID。

群组ID电路220可以促进群组ID的生成。群组ID可以唯一地标识客户端设备10的群组。例如,群组ID可以通过软件版本、设备类型、设备配置或任何其它因素来对客户端设备10进行分组。附加地或可替代地,群组ID可以唯一地标识用户群组。例如,群组ID可以按地理位置、人口统计信息、兴趣或任何其它因素对用户进行分组。在一些实施方式中,群组ID电路220可以促进多个群组ID的生成。例如,群组ID电路220可以促进生成用于指示用户在中西部的第一群组ID、用于指示用户的客户端设备10是智能电话的第二群组ID、以及用于指示用户的年龄超过18岁的第三群组ID。在一些实施方式中,由客户端设备10共享的交互数据包括一个或多个群组ID。在各种实施方式中,群组ID电路220与一个或多个外部系统/组件交互以生成私有ID。

内容交互电路230被配置为检查用户与信息资源22和/或内容项32的交互并且生成交互数据。例如,应用200可以向用户显示具有与标识符34相关联的第三方内容项32的网页。内容交互电路230可以存储标识符34。然后,用户可以(例如,使用应用200)访问与第三方相关联的不同网页并且购买项目。作为响应,内容交互电路230可以生成交互数据。所述交互数据可以包括标识符34和/或与所购买的项目有关的信息。在各种实施方式中,内容交互电路230在交互数据中包括私有ID和/或一个或多个群组ID。本公开的系统和方法涉及交互数据的安全传输。例如,应用200可以安全地将交互数据传送到第二数据处理系统400,而无需揭露交互数据的来源。下面参照图2至图4详细地描述内容交互电路。

编码电路240被配置为对交互数据进行编码。例如,编码电路240可以对交互数据进行加密。附加地或可替代地,编码电路240可以对交互数据执行各种省略功能。例如,编码电路240可以移除标识符(例如,IP地址等)、对交互数据进行分段、添加噪声、或者执行其它功能以使交互数据匿名化。编码电路240可以包括哈希电路242、第一加密电路244和第二加密电路246。

哈希电路242可以对输入数据实施一个或多个哈希函数以产生哈希数据。哈希电路242可以实施任何哈希函数。作为非限制性示例,哈希电路242可以实施SHA-2、Scrypt、Balloon和/或Argon2。在一些实施方式中,哈希电路242促进多轮哈希。例如,哈希电路242可以对数据项执行第一SHA-2哈希以产生哈希数据项,并且可以对所述哈希数据项执行第二Scrypt哈希以产生双重哈希数据项。

第一加密电路244可以对输入数据实施一个或多个加密函数以产生加密数据。在一些实施方式中,第一加密电路244实施非对称加密函数。例如,第一加密电路244可以实施Rivest-Shamir-Adleman(RSA)密码系统。在各种实施方式中,第一加密电路244与哈希电路242交互以对输入数据进行加密。例如,哈希电路244可以产生由第一加密电路244用来加密输入数据的种子。在一些实施方式中,第一加密电路244实施对称加密。附加地或替代地,第一加密电路244可以组合多个加密函数。例如,第一加密电路244可以将对称加密密钥不对称地加密,并且然后使用所述对称加密密钥对输入数据进行对称加密。

第二加密电路246可以对输入数据实施一个或多个阈值加密函数以产生阈值加密数据。作为非限制性示例,第二加密电路246可以实施数字签名算法(DSA)、椭圆曲线数字签名算法(ECDSA)和/或Shamir秘密共享(SSS)算法。第二加密电路246可以与一个或多个外部系统交互以执行阈值加密。例如,第二加密电路246可以与第一数据处理系统300参与不经意伪随机函数(OPRF)协议,以产生由第二加密电路246用来阈值加密输入数据的种子。参照图5至图13详细地描述第二加密电路246。

第一数据处理系统300可以促进交互数据的匿名化。在各种实施方式中,第一数据处理系统300从客户端设备10接收交互数据,并且对交互数据执行各种功能以使交互数据的身份或来源模糊。在各种实施方式中,第一数据处理系统300接收数据并使数据匿名化以产生不同私有数据。不同私有数据(例如不同私有数据集)确保观察者不能标识在所述数据集中是否包括来自特定个人的数据。例如,计算系统可以从许多个人接收数据并且发布关于该数据的聚合信息。如果观察者无法标识是否有任何个人(例如提供数据的那些人和未提供数据的那些人)提供了用于生成所述聚合信息的数据,则聚合信息是不同私有的。在各种实施方式中,第一数据处理系统300是安全环境,使得它不允许访问非匿名化数据。第一数据处理系统300可以是服务器、分布式处理集群、云处理系统或任何其它计算设备。第一数据处理系统300可以包括或执行至少一个计算机程序或至少一个脚本。在一些实施方式中,第一数据处理系统300包括软件和硬件的组合,例如被配置为执行一个或多个脚本的一个或多个处理器。

第一数据处理系统300被示出为包括具有处理器320和存储器330的处理电路310。存储器330可以具有存储在其上的指令,该指令当由处理器320执行时使处理电路310执行本文所述的各种操作。可以使用软件、硬件或其组合来实施本文描述的操作。处理器320可以包括微处理器、ASIC、FPGA等、或其组合。在许多实施方式中,处理器320可以是多核处理器或处理器阵列。处理器320可以实施或促进安全环境。例如,处理器320可以实施软件保护扩展(SGX)以在存储器330中定义私有区域(例如,安全飞地)。存储器330可以包括但不限于电子、光学、磁性或任何其它能够向处理器320提供程序指令的存储设备。存储器330可以包括软盘、CD-ROM、DVD、磁盘、存储芯片、ROM、RAM、EEPROM、EPROM、闪存、光学介质、或处理器320可以从中读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言(诸如但不限于,C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python和VisualBasic)的代码。

存储器330可以包括OPRF电路332、防止欺诈电路334、解密电路336和混洗电路338。OPRF电路332可以实施OPRF。在各种实施方式中,OPRF电路332可以用作随机预言机。在一些实施方式中,OPRF电路332与应用200交互以产生或促进密码原语。例如,OPRF电路332可以与应用200交互以产生由编码电路240用来编码交互数据的种子。下面参照图5至图13详细地描述OPRF电路332。

防止欺诈电路334可以分析交互数据以标识并且防止欺诈数据。例如,恶意用户可以使用客户端设备10提交伪造的交互数据,并且防止欺诈电路334可以分析伪造的交互数据以将其标识为欺诈数据。在一些实施方式中,防止欺诈电路334促进数字签名。作为非限制性示例,防止欺诈电路334可以实施或促进可验证秘密份额(VSS)算法、聚合签名算法、Rabin签名算法和/或任何其它数字签名系统。在一些实施方式中,防止欺诈电路334促进认证并且确保交互数据的完整性。防止欺诈电路334将在下面参照图5至图13进行详细描述。

解密电路336可以接收加密数据并且将其解密,以产生未加密数据。在各种实施方式中,解密电路336从客户端设备10接收加密数据。解密电路336可以解密阈值加密数据。阈值加密可以保证最小阈值基数,从而确保各个数据成为大量匿名化数据的一部分。附加地或替代地,解密电路336可以解密对称和/或非对称加密的数据。例如,解密电路336可以通过使用私钥来非对称解密第一加密数据以恢复交互共享密钥,并且使用该共享密钥以对称解密第二加密数据以恢复交互数据。在各种实施方式中,解密电路336产生加密密钥。所述加密密钥可以与系统100的其它组件(例如,第一加密电路244、第二加密电路246等)共享。附加地或替代地,解密电路336可以接收和/或包括一个或多个秘密(例如,密钥、代码等),以促进对来自不同实体的数据的解密。在一些实施方式中,解密电路336促进掺假加密数据的稳健恢复。例如,恶意用户可以通过使用客户端设备10提交伪造或不适当的秘密份额,并且解密电路336可以使用一个或多个恢复功能来恢复基础数据。作为非限制性示例,解密电路336可以实施或促进纠错码(ECC)、有限域评估技术和/或任何其它恢复操作。在各种实施方式中,解密电路336与防止欺诈电路334交互以执行恢复操作。

混洗电路338可以接收数据并执行各种模糊功能,以产生匿名化数据。作为非限制性示例,混洗电路338可以实施或促进移除隐式/间接标识符(例如,到达时间、顺序、始发IP地址等),执行批处理操作,引入噪声和/或执行任何其它匿名化操作。在各种实施方式中,混洗电路338对接收到的数据进行混洗(例如,重新排列,改变其顺序等),以产生混洗数据。例如,混洗电路338可以从第一源接收第一数据,并且从第二源接收第二数据,可以将第一和第二数据分别分成五段,并且可以将这十段混在一起以产生混洗数据。在一些实施方式中,混洗电路338实施批处理混洗算法。

第二数据处理系统400可以促进使来自不同实体的数据安全地相关。在各种实施方式中,第二数据处理系统400接收匿名化交互数据,并且生成关于匿名化交互数据的聚合信息。聚合信息可以描述多个或者分组的在线交互(例如,与多个内容项的交互)。附加地或可替代地,聚合信息可以描述个别在线交互(例如,与单个内容项的单个交互)。聚合信息可以包括唯一标识符(例如,标识符34等)。在一些实施方式中,标识符标识营销活动。附加地或可替代地,标识符可以唯一地标识每个在线交互。在一些实施中,聚合信息描述与内容项34相关联的一个或多个交互。例如,聚合信息可以包括在线交互的时间、日期和/或位置。由匿名化交互数据描述的交互可以包括查看内容项(例如,导航到其中呈现了内容项的网页、和/或确定在其上查看所述网页的设备的视口内呈现了该项目或该项目的一部分等),选择/点击内容项,将鼠标悬浮在内容项上、和/或与内容项32的其它交互。在各种实施方式中,第二数据处理系统400实施或促进密码操作。例如,第二数据处理系统400可以生成非对称加密公钥。第二数据处理系统400可以是服务器、分布式处理集群、云处理系统或任何其它计算设备。第二数据处理系统400可以包括或执行至少一个计算机程序或至少一个脚本。在一些实施方式中,第二数据处理系统400包括软件和硬件的组合,例如被配置为执行一个或多个脚本的一个或多个处理器。

第二数据处理系统400被示出为包括数据库410和处理电路420。数据库410可以存储接收到的匿名化交互数据。在一些实施方式中,数据库410存储标识符34。例如,在将内容项32提供给客户端设备10时,内容提供者设备30可以将标识符34和/或与内容项32相关联的其它信息发送给第二数据处理系统,以用于存储在数据库410中。标识符34可以在之后用于匿名化交互数据的相关。数据库410可以包括一个或多个存储介质。存储介质可以包括但不限于磁存储、光存储、闪存和/或RAM。第二数据处理系统400可以实施或促进各种API来执行数据库功能(即,管理存储在数据库410中的数据)。这些API可以是但不限于SQL、ODBC、JDBC和/或任何其它数据存储和操作API。

处理电路420包括处理器430和存储器440。存储器440可以具有存储在其上的指令,该指令在由处理器430执行时使处理电路420执行本文所述的各种操作。可以使用软件、硬件或其组合来实施本文描述的操作。处理器430可以包括微处理器、ASIC、FPGA等、或其组合。在许多实施方式中,处理器430可以是多核处理器或处理器阵列。处理器430可以实施或促进安全环境。例如,处理器430可以实施软件保护扩展(SGX)以在存储器440中定义私有区域(例如,安全飞地)。存储器440可以包括但不限于电子、光学、磁性存储设备、或任何其它能够向处理器430提供程序指令的存储设备。存储器440可以包括软盘、CD-ROM、DVD、磁盘、存储芯片、ROM、RAM、EEPROM、EPROM、闪存、光学介质、或处理器430可以从中读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言(诸如但不限于,C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python和Visual Basic)的代码。

存储器440可以包括分析电路442和解密电路444。分析电路442可以接收匿名化交互数据,并且产生关于匿名化交互数据的聚合信息。在各种实施方式中,分析电路442对接收到的数据执行统计操作,以产生描述接收到的数据的统计测量。例如,分析电路442可以确定与营销活动相关联的交互速率。

解密电路444可以接收加密数据并且将其解密,以产生未加密数据。在各种实施方式中,解密电路444从第一数据处理系统300接收加密数据。解密电路444可以解密非对称加密数据。附加地或替代地,解密电路444可以解密对称和/或阈值加密数据。在各种实施方式中,解密电路444产生加密密钥。加密密钥可以与系统100的其它组件(例如,客户端设备10、第一数据处理系统300等)共享。附加地或替代地,解密电路444可以接收和/或包括一个或多个秘密(例如,密钥、代码等),以促进对来自不同实体的数据的解密。

现在参照图2至图4,示出了根据说明性实施方式的用于安全地传送来自不同实体的数据和使其相关的改进的计算机架构。简而言之,内容提供者30可以经由客户端设备10向用户提供内容项32。内容项32可以特定于特定用户。用户可以与内容项32交互。例如,示出视频的用户可以点击该视频。期望测量与内容项32的用户交互。例如,提供视频的内容提供者设备30可能希望知道多少用户点击了视频。另外地或可替代地,用户可以与作为用户与内容项32的交互的结果的、由内容提供者设备30提供的其它内容交互。例如,示出了视频的用户可以稍后访问由内容提供者设备30维护的网站以购买在视频中突显的项目。在一些实施方式中,所述交互是在线会话或与在线会话相关联。因此,需要一种系统来安全地并且匿名化地测量用户与在线内容的交互,而不会揭露PII。如本文所述的新颖的密码学和计算机架构促进了安全地且匿名化地测量用户与在线内容的交互,而不揭露PII。

例如,图2是用于安全地传送来自不同实体的数据并且使其相关的系统110。在各种实施方式中,系统110实施编码混洗分析(ESA)架构。该ESA架构可以促进交互数据的匿名化。例如,客户端设备10可以与内容发布者设备20和/或内容提供者设备30交互,以生成交互数据。客户端设备10可以对交互数据进行编码,并且将其安全地传送到第一数据处理系统300以进行混洗。第一数据处理系统300可以对接收到的数据进行混洗(例如,对接收到的数据执行各种模糊操作),并且将混洗数据安全地传送到第二数据处理系统400。第二数据处理系统400可以分析接收到的数据(例如,对接收到的数据进行各种相关操作),并且产生聚合信息而不揭露PII。

在步骤502处,客户端设备10从内容发布者设备20接收信息资源22。在一些实施方式中,信息资源是网页。作为具体示例,使用浏览器(例如,应用200等)的用户可以导航到由搜索引擎(例如,内容发布者等)发布的网页(例如,信息资源22等)。附加地或可替代地,信息资源可以是第三方信息资源。作为具体示例,使用浏览器(例如,应用200等)的用户可以导航到内容发布者在其上发布了由内容提供者产生的内容项的第三方资源。在各种实施方式中,信息资源22包括内容请求者24。应用200可以基于内容请求者24而确定与信息资源22相关联的内容项32的位置。例如,内容请求者24可以包括用于供应内容项32的位置的标签(例如,URL地址、参数化字符串、内容域等)。另外地或可替代地,内容请求者24可以包括用于指示第三方以供应内容项32的标签。例如,内容请求者24可以包括用于指导应用200从第二数据处理系统400提取内容项34的标签,该第二数据处理系统400基于输入数据而动态地生成特定内容项34。在步骤504处,应用200向内容提供者设备30发送对由内容请求者24所指定的内容项32的请求。如上所述,在一些实施方式中,内容提供者设备30可以是第二数据处理系统400或者可以与之相关联。在步骤506处,内容提供者设备30将所请求的内容项32发送到客户端设备10。在各种实施方式中,内容项32包括标识符34。在一些实施方式中,内容提供者设备30记录标识符34和客户端设备10的标识符。例如,内容提供者设备30可以记录:标识符“20742280”被发送到客户端设备“2480802349”。

应用200可以显示接收到的信息资源22和/或内容项32。在一些实施方式中,应用200记录标识符34。使用应用200的用户可以与在线内容交互。例如,用户可以与接收到的内容项32交互。另外地或可替代地,用户可以与其它在线内容交互。例如,用户可以与和接收到的内容项32和/或内容提供者设备30相关联的在线内容交互。作为具体示例,用户可以接收视频内容项32,然后访问由提供了视频内容项32的内容提供者设备30维护的网站,以购买在视频内容项32中突显的产品。响应于与在线内容的用户交互,应用200可以生成交互数据。在各种实施方式中,所述交互数据包括与用户所交互的在线内容相关联的内容项32的标识符34。附加地或可替代地,交互数据可以包括其它信息。例如,所述交互数据可以包括与所述交互、客户端设备10和/或在线内容提供者相关联的数据。作为一个具体示例,对于用于描述购买的交互数据,所述交互数据可以描述用户所做的导致购买的一系列动作(例如点击)以及有关所述购买本身的信息(例如价格、购买的项目等)。

在各种实施方式中,客户端设备10对交互数据进行编码。编码可以包括对交互数据进行加密。附加地或替代地,可以使用其它编码操作。例如,客户端设备10可以从交互数据中移除标识符和/或将交互数据分解成段。在步骤510处,客户端设备10将编码交互数据传送到第一数据处理系统300。在各种实施方式中,客户端设备10安全地传送编码交互数据。例如,客户端设备10可以通过使用洋葱路由(onion routing)来传送编码交互数据,以模糊其IP地址。

第一数据处理系统300可以接收编码交互数据并且执行各种混洗操作。例如,第一数据处理系统300可以批处理接收到的编码交互数据。在一些实施方式中,第一数据处理系统300对接收到的编码交易数据实施最小阈值基数限制。例如,第一数据处理系统300可以丢弃不满足最小阈值的数据。作为具体示例,除非接收到的编码交易数据是从至少一千个不同的客户端设备10接收到的,则第一数据处理系统300可以丢弃该接收到的编码交易数据。另外地或可替代地,混洗操作可以包括移除隐式标识符、混洗(例如,改变来自不同来源的数据的顺序,混合来自不同来源的数据等)接收到的编码交互数据或任何其它匿名化操作。

在步骤512处,第一数据处理系统300将混洗交互数据传送到第二数据处理系统400。第二数据处理系统400可以接收混洗交互数据并且执行各种分析操作以产生聚合信息。例如,第二数据处理系统400可以执行统计分析,以确定与基础交互数据和/或基础在线交互相关的统计量度(例如,平均值、中位数、众数、标准偏差、方差等)。作为具体示例,第二数据处理系统400可以接收与第一内容项32相关联的混洗交互数据,并且可以确定由于与第一内容项32的交互而产生的任何购买的中位数值。应当理解,虽然描述了由第二数据处理系统400执行的分析的几个示例性实施方式,但是任何分析操作都在本公开的范围内。例如,聚合信息可以包括交互(例如,交易、点击次数、电话等)的总和、与每个交互相关联的值(例如,美元金额)的总和、以及元数据。在各种实施方式中,第二数据处理系统400可以执行解密操作。例如,第二数据处理系统400可以解密由客户端设备10在编码过程期间加密的交互数据。

现在参照图3,示出了根据实施方式的生成交互数据的方法500。简而言之,应用200响应于与用户相关联的交互而生成交互数据。在各种实施方式中,所述交互是在线交互。在各种实施方式中,在线交互与一个或多个内容项32相关联。另外地或可替代地,该交互可以是离线交互。在步骤502处,应用200从内容发布者设备20接收具有内容请求者24的信息资源22。在各种实施方式中,应用200接收多个信息资源22和/或多个内容请求者24。在步骤504处,应用200请求来自内容提供者设备30的内容项32。在各种实施方式中,应用200请求来自一个或多个内容提供者30的多个内容项32(例如,来自第一内容提供者设备30的第一内容项32,和来自第二内容提供者设备30的第二内容项32等)。在一些实施方式中,应用200与广告网络交互以请求内容项32(例如,应用200可以动态地提供内容项32等)。例如,内容请求者24可以包括对广告网络的第一查询,并且应用200可以执行第一查询以接收针对内容提供者设备30的第二查询,并且可以执行与内容提供者设备30的第二查询以接收内容项32。

在步骤506处,应用200从内容提供者设备30接收内容项32。应用200可以记录与所接收的内容项32相关联的标识符34。附加地或可替代地,应用200可以记录闪现(impression)。该闪现可以包括标识符34、和/或内容发布者设备20和/或内容提供者设备30的地址(例如,URL)。在步骤508处,应用200生成内容交互。在各种实施方式中,应用200响应于与在线内容的用户交互来生成内容交互。例如,应用200可以响应于用户观看视频内容项32而生成内容交互。在各种实施方式中,应用200基于一个或多个规则来生成内容交互。例如,应用200可以基于用户交互的阈值水平来生成内容交互。作为具体例子,视频内容项32可以被显示在HTML iframe中,并且应用200可以要求在生成内容交互之前所述iframe的阈值数目的像素被渲染并且对所述用户是可见的。在一些实施方式中,应用200响应于与内容提供者设备30相关联的用户交互来生成内容交互。例如,用户可以与和内容提供者设备30相关联的内容项32交互,然后访问由内容提供者设备30维护的网站,从而触发应用200以生成内容交互。

内容交互可以包括与客户端设备10、内容发布者设备20、信息资源22、内容提供者设备30、内容项32、在线交互、和/或与在线内容交互有关的任何其它信息相关联的内容交互数据。例如,内容交互数据可以包括用户在生成内容交互之前访问的网站列表。在各种实施方式中,内容交互数据包括标识符34。附加地或可替代地,内容交互数据可以包括交互类型。例如,应用200可以确定并且报告:内容交互是浏览后转换(VTC)或点击后转换(CTC)。在一些实施方式中,应用200实施匿名化操作。例如,应用200可以将噪声添加到内容交互数据。作为具体示例,应用200可以生成随机内容交互(例如,从未发生过的内容交互等)和/或针对现有内容交互的随机内容交互数据(例如,针对确实发生过的内容交互的随机内容交互数据等)。尽管在图3中未示出,但是在各种实施方式中,应用200将内容交互数据传送到第一数据处理系统300。

现在参照图4,示出了根据另一实施方式的生成交互数据的方法600。在一些实施方式中,方法600是方法500的步骤508的详细描述。在步骤602处,用户与和内容提供者设备30相关联的内容项32交互。例如,用户可以在处于社交媒体网站上时与用于烤面包机的广告交互。在一些实施方式中,与内容项32的交互包括查看内容项32。附加地或可替代地,与内容项32进行交互可以包括应用200渲染内容项32。在步骤604处,应用200记录闪现事件。闪现事件可以包括标识符34。附加地或可替代地,闪现事件可以包括一个或多个附加标识符。例如,闪现事件可以包括与内容项32相关联的内容发布者设备20和/或内容提供者设备30的URL。在一些实施方式中,应用200响应于内容项32满足一个或多个可见性要求,来记录闪现事件。在各种实施方式中,闪现事件由应用200存储在客户端设备10上。在一些实施方式中,闪现事件被传送到与内容项32相关联的内容提供者设备30。

在步骤606处,用户与和内容项32相关联的内容提供者设备30交互。例如,用户可以导航到由内容提供者设备30所维护的网站。附加地或可替代地,用户可以与由内容提供者设备30提供的其它在线内容交互。例如,用户可以访问第三方在线商店,并且购买与内容提供者设备30相关联的项目。在各种实施方式中,应用200将内容提供者设备30的标识符与所记录的标识符相匹配,以确定用户已与内容提供者设备30交互。作为具体示例,应用200可以记录内容提供者设备30的URL,然后确定用户导航到的未来网站是否与所记录的URL相匹配。在一些实施方式中,内容提供者设备30向应用200传送指示,以确定用户已经与内容提供者设备30交互。作为具体示例,内容提供者设备30可以记录客户端设备10的标识符,然后确定未来网站访问者的标识符是否与所记录的标识符相匹配,并且基于这些标识符相匹配而向客户端设备10传送指示。

在步骤608处,应用200接收交互报告请求。在各种实施方式中,应用200从与内容提供者设备30相关联的源接收交互报告请求。例如,由内容提供者设备30维护的网站可以将交互报告请求传送到应用200。在各种实施方式中,响应于用户与在线内容的交互来传送交互报告请求。例如,用户可以接收内容项32,并且稍后访问与用于提供内容项32的内容提供者设备30相关联的网站,并且该网站可以确定向用户提供了由内容提供者设备30提供的内容项32、并且将交互报告请求传送到与用户相关联的客户端设备10。在各种实施方式中,交互报告请求包括与如上所述的在线交互相关联的信息。

在步骤610处,应用200传送交互报告。在各种实施方式中,交互报告包括标识符34。应用200可以将交互报告传送到内容提供者设备30。另外地或可替代地,应用200可以将交互报告传送到其它地方。例如,应用200可以将交互报告传送到由交互报告请求所指定的位置。在一些实施方式中,应用200将交互报告传送到内容发布者设备20。在一些实施方式中,应用200实施或促进用于请求交互报告的界面。例如,外部实体可以使用API与应用200交互。作为具体示例,外部实体可以查询应用200以接收交互报告。

现在参照图5-15,示出了根据各种实施方式的用于通过使用秘密共享来安全地传送来自不同实体的数据并且使其相关的改进的计算机架构。简而言之,可以在系统110的ESA架构内实施秘密共享方案。例如,客户端设备10可以通过使用秘密共享方案来对交互数据进行加密,并且将所生成的秘密份额传送到第一数据处理系统300。第一数据处理系统300可以从多个客户端设备10接收秘密份额,并且一旦已经接收到阈值数目就解密所述秘密份额。无法访问(例如,无法解密)未收到阈值数目的秘密份额,从而强制实行最小阈值基数限制。

现在具体参照图5,示出了根据示例性实施方式的用于实施秘密共享方案以对交互数据进行加密的系统120。在各种实施方式中,秘密共享方案是Shamir秘密共享(SSS)算法。可以播种SSS算法。在一些实施方式中,客户端设备10从交互数据产生种子。例如,客户端设备10可以在交互数据上执行哈希操作以确定性地产生用于SSS算法的种子。在各种实施方式中,客户端设备10和第一数据处理系统300协同执行SSS算法。例如,客户端设备10可以利用第一数据处理系统300实施不经意伪随机函数(OPRF),以产生用于SSS算法的种子。在一些实施方式中,系统120实施可验证秘密共享(VSS)算法来加密交互数据。例如,系统120可以用同态加密来实施SSS算法。作为具体示例,系统120可以实施Feldman可验证秘密共享(FVSS)算法。

在各种实施方式中,系统120执行如上所述的步骤502-506。在步骤702处,第二数据处理系统400将加密密钥发送到客户端设备10。在各种实施方式中,加密密钥是非对称加密公钥。客户端设备10可以通过使用接收到的公钥来非对称地加密交互数据。附加地或替代地,客户端设备10可以通过使用秘密共享方案来加密交互数据。在一些实施方式中,客户端设备10通过使用秘密共享方案来加密所述非对称加密交互数据。例如,客户端设备10可以首先通过使用接收到的公钥来非对称地加密所述交互数据以生成加密交互数据,然后通过使用秘密共享方案对所述加密交互数据进行加密以生成秘密份额。在各种实施方式中,客户端设备10生成标签以标识秘密份额。标签可以在解密期间使用。

在步骤710处,客户端设备10将秘密份额传送至第一数据处理系统300。在一些实施方式中,步骤710包括传送附加信息。例如,客户端设备10可以传送标签和/或验证数据。第一数据处理系统300可以从多个客户端设备10接收秘密份额。在各种实施方式中,第一数据处理系统300在解密所述秘密份额之前等待直到已经接收到阈值数目的秘密份额为止。第一数据处理系统300可以解密所述秘密份额以恢复所述非对称加密交互数据。在一些实施方式中,秘密份额被分组解密。例如,每个秘密份额可以由标签标识,并且具有相似标签的秘密份额可以一起解密。在各种实施方式中,第一数据处理系统300可以对非对称加密互数据进行混洗,如上所述。

在步骤718处,第一数据处理系统300将混洗的非对称加密交互数据传送到第二数据处理系统400。第二数据处理系统400可以非对称地解密所述混洗的非对称加密交互数据以恢复交互数据。在各种实施方式中,第二数据处理系统400分析交互数据并且产生聚合信息如上所述。

现在参照图6,示出了根据实施方式的用于执行秘密份额的方法700。在各种实施方式中,系统120执行方法700。在各种实施方式中,方法700被实施为ESA架构的一部分。例如,ESA架构的编码和/或混洗组成可以包括方法700。在一些实施中,方法700是独立的(例如,与ESA架构分开地实施)。在步骤702处,客户端设备10从第二数据处理系统400接收公钥。如上所述,公钥可以是与由第二数据处理系统400所保持的非对称加密私钥相对应的非对称加密公钥。在步骤704处,客户端设备10通过使用公钥对数据项进行加密,以产生单个加密数据项。在各种实施方式中,所述数据项是以上参照图3-4描述的交互数据。在步骤706处,客户端设备10使用阈值加密函数对单个加密数据项进行加密以产生秘密份额。在各种实施方式中,阈值加密函数是如上所述的SSS算法。在一些实施方式中,步骤706由客户端设备10和第一数据处理系统300协作地执行。

在步骤708处,客户端设备10从单个加密数据项生成标签。在各种实施方式中,所述标签将秘密份额标识为群组的一部分。例如,通过使用阈值加密函数和第一种子所加密的单个加密数据项可以全部共享用于将它们标识为一组的第一标签,而通过使用第二种子所加密的那些数据项可以全部共享第二标签。在各种实施方式中,由标签所标识的每个群组对应于标识符34。例如,营销活动可以包括多个内容项32,每个内容项具有将它们标识为营销活动的一部分的标识符34。当与营销活动的内容项32之一相关联地生成在线交互时,所得的秘密份额可以包括用于将秘密份额标识为与营销活动相关联的群组的一部分的标签。在步骤710处,客户端设备10将秘密份额和标签传送到第一数据处理系统300。

在步骤712处,第一数据处理系统300接收多个秘密份额和多个标签。可以从不同的客户端设备10接收多个秘密份额和标签中的每一个。附加地或可替代地,单个客户端设备10可以发送许多秘密份额和伴随的标签。在步骤714处,第一数据处理系统300通过使用多个标签对多个秘密份额进行分组。例如,可以将具有用于指示第一群组的第一标签的第一秘密份额与具有用于指示第一群组的第二标签的第二秘密份额分组在一起,而可以将具有用于指示第二群组的第三标签的第三秘密份额自己分组。

在步骤716处,对于每个群组,第一数据处理系统300解密多个秘密份额以恢复单个加密数据项。在各种实施方式中,第一数据处理系统300通过使用多项式插值来解密多个秘密份额。在步骤718处,第一数据处理系统300将单个加密数据项传送到第二数据处理系统400。在各种实施方式中,单个加密数据项在被传送到第二数据处理系统400时缺乏PII。

在步骤720处,第二数据处理系统400接收单个加密数据项。在步骤722处,第二数据处理系统400通过使用私钥来解密单个加密数据以恢复数据项。在各种实施方式中,所述解密是非对称解密。在各种实施方式中,所述私钥是与上面的非对称加密公钥相对应的非对称加密私钥。

现在参照图6A中,详细地示出根据实施方式的通过使用阈值加密函数来加密单个加密数据项的步骤706。在各种实施方式中,通过使用SSS算法来对单个加密数据项进行加密。但是,应该理解,其它秘密共享方案也是可能的。此外,应该理解的是,尽管关于客户端设备10描述了图6A,但是在步骤706中可以涉及系统120的任何组件。

简而言之,(k,n)SSS算法通过产生n个秘密份额来加密秘密S(例如交互数据),使得k个秘密份额的任何子集都足以恢复所述秘密S。为了这样做,构建阶次k-1的多项式f(x)。例如,f(x)可以采取以下形式:

f(x)=a

其中,a

在步骤730处,客户端设备10生成数字空间。附加地或替代地,系统120的另一组件可以生成或促进数字空间的生成。例如,第一数据处理系统300可以与客户端设备10协作地交互以生成数字空间。在一些实施方式中,数字空间是域受限制的。例如,数字空间可以是大小为P的有限域F,其中P是质数,使得P大于S的大小。在一些实施方式中,该数字空间随机地生成(例如,选择满足域限制的随机数字空间等)。在一些实施方式中,数字空间是预定的。

在步骤732处,客户端设备10从数字空间秘密地挑选多项式系数a

在步骤734处,客户端设备10构造阈值秘密共享多项式。在各种实施方式中,步骤734包括构造f(x)。例如,客户端设备10可以将多项式系数与单个加密数据项组合以产生f(x)。在步骤736处,客户端设备10在评估点评估所述阈值秘密共享多项式f(x)以产生秘密。在各种实施方式中,所述秘密是f(i)。在一些实施方式中,评估点是随机的。附加地或替代地,系统120可以动态地确定评估点。例如,每个唯一客户端设备10可以使用通过利用伪随机函数所确定的唯一评估点。在步骤738处,客户端设备10将秘密和评估点组合成秘密份额。在各种实施方式中,秘密份额是元组(i,f(i))。元组(i=0,f(0))不是有效的秘密份额(例如,评估点从不等于零)。

现在参照图7,示出根据实施方式的阈值秘密共享多项式806的图800。多项式806可以对应于f(x)。多项式806可以存在于由x域802和y域804定义的字段F中。在各种实施方式中,x域802和/或y域804是域受限制的。例如,x域802和y域804可以是由整数取模P构建的有限域。作为具体示例,x域802和y域804可以是由整数取模P构建的有限域,其中P=2

现在参照图8,示出根据实施方式的用于实施秘密共享方案的系统130,所述秘密共享方案包括确定性种子以加密交互数据。在各种实施方式中,系统130执行如上所述的步骤502-506。系统130可以通过对确定性种子的包含而实施上述秘密共享方案。简而言之,确定性种子是从源数据(例如,交互数据等)确定性地生成的、并且用作秘密共享方案的一部分的种子。

包含确定性种子的秘密共享方案比现有系统提供许多益处。在一些实施方式中,安全地传送数据和使其相关包括通过向数据添加噪声来使数据粗化。例如,系统可以将随机高斯噪声添加到用户数据、中间值或最终输出,从而使统计推断对用户数据不敏感(例如,统计推断不揭露PII)。然而,噪声的添加会导致数据的标准偏差增加,从而需要更大的样本大小以达到统计上确信的结果。例如,在最佳情况下,向用户数据添加噪声可能会使标准偏差的幅值增加所报告计数的平方根

一种实施方式可以包括秘密共享方案,该秘密共享方案包括通过使用交互数据所生成的确定性种子。例如,可以通过使用交互数据来确定性地生成确定性种子,并且该确定性种子可以用作秘密共享方案的输入。在各种实施方式中,可以通过将交互数据输入到哈希函数中来生成确定性种子。

另一种实施方式可以包括秘密共享方案,该秘密共享方案包括通过使用OPRF协议所生成的确定性种子。例如,可以通过使用交互数据参与伪随机函数来确定性地生成确定性种子,并且该确定性种子可以用作秘密共享方案的输入。在各种实施方式中,客户端设备10与第一数据处理系统300参与OPRF协议。例如,客户端设备10可以哈希交互数据并且将哈希交互数据发送到第一数据处理系统300。第一数据处理系统300可以哈希接收到的数据,并且将其发回到客户端设备10,以用于秘密共享方案的输入。在一些实施方式中,确定性种子是由第一数据处理系统300所生成的主密钥。在一些实施方式中,所使用的哈希函数是慢哈希函数。例如,可以使用Scrypt慢哈希函数来生成主密钥。

另一种实施方式可以包括将标识符绑定到交互数据,并且基于交互数据和绑定的标识符来确定性地生成确定性种子。例如,如上所述,私有ID和/或群组ID可以绑定到交互数据。将标识符绑定到交互数据可以促进强制实行最小阈值基数限制。在各种实施方式中,客户端设备10确定标识符,并且将该标识符附加到交互数据。客户端设备10可以对交互数据和附加的标识符进行哈希,以产生可以用作秘密共享方案的输入的种子。

另一种实施方式可以包括可验证秘密共享方案,该方案包括通过使用交互数据所生成的确定性种子。例如,可以通过使用交互数据来确定性地生成确定性种子,并且该确定性种子可以用作秘密共享方案的输入。然后可以验证(例如,认证)秘密份额。作为具体示例,客户端设备10可以与第一数据处理系统300参与OPRF协议以产生确定性种子。客户端设备10可以使用确定性种子作为秘密共享方案的输入,以产生秘密份额。第一数据处理系统300可以验证秘密份额以确保它们的真实性(例如,它们未被篡改等)。

仍然参照图8,客户端设备10可以生成交互数据。在步骤702处,第二数据处理系统400可以将非对称加密公钥传送到客户端设备10。在各种实施方式中,客户端设备10可以通过使用该公钥来非对称地加密交互数据,以产生单个加密数据。在各种实施方式中,客户端设备10基于交互数据生成确定性种子。例如,客户端设备10可以哈希交互数据以产生确定性种子。附加地或替代地,客户端设备10可以与第一数据处理系统300协作地交互以产生确定性种子(例如,步骤902)。例如,客户端设备10可以与第一数据处理系统300参与OPRF协议以产生确定性种子。客户端设备10可以使用确定性种子作为秘密共享方案的输入以产生秘密份额。附加地或可替代地,客户端设备10可以基于单个加密数据生成确定性种子。在一些实施方式中,客户端设备10可以生成如上所述的标签。在步骤710处,客户端设备10将秘密份额和/或标签传送到第一数据处理系统300。第一数据处理系统300可以执行如上所述的各种匿名化操作以对接收到的数据进行匿名化。在各种实施方式中,第一数据处理系统通过使用多项式插值来解密多个接收到的秘密份额,如上所述。在一些实施方式中,第二数据处理系统400代替第一数据处理系统300解密多个接收到的秘密份额。在步骤718处,第一数据处理系统300将未加密数据传送到第二数据处理系统400,在第二数据处理系统400中可以对该未加密数据进行分析以产生聚合信息,如上所述。在一些实施方式中,第一数据处理系统300将多个秘密份额传送到第二数据处理系统400,并且第二数据处理系统400解密接收到的多个秘密份额。

现在参照图9,示出了根据实施方式的通过使用确定性种子来实施秘密共享方案以加密交互数据的方法900。在各种实施方式中,系统130执行方法900。在一些实施方式中,上述ESA架构包括方法900。例如,ESA架构的编码和混洗步骤可以包括方法900。在步骤902处,客户端设备10参与确定性函数以产生确定性种子。在各种实施方式中,客户端设备10使用单个加密数据项来产生确定性种子,如上所述。作为非限制性示例,客户端设备10可以将标识符附加到通过非对称地加密交互数据而产生的单个加密数据项,并且哈希该单个加密数据项和附加的标识符以产生确定性种子。在步骤904处,客户端设备10通过使用阈值加密函数和确定性种子来对单个加密数据项进行加密,以产生秘密份额。在步骤906处,客户端设备10从单个加密数据项和确定性种子生成标签。例如,客户端设备10可以将确定性种子附加到单个加密数据项,并且可以哈希该组合以产生标签。附加地或替代地,客户端设备10可以将标识符(例如,私有ID、群组ID等)附加到单个加密数据项,并且可以哈希该组合以产生标签。

现在参照图9A,示出了根据实施方式的使用VSS算法的步骤902。在一些实施方式中,VSS算法是可验证阈值签名算法。在步骤920处,第一数据处理系统300生成中间密钥。所述中间密钥可以是RSA公钥。例如,第一数据处理系统300可以生成公钥(N,e),其中,N是两个质数p

在步骤924处,客户端设备10接收中间密钥。在步骤926处,客户端设备10通过使用中间密钥和单个加密数据项来计算中间值。所述中间值可以被计算为:

ρ=(r*G1(m))

其中ρ是中间值,r是随机值,G1()是哈希函数,并且m是单个加密数据项。在各种实施方式中,r是从整数取模N中选择的。在步骤928处,客户端设备10将中间值ρ传送到第一数据处理系统300。

在步骤930处,第一数据处理系统300接收中间值ρ。在步骤932处,第一数据处理系统300使用中间值ρ来计算测试值。测试值可以被计算为:

γ=ρ

其中,r是测试值并且d是RSA秘密指数。d可以被计算为:

其中,d被选择使得

在步骤936处,客户端设备10接收测试值r。在步骤938处,客户端设备10从测试值r计算测试种子。测试种子可以被计算为:

其中,τ是测试种子。在步骤940处,客户端设备10测试所述测试种子τ。测试τ可能包括计算

现在参照图10,示出根据实施方式的系统140,所述系统通过使用第三数据处理系统302来实施包括确定性种子的秘密共享方案以加密交互数据。系统140可以类似于本文描述的那些系统(例如,系统110、系统120、系统130等),但是可以在第一数据处理系统300和第三数据处理系统302之间划分ESA混洗操作和确定性种子生成。例如,客户端设备10可以与第三数据处理系统302参与OPRF协议,如上所述。客户端设备10可以将秘密份额传送到第一数据处理系统300,并且第一数据处理系统300可以在将混洗数据传送到第二数据处理系统400以进行分析之前执行如上所述的混洗操作。通过在第一数据处理系统300和第三数据处理系统302之间划分ESA混洗操作和确定性种子生成,系统140限制各方(例如,第一数据处理系统300,第三数据处理系统302)可以了解接收到的数据的信息量,从而进一步保护PII。此外,系统140通过减少对数据的离散访问,来防止恶意方和/或受害方(例如,第一数据处理系统300),从而增加系统冗余度和鲁棒性。

在步骤902处,客户端设备10可以与第三数据处理系统302参与OPRF协议。第三数据处理系统302可以共享本文描述的第一数据处理系统300的特征。在各种实施方式中,第三数据处理系统302与第一数据处理系统300分开(例如,第三数据处理系统302和第一数据处理系统300都不能访问彼此或与彼此相关的数据等)。在一些实施方式中,第三数据处理系统302和第一数据处理系统300作为隔离环境存在于同一系统中。例如,第三数据处理系统302和第一数据处理系统300可以是服务器的存储器内的软件保护扩展安全飞地。客户端设备10可以通过使用与第三数据处理系统302合作生成的种子来加密交互数据和/或单个加密数据项,以生成秘密份额。在步骤710处,客户端设备710将秘密份额传送到第一数据处理系统300。如上所述,第一数据处理系统300可以将接收到的数据解密、混洗并且传送到第二数据处理系统400,该第二数据处理系统400分析所传送的数据以产生聚合结果。

现在参照图11-14,示出了通过使用OPRF协议和确定性种子对交互数据的安全传输和相关的非限制性示例性实施方式。简而言之,图11示出用于使用OPRF协议和确定性种子来安全地传送交互数据和使之相关的系统150。系统150可以类似于本文所述的系统(例如,系统110、系统120、系统130、系统140等)。图12示出了如由系统150实施的用于安全地传输交互数据和使之相关的方法1100。图13示出了如由系统150实施的用于生成可验证秘密份额的方法1200。图14示出了由系统150实施的用于验证和解密可验证秘密份额的方法1300。

现在具体参照图11-12,可以如上面详细描述的那样执行步骤502-506。在各种实施方式中,内容交互电路230生成交互数据。此外,私有ID电路210和/或群组ID电路220可以产生与交互数据相关联的一个或多个私有ID和/或群组ID。在步骤702处,第二数据处理系统400可以将非对称加密公钥传送到客户端设备10。在各种实施方式中,解密电路444生成非对称加密公钥。在步骤704处,客户端设备10加密交互数据以产生单个加密数据项。在各种实施方式中,第一加密电路244对交互数据进行加密。附加地或可替代地,第一加密电路244和哈希电路242可以进行交互,以对交互数据进行加密。例如,加密电路244可以经由哈希电路242生成在加密期间使用的哈希值。在步骤1102处,客户端设备10与第一数据处理系统300参与OPRF协议,以产生确定性种子。在各种实施方式中,第二加密电路246和OPRF电路332进行交互以执行OPRF协议。在步骤1104处,客户端设备10通过使用确定性种子对单个加密数据项进行加密,以产生秘密份额。在各种实施方式中,第二加密电路246通过使用确定性种子对单个加密数据项进行加密以,产生秘密份额。在步骤1106处,客户端设备10将秘密份额传送到第一数据处理系统300。

在步骤1108处,第一数据处理系统300接收多个秘密份额。在各种实施方式中,第一数据处理系统300从多个客户端设备10接收多个秘密份额。在步骤1110处,第一数据处理系统300处理多个秘密份额以产生经处理的数据。在各种实施方式中,解密电路336解密多个秘密份额以产生经处理的数据。在各种实施方式中,经处理的数据是针对其接收到阈值数量的秘密份额的单个加密数据项。在步骤1112处,第一数据处理系统300对经处理的数据进行混洗。在各种实施方式中,混洗电路338对经处理的数据进行混洗。在各种实施方式中,混洗电路338通过重新布置经处理的数据的顺序、和/或混合来自不同群组的经处理的数据,来对经处理的数据进行混洗。在步骤1114处,第一数据处理系统300将经处理的数据传送到第二数据处理系统400。

在步骤1116处,第二数据处理系统400接收经处理的数据。在步骤1118处,第二数据处理系统400通过使用与在步骤702期间传送的非对称加密公钥相对应的非对称加密私钥,来解密经处理的数据,以产生解密的经处理的数据。在各种实施方式中,解密电路444对经处理的数据进行解密。在各种实施方式中,解密的经处理的数据包括针对其接收到阈值数量的秘密份额的交互数据。解密的经处理的数据可能缺乏PII。在步骤1120处,第二数据处理系统400基于解密的经处理的数据生成聚合信息。在各种实施方式中,分析电路442执行各种分析操作以产生聚合信息。在各种实施方式中,聚合信息包括共享第一特征的秘密份额的数量的计数。附加地或可替代地,聚合信息可以包括交互(例如,交易,点击,电话呼叫等)的总和、与每个交互相关联的值的总和(例如,美元金额)、和/或元数据。在一些实施方式中,可以将聚合信息保存在数据库410中。

现在具体参照图13,示出了根据实施方式的如由系统150实施的生成可验证秘密份额的方法1200。在步骤1202处,内容交互电路230准备数据项。在一些实施方式中,数据项是如本文所述的交互数据。在各种实施方式中,交互数据是标识符34。另外地或可替代地,交互数据可以包括其它标识符,诸如由私有ID电路210生成的一个或多个私有ID、和/或由群组ID电路220生成的一个或多个群组ID。在一些实施方式中,交互数据包括附加信息,诸如交互类型和/或一个或多个地址位置(例如,目标网页URL、报告URL等)。例如,内容交互电路230可以通过将由群组ID电路220所生成的多个群组ID附加到标识符34上来准备数据项。

在步骤1204处,第一加密电路244使用由解密电路444所生成的非对称加密公钥来对数据项进行加密,以产生单个加密数据项。在各种实施方式中,解密电路444使用RSA密码系统对数据项进行加密。在各种实施方式中,第一加密电路244将地址位置附加到单个加密数据项。例如,第一加密电路244可以将报告URL附加到单个加密数据项。在一些实施方式中,所述报告URL确定第二数据处理系统400在何处传送聚合信息。作为具体示例,内容提供者设备30可以经由所述报告URL来指定位置,以接收关于营销活动的有效性的聚合信息。

在步骤1206处,哈希电路242对单个加密数据项进行哈希以产生共享密钥。在各种实施方式中,哈希电路242利用诸如SpookyHash的快速哈希函数对单个加密数据项进行哈希。在步骤1208处,第二加密电路246使用共享密钥生成数字空间。例如,所述数字空间可以是对共享密钥取模的整数。在步骤1210处,第二加密电路246通过使用单个加密数据项和从数字空间中选取的系数来生成阈值秘密共享多项式。例如,所述系数可以是a

在步骤1212处,哈希电路242利用由私有ID电路210所生成的私有ID对单个加密数据项进行哈希以产生评估点。在各种实施方式中,哈希电路242在哈希之前将私有ID附加到单个加密数据项,从而使评估点对客户端设备10唯一。在各种实施方式中,评估点是如以上参照图6A所述的i。在步骤1214处,第二加密电路246在评估点评估多项式以产生第一密钥的一半。在各种实施方式中,第一密钥的一半是如以上参照图6A所述的f(i)。在步骤1216处,第二加密电路246将第一密钥的一半与评估点组合以产生加密秘密份额。在各种实施方式中,加密秘密份额是如以上参照图6A所述的元组(i,f(i))。在步骤1218处,第二加密电路246基于共享密钥(shared key)生成一个或多个验证份额c

其中,c

现在具体参照图14,示出了根据实施方式的如由系统150实施的验证和解密所述秘密份额的方法1300。在步骤1302处,防止欺诈电路334通过将一个或多个验证份额与共享密钥进行比较,来验证秘密份额。将一个或多个验证份额与共享密钥进行比较可以包括计算:

其中,t是第一数据处理系统300接收到的秘密份额的数量。在各种实施方式中,t是与由第一数据处理系统300接收到的群组相对应的秘密份额的数量。例如,每个秘密份额可以用群组ID进行标记,并且t可以是具有相同群组ID的秘密份额的数量。如果防止欺诈电路334确定了

在步骤1304处,解密电路336基于接收到的秘密份额重构阈值秘密共享多项式。例如,可以通过使用多项式插值来组合具有相似标签(例如,群组ID等)的秘密份额,以恢复阈值秘密共享多项式。在步骤1306,解密电路336从重构的阈值秘密共享多项式中提取单个加密数据项。在各种实施方式中,单个加密数据项对应于如上所述的a

现在参照图15,示出了根据实施方式的包括防止欺诈和恢复的秘密共享方案的系统160。系统160可以类似于本文所述的那些系统(例如,系统110、系统120、系统130、系统140、系统150等)。在各种实施方式中,系统160包括多个第一数据处理系统304。例如,系统160可以包括100个第一数据处理系统304。第一数据处理系统304可以类似于第一数据处理系统300。在各种实施方式中,系统160类似于上述的系统150进行操作。第一数据处理系统304中的每个可以从客户端设备10接收秘密份额,并且解密秘密份额以恢复单个加密数据项。在各种实施方式中,第一数据处理系统304中的每个可以比较它们各自的恢复的单个加密数据项。第一数据处理系统304可以对真实的单个加密数据项建立共识,并且可以将真实的单个加密数据项传送到第二数据处理系统400。有利地,通过比较从许多第一数据处理系统304中恢复的单个加密数据项,系统160相对于各个妥协的第一数据处理系统300而言是鲁棒的。例如,如果第一数据处理系统300从秘密份额中不正确地恢复单个加密数据项,和/或如果第一数据处理系统300被恶意妥协,则由第二数据处理系统400生成的聚合信息可能是非法的。然而,在许多第一数据处理系统304之间建立共识,确保了大多数第一数据处理系统304将必须不适当地恢复单个加密数据项和/或被恶意妥协以影响聚合信息,从而提高了系统的鲁棒性和聚合信息的真实性。

在各种实施方式中,系统160可以促进其它防止欺诈和/或鲁棒恢复技术。例如,客户端设备10和/或第一数据处理系统300可以实施ECC。例如,第二加密电路246可以将秘密份额构造为Reed-Solomon代码。通过使用Reed-Solomon代码,解密电路336可以通过使用Berlekamp-Welch算法校正多达

现在参照图16,示出了根据说明性实施方式的用于保护用户隐私的过程1600。第一数据处理系统300和第二数据处理系统400可以被配置为执行过程1600的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程1600。

步骤1610包括:在多个客户端设备10的每个客户端设备处,响应于与内容项的每次交互,将与该内容项相关联的标识符和随机值传送到第一计算系统。第一计算系统可以与如上所述的第一数据处理系统300相同或相似。第一计算系统存储标识符和与标识符相关联的随机值。所述标识符标识与内容项相关联的内容标识符。

步骤1620包括,在多个客户端设备10中的每个客户端设备处,响应于与内容项有关的转换动作,向第二计算设备发送随机值。第二计算设备可以类似于如上所述的第二数据处理系统400。客户端设备10确定在转换动作之前是否已经发生了与内容项的交互。响应于确定在转换动作之前已经发生了与内容项的交互,客户端设备10将最后生成的随机值发送到第二数据处理系统400。响应于确定没有发生与内容项的先前交互,客户端设备10将不同随机值传送到第二数据处理系统400。

步骤1630包括通过使用由多个客户端设备10传送到第一数据处理系统300和第二数据处理系统400的随机值来在第一数据处理系统300和第二数据处理系统400之间执行阈值基数协议。在一些实施方式中,对于每个内容标识符,第一数据处理系统300和第二数据处理系统400运行阈值基数协议。第二数据处理系统400输入它已经收集的所有令牌。第一数据处理系统300仅输入与内容标识符相关联的令牌。只有当相交基数高于预定阈值时,第一数据处理系统300才接收相交基数。

在一些实施方式中,加扰电路用于对来自第一数据处理系统300和第二数据处理系统400的两个输入集合进行排序。加扰电路处理线性扫描以计数在所述交互中有多少项。

在一些实施方式中,批处理技术用于将两个大集合实质上分割成较小的箱(bin),其中保证将相等值分配给相应箱。在一些实施方式中,哈希技术(例如,布谷鸟(Cuckoo)哈希)用于每个箱填充到较小的大小(例如,logN大小)。然后,在每个箱上运行相交基数协议,并且给每方(例如,第一和第二计算系统)输出算术份额。每方在本地计算其份额的总数。双方运行两方协议,该两方协议检查总计数是否超过阈值。如果总计数高于阈值,则将数据项释放到第一计算系统。当使用布谷鸟哈希时,可将PIR类技术用于每个箱。

现在参照图17,示出了根据说明性实施方式的用于保护用户隐私的过程1700。第一数据处理系统300和第二数据处理系统400可以被配置为执行过程1700的步骤。此外,本文描述的计算设备中的任何一个或组合可以被配置为执行过程1700。

在步骤1710处,响应于与多个内容项中的一个的每次交互,每个客户端设备10从第一计算系统接收密文,该密文用于加密在该密文的与和所述内容项相关联的标识符相对应的槽处的非零值、和在所述密文的其它槽中的零值。在各种实施例中,第一计算系统是或类似于第一数据处理系统300。

在步骤1720处,响应于与内容项有关的转换动作,每个客户端设备10向第二计算设备发送密文。在各种实施例中,第二计算设备是或类似于第二数据处理系统400。如果在转换动作之前已经发生了与内容项的交互,则要发送的密文是最后接收到的密文。如果没有发生与内容项的先前交互,则要发送的密文将加密在所有槽中的零值。

在步骤1730处,第二数据处理系统400同态地添加从客户端设备10接收到的所有密文以生成累积密文,并且计算用于所有所述多个内容项的随机份额。

在步骤1740处,第二数据处理系统400在多槽密文中解密随机份额。

在步骤1750处,第二数据处理系统400从多槽密文中减去累积密文,并将所得密文传送到第一计算系统。

在步骤1760处,第一数据处理系统300解密所得密文,以从与多个内容项相关联的所得密文中获得份额。

步骤1770包括对于多个内容项中的每一个,在第一数据处理系统300和第二数据处理系统400之间执行两方计算,以在与内容项相关联的转换动作的计数高于阈值量时恢复该计数。

图18示出计算系统1400的描绘,该计算系统可以用于例如实施本公开中描述的任何说明性系统(例如,系统110、系统120、系统130、系统140、系统150、系统160等)。计算系统1400包括总线1405或用于传达信息的其它通信组件、以及耦合到总线1405以用于处理信息的处理器1410。计算系统1400还包括主存储器1415(例如随机存取存储器(“RAM”))或耦合到总线1405以用于存储信息以及将由处理器1410执行的指令的其它动态存储设备。主存储器1415还可以用于在由处理器1410执行指令期间存储位置信息、临时变量或其它中间信息。计算系统1400可以进一步包括只读存储器(“ROM”)1420或耦合到总线1405的用于存储用于处理器1410的静态信息和指令的其它静态存储设备。存储设备1425(诸如固态设备、磁盘或光盘)耦合到总线1405以用于持久地存储信息和指令。

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

在一些实施方式中,计算系统1400可以包括通信适配器1440,诸如网络适配器。通信适配器1440可以耦合到总线1405,并且可以被配置为使得能够与计算或通信网络1445和/或其它计算系统进行通信。在各种说明性实施方式中,可以使用通信适配器1440来实施任何类型的网络配置,例如有线(例如,经由以太网)、无线(例如,经由WiFi、蓝牙等)、预配置、ad-hoc(自组织)、LAN、WAN等。

根据各种实施方式,完成本文所述的说明性实施方式的过程可以响应于处理器1410执行包含在主存储器1415中的指令的布置而由计算系统1400实施。这些指令可以从另一个计算机可读介质(例如存储设备1425)中被读取到主存储器1415中。包含在主存储器1415中的指令的布置的执行使计算系统1400执行本文所述的说明性过程。也可以采用多处理布置中的一个或多个处理器,来执行包含在主存储器1415中的指令。在替代实施方式中,可以使用硬连线电路代替软件指令、或与软件指令结合来实施说明性实施方式。因此,实施方式不限于硬件电路和软件的任何特定组合。

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

在以上描述的基础上,可以向用户提供控件,该控件允许用户做出关于本文所述的系统、程序或特征是否以及何时能够收集用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户的偏好、或用户的当前位置的信息)、以及用户是否发送来自服务器的内容或通信的选择。此外,在存储或使用某些数据之前,可以以一种或多种方式对其进行处理,从而删除个人可识别信息。例如,可以处理用户的身份,使得不能针对用户确定个人可识别信息,或者可以在获得位置信息时概括用户的地理位置(诸如城市、ZIP码、或州级),使得不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息、以及向用户提供什么信息。在本文所述的系统收集关于用户或安装在用户设备上的应用的个人信息或者利用个人信息的情况下,向用户提供控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户的偏好、或用户的当前位置的信息)的机会。附加地或者替代地,在存储或使用某些数据之前,可以以一种或多种方式对其进行处理,从而删除个人信息。

本公开的系统和方法相对于现有系统提供许多益处。为了避免揭露PII,并且鉴于对用户隐私的意识的增强,正在制定严格的隐私保证。例如,差异隐私,广泛接受的标准要求,聚合的交互度量不必揭露在计算交互率时是否包括特定个人的信息。然而,当前不同的私有聚合交互测量技术需要庞大的数据集并且具有有限的输出粒度。因此,需要一种测量聚合交互的隐私受保护方法,该方法可以利用合理大小的输入数据集来提供详细输出。

一种解决方案利用第三方助手。客户端浏览器可以通过利用第三方助手执行OPRF协议从测量标签中导出种子。客户端浏览器可以对测量标签应用两层加密。加密的第二层可以是基于导出的种子的阈值加密。客户端浏览器可以批处理加密测量标签,并且将其发送到第三方助手。第三方助手可以通过对加密测量标签进行阈值解密来移除加密的第二层。第三方助手可以将单个加密测量标签进行混洗,并且将其转发给分析器。分析器可以移除加密的第一层并且恢复测量标签。

在一些实施方式中,客户端浏览器将人群标识符附加到测量标签。人群标识符可以使系统能够产生用于唯一(并因此标识)测量标签的聚合交互测量,而无需庞大的数据集,同时保持严格隐私保证。人群标识符可以描述地理位置、设备类型和/或任何其它差异类别。人群标识符可用于经由OPRF导出种子。因此,第三方助手只能对具有阈值数量的发生的唯一测量标签进行阈值解密。阈值数量的发生可以确保对PII的严格隐私保护。

在一些实施方式中,内容提供者通过使用私有密钥来生成交互令牌。交互令牌可以用于通过验证测量标签的合法性来欺诈防止。所述系统可以通过使用内容提供者的公钥来验证交互令牌。客户端浏览器只能报告与已验证的交互令牌相关联的测量标签。此外,每个测量标签只能使用一次。因此,该系统防止了基于非法测量标签的欺诈。

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

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

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

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

可以由一个或多个可编程处理器执行本说明书中描述的处理和逻辑流程,所述可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行动作。所述处理和逻辑流程也可以由专用逻辑电路执行,并且所述装置也可以实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。可以使用硬件电路(例如,FPGA,ASIC等)、软件(存储在一个或多个计算机可读存储介质上并且可由一个或多个处理器执行的指令)或其任意组合来实施本文所利用的电路。

例如,适于执行计算机程序的处理器包括通用和专用微处理器、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件包括用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)、或可操作地耦合至大容量存储设备以从中接收数据或对其传输数据、或者两者。然而,计算机不是必须具有此类设备。此外,计算机可以嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或被并入专用逻辑电路中。

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

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

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

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

尽管本说明书包含许多特定的实施细节,但是这些不应被解释为对任何发明或可要求保护的范围的限制,而应被解释为对本文所述的系统和方法的特定实施方式特定的特征的描述。在本说明书中在分开的实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以分开地或以任何合适的子组合在多个实施方式中来实施。而且,尽管以上可以将特征描述为以某些组合起作用,并且甚至最初要求如此保护,但是在某些情况下,可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。另外,关于特定标题描述的特征可以相对于在其它标题下描述的说明性实施方式和/或与之结合使用。标题(如果提供的话)仅出于可读性目的而包括在内,不应解释为限制针对此类标题提供的任何功能。

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

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

相关技术
  • 一种训练隐私保护模型的方法、隐私保护方法及装置
  • 一种带隐私保护的摄像头及其隐私保护方法
技术分类

06120113105120