不平衡数据集的私有集合交集的制作方法
- 国知局
- 2024-11-21 11:53:57
背景技术:
1、“私有集合交集”或“psi”指允许两方中的一方或双方确定与第一方相关联的第一集合和与第二方相关联的第二集合的交集的计算机实现的协议。协议被设计成使得一方(或双方,取决于协议)可以学习交集,而不学习不在交集中的另一方集合的任何元素。例如,在进行联系人追踪以控制病毒的传播的背景下,可能期望在不用个人学习关于数据库的任何其他东西的情况下并且在不用公共卫生机构学习关于个人的联系人的任何其他东西的情况下确定个人已经最近与之联系的任何人是否在由公共卫生机构维护的已知感染人员的数据库中。作为另一示例,在在线服务的订户(或在线服务的注册用户)的背景下,可能期望一个订户或服务(或两者)学习订户的哪些朋友或同事也是服务的订户。psi的一种已知方法涉及各方交换已被有效加密的元素的版本(例如,使用决策diffie-hellmann或ddh技术),使得接收方不能解密元素,但可以将它们与接收方自己的集合中的元素的对应加密版本进行比较以检测匹配。以此方式,接收方可以在不学习不在交集中的另一方集合的任何成员的情况下确定交集。
2、用于psi的常规算法不太适于集合具有不同大小的情形。例如,个人可以具有几十或几百个联系人,然而大型服务提供方可以具有几百万个订户。在常规psi算法中,各方交换他们的集合的加密表示,这些加密表示可以用附加元素填补以做出相等大小的两个集合,从而意味着两个集合都需要至少是较大集合的大小。计算成本可以随较大集合中的元素的数量准线性地缩放,并且通信成本可以随较大集合中的元素的数量线性地缩放。
技术实现思路
1、本文公开的某些实施方案涉及私有集合交集(psi)协议,该psi协议可降低对不同大小的数据集(也称为“不平衡”数据集)执行psi的计算成本和/或通信成本,同时保存任一方学习另一方的集合中的未被包括在交集中的任何元素的性质。在一些实施方案中,具有较大集合的方(为了方便称为“服务器”)可计算表示服务器集合的内容的数组,诸如反向布隆过滤器(bloom filter)或cuckoo散列表。具有较小集合的方(为了方便称为“客户端”)可例如使用私有信息检索(pir)协议来查询数组,以获得使得客户端能够确定客户端的集合中的特定元素是否也在服务器的集合中的信息。通过对于客户端的集合中的每个元素重复查询,客户端可学习交集。在一些实施方案中,除了在交集中的元素以外客户端不学习关于服务器的集合的信息,同时服务器不学习关于客户端的集合的信息。
2、某些实施方案涉及一种可由服务器计算机系统执行的方法。服务器计算机可基于具有许多元素的服务器数据集准备具有一定数量的数组位置的数组。准备数组可包括,对于服务器数据集中的每个元素:使用一组散列函数来计算一组散列值;以及基于散列值更新数组位置中的一个或多个数组位置。服务器计算机可使用私有信息检索(pir)协议来从客户端计算机系统接收从与许多加密散列值相对应的许多数组位置中检索数据的请求,所述许多加密散列值对应于客户端数据集中的元素。使用pir协议,服务器计算机可基于数组和加密散列值计算pir响应并且向客户端计算机系统传输pir响应,而不用服务器计算机系统学习哪些数组位置具有检索到的数据。pir响应能够可由客户端计算机系统使用来确定客户端数据集中的元素是否也在服务器数据集中,而不用客户端计算机系统学习关于服务器数据集的其他信息。在一些实施方案中,pir协议可支持成批请求,并且可在单个请求中请求与客户端数据集中的元素相对应的所有加密散列值。
3、各种技术可用于准备数组。例如,数组可利用至少三个散列函数使用cuckoo散列来填充。在一些实施方案中,服务器计算机可与客户端计算机系统一起执行不经意伪随机函数(oprf)协议以生成与服务器数据集中的元素相对应的加密元素,其中服务器计算机系统发起oprf协议,并且可对于加密元素计算散列值。类似地,在从客户端计算机系统接收请求之前,服务器计算机系统可与客户端计算机系统一起执行oprf协议以生成与客户端数据集中的元素相对应的加密元素,其中客户端计算机系统发起oprf协议。
4、某些实施方案涉及一种服务器计算机系统,该服务器计算机系统可包括:通信接口,该通信接口被配置为与客户端计算机系统进行通信;存储器,该存储器用于存储对服务器计算机系统私有的第一集合;以及处理器,该处理器耦合到存储器。处理器可被配置为基于具有多个元素的服务器数据集准备具有多个数组位置的数组。准备数组可包括,对于服务器数据集中的每个元素:使用多个散列函数来计算多个散列值;以及基于散列值更新数组位置中的一个或多个数组位置。处理器可被进一步配置为使用私有信息检索(pir)协议来从客户端计算机系统接收从与许多加密散列值相对应的许多数组位置中检索数据的请求,所述许多加密散列值对应于客户端数据集中的元素。使用pir协议,处理器可基于数组和加密散列值计算pir响应并且使用pir协议来向客户端计算机系统传输pir响应。pir响应可由客户端计算机系统使用来确定客户端数据集中的元素是否也在服务器数据集中。
5、各种技术可用于准备数组。例如,数组可以是用于服务器数据集的反向布隆过滤器。在一些实施方案中,pir协议可使用加性同态加密,并且处理器可被进一步配置为使得计算pir响应包括:对于每个加密散列值,检索表示存储在与加密散列值相对应的数组位置中的值的加密消息;以及计算加密消息之和。在一些实施方案中,处理器可被进一步配置为使得传输pir响应包括传输和。在一些实施方案中,处理器可被进一步配置为使得计算pir响应还包括计算和乘以随机缩放因子的乘积,并且传输pir响应包括传输该乘积。
6、某些实施方案涉及一种由客户端计算机系统执行的方法。客户端计算机系统可从具有一个或多个元素的客户端数据集中选择元素,使用一组散列函数来从客户端数据集中的元素计算一组散列值。客户端计算机系统可使用私有信息检索(pir)协议来向服务器计算机系统发送从由服务器计算机系统存储的数组中检索由一组散列值定义的位置处的许多数组元素的请求,其中数组表示服务器数据集。客户端计算机系统可从服务器计算机系统接收基于多个检索到的数组元素的pir响应。基于pir响应,客户端计算机系统可确定客户端数据集中的元素是否也在服务器数据集中。在一些实施方案中,客户端计算机系统关于服务器数据集学习的唯一信息是客户端数据集中的元素是否在服务器数据集中。
7、在一些实施方案中,pir协议可支持成批请求,并且从元素计算的所有散列值可被包括在单个请求中。
8、在一些实施方案中,由服务器计算机系统存储的数组可以是反向布隆过滤器,并且pir响应可包括多个加密布隆过滤器值。在情况是这样的情况下,确定客户端数据集中的元素是否也在服务器数据集中可包括:计算布隆过滤器值之和;在和是零的情况下确定客户端数据集中的元素也在服务器数据集中;以及在和不同于零的情况下确定客户端数据集中的元素不在服务器数据集中。
9、在一些实施方案中,由服务器计算机系统存储的数组可以是反向布隆过滤器,并且pir协议可使用加性同态加密。在情况是这样的情况下,pir响应可包括由服务器计算机系统响应于pir请求检索到的多个加密布隆过滤器值之和。在一些实施方案中,确定客户端数据集中的元素是否也在服务器数据集中可包括:在和是零的情况下确定客户端数据集中的元素也在服务器数据集中;以及在和不同于零的情况下确定客户端数据集中的元素不在服务器数据集中。
10、在一些实施方案中,由服务器计算机系统存储的数组可以是cuckoo散列表,其中数组元素存储服务器数据集中的元素的加密版本,并且pir响应可包括表示cuckoo散列表中与发送到服务器计算机系统的散列值相对应的位置处的条目的多个值。
11、在一些实施方案中,在向服务器计算机系统发送请求之前,客户端计算机系统可与服务器计算机系统一起执行不经意伪随机函数(oprf)协议以生成与服务器数据集中的每个元素相对应的加密服务器元素,其中服务器计算机系统发起oprf协议。在向服务器计算机系统发送请求之前,客户端计算机系统也可与服务器计算机系统一起执行oprf协议以生成与从客户端数据集中选择的元素相对应的加密客户端元素,其中客户端计算机系统发起oprf协议,并且散列值可从加密客户端元素计算。
12、在一些实施方案中,pir响应可包括在多个散列值中的每一个散列值与由服务器计算机系统针对服务器数据集维护的反向布隆过滤器中的条目匹配的情况下为零而在多个散列值中的至少一个散列值与反向布隆过滤器中的条目不匹配的情况下为非零的值。
13、以下详细描述与附图一起将提供对本发明实施方案的更好理解。
本文地址:https://www.jishuxx.com/zhuanli/20241120/333278.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。