CN115943375A - 隐私保护跨域实验组分区与监测 - Google Patents

隐私保护跨域实验组分区与监测 Download PDF

Info

Publication number
CN115943375A
CN115943375A CN202280004199.8A CN202280004199A CN115943375A CN 115943375 A CN115943375 A CN 115943375A CN 202280004199 A CN202280004199 A CN 202280004199A CN 115943375 A CN115943375 A CN 115943375A
Authority
CN
China
Prior art keywords
digital component
digital
application
server
secret share
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280004199.8A
Other languages
English (en)
Inventor
王刚
马塞尔·M·莫蒂·扬
蒂莫西·戴维·兰贝特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN115943375A publication Critical patent/CN115943375A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Housing For Livestock And Birds (AREA)

Abstract

描述了方法、系统和装置,包括在计算机存储介质上编码的计算机程序,以用于隐私保护跨域实验监测。一方面,一种方法包括:由MPC系统的第一服务器接收对数字内容的请求,所述数字内容包括标识与所述设备相关联的应用程序实例的应用程序实例标识符的第一秘密份额。所述第一服务器与所述安全MPC系统的第二服务器协作进行隐私保护选择过程,以从数字组件集合选择获胜数字组件。每个数字组件具有对应的唯一实验标识符和唯一控制标识符。生成表示所述获胜数字组件的第一秘密份额。生成响应,并且所述响应包括所述选择结果的所述第一秘密份额,以及表示针对每个数字组件所述应用程序是在实验组还是在控制组中的数据。

Description

