本说明书涉及密码学、数据隐私和数据安全。
背景技术:
1、私人信息检索是一系列协议,其使得能够从由服务器托管的数据库中检索项(item),而不向服务器透露正在检索哪个项。安全多方计算(mpc)是一系列加密协议,其通过将计算分布跨多方来防止对数据的访问,使得任何单独一方都不能访问另一方的数据或中间计算值,而仅向指定方发布输出。mpc计算系统通常使用数据的秘密份额(share)或其他加密形式和各方之间的信息的安全交换来进行计算。
技术实现思路
1、一般而言,本说明书中描述的主题的一个创新方面可以被体现在包括以下操作的方法中:由多方计算(mpc)服务器集群中的第一mpc服务器从客户端设备接收用于检索存储在一个或多个数据库中的多个数据库值的批量请求,该批量请求包括第一字节阵列,对于多个请求的密钥中的每个请求的密钥,该第一字节阵列包括请求的密钥的第一秘密份额,其中每个数据库包括多个数据项,每个数据项包括数据库密钥和对应的值;由第一mpc服务器处理每个数据库密钥以生成匹配数据的第一秘密份额,该匹配数据指示该数据库密钥是否与多个请求的密钥中的至少一个请求的密钥匹配;由第一mpc服务器使用每个数据库密钥的匹配数据的每个第一秘密份额生成一个或多个结果,所述一个或多个结果表示与和多个请求的密钥中的至少一个请求的密钥匹配的每个数据库密钥对应的数据库值;以及将所述一个或多个结果发送至客户端设备。该方面的其他实施方式包括被配置为执行在计算机存储设备上编码的方法的各方面的对应装置、系统和计算机程序。
2、这些和其他实施方式可以各自可选地包括以下特征中的一个或多个。在一些方面,mpc集群的第二mpc服务器接收第二字节阵列,该第二字节阵列对于多个请求的密钥中的每个请求的密钥包括请求的密钥的第二秘密份额。第一mpc服务器和第二mpc服务器可以协作地执行安全mpc操作以生成一个或多个结果和一个或多个附加结果,所述一个或多个结果表示与和所述至少一个请求的密钥匹配的每个数据库密钥对应的数据库值,所述一个或多个附加结果表示与和所述至少一个请求的密钥匹配的每个数据库密钥对应的数据库值。第二mpc服务器将所述一个或多个附加结果发送到客户端设备。
3、在一些方面,每个请求的密钥的第一秘密份额包括由客户端设备使用分布式点函数的生成函数来生成的第一分布式点函数密钥。每个请求的密钥的第二秘密份额可以包括由客户端设备使用分布式点函数的生成函数来生成的第二分布式点函数密钥。
4、在一些方面,由第一mpc服务器处理每个数据库密钥以生成指示数据库密钥是否与多个请求的密钥中的至少一个请求的密钥匹配的匹配数据的第一秘密份额包括,针对每个数据库密钥,标识第一字节阵列中数据库密钥的每个潜在位置,并且对于每个潜在位置,使用分布式点函数的评估函数来确定匹配数据的相应第一秘密份额。
5、在一些方面,由第一mpc服务器使用每个数据库密钥的匹配数据的每个第一秘密份额来生成表示与在和多个请求的密钥中的至少一个请求的密钥匹配的每个数据库密钥对应的一个或多个结果包括,对于每个数据库密钥的每个潜在位置:确定匹配数据的相应第一秘密份额是否具有为1的值;以及响应于确定匹配数据的相应第一秘密份额具有为1的值,将匹配数据的相应第一秘密份额和第一字节阵列的潜在位置中的现有值之间的xor运算的结果确定为潜在位置的数据库值的第一秘密份额。
6、在一些方面,生成一个或多个结果包括生成包括第一结果字节阵列的第一结果,所述第一结果字节阵列对于数据库中存在的多个请求的密钥中的每个请求的密钥包括表示请求的密钥的值的对应字节阵列。对于在数据库中未找到的多个请求的密钥中的每个请求的密钥,第一结果可以包括为0的值
7、生成一个或多个结果可以包括从mpc服务器集群中的第二mpc服务器接收表示对第二结果字节阵列和掩码执行的按位xor运算的结果的乱码响应。第二结果字节阵列针对多个请求的密钥中的每个请求的密钥包括表示请求的密钥的值的对应字节阵列。生成一个或多个结果可以包括对第一结果字节阵列和乱码响应计算按位xor运算。掩码可以由客户端设备和第一mpc服务器使用密码算法和针对第一字节阵列中的每个位置的输入随机数来生成
8、可以实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。本文档中描述的系统和技术使客户端设备(例如,在客户端设备上运行的应用)能够从由服务器托管的数据库批量检索多个数据项,同时防止服务器具有对由客户端设备请求的数据项和/或返回到客户端设备的数据项的访问。数据库可以以密钥值对(key-valuepair)的形式存储项,每个密钥值对包括标识数据项的密钥和数据项的值。在该示例中,客户端设备可以请求密钥集合的值,并且服务器可以提供与密钥对应的值,而服务器不能访问请求的密钥或返回到客户端设备的数据项的值。这在数据项的密钥和/或值包括机密信息的情况下以及在客户端设备请求密钥集合的事实是机密信息的情况下改善了数据安全性和数据保密性。
9、在本文档中描述的系统和技术可以将私有信息检索(private informationretrieval,pir)技术与概率数据结构(例如,布谷鸟过滤器)、mpc技术和分布式点函数或提供保护数据安全性和数据隐私的协同效应的其他形式的秘密份额相结合,同时相对于其他技术,例如采用使用同态加密的单个pir服务器的批量检索技术,还改善从服务器获取数据项的速度和效率。例如,与单个服务器pir技术相比,用于返回由客户端设备请求的数据项的值的技术使用这些所描述的技术计算成本较低,例如,每个请求的数据项需要更少的处理器循环和/或更少的网络带宽。
10、所描述的技术还阻止服务器能够标识由客户端设备请求的数据项的数量,或者由服务器返回到客户端设备的数据项的数量,这例如在其中请求/返回的数据项的数量是机密信息的情况下提供了附加的隐私保证。为了进一步增强这样的数据隐私,客户端设备可以被配置为从多个概率数据结构大小中进行选择,并随机挑选一个以防止mpc知道请求中的密钥的数目。
11、使用所描述的批量检索技术还减少了由客户端设备通过将客户端设备连接到服务器的数据通信网络发送的请求的数目以及从服务器发送到客户端设备的响应的数目。聚合超过数千或数百万个客户端设备,这导致节省大量带宽和时延。通过所描述的批量检索技术实现的减小的数据大小还减少了由客户端设备发送请求和接收响应数据所消耗的电池电量,这对于通常依靠有限电池电量运行的移动设备来说非常重要。即使对于大量请求的数据项,批量检索技术也提供这些性能改进,因为不管请求的数据项的数量如何,总体时延、计算要求和带宽都是相同或相似的。
12、在一些实施方式中,客户端设备(例如,在客户端设备上运行的应用)可以取决于客户端设备正在请求的数据项的数量而选择性地使用批量检索技术。以该方式,当仅少量数据项被请求时,客户端设备可以使用更高效的单个项pir过程,从而减少置于服务器上的计算负担并释放服务器来处置从其他客户端设备接收到的批量检索请求。这增加了由服务器在任何给定时间可以处置的请求的数量。
13、使用本文档中描述的密钥编码技术使得服务器能够扫描整个数据库一次,而与正在被请求的数据项的数量无关。这减少了计算负担,例如,相对于需要pir服务器针对每个请求的数据项扫描数据库一次的过程,返回请求的数据项的值所需的处理器循环的数量。这还减少了响应于请求的时延,这对于其中要求服务器快速响应——例如以毫秒为单位——的实施方式至关重要。例如,提供用于与网页和/或其他电子资源一起显示的数字组件或关联数据的延迟可能导致客户端设备处的页面加载错误,或者使电子资源的部分即使在资源的其他部分被显示在客户端设备上之后仍然未被填充。而且,随着向客户端设备提供数字组件的延迟增加,当数字组件被递送到客户端设备时,电子资源很可能将不再被显示在客户端设备处,从而对用户与电子资源的体验产生负面影响。此外,提供数字组件的延迟可能导致数字组件的失败递送——例如,如果当数字组件被接收时电子资源不再被显示在客户端设备处——以及在尝试数字组件的失败递送时的浪费的网络带宽两者。
14、在附图和以下说明书中阐述了本说明书中所描述的主题的一个或多个实施例的细节。本主题的其他特征、方面和优点将根据说明书、附图和权利要求书而变得显而易见。