发布信息

使用安全多方计算来提高内容选择过程完整性的制作方法

作者:admin      2022-08-27 11:32:21     843



计算;推算;计数设备的制造及其应用技术使用安全多方计算来提高内容选择过程完整性1.相关申请的交叉引用2.本技术要求2020年12月13日提交的第279405号il申请的优先权。前述申请的公开内容通过引入并入本文。技术领域3.本说明书涉及数据安全性和完整性。背景技术:4.安全多方计算(mpc)是一种加密协议,所述加密协议通过将计算跨多方分布使得单独方不能访问另一方的数据,来防止访问数据。mpc计算系统使用数据的秘密份额来执行计算。技术实现要素:5.一般而言,本说明书中所述主题的一个创新方面可体现在一种方法中,该方法包括:由安全多方计算(mpc)系统的第一服务器从用户设备上的应用接收对数字成分的请求,由第一服务器将请求解析为两个或更多个不同的子请求部分,由安全mpc系统的第一服务器将所述两个或更多个不同的子请求中的每一个请求传输到不同的服务器,响应于传输所述两个或更多个不同的子请求,由第一服务器从单独的服务器接收第一组候选选择值,由第一服务器与mpc系统的一个或多个第二服务器合作执行选择过程,以生成获胜数字成分的选择结果,包括由第一服务器合并第一组候选选择值和一组缓存选择值,以创建最终的一组候选选择值,由第一服务器根据候选选择值的值对该最终的一组候选选择值进行排序,并且由第一服务器应用一组两个或更多个选择规则中的每个规则,并且由第一服务器与一个或多个第二服务器协作向用户设备传输获胜数字成分的选择结果。6.这些和其他实施方式可以可选地包括一个或多个以下特征。在一些实施方式中,该方法包括由安全mpc系统的第一服务器从用户设备上的应用接收通知,该通知包括指示获胜数字成分被呈现在客户端设备处的数据。在一些实施方式中,通知与对第二选择值的第二请求一起由安全mpc系统的第一服务器接收,所述通知包括指示对应于获胜选择值的数字成分被呈现在客户端设备处的数据。7.在一些实施方式中,传输来自最终选择过程的获胜数字成分的选择结果包括由安全mpc系统的第一服务器从安全mpc系统的每个第二服务器接收选择结果的第一秘密份额,以及由安全mpc系统的第一服务器向客户端设备传输(i)选择结果的每个第一秘密份额和(ii)选择结果的第二秘密份额。8.在一些实施方式中,接收第一组候选选择值包括从单独的服务器接收第一组候选选择值的每个候选选择值的至少两个秘密份额。在一些实施方式中,合并和排序可以由第一服务器作为单个基于比较的排序过程来执行。9.在一些实施方式中,该一组选择规则至少包括隐私保护匿名化施行规则。10.此方面的其他实施例包括对应的系统、装置和编码在计算机存储设备上的计算机程序,其配置为执行方法的动作。11.本说明书中描述的主题可在特定实施例中实施,以实现一个或多个以下优点。12.所提出的结构使用由不同方操作的两个或更多个mpc服务器执行的安全mpc过程,以基于用户信息的秘密份额选择数字成分,以确保mpc服务器或另一方在mpc服务器之间没有未授权共谋的情况下,不能以明文或明码的形式访问用户信息。该mpc过程用于实施隐私保护措施,并减少请求客户端设备和mpc集群之间的传输。13.mpc集群还执行最终选择过程,并可将结果的秘密份额直接传输到请求客户端设备,所述结果识别mpc集群使用安全mpc过程选择的选择数字成分。因为最终的选择过程是在mpc集群而不是在请求客户端设备上执行的,所以只有获胜数字成分的选择值被传输到请求客户端设备,而不是所有或一大组数字成分的信息。减少传输数据的需要减少了传输信息所消耗的带宽量,减少了传输信息的时延,并且减少了传输信息所需的处理功率量和依靠电池运行的设备(例如,移动设备)的相关联电池功率。14.此外,在特定计算系统本地缓存的数据减少了任何缓存数据的未来请求的时延。减少内容呈现的时延也减少了用户设备在等待这种内容到达时发生的错误数量。由于内容通常需要在几毫秒内提供给通过无线网络连接的移动设备,因此减少选择和提供内容的时延对于防止错误和减少用户挫折感是至关重要的。15.该过程还通过限制向客户端设备提供信息的数字成分的数量,降低了向mpc集群提交数字成分选择值的内容平台的机密信息泄漏的可能性。所描述的技术提供了用于维护高级隐私的简化过程。该系统为用户隐私提供了高标准,而不需要需求侧平台的大量改变。16.前述主题的各种特征和优点参照附图描述如下。根据本文描述的主题和权利要求,附加的特征和优点是显而易见的。附图说明17.图1为环境的框图,其中mpc集群执行安全mpc过程,以选择用于分配给客户端设备的数字成分。18.图2是用于选择数字成分以提供在客户端设备上显示或分配给客户端设备的示例过程的数据流图。19.图3是用于选择数字成分以提供在客户端设备上显示或分配给客户端设备的示例过程的泳道图。20.图4是示出了用于选择数字成分以分配给客户端设备的示例过程的流程图。21.图5是示例计算机系统的框图。22.各图中相同的附图标记和名称指示相同的元件。具体实施方式23.总的来说,本文件描述了在内容选择和分配中提高信息完整性和保护信息安全性的系统和技术。服务器计算机的mpc集群可以执行安全的mpc过程,以基于用户信息选择数字成分,而任何一个mpc服务器都不能在没有未授权共谋的情况下以明文形式访问用户信息。可以使用概率数据结构将用户信息发送到mpc集群,以减少通过网络传输的信息的数据大小,并在传输期间保持信息安全。在一些实施方式中,可以使用包括分布点功能的附加技术将用户信息发送到mpc集群。24.mpc集群提供安全环境,用于响应于来自客户端设备的对数字成分的请求而执行选择过程以选择映射到数字成分的选择值。在mpc集群处执行该选择过程提供了比在请求客户端设备处执行最终选择过程改进的过程完整性和用户隐私,在请求客户端设备处执行最终选择过程需要将安全确定的候选从mpc集群传输到客户端设备。此外,客户端设备呈现了一种环境,在该环境中,欺诈防止更加困难——一旦接收到候选选择值,最终选择过程通常以明文执行,并且可以容易地被操纵。通过在安全mpc集群处执行最终选择过程,所描述的系统提供了优于在客户端设备处执行过程的许多优点。25.例如,客户端设备可基于诸如用户可能所属的用户组的潜在敏感信息来传输对数字成分的请求,并基于诸如数字成分将在单个数字成分槽中呈现的场境的不敏感信息来传输对数字成分的单独请求,以便保护用户隐私。该过程可以导致客户端设备传输两倍于可用数字成分槽数量的对数字成分的请求,并且响应于这些请求,从潜在的多个不同服务器接收两倍的候选。额外的请求和响应需要附加的带宽和电池电量,这可能会降低用户的在线体验。所描述的系统减少了客户端设备和另一个服务器之间所需的传输数量:因为mpc集群正在执行整个选择过程,所以客户端设备可以仅向mpc集群的服务器发送一个请求,并且客户端设备可以仅从mpc集群接收一个响应。26.在某些情况下,用户接收与用户之前访问和/或交互的网页、应用页面或其他电子资源相关的数字成分(或其他数据)是有益的。为了将这种数字成分分配给用户,可以基于用户访问的数字内容将用户指派到用户组,例如用户兴趣组、相似用户的队列或涉及相似用户数据的其他组类型。例如,当用户访问特定网站并与该网站上呈现的特定项目交互或将项目添加到虚拟购物车时,该用户可以被指派到访问过相同网站或场境相似的其他网站或对相同项目感兴趣的用户组。举例而言,如果客户端设备110的用户搜索鞋并访问不同鞋制造商的多个网页,则该用户可以被指派到用户组“鞋”,该用户组可以包括访问过与鞋相关的网站的所有用户的标识符。27.在一些实施方式中,可在用户的客户端设备110上维护用户的组成员资格,例如,通过基于浏览器的应用,而不是通过数字成分服务器、内容提供者或另一方。用户组可以由用户组的相应标签来指定。用户组的标签可以描述该组(例如园艺组)或者表示该组的代码(例如非描述性的字母数字序列)。用户组的标签可以存储在客户端设备106的安全存储中,和/或可以在存储时被加密以防止其他人访问列表。28.在一些实施方式中,可使用表示为hmac(user_group_label,etld+1)的由用户组的标签和内容提供者的域参数化的基于散列的消息认证码(hmac)生成用户组的标识符。在一些实施方式中,可以使用安全散列算法(sha-256)来实现hmac,该安全散列算法是具有256比特摘要长度的加密散列函数,以生成经散列的256比特(32字节)输出。在这样的示例中,hmac(user_group_label,etld+1)生成用户组的256比特唯一标识符作为用户组标识符。29.用户的用户组成员资格可用于选择用户可能感兴趣的数字成分或其他内容,或可以以另一种方式有益于用户/客户端设备(例如,帮助用户完成任务)。例如,这种数字成分或其他内容可以包括改善用户体验、改善用户设备的运行或者以某种其他方式使用户或客户端设备受益的数据。30.mpc集群将数字成分请求或其一部分转发至供应侧平台(ssp)以索求候选选择值,同时对ssp屏蔽敏感信息,诸如请求客户端设备的ip地址。ip地址是一种强指纹信号,或可用于识别特定设备并将该设备与其用户相关联的信息,对ssp隐藏设备的ip地址提高用户隐私。31.此外,在mpc集群中执行整个选择过程,允许将选择规则统一应用于对数字成分请求的特定响应的所有候选选择值。在最终选择在客户端设备处执行的选择过程中,mpc集群只能将选择规则应用于mpc集群能访问的候选选择值,而不能应用于客户端设备单独接收的候选选择值。这提高了用户体验的一致性,并减少了可能出现的混淆,例如,当用户指定了特定的选择规则,并且该规则对某些数字成分施行而对其他成分不施行时。32.mpc集群实施秘密共享算法,以保持选择过程的安全性。在所描述的系统中,mpc集群可以使用诸如不经意传送扩展(ote)的秘密共享算法,来安全地评估在选择过程中需要执行的布尔运算。该算法最小化了支持应用选择规则所需的增量计算成本和时延。33.图1是环境100的框图,其中mpc集群执行安全mpc过程,以选择分配给客户端设备110的数字成分。示例环境100包括数据通信网络105,例如局域网(lan)、广域网(wan)、互联网、移动网络或其组合。网络105连接客户端设备110、安全mpc集群130、发布者140、网站142、内容平台,例如供应方平台(ssp)170和需求侧平台dsp(150)。示例环境100可以包括许多不同的客户端设备110、安全mpc集群130、发布者140、网站142、dsp 150和ssp 170。34.客户端设备110是能够通过网络105进行通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备,例如智能电话,以及可以通过网络105发送和接收数据的其他设备。客户端设备还可以包括通过麦克风接受音频输入并通过扬声器输出音频输出的数字助理设备。当数字助理检测到激活麦克风以接受音频输入的“热词”或“热短语”时,数字助理可以被置于收听模式(例如,准备好接受音频输入)。数字助理设备还可以包括照相机和/或显示器,以捕捉图像并可视地呈现信息。数字助理可以在不同形式的硬件设备中实施,包括可穿戴设备(例如,手表或眼镜)、智能电话、扬声器设备、平板设备或另一硬件设备。客户端设备还可以包括数字媒体设备,例如插入电视或其他显示器以将视频流式传输到电视的流式传输设备、游戏控制台或虚拟现实系统。35.客户端设备110通常包括诸如web浏览器和/或本地应用的应用112,以促进通过网络105发送和接收数据。本地应用是为特定平台或特定设备(例如,具有特定操作系统的移动设备)开发的应用。在一些实施方式中,应用112可以是诸如操作系统的程序。发布者140可以开发并向客户端设备110提供原生应用(例如,使其可供下载)。例如,响应于客户端设备110的用户在web浏览器的地址栏中录入资源145的资源地址或者选择引用资源地址的链接,web浏览器可以从托管发布者140的网站142的web服务器请求资源145。类似地,本地应用可以从发布者的远程服务器请求应用内容。36.一些资源、应用页面或其他应用内容可包括数字成分槽,用于利用资源145或应用页面呈现数字成分。如贯穿本文所使用的,短语“数字成分”指的是数字内容或数字信息的分立单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。数字成分可以作为单个文件或文件集合以电子方式存储在物理存储器设备中,并且数字成分可以采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种数字成分。例如,数字成分可以是内容,所述内容旨在补充由应用112呈现的网页或其他资源的内容。更具体地,数字成分可以包括与资源内容相关的数字内容(例如,数字成分可以涉及与网页内容相同的主题,或者相关主题)。因此,数字成分的提供可以补充并且通常增强网页或应用内容。37.当应用112加载包括一个或多个数字成分槽的资源(或应用内容)时,应用112可为每个槽请求数字成分。在一些实施方式中,数字成分槽可以包括使得应用112从诸如mpc集群130的mpc集群请求数字成分的代码(例如脚本),所述mpc集群选择数字成分并将数字成分提供给应用112以呈现给客户端设备110的用户。如下所述,应用112可以从mpc集群130请求数字成分,所述mpc集群130可以将该请求转发给其他服务器,诸如ssp 170。38.一些发布者140使用ssp 170管理获取其资源和/或应用的数字成分槽的数字成分的过程。ssp 170是以硬件和/或软件实施的技术平台,其使获取资源和/或应用的数字成分的过程自动化。每个发布者140可以具有对应的ssp 170或多个ssp 170。一些发布者140可以使用相同的ssp 170。39.数字成分提供者160可创建(或以其他方式发布)在发布者资源和应用的数字成分槽中呈现的数字成分。数字成分提供者160可以使用dsp 150来管理其数字成分的供应,以便在数字成分槽中呈现。dsp 150是以硬件和/或软件实施的技术平台,其使分配数字成分以与资源和/或应用一起呈现的过程自动化。dsp 150可以代表数字成分提供者160与多个供应侧平台ssp交互,以提供数字成分,用于利用多个不同发布者140的资源和/或应用来呈现。通常,dsp 150可以接收对数字成分的请求(例如,来自ssp),基于该请求生成(或选择)由一个或多个数字成分提供者创建的一个或多个数字成分的选择值,并且向ssp提供与数字成分相关的数据(例如,数字成分本身)和选择参数。选择值可以指示数字成分提供者160愿意为数字成分的呈现或用户交互提供的量。然后,ssp可以选择在客户端设备110上呈现的数字成分,并向客户端设备110提供使客户端设备110呈现该数字成分的数据。40.在某些情况下,用户接收与用户之前访问和/或交互的网页、应用页面或其他电子资源相关的数字成分是有益的。为了将这种数字成分分配给用户,当用户访问特定资源或在该资源上执行特定动作(例如,与网页上呈现的特定项目交互或将该项目添加到虚拟购物车)时,可以将用户指派到用户组,例如,用户兴趣组、相似用户的队列或涉及相似用户数据的其他组类型。用户组可以由数字成分提供者160生成。也就是说,当用户访问数字成分提供者160的电子资源时,每个数字成分提供者160可以将用户指派到他们的用户组。用户组也可以由内容平台创建,例如由dsp 150和/或ssp 170创建。41.为保护用户隐私,可在用户的客户端设备110上维护用户的组成员资格,例如,由客户端设备110的应用112或操作系统之一,而不是由数字成分提供者、内容平台或其他方。在特定示例中,受信程序(例如,web浏览器或操作系统可以为使用web浏览器或另一应用的用户(例如,登录到浏览器、应用或客户端设备110的用户)维护用户组标识符的列表(“用户组列表”)。用户组列表可以包括将用户作为成员包括的每个用户组的组标识符。创建用户组的数字成分提供者160可以为他们的用户组指定用户组标识符。用户组的用户组标识符可以描述组(例如,园艺组)或表示组的代码(例如,非描述性的字母数字序列)。用户的用户组列表可以存储在客户端设备110的安全存储中,和/或可以在存储时被加密以防止其他人访问列表。42.当应用112呈现与数字成分提供者160或网站142上的网页相关的资源或应用内容时,资源可请求应用112向用户组列表添加一个或多个用户组标识符。作为响应,应用112可以将一个或多个用户组标识符添加到用户组列表,并且安全地存储用户组列表。43.mpc集群130可使用用户的用户组成员资格来选择用户可能感兴趣或以其他方式对用户/用户设备有益的数字成分或其他内容。例如,这种数字成分或其他内容可以包括改善用户体验、改善用户设备的运行或者以某种其他方式使用户或用户设备受益的数据。然而,用户的用户组列表的用户组标识符可以被提供并用于以防止mpc集群130的计算系统mpc1和mpc2以明文访问用户的用户组标识符的方式来选择数字成分,从而在使用用户组成员资格数据来选择数字成分时保护用户隐私。明文是没有经过计算标记、特殊格式化或以代码或数据(包括二进制文件)编写的文本,所述明文按照可以在不需要密钥或其他解密设备或其他解密过程的情况下查看或使用的形式。mpc集群130还使用从ssp 170接收的一组候选选择值来执行最终选择过程,以选择映射到数字成分的获胜选择值。mpc集群130然后响应于数字成分请求,将映射到获胜选择值的数字成分的数据直接提供给客户端设备110。该数据可以包括例如识别数字成分的数据、存储数字成分的位置和/或可以从其请求数字成分的位置、获胜选择值以及其他参数。44.安全mpc集群130包括两个计算系统mpc1和mpc2(例如,服务器计算机),其执行安全mpc过程,以基于用户的组成员资格选择数字成分,以分配给用户的客户端设备,而无需访问明文中的群组成员资格信息(或其他敏感用户信息)。尽管示例mpc集群130包括两个计算系统,但是也可以使用更多的计算系统,只要mpc集群130包括多于一个计算系统。例如,mpc集群130可以包括三个计算系统、四个计算系统或其他适当数量的计算系统。在mpc集群130中使用更多的计算系统可以提供更多的安全性,但是也会增加mpc过程的复杂性。45.计算系统mpc1和mpc2可由不同的实体操作。这样,每个实体可能无法访问明文中的用户组成员资格。例如,计算系统mpc1或mpc2之一可以由不同于用户、发布者140、dsp 150、ssp 170和数字成分提供者160的受信方来操作。例如,行业组、政府组或浏览器开发者可以维护和操作计算系统mpc1和mpc2中的一个。其他计算系统可以由这些组中不同的一个来操作,使得不同的受信方操作每个计算系统mpc1和mpc2。优选地,操作不同计算系统mpc1和mpc2的不同方没有动机共谋来危害用户隐私。在一些实施方式中,计算系统mpc1和mpc2在架构上是分离的,并且被监视为除了执行本文中描述的安全mpc过程之外不相互通信。46.除本文件中的描述外,可向用户提供控件(例如,用户可与之交互的用户界面元件),允许用户选择本文所述的系统、程序或特征是否及何时可收集用户信息(例如,关于用户的社交网络、社交行动或活动、职业、用户偏好或用户当前位置的信息),以及是否从服务器向用户传输内容或通信。此外,在存储或使用某些数据之前,可能会以一种或多种方式对其进行处理,以便删除个人可识别信息。例如,可以处理用户的身份,从而不能确定用户的个人可识别信息,或者可以在获得位置信息的情况下概括用户的地理位置(诸如概括为城市、邮政编码或州级),从而不能确定用户的具体位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。47.图2为用于选择数字成分以用于在客户端设备上显示或分配给客户端设备的示例过程200的数据流图。过程200的操作可以例如由客户端设备110上的应用112、mpc集群130的计算系统mpc1和mpc2、dsp 150和ssp 170来实施。过程200的操作也可以被实施为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令可以使得一个或多个数据处理装置执行过程200的操作。尽管根据两个计算系统mpc集群130描述了过程200和下面的其他过程,但是具有多于两个计算系统的mpc集群也可以用于执行类似的过程。48.本说明书包括两种类型的选择值——以任一个敏感用户信息为条件的选择值或“条件选择值”,以及不以敏感信息为条件的选择值或“无条件选择值”,所述敏感用户信息诸如用户组成员资格或其他商业敏感信息或其值的变化可允许无良方推断敏感信息的参数。为了保护用户隐私,在mpc集群130内而不是在ssp 170或dsp 150内评估“条件选择值”的条件,以确定“条件选择值”是否适合内容选择过程。49.该结构允许mpc集群130保护用户隐私和商业机密信息,并向应用提供者(诸如应用112的提供者)证明其可信度。在这个例子中,mpc集群130依赖于安全两方计算(2pc)架构,该架构应用密码技术来保证如果mpc集群130的两个计算系统中的至少一个是诚实的,则不存在机密用户数据或商业机密信息的泄露。如果mpc集群130包括不止两个计算系统,则可以扩展当前的mpc协议,或者可以使用其他mpc协议。50.mpc集群130运行安全2pc协议,以评估和应用条件来选择合格的选择过程候选者,实施选择过程以基于获胜选择值选择数字成分(例如,数字成分映射到获胜选择值的情况),并接收印象通知来更新这些条件所依赖的计数器。所有这些过程都可以使用秘密共享技术来完成。下面参照图3详细描述该协议。51.过程200始于阶段a,在该阶段中,应用112与来自诸如ssp 170的内容分配服务器的触发元件合作,向mpc集群130发送对数字成分的请求。应用112可以将对数字成分的多个请求一起包括到一个组合请求中以抓取多个数字成分。mpc集群130然后可以独立地服务于组合请求中的每个请求,或者整体地做出一个或多个选择决定。在这个例子中,该请求是针对单个数字成分的,并且包括针对基于敏感信息选择的数字成分或者不使用敏感信息选择的数字成分的请求。mpc集群130可以通过从一组选择值中选择特定的选择值来响应该请求,其中每个选择值都被映射到相应的特定数字成分。这些选择值可以是先前缓存或以其他方式存储在mpc集群130中的选择值和/或由诸如dsp 150或ssp 170的平台生成的选择值、即时(jit)选择值。jit选择值是直接响应需要而生成的,并且提高了效率并减少了浪费,因为选择值仅在需要数字成分时生成。例如,当数字成分槽变得可用——这由对数字成分的请求的接收来指示——时,可以生成jit选择值。52.所述请求包含数字成分选择过程中使用的信息,包括诸如应用112映射或以其他方式关联的用户组的标识符的可以是敏感的信息,以及不敏感信息,诸如来自应用112的关于数字成分将呈现和/或显示的场境的场境信号。如下面进一步详细描述的,系统110的设计改进了对可能敏感或机密的用户数据的保护。53.触发元件可为例如检测由应用112访问的互联网位置内的数字成分槽的存在的标签。触发元件可以被放置在例如互联网位置,并且可以通知应用112存在应该针对其请求数字成分的数字成分槽。54.过程200继续进行阶段b,其中mpc集群130向ssp 170传输基于诸如场境信号的不敏感信息的数字成分请求。该请求被称为“场境请求”,并且对该场境请求的响应可以是无条件的选择值,因为该请求不以接收敏感信息为条件。场境请求可以包含由触发对数字成分的请求的互联网位置(例如,内容发布者)直接收集的各种场境信号和用户信息。例如,场境信号可以包括分析数据、语言设置和帮助内容发布者提供良好用户体验的其他数据。然而,提供给ssp 170的场境请求不包括敏感信息,诸如用户组标识符。55.过程200继续进行阶段c,其中ssp 170将场境请求转发至一个或多个dsp 150。在这个特定的例子中,为了简单起见,ssp 170将场境请求转发给单个dsp 150。例如,ssp 170可以将场境请求转发给dsp 150。在这个例子中,dsp 150具有数字成分和映射到数字成分的选择值。56.过程200继续进行阶段d,其中一个或多个dsp 150响应于场境请求返回选择值。例如,dsp 150响应于场境请求返回映射到数字成分的一个或多个选择值。dsp 150可以响应于场境请求返回任意数量的选择值。在一些实施方式中,dsp 150还可以基于诸如用户组信息的敏感信息,响应于数字成分请求返回选择值。这些选择值是“有条件选择值”,因为它们以敏感信息为条件,并且因此以mpc集群130接收到包括与选择值以其为条件的敏感信息相匹配的敏感信息的请求为条件。对于dsp 150提供的每个选择值,dsp 150包括诸如生存时间(ttl)参数的信息,即mpc集群130可以缓存选择值的最大时间跨度。该ttl参数使mpc集群130能够缓存从dsp 150接收的选择值。在一些实施方式中,在没有ttl参数的情况下,mpc集群130不缓存接收到的选择值,而是在选择值已经用于选择过程之后,例如在对应于在阶段a、b和c中传输的数字成分请求的选择过程中,丢弃选择值。57.过程200继续进行阶段e,其中ssp 170应用内容选择规则。例如,ssp 170应用诸如内容提供者和数字成分阻止规则的规则,这些规则防止特定内容提供者有资格提供候选数字成分和选择值,或者阻止特定数字成分成为候选。在一些实施方式中,应用112可以维护一组被阻止的标识符,该组被阻止的标识符包括已经被用户明确阻止的数字成分的标识符。例如,假设用户与对应于给定数字成分(或被传递到客户端设备110的一部分数据)的抑制(mute)元素交互。在该示例中,用户与抑制元素的交互是用户不想在未来(例如,至少在一时间量内)看到该数字成分或潜在相似的数字成分(例如,来自内容源或活动,其可以是相同的内容源或活动,也可以是不同的内容源或活动)的指示。响应于该交互,应用112可以将给定数字成分的标识符添加到该组被阻止的通用标识符中,然后可以使用该组被阻止的通用标识符来防止传递或呈现具有与给定数字成分相同的标识符的其他数字成分。在一些实施方式中,应用112可以维护一组被阻止的标识符,该组被阻止的标识符包括最近过于频繁地——例如在最近的y分钟内超过x次——向用户显示的数字成分的标识符。应用112可以将给定数字成分的标识符添加到该组被阻止的通用标识符中,然后可以使用该组被阻止的通用标识符来防止在不久的将来递送或呈现具有与给定数字成分相同的标识符的其他数字成分。58.ssp 170还应用选择值规则来确定例如选择值如何影响特定内容提供者的发布后值。发布后值可以指示例如提供给内容提供者用于发布数字成分的数量。ssp 170然后执行选择过程,以确定最高的无条件选择值,该无条件选择值产生最高的发布后值。无条件选择值不以敏感信息为条件,因此不应用内容选择规则,诸如用户组成员资格、频率控制、内容分配规则和调步(pacing)规则。ssp 170然后将作为jit选择值的以下转发给mpc集群130:所有使得能够在mpc集群130中缓存的选择值(具有ttl值的选择值),以及其发布后值不小于最高无条件选择值的发布后值的所有选择值。59.过程200继续进行阶段f,其中mpc集群130使用接收到的使得能够缓存的jit选择值(即,具有ttl值)更新其缓存。此外,mpc集群130应用选择规则,诸如用户成员资格规则、频率控制、调步规则和防止特定用户微瞄准(micro-targeting)在阶段e中接收的所有选择值以及先前缓存的选择值的规则,以便为选择过程选择有效候选。这些规则可以包括对数字成分的分配方式或频率的限制和指导,以及其他因素。这些规则包括频率控制、抑制、预算和调步限制。mpc集群130然后在所有合格的候选中运行最终选择过程,选择获胜选择值,然后响应于数字成分请求,将映射到获胜选择值的数字成分的数据返回给应用112。60.过程200继续进行阶段g,其中应用112渲染映射到获胜选择值的数字成分。应用112然后向mpc集群130提供印象通知。该印象通知包括允许mpc集群130更新与更新计数器相关的信息的数据,该计数器允许mpc集群130施行选择规则。在一些实施方式中,应用112可以通过在未来成分请求a之上搭载来向mpc集群130发送印象通知g,以减少网络通信的数量和移动设备的电池/带宽消耗。61.图3为用于选择数字成分的示例过程300的泳道图,所述数字成分用于提供在客户端设备上显示或分配给客户端设备。过程300的操作可以例如由客户端设备110上的应用112、mpc集群130的计算系统mpc1和mpc2、dsp 150和ssp 170来实施。过程300的操作也可以被实施为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令可以使得一个或多个数据处理装置执行过程300的操作。尽管根据两个计算系统mpc集群130描述了过程300和下面的其他过程,但是具有两个以上计算系统的mpc集群也可以用于执行类似的过程。在这个特定的例子中,两个计算系统mpc1和mpc2具有相同的软件和功能,但是由没有动机共谋来损害用户隐私的不同的实体管理。62.mpc集群执行安全mpc过程,以基于数字成分请求中的诸如用户组信息的特性信息来选择数字成分。这还可以包括基于具有与用户的用户组标识符之一相匹配的用户组标识符的数字成分,识别作为选择的候选的数字成分的选择值。这还可以包括基于数字成分的选择值从候选数字成分中选择数字成分。这些选择值包括缓存在mpc集群中的选择值和响应于对选择值的请求而从其他服务器接收的选择值,并且一些选择值可以以敏感信息为条件。这都可以在计算系统mpc1或mpc2不访问明文中的用户组标识符的情况下执行。63.计算系统mpc1和mpc2可使用秘密份额使用安全mpc技术识别候选选择值,使得计算系统mpc1和mpc2均不知道哪些数字成分是候选,或者包括用户作为成员的用户组。为此,计算系统mpc1为可能潜在地服务当前数字成分请求的一组条件选择值中的每个条件选择值计算候选参数的第一份额。类似地,计算系统mpc2为同一组条件选择值中的每个条件选择值计算候选参数的第二份额。条件选择值可以是布尔值(例如,0或1),其指示与数字成分和可选的用户组标识符相关联的选择值是否是候选。64.计算系统mpc1和mpc2可使用安全mpc技术,通过计算系统之间的一个或多个往返,计算选择过程结果的秘密份额。也就是说,计算系统mpc1和mpc2可以确定获胜选择值的秘密份额、识别其相应数字成分的数据和/或识别客户端设备可以从其下载数字成分的网络位置的数据。65.一旦秘密份额计算完成,mpc1和mpc2可每一个向客户端设备返回选择结果的份额之一。客户端设备然后可以使用这两个秘密份额以明文重构选择结果。66.流程300始于步骤1,其中应用112生成数字成分请求,以传输至mpc集群130。应用112选取mpc集群130的计算系统之一,请求将被传输到该计算系统。这个选择过程可以是任意的,在这个例子中,为了简单起见,选取的计算系统是mpc1。67.该初始广告请求包含三种类型的信息:基于每个计算系统mpc1和mpc 2的敏感信息的数字成分请求,以及基于ssp 170的非敏感信息的数字成分请求。68.为基于敏感信息安全有效地生成数字成分请求,应用112可使用概率数据结构,诸如布谷鸟过滤器或布鲁姆过滤器。在这个例子中,概率数据结构是布谷鸟过滤器。通常,布谷鸟过滤器包括桶的阵列,其中每个桶可以保存b个指纹。项目的指纹是从该项目的散列中得出的比特串。布谷鸟过滤器使用n个允许将一个项目放在n个不同的桶中的b个位置中的任何位置的散列函数。典型地,布谷鸟过滤器由每个桶中的指纹数量和桶的数量来识别。例如,(2,4)布谷鸟过滤器有2个桶,布谷鸟阵列中的每个桶可以存储多达4个指纹。因此,布谷鸟过滤器的总容量是2×4或8个指纹。69.根据布谷鸟过滤器的配置,可将项目在n个可能位置之一处插入布谷鸟过滤器,例如n=2。应用112使用n个伪随机函数(prf)来确定要插入的项目的所有可能位置,该伪随机函数由用户组标识符或来自该组被阻止的标识符中的标识符以及由应用112生成的两个随机变量中的任一个来参数化。例如,假设应用112生成的两个随机变量是rand_var1a和rand_var1b。在一些实施方式中,应用112和mpc集群130预先就prf达成一致,其中prf(x,y)∈[0,2k-1],其中k是布谷鸟过滤器的桶中的每个项目中的比特数。布谷鸟过滤器的每个位置可以被用户组标识符或被阻止标识符占据,或者为空。例如,应用112可以生成布谷鸟过滤器表,其元素是prf(ug_id,rand_var1a)、prf(blocked_uid,rand_var1b)和0,其中ug_id是通过基于内容提供者的域对用户组的标签应用hmac而生成的用户组的标识符,blocked_uid是来自一组被阻止的标识符中的一个标识符,0表示空项目。对所有用户组标识符和该组被阻止的标识符中的所有标识符重复该过程。[0070]应用112可基于布谷鸟过滤器表生成向量b,该布谷鸟过滤器表为用户组标识符和该组被阻止的通用标识符中的通用标识符生成。向量b可以表示为bi=ai–prf(rand_var2,i),其中ai是布谷鸟过滤器表,i是向量b和布谷鸟过滤器表a的索引。当应用112发起对数字成分槽的数字成分的请求时,应用将rand_var1a、rand_var1b和rand_var2作为请求参数传输到mpc1。应用112还将向量b和rand_var1作为请求参数传输到mpc2。因为计算系统mpc1和mpc2中的任一个不能访问所有的请求参数,所以计算系统中的任一个都不能重新创建布谷鸟过滤器表,从而保护了用户隐私。[0071]应用112可向mpc系统的对应计算服务器传输包含对应秘密份额的数字成分请求。例如,应用112生成并向mpc1传输数字成分请求,该数字成分请求包括概率数据结构(即,布谷鸟过滤器)的第一秘密份额,其可以是在前一段落中描述的向量b。参数包括rand_var1a和rand_var1b,以及来自触发生成和传输数字成分请求的位置的场境信号。类似地,应用112还向mpc2传输对数字成分的请求,该请求包括由rand_var2经由其中i是秘密份额阵列的索引的函数prf(rand_var2,i)定义的概率数据结构的第二秘密份额,以及rand_var1a和rand_var1b。包括在数字成分请求中的附加数据可以包括指示数字成分针对其符合条件的场境的场境选择信号,例如客户端设备110的位置、为应用110选择的说出的语言、可以数字成分可以利用其呈现的资源的通用资源定位符(url)和/或数字成分不可以利用其呈现的资源的排除url。数字成分的此数据还可以例如使用唯一标识符、可以从中获得数字成分的域和/或数字成分的其他适当数据来识别数字成分。[0072]应用112基于敏感信息对数字成分请求进行加密,因为如果mpc1可访问针对mpc2的请求参数,mpc1可重构布谷鸟过滤器表a并恢复用户组标识符,因此侵犯了应用112的用户的隐私。例如,应用112可以使用公钥加密和mpc2的公钥来加密mpc2的数字成分请求:pubkeyencrypt(rand_var1a||rand_var1b||rand_var2||other signals,mpc2),其中||是可用于从简单消息组成复杂消息的任何可逆方法,诸如协议缓冲区或json。通过使用函数pubkeyencrypt(),括号内的参数使用公钥算法和mpc2的公钥加密,使得mpc2可以使用对应的私钥来解密份额。如果加密,应用112可以向mpc1发送对mpc2的数字成分请求,并且mpc1可以将此加密的请求转发给mpc2。以这种方式,应用112可以向mpc1发送包括三个子请求的单个请求,例如,包括场境信号的场境请求和两个用户组请求(即,以用户组信息为条件的条件请求)。第一用户组子请求是针对mpc1的,第二用户组子请求是针对mpc2的加密用户组请求。第二子请求被加密,使得mpc1不能访问信息,并且必须简单地将该份额转发给mpc2。[0073]为了基于诸如场境信号的非敏感信息为ssp 170安全有效地生成数字成分请求,应用112使用包括诸如专门针对特定内容提供者的信号的任意信号的场境信号,但不包括基于敏感信息仅利用数字成分请求提供的用户组标识符或被阻止的标识符。[0074]为了最小化用户隐私的风险,并保持过程的完整性,应用112基于非敏感信息,使用公钥加密对旨在ssp 170的数字成分请求进行加密。例如,应用112可以使用公钥加密和ssp 170的公钥来加密对ssp170的数字成分请求:pubkeyencrypt(digital_component_request,ssp)。[0075]流程300继续步骤2,其中mpc1解析初始数字成分请求,以获得三个子请求中的每一个。例如,mpc1接收数字成分请求。在一些实施方式中,请求可以被解析为子请求,并且将请求解析为三个子请求,使得子请求可以被转发给单独的接收者。例如,场境请求可以被转发到ssp,用户组请求可以由mpc1保存和处理,并且加密的用户组请求可以被转发到mpc2。[0076]流程继续步骤3,其中mpc1利用场境或无条件的数字成分请求从ssp 170和dsp 150中抓取jit选择值,所述场境或无条件的数字成分请求是步骤1中的子请求。一些jit选择值是有条件的,取决于例如:(1)用户是否是特定用户组的成员,(2)可应用的选择规则,诸如频率控制或调步规则,以及(3)与选择值相关联的数字成分创意是否满足防止微瞄准的规则。在一些实施方式中,根据与选择值一起提供的ttl信息,可以由mpc集群130缓存jit选择值。[0077]微瞄准是一种选择过程,其将用户窄瞄准到某些用户可能感到不舒服的程度。例如,一个仅以一些用户为目标并分配给他们的数字成分可能会觉得过于个性化,并且用户可能会觉得被挑选出来或对该数字成分的特异性感到不舒服。通过确保特定的数字成分被提供给阈值数量的其他用户,该系统通过强制k-匿名化确保数字成分被分配到足够广泛的受众,使得用户对他们接收的数字成分以及的数字成分的目标受众的规模感到舒服。k-匿名化的概念确保特定用户的数据无法与阈值数量k的其他用户的数据区分开来。该系统可以施行k-匿名化规则,例如,通过确保响应于对一个或多个数字成分的请求,特定的数字成分被分配给客户端设备110至少k次,使得一组至少k个用户内的匿名化得以保持。在一些实施方式中,数字成分被分配的k次中的每一次都必须用于不同的设备或不同的用户。该系统通过使用隐私保护数据结构来施行k-匿名化。特定数字成分的分配可以在隐私保护数据结构中被跟踪,诸如数字成分已被选择用于分配或实际呈现给用户的次数的计数器。[0078]此外,当用户跨多个不同的网站导航时,用户通常喜欢被不连续显示相同的第三方内容,使得跨多个不同的网站连续向同一用户分配相同的第三方内容会导致用于分配用户不想看到并且可能会忽略的内容的浪费的计算资源。限制特定用户暴露于相同第三方内容的次数的一种方法是利用频率控制技术,该技术防止同一用户在最近指定的时间段内暴露于相同第三方内容超过指定的次数。[0079]该系统通过接收来自用户的用于将数字成分抑制或在一段时间内防止向用户呈现数字成分的信息来允许进一步的用户输入。例如,用户可以选取将已经向他们呈现了五天时间段的特定数字成分抑制。在一些实施方式中,该时间段可以由客户端设备110、mpc集群130、dsp 150、数字内容提供者160或ssp 170基于内容项目的类型和/或用户提供的反馈的类型以及其他因素来指定。[0080]内容的分配也可通过调步控制技术由来自数字成分提供者160的输入控制。数字成分提供者可以为选择值指定一段时间内的总阈值,以实施措施来确保用于活动或包括该数字成分的一组数字成分的的资源不会在活动时间段中早期耗尽。例如,数字成分提供者160可以指定在一周过程内从数字成分提供者160选择的数字成分或特定数字成分的选择值的总数被限制为最大值8000个单位。一旦达到选择值的最大总数,被施加最大值的特定数字成分将不再有资格进行分配给客户端设备110的选择过程,直到该时间段(例如,一周)结束。[0081]数字成分提供者还可指定速度或步速,将在该速度或步速下达到从数字成分提供者160选择的数字成分或特定数字成分的选择值的阈值。例如,数字成分提供者160可以指定在一个月的过程中必须以每天少于250个单位的步速达到6000个单位的最大阈值。一旦达到选择值的每日总数,由数字成分提供者160提供的被施加了调步的数字成分将不再有资格进行分配给客户端设备110的选择过程,直到该时间段(一天)结束。此外,除了其他度量之外,调步可以基于被选择并被传递给用户设备的特定数字成分的步调,或者特定数字成分已被传递给的用户与该特定数字成分交互的步调。[0082]除了执行施行内容选择和用户偏好规则的选择过程外,系统还可通过防止mpc集群130访问明文中的jit选择值来提高安全性。ssp 170可以在将选择值传输到mpc集群130之前将每个jit选择值分裂成秘密份额。此外,ssp 170可以根据jit选择值的发布后值对它们进行排序。[0083]在步骤4至6中,ssp 170向dsp 150请求选择值,从dsp 150接收候选选择值,并执行初始选择过程。在步骤4中,spp 170向dsp 150传输场境数字成分请求。[0084]在步骤5中,dsp 150返回映射到特定数字成分的选择值。选择值可以包括无条件选择值和有条件选择值。[0085]在步骤6中,ssp 170应用内容提供者和数字成分阻止规则,所述内容提供者和数字成分阻止规则防止特定内容提供者有资格提供候选数字成分和选择值,或防止特定数字成分成为候选。此外,ssp 170执行初始选择过程,以从候选无条件选择值中选取一个无条件选择值和选择一个有条件选择值。有条件选择值可用于再次填充mpc集群130的高速缓存,用于来自应用112的后续请求。[0086]在步骤7中,ssp 170基于dsp 150提供的选择值和信息计算发布后值。例如,ssp 170可以计算要提供给内容发布者用于显示映射到选择值的数字成分的数量。[0087]在步骤8中,ssp 170向mpc集群130返回有条件选择值和无条件选择值两者。ssp对mpc1的响应具有以下参数:{[jit_sv1,1],...[jit_svn,1]},其中n是jit选择值的数目,pubkeyencrypt({[jit_sv1,2],...[jit_svn,2]},mpc2)、{cache_ttl1,...cache_tlln}和{post_publishing_value1,...post_publishing_valuen}。如上所述,pubkeyencrypt是一种公共密钥加密算法,并允许ssp 170向mpc1传输包括对mpc2的响应的单个响应,而无需允许mpc1访问响应数据。出现在括号中的参数表示括号内变量的秘密份额。比如这里,[jit_svi,1]和[jit_svi,2]是jit_svi的两个秘密份额,jit_svi代表jit选择值。关于秘密份额,下标1指示表示第一秘密份额的参数,并且下标2指示表示第二秘密份额的参数。在一些实施方式中,jit_svi包括识别选择值和选择值所映射到的数字成分的数据,以及对应于数字成分请求中指定的参数的参数值,以及其他数据。ssp 170可以将jit_svi分裂成其秘密份额,并且可以使用支持秘密份额算法的合适的密码库来执行从其秘密份额中重建jit_svi。例如,使用附加秘密份额库,客户端设备110可以将选择结果的两个秘密份额相加在一起,以获得明文的选择结果。这使得客户端设备110可以访问数字成分的选择值和数字成分的元数据,例如数字成分的身份、客户端设备110可以下载数字成分的位置等。参数cache_ttli表示每个选择值i的ttl值,publisher_valuei表示每个选择值i的发布后值。[0088]选择结果可包括选择值和/或与选择值对应的数字成分的数据。例如,选择结果可以是包括数字成分的数据阵列,或者是引用客户端设备110可以获得数字成分的网络位置的url或其他资源定位符。这样,客户端设备110可以在组合选择结果的秘密份额之后显示获胜数字成分。[0089]过程300继续进行步骤9和10,其中计算系统mpc1合并缓存的和接收的jit候选选择值,其中计算系统mpc1解析来自ssp 170的响应。首先,在步骤9,mpc1分析从ssp 170接收的响应。[0090]过程300继续进行步骤10,其中计算系统mpc1向mpc2传输具有以下参数的请求:pubkeyencrypt({[jit_sv1,2],...[jit_svn,2]},mpc2)、{cache_ttl1,...cache-ttln}和{post_publishing_value1,...post_publishing-valuen}。这些是mpc1在步骤8中从ssp 170接收的值,这里的下标2表示值jit_svi的第二秘密份额。之后,mpc1执行诸如合并排序操作的有效的、通用的、基于比较的排序算法,以合并与来自步骤1中接收的原始请求的信号相关联的缓存的选择值。例如,合并-排序操作可以包括将缓存的选择值和接收的选择值的未排序列表分成n个子列表,每个子列表包含一个元素(其中一个元素的列表被认为是经过排序的),然后重复合并子列表以产生新的排序子列表,直到只剩下一个子列表,这是最终的排序列表。合并排序特别适合于这种情况,因为缓存的选择值列表和在步骤8中从ssp 170接收的选择值两者可以被预先排序。[0091]排序过程将jit选择值和缓存的选择值合并为根据其发布后值排名的一个选择值序列(以秘密份额的形式)。并行地,mpc2对缓存的选择值和jit选择值的其秘密份额执行相同的合并排序过程。[0092]使用合并-排序过程结果有两个原因——更新可能存在于mpc集群130的排序序列中的缓存选择值,和准备候选选择值列表。最终选择过程的输入是由合并-排序过程准备的候选选择值列表。此外,最终的选择过程输入还包括在步骤1中从应用112接收的概率数据结构中编码的任意数量的用户组标识符和被阻止的标识符,以及支持施行选择规则的计数器或其他数据结构。[0093]过程300的最终选择过程包括两个连续阶段,步骤11和12。最终选择过程的所有计算都对秘密份额执行。尽管后面的章节可能会按照明文描述一些计算,但这纯粹是为了简洁明了。[0094]对于在最终选择过程中使用的每个缓存或接收的选择值(即,由步骤10中执行的合并-排序过程产生的最终列表中的选择值),mpc集群130在概念上为每个选择值x计算变量值is_candidatex。mp c1计算is_candidatex的一个秘密份额,表示为[is_candidatex,1],mpc2计算is_candidatex的另一个秘密份额,表示为[is_candidatex,2]。mpc1和mpc2可以使用安全的mpc过程协作计算秘密份额。[0095]在步骤11中,mpc1确定每个候选选择值是否与步骤1中接收的请求中指定的用户组相关联。mpc1在步骤1中接收布谷鸟过滤器表m的秘密份额阵列的等效物,由[m1]表示。m中存在的每个用户组标识符将位于n个可能位置之一。如果选择值x与在步骤1中接收的请求中指定的用户组相关联(即,选择值x的用户组标识符存在于来自步骤1的概率数据结构中),则选择值x必须存在于n个可能位置之一中。[0096]mpc1根据以下等式计算[is_candidatex,1]:[0097][0098]其中π表示多个项目的乘积。这里,ug_id(x)是用于检索与选择值x相关联的ug_id的函数,{f1,…fn}是用于计算布谷鸟过滤器表a内的项目的可能索引(即,位置)的函数,并且rand_val1a是在步骤1中接收的随机值。[mx,1]是阵列[m1]中的第x个元素。==明文整数和秘密整数的秘密份额之间的相等测试。==的结果是作为0(不等于)或1(等于)的秘密整数的秘密份额。这里,[mi,1]的值=上面定义的bi。[0099]类似地,mpc2根据以下等式计算[is_candidatex,2]:[0100][0101]这里,[mi,2]的值=prf(rand_val2,i)。[0102]当[is_candidatex,1]与[is_candidatex,2]组合时,很明显,如果选择值x的ug_id在概率数据结构表中,则is_candidatex为1。布谷鸟过滤器的假阳性率由布谷鸟过滤器中条目的长度(即比特数)k控制,并且可以影响选择值的候选资格。否则,is_candidatex为0。[0103]在该特定示例中,在mpc集群130在步骤8中从ssp 170接收到无条件选择值响应后,发生用户组检查。在一些实施方式中,mpc集群130与在步骤3中发送场境数字成分请求和在步骤8中接收场境数字成分响应并行地执行用户组检查。[0104]在该特定示例中,场境数字成分可包含通过ssp 170来自dsp 150的有条件选择值,并且mpc集群130可对那些jit有条件选择值执行用户组检查,所述那些jit有条件选择值可能潜在地有资格用于步骤13中的最终选择过程,并当且仅当jit有条件选择值可满足防止用户微瞄准的规则时,可能成为步骤1中接收的当前数字成分请求的获胜者。在替代设计中,jit有条件选择值没有资格用于最终选择过程,并且不能成为当前数字成分请求的获胜者。此外,dsp 150和ssp 170有机会为高速缓存定制查找关键字,这为dsp和ssp提供了额外的灵活性。[0105]然而,在接收有条件选择值后执行用户组检查的时延将增加整个过程300的总时延,如步骤1和14之间所示。例如,即使是最有效的秘密份额相等性测试需要在mpc集群130的计算系统之间进行三次往返远程过程调用(rpc),根据网络条件和选取的相等性测试算法,这可能花费几十到几百毫秒。[0106]过程300继续进行步骤12,其中mpc集群130应用选择规则——mpc1和mpc2协作应用选择规则。以下每个规则都是可选的,并且如果特定选择流程不需要特定选择规则,则不会应用该选择规则。[0107]例如,mpc集群130可以可选地应用规则,其中映射至特定选择值的特定数字成分标识符位于阻止列表中,因此没有资格用于选择过程。这里,block_id(x)是检索与选择值x相关联的block_id的函数。mpc1可以计算:[0108][0109]类似地,mpc2可以计算:[0110][0111]如果可以从[should_blockx,1]和[should_blockx,2]重建should_blockx,那么很明显,如果选择值x的block_id在概率数据结构中,则should_blockx为1。概率数据结构的fpr由结构中条目的长度控制。在should_blockx为1的情况下,mpc服务器130应该将is_candidatex设置为0,因为标识符应该被阻止,因此没有资格成为候选。例如,对于2位置布谷鸟过滤器,如果选择值x的block_id不在概率数据结构中,即block_id不匹配两个布谷鸟过滤器位置中的任何一个中的项目,则should_blockx为0。在这种情况下,mpc集群130不应该修改is_candidatex的值,因为标识符不应该被阻止,因此should_blockx不影响选择值x是否有资格成为候选。[0112]为了根据should_blockx的值修改is_candidatex,mpc1计算[is_candidatex,1]=[is_candidatex,1]x(1-[should_blockx,1])。同样,mpc2计算[is_candidatex,2]=[is_candidatex,2]x(1-[should_blockx,2])。[0113]接下来,mpc集群130可选地应用内容提供者提供的调步选择规则。对于每个数字成分请求,mpc集群130在概念上随机地为应用了选择规则的选择值的每个单位生成秘密份额中的rules_selectorrunit_id或runit_id。函数runit_id(x)抓取选择值x的runit_id。[0114]例如,mpc1首先随机生成[rules_selectorrunit_id,1]。mpc1然后根据rule_selectorrunit_id的值修改is_candidatex,mpc1计算[is_candidatex,1]=[is_candidatex,1]x(1-[rule_selectorrunit_id(x),1])。[0115]类似地,mpc2计算[is_candidatex,2]=[is_candidatex,2]x(1-[rule_selectorrunit_id(x),2])。[0116]此处,当单元runit_id的最大总选择值用尽时,rules_selectorrunit_id设置为0。此外,当按照其达到所选数字成分的选择值的阈值的速度落后于目标步调时,rules_selectorrunit_id具有为1的增加概率。例如,mpc1在随机生成rules_selectorrunit_id的值时,增加了为1的rules_selectorrunit_id的概率。如果调步领先于目标步调,则rules_selectorrunit_id具有为1的降低概率。[0117]接下来,mpc集群130可通过施行k-匿名化来可选地防止微瞄准。这里,aggregate_id是对其施行k-匿名化的选择值的单元,并且使用函数aggregate_id(x)来抓取选择值x的aggregate_id。aggregate_id可以是映射到一个或多个选择值的特定数字成分的活动id。在一些实施方式中,aggregate_id和runit_id是相同的。[0118]mpc1通过为秘密份额中的每个缓存的选择值x异步更新satisfy_k_anonymityaggregate_id(x)来施行k-匿名化。例如,mpc1异步维护[satisfy_k_anonymityaggregate_id(x),1]并计算[is_candidatex,1]=[is_candidatex,1]x[satisfy_k_anonymityaggregate_id(x),1]。[0119]类似地,mpc2计算[is_candidatex,2]=[is_candidatex,2]x[satisfy_k_anonymityaggregate_id(x),2]。[0120]在步骤11和12之后,mpc 1和mpc 2分别已计算了[is_candidatex,1]和[is_candidatex,2],即秘密消息的两个秘密份额为is_candidatex。这里,如果在映射到数字成分的获胜选择值被提供给客户端设备110用于呈现和/或显示之前,选择值x有资格用于由mpc集群130执行的最终选择过程,则结果是该is_candidatex=1。如果选择值x没有资格用于最终选择过程,则is_candidatex=0。[0121]上述描述涉及其值为0或1的秘密整数的秘密份额之间的乘法以计算逻辑and。以上描述还涉及1减去其值为0或1的秘密整数的秘密份额以计算逻辑not。在一些实施方式中,可以采用替代解决方案来评估具有秘密份额的逻辑表达式。例如,为了计算其值为0或1的秘密整数的加性几个秘密份额的逻辑and,mpc集群可以将这些加性秘密份额的总和与秘密份额的数量进行比较。在另一个例子中,为了计算具有秘密份额作为输入的任意逻辑表达式,mpc集群可以采用真值表方法,即mpc1可以构建真值表,该真值表包含mpc2持有的输入秘密份额的每个可能组合的一行。mpc1为结果随机选取一个秘密份额,表示为[result1]。对于每一行,mpc1可以将其输入秘密份额与mpc2持有的推测性输入秘密份额相结合,以明文重构对逻辑表达式的输入,然后评估逻辑表达式的结果。对于每一行,mpc1将结果分裂成两个秘密份额,其中一个是[result1],另一个是[result2]。mpc1然后将[result2]写入真值表中的行。在mpc1完成真值表的构建之后,mpc2可以启动不经意传输扩展(ote)来抓取真值表中对应于mpc2持有的输入秘密份额的行。抓取结果是[result2]。在上述过程结束时,mpc1和mpc2分别持有[result1]和[result2],它们是逻辑表达式结果的秘密份额。mpc1不知道[result2]的值,mpc2不知道[result1]的值。在一些实施方式中,mpc1和mpc2可以通过构造混淆电路来评估逻辑表达式以确定[is_candidatex,1]和[is_candidatex,2]。[0122]在步骤13中,mpc集群130执行最终选择过程。概念上,mpc集群130计算数字成分的给定选择值的累积值,该累积值表示从排列顶部到给定选择值的候选选择值的总数。例如,mpc集群130使用以下等式计算累积值accx,该累积值accx表示在最终选择过程中排列在选择值x之前的有资格候选选择值的总数。[0123]accx=∑is_candidateb[0124]其中变量b表示基于选择值排在选择值x前面的候选选择值b。在实际实施方式中,使用秘密份额,mpc1计算[accx,1],mpc2计算[accx,2]。[0125]首先,mpc集群130通过根据诸如选择值的值的度量对选择值进行排名,来排列选择值。例如,如果选择值x具有12个单位的值,而选择值y具有14个单位的选择值,则mpc集群130可以将选择值y排名得比选择值x高。这个过程可以用明文执行。一旦选择值已被排列,mpc集群130通过选择获胜者来完成最终的选择过程。mpc集群可以通过为每个缓存的选择值确定变量is_winnerx的值来演算最终选择过程的获胜结果。[0126]is_winnerx=is_candidatex×(accx==0)[0127]其中当且仅当x是最终选择过程的获胜者,变量is_winnerx=1。否则,变量is_winnerx=0。在所有缓存的选择值和jit选择值中,对于响应数字成分请求而执行的每个最终选择过程,最多有一个针对其is_winnerx=1的选择值x。[0128]计算系统mpc1持有[is_winnerx,1]。计算系统mpc2持有[is_winnerx,2]。[is_winnerx,1]和[is_winnerx,2]中的每一个表示变量is_winnerx的秘密份额。[0129]为了创建响应,mpc1计算:[0130][0131]其中cached_or_jit_svx表示mpc集群130处的缓存选择值或mpc集群130接收的jit选择值。[0132]类似地,mpc2计算:[0133][0134]因为最多有一个针对其is_winnerx具有非零值(即,值1)的选择值x,所以result为0(其中没有数字成分是获胜者,因此将不会提供数字成分以响应数字成分请求)或选择值x,其为针对其is_winnerx为1的缓存或jit选择值之一。[0135]接下来,mpc2根据下式使用应用112的公钥对其result的秘密份额进行加密:pubkeyencrypt([result2],application_public_key),其中application_public_key是应用112的公钥,而[result2]是mpc2持有的result的秘密份额。加密函数pubkeyencrypt防止mpc1访问[result2],以防止一旦mpc1从mpc2接收到用于最终传输到应用112的[result2],mpc1就能够从两个秘密份额中重构result。[0136]在一些实施方式中,mpc2根据以下等式对其result的秘密份额进行签名:pubkeysign(pubkeyencrypt([result2],application_public_key),mpc2),其中函数pubkeysign允许mpc2对其result的秘密份额进行签名,使得应用112可验证[result2]源自mpc2。对结果进行签名可以防止mpc1伪造mpc2的结果。在一些实施方式中,mpc2根据以下等式对其result的秘密份额进行签名:pubkeyencrypt(pubkeysign([result2],mpc2),application_public_key)。[0137]在步骤14中,mpc计算系统之一向客户端设备110返回对步骤1中接收的数字成分请求的响应。在这个例子中,mpc1向客户端设备110返回完整的响应。mpc1返回的响应包括:[result1]和pubkeysign(pubkeyencrypt([result2],application_public_key),mpc2)。[0138]在步骤15中,客户端设备110渲染映射到由result指示的选择值的数字成分。首先,客户端设备110接收具有分别源自mpc1和mpc2的结果的两个秘密份额的响应,这使得应用112能够以明文重构结果,并且在客户端设备110上呈现结果数字成分。[0139]如果mpc2对其result的秘密份额进行了签名,则应用112验证mpc2的数字签名。此外,应用112用其自己的私钥解密mpc2,该私钥对应于mpc2已用其加密[result2]的公钥,以便以明文恢复[result2]。现在,应用112以明文持有result的两个秘密份额,应用112从[result1]和[result2]重构result。[0140]在步骤16中,客户端设备110向mpc集群130返回印象通知,该印象通知允许mpc集群130更新用于跟踪施行诸如调步控制规则和k-匿名化规则的选择规则所需的变量的数据结构。印象通知可以包括用于更新由mpc集群130维护的计数器变量的变量值,用于跟踪k-匿名化和调步控制。这些计数器变量可以被mpc集群130缓存。[0141]在步骤17中,mpc集群130基于印象通知更新其计数器变量。例如,mpc1和mpc2可以更新mpc集群130内缓存的计数器,以跟踪调步控制和k-匿名化。在一些实施方式中,为了减少对mpc集群130执行的操作的数量(例如,每秒查询(qps)),应用112可以保持印象通知一持续时间,并将其异步发送到mpc集群130。例如,应用112可以通过利用数字成分请求将印象通知传输到mpc集群130,利用未来的数字成分请求搭载印象通知。通过将印象通知与必须传输到mpc集群130的数据一起传输,应用112可以减少数据业务。在一些实施方式中,如果应用112在预定持续时间结束时不能找到任何搭载机会,则应用可以在专用消息中向mpc集群130发送印象通知,以防止更新计数器中的延迟以及更新计数器中的延迟可能导致的任何不准确性。例如,应用112可以在专用http请求中向mpc集群130传输印象通知。[0142]在一些实施方式中,为了防止mpc集群130成为系统100的单点故障,在如果mpc集群130发生断电,应用112未能向mpc集群130发送请求的情况下,嵌入在将呈现和/或显示数字成分的互联网位置的触发元件也可直接向ssp 170重新发送传输至应用112的数字成分请求(例如,无条件请求)。这种备份机制不会增加嵌入在将呈现和/或显示数字成分的互联网位置内的触发元件的复杂性,因为触发元件通常创建无条件请求。此外,备份机制也不会增加ssp 170的复杂性。ssp 170将在正常操作期间从mpc集群130接收相同的数字成分请求,或者如果mpc集群130断电,则直接从触发元件接收相同的数字成分请求。无论触发元件是在正常操作期间从mpc集群130接收响应,还是在mpc集群130断电期间从ssp 170接收响应,触发元件只需要渲染获胜的最终结果。[0143]该系统设计允许改善的用户体验,而不会显著增加移动设备的带宽和电池消耗。mpc集群130阻止ssp 170和dsp 150看到客户端设备110的标识信息,诸如与数字成分相关联的客户端设备110的ip地址。在计算资源方面没有额外成本的情况下,该系统防止ssp和dsp使用客户端设备110的ip地址作为指纹信号来被动地收集用户数据。这可能是一个问题,因为许多ssp和dsp在没有用户许可的情况下被动地监听数字成分请求以收集信号,并且当数字成分请求中缺少可以用作指纹信号的用户标识符(即,可以唯一识别用户的确定性信号)时,那些服务器可以使用该数据来识别用户。该系统基于诸如客户端设备110的ip地址的信息来阻止这种被动数据收集。[0144]对于在互联网位置上提供元素的服务器,此类服务器可实施信号收集逻辑,以防止不需要的或恶意的内容分配作为数字成分中的脚本,从而改善用户体验。所收集的信号可以在印象通知中被传输回服务器。[0145]在某些实施方式中,某些实体可合法使用指纹信号,诸如ip地址。例如,使用地理信息的功能被广泛用于向用户定制和传递位置特定的数字成分,以改善提供给用户的信息的相关性和实用性。为了实现合法的使用情况,mpc集群130可以执行向ssp和dsp发送位置信号和/或具有适当粒度的识别信息的功能,或者向ssp和dsp转发适当截断或编辑的信息。替代地,对于每个应用和内容发布者域对,mpc集群130可以指派来自相同地理区域的替代ip地址,以支持地理定位(geotargeting)功能。[0146]此外,mpc集群130还可阻止非法业务,改善用户体验并减少不必要的业务。例如,在识别来自特定ip地址或子网的恶意或非法业务之后,ssp 170可以将ip地址阻止列表上传到mpc集群130,mpc集群130安全地保存该信息。mpc集群130然后可以过滤出来自阻止列表上的ip地址的所有数字成分请求。[0147]图4是示出用于选择数字成分以分配给客户端设备的示例过程400的流程图。过程400的操作可以例如由mpc集群130的计算系统mpc1或计算系统mpc2来实施。过程400的操作也可以被实施为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令可以使得一个或多个数据处理装置执行过程400的操作。为简洁起见,过程400被描述为由mpc集群130的计算系统mpc1执行。[0148]过程400开始于由安全多方计算(mpc)系统的第一服务器从用户设备上的应用接收对数字成分的请求(402)。例如,mpc集群130的计算系统mpc1可以针对特定数字成分槽从客户端设备110接收对一个或多个数字成分的请求。该请求可以包括指示数字成分槽的特性的信息、槽的场境(包括数字成分槽所位于的内容)、由客户端设备110指定的内容分配和/或选择规则以及用户提供的信息等其他信息。[0149]过程400继续,由安全mpc系统的第一服务器将请求解析成两个或更多个不同的子请求(404)。例如,mpc1可以将请求解析成三个子请求。在一些实施方式中,可以基于目的地和请求以其为条件的信息类型(即,敏感信息或非敏感信息)来分离不同的部分。例如,子请求可以包括对基于敏感信息的数字成分请求和基于针对ssp 170的非敏感信息的数字成分请求的每个计算系统mpc1和mpc2的秘密份额。[0150]过程400继续,由安全mpc系统的第一服务器将请求的两个或更多个不同部分中的每一个传输至不同的服务器(406)。例如,mpc1可以向ssp 170、mpc1(本身)和mpc2传输单独的子请求。[0151]在一些实施方式中,两个或更多个不同的服务器包括供应侧平台服务器,其自动化分配数字成分的过程,并与一个或多个内容发布者通信。例如,mpc1可以向ssp 170和mpc2传输请求的不同子请求。在一些实施方式中,mpc1可以向ssp 170传输请求的不同子请求,并且ssp 170可以向dsp 150转发子请求的不同部分。[0152]过程400继续,响应于传输请求的两个或更多个不同子请求,由安全mpc系统的第一服务器从单独的服务器接收第一组候选选择值(408)。例如,mpc1可以从mpc2接收一组候选选择值的秘密份额,并且从ssp 170接收一组候选选择值的秘密份额。[0153]在一些实施方式中,这包括从单独的服务器接收针对第一组候选选择值中的每个候选选择值的至少两个秘密份额。例如,mpc1可以从ssp 170接收每个候选选择值的两个秘密份额,其中第一秘密份额是未加密的,并且其中第二秘密份额是使用公钥加密算法和mpc2的公钥来加密的。[0154]过程400继续由第一服务器与mpc系统的第二服务器合作执行选择过程,以生成获胜数字成分的选择结果,所述选择过程包括由第一服务器合并第一组候选选择值和一组缓存选择值,以创建最终的一组候选选择值,由第一服务器根据候选选择值的值对该最终的一组候选选择值排序,以及由第一服务器应用一组两个或更多个选择规则中的每个规则(410)。例如,mpc集群130的计算系统mpc1可以与mpc2合作执行关于图2和图3所述的最终选择过程。mpc集群130将所有选择规则应用于缓存选择值和从ssp 170接收的选择值,以确定一组有资格选择值。mpc集群130然后对有资格选择值进行排列,并选择选择过程的获胜者。[0155]在一些实施方式中,执行选择过程包括由安全mpc系统的第一服务器合并两个或更多个组候选选择值和一组缓存选择值,以创建最终的一组候选选择值,并由安全mpc系统的第一服务器根据候选选择值的值对最终的该组候选选择值进行排序。在一些实施方式中,合并和排序可以由第一服务器作为单个基于比较的排序过程来执行。例如,mpc集群130可以对缓存选择值和从ssp 170接收的选择值执行合并排序操作。[0156]在一些实施方式中,该组选择规则至少包括隐私保护匿名化施行规则。在一些实施方式中,该组选择规则包括预算规则或调步规则。在一些实施方式中,该组选择规则包括指定函数的至少一个规则,在该函数中将一组一个或多个用户组标识符中的每个用户组标识符与映射到候选选择值的用户组标识符进行比较。例如,mpc集群130可以确定基于候选选择值的用户组成员资格并由数字成分请求指示的最终的一组候选选择值中的每个候选选择值的资格。[0157]过程400继续,由安全mpc系统的第一服务器与mpc系统的第二服务器合作,将获胜选择值传输至用户设备(412)。例如,mpc集群130的mpc1可以向客户端设备110提供获胜选择值的秘密份额。[0158]在一些实施方式中,传输来自最终选择过程的获胜选择值包括由安全mpc系统的第一服务器从安全mpc系统的第二服务器接收选择结果的第一秘密份额;以及由安全mpc系统的第一服务器向客户端设备传输(i)选择结果的第一秘密份额和(ii)选择结果的第二秘密份额。例如,mpc集群130的mpc2将指示映射到获胜选择值的数字成分的数据的mpc2的秘密份额传输到mpc集群130的mpc1,并且mpc1将指示映射到获胜选择值的数字成分的数据的mpc1自己的秘密份额连同来自mpc2的秘密份额一起传输到客户端设备110。[0159]在一些实施方式中,mpc2在向mpc1发送秘密份额之前,对选择结果的mpc2的秘密份额进行加密。以这种方式,mpc1不能组合两个秘密份额来获得选择结果的明文值,这防止了mpc1识别获胜选择值及其对应的数字成分,从而保护了关于呈现给用户的数字成分的用户隐私。每个mpc2可以使用用户设备或用户设备的应用的公钥来加密选择结果的该mpc2的份额。用户设备然后可以使用其对应于公钥的私钥来解密选择结果。[0160]过程400可包括由安全mpc系统的第一服务器从用户设备上的应用接收通知,该通知包括指示数字成分在客户端设备上呈现的数据。例如,mpc集群130的mpc1可以从客户端设备110接收指示数字成分在客户端设备110处渲染的印象通知。[0161]在一些实施方式中,过程400包括由安全mpc系统的第一服务器更新用于确定数字成分是否满足隐私保护匿名化施行规则的数据结构,该隐私保护匿名化施行规则维护与获胜选择值相对应的隐私保护特性的值。例如,mpc集群130可以为每个选择值x更新计数器变量satisfy_k_anonymityx。变量satisfy_k_anonymityx表示选择值x是否满足k-匿名化规则。[0162]在一些实施方式中,通知与对第二选择值的第二请求一起由安全mpc系统的第一服务器接收,该通知包括指示对应于获胜选择值的数字成分在客户端设备上被呈现的数据。例如,应用112可以异步地并且与后续的数字成分请求一起向mpc集群130提供印象通知,以节省所需的传输和计算资源。[0163]图5为可用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个都可以例如使用系统总线550来互连。处理器510能够处理用于在系统500内执行的指令。在一些实施方式中,处理器510是单线程处理器。在另一实施方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520或存储设备530中的指令。[0164]存储器520存储系统500内的信息。在一种实施方式中,存储器520是计算机可读介质。在一些实施方式中,存储器520是易失性存储器单元。在另一实施方式中,存储器520是非易失性存储器单元。[0165]存储设备530能够为系统500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)、或某种其他大容量存储设备。[0166]输入/输出设备540为系统500提供输入/输出操作。在一些实施方式中,输入/输出设备540可以包括一个或多个网络接口设备,例如以太网卡、串行通信设备,例如rs-232端口,和/或无线接口设备,例如802.11卡。在另一实施方式中,输入/输出设备可以包括被配置成接收输入数据并将输出数据发送到外部设备560(例如,键盘、打印机和显示设备)的驱动设备。然而,也可以使用其他实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。[0167]尽管已在图5中描述了示例处理系统,但本说明书中描述的主题和功能操作的实施方式可在其他类型的数字电子电路中实施,或在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等效物,或其一个或多个的组合。[0168]本说明书中所述主题和操作的实施例可在数字电子电路中实施,或在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等效物,或其一个或多个的组合。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即一个或多个计算机程序指令模块,其被编码在计算机存储介质(或多个介质)上,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或介质(例如,多个cd、盘或其他存储设备)中。[0169]本说明书中描述的操作可实施为数据处理装置对存储在一个或多个计算机可读存储设备上的数据或从其他来源接收的数据执行的操作。[0170]术语“数据处理装置”包括所有类型的用于处理数据的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或前述的多个或组合。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。[0171]计算机程序(也称为程序、软件、软件应用、脚本或代码)可采用任何形式的编程语言编写,包括编译或解释语言、声明或程序语言,并可采用任何形式部署,包括作为独立程序或模块、组件、子程序、对象或适用于计算环境的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机或位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。[0172]本说明书中所述的过程和逻辑流程可由一个或多个可编程处理器执行,所述可编程处理器执行一个或多个计算机程序,通过对输入数据进行操作并产生输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实施为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。[0173]适于执行计算机程序的处理器包括,例如,通用和专用微处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或操作地耦合到一个或多个用于存储数据的大容量存储设备以从该大容量存储设备接收数据或向其传送数据,或两者兼有,所述大容量存储设备例如磁盘、磁光盘或光盘。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器)等等。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和cd-rom以及dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。[0174]为提供与用户的交互,本说明书中所述主题的实施例可在计算机上实施,所述计算机具有用于向用户显示信息的显示设备以及用户可向计算机提供输入的键盘和定点设备,所述显示设备例如crt(阴极射线管)或lcd(液晶显示器)监视器,所述定点设备例如鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应从web浏览器接收的请求而向用户客户端设备上的web浏览器发送网页。[0175]本说明书所述主题的实施例可在计算系统中实施,所述计算系统包括后端组件,例如数据服务器,或包括中间件组件,例如应用服务器,或包括前端组件,例如具有用户可通过其与本说明书所述主题的实施方式进行交互的图形用户界面或web浏览器的客户端计算机,或一个或多个所述后端、中间件或前端组件的任何组合。该系统的组件可以通过任何数字数据通信形式或介质(例如通信网络)来互连。通信网络的示例包括局域网(lan)和广域网(wan)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。[0176]计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,html页面)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收。[0177]虽然本说明书包含许多具体实施细节,但这些不应被视为对任何发明或可能要求保护的范围的限制,而是对特定发明的特定实施例的特定特征的描述。本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。[0178]类似地,尽管图中以特定顺序描绘了操作,但不应理解为要求以所示特定次序或顺序执行此类操作或要求执行所有图示操作才能实现所需结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包到多个软件产品中。[0179]因此,已描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在某些情况下,权利要求中所述的动作可以以不同的顺序执行,并且仍能获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。[0180]以下是本公开内容的方面的非详尽列表:[0181]方面1.一种计算机实施的方法,其包括:[0182]由安全多方计算mpc系统的第一服务器从用户设备上的应用接收对数字成分的请求;[0183]由所述第一服务器将所述请求解析成两个或更多个不同的子请求;[0184]由所述安全mpc系统的所述第一服务器将所述两个或更多个不同的子请求中的每一个传输到不同的服务器;[0185]响应于传输所述两个或更多个不同的子请求,由所述第一服务器从单独的服务器接收第一组候选选择值;[0186]由所述第一服务器与所述mpc系统的一个或多个第二服务器协作执行选择过程,以生成获胜数字成分的选择结果,包括:[0187]由所述第一服务器合并所述第一组候选选择值和一组缓存选择值,以创建最终的一组候选选择值;[0188]由所述第一服务器根据所述候选选择值的值对所述最终的一组候选选择值进行排序;和[0189]由所述第一服务器应用一组两个或更多个选择规则中的每个规则;和[0190]由所述第一服务器与所述一个或多个第二服务器协作,向所述用户设备传输获胜数字成分的所述选择结果。[0191]方面1a.根据方面1所述的方法,其中,所述不同的服务器是所述mpc系统的第二服务器。[0192]方面1b.根据方面1所述的方法,其中,所述不同的服务器是供应侧平台服务器。[0193]方面1c.根据方面1至1b中任一项所述的方法,其中,所述单独的服务器是供应侧平台服务器。[0194]方面2.根据方面1至1c中任一项所述的方法,其还包括:[0195]由所述安全mpc系统的所述第一服务器从所述用户设备上的所述应用接收通知,所述通知包括指示所述获胜数字成分在所述客户端设备处被呈现的数据。[0196]方面3.根据方面2所述的方法,其中,所述通知与对第二选择值的第二请求一起由所述安全mpc系统的所述第一服务器接收,所述通知包括指示与所述获胜选择值相对应的所述数字成分在所述客户端设备处被呈现的数据。[0197]方面4.根据方面1至3中任一项所述的方法,其中,传输来自所述最终选择过程的获胜数字成分的所述选择结果包括:[0198]由所述安全mpc系统的所述第一服务器从所述安全mpc系统的每个第二服务器接收所述选择结果的第一秘密份额;和[0199]由所述安全mpc系统的所述第一服务器向所述客户端设备传输(i)所述选择结果的每个第一秘密份额和(ii)所述选择结果的第二秘密份额。[0200]方面5.根据方面1至4中任一项所述的方法,其中,接收所述第一组候选选择值包括从所述单独的服务器接收第一组候选选择值中的每个候选选择值的至少两个秘密份额。[0201]方面6.根据方面5所述的方法,其中,所述合并和所述排序能够由所述第一服务器作为单个基于比较的排序过程来执行。[0202]方面7.根据方面1至6中任一项所述的方法,其中,所述一组选择规则至少包括隐私保护匿名化施行规则。[0203]方面8.一种系统,包括:[0204]一个或多个处理器;和[0205]一个或多个包括指令的存储器元件,所述指令在被执行时使所述一个或多个处理器执行操作,所述操作包括:[0206]由安全多方计算mpc系统的第一服务器从用户设备上的应用接收对数字成分的请求;[0207]由所述第一服务器将所述请求解析成两个或更多个不同的子请求;[0208]由所述安全mpc系统的所述第一服务器将所述两个或更多个不同的子请求中的每一个传输到不同的服务器;[0209]响应于传输所述两个或更多个不同的子请求,由所述第一服务器从单独的服务器接收第一组候选选择值;[0210]由所述第一服务器与所述mpc系统的一个或多个第二服务器协作执行选择过程,以生成获胜数字成分的选择结果,包括:[0211]由所述第一服务器合并所述第一组候选选择值和一组缓存选择值,以创建最终的一组候选选择值;[0212]由所述第一服务器根据所述候选选择值的值对所述最终的一组候选选择值进行排序;和[0213]由所述第一服务器应用一组两个或更多个选择规则中的每个规则;和[0214]由所述第一服务器与所述一个或多个第二服务器协作,向所述用户设备传输获胜数字成分的所述选择结果。[0215]方面8a.根据方面8所述的系统,其中,所述不同的服务器是mpc系统的第二服务器。[0216]方面8b.根据方面8所述的系统,其中,所述不同的服务器是供应侧平台服务器。[0217]方面8c.根据方面8至8b中任一项所述的系统,其中,所述单独的服务器是供应侧平台服务器。[0218]方面9.根据方面8至8c中任一项所述的系统,所述操作还包括:[0219]由所述安全mpc系统的第一服务器从所述用户设备上的所述应用接收通知,所述通知包括指示所述获胜数字成分在所述客户端设备处被呈现的数据。[0220]方面10.根据方面9所述的系统,其中,所述通知与对第二选择值的第二请求一起由所述安全mpc系统的所述第一服务器接收,所述通知包括指示与所述获胜选择值相对应的所述数字成分在所述客户端设备处被呈现的数据。[0221]方面11.根据方面8至10中任一项所述的系统,其中,传输来自所述最终选择过程的获胜数字成分的所述选择结果包括:[0222]由所述安全mpc系统的所述第一服务器从所述安全mpc系统的每个第二服务器接收所述选择结果的第一秘密份额;和[0223]由所述安全mpc系统的所述第一服务器向所述客户端设备传输(i)所述选择结果的每个第一秘密份额和(ii)所述选择结果的第二秘密份额。[0224]方面12.根据方面8至11中任一项所述的系统,其中,接收第一组候选选择值包括从单独的服务器接收第一组候选选择值中的每个候选选择值的至少两个秘密份额。[0225]方面13.根据方面12所述的系统,其中,所述合并和所述排序由第一服务器作为单个基于比较的排序过程来执行。[0226]方面14.根据方面8至13中任一项所述的系统,其中,所述一组选择规则至少包括隐私保护匿名化施行规则。[0227]方面15.一种编码有指令的非暂时性计算机存储介质,所述指令在由分布式计算系统执行时使得所述分布式计算系统执行操作,所述操作包括:[0228]由安全多方计算mpc系统的第一服务器从用户设备上的应用接收对数字成分的请求;[0229]由所述第一服务器将所述请求解析成两个或更多个不同的子请求;[0230]由所述安全mpc系统的所述第一服务器将所述两个或更多个不同的子请求中的每一个传输到不同的服务器;[0231]响应于传输所述两个或更多个不同的子请求,由所述第一服务器从单独的服务器接收第一组候选选择值;[0232]由所述第一服务器与所述mpc系统的一个或多个第二服务器协作执行选择过程,以生成获胜数字成分的选择结果,包括:[0233]由所述第一服务器合并所述第一组候选选择值和一组缓存选择值,以创建最终的一组候选选择值;[0234]由所述第一服务器根据所述候选选择值的值对所述最终的一组候选选择值进行排序;和[0235]由所述第一服务器应用一组两个或更多个选择规则中的每个规则;和[0236]由所述第一服务器与所述一个或多个第二服务器协作,向所述用户设备传输获胜数字成分的所述选择结果。[0237]方面15a.根据方面15所述的非暂时性计算机存储介质,其中,所述不同的服务器是mpc系统的第二服务器。[0238]方面15b.根据方面15所述的非暂时性计算机存储介质,其中,所述不同的服务器是供应侧平台服务器。[0239]方面15c.根据方面15至15b中任一项所述的非暂时性计算机存储介质,其中,所述单独的服务器是供应侧平台服务器。[0240]方面16.根据方面15至15c中任一项所述的非暂时性计算机存储介质,所述操作还包括:[0241]由所述安全mpc系统的第一服务器从所述用户设备上的所述应用接收通知,所述通知包括指示所述获胜数字成分在所述客户端设备上处被呈现的数据。[0242]方面17.根据方面16所述的非暂时性计算机存储介质,其中,所述通知与对第二选择值的第二请求一起由所述安全mpc系统的所述第一服务器接收,所述通知包括指示与所述获胜选择值相对应的所述数字成分在所述客户端设备处被呈现的数据。[0243]方面18.根据方面15至17中任一项所述的非暂时性计算机存储介质,其中,传输来自所述最终选择过程的获胜数字成分的所述选择结果包括:[0244]由所述安全mpc系统的所述第一服务器从所述安全mpc系统的每个第二服务器接收所述选择结果的第一秘密份额;和[0245]由所述安全mpc系统的所述第一服务器向所述客户端设备传输(i)所述选择结果的每个第一秘密份额和(ii)所述选择结果的第二秘密份额。[0246]方面19.根据方面15至18中任一项所述的非暂时性计算机存储介质,其中,接收所述第一组候选选择值包括从所述单独的服务器接收第一组候选选择值中的每个候选选择值的至少两个秘密份额。[0247]方面20.根据方面15至19中任一项所述的非暂时性计算机存储介质,其中,所述合并和排序由所述第一服务器作为单个基于比较的排序过程来执行。[0248]方面21.一种系统,包括:一个或多个处理器;和[0249]一个或多个包括指令的存储器元件,所述指令在被执行时使得所述一个或多个处理器执行包括根据方面1至7中任一项所述的方法的操作。[0250]方面22.一种编码有指令的非暂时性计算机存储介质,所述指令在被分布式计算系统执行时使得分布式计算系统执行包括根据方面1至7中任一项所述的方法的操作。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部