隐私保护跨域实验组分区与监测
技术领域
本说明书涉及数据处理、加密以及隐私保护web活动分析。
背景技术
持久标识符,其能够唯一标识跨不同实验、域和请求中的用户,允许使用始终被暴露于处理或被保留为控制的一部分的用户组进行实验。然而,现有的监测机制,诸如cookie,通常被用作持久标识符,并且能够被链接到单个用户和有关该用户的信息。这样的漏洞能够让用户觉得他们太容易被标识,并且他们的信息太容易被泄露。此外,cookie可以提供比用户希望共享的更多信息,并且与特定内容提供商、主人或分销商相关联。
发明内容
在线用户隐私的增强已经引导许多浏览器开发人员改变了处置用户数据的方式。例如,一些浏览器不再支持一些类型的cookie,但弃用第三方cookie可能导致来自实验的结果不那么稳定。所描述的系统和方法允许通过跨网络中的不同域和位置向用户提供不同形式的内容来进行实时实验,即使cookie不可用。所描述的标识符提供了一种隐私保护机制,以通过允许进行实验的系统一致地标识应用程序是实验中的实验组的一部分还是控制组的一部分,因此跨不同的实验和域提供准确的实验结果,来允许跨域实验组分区与监测。
一般而言,本说明书中所描述的主题的一个创新方面能够是在一种用于隐私保护跨域实验监测的方法中的实施例,该方法包括:由安全多方计算(MPC)系统的第一服务器从用户设备上的应用程序接收对数字内容的请求,其中,该请求包括标识与设备相关联的应用程序实例或设备本身的应用程序实例标识符的第一秘密份额(secret share);响应于接收到请求并由安全MPC系统的第一服务器:与安全MPC系统的第二服务器协作,进行隐私保护选择过程,以从数字组件集合中选择第一获胜数字组件,其中,每个数字组件具有对应的(i)唯一实验标识符和(ii)唯一控制标识符,进行隐私保护选择过程包括针对数字组件集合中的每个数字组件,与第二服务器协作并基于资格规则集合确定表示数字组件是否是用于在隐私保护选择过程中的选择的合格候选的候选参数的第一秘密份额,并且与第二服务器协作并基于应用程序实例标识符的第一秘密份额和候选参数值的相应第一秘密份额确定表示应用程序是否在数字组件的实验组中的实验参数的秘密份额。该方法包括:基于每个数字组件的候选参数的第一秘密份额和每个数字组件的选择值,生成表示第一获胜数字组件的选择结果的第一秘密份额;生成对数字内容请求的响应,该响应包括:选择结果的第一秘密份额,以及对于包括第一获胜数字组件的一个或多个数字组件中的每一个,表示应用程序是在数字组件的实验组中还是在数字组件的控制组中的数据;以及由安全MPC系统的第一服务器向用户设备上的应用程序传输对数字内容请求的响应。
在一些实施方式中,表示应用程序是在用于数字组件的实验组中还是在用于数字组件的控制组中的数据由布隆滤波器表示。在一些实施方式中,进行隐私保护选择过程以选择第一获胜数字组件包括,针对数字组件集合中的每个数字组件,向布隆滤波器添加对应的(i)唯一实验标识符,如果应用程序在实验组中,或者(ii)唯一控制标识符,如果应用程序在控制组中。
在一些实施方式中,确定应用程序是关于每个数字组件的控制组的一部分还是实验组的一部分包括针对与数字组件相关联的实验集合中的每个实验,确定应用程序是关于每个数字组件的控制组的一部分还是实验组的一部分。
在一些实施方式中,资格规则集合包括两个或多个资格规则,第一资格规则的一个或多个参数基于实验设计确定,实验设计基于特定大小的若干相互正交的拉丁方阵,并且第一资格规则指定一个或多个参数的值的第一范围。在一些实施方式中,方法包括基于实验设计更新第一资格规则的一个或多个参数,以指定一个或多个参数的值的第二范围,以及由安全MPC系统的第一服务器并与安全MPC系统的第二服务器协作,进行反事实选择过程,以通过应用包括更新后的第一资格规则的资格规则集合来从选择准则集合中选择第二获胜选择准则。
在一些实施方式中,由安全MPC系统的第一服务器向用户设备上的应用程序传输对数字内容的请求的响应包括:由安全MPC系统的第一服务器从安全MPC系统的第二服务器接收对数字内容的请求的响应的加密秘密份额;由安全MPC系统的第一服务器加密对数字内容请求的响应的第二秘密份额,以生成响应的加密第二秘密份额;以及由安全MPC系统的第一服务器向用户设备上的应用程序传输响应的加密秘密份额和响应的加密第二秘密份额。
在一些实施方式中,资格规则集合包括一个或多个资格规则,该资格规则集合包括至少一个肯定条件,并且选择准则集合被存储在安全MPC系统处。在一些实施方式中,资格规则集合包括至少一个否定条件。
在一些实施方式中,将与选择准则相关联的唯一实验标识符附接到对数字内容的请求的响应包括将唯一实验标识符添加到该响应所包括的唯一标识符的列表中,并且将与选择准则相关联的唯一控制标识符附接到对数字内容的请求的响应包括将唯一控制标识符添加到唯一标识符的列表中,其中,唯一标识符的列表使用布隆滤波器表示。在一些实施方式中,方法包括:由应用程序向与选择的数字内容相关联的平台传输包括唯一标识符的列表的第一报告;以及由与选择的数字组件相关联的平台向聚合报告服务器上传包括第一报告的一个或多个报告的批次。在一些实施方式中,方法包括由应用程序向聚合报告服务器传输包括唯一标识符的列表的第一报告。
该方面的其它实施例包括被配置成执行被编码在计算机存储设备上的方法的动作的对应的系统、装置和计算机程序。
本说明书中所描述的主题能够在特定实施例中实现,以便实现下列优点中的一个或多个。
数字内容的选择和呈现经常通过使用实验来更新和改进,实验基于内容的改变来测试用户对数字内容的反应或接收的改变。基于用户的实验是一种用于评估用户体验如何受到影响的重要技术,其中,测量特定功能或呈现格式对接收内容的用户的影响。这样的实验还允许内容研究人员、提供商、开发人员和其它实体量化正在开发的特定功能和改变的增量影响,并改进提供商的有效性和目标关键性能指标。例如,实验允许内容提供商测量指标以及特定数字内容的选择和呈现对特定指标的影响,诸如发布者收入或广告商覆盖面以及受众规模和人口统计。
数字内容系统选择和实现对诸如数字组件的内容的改变(例如,生成对数字组件的实验性或增量改变)的方式历史上包括使用从第三方cookie获得的用户信息(例如,浏览信息、兴趣组信息等),这些第三方cookie是由与在客户端设备上呈现的网页的域不同的域存储在客户端设备上的cookie。在为了测试数字内容设计和呈现而设计和执行的实验或其它数字实验的场境下,这些第三方cookie允许将特定用户一致指定为暴露于处理(诸如不同内容或内容格式)的控制组或处理组的一部分。然而,浏览器阻止了第三方cookie的使用,使得更难以一致地将用户指配给暴露于处理的控制组或多个组,这意味着通过将用户指配给相互冲突的组并产生不太准确或不准确的结果可能浪费计算资源和带宽。当用户没有被一致地指配到多个组时,结果可能不准确,因为用户能够在一个发布者网站上的一个实验中被暴露于处理,并且在不同的发布者网站上被暴露于同一实验的控制,这可能会混淆结果,使执行实验所获得的结果不可靠和/或不可用。当不一致地提供控制或处理时,内容可能是不相关的,并且将需要提供新的内容或将需要进行新的实验,这可能需要对不同的用户或使用不同的内容执行实验,导致附加的流量,同时使先前提供的流量无效。
为了克服这一问题,能够使用仅用于进行实验的目的的稳定跨域标识符的隐私保护技术能够监测和分析网络活动,同时阻止对用户的跟踪,并且同时防止用户信息在计算系统之间的泄漏,由此能够进行重要实验,同时保护用户的隐私和数据安全。
所描述的隐私保护的监测机制——隐私保护的实验标识符或“peid”——通过提供隐私保证来改进用户体验并增加用户信任,该隐私保证确保这种监测用户数据和活动的模式不可被任何第三方访问,同时仍提供能够执行稳定研究方法论的益处,包括各种内容和呈现方法的实验和测试。所描述的系统包括执行多方计算的安全服务器组,跨多方之间分布计算使得没有单个方能够明文访问数据的密码协议。这确保了在多方之间没有未经授权的共谋的情况下,任何参与方都无法以明文方式访问用户数据。所描述的系统能够支持实验组的跨设备稳定分区(例如,控制组vs.实验组),如果例如,属于同一用户的不同设备上的应用程序(诸如web浏览器)能够彼此同步以使用相同的peid。所描述的系统支持相同设备跨域实验分区,并且在peid的跨设备同步的情况下,也能够支持跨设备实验分区。
此外,这些实验标识符可以在使用传统web活动监测方法的系统中被用作替代。例如,peid能够在现有系统中使用,而在某些条件下几乎不需要适应,从而允许系统设计人员重新使用现有基础设施,以用于提供有关web活动的相关统计数据,并且执行安全功能以保护第三方,同时改进用户隐私。
在本说明书中所描述的主题的一个或多个实施例的细节在附图和下面的描述中阐述。主题的其它特征、方面和优点将从描述、附图和权利要求中变得明显。
附图说明
图1是其中实现隐私保护跨域实验组分区和监测机制的系统的框图。
图2是用于选择数字组件以向客户端设备提供显示或分布的示例过程的数据流程图。
图3是图示用于发出和实现隐私保护跨域实验组分区和监测机制以报告实验数据的示例过程的泳道图。
图4是图示用于发出和实现隐私保护跨域实验组分区和监测机制以在实验中支持增量的示例过程的泳道图。
图5是图示用于发出和实现隐私保护跨域实验组分区和监测机制的示例过程的流程图。
图6是示例计算机系统的框图。
在各个附图中,相同的附图标记和名称指示相同的元件。
具体实施方式
总体上,本文件描述了用于保护用户数据和保护在实验的场境中向其提供内容的用户的隐私的系统和技术。
基于用户组的现场实验是被不同公司广泛采用的重要技术。实验能够被用于评估正在开发的新功能的有效性和用户体验,并量化特定改变的增量效果。例如,实验能够被用于量化用户在被示出例如,来自前一季的节目的一部分的特定宣传视频之后,去参加由特定管弦乐队演出的音乐会的可能性有多大。在没有稳定的、跨域的、确定的用户的标识符的情况下,进行基于用户的跨域现场实验的现有系统可能在不赞成诸如第三方cookie的监测机制时无效。本文件中所描述的系统和技术能够在确保数据安全和用户隐私的同时进行这样的实验。
尽管存在用于执行基于用户的现场实验的替代解决方案,但它们可能不是稳定的或准确的。例如,可能进行基于请求的实验,其中,对内容的每个请求被随机地或伪随机地指配给实验组。也可能基于第一方cookie进行基于用户的实验。然而,在这两种情况下,如果使用特定浏览器的用户访问不同的域并发送对内容的多个请求,则浏览器可以一次指配给控制组,并且另一次指配给暴露组。当用户被不一致地指配给实验组时,被测试的变量的影响可能在实验组与控制组之间溢出,从而导致不准确并且因此无法使用的结果。
在一些实施方式中,可能通过使用诸如用户的电子邮件地址或电话号码的信息进行基于用户的实验,这将允许一致的、跨域的并且跨浏览器的跟踪。然而,用户可能会担心将其个人身份信息用于任何目的,包括将用户指配给实验组,即使数据未暴露给任何其它实体。
所描述的系统呈现提供信息安全和隐私的安全多方计算设计。安全多方计算(MPC)是一种加密协议,通过将计算分布在多方之间使得没有单独一方能够访问另一方的数据来防止对数据的访问。MPC允许多方在其各自的输入上共同计算函数,同时保持那些输入是隐私的。MPC系统通过将应被保持隐私的数据拆分为份额来执行计算。这些数据,其被称为秘密,被分成秘密份额,并且这些份额中的每一个都被提供给参与方。然后,多方共同计算其各自秘密份额的函数,从而确保数据的机密性、完整性和安全性。MPC系统包括两个或更多服务器计算机的集群,这些服务器计算机共同且安全地执行各种计算和过程。
例如,系统能够分布实验设计函数,诸如将特定peid指配给控制组或处理组,并安全地传输用于实验的peid。相对于在请求的客户端设备处执行过程(这需要将安全选择的候选数字组件从MPC集群传输到客户端设备),MPC集群提供了改进的过程完整性和用户隐私。MPC过程提供的安全程度是,如果只有一个被推定为非共谋的参与方保持诚实并且不偏离密码协议设计,则就没有办法将用户数据暴露给任何实体。系统遵循诚实但好奇安全模型,其中,所有各方都诚实地遵循协议,并且如果任何数量的共谋各方只能得到其自身的输出,则协议仍然是隐私的。
通过实现这种系统,其中,稳定标识符仅被用于实验目的并通过安全的MPC方法被传输,系统能够保持实验完整性和实验结果的效用,同时保护用户隐私,提供更可能与用户相关的内容,并以更可能对于用户感兴趣和/或有用的方式提供内容。
所描述的系统通过提供稳定的实验标识符来增强安全MPC设计的操作,该稳定的实验标识符能够支持跨域的基于用户的实验,并且其中,peid在由同一用户拥有的多个设备间被同步。诸如浏览器的应用程序――用户通过这些应用程序访问特定的电子文件和资源――与安全MPC集群分享稳定的实验标识符,该安全MPC集群能够使用标识符启用或禁用各种实验和实验特征,确定各种存储的选择准则中的哪些对于将呈现给用户的选择有资格或不合格,以将用户指配给不同的实验组,跟踪实验结果,并报告那些结果以供使用,以及其它功能。安全MPC群集向聚合报告服务器报告已启用的实验以用于分析。在一些实施方式中,安全MPC集群经由浏览器执行报告,或者安全MPC集群本身能够充当聚合报告服务器。
另外,为了支持增量更新和改变的测量,如果获胜选择准则和相关联的数字组件是增量实验或研究的一部分,则安全MPC集群在选择过程中进行反事实选择过程,以确定浏览器的用户是否属于获胜选择准则的保留组(即,不向其提供处理特征的控制组)。在对数字组件的请求的响应中,安全MPC集群能够请求应用程序,例如,浏览器,识别其属于暴露组或保留组(如果适用)。应用程序经由聚合报告服务器报告相关联的行为(诸如访问网站、购买交响乐门票、签发电子生日卡)是否发生在与应用程序相关联的所有暴露组和保留组的转换窗口内。
图1是环境100的方框图,其中,MPC集群130执行安全MPC过程,以选择数字组件分布到客户端设备110,并基于不同的内容和内容的版本来执行实验。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合。网络105连接客户端设备110、安全MPC集群130、发布者140、网站142、内容平台,例如,供应侧平台(SSP)170和需求侧平台(DSP)150,以及聚合报告服务器180。示例环境100可以包括许多不同的客户端设备110、安全MPC集群130、发布者140、网站142、DSP150、SSP170和聚合报告服务器180。
客户端设备110是能够通过网络105通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备,例如,智能电话,以及能够通过网络105发送和接收数据的其它设备。客户端设备还能够包括通过麦克风接受音频输入并通过扬声器输出音频输出的数字助理设备。当数字助理检测到激活麦克风以接受音频输入的“热词”或“热词组”时,数字助理能够被置于收听模式(例如,准备接受音频输入)。数字助理设备还能够包括相机和/或显示器,以捕捉图像并可视地呈现信息。数字助理能够以不同形式的硬件设备实现,该硬件设备包括可穿戴设备(例如,手表或眼镜)、智能电话、扬声器设备、平板设备或另一硬件设备。客户端设备还能够包括数字媒体设备,例如,插入电视或其它显示器以将视频流式传输到电视、游戏控制台或虚拟现实系统的流式传输设备。
客户端设备110通常包括应用程序112,诸如web浏览器和/或本机应用程序,以促进通过网络105发送和接收数据。本机应用程序是为特定平台或特定设备(例如,具有特定操作系统的移动设备)开发的应用程序。在一些实施方式中,应用程序112能够是诸如操作系统的程序。发布者140能够开发并向客户端设备110提供例如可供下载的本机应用程序。Web浏览器能够从托管发布者140的网站142的web服务器请求资源145,例如,响应于客户端设备110的用户在web浏览器的地址栏中输入用于资源145的资源地址或选择引用资源地址的链接。类似地,本机应用程序能够从发布者的远程服务器请求应用程序内容。
一些资源、应用程序页面或其它应用程序内容能够包括用于利用资源145或应用程序页面呈现数字组件的数字组件插槽。贯穿本文件所使用的短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字组件能够作为单个文件或在文件集合中电子地存储在物理存储器设备中,并且数字组件能够采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件可以是旨在补充由应用程序112呈现的网页或其它资源内容的内容。更具体地,数字组件可以包括与资源内容相关的数字内容(例如,数字组件可以涉及与网页内容相同的主题,或者涉及相关的主题)。因此,数字组件的提供能够补充并且通常增强网页或应用程序内容。
当应用程序112加载包括一个或多个数字组件插槽的资源(或应用程序内容)时,应用程序112能够请求每个插槽的数字组件。在一些实施方式中,数字组件插槽能够包括使应用程序112从MPC集群(诸如MPC集群130)请求数字组件的代码(例如,脚本),MPC集群130选择数字组件并将该数字组件提供给应用程序112,以向客户端设备110的用户呈现。如下所述,应用程序112能够从MPC集群130请求数字组件,MPC集群130能够将请求或请求的部分信息转发到其它服务器,诸如SSP 170。
一些发布者140使用SSC 170来管理为其资源和/或应用程序的数字组件插槽获得数字组件的过程。SSP 170是在硬件和/或软件中实施的技术平台,其自动化获得用于资源和/或应用程序的数字组件的过程。每个发布者140能够具有对应的SSP 170或多个SSP170。一些发布者140可以使用相同的SSP 170。
数字组件提供商160能够创建(或以其它方式发布)被呈现在发布者的资源和应用程序的数字组件插槽中的数字组件。数字组件提供商160能够使用DSP 150来管理其数字组件的提供,以在数字组件插槽中呈现。DSP 150是在硬件和/或软件中实现的技术平台,其自动化分布用于利用资源和/或应用程序呈现的数字组件的过程。DSP 150能够代表数字组件提供商160与多个供应侧平台SSP交互,以提供用于通过多个不同发布者140的资源和/或应用程序呈现的数字组件。一般而言,DSP 150能够接收对数字组件的请求(例如,从SSP),生成(或选择)由一个或多个数字组件提供商基于请求而创建的一个或多个数字组件的选择准则,并向SSP提供与数字组件相关的数据(例如,数字组件本身)和选择参数。选择准则能够指示数字组件提供商160愿意提供以用于呈现或用户与数字组件交互的量。然后,SSP能够选择用于在客户端设备110处呈现的数字组件,并向客户端设备110提供使客户端设备110呈现数字组件的数据。
在一些情况下,用户接收与网页、应用程序页面或用户先前访问和/或与之交互的其它电子资源相关的数字组件是有益的。为了将这样的数字组件分布给用户,当用户访问特定资源或在资源处执行特定操作(例如,与网页上呈现的特定项目交互或将项目添加到虚拟购物车)时,能够将用户指配给用户组,诸如用户兴趣组、类似用户的群组或涉及类似用户数据的其它组类型。用户组能够由数字组件提供商160生成。也就是说,每个数字组件提供商160能够在用户访问数字组件提供商160的电子资源时将用户指配给他们的用户组。用户组也能够由内容平台创建,诸如由DSP 150和/或SSP 170创建。
为了保护用户隐私,用户的组成员资格能够在用户的客户端设备110处被维护,例如,由应用程序112中的一个或客户端设备110的操作系统维护,而不是由数字组件提供商、内容平台或其它方维护。在特定示例中,可信程序(例如,web浏览器或操作系统)能够为使用web浏览器或另一应用程序的用户(例如,用于登录到浏览器、应用程序或客户端设备110的用户)维持用户组标识符的列表(“用户组列表”)。用户组列表能够包括针对每个用户组的组标识符,每个用户组包括用户作为成员。创建用户组的数字组件提供商160能够为其用户组指定用户组标识符。用于用户组的用户组标识符能够是组的描述的(例如,园艺组)或表示组的代码(例如,不是描述性的字母数字序列)。用于用户的用户组列表能够被存储在客户端设备110处的安全存储设备中和/或能够在存储时加密以防止其它人访问列表。
当应用程序112呈现与数字组件提供商160或网站142上的网页有关的资源或应用程序内容时,资源能够请求应用程序112将一个或多个用户组标识符添加到用户组列表。作为响应,应用程序112能够将一个或多个用户组标识符添加到用户组列表,并且安全地存储用户组列表。
MPC集群130能够使用包括用户的用户组成员资格的数据,以选择可能是用户感兴趣的或可能以另一种方式对用户/用户设备有益的数字组件或其它内容。例如,这样的数字组件或其它内容可以包括改进用户体验、改进用户设备的运行或以一些其它方式使用户或用户设备受益的数据。然而,用户的用户组列表的用户组标识符能够被提供并被用于选择数字组件,以防止MPC集群130的计算系统MPC1和MPC2明文访问用户的用户组标识符,由此在使用用户组成员资格数据选择数字组件时保护用户隐私。明文是没有计算标记、特殊格式或用代码编写的文本或数据(包括二进制文件),其形式是能够在不需要密钥或其它解密设备或其它解密过程的情况下查看或使用。MPC集群130还使用从SSP 170接收的候选选择准则集合来执行最终选择过程,以选择映射到数字组件的获胜选择准则。然后,MPC集群130响应于数字组件请求,直接向客户端设备110提供用于映射到获胜选择准则的数字组件的数据。数据能够包括例如标识数字组件的数据、存储数字组件的位置和/或能够从其请求数字组件的位置,以及获胜选择准则等参数。在一些实施方式中,MPC集群130将数字组件本身提供给客户端设备110。
安全MPC集群130包括执行安全MPC过程的两个计算系统MPC1和MPC2(例如,服务器计算机),以基于用户的组成员资格和/或其它准则选择数字组件以分布到用户的客户端设备,而不明文访问组成员资格信息(或其它敏感用户信息)。虽然示例MPC集群130包括两个计算系统,但只要MPC集群130包括多于一个计算系统,也能够使用更多的计算系统。例如,MPC集群130能够包括三个计算系统、四个计算系统或另一适当数量的计算系统。在MPC集群130中使用更多的计算系统能够提供更多的安全性,但也能够增加MPC过程的复杂性。
计算系统MPC1和MPC2能够由单个实体操作。在一些实施方式中,MPC1和MPC2能够由不同的实体操作。以这种方式,每个实体可能无法明文访问用户的组成员资格。例如,计算系统MPC1或MPC2中的一个能够由不同于用户、发布者140、DSP 150、SSP 170、聚合报告服务器180以及数字组件提供商160的可信方操作。例如,行业团体、政府团体或浏览器开发人员可以维护和操作计算系统MPC1和MPC2中的一个。另一计算系统可以由这些组中的不同一个操作,使得不同的可信方操作每个计算系统MPC1和MPC2。优选地,操作不同计算系统MPC1和MPC2的不同方没有动机共谋以危害用户隐私。在一些实施方式中,计算系统MPC1和MPC2在架构上是分离的,并且被监测以在执行本文件中描述的安全MPC过程之外彼此不通信。
除了贯穿本文件的描述之外,用户还可以被提供控件(例如,用户可以与之交互的用户界面元件),其允许用户选择是否以及何时本文中所述的系统、程序或功能可以能够收集用户信息(例如,关于用户的社交网络、社会行动或活动、职业、用户偏好或者用户的当前位置的信息),以及是否从服务器向用户传输内容或通信。另外,某些数据在被存储或使用之前可以以一种或多种方式被处理,以便移除个人身份信息。例如,用户的身份可以被处理以使得不能确定用户的任何个人身份信息,或者用户的地理位置可以在获得位置信息的情况下被一般化(诸如到城市、邮政编码或州级),以便不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。
图2是用于选择数字组件以向客户端设备提供显示或分布的示例过程200的数据流程图。过程200的操作能够例如由客户端设备110上的应用程序112、MPC集群130的计算系统MPC1和MPC2、DSP 150以及SSP170来实现。过程200的操作还能够被实施为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程200的操作。尽管下面在两个计算系统MPC集群130方面描述过程200和其它过程,但是也能够使用具有多于两个计算系统的MPC集群来执行类似过程。
这种描述包括两种类型的选择准则——以敏感用户信息为条件的选择准则,诸如用户组成员资格或其它业务敏感信息,或其值的改变能够允许不择手段的各方推断敏感信息的参数,或“有条件选择准则”和不以敏感信息为条件的选择准则,或“无条件选择准则”。为了保护用户隐私,在MPC集群130内而不是SSP 170或DSP 150内评估用于“有条件选择准则”的条件,以确定对应于条件选择准则的数字组件是否有资格用于内容选择过程。
这种结构允许MPC集群130保护用户隐私和商业机密信息,并向应用程序提供商,诸如应用程序112的提供商证明其可信性。在该示例中,MPC集群130依赖于安全2方计算(2PC)架构,其应用密码技术以保证,如果MPC集群130的两个计算系统中的至少一个是诚实的,则不存在机密用户数据或商业机密信息的泄漏。如果MPC集群130包括两个以上的计算系统,则当前的MPC协议能够被扩展,或者能够使用其它MPC协议。
MPC集群130运行安全2PC协议以评估和应用条件以选择有资格的选择过程候选,进行选择过程以基于获胜选择准则(例如,其中数字组件被映射到获胜选择准则)来选择数字组件,并接收曝光通知以更新那些条件所依赖的计数器。所有这些过程都能够使用秘密份额技术来完成。下面详细描述该协议。
过程200从阶段A开始,在阶段A中,应用程序112与来自内容分布服务器的触发元件协作,诸如SSP 170,,向MPC集群130发送对数字组件的请求。应用程序112能够将对数字组件的多个请求一起包括成一个组合请求,以拾取多个数字组件。MPC集群130然后能够独立地服务于组合请求中的每个请求,或者整体性地做出一个或多个选择决策。在该示例中,请求是针对单个数字组件的,并且包括对针对基于敏感信息而选择的数字组件或不使用敏感信息而选择的数字组件的请求。
MPC集群130能够通过从各自映射到相应选择准则的数字组件集合中选择特定数字组件来响应请求。这些选择准则能够是用于先前在MPC群集130处缓存或以其它方式存储的数字组件的选择准则,和/或由平台,诸如DSP 150或SS P170,生成的选择准则,即时(JIT)选择准则。JIT选择准则是响应于需要直接生成的,并且增加效率并减少浪费,因为选择准则仅在需要数字组件时生成。例如,JIT选择准则可以在数字组件插槽变得可用时生成——这由对数字组件的请求的接收指示。所缓存的数字组件是由MPC计算机存储选择准则的数字组件,但数字组件不一定被存储在缓存中,例如,数字组件或数字组件的数据能够被存储在其它类型的数据存储设备或存储器中。
请求包含在数字组件选择过程中使用的信息,其包括能够敏感的信息,诸如应用程序112映射或以其它方式相关联的用户组的标识符,以及不敏感的信息,诸如来自应用程序112的关于数字组件将被呈现和/或显示的场境的场境信号。如下文进一步详细描述的,系统110的设计改进了对能够是敏感的或保密的用户数据的保护。请求包含稳定实验标识符peid,该peid能够被用于从选择过程中选择或移除选择准则和相关联的数字组件。稳定实验标识符能够对应于在客户端设备110上运行的应用程序112的实例,客户端设备110继而能够对应于用户,例如登录到应用程序112的用户或正在使用应用程序112的用户。使用由MPC集群130支持的秘密份额技术来加密稳定实验标识符,以保护用户隐私,使得MPC集群130的任何单个服务器都不了解标识符,并且作为代替保存标识符的份额。应用程序112能够将稳定实验标识符的相应份额发送到MPC集群130的每个服务器。
触发元件能够是,例如,检测互联网位置或应用程序112访问的其它电子资源内的数字组件插槽的存在的标签。触发元件能够被放置在例如互联网位置处,并且能够通知应用程序112应该为其请求数字组件的数字组件插槽的存在。
过程200继续进行阶段B,在阶段B中,MPC集群130向SSP 170传输基于不(或不太)敏感的信息的数字组件请求,诸如场境信号。例如,数字组件请求能够基于诸如特定域内的用户活动信息的信息。这种请求被称为“场境请求”,并且对这种场境请求的响应能够是无条件的选择准则,因为请求不以接收到敏感信息为条件。在一些情况下,响应可以包括针对一个或多个条件的准则,使得响应是有条件响应。场境请求能够包含由触发对数字组件的请求的互联网位置(例如,内容发布者)直接收集的各种场境信号和用户信息。例如,场境信号能够包括帮助内容发布者提供良好用户体验的分析数据、语言设置和其它数据。然而,提供给SSP 170的场境请求不包括敏感信息,诸如用户组标识符。
过程200继续进行阶段C,在阶段C中,SSP 170将场境请求转发到一个或多个DSP150。在该特定示例中,并且为了简单起见,SSP 170将场境请求转发到单个DSP 150。例如,SSP170能够将场境请求转发到DSP 150。在该示例中,DSP 150具有数字组件和映射到数字组件的选择准则。
过程200继续进行阶段D,在阶段D中,一个或多个DSP 150响应于场境请求返回选择准则。例如,DSP 150返回映射到响应于场境请求的数字组件的一个或多个选择准则。DSP150能够返回响应于场境请求的任意数量的选择准则。在一些实施方式中,DSP 150能够另外返回响应于基于诸如用户组信息的敏感信息的数字组件请求的选择准则。这些选择准则是“有条件选择准则”,因为它们以敏感信息为条件,并且因此以MPC集群130接收到包括与选择准则以其为条件的敏感信息相匹配的敏感信息的请求为条件。对于DSP 150提供的每个选择准则,DSP 150包括诸如生存时间(TTL)参数的信息,即,MPC集群130可以缓存选择准则的最大时间跨度。该TTL参数使MPC集群130能够缓存从DSP150接收的选择准则。在一些实施方式中,在没有TTL参数的情况下,MPC集群130不缓存接收到的选择准则,并且反而将在选择准则已经被用于选择过程之后,例如,在对应于在阶段A、B和C中传输的数字组件请求的选择过程中,丢弃选择准则。
过程200继续进行阶段E,在阶段E中,SSP 170应用内容选择准则。例如,SSP 170应用诸如内容提供商和数字组件阻止规则的规则,这些规则防止特定内容提供商有资格提供候选数字组件和选择准则,或者防止特定数字组件作为候选。在一些实施方式中,MPC集群130能够应用规则或规则的一部分。
在一些实施方式中,应用程序112能够维护被阻止的标识符集合,该标识符集合包括已经被用户明确阻止的数字组件的标识符。例如,假设用户与对应于给定数字组件(或被递送到客户端设备110的数据的一部分)的静音元素交互。在该示例中,用户与静音元件的交互是用户不希望在将来(例如,达到至少某一时间量)看到该数字组件或者潜在类似的数字组件(例如,来自内容源或运动,其能够是相同的内容源或运动,或者能够是不同的内容源或运动)的指示。响应于交互,应用程序112能够将用于给定数字组件的标识符添加到被阻止的通用标识符集合,该标识符集合然后能够被用于防止具有与给定数字组件相同的标识符的其它数字组件的递送或呈现。在一些实施方式中,应用程序112能够保持被阻止的标识符集合,该标识符集合包括最近太频繁地例如在最近Y分钟期间超过X次向用户示出的数字组件的标识符。应用程序112能够将用于给定数字组件的标识符添加到被阻止的通用标识符集合,该标识符集合然后能够被用于防止在不久的将来递送或呈现具有与给定数字组件相同的标识符的其它数字组件。
SSP 170还应用选择准则规则以确定例如选择准则如何影响特定内容提供商的发布后值。发布后值能够指示例如被提供给内容提供商用于发布数字组件的量。SSP 170然后执行选择过程以确定顶无条件选择准则,该无条件选择准则产生最高发布后值。无条件选择准则不以敏感信息为条件,并且因此不应用诸如用户组成员资格、频率控制、内容分发规则和调步规则的内容选择规则。SSP 170然后将作为JIT选择准则的下列准则选择转发到MPC集群130:能够在MPC集群130中缓存的所有选择准则(具有TTL值的选择准则),以及其发布后值不小于顶无条件选择准则的发布后值的所有选择准则。
过程200继续进行阶段F,在阶段F中,MPC集群130利用接收到的启用缓存(即,具有TTL值)的数字组件和它们的对应JIT选择准则来更新其缓存。另外,MPC集群130对条件应用选择准则,诸如用户成员资格规则、频率控制、调步规则和防止特定用户对阶段E中接收到的所有选择准则的微瞄准的规则,以及先前缓存的数字组件选择有效候选以用于选择过程的选择准则。规则能够包括对数字组件的分布的方式或频率的限制和指导,以及其它因素。规则包括频率控制、静音、预算和调步约束。MPC集群130然后在所有有效候选中运行最终选择过程,选择获胜数字组件,并且然后响应于数字组件请求向应用程序112返回用于获胜数字组件的数据。
过程200继续进行阶段G,在阶段G中,获胜数字组件由应用程序112渲染。应用程序112然后向MPC集群130提供曝光通知。该曝光通知包括允许MPC集群130更新信息的数据,该信息与更新允许MPC集群130强制执行选择规则的计数器相关。在一些实施方式中,应用程序112可以通过在例如包括在未来组件请求A的顶部上的捎带向MPC集群130发送曝光通知G,以减少用于移动设备的网络通信数量和电池/带宽消耗。
系统实现秘密份额算法,以防止MPC集群中的任何单个服务器访问用户信息,诸如peid。当系统在诚实但好奇假设下操作时,秘密份额算法保证MPC中没有单个服务器能够明文看到peid。更具体地,对于每个数字组件请求,浏览器112将peid分成两个秘密份额[peid1]和[peid2],其中,出现在括号内的参数表示括号内变量的秘密份额。例如,这里[peid1]和[peid2]是peid的两个秘密份额,是用户的稳定实验标识符。关于秘密份额,下标1指示表示第一秘密份额的参数,下标2指示表示第二秘密份额的参数。这些秘密份额能够被重建成原始秘密。例如,只有当实体具有对[peid1]和[peid2]两者的访问权限时,实体才能将秘密份额[peid1]和[peid2]重建为原始秘密peid。然而,秘密份额是加密的,以便保护用户隐私。
通过依赖于诸如加性秘密份额的方案,重建过程能够使用简单操作来执行。例如,使用简单加性秘密份额时的重建过程能够使用诸如[peid1]+[peid2]=peid的简单加性操作来执行。两个秘密份额中的每一个分别由MPC集群130的两个服务器中的一个分离且保密地保存。服务器之间的peid的分享是通过加性分享。Peid能够通过其它方法分享,诸如通过两个随机向量,其中这两个随机向量的异或给出peid,或者通过两个分离的份额,其中,一个份额保存加密的peid并且第二个份额保存解密密钥,以及其它方法。MPC集群130可以适应基于所选择的特定方法来执行将密钥分成多个份额。
为了保证用于一个服务器的秘密份额不被另一个服务器截获,秘密份额能够被加密。例如,应用程序(可以是浏览器)112能够利用意图接收秘密份额的特定MPC服务器的公钥加密秘密份额中的每一个,通过将PublicKeyEncrypt([peid1],MP1)的结果发送到MPC1,并将PublicKeyEncrypt([peid2],MPC2)的结果发送到MPC2。这里,PublicKeyEncrypt(x,y)表示使用服务器的公钥y在x上执行的加密函数。因此,PublicKeyEn([peid1],MPC1)表示使用MPC1的公钥在[peid1]上执行的加密函数。
图3和图4是图示用于发出和实现隐私保护跨域实验组分区和跨不同域执行的web活动使用的监测机制的示例过程300和400的泳道图。过程300和400的操作能够例如通过客户端设备110和/或应用程序112、MPC集群130、DSP 150和/或聚合报告服务器180来实现。过程300和400的操作也能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程300和400的操作。
关于图3,过程300以步骤1开始,其中,应用程序112向MPC集群130发送对数字组件的请求。例如,过程300的步骤1可以类似于过程200的阶段A,其中,应用程序112与来自内容分布服务器的触发元件协作,向MPC集群130发送对数字组件的请求。请求能够包括例如与将在其中显示选择数字组件的显示环境相关的场境信号集合。请求还能够包括,例如,用于用户和应用程序112的peid,使得用户能够被唯一地标识,以用于所进行的任何实验的目的。场境信号能够包括,例如,数字组件将通过其显示的资源的资源定位器(例如,通用资源定位器(URL))、数字组件将被显示的客户端设备110的地理位置、和/或数字组件将通过其显示的应用程序112的口语设置。也能够使用其它场境信号。
在一些实施方式中,场境信号集合以诸如缓存查找密钥的参数的形式被发送。缓存查找密钥能够是基于场境信号集合的复合消息。在一些实施方式中,缓存查找密钥能够是复合消息的加密散列(例如,SHA-256)。
MPC集群130能够针对MPC集群130为其存储或存储选择标准的每个数字组件存储对应的高速缓存查找关键字,该缓存查找关键字指示数字组件有资格选择的场境。选择选择例如,如果用于数字组件的选择准则仅有资格在用于给定URL的选择过程中使用,则选择准则和数字组件能够被映射到包括给定URL的缓存查找密钥。这些缓存查找密钥也能够是复合消息的形式。
对于数字组件的传入请求,MPC集群130收集与被包括在数字组件请求中的缓存查找密钥相关联的所有缓存的选择准则。也就是说,MPC集群130标识被映射到与数字组件请求的缓存查找密钥相匹配的缓存查找密钥的每个数字组件及其对应的选择准则。这些匹配的数字组件能够被称为有资格的数字组件,因为它们有资格与正在被请求数字组件的资源一起显示。
在标识有资格的数字组件之后,计算系统MPC1和MPC2能够确定有资格的数字组件中的哪一个是选择过程的候选。数字组件是当满足数字组件的每个条件时的候选。如上所述,这些条件能够基于用户组成员资格、频率控制、内容分布规则和/或调步规则。
有资格选择的数字组件能够被滤波,然后如上文关于图2和过程200所述地被选择。然后要在对应用程序112的响应中提供的选择数字组件在步骤2中由MPC集群130使用。
对于每个缓存的数字组件,MPC集群130计算应用程序112是否属于用于数字组件的接收其效果要被分析的处理的实验组,或者应用程序112是否属于用于数字组件的不接收处理的控制组。实验组或处理组接收具有特定特征、增强、交互元件、颜色、形状、大小、字体、声音、视频等特征的数字组件,数字内容提供商或分析系统对量化其被提供给网络(诸如互联网)的用户时的效果感兴趣。这些组对于不同的数字组件能够是不同的,并且MPC集群130使用peid一致地确定用户应该是控制组还是实验组的一部分,以及根据用户/应用程序是否属于实验组,确定数字组件是否是将被提供给用户和应用程序的候选。应用程序112被指配给作为用户的代理的组。
为了量化特定数字组件或对数字组件的改变对用户的影响,在MPC集群130中缓存的每个数字组件和对应的选择准则可以根据实验的设计与例如被映射到四个非负数p,k,r和s中的一个相关联。例如,系统能够应用相互正交的拉丁方阵的概念,以确保自变量是真正独立的,而没有隐藏的混杂相关性。例如,在用于实验的统计设计中,实验处理的分配使得每个处理在每行和每列中恰好发生一次,使得能够使用这些方阵来标识来自两个源的实验误差。非负数p,k,r和s表示实验设计的不同参数。
这里,p是素数,其表示实验的每个层(其中,每个层由拉丁方阵表示)中的模数(mod)的数量,以及拉丁方阵中的行/列的数量;k是为运行实验而选择的层标识符,其中k∈[0,p–1];并且0≤r≤s≤p–1。换言之,[r,s]限定[0,p-1]内的非空区间,其指定了将在其中进行实验的由k指定的层中的mod。在该特定示例中,令c=peid mod(p2),x=c mod p,y=cdiv p,并且m=(k×x+y)mod p。
在概念上,MPC集群130通过确定是否m∈[r,s]来确定缓存的数字组件及其选择准则是否有资格用于选择选择。换言之,MPC集群130通过确定是否r≤(k×x+y)mod p≤s来确定缓存的数字组件是否为用于选择的候选。否则,缓存的数字组件不是候选,并且因此没有资格用于选择。在一些实施方式中,数字组件还必须满足与数字组件相关联的所有条件,以便作为选择的候选,如下所述。
例如,MPC集群130能够通过确定是否m∈[r,s],换言之,是否r≤(k×x+y)mod p≤s,来计算应用程序112是否属于实验组。MPC集群130可以通过确定是否
Figure BDA0003944005830000231
换言之,确定是否
Figure BDA0003944005830000232
Figure BDA0003944005830000233
来计算应用程序112是否属于控制组。
另外,每个缓存的数字组件(和对应的选择准则)与一个或多个全局唯一实验标识符eidexperiment相关联。为了加强全局唯一性,MPC集群130能够将该标识符计算为与m∈[r,s]相关联的eidexperiment=HMAC(owner_domain,domain_specific_experiment_id)。这里,HMAC,或基于散列的消息认证码是示例加密散列函数,其能够被用于同时验证数据完整性和消息的真实性,并允许消息被唯一地散列。这里,全局唯一意味着每个实验标识符eidexperiment跨由应用程序112可访问的不同域中是唯一的。例如,相同的实验标识符能够跨由应用程序112的用户访问的不同网站和域被使用,并且不与任何其它标识符或用户重叠,而不管域如何。
此外,每个缓存的数字组件(和对应的选择准则)与一个或多个全局唯一实验标识符eidcontrol相关联。为了加强全局唯一性,MPC集群130可以将该标识符计算为与
Figure BDA0003944005830000234
相关联的eidcontrol=HMAC(owner_domain,domain_specific_control_id)。这里,全局唯一意味着每个实验标识符eidcontrol跨由应用程序112可访问的不同域是唯一的。例如,相同的控制标识符能够跨由浏览器112的用户访问的不同网站和域中被使用,并且不与任何其它标识符或用户重叠,而不管域如何。控制标识符与间隔
Figure BDA0003944005830000241
相关联,该间隔
Figure BDA0003944005830000242
与[r,s]分离并且不重叠,并且如果
Figure BDA0003944005830000243
则应用程序在控制组中。换言之,MPC集群130通过确定是否
Figure BDA0003944005830000244
来确定浏览器是否在控制组中。
作为示例,附接到从MPC集群130被发送到客户端设备110的特定数字组件响应的实验标识符列表能够包含O(104)个peid,正在进行的每个实验有一个,其中,每个实验表示不同数字组件。附接的实验标识符的数量针对对于数字组件的每个请求而变化。在一些实施方式中,peid的列表能够很大,并且为了简明扼要地表示peid的列表以减少所需的带宽,系统能够使用概率数据结构,诸如布鲁克滤波器或布鲁姆滤波器。
在过程300的步骤2中,MPC集群130构造具有激活的适用实验标识符的布隆滤波器。例如,使用11个散列函数,MPC集群130可以以0.045%假阳性率(FPR)构造每个peid有2字节的最佳布隆滤波器大小。每个布隆滤波器都有比特阵列,并且为了构造布隆滤波器,元素被逐个插入布隆滤波器。对于每个元素,散列函数被用于推断对应于该元素的比特阵列中的比特。例如,如果有11个散列函数,则11个散列函数被用于将比特阵列中的11比特设置为元素的值1。为了防止潜在受损的应用程序从peid列表中提取或伪造机密信息,MPC集群130可以依赖密码算法。
MPC集群130使用布隆滤波器,因为布隆滤波器能够精确地表示使用少量数据激活的实验标识符,并且能够以最小的带宽消耗进行通信。MPC集群130能够控制布隆滤波器的FPR,使得对实验的统计结果的影响可忽略不计。布隆滤波器的构造是使用秘密份额来执行的,以保护用户隐私,使得每个服务器都能够计算标识符在布隆滤波器内的位置,但不知道该值是0还是1。计算能够例如使用=+操作来完成,该操作能够在秘密份额中执行。在一些实施方式中,布隆滤波器被构造成计数布隆滤波器,其允许构造在秘密份额中完成,并且稍后能够被转换为常规布隆滤波器。布隆滤波器的构造在下面关于过程400的步骤2-3进一步详细地描述。
在过程300的步骤3中,MPC集群130能够加密和/或签署布隆滤波器,布隆滤波器能够被划分为多个秘密份额,以便防止秘密份额对其有意义的任何一方访问布隆滤波器参数并重构完全布隆滤波器。例如,MPC集群130能够使用公钥加密来加密布隆滤波器。
在过程300的步骤4中,一旦MPC集群130已经确定了应用程序112是属于实验组还是属于控制组,则MPC集群130将相应实验标识符附接到返回给应用程序112的数字组件响应。例如,MPC集群130能够将布隆滤波器与提供给应用程序112的数字组件响应一起包括在内。另外,MPC集群130从满足其所有条件的候选集合中选择获胜数字组件,如下文关于图5的步骤504-506所述。
在过程300的步骤5中,在已经根据选择过程,诸如上文关于图2所述的过程从布隆滤波器指示的有资格数字组件中选择获胜数字组件之后,应用程序112渲染与获胜选择准则相关联的数字组件。例如,应用程序112能够渲染与获胜选择准则相关联的视频。
在过程300的步骤6中,所渲染的数字组件,其与应用程序112相关联,通过聚合测量功能,诸如应用程序112原生的聚合测量API,向DSP 150发送报告。例如,聚合测量API能够集成到应用程序112。在一些实施方式中,聚合测量API包括服务器,服务器能够被实现为安全MPC集群。报告能够包含与该报告相关联的peid列表。例如,报告能够包括先前构造的布隆滤波器以及与数字组件的渲染相关联的测量,诸如数字组件被示出的时间量,用户的注意力是否集中在数字组件上,其它应用程序是否正在运行,以及数字组件是否可见,以及其它测量。
在过程300的步骤7中,在累积了阈值数量的报告之后,DSP 10将在秘密份额中接收到的报告上传到聚合报告服务器180。例如,DSP 150能够周期性地将秘密份额中的许多加密报告上传到聚合报告服务器180,使得DSP 150无权访问报告的明文。DSP 150能够检测是否已经累积了阈值数量的报告,并将报告以批次(即,秘密份额)报告上传到聚合报告服务器180。
在过程300的步骤8中,DSP 150查询聚合报告服务器180以获得与每个peid相关联的指标。例如,DSP 150能够从聚合报告服务器180提供对各种分析、测量和其它参数的请求。
关于图4,过程400是用于发布和实现隐私保护跨域实验组分区和监测机制以支持实验中的增量的示例过程。关于图4和过程400显示的许多步骤与上文关于图3和过程300所述的那些步骤类似。
在过程400的步骤1中,应用程序112将对数字组件的请求发送到MPC集群130,与上文关于图3所述的过程300的步骤1类似。
在一些情况下,内容提供商、设计人员和研究人员以及其它实体希望量化归因于特定功能或改变的增量效应。例如,与没有看到特定数字组件相比,在看到数字组件之后,用户50%更有可能回复“是”以观看特定管弦乐队的虚拟表演。为了支持这种增量性研究,系统在下文中向上文关于图2和图3所述的基线过程引入反事实选择过程。
类似于基线实验设计,缓存的选择准则与p,k,r,s,
Figure BDA0003944005830000261
相关联,其中,MPC集群130从peid、p和k计算模数m。
这里,如果m∈[r,s],则用户处于暴露组中。换言之,暴露组被暴露于数字组件,该数字组件与缓存的选择准则相关联。暴露组与实验标识符eidexposed相关联。为了保证唯一性,eidexposed被定义为eidexposed=HMAC(owner_domain,domain_specific_exposed_id)。
如果
Figure BDA0003944005830000271
则用户处于保留组中,该保留组未被暴露于与缓存的选择准则相关联的数字组件。换言之,处理从组“保留”。保留组与实验标识符eidholdback相关联。为了保证唯一性,eidholdback被定义为eidholdback=HMAC(owner_domain,domain_specific_holdback_id)。
这里,如果m不在任一范围内,则应用程序112不在暴露组,也不在保留组中。
在过程400的步骤2中,MPC集群130执行选择过程,该选择过程应用所有选择规则,以选择缓存的数字组件中的至多一个作为选择过程的获胜者。如果获胜数字组件与原始实验资格规则相关联,则MPC集群130将eidexposed和相关联的元数据插入到对数字组件的请求的响应中。
在过程400的步骤3中,MPC集群130然后执行应用选择过程的所有规则的反事实选择过程,除了将实验资格规则从m∈[r,s]更新到
Figure BDA0003944005830000272
之外。MPC集群130然后能够基于更新后的资格规则确定幻影候选选择准则,从而选择缓存的数字组件中的至多一个,并且表示与实际选择过程完全相同的反事实选择过程的获胜者,但是为了资格规则的更新。如果获胜数字组件与修改的实验资格规则相关联,或者换言之,如果获胜数字组件仅有资格基于更新后的资格规则被选择,那么MPC集群130将eidholdback和相关联的元数据插入到对数字组件的请求的响应中。
反事实选择过程能够与隐私保护选择过程并行执行。如果候选数字组件的选择准则满足原始资格规则,则该幻影候选数字组件有资格赢得选择过程,但那些规则已经被更新用于反事实选择过程,因此,尚未被应用于选择准则。该幻影候选数字组件能够被选择为获胜数字组件,而不是取决于m的值的实际候选选择准则。
MPC集群130能够以例如批次模式并行地进行这两个选择过程,而不增加计算系统MPC1与MPC2之间的RPC的数量。反事实选择过程的结果允许MPC集群130标识在原始资格规则下可能没有资格的数字组件。
反事实选择过程能够具有与实际选择过程相同的形式,并且为了使数字组件有资格用于选择过程,数字组件必须满足某些分布要求。反事实选择过程通过应用实际选择过程应用的原始资格规则除外的所有分布规则来测量资格规则被更新时会发生的情况。
反事实选择过程允许系统确定如果某个特定的数字组件是实验中不同组的一部分,该数字组件是否有资格被分布。
如上所述,示例过程300和400在没有由MPC集群130执行的(多个)MPC过程的许多细节的情况下确定用于实验组的数字组件的资格,以选择获胜的数字组件,并在对数字组件请求的响应中包括实验组标识符。下面的部分提供了能够在示例过程300和400上使用的附加实施方式细节。
MPC集群130的计算机MPC1和MPC2能够执行使用秘密份额的安全MPC过程,以确定用于将用户指配给实验组的各种参数。对于每个选择准则和每个数字组件请求,MPC集群130执行下列函数c=peid mod(p2);x=c mod p;y=c div p;和m=(k×x+y)mod p中的每一个。为了保护用户隐私,使用秘密份额从客户端设备110传输peid,并且MPC集群130的每个服务器分离地接收peid的一个秘密份额。其它输入参数,诸如p,k,r,s,
Figure BDA0003944005830000291
不是敏感信息,并且因此能够以明文在MPC1与MPC2之间分享。在一些实施方式中,也在秘密份额中处理其它输入参数。
在数字组件请求中,MPC1和MPC2在Zq中接收peid的加法秘密份额,Zq表示[0,q-1]中的任意大的整数集合。换言之,MPC1和MPC2分别接收[peid1]和[peid2]。这里,q在O(2128)中,并且p在O(10,000)中。换言之,q>>p。例如,q能够是大的素数,其中,Zq中的加法秘密份额具有从[0,q-1]随机选择的值。
MPC服务器MPC1和MPC2中的每一个使用其要保持隐私的数据的相应秘密份额分开地且本地地执行一系列函数。例如,MPC1本地计算[c1]=[peid1]mod(p2);[x1]=[c1]mod p;[y1]=[c1]div p;和[m1]=(k×[x1]+[y1])mod p。
类似地,MPC2本地计算[c2]=[peid2]mod(p2);[x2]=[c2]mod p;[y1]=[c2]divp;和[m2]=(k×[x2]+[y2])mod p。如上所述,括号指定参数的秘密份额。
由于安全MPC集群130的结构,[x1]和[x2]是Zp中的x的加法秘密份额,[y1]和[y2]是Zp中的y的加法秘密份额,并且[m1]和[m2]是Zp中的m的加法秘密份额。
对于每个缓存的数字组件及其选择准则sc,MPC1和MPC2然后能够协作地执行秘密份额比较算法,以确定特定实验标识符是在暴露组还是保留组中。例如,MPC1和MPC2能够协作地执行秘密份额比较算法来评估is_in_exposed_groupsc=m≥r AND m≤s,和
Figure BDA0003944005830000292
能够使用MPC协议执行比较算法,并且结果例如能够是Z2中的加法秘密份额,其表示具有[0,2-1]中的整数值(即,值0或1)的秘密份额。例如,Z2中的加法秘密份额意味着每个加法秘密份额值为0和1。两个这样的秘密份额能够表示布尔类型的秘密消息。如果两个加法秘密份额相同,则对应的秘密消息为假。否则对应的秘密消息为真。
在一些实施方式中,MPC1计算
[is_in_exposed_groupr,1]=1–([m1]<r)
[is_in_exposed_groups,1]=1–([m1]>s)
Figure BDA0003944005830000301
Figure BDA0003944005830000302
类似地,MPC2计算
[is_in_exposed_groupr,2]=1–([m2]<r)
[is_in_exposed_groups,2]=1–([m2]>s)
Figure BDA0003944005830000303
Figure BDA0003944005830000304
对于为选择资格评估的每个缓存的数字组件,存在x个肯定条件,其在Z2中表示为秘密消息集合。例如,这些肯定条件能够被表示为{[conditionpositive,1],…[conditionpositive,x]}。这些条件能够与用户组成员资格、频率控制、内容分布规则和调步规则相关。这些条件中的每一个都必须为真(例如,表示为值1),以便缓存的数字组件有资格用于选择过程。换言之,必须满足所有x个肯定条件,以便缓存的数字组件成为供MPC集群130选择的候选。
存在y个否定条件,其在Z2中被表示为秘密消息集合。例如,这些否定条件能够被表示为{[conditionnegative,1],……[conditionnegative,y]}。y条件中的每一个都必须为假(例如,表示为值0),以便缓存的数字组件成为供MPC集群130选择的候选。
肯定条件的示例包括特定用户组中的成员资格、值和调步约束以及隐私保护规则。例如,内容的分布能够通过值和调步控制技术由来自数字组件提供商160的输入控制。数字组件提供商能够为选择值指定一段时间上的总阈值,以实现措施来确保包括数字组件的运动的资源不会在活动期间过早耗尽。例如,数字组件提供商160能够指定来自数字组件提供商160的选择数字组件,或者一周的过程中的特定数字组件的选择值的总和被限制为8000个单位的最大值。一旦达到选择值的最大总和,对其施加最大值的特定数字组件将不再有资格用于被分布到客户端设备110的选择过程,直到该时间段(例如,一周)结束。
数字组件提供商还能够指定速度或步速,在该速度下,正达到针对特定数字组件的来自数字组件提供商160的选择数字组件的选择值的阈值。例如,数字组件提供商160能够指定在一个月的过程上必须以每天少于250个单位的步速达到6000个单位的最大阈值。一旦达到选择值的每日总和,由数字组件提供商160提供的、对其施加调步的数字组件将不再有资格用于被分布到客户端设备110的选择过程,直到该时间段(例如,一天)结束。
除了根据内容分布规则强制执行数字组件资格外,隐私保护选择过程还通过保护用户的k-匿名性来保护用户的隐私并改进用户体验,以便将被选择的任何组件提供给至少k个其它用户。通过确保将特定数字组件提供给阈值数量的其它用户,系统防止了一种用户瞄准形式,称为微瞄准,该微瞄准将用户狭窄地瞄准到一些用户可能感到不舒服的程度。例如,针对并分布到只有少数用户的数字组件可能会感觉过于个性化,并且用户可能对数字组件的特殊性感到被孤立或不舒服。隐私保护选择过程确保将数字组件被分布给足够广泛的受众,使得用户对他们接收的数字组件以及数字组件的目标受众的大小感到满意。
否定条件的示例包括关于减少或消除正被呈现给他们的内容或数字组件的用户偏好。例如,用户通常偏好在跨多个不同网站导航时不连续地示出相同的第三方内容,所以在短时间段内跨多个不同网站向同一用户连续地分布相同的第三方内容会导致计算资源浪费,这些计算资源被用于分布用户不想看到的内容,并且可能会忽略。限制特定用户暴露于同一第三方内容的次数的一种方法是利用频率控制技术,该频率控制技术防止同一用户在短时间段内被暴露于同一第三方内容超过指定次数,例如,任何连续的5分钟10分钟,或另一适当时间段。
系统通过从用户接收静音数字组件的信息而允许进一步的用户输入,或者防止数字组件被呈现给他们达到一段时间。例如,用户可以选择将他们已经被呈现的特定数字组件静音五天的时间段。在一些实施方式中,时间段能够由客户端设备110、MPC集群130、DSP150、数字内容提供商160或SSP170,基于内容项的类型和/或用户提供的反馈的类型以及其它因素来指定。
在该特定示例中,MPC1针对给定的数字组件保存{[conditionpositive,1,1],…[conditionpositive,x,1]}和{[conditionnegative,1,1],…[conditionnegative,y,1]},这些是表示是否满足每个条件的布尔值的秘密份额。例如,如果满足了第一肯定条件(conditionpositive,1),则[conditionpositive,1,1]将是一的秘密布尔值的第一秘密份额。
类似地,MPC2保存{[conditionpositive,1,2],…[conditionpositive,x,2]}和{[conditionnegative,1,2],…[conditionnegative,y,2]},这些也是表示是否满足每个条件的布尔值的秘密份额。
对于缓存的数字组件,为了使用算法,诸如GMW(Goldreich-Micali-Wigderson)协议或乱码电路,以及不经意传输扩展(OTe)来计算候选参数is_dc_a_candidate,该候选参数表示缓存的数字组件是否为用于选择的候选,MPC1将肯定条件集合的秘密份额附加有[is_in_exposed_groupr,1]和[is_in_exposed_groups,1]。肯定条件的组合集合为{[conditionpositive,1,1],……[conditionpositive,x,1],[is_in_exposed_groupr,1],[is_in_exposed_groups,1]}。
类似地,MPC2将肯定条件集合的秘密份额附加有[is_in_exposed_groupr,2]和[is_in_exposed_groups,2]。肯定条件的组合集合为{[conditionpositive,1,2],……[conditionpositive,x,2],[is_in_exposed_groupr,2],[is_in_exposed_groups,2]}。
GMW协议或乱码电路被用于确定数字组件的所有肯定条件是否为真,以及数字组件的否定条件中的至少一个是否为假。如果是,则数字组件是选择过程的候选。在其它实施方式中,能够由MPC1和MPC2对秘密份额执行布尔运算,以确定所有肯定条件是否为真以及否定条件中的至少一个是否为假。然而,GMW协议更加高效,并且较少涉及MPC1和MPC2之间的往返计算。在利用OTe完成GMW协议之后,MPC1保存用于数字组件的候选参数的第一秘密份额[is_dc_a_candidate1],并且MPC2保存用于相同数字组件的候选参数的第二秘密份额[is_dc_a_candidate2]。MPC1和MPC2能够为每个缓存的数字组件和可用于选择的任何JIT数字组件确定候选参数的秘密份额。
该过程能够使用两个比较测试用于是否将用户/应用程序112指配给暴露组的每个确定,并且因此基于是否m∈[r,s]来激活每个实验标识符作为暴露组的一部分。秘密份额比较过程在计算上能够是昂贵的,其需要在MPC集群130内的服务器MPC1和MPC2之间的多次往返操作。
在一些实施方式中,用于确定是否激活特定实验标识符的协议能够被改进或优化。在一个示例中,通过限定m′=(m-r)mod p,给定m,r,s∈Zp和r≤s,能够证明,当且仅当m′≤(s-r)时,m∈[r,s]。在限定必须满足的约束的方程的这种简化中,m′≤(s-r)的评估仅需要一个比较测试而不是如上所述需要两个比较测试。这减少了NPC1与NPC2之间消耗的带宽量,并降低了确定用户是否属于实验组时的延迟和计算成本。由于该过程可以在请求数字组件和响应于该请求提供数字组件的时间之间实时执行,所以减少延迟对于减少客户端设备110处的错误和改近用户体验至关重要。
MPC1和MPC2能够使用这种改进来从事秘密份额比较测试算法。在完成比较时,MPC1保存[is_in_exposed_group1]=(([m1]-r)mod p)≤(s-r)。类似地,MPC2保存[is_in_exposed_group2]=(([m2]-r)mod p)≤(s-r)。也就是说,对于每个数字组件,每个MPC服务器都保存暴露参数is_in_exposed_group的秘密份额,该暴露参数表示用户是否在数字组件的暴露组中。
因此,MPC1所保存的肯定条件集合为{[conditionpositive,1,1],……[conditionpositive,x,1],[is_in_exposed_group1]}。因此,MPC2所保存的肯定条件集合为{[conditionpositive,1,2],……[conditionpositive,x,2],[is_in_exposed_group2]}。
使用这些条件,MPC集群130然后使用OTe继续执行GMW算法。
这种改进将所需的比较测试数量减少一半,并将为GMW协议构建的真值表中的行数减少一半,而不增加MPC集群130中的服务器之间所需的往返操作的数量。
对于每个数字组件请求,每个数字组件(及其对应的选择准则)可以与下列实验标识符相关联,如果is_in_exposed_group为真则激活的eidexperiment,或者如果is_in_holdback_group为真则激活的eidcontrol。这些参数能够基于为其生成请求的用户是否应被指配给数字组件的实验组而每数字组件变化。
向应用程序112返回并且然后向聚合报告服务器180返回可变数量的eids,如图3和图4的步骤4中所述,系统能够利用布隆滤波器来降低带宽和存储成本。
例如,如果针对数字组件请求将被激活的eids的预期数量为N,则针对期望FPR,MPC集群130能够计算散列函数F的最佳或目标数量,以及针对布隆滤波器的每peid的比特数量B。
接下来,MPC1和MPC2能够创建大小为N×B的计数布隆滤波器R,其中,每个元素的值都在[0,number_of_cached_digital_components]内。这里R=reconstruct(R1,R2),并且MPC1和MPC2能够分别创建阵列R1和R2。两个阵列的大小都为N×B,在Zp中包含N×B个加法秘密份额。每个阵列都被初始化为0。
为了最小化带宽消耗,MPC1和MPC2执行以下密码协议以构造计数布隆滤波器R,然后将R转换成正常布隆滤波器,其中,每个元素是Z2中的加法秘密份额。
对于eidexperiment,针对每个散列函数{f1,...fF},fi(eidexperiment)∈[0,N×B-1]保持为真。针对每个散列函数fi∈{f1,...fF},MPC1将阵列R1[fi(eidexperiment)]增量[is_in_exposed_group1]。例如,MPC1执行操作R1[fi(eidexperiment)]+=[is_in_exposed_group1]。
类似地,MPC2将阵列R2[fi(eidexperiment)]增量[is_in_exposed_group2]。例如,MPC2执行操作R2[fi(eidexperiment)]+=[is_in_exposed_group2]。
为了将eidcontrol插入到同一个布隆滤波器中,针对每个散列函数fi∈{f1,...fF},MPC1将阵列R1[fi(eidcontrol)]增量[is_in_holdback_group1]。例如,MPC1执行操作R1[fi(eidcontrol)]+=[is_in_holdback_group1]。
类似地,MPC1将阵列R2[fi(eidcontrol)]增量[is_in_holdback_group2]。例如,MPC1执行操作R2[fi(eidcontrol)]+=[is_in_holdback_group2]。
另外,MPC2预先选择伪随机函数(PRF),其中,PRF:Z×Z→{0,1}。另外,MPC2为数字组件响应选择随机数。这里,R2表示MPC2在Z2中的结果布隆滤波器:R2′[i]=PRF(nonce,i)。在一些实施方式中,这些步骤由MPC1而不是MPC2执行。
然后,MPC2构造AND门的乱码电路来构造函数ceil(log2(number_of_cached_bids)+1),使得MPC1能够计算其秘密份额的结果阵列R1′[i],使得R1′[i]和R2′[i]是秘密布尔消息R[i]>0的Z2中的两个加法秘密份额。这种乱码电路计算需要在MPC1和MPC2之间的一次往返计算。
在步骤4中,MPC集群130向应用程序112返回数字组件响应。取决于上面确定的m的值,响应包括与实际选择过程中获胜的选择数字组件相关联的eidcontrol,或者与反事实选择过程中获胜的选择数字组件相关联的eidholdback,或者不包括两个实验标识符中的任一个。
MPC1和MPC2然后将R1′和随机数分别作为数字组件响应的一部分返回给应用程序112。如果MPC1从应用程序112接收到原始数字组件请求,并且MPC2需要经由MPC1将其结果返回给浏览器,则MPC2可以数字地签名然后加密其结果并经由MPC1将PublicKeyEncrypt(5ign(nonce,MPC2_private_key),browser_public_key)返回给浏览器,以便防止MPC1窃听或伪造MPC2的结果。在一些实施方式中,MPC1还可以加密然后对其结果进行数字地签名。
在过程400的步骤5中,应用程序112在本地存储设备中累积用于暴露组或保留组的peid以及相关联的元数据。例如,应用程序112在其缓存中累积实验标识符。应用程序能够与一些实验的暴露组相关联,也可以与其它实验的保留组相关联。
在过程400的步骤6中,所渲染的数字组件,其与应用程序112相关联,通过聚合测量功能,诸如应用程序112原生的聚合测量API,向DSP 150发送报告。该报告能够包含与报告相关联的peid列表。例如,报告能够包括先前构造的布隆滤波器以及与数字组件的渲染相关联的测量,诸如数字组件被示出的时间量,用户的注意力是否集中在数字组件上,其它应用程序是否正在运行,以及数字组件是否可见,以及其它测量。
在过程400的步骤7中,在累积了阈值数量的报告之后,DSP 150以秘密份额将接收到的报告上传到聚合报告服务器180。例如,DSP 150能够周期性地将秘密份额中的若干加密报告上传到聚合报告服务器180,使得DSP 150无权访问报告的明文。DSP 150能够检测是否已经累积了阈值数量的报告,并将报告以批次(即,秘密份额)报告上传到聚合报告服务器180。
在过程400的步骤8中,DSP150查询聚合报告服务器180以获得与每个peid相关联的指标。例如,DSP 150能够从聚合报告服务器180提供对各种分析、测量和其它参数的请求。
图5是图示用于发出和实现隐私保护实验监测机制的示例过程500的流程图。过程500的操作能够例如由应用程序112、MPC集群130、DSP 150和/或聚合报告服务器180实现。过程500的操作也能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程500的操作。
过程500开始于由安全多方计算(MPC)系统的第一服务器并从用户设备上的应用程序接收对数字内容的请求,其中,该请求包括标识与设备相关联的应用程序实例或设备本身的应用程序实例标识符的第一秘密份额(502)。例如,MPC集群130能够接收对数字内容的请求,如上文参考图2的步骤A和图3-4的步骤1所描述的。应用程序实例标识符标识正在特定设备上运行的应用程序(例如,示例新闻应用程序的会话)的实例,或者标识设备本身。
过程500响应于接收到请求并由安全MPC系统的第一服务器继续,与安全MPC系统的第二服务器协作,进行隐私保护选择过程,以从数字组件集合中选择第一获胜数字组件,其中,每个数字组件具有对应的(i)唯一实验标识符和(ii)唯一控制标识符(504)。数字组件集合能够包括缓存的数字组件,缓存的数字组件具有匹配与请求一起包括的查找密钥的缓存查找密钥。也就是说,数字组件集合能够是下列缓存的数字组件,由请求的查找密钥对其定义的场境信号匹配由数字组件的缓存查找密钥定义的场境信号。第一MPC系统能够将请求的查找密钥与缓存的数字组件的缓存查找密钥进行比较。
进行隐私保护选择过程包括,针对数字组件集合中的每个数字组件,与第二服务器协作并基于资格规则集合,确定候选参数的第一秘密份额,该候选参数表示数字组件是否是用于在隐私保护选择过程中的选择的有资格候选(506)。
例如,选择过程包括基于资格规则集合确定数字组件是否为用于选择的候选。该候选确定过程的结果是,MPC1和MPC2中的每一个都为数字组件集合中的每个数字组件保存候选参数is_dc_a_candidate的份额,其指示针对每个数字组件,该数字组件是否为用于选择的候选。以这种方式,MPC集群130的计算机不明文保存候选的实际资格或候选列表。在一些实施方式中,两个服务器中的每一个都能够明文缓存候选(不是隐私敏感的)。
在一些实施方式中,缓存的候选的一些部分可能是敏感信息,并且因此,两个服务器中的任何一个都不能明文保存候选。在这种情况下,能够在秘密份额中保存缓存的数字组件的敏感信息。
与上文关于图2所述的过程200类似,对于每个条件数字组件(例如,具有至少一个条件的数字组件)的每个条件,每个计算系统MPC1和MPC2能够存储用于数字组件的每个条件的参数的相应秘密份额。以这种方式,只要至少有一个MPC计算系统是诚实的,无论是计算系统NPC1还是NPC2都不明文知道参数的值。每个数字组件能够以零个或多个条件为条件。对于给定的数字组件选择过程,一些数字组件能够具有与其它数字组件不同的条件和/或不同数量的条件。
虽然上文提供了一些示例条件,但是也能够使用其它条件。一般而言,计算系统MPC1和MPC2能够使用安全MPC过程来计算条件参数的秘密份额。用于确定条件参数的准则和技术能够变化。在一些实施方式中,能够从另一计算系统接收条件参数的秘密份额,例如,使得计算系统MPC1和MPC2不计算条件参数。
计算系统MPC1和MPC2能够使用条件参数的秘密份额来确定条件数字组件是否为数字组件选择过程的候选。计算系统MPC1和MPC2能够使用用于条件数字组件的(多个)条件参数的秘密份额,针对每个有条件数字组件i计算候选参数is_dc_a_candidatei的秘密份额。一般而言,如果有条件数字组件以上面描述的每个条件为条件,则数字组件i的候选参数能够通过下列方式被计算,确定,例如,是否所有肯定条件都是真,例如,在一些实施方式中为一或在其它实施方式中为非零,以及是否至少有一个否定条件为假,例如,零,如上文关于图4的过程400的步骤2和3所描述的。
由于每个条件参数的值在秘密份额中,所以计算系统MPC1和MPC2能够在安全MPC过程中使用往返远程过程调用(RPC)协作,以使用条件参数的秘密份额确定数字组件i的候选参数的对应秘密份额[is_dc_a_candidatei,1]和[is_dc_a_candidatei,2]。能够使用用于确定逻辑AND操作的任何适当的秘密份额算法来确定数字组件i的候选参数的秘密份额[is_dc_a_candidatei,1]和[is_dc_a_candidatei,2]。例如,如上所述,可以使用GMW协议或乱码电路。计算系统MPC1和MPC2能够针对那些条件仅使用条件参数的秘密份额来确定候选参数的秘密份额。随着该安全MPC过程的结束,计算系统MPC1保存用于第i个有条件数字组件的候选参数的第一秘密份额[is_dc_a_candidatei,1],计算系统MPC2保存用于第i个有条件数字组件的候选参数的第二秘密份额[is_dc_a_candidatei,2]。
在一些实施方式中,计算系统MPC1和MPC2使用乱码电路协议评估每个数字组件的条件。在该示例中,计算系统MPC1或MPC2中的一个能够构造乱码电路。对于该示例,假设计算系统MPC1构造乱码电路。计算系统MPC1知道其自己的秘密份额,并且也知道只有一个可能的比特模式是计算系统MPC2的秘密份额必须保存的,以便数字组件的候选参数变为真,或一。
计算系统MPC1基于选择准则确定数字组件的顺序,该选择准则能够是明文值,与每个数字组件相关联。类似地,计算系统MPC2基于选择准则确定数字组件的顺序。选择准则也能够被称为选择值。这两个顺序应完全相同,因为对排序过程的输入在两个计算系统MPC1和MPC2上是相同的。每个计算系统MPC1和MPC2能够确定数字组件的顺序。每个顺序能够包括先前针对候选资格评估的候选数字组件和其它数字组件。顺序能够是从具有最高选择值的数字组件到具有最低选择值的数字组件。在一些实施方式中,用于顺序的选择值能够是将被提供给资源的发布者140的值,所选择的数字组件将通过资源的发布者被显示,例如,在任何与DSP 150和/或SS P170的分享之后,加上任何适用的提升。
由于选择值是明文的,所以计算系统MPC1和MPC2不必执行任何往返计算来确定数字组件的顺序。作为代替,每个计算系统MPC1和MPC2能够独立地对选择值排序。如果选择值作为秘密份额存储在每个计算系统MPC1和MPC2处,并且每个计算系统MPC1和MPC2具有每个选择值的相应秘密份额,则计算系统MPC1和MPC2能够使用往返计算执行安全MPC过程,以对选择值排序。如果在两个或更多个选择值之间存在平局,则计算系统MPC1和MPC2能够针对对应于这些选择值的数字组件确定地使用其它元数据来打破平局。
计算系统MPC1和MPC2为每个候选数字组件确定累积值的秘密份额。在概念上,用于给定数字组件的累积值表示从顺序的顶部到用于给定数字组件的选择值的候选数字组件的总数,即使给定数字组件是候选也排除该给定数字组件。也就是说,累积值表示比给定数字组件更有资格用于选择的若干候选数字组件。这一概念示出于下表1。
排序的选择值 is_dc_a_candidate 累积值(acc) 累积值等于0?
最高 0 0 1
第二高 1 0 1
第三高 0 1 0
第四高 1 1 0
…… …… …… ……
表1
在一些实施方式中,用于给定数字组件的累积值表示从顺序顶部到给定数字组件的候选数字组件的总数,如果给定数字组件是候选则包括该给定数字组件。在该示例中,第四列将表示累积值是否等于一而不是零。为了简洁起见,剩余的讨论将就其中给定数字组件的累积值表示从顺序顶部到给定数字组件的候选数字组件的总数的第一示例而言,即使给定数字组件是候选也排除该给定数字组件。
在概念上,在表1中,针对具有等于1的候选参数is_dc_a_candidate的每个数字组件,累积值(acc)随着其从顺序的顶部进展到顺序的底部而递增。如下所述,累积值acc的计算在秘密份额中执行。例如,由于针对最高选择值的候选参数is_dc_a_candidate等于零,所以针对具有最高选择值的数字组件的累积值acc为零。由于针对第二最高数字组件的候选参数is_dc_a_candidate等于一,但是高于第二最高数字组件的选择值中没有一个具有等于一的候选参数is_dc_a_candidate,所以针对第二最高数字组件的累积值acc也为零。按顺序向下移动,基于针对具有值一的第二最高选择值的候选参数is_dc_a_candidate,针对第三最高选择数字组件的候选参数is_dc_a_candidate的累积值acc递增到值一。由于针对第三最高数字组件的候选参数is_dc_a_candidate为零,所以针对第四数字组件的累积值acc不递增并且具有与第三最高数字组件一样的值零。
使用表1,计算系统MPC1和MPC2将选择对应于其整体候选参数is_dc_a_candidate具有值一并且累积值acc具有值零的选择值的数字组件,以用于分布到客户端设备110,如表1的第四列所指示的。这表示对应于其候选参数is_dc_a_candidate具有值一的最高排序选择值的数字组件。由于候选参数is_dc_a_candidate在计算系统MPC1和MPC2的秘密份额中,以保持用户隐私并确保用户数据不被泄露,所以计算系统MPC1和MPC2确定每个数字组件的累积值acc的秘密份额,并使用往返计算来确定哪个数字组件的累积值acc等于零,并且候选参数is_dc_a_candidate等于一。
计算系统MPC1和MPC2能够独立地确定每个数字组件的累积值acc的其秘密份额,而不在一些实施方式中取决于秘密份额算法进行任何往返计算。例如,通过按照从最高到最低的顺序遍历所有数字组件,并对沿途的数字组件的候选参数is_dc_a_candidate求和,计算系统MPC1能够针对每个数字组件i确定累积值acc的第一份额[acci,1],如上文参考表3所描述的。类似地,通过按照从最高到最低的顺序遍历所有数字组件,并对沿途的数字组件的候选参数is_dc_a_candidate求和,计算系统MPC1能够针对每个数字组件i确定累积值acc的第二份额[acci,2]。
计算系统MPC1和MPC2针对每个数字组件确定结果的秘密份额,该结果指示累积值是否具有指定值。指定值能够是值零,如表1的第3和第4列所示。如上所述,累积值为零且整体候选参数is_dc_a_candidate为一的数字组件是候选数字组件中具有最高选择值的数字组件。
计算系统MPC1和MPC2能够进行多轮计算,例如,多个RPC,作为安全MPC过程的一部分,以计算在每个数字组件i的秘密份额方面的平等操作acci==0。该平等操作被用于确定数字组件i的累积值acci是否具有值零。在该过程结束时,计算系统MPC1针对每个数字组件i具有结果acci==0的一个秘密份额,并且计算系统MPC2针对每个数字组件具有结果acci==0的另一秘密份额。
计算系统MPC1和MPC2针对每个数字组件i确定获胜者参数is_dc_the_winneri的秘密份额。计算系统MPC1和MPC2能够基于针对每个数字组件i的累积值acci==0的秘密份额和针对每个数字组件i的候选参数is_dc_a_candidatei的秘密份额来确定获胜者参数is_dc_the_winneri。针对每个数字组件i的获胜者参数is_dc_the_winneri能够是布尔值,该布尔值指示数字组件i是否是选择过程的获胜者,例如,是否响应于数字组件请求选择数字组件i以分布给客户端设备110。
在一些实施方式中,计算系统MPC1和MPC2能够执行秘密份额乘法协议,以针对每个选择值计算秘密份额方面的获胜者参数[is_dc_the_winneri==(is_dc_a_candidatei×=(acci==0))。这能够包括计算系统MPC1和MPC2之间的一个RPC以将两个秘密份额相乘。在该MPC过程结束时,计算系统MPC1具有被表示为[is_dc_the_winneri,1]=[is_dc_a_candidatei,1]x([acci,1]==1)的结果is_dc_the_winneri的一个秘密份额。类似地,计算系统MPC2具有被表示为[is_dc_the_winneri,2]=[is_dc_a_candidatesv,2]x([acci,2]==0)的结果is_dc_the_winneri的另一秘密份额。注意,对于所有的数字组件,至多一个数字组件具有等于一的获胜者参数is_dc_the_winneri,该数字组件为被选择用于分布给客户端设备110的数字组件。所有其它数字组件将等于零。在一些实施方式中,计算系统MPC1和MPC2能够执行秘密份额逻辑操作协议(例如,GMW或乱码电路),以针对每个选择值在秘密份额方面计算获胜者参数[is_dc_the_winneri==(is_dc_a_candidatei AND(acci==0))。
过程500继续,其中,进行隐私保护进一步包括,针对数字组件集合中的每个数字组件,与第二服务器协作并基于应用程序标识符的第一秘密份额和实验值的对应第一秘密份额,确定实验参数的表示应用程序是否在用于应用程序的实验组中的秘密份额(508)。例如,MPC集群130的MPC1能够与MPC2协作并基于应用程序标识符的第一秘密份额和如上文关于图2至图4所描述的实验值的秘密份额,确定实验参数的指示应用程序112是否为用于数字组件的实验组的一部分的秘密份额,诸如eidholdback或eidexposed
过程500继续,基于用于每个数字组件的候选参数的第一秘密份额和用于每个数字组件的选择值,生成表示第一获胜数字组件的选择结果的第一秘密份额(510)。例如,MPC集群130能够基于用于每个数字组件的候选参数的第一秘密份额和用于每个数字组件的选择准则,生成表示第一获胜数字组件的选择结果的第一秘密份额。选择结果能够标识第一获胜数字组件或包括该数字组件。
过程500继续,生成对数字内容请求的响应,该响应包括选择结果的第一秘密份额,以及针对包括第一获胜数字组件的一个或多个数字组件中的每一个,生成表示应用程序是在数字组件的实验组中还是在数字组件的控制组中的数据(512)。例如,MPC集群130生成对数字组件请求的响应,如上文关于图2-4和过程500的步骤502所描述的。响应包括数据,诸如eidholdback或eidexposed,其表示应用程序112是在用于数字组件的实验组还是在用于数字组件的控制组中。
过程500继续,由安全MPC系统的第一服务器向用户设备上的应用程序传输对数字内容的请求的响应(514)。例如,MPC集群130中的MPC1将对数字组件的请求的响应传输到应用程序112。在一些实施方式中,MPC1能够将其自己的第一秘密份额和第二、加密的秘密份额作为对数字组件的请求的响应从MPC2传输到应用程序112。
如上所述,MPC集群130能够使用用于安全MPC过程的乱码电路来确定数字组件是否是选择过程的候选,例如,以确定用于数字组件的候选参数的秘密份额。由于每个数字组件能够有许多条件,例如,在一些情况下超过50,因此每个数字组件的乱码电路中会有许多门。减少门的数量将减少执行安全MPC协议的带宽成本,并显著降低选择数字组件时的延迟。
在同一对输入或中间布尔变量之间存在大量重复计算以及逻辑AND计算,例如,对于相同的数字组件或对于数字组件组。能够使用贪婪算法来避免重复计算子表达式,并且因此减少AND操作的数量。
在上述过程500中,假设候选参数is_dc_a_candidate在ZP中,值为零或一。MPC集群130将从具有最高选择值的数字组件(例如,归因于发布者的部分)从最高到最低遍历所有缓存的数字组件迭代。针对每个缓存的数字组件i,MPC集群130计算累积值acci,然后计算ZP中的acci==0。结果被转换回Z2。从Z2到Zp的转换和返回增加了协议复杂度。使用乱码电路的Zp中的平等测试acci==0能够涉及log2(p)个门,这是显著的性能和带宽成本。
MPC集群130能够在Z2中保持候选参数is_dc_a_candidatei并且在Z2中以低得多的性能和带宽成本利用布尔电路计算累积值acci,然后acci==0。为此,将累积值acci限制为两个可能的值:如果没有候选数字组件具有比当前数字组件i的当前选择值更高的选择值,则为零,或者如果至少一个候选数字组件具有比当前数字组件的当前选择值更高的选择值,则为一。在图500的过程500中,累积值可以大于一,因为累积值针对每个候选数字组件递增。
随着累积值acc的更新后的语义,MPC集群130能够计算获胜者参数is_dc_the_winneri的累积值,同时从最高选择值到最低选择值遍历所有缓存的数字组件迭代,如下所述。针对具有最高选择值的数字组件的累积值acc总是为零。不需要计算。
用于具有第二最高选择值的数字组件的累积值acc总是等于具有最高选择值的数字组件的候选参数is_dc_a_candidate的值。这也不需要计算。
假设MPC群集130已经针对具有第n最高选择值的数字组件计算了累积值acc。针对具有第(n+1)最高选择值的数字组件的累积值acc能够被计算为accn+1=accn OR is_dc_a_candidaten。MPC集群130能够进一步计算获胜者参数is_dc_a_winnern+1=is_dc_a_candidaten+1AND NOT accn+1
MPC集群130可以具有两个门,其中每个缓存的数字组件具有四条线,例如,两条输入线(accn和is_dc_a_candidaten)和两条输出线(accn+1和is_dc_a_winnern+1)。利用这些增强,MPC集群130每个缓存的数字组件仅需要两个门而不是每个都需要几十个门。这种密码过程能够作为过程500的上述步骤中的一个的一部分来执行,诸如步骤506。例如,密码评估能够作为上文关于步骤506所描述的候选资格确定的一部分来执行,其中,所有肯定条件必须为真并且至少一个否定条件为假。在一些实施方式中,诸如特定实验组中的成员资格之类的条件必须为真。
图6是能够被用于执行如上所述的操作的示例计算机系统600的方框图。系统600包括处理器610、存储器620、存储设备630以及输入/输出设备640。组件610、620、630和640中的每一个能够例如使用系统总线650互连。处理器610能够处理用于在系统600内执行的指令。在一些实施方式中,处理器610是单线程处理器。在另一种实施方式中,处理器610是多线程处理器。处理器610能够处理存储在存储器620中或存储设备630上的指令。
存储器620存储系统600内的信息。在一种实施方式中,存储器620是计算机可读介质。在一些实施方式中,存储器620是易失性存储器单元。在另一种实施方式中,存储器620是非易失性存储器单元。
存储设备630能够为系统600提供大容量存储。在一些实施方式中,存储设备630是计算机可读介质。在各种不同的实施方式中,存储设备630能够包括例如硬盘设备、光盘设备、通过网络被多个计算设备(例如,云存储设备)分享的存储设备,或一些其它大容量存储设备。
输入/输出设备640为系统600提供输入/输出操作。在一些实施方式中,输入/输出设备640能够包括一个或多个网络接口设备,例如,以太网卡、串行通信设备,例如,以及RS-232端口,和/或无线接口设备,例如,以及802.11卡。在另一实施方式中,输入/输出设备能够包括被配置成接收输入数据并将输出数据发送到外部设备660,例如,键盘、打印机和显示设备,的驱动设备。然而,也能够使用其它实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
虽然已经在图6中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式能够在其它类型的数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等效物,或者以它们中的一个或多个的组合实现。
本说明书中描述的主题和操作的实施例能够在数字电子电路中实现,或在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等效物,或者以它们中的一个或多个的组合实现。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,其编码在计算机存储介质(或介质)上,以由数据处理装置执行或控制数据处理装置的操作。替代地或另外,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,该信号被生成以编码信息,以用于传输到合适的接收器装置,以被数据处理装置执行。计算机存储介质能够是或被包括在计算机可读存储设备、计算机可读存储基材、随机或串行存取存储器阵列或设备,或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质能够是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还能够是或被包括在一个或多个分离的物理组件或介质(例如,多个CD、磁盘或其它存储设备)中。
本说明书中描述的操作能够被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其它源接收的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机、芯上系统,或者多个前述装置或其组合。装置能够包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(应用程序专用集成电路)。除了硬件之外,装置还能够包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机器或者它们中一个或多个的组合的代码。装置和执行环境能够实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)能够以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且能够以任何形式部署,包括作为独立程序或模块、组件、子例程、对象或适合在计算环境中使用的其它单元。计算机程序能够,但不必对应于文件系统中的文件。程序能够被存储在保存其它程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序能够被部署成在一台计算机上或在位于一个站点或分布在多个站点并由通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出执行动作。过程和逻辑流程也能够由专用逻辑电路来执行,并且装置也能够被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(应用程序专用集成电路)。
作为示例,适合执行计算机程序的处理器包括通用和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备或与其可操作地耦合,以从其接收数据或将数据传输到其中或两者,例如,磁盘、磁光盘或光盘。然而,计算机不必具有这样的设备。此外,计算机能够被嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适合存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或并入。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在具有显示设备的计算机上实现,例如,CRT(阴极射线管)或LCD(液晶显示器)监视器,以向用户显示信息,以及用户可以通过其向计算机提供输入的键盘和定点设备,例如鼠标和轨迹球。也能够使用其它类型的设备来提供与用户的交互;例如,被提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能够以任何形式被接收,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档和从设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施例能够在包括后端组件的计算系统中实现,例如,作为数据服务器,或包括中间件组件,例如,应用程序服务器,或包括前端组件,例如,具有用户能够通过其与本说明书中所述的主题的实施方式交互的图形用户界面或Web浏览器的客户端设备,或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过数字数据通信的任何形式或介质互连,例如,通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互连网络(例如,互联网)和对等网络(例如,ad hoc对等网络)。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行的计算机程序并且彼此具有客户端-服务器关系而产生。在一些实施例中,服务器将数据(例如,HTML页面)传输到客户端设备(例如,出于向与客户端设备交互的用户显示数据和接收用户输入的目的)。在客户端设备处生成的数据(例如,用户交互的结果)能够在服务器处从客户端设备接收。
虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明的范围或可能要求的范围的限制,而应被解释为对特定发明的特定实施例的具体特征的描述。本说明书中在分离的实施例的场境下描述的某些特征也能够在单个实施例中组合实现。相反地,在单个实施例的场境下描述的各种特征也可以分离地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可能在上文中被描述为以某些组合起作用,甚至最初要求保护是这样的,但在一些情况下,来自所要求保护的组合的一个或多个特征能够从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但这不应被理解为要求以所示的特定顺序或以顺序的顺序执行此类操作,或者要求执行所有所示的操作来实现期望结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中各种系统组件的分离不应被理解为在所有实施例中都要求这种分离,并且应当理解,所描述的程序组件和系统通常能够一起被集成在单个软件产品中或被封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其它实施例在所附权利要求的范围内。在一些情况下,权利要求中所叙述的动作能够以不同的顺序执行并且仍实现期望结果。另外,在附图中描绘的过程不一定需要所示的特定顺序,或者为相继的顺序,以实现期望结果。在某些实施方式中,多任务和并行处理可能是有利的。
以下是本公开的各个方面的非详尽列举。
方面1.一种用于隐私保护跨域实验监测的方法,包括:由安全多方计算(MPC)系统的第一服务器从用户设备上的应用程序接收对数字内容的请求,其中,所述请求包括标识所述应用程序的应用程序标识符的第一秘密份额;响应于接收到所述请求并由所述安全MPC系统的所述第一服务器:与所述安全MPC系统的第二服务器协作,进行隐私保护选择过程,以从数字组件集合中选择第一获胜数字组件,其中,每个数字组件具有对应的(i)唯一实验标识符和(ii)唯一控制标识符,所述进行隐私保护选择过程包括:针对所述数字组件集合中的每个数字组件:与所述第二服务器协作并基于资格规则集合确定表示所述数字组件是否是用于在所述隐私保护选择过程中的选择的候选的候选参数的第一秘密份额;并且与所述第二服务器协作并基于所述应用程序标识符的所述第一秘密份额和候选参数值的相应第一秘密份额来确定表示所述应用程序是否在所述数字组件的所述实验组中的实验参数的秘密份额;基于每个数字组件的所述候选参数的所述第一秘密份额和每个数字组件的选择值,生成表示所述第一选择数字组件的选择结果的第一秘密份额;以及生成对数字内容的所述请求的响应,所述响应包括:所述选择结果的第一秘密份额,以及对于包括所述第一选择数字组件的一个或多个数字组件中的每一个,表示所述应用程序是在所述数字组件的所述实验组中还是所述数字组件的控制组中的数据;以及由所述安全MPC系统的所述第一服务器向所述用户设备上的所述应用程序传输对数字内容的所述请求的所述响应。
方面2.根据方面1的方法,其中,表示所述应用程序是在所述数字组件的所述实验组中还是在所述数字组件的控制组中的所述数据由布隆滤波器表示。
方面3.根据方面2的方法,其中,进行隐私保护选择过程以选择第一获胜数字组件包括:
针对所述数字组件集合中的每个数字组件:
向所述布隆滤波器添加对应的(i)唯一实验标识符和(ii)唯一控制标识符。
方面4.根据方面1至3中的任一项的方法,其中,关于所述第一获胜数字组件确定所述应用程序是控制组的一部分还是实验组的一部分包括:
针对与所述数字组件相关联的实验集合中的每个实验,确定关于所述第一获胜数字组件确定所述应用程序是控制组的一部分还是实验组的一部分。
方面5.根据方面1至4中的任一项的方法,其中,所述资格规则集合包括两个或多个资格规则,
其中,第一资格规则的一或多个参数基于实验设计确定,所述实验设计基于特定大小的若干相互正交的拉丁方阵,并且
其中,所述第一资格规则指定所述一个或多个参数的值的第一范围。
方面6.根据方面5的方法,进一步包括:
基于所述实验设计,更新所述第一资格规则的所述一个或多个参数,以指定所述一个或多个参数的值的第二范围;以及
由所述安全MPC系统的所述第一服务器并与所述安全MPC系统的所述第二服务器协作,进行反事实选择过程,以通过应用包括所述更新后的第一资格规则的所述资格规则集合,从所述选择准则集合中选择第二获胜选择准则。
方面7.根据方面1至6中的任一项的方法,其中,由所述安全MPC系统的所述第一服务器向所述用户设备上的所述应用程序传输对数字内容的所述请求的所述响应包括:
由所述安全MPC系统的所述第一服务器从所述安全MPC系统的所述第二服务器接收对数字内容的所述请求的所述响应的加密秘密份额;
由所述安全MPC系统的所述第一服务器加密对数字内容的所述请求的所述响应的第二秘密份额,以生成所述响应的加密第二秘密份额;以及
由所述安全MPC系统的第一服务器向所述用户设备上的所述应用程序传输所述响应的所述加密秘密份额和所述响应的所述加密第二秘密份额。
方面8.根据方面1至7中的任一项的方法,其中,所述资格规则集合包括一个或多个资格规则,
其中,所述资格规则集合包括至少一个肯定条件和至少一个否定条件,并且
其中,所述选择准则集合被存储在所述安全MPC系统处。
方面9.根据方面1至8中的任一项的方法,其中,将与所述选择准则相关联的所述唯一实验标识符附接到对数字内容的所述请求的响应包括将所述唯一实验标识符添加到所述响应所包括的唯一标识符的列表中,并且
其中,将与所述选择准则相关联的所述唯一控制标识符附接到对数字内容的所述请求的所述响应包括将所述唯一控制标识符添加到唯一标识符的所述列表中,并且
其中,唯一标识符的所述列表使用布隆滤波器表示。
方面10.根据方面9的方法,进一步包括:
由所述应用程序向与所述选择的数字内容相关联的需求侧平台传输包括唯一标识符的所述列表的第一报告;以及
由与所述选择的数字组件相关联的所述需求侧平台向聚合报告服务器上传包括所述第一报告的一个或多个报告的批次。
方面11.一种系统,包括:
安全多方计算系统的第一服务器,以及
安全多方计算系统的第二服务器
所述系统被配置成执行根据方面1至10中的任一项的方法。

Claims (21)

1.一种用于隐私保护跨域实验监测的方法,包括:
由安全多方计算(MPC)系统的第一服务器并从用户设备上的应用程序接收对数字内容的请求,其中,所述请求包括标识与所述设备相关联的应用程序实例或标识所述设备本身的应用程序实例标识符的第一秘密份额;
响应于接收到所述请求并且由所述安全MPC系统的所述第一服务器:
与所述安全MPC系统的第二服务器协作,进行隐私保护选择过程,以从数字组件集合中选择第一获胜数字组件,其中,每个数字组件具有对应的(i)唯一实验标识符和(ii)唯一控制标识符,所述进行隐私保护选择过程包括:
针对所述数字组件集合中的每个数字组件:
与所述第二服务器协作并基于资格规则集合确定表示所述数字组件是否是用于在所述隐私保护选择过程中的选择的有资格候选的候选参数的第一秘密份额;
与所述第二服务器协作并基于所述应用程序标识符的所述第一秘密份额和候选参数值的相应第一秘密份额确定表示所述应用程序是否在所述数字组件的实验组中的实验参数的秘密份额;
基于每个数字组件的所述候选参数的所述第一秘密份额和每个数字组件的选择值,生成表示所述第一获胜数字组件的选择结果的第一秘密份额;以及
生成对数字内容的所述请求的响应,所述响应包括:所述选择结果的所述第一秘密份额,以及对于包括所述第一获胜数字组件的一个或多个数字组件中的每一个,表示所述应用程序是在所述数字组件的所述实验组还是在所述数字组件的控制组中的数据;以及
由所述安全MPC系统的所述第一服务器向所述用户设备上的所述应用程序传输对数字内容的所述请求的所述响应。
2.根据权利要求1所述的方法,其中,表示所述应用程序是在所述数字组件的所述实验组中还是在所述数字组件的控制组中的所述数据由布隆滤波器表示。
3.根据权利要求2所述的方法,其中,进行隐私保护选择过程以选择第一获胜数字组件包括:
针对所述数字组件集合中的每个数字组件:
向所述布隆滤波器添加对应的(i)唯一实验标识符,如果所述应用程序在所述实验组中,或者(ii)唯一控制标识符,如果所述应用程序在所述控制组中。
4.根据任一前述权利要求所述的方法,其中,关于每个数字组件确定所述应用程序是控制组的一部分还是实验组的一部分包括:
针对与所述数字组件相关联的实验集合中的每个实验,关于每个数字组件确定所述应用程序是控制组的一部分还是实验组的一部分。
5.根据任一前述权利要求所述的方法,其中,所述资格规则包括两个或多个资格规则,
其中,第一资格规则的一或多个参数基于实验设计确定,所述实验设计基于特定大小的若干相互正交的拉丁方阵,并且
其中,所述第一资格规则指定所述一个或多个参数的值的第一范围。
6.根据权利要求5所述的方法,进一步包括:
基于所述实验设计,更新所述第一资格规则的所述一个或多个参数,以指定所述一个或多个参数的值的第二范围;以及
由所述安全MPC系统的所述第一服务器与所述安全MPC系统的所述第二服务器协作,进行反事实选择过程,以通过应用包括所更新的第一资格规则的所述资格规则集合,从所述选择准则集合中选择第二获胜选择准则。
7.根据任一前述权利要求所述的方法,其中,由所述安全MPC系统的所述第一服务器向所述用户设备上的所述应用程序传输对数字内容的所述请求的所述响应包括:
由所述安全MPC系统的所述第一服务器从所述安全MPC系统的所述第二服务器接收对数字内容的所述请求的所述响应的加密秘密份额;
由所述安全MPC系统的所述第一服务器加密对数字内容的所述请求的所述响应的第二秘密份额,以生成所述响应的加密第二秘密份额;以及
由所述安全MPC系统的第一服务器向所述用户设备上的所述应用程序传输所述响应的所述加密秘密份额和所述响应的所述加密第二秘密份额。
8.根据任一前述权利要求所述的方法,其中,所述资格规则集合包括一个或多个资格规则,
其中,所述资格规则集合包括至少一个肯定条件,并且
其中,所述选择准则集合被存储在所述安全MPC系统处。
9.根据权利要求8所述的方法,其中,所述资格规则集合包括至少一个否定条件。
10.根据任一前述权利要求所述的方法,其中,将与所述选择准则相关联的所述唯一实验标识符附接到对数字内容的所述请求的响应包括将所述唯一实验标识符添加到所述响应所包括的唯一标识符的列表中,并且
其中,将与所述选择准则相关联的所述唯一控制标识符附接到对数字内容的所述请求的所述响应包括将所述唯一控制标识符添加到唯一标识符的所述列表中,并且
其中,唯一标识符的所述列表使用布隆滤波器表示。
11.根据权利要求10所述的方法,进一步包括:
由所述应用程序向与所述选择的数字内容相关联的需求侧平台传输包括唯一标识符的所述列表的第一报告;以及
由与所述选择的数字组件相关联的所述平台向聚合报告服务器上传包括所述第一报告的一个或多个报告的批次。
12.根据权利要求10所述的方法,进一步包括:
由所述应用程序向聚合报告服务器传输包括唯一标识符的所述列表的第一报告。
13.一种系统,包括:
一个或多个处理器;以及
一个或多个存储器元件,包括指令,所述指令当被执行时使所述一个或多个处理器执行操作,所述操作包括:
由安全多方计算(MPC)系统的第一服务器从用户设备上的应用程序接收对数字内容的请求,其中,所述请求包括标识与所述设备相关联的应用程序实例或标识所述设备本身的应用程序实例标识符的第一秘密份额;
响应于接收到所述请求并由所述安全MPC系统的所述第一服务器:
与所述安全MPC系统的第二服务器协作,进行隐私保护选择过程,以从数字组件集合中选择第一获胜数字组件,其中,每个数字组件具有对应的(i)唯一实验标识符和(ii)唯一控制标识符,所述进行隐私保护选择过程包括:
针对所述数字组件集合中的每个数字组件:
与所述第二服务器协作并基于资格规则集合确定表示所述数字组件是否是用于在所述隐私保护选择过程中的选择的有资格候选的候选参数的第一秘密份额;
与所述第二服务器协作并基于所述应用程序标识符的所述第一秘密份额和候选参数值的相应第一秘密份额确定表示所述应用程序是否在所述数字组件的所述实验组中的实验参数的秘密份额;
基于每个数字组件的所述候选参数的所述第一秘密份额和每个数字组件的选择值,生成表示所述第一获胜数字组件的选择结果的第一秘密份额;以及
生成对数字内容的所述请求的响应,所述响应包括:所述选择结果的第一秘密份额,以及对于包括所述第一获胜数字组件的一个或多个数字组件中的每一个,表示所述应用程序是在所述数字组件的所述实验组中还是在所述数字组件的控制组中的数据;以及
由所述安全MPC系统的所述第一服务器向所述用户设备上的所述应用程序传输对数字内容的所述请求的所述响应。
14.根据权利要求13所述的系统,其中,表示所述应用程序是否在所述数字组件的所述实验组中或是所述数字组件的控制组中的所述数据由布隆滤波器表示。
15.根据权利要求14所述的系统,其中,进行隐私保护选择过程以选择第一获胜数字组件包括:
针对所述数字组件集合中的每个数字组件:
向所述布隆滤波器添加对应的(i)唯一实验标识符,如果所述应用程序在所述实验组中,或者(ii)唯一控制标识符,如果所述应用程序在所述控制组中。
16.根据权利要求13至15中的任一项所述的系统,其中,关于每个数字组件确定所述应用程序是控制组的一部分还是实验组的一部分包括:
针对与所述数字组件相关联的实验集合中的每个实验,关于每个数字组件确定所述应用程序是控制组的一部分还是实验组的一部分。
17.根据权利要求13至16中的任一项所述的系统,进一步包括所述安全多方计算系统的所述第二服务器。
18.一种编码有指令的非暂时性计算机存储介质,所述指令在被分布式计算系统执行时,使所述分布式计算系统执行操作,所述操作包括:
由安全多方计算(MPC)系统的第一服务器从用户设备上的应用程序接收对数字内容的请求,其中,所述请求包括标识与所述设备相关联的应用程序实例或标识所述设备本身的应用程序实例标识符的第一秘密份额;
响应于接收到所述请求并由所述安全MPC系统的所述第一服务器:
与所述安全MPC系统的第二服务器协作,进行隐私保护选择过程,以从数字组件集合中选择第一获胜数字组件,其中,每个数字组件具有对应的(i)唯一实验标识符和(ii)唯一控制标识符,所述进行隐私保护选择过程包括:
针对所述数字组件集合中的每个数字组件:
与所述第二服务器协作并基于资格规则集合确定表示所述数字组件是否是用于在所述隐私保护选择过程中的选择的有资格候选的候选参数的第一秘密份额;
与所述第二服务器协作并基于所述应用程序标识符的所述第一秘密份额和候选参数值的相应第一秘密份额确定表示所述应用程序是否在所述数字组件的所述实验组中的实验参数的秘密份额;
基于每个数字组件的所述候选参数的所述第一秘密份额和每个数字组件的选择值,生成表示所述第一获胜数字组件的选择结果的第一秘密份额;以及
生成对数字内容的所述请求的响应,所述响应包括:所述选择结果的第一秘密份额,以及对于包括所述第一获胜数字组件的一个或多个数字组件中的每一个,表示所述应用程序是在所述数字组件的所述实验组中还是在所述数字组件的控制组中的数据;以及
由所述安全MPC系统的所述第一服务器向所述用户设备上的所述应用程序传输对数字内容的所述请求的所述响应。
19.根据权利要求18所述的非暂时性计算机存储介质,其中,表示所述应用程序是所述数字组件的所述实验组中还是在所述数字组件的控制组中的所述数据由布隆滤波器表示。
20.根据权利要求19所述的非暂时性计算机存储介质,其中,进行隐私保护选择过程以选择第一获胜数字组件包括:
针对所述数字组件集合中的每个数字组件:
向所述布隆滤波器添加对应的(i)唯一实验标识符,如果所述应用程序在所述实验组中,或者(ii)唯一控制标识符,如果所述应用程序在所述控制组中。
21.根据权利要求18至20中的任一项所述的非暂时性计算机存储介质,其中,关于每个数字组件确定所述应用程序是控制组的一部分还是实验组的一部分包括:
针对与所述数字组件相关联的实验集合中的每个实验,关于每个数字组件确定所述应用程序是否为控制组或实验组的一部分。
CN202280004199.8A 2021-06-03 2022-04-05 隐私保护跨域实验组分区与监测 Pending CN115943375A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL283674 2021-06-03
IL283674A IL283674B2 (en) 2021-06-03 2021-06-03 Distribution and monitoring of cross-disciplinary experimental groups to maintain privacy
PCT/US2022/023391 WO2022256080A1 (en) 2021-06-03 2022-04-05 Privacy-preserving cross-domain experimental group partitioning and monitoring

Publications (1)

Publication Number Publication Date
CN115943375A true CN115943375A (zh) 2023-04-07

Family

ID=81387250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280004199.8A Pending CN115943375A (zh) 2021-06-03 2022-04-05 隐私保护跨域实验组分区与监测

Country Status (7)

Country Link
US (1) US20240232423A1 (zh)
EP (1) EP4127982B1 (zh)
JP (1) JP7448686B2 (zh)
KR (1) KR20230003536A (zh)
CN (1) CN115943375A (zh)
IL (1) IL283674B2 (zh)
WO (1) WO2022256080A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024163213A1 (en) * 2023-02-03 2024-08-08 Google Llc Secure and privacy preserving server-to-server content distribution

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3031165A2 (en) 2013-08-09 2016-06-15 Thomson Licensing A method and system for privacy preserving matrix factorization
US9679314B1 (en) 2014-01-31 2017-06-13 Google Inc. Content selection using distribution parameter data
WO2018186824A1 (en) 2017-04-03 2018-10-11 Google Llc Reducing redirects
WO2018231263A1 (en) 2017-06-13 2018-12-20 Google Llc Transmitting high latency digital components in a low latency environment
US12067129B2 (en) * 2017-06-23 2024-08-20 Flytxt B.V. Privacy preserving computation protocol for data analytics
US20200027125A1 (en) * 2018-07-18 2020-01-23 Triapodi Ltd. Real-time selection of targeted advertisements by target devices while maintaining data privacy
US10917494B2 (en) 2019-02-01 2021-02-09 Google Llc Dynamic application content analysis
US11245536B2 (en) * 2019-04-16 2022-02-08 Meta Platforms, Inc. Secure multi-party computation attribution

Also Published As

Publication number Publication date
IL283674B2 (en) 2024-09-01
US20240232423A1 (en) 2024-07-11
WO2022256080A1 (en) 2022-12-08
IL283674B1 (en) 2024-05-01
EP4127982B1 (en) 2024-10-09
KR20230003536A (ko) 2023-01-06
JP7448686B2 (ja) 2024-03-12
EP4127982A1 (en) 2023-02-08
IL283674A (en) 2023-01-01
JP2023533906A (ja) 2023-08-07

Similar Documents

Publication Publication Date Title
JP7544888B2 (ja) コンテンツ選択プロセスの完全性を改善するためのセキュアマルチパーティ計算の使用
JP7422892B2 (ja) 分類の正確さを改善するための機械学習モデリングデータの処理
JP7438361B2 (ja) 安全なマルチパーティ計算を使用するプライバシー保護重心モデル
KR20220126767A (ko) 보안 mpc 및 벡터 계산을 이용한 컨텐츠 배포 정보에 대한 액세스 보호
JP7471450B2 (ja) セキュアマルチパーティ計算の性能の向上
KR20220052352A (ko) 온라인 프라이버시 보호 기술
JP7440667B2 (ja) セキュアマルチパーティ計算を使用したフレキシブルなコンテンツ選択プロセス
JP7448686B2 (ja) プライバシーを守るドメインをまたがる実験群区分および監視
KR20230048126A (ko) 보안 다자간 연산을 사용한 암호화 보안 제어
JP7425222B2 (ja) セキュアマルチパーティ計算を使用したプライバシー保持測定
KR20220103787A (ko) 콘텐츠 선택 및 배포를 위한 개인정보 보호 기술

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination