CN116261721A - 用于大型数据集的安全和可扩展私有集合交集 - Google Patents
用于大型数据集的安全和可扩展私有集合交集 Download PDFInfo
- Publication number
- CN116261721A CN116261721A CN202180065778.9A CN202180065778A CN116261721A CN 116261721 A CN116261721 A CN 116261721A CN 202180065778 A CN202180065778 A CN 202180065778A CN 116261721 A CN116261721 A CN 116261721A
- Authority
- CN
- China
- Prior art keywords
- party
- tokenized
- subsets
- token
- psi
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 115
- 238000005304 joining Methods 0.000 claims description 15
- 238000001914 filtration Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 51
- 238000004891 communication Methods 0.000 description 19
- 230000015654 memory Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000002955 isolation Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 101100328895 Caenorhabditis elegans rol-8 gene Proteins 0.000 description 3
- 241000544061 Cuculus canorus Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000282836 Camelus dromedarius Species 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- FMFKNGWZEQOWNK-UHFFFAOYSA-N 1-butoxypropan-2-yl 2-(2,4,5-trichlorophenoxy)propanoate Chemical compound CCCCOCC(C)OC(=O)C(C)OC1=CC(Cl)=C(Cl)C=C1Cl FMFKNGWZEQOWNK-UHFFFAOYSA-N 0.000 description 1
- 241001654684 Pinda Species 0.000 description 1
- 101100237842 Xenopus laevis mmp18 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011045 prefiltration Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000006722 reduction reaction Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及用于确定私有集合交集(PSI)和执行私有数据库联接(PDJ)的方法和系统。一些实施例的特征在于分组技术,所述分组技术使PSI和PDJ方法能够并行地由计算集群中的工作节点执行,从而减少执行时间。第一方计算系统和第二方计算系统可以各自使其相应数据集令牌化,然后将所述数据集分配到块组。所述块组可以各自用虚拟令牌填充。然后,所述第一方计算系统和所述第二方计算系统可以对对应块组对执行几个并行PSI。然后,可以将结果组合以产生令牌化交集集合,然后可以对所述令牌化交集集合进行去令牌化以产生集合交集。
Description
相关申请交叉引用
本申请是要求于2020年10月7日申请的第63/088,863号美国临时申请的优先权的国际申请,所述美国临时申请和所述国际申请的公开内容出于所有目的特此以全文引用的方式并入本文中。
背景技术
另外两个集合的交集包括这些集合共有的元素。确定集合的交集是与数据库和数字数据的使用相关联的实践,并且具有许多应用。例如,非营利组织可以具有与先前自愿加入该组织的人员名单相对应的数据集,以及包括居住在特定城市的组织成员的数据集。非营利组织可以确定这些数据集的交集,以确定在该城市居住的先前志愿者的名单。然后,非营利组织可以发送大众通讯(例如短信、电子邮件等),告知这些自愿者该城市有新的志愿服务机会。
常规地,确定两个集合的交集涉及将那些集合的单独元素进行比较。这意味着通常需要完全访问这两个集合来确定交集。如果数据集由一方拥有或控制,这可能不是问题。然而,如果集合由不同方拥有或持有,则各方将需要彼此公开其集合以确定集合交集。当集合包括私有或敏感的数据,例如个人标识信息、医疗记录等时,这可能成问题。
幸运的是,存在用于确定集合交集的隐私保护方法。私有集合交集(PSI)使各自持有私有元素集合的双方能够计算两个集合的交集,同时仅显示交集本身。PSI在各种设置中都有应用。例如,PSI可用于衡量在线广告的有效性[39],执行私有联系人发现[12,21,62],执行隐私保护位置共享[50,31],执行隐私保护远程诊断[10]以及检测僵尸网络[49]。最近的几项研究,最值得注意的是[11,54,55],研究了计算与通信之间的平衡。有些甚至基于在云中操作这些协议的成本优化了PSI协议。
虽然在提高PSI协议的效率方面取得了进展,但几乎所有关于平衡PSI的文献研究(例如,其中各方拥有包括大致相同数目的元素的私有集合)都集中在集合大小最多为224≈1600万个元素的设置上。一个值得注意的例外是[67]的研究,它证明了在十亿元素大小的集合上使用非标准“服务器辅助”PSI的可行性。在此工作中,相互信任的第三方服务器帮助确定交集。另一值得注意的例外是[59,60]的最近研究。在此研究中,两个服务器(每个服务器都有超过16GB的内存空间)在34.2小时内确定了两个十亿元素集合的PSI。这个结果留下了改进的余地。
另外,存在与将现有PSI协议扩展到大型数据集合相关联的许多问题,例如存储器消耗。从广义上讲,存储器消耗是当实施对大量数据进行操作的加密方案时的问题。许多即使不是全部实施的PSI协议(例如,那些基于加密布尔电路、布隆过滤器或布谷鸟散列的协议)很快超过了主存储器,从而需要更多的工程工作。甚至计算数十亿元素的明文交集也是重要的问题。
实施方案单独地以及共同地解决了这些和其它问题。
发明内容
本公开的实施例涉及用于并行地确定私有集合交集(PSI)的改进方法。这些方法是快速且有效的,特别是用于确定大型(例如,十亿元素集合)的PSI。例如,这些方法已用于在83分钟内确定包括128位元素的两个十亿元素集合的PSI;这比[60]中描述的当前最先进的解决方案快25倍,所述最先进的解决方案在34.2小时内确定了相同的PSI。另外,由于本公开的实施例可用于并行化大多数现有的确定PSI的方法,因此它们是相对灵活且易于实施的。
本公开的实施例还涉及主要基于上文所提到的用于执行PSI的改进方法的执行私有数据库联接(PDJ)的改进方法。从广义上讲,“联接查询”(例如,SQL语句或JSON样式的请求)可以重新解释为“联接密钥”集合之间的PSI操作。本文中的方法可用于确定联接密钥的相交集合,然后可用于产生联接表,从而完成PDJ。
本公开的实施例还涉及可用于执行上述方法的系统、计算机和其它装置。这些系统可包括例如编排器计算机,所述编排器计算机解译来自客户端(对应于PSI或PDJ)的请求并将所述请求发送到第一方服务器和第二方服务器,这些服务器各自与对应数据库和对应计算集群相关联。第一方服务器和第二方服务器可以相互通信并且与其相应计算集群通信,以计算PSI或PDJ的结果,并将结果返回到编排器,所述编排器接着可以将结果返回到客户端计算机。
更具体地,一个实施例涉及一种由第一方计算系统执行的方法。第一方计算系统可以对第一方集合进行令牌化,从而生成令牌化第一方集合。所述令牌化第一方集合可以包括多个第一方令牌。然后,第一方计算系统可以通过使用分配函数将所述多个第一方令牌中的每个第一方令牌分配到多个令牌化第一方子集中的令牌化第一方子集来生成所述多个令牌化第一方子集。然后,对于所述多个令牌化第一方子集中的每个令牌化第一方子集,所述第一方计算系统可以使用所述令牌化第一方子集和对应于第二方计算系统的令牌化第二方子集与所述第二方计算系统执行私有集合交集协议。这样,所述第一方计算系统可以执行多个私有集合交集协议并生成多个相交令牌子集。之后,所述第一方计算系统可以组合所述多个相交令牌子集,从而生成相交令牌集合,然后对所述相交令牌集合进行去令牌化,从而生成相交集合。
另一实施例涉及由第一方计算系统执行的不同方法。所述第一方计算系统可以接收标识一个或多个第一数据库表和一个或多个属性的私有数据库表联接查询。所述第一方计算系统可以从第一方数据库检取一个或多个第一数据库表,然后基于一个或多个第一数据库表和一个或多个属性确定多个第一方联接密钥。接下来,所述第一方计算系统可以对所述多个第一方联接密钥进行令牌化,从而生成令牌化第一方联接密钥集合,其中所述令牌化第一方联接密钥集合包括多个第一方令牌。所述第一方计算系统可以通过使用分配函数将所述多个第一方令牌中的每个第一方令牌分配到多个令牌化第一方子集中的令牌化第一方子集来生成所述多个令牌化第一方子集。然后,对于所述多个令牌化第一方子集中的每个令牌化第一方子集,所述第一方计算系统可以使用所述令牌化第一方子集和对应于第二方计算系统的令牌化第二方子集与所述第二方计算系统执行私有集合交集协议,从而执行多个私有集合交集协议并生成多个相交令牌子集。所述第一方计算系统可以组合多个相交令牌子集,从而生成相交联接密钥集合,然后对所述相交令牌集合进行去令牌化,从而生成相交联接密钥集合。之后,所述第一方计算系统可以使用所述相交联接密钥集合过滤所述一个或多个第一数据库表,从而生成一个或多个过滤后的第一数据库表。所述第一方计算系统可以从所述第二方计算系统接收一个或多个过滤后的第二数据库表,然后将所述一个或多个过滤后的第一数据库表与所述一个或多个过滤后的第二数据库表组合,从而生成联接数据库表。
下文详细描述本公开的这些和其它实施例。例如,其它实施例涉及与本文所描述的方法相关联的系统、装置和计算机可读介质。
在论述本公开的具体实施例之前,可详细描述一些术语。
术语
“服务器计算机”可包括功能强大的计算机或计算机集群。例如,服务器计算机可包括大型主机、小型计算机集群或作为一个单元运作的一组服务器。在一个示例中,服务器计算机可包括耦合到网络服务器的数据库服务器。服务器计算机可包括一个或多个计算设备,并且可使用多种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。
“边缘服务器”可以指位于计算域或网络的“边缘”上的服务器。边缘服务器可以与位于计算网络内和计算网络外部的计算机通信。边缘服务器可以允许外部计算机(例如,客户端计算机)访问由计算域或网络提供的资源或服务。
“客户端计算机”可以指使用例如服务器计算机之类的其它计算机或装置的服务的计算机。客户端计算机可通过例如互联网的网络连接到这些其它计算机或装置。作为示例,客户端计算机可以包括膝上型计算机,其连接到图像托管服务器以便查看存储在所述图像托管服务器上的图像。
“存储器”可以指可以存储电子数据的任何合适的一个或多个装置。合适的存储器可以包括非瞬态计算机可读介质,其存储可由处理器执行以实施所要方法的指令。存储器的示例可以包括一个或多个存储器芯片、磁盘驱动器等。这类存储器可使用任何合适的电、光和/或磁操作模式来操作。
“处理器”可指任何合适的一个或多个数据计算装置。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似处理器。
“散列函数”可以指可用于将任意长度或大小的数据映射到固定长度或大小的数据的任何函数。散列函数还可用于通过将数据用其对应的“散列值”替换来混淆数据。散列值可以用作令牌。
“令牌”可以指用作其它数据的替代物的数据。令牌可以包括数字或字母数字序列。令牌可用于隐藏机密或敏感数据。将数据转换为令牌的过程可被称为“令牌化”。可以使用散列函数实现令牌化。将令牌转换为取代数据的过程可被称为“去令牌化”。去令牌化可以通过使令牌与其替代的数据相关的映射(例如查找表)来实现。“反向查找”可以指可用于使用映射基于令牌来确定替代数据的技术。
“虚拟值”可以指不具有意义或含义的值。可以使用随机或伪随机数发生器生成虚拟值。虚拟值可以包括“虚拟令牌”,即不对应于任何替代数据的令牌。
术语“多方计算(MPC)”可以指由多方执行的计算。每一方,例如计算机、服务器或密码装置,可具有一些计算输入。每一方可使用输入共同计算出计算的输出。
术语“安全多方计算(安全MPC)”可以指安全的多方计算。在一些情况下,“安全多方计算”是指其中各方彼此并不共享信息或其它输入的多方计算。确定PSI可以使用安全MPC来实现。
“不经意传输(OT)协议”可以指一方可以在不知道发送了什么消息的情况下将消息(或其它数据)发送到另一方的过程。OT协议可以是n取1,这意味着一方可以在不知道发送了n个消息中的哪个消息的情况下将n个潜在消息中的一个发送到另一方。OT协议可用于实施多种形式的安全MPC,包括PSI协议。
“伪随机函数”可以指产生看似随机的输出的确定性函数。伪随机函数可以包括防冲突散列函数、椭圆曲线组等。伪随机函数可接近于“随机预言”,其为将输入映射到其输出域的随机输出的理想密码原语。伪随机函数可由伪随机数发生器构造。
“不经意伪随机函数”(OPRF)可以指使用伪随机函数和由第二方提供的输入将伪随机输出递送到第一方的函数。第一方可能不会学习输入,并且第二方可能不会学习伪随机输出。OPRF可用于实施许多形式的安全MPC,包括PSI协议。
“消息”可以指可在两个实体之间发送的任何数据。消息可包括明文数据或密文数据。消息可以包括字母数字序列(例如,“hello123”)或任何其它数据(例如,图像或视频文件)。消息可以在计算机或其它实体之间发送。
“日志文件”或“审计日志”可以包括存储信息记录的数据文件。例如,日志文件可以包括使用特定服务的记录,例如私有数据库联接服务。日志文件可以包含额外信息,例如与服务的使用相关联的时间、与使用服务的客户端相关联的标识符、服务的使用性质等。
附图说明
图1示出根据一些实施例的PDJ的示例性使用案例。
图2示出根据一些实施例的示例性PPSI和PPDJ系统。
图3示出根据一些实施例的PSI并行化的高级描述。
图4示出根据一些实施例的包括分组的示例性PPSI方法。
图5示出根据一些实施例的包括分组的对应于示例性PPSI方法的流程图。
图6示出根据一些实施例的对应于示例性PPDJ方法的流程图。
图7示出根据一些实施例的示例性SPARK-PSI系统的系统框图。
图8示出根据一些实施例的详述SPARK-PSI工作流的图。
图9示出汇总来自SPARK-PSI基准测试实验的结果的曲线图。
图10示出根据一些实施例的示例性计算机系统。
具体实施方式
本公开的实施例涉及基于不经意传输(OT)的PSI协议的改进实施方案,其可用于快速确定包括大量(例如,数十亿)元素的集合的PSI。使用这些协议执行的基准测试实验(参见章节VII)用于确定两个集合的PSI,每个集合包括十亿128位元素。PSI在大致83分钟内确定。
相比之下,用于标准集合交集的原始散列协议需要74分钟来完成,其中19分钟(26%)用于散列和传输数据,55分钟(74%)用于计算明文交集。因此,就执行时间而言,根据实施例的并行PSI(PSI)协议仅略微低于不安全的集合交集协议。
作为额外比较,[60]的研究使用固态硬盘在34.2小时内确定含有128位元素的两个十亿元素集合的PSI。花费30.0小时(88%)执行简单散列。花费3小时(9%)计算OT,花费1.2小时(4%)计算明文交集。因此,根据实施例的PPSI协议可以确定PSI大约比当前最先进的解决方案快25倍。
实施例通过使用使PSI协议能够并行化的新颖技术来实现这些结果。以此方式,各方(例如,存储私有集合的计算机系统)可以在计算集群中的多个工作节点之间分配其计算工作量(例如,使用例如Apache Spark之类的大规模数据处理引擎),从而减少计算PSI所需的总时间量。此外,这些并行化技术可以与许多不同的现有PSI协议(例如KKRT[41]、PSSZ15[56]等)一起使用,而不另外修改那些协议。因此,实施例可以包括“即插即用”解决方案,实体和组织可以更容易地将所述解决方案集成到现有PSI系统或基础设施中。
本公开描述了以下方面。在方面(1)中,“分组”可用于基于输入数据集安全地产生令牌化子集。在方面(2)中,第一方和第二方可以使用“并行私有集合交集(PPSI)技术”(有时称为PPSI协议或ΠPPSI)来确定第一集合和第二集合的私有集合交集。PPSI技术可以涉及使用上文描述的分组技术。在方面(3)中,第一方和第二方可以使用“并行私有数据库联接(PPDJ)”技术(有时称为PPDJ协议)来执行一个或多个第一数据库表和一个或多个第二数据库表的私有联接。在方面(4)中,包括计算机和其它装置的“PPSI或PPDJ系统”可用于执行PPSI技术或PPDJ技术。在方面(5)中,称为“SPARK-PSI”的PPSI或PPDJ系统的实施方案可以使用Apache开源软件,特别是Apache Spark。在方面(6)中,对SPARK-PSI执行的基准测试实验展示了其速度和效率。在方面(7)中,密码威胁建模、分析和模拟可用于展示分组技术、PPSI技术等的安全性。在方面(8)中,提供了与PSI领域相关的各种相关研究、理论和额外概念,这可有助于理解本公开的实施例。
从广义上讲,分组可以涉及两个集合(例如,第一方集合和第二方集合)的令牌化元素,将令牌分配到大小大致相同的子集(或“块组”),并且使用随机虚拟令牌填充子集,从而掩盖了子集中的真实令牌的数目。分组可以将集合的元素安全地划分为这些子集,而不泄漏关于集合中的元素的数目或分布的任何信息。以此方式,分组可实现PSI协议的并行化。第一方计算系统和第二方计算系统可以使用令牌化子集对来执行多个PSI协议,而不是使用(大)第一集合和(大)第二集合来执行单个PSI协议。
所述PPSI技术可以涉及上文所描述的分组技术的应用。第一方计算系统和第二方计算系统可以使用分组技术将第一方集合和第二方集合分区成多个令牌化第一方子集和多个令牌化第二方子集。然后,第一方计算系统和第二方计算系统可以使用对应的令牌化子集对来执行m PSI协议(其中m是对应于每一方的令牌化子集的数目)。可以使用包括多个工作节点的计算集群并行执行这些PSI协议。这些m PSI协议的结果可以包括m个相交令牌子集。第一方计算系统和第二方计算系统中的一个或两个可以组合m个相交令牌子集以产生相交令牌集合。第一方计算系统和第二方计算系统可以对相交令牌集合进行去令牌化,从而生成相交集合。以此方式,可以确定第一方集合和第二方集合的PSI。
PPDJ技术可以涉及上述PPSI技术的应用。客户端计算机可以将联接查询(也称为“联接请求”、“私有数据库表联接查询”和其它类似术语)发送到编排器计算机。联接查询可以标识对应于双方的数据库表以及作为联接操作的基础的一组“属性”。一般来说,编排器计算机可以将此联接查询重新解释为对“联接密钥”集合的一个或多个PSI操作。可以将重新解释的联接查询发送到第一方计算系统和第二方计算系统。第一方计算系统和第二方计算系统可以使用第一方联接密钥集合和第二方联接密钥集合来执行PPSI技术(使用所述第一方计算系统和第二方计算系统的相应计算集群)。这可能产生联接密钥的相交集合。使用联接密钥的相交集合,每一方可以过滤其相应数据库表,然后将过滤后的数据库表发送给彼此。然后可以将过滤后的数据库表组合(联接),从而完成PDJ。
图1示出私有数据库联接的示例性使用案例。第一方和第二方可分别拥有第一方数据集102和第二方数据集104。第一方和第二方可能希望使用其数据集来产生机器学习模型112。例如,这些数据集可以包括广告数据表,并且机器学习模型112可以包括用于预测广告活动的有效性的模型。第一方和第二方各自受益于使用来自另一方的数据来训练机器学习模型112。然而,各方可能不希望自由地彼此共享数据。
替代地,各方可以使用其相应数据集作为输入来执行私有数据库联接106。因此,双方可以在不向另一方显示任何额外信息的情况下丰富其数据集。在训练阶段期间,联接数据集可以用作机器学习算法110的输入。机器学习算法110可以产生机器学习模型112。之后,任何一方都可以使用机器学习模型112对数据作出任何数目的推断114,例如,特定的广告活动是否有效。
可用于实施PPSI技术和/或PPDJ技术的PPSI或PPDJ系统在章节I中更详细地描述。一般来说,此系统包括客户端计算机、编排器计算机、“第一方域”和“第二方域”。第一方域可以包括第一方计算系统,所述第一方计算系统可包括第一方服务器和第一方计算集群。第二方域可包括第二方计算系统,所述第二方计算系统可包括第二方服务器和第二方计算集群。第一方服务器和第二方服务器可被称为“边缘服务器”。每一方可以使用其相应计算系统与另一方一起执行PPSI或PPDJ技术。
应理解,存在可用于实施上述PPSI或PPDJ系统的各种方式。此类实施方案可以使用各种硬件系统、软件包、框架、库等。然而,出于说明性目的,描述了使用包括ApacheSpark的Apache开源软件的特定实施方案(SPARK-PSI)。在撰写本文时,Apache开源软件在大数据应用的学术界、研究界和工业界广受欢迎。因此,SPARK-PSI展示了一些实施例的实际实施方案。
另外,SPARK-PSI实施方案用于章节VII中描述的一系列基准测试实验。这些基准测试实验展示了本文所描述的PPSI技术的速度和功效,特别是当与现有的最先进的PSI协议进行比较时。例如,SPARK-PSI实施方案在两个集合之间执行并行私有集合交集,每个集合在83分钟内包括十亿128位元素。[60]中描述的当前最先进的PSI协议在34.2小时内实现了相同的结果。因此,根据实施例的方法可用于(对大数据集)执行PSI,比当前最先进的PSI协议快大致25倍。
I.PPMI和PPDJ系统
用于确定两个集合的交集的PCSI技术以及用于产生联接数据库表的PPDJ技术可分别由PPSI和PPDJ系统、计算机网络、数据库和使双方能够执行安全私有集合交集或安全私有数据库联接的其它装置执行。
A.系统框图
图2示出根据一些实施例的示例性PPSI和PPDJ系统的系统框图。图2的系统包括:客户端计算机202、编排器(也称为编排器计算机)204、第一方域206和第二方域208。
第一方域206和第二方域208广泛地包括分别对应于第一方和第二方的计算资源。第一方域206可包括第一方服务器210、第一方数据库222和第一方计算集群226。第二方域208可包括第二方服务器212、第二方数据库224和第二方计算集群228。第一方服务器210与第一方计算集群226的组合可以被称为“第一方计算系统”。同样,第二方服务器212与第二方计算集群228的组合可以被称为“第二方计算系统”。
在一些实施例中,第一方计算系统和第二方计算系统可以包括单个计算机实体,而不是如上所述的计算机实体的组合。因此,应理解,在这些实施例中,由例如第一方服务器210发送或接收的消息可以替代地由包括第一方计算系统的单个计算机实体发送或接收,并且对于第二方计算系统同样如此。
图2的计算机和装置可通过通信网络彼此通信,所述通信网络可采用任何合适的形式,并且可包括以下中的任一个和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网上节点的运行任务(OMNI);安全自定义连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等协议)等。计算机与装置之间的消息可使用安全通信协议来发送,该安全通信协议例如但不限于:文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS)、安全套接层(SSL)、ISO(例如,ISO 8583)等。
1.客户端计算机
客户端计算机202可以包括与客户端相关联的计算机系统。客户端可以请求两个数据集(相交集合)上的PPSI的输出或PPDJ(联接表)的输出。客户端可以使用客户端计算机202以通过将请求消息发送到编排器204来请求此输出。当使用客户端计算机202来请求PPDJ的输出时,请求消息可以包括数据库查询,例如SQL样式查询。替代地,请求消息可以包括JSON请求。客户端计算机202可以是与第一方或第二方相关联的计算机系统。在确定PSI或PPDJ操作完成之后,客户端计算机202可以从编排器204接收结果。客户端计算机202可以经由由编排器暴露的接口(例如UI应用、门户、Jupyter实验室接口等)与编排器204通信。
2.编排器
编排器计算机204可包括管理或以其它方式指导PPSI和PPDJ操作的计算机系统。编排器204可以从客户端计算机接收请求消息,解释那些请求消息,并且与第一方服务器210和第二方服务器212通信以完成那些请求。例如,如果请求消息包括PDJ查询,则编排器可以验证PDJ查询的正确性,将所述查询重新解释为PPSI操作,并且接着将详述那些操作的请求消息发送到第一方服务器210和第二方服务器212。从编排器到第一方服务器210和第二方服务器212的消息可以例如标识第一方服务器210和第二方服务器212应在其上执行PPSI或PPDJ操作的特定数据集。
这些消息还可以包括可用于执行PPSI或PPDJ操作的元数据或数据模式。编排器计算机204可以在编排器204、第一方服务器210与第二方服务器212之间执行的初始化阶段期间获取这些元数据和模式。在此初始化阶段期间,第一方服务器210和第二方服务器212可以将其相应元数据和模式发送到编排器204。
编排器204可以经由第一方服务器210和第二方服务器212的相应集群接口214和220与所述第一方服务器和第二方服务连接。一旦第一方计算系统和第二方计算系统完成PPSI或PPDJ操作,它们就可以通过其相应集群接口将结果(例如,相交集合或联接数据库表)返回到编排器104。然后,编排器204可以将结果返回到客户端计算机202。
另外,尽管在第一方域206和第二方域208外部示出编排器204,但在一些实施方案中,编排器204可包括在这些域中的任一个中,并且因此可由第一方或第二方操作。
3.第一和第二方服务器
第一方服务器210和第二方服务器212可包括分别位于第一方域206和第二方域208的“边缘”的边缘服务器。第一方服务器210和第二方服务器212可以管理由其相应计算集群执行的PPSI和PPDJ操作。第一方服务器210和第二方服务器212可以使用其相应集群接口214和220来与其相应计算集群通信。在一些实施例中,集群接口214和220可以使用Apache Livy来实施。第一方服务器210和第二方服务器212可以经由其相应数据流处理器216和218彼此通信。在一些实施例中,数据流处理器216和218可以使用Apache Kafka来实施。这些数据流处理器216和218还可用于与工作节点238-244通信。
第一方服务器210可以与第一方数据库222连接,以便检取用于执行PPSI或PPDJ操作的任何相关集合或数据库表。第一方服务器210可以执行分组技术(下文更详细地描述)以产生令牌化子集,第一方服务器210可以(经由集群接口214和驱动程序节点230)将所述令牌化子集发送到第一方计算集群226。然后,第一方计算集群226可以对这些令牌化子集执行PPSI技术,返回令牌化交集集合。然后,第一方服务器210可以对令牌化交集集合进行去令牌化,从而产生交集集合,所述交集集合可经由编排器204返回到客户端计算机202。替代地,如果第一方服务器210正在执行PDJ操作,则第一方服务器可以使用交集子集产生联接数据库表,然后可以经由编排器204将所述联接数据库表返回到客户端计算机202。
同样,第二方服务器212可以与第二方数据库224连接,以便检取用于执行PPSI或PPDJ操作的任何相关集合或数据库表。第二方服务器212可以执行分组技术(下文更详细地描述)以产生令牌化子集,第二方服务器212可以(经由集群接口220和驱动程序节点232)将令牌化子集发送到第二方计算集群228。然后,第二方计算集群228可以对这些令牌化子集执行PPSI技术,返回令牌化交集集合。然后,第二方服务器212可以对令牌化交集集合进行去令牌化,从而产生交集集合,所述交集集合可以经由编排器204返回到客户端计算机202。替代地,如果第二方服务器212正在执行PDJ操作,则第二方服务器212可以使用交集子集产生联接数据库表,所述数据库表接着可以经由编排器204返回到客户端计算机202。
4.第一和第二方数据库
第一方数据库222和第二方数据库224可包括存储数据集的数据库(有时称为“第一方集合”和“第二方集合”)和数据库表(有时称为“第一方数据库表”和“第二方数据库表”)。第一方计算系统和第二方计算系统可以访问其相应数据库以检取这些数据集和数据库表,以便执行PPSI和PPDJ操作。值得注意的是,第一方数据库222可以与第二方域208隔离。同样,第二方数据库224可以与第一方域206隔离。这可防止任一方访问属于另一方的私有数据。
5.第一和第二方计算集群
第一方计算集群226和第二方计算集群228可以包括计算机节点,所述计算机节点可以并行执行PSI协议以便执行根据实施例的PPSI技术。这些可以包括驱动程序节点230和232(也称为主节点)以及工作节点238-244。每个节点都可以存储代码,使其能够执行其相应功能。例如,驱动程序节点230和232可以各自存储相应PSI驱动程序库234和236。同样,工作节点238-244可以存储PSI工作库246-252。工作节点238-244可以使用这些PSI工作库来执行多个私有集合交集协议,以便产生多个相交子集,这些相交子集接着可以组合以产生相交集合。
从广义上讲,驱动程序节点230和232可以在其相应计算集群中的工作节点之间分配计算工作量。这可包括与确定令牌化子集的PSI有关的工作量。例如,驱动程序节点230可以将特定的令牌化子集i分配到工作节点238,并且可以标识第二方计算集群228中的对应工作节点。因此,工作节点238的任务是使用令牌化子集i与对应工作节点执行PSI协议。当其完成其任务时,工作节点238可以将结果返回到驱动程序节点230,并且驱动程序节点230可以将新的令牌化子集j分配到工作节点。可以重复此过程,直到确定每个令牌化子集的交集。然后,驱动程序节点230可以组合这些令牌化交集子集,以产生令牌化交集集合,然后将令牌化交集集合发送到第一方服务器210。替代地,驱动程序节点230可以将令牌化交集子集发送到第一方服务器210,所述第一方服务器接着可以执行组合过程本身。
B.一般PPSI和PPDJ系统数据流
图3示出对应于PPSI和PPDJ系统的示例性数据流。图3还大体上对应于根据实施例的一些方法。第一方域302内的第一方计算系统和第二方域304内的第二方计算系统可以各自对其相应数据集(第一方数据集306和第二方数据集308)进行令牌化,从而产生令牌化第一方数据集310和令牌化第二方数据集312。然后,第一方计算系统和第二方计算系统可以将其相应令牌映射到令牌块组312-322。这些令牌块组可各自分配到多个工作节点中的不同工作节点。工作节点312-322可以在第一方域302和第二方域304上执行多个PSI协议实例324-334。当需要数据交换来执行PSI协议时,工作节点可以经由数据流处理器(例如,图2中的数据流处理器216和218)交换数据。这些PSI实例324-334可以产生多个相交令牌子集,所述多个相交令牌子集接着可以被组合和去令牌化以产生相交数据集合。参照下文章节II和III更详细地描述此过程。
II.分组
如上所述,分组技术可用于使第一方集合和第二方集合进行令牌化,所述第一方集合和第二方集合可各自包括n个元素,然后将令牌化第一方集合和第二方集合分离成m个令牌化子集或“块组”。之后,双方可以用虚拟令牌填充每个令牌化子集。在一些情况下,各方可以用虚拟令牌填充每个令牌化子集,以确保每个子集包含一些参数δ0的(1+δ0)n/m个令牌。子集也可以被称为“分区”。
在执行分组技术之后,第一方和第二方可以对每个对应令牌化子集对执行一系列PSI协议(例如,KKRT协议)。结果,即多个相交令牌子集可以组合以产生相交令牌集合。此相交令牌集合接着可被去令牌化,从而产生相交集合。
可以参考图4和5更好地理解包括分组应用的PPSI技术,所述图示出用于确定第一方集合402和第二方集合404的PSI的过程,每个集合包括动物列表。此过程中的一个或多个步骤可以是任选的。第一方集合402和第二方集合404可以包括分别存储在第一方数据库和第二方数据库中的数据记录。每个记录可包括对应于相应动物的额外数据字段(例如,重量、原产地等)。
参考图4和5,在步骤406,编排器计算机可以从客户端计算机接收请求。所述请求可以指示,客户端计算机希望接收第一方集合402和第二方集合404的交集。
在步骤408,第一方计算系统和第二方计算系统可以从编排器计算机接收请求消息。所述请求消息可以对应于由编排器从客户端计算机接收的请求。所述请求可以指示第一方集合402和第二方集合404。以此方式,第一方计算系统和第二方计算系统知道哪些集合用于执行PPSI。
在步骤410,第一方计算系统可以从第一方数据库(例如图2中的第一方数据库222)检取第一方集合402。同样,第二方计算系统可以从第二方数据库检取第二方集合404。在一些实施例中,第一方集合402和第二方集合404可以包括相等数目的元素(称为“第一方元素”和“第二方元素”)。这个元素的数目可以表示为n。
A.令牌化
在步骤412,第一方计算系统和第二方计算系统可以分别使第一方集合402和第二方集合404进行令牌化,从而生成令牌化第一方集合和令牌化第二方集合。令牌化第一方集合可以包括多个“第一方令牌”。同样,令牌化第二方集合可以包括多个“第二方令牌”。
第一方计算系统和第二方计算系统可以使用任何适当手段来对第一方集合402和第二方集合404进行令牌化,前提是所述手段是一致的,即当双方对相同的数据元素(例如“CAMEL”)进行令牌化时,它们产生相同的令牌。
例如,第一方计算系统和第二方计算系统可以使用防冲突散列函数来对其相应集合进行令牌化。所述第一方计算系统可以通过使用所述散列函数对每个第一方元素进行散列来生成多个散列值。令牌化第一方集合可以包括此多个散列值。同样,第二方计算系统可以通过对每个第二方元素进行散列来生成第二多个散列值,并且令牌化第二方集可以包括此第二多个散列值。然后,计算系统可以生成使其令牌与原始集合元素相关的映射。此映射可包括例如对应于令牌及其原始集合元素的值对。例如在步骤422,此映射可稍后用于经由反向查找来执行去令牌化。是
B.子集分配
随后,在步骤414,第一方计算系统和第二方计算系统可以将其相应令牌化集合分区成多个令牌化子集。例如,第一方计算系统可以通过使用分配函数将多个第一方令牌中的每个第一方令牌分配到多个令牌化第一方子集中的令牌化第一方子集来生成多个令牌化第一方子集。同样,第二方计算系统可以通过使用分配函数将多个第二方令牌中的每个第二方令牌分配到多个令牌化第二方子集中的令牌化第二方子集来生成多个第二方令牌化子集。在一些实施例中,每一方可以生成相等数目的令牌化子集。这可包括预定数目的子集,其可表示m。
如上所述,计算系统可以使用分配函数来执行子集分配。存在许多潜在的分配函数可以使用。然而,理想地,分配函数始终使令牌与子集匹配。也就是说,如果第一方计算系统将令牌映射到特定子集,则第二方计算系统应将相同令牌映射到对应子集。
例如,在一些实施例中,分配函数可以包括基于令牌的词典排序映射到令牌化子集T1,...,Tm的词典排序函数。第一方计算系统可以使用此分配函数来基于多个第一方令牌的字典排序将多个第一方令牌中的每个第一方令牌分配到对应令牌化第一方子集。例如,一个子集可以包括以数字“1”开头的数字令牌,另一子集可以包括以数字“2”开头的数字令牌等。同一过程可由第二方计算系统执行。假设令牌是使用具有大致均匀伪随机性的散列函数生成的,则每个子集可以包括大致n/m个元素。
另一示例技术是基于散列的分配。第一方计算系统和第二方计算系统可以各自本地对随机散列函数h:{0,1}*→{1,...,m}进行采样。注意,此散列函数h应与用于生成令牌化集合的任何散列函数不同。散列函数h可以取任何值(例如令牌),并返回包含端值的从1到m的值。每一方可以将其令牌化集合S={s1,...,sn}转换为子集T1,...,Tm,使得对于所有s∈S,它认为s∈Th(s)。换句话说,每个令牌化第一(和第二)方子集可以与包含端值的一与子集的预定数目m之间的数字标识符相关联。所述分配函数可包括散列函数h,所述散列函数产生在包含端值的一与子集的预定数目m之间的散列值。第一方计算系统可以通过使用第一方令牌作为散列函数h的输入来生成散列值并将第一方令牌分配到具有等于散列值的数字标识符的令牌化第一方子集,来将多个第一方令牌中的每个第一方令牌分配到令牌化第一方子集。所述第二方计算系统可以执行类似过程。将h建模为随机函数确保了元素{h(s)|s∈S}全部均匀地分布。这意味着
C.子集填充
随后,在步骤416,第一方计算系统和第二方计算系统可以使用虚拟令牌对其相应多个令牌化子集中的每一个进行填充。出于示例的目的,示出两个虚拟令牌428和430。子集填充防止任何一方基于每个子集中的令牌数目确定关于另一方集合的任何信息。例如,如果令牌化第一方子集Ti不包含任何令牌,则意味着第一方集合S不包含在令牌化之后将分配到所述子集的任何元素。然而,对于填充后的子集,任何一方都无法确定另一方的集合的分布。
第一方计算系统和第二方计算系统可以用均匀的随机虚拟令牌填充其令牌化子集中的每一个。在一些实施例中,计算系统可以用虚拟令牌填充每个令牌化子集,使得每个令牌化子集的大小相等。在一些实施例中,计算系统可以用虚拟令牌填充每个令牌化子集,使得每个令牌化子集的大小等于一些参数δ0的(1+δ0)n/m个令牌。
在一些实施例中,第一方计算系统可以确定多个令牌化第一方子集中的每个令牌化第一方子集的填充值。此填充值可包括令牌化第一方子集的大小与目标值之间的差。此目标值可以包括例如来自上述的值(1+δ0)n/m。然后,填充值包括可以添加到所述特定令牌化子集以实现目标值的虚拟令牌的数目。第一方计算系统可以生成多个随机虚拟令牌(例如,使用随机数发生器),其中多个随机虚拟令牌包括等于填充值的随机虚拟令牌的数目。所述第一方计算系统可以接着将多个随机虚拟令牌分配到令牌化第一方子集。第一方计算系统可以针对每个令牌化第一方子集重复此过程。第二方计算系统可以执行类似程序。
即使对于相对较小的令牌(例如,长度为κ=128位),也存在大量(2κ)可能的虚拟令牌,因此任何虚拟令牌在令牌化交集集合中的概率可忽略不计。替代地,如果κ足够大,则第一方计算系统和第二方计算系统可以用{0,1}κ的非重叠子集采样的虚拟令牌s′填充它们的第j子集,使得h(s′)=j′≠j。这确保了令牌化交集集合中没有虚拟令牌。
下面计算确保子集分配步骤不会失败的参数δ0的值,除非概率可忽略不计。对于固定的i∈[n]和j∈{1,...,m},假设Xi,j是等于1的指示变量当且仅当第i元素si在Tj中结束,并假设Xj=∑i∈[n]Xi,j表示大小为Tj。对于固定的j,由于Xi,j变量彼此独立(因为h被建模为随机函数),切尔诺夫(Chernofr)定界产生其中且0≤δ≤1(对于单个块组Tj)。通过并集定界,任何组块具有大于(1+δ)μ个元素的概率为/> 因此,如果故障概率设置为/>则结果为/> 也就是说,上述分组技术只需要最大块组大小至多为(1+δ0)n/m且概率很高。更具体地,假设集合大小为n=109,并且统计参数为σ=80,则选择参数m=64,可以看出64个块组中任意一个的最大块组大小至多为n′≈15.68×106(其中δ0=0.0034)且概率为(1-2-80)。
III.PPSI
在将令牌化元素分配到子集并填充这些子集之后,在步骤418,第一方计算系统和第二方计算系统可以参与PSI协议的m个并行实例,其中在第i实例πi中,第一方计算系统和第二方计算系统输入其相应第i填充后的令牌化子集。也就是说,对于多个令牌化第一方子集中的每个令牌化第一方子集,第一方计算系统可以使用令牌化第一方子集和对应于第二方计算系统的令牌化第二方子集执行与第二方计算系统的私有集合交集协议。以此方式,第一方计算系统和第二方计算系统可以执行多个私有集合交集协议并生成多个相交令牌子集。
第一方计算系统和第二方计算系统可以使用任何适当的PSI协议Π。一个值得注意的PSI协议是KKRT[41],在撰写本文时,它是最快、最有效的PSI协议之一。然而,可以利用任何基础PSI协议来实践实施例,例如PSSZ15[56]、PSWW18[57]等。
在步骤420,第一方计算系统和第二方计算系统可以各自组合多个令牌化交集子集,从而生成令牌化交集集合。此令牌化交集集合可包括多个令牌交集子集的并集。因此,组合多个相交令牌子集可包括确定多个相交令牌子集的并集。
随后,在步骤422,第一方计算系统和第二方计算系统可以对令牌化交集集合进行去令牌化,从而产生交集集合。交集集合可包括第一方集合402和第二方集合404共有的元素。在图4的示例中,这可包括集合{CAMEL,BEAR,ANT,BAT}。以此方式,双方可以学习其各自集合的交集,而不学习这些集合中的其它是元素。
在任选步骤424,如果由与编排器计算机通信的编排器计算机或客户端计算机请求集合交集,则第一方计算系统(以及任选地第二方计算系统)可以将相交集合发送到编排器计算机。随后,在任选步骤426,编排器计算机可以将相交集合发送到客户端计算机。
IV.威胁建模和安全模拟
A.威胁建模
本章节考虑半诚实对手,并详细介绍其在计算集群(例如Spark集群)和大数据框架(例如Spark框架)上部署的PPSI技术的能力。
在标准密码术语中,假设基础PSI协议对“半诚实”(原本称为诚实但好奇)对手是安全的。也就是说,双方及其相应计算系统应忠实地遵循PSI协议的指令。然而,各方可以尝试从PSI协议消息中尽可能多地学习。这个假设适合许多常规用例,在这些用例中,各方可能已经根据某些协议诚实地参与。此外,假设所有密码原语都是安全的。最后,应当指出的是,PSI协议确实向双方显示了集合的大小以及明文中的最终输出(关于尺寸隐藏PSI的示例请参见[29],并且关于保护输出的示例请参见[47、57])。
假设每个计算集群(例如,Spark集群)具有启用的内置安全特征,并且任何大数据框架实施方案(例如,Spark实施方案)都不存在漏洞。这些特征可以包括静态数据加密、访问管理、配额管理、队列管理等。还假设这些特征保证了每个本地集群的本地安全计算环境,使得攻击者不能获得对计算集群的访问,除非获得授权。
此外,假设只有获授权用户才能向编排器发出命令。还应当指出的是,编排器可以由一些(半诚实)第三方操作,而不会影响安全性。
在此威胁模型中,对手可以在协议执行期间观察不同方之间的网络通信。它还可以控制各方中的一些观察其集群的存储装置和存储器中存在的数据,以及存储器访问的次序。半诚实的对手模型意味着参与者需要为PSI协议提供正确的输入。
B.安全模拟
本章节提供所谓的“模拟范式”中的安全证明,这是密码学中的标准。简而言之,这可以证明,在设计的协议中,对手可以携带的所有攻击都可以在理想世界中进行模拟,在理想世界中,各方仅与接受各方输入的假想可信的第三方FPSI交互,在本地计算交集,并且仅将交集返回给各方。由于上述分组技术会自归约PSI,因此它们获得了基础PSI协议Π的安全属性(例如,在令牌化子集上运行的例如KKRT之类的协议)。对于归约,假设散列函数h在统计上接近随机函数(或者,不可编程的随机预言),这证明PSI自归约在统计上是安全的。协议ПPPSI(其中基础PSI实例Π用真实PSI协议实例化)在计算上是安全的。假设基础PSI协议Π依赖于DDH,则假设DDH成立,协议ΠPPSI保持安全。例如,当基础PSI协议是[41]时,假设OT是经由DDH[48]实例化的,情况就是这样。
简要总结了ΠPPSI协议在FPSI理想世界中的模拟。请注意,协议以半诚实模式操作,因此模拟器可以访问损坏方的输入带。另外,对于FPSI-混合模型中的协议,其中所述协议可以将PSI功能FPSI调用为子例程。但要指出的是,这些调用将在总体数据的子集上进行。为了可读性,这个功能表示为F′PSI。
由于协议是有效对称的,在不损失一般性的情况下,第一方P1被假设为损坏方。模拟器开始通过将输入S1馈送到理想的PSI功能FPSI,以获得PSI输出I′=s1∩s2。接下来,它将I′分区成由h指定的m个块组,即Ij={i∈I′|h(i)=j}表示块组j。如果任何块组Ij具有超过(1+δ0)n/m个元素,则模拟器将中止。然后,对于每个块组j,混合世界中模仿F′PSI的模拟器从P1接收大小为(1+δ0)n/m的填充集合,并返回Ij作为对F′PSI的调用的输出。最后,模拟器输出I′。这完成了对模拟的描述。
请注意,如果(1)模拟器遇到分组故障(即块组大小超过(1+δ0)n/m),或者(2)一方添加的虚拟项目与另一方的项目匹配,则模拟失败。因此,根据子集分配子章节中描述的分析,可以得出结论,理想的世界模拟在统计学上与混合世界协议不可区分。
V.基于平行PSI的平行PDJ
本章节描述如何使用上述的PPSI技术执行SQL样式的联接查询。如上所述,在私有数据库联接(PDJ)中,双方可能希望对其私有数据执行联接操作。这些方可以得到编排器的协助,计算机系统可以公开元数据,例如可以用于执行联接操作的数据集合模式。
图6示出根据一些实施例的示例性PPDJ方法的流程图。此PPDJ方法可用于使用以上章节II和III中描述的一些分组技术和PPSI技术基于这种查询来执行私有数据库联接。图6的各种步骤是任选的。
在步骤602,编排器计算机可以从客户端计算机接收请求。此请求可包括私有数据库表联接查询(PDTJQ)。客户端计算机可包括与任何一方或任何其它适当客户端相关联的计算机系统(例如,由任何一方授权以接收PDJ的输出的客户端)。执行私有数据库表联接的查询可以使用例如Jupyterlab接口之类的编排器API提交到编排器计算机。
在步骤604,编排器计算机可以验证查询的正确性。这可以包括验证查询的语法,以及验证PPSI和PPDJ系统可以基于接收到的查询来执行PDJ。实施例可以支持可划分为以下的任何查询:在两个表格中指定一个或多个列(有时称为属性)的“选择”子句,将第一方集合与第二方集合之间平等性的一个或多个列进行比较的“联接”子句,以及可拆分成组合子句的“其中(where)”子句,其中每个连接是单个表的函数。因此,验证查询的正确性可包括验证查询是否包含这些支持的子句中的一个或多个子句。
例如,出于说明性目的,实施例可以支持以下查询:
SELECT P2.table0.col4,P1.table0.col3
FROM P1.table0
JOIN P2.table0
ON P1.table0.col1=P2.table0.col2
AND P1.table0.col2=P2.table0.col6
WHERE P1.table0.col3>23.
在本示例中,基于联接密钥的相等性,选择并联接来自双方的列:
P1.table0.col1=P2.table0.col2
P1.table0.col2=P2.table0.col6
以及添加的约束:
P1.table0.col3>23。
在验证私有数据库表联接查询的正确性之后,如果需要,编排器可以重新解释所述查询,以便第一方计算系统和第二方计算系统可以理解所述查询。这种重新解释可能涉及将查询重新构建为PSI、Spark代码、一个或多个Spark作业等。
在步骤606,第一方计算系统和第二方计算系统可以从编排器接收私有数据库表联接查询(在需要重新解释的情况下)。私有数据库表联接查询可以标识一个或多个第一数据库表和一个或多个第二数据库表(例如,可以联接的表),以及一个或多个属性。这些属性可以对应于所标识的表中的列,在这些列上可以执行联接操作。在一些实施例中,第一方计算系统和第二方计算系统可以在执行PDJ的其余部分之前审查重新解释的私有数据库表联接查询,以及批准或拒绝查询。
在步骤608,第一方计算系统和第二方计算系统可以分别从第一方数据库和第二方数据库检取一个或多个第一数据库表和一个或多个第二数据库表。
在任选步骤610,在一些实施例中,私有数据库表联接查询可包括“其中”子句。在这些实施例中,第一方计算系统和第二方计算系统可以基于“其中”子句对一个或多个第一数据库表和一个或多个第二数据库表进行预过滤。例如,这可能包括从对应列不符合“其中”子句的数据库表中删除行。如果使用更复杂的基础PSI协议,例如可以将输出集合保持为秘密共享形式的PSI协议,则可能实施作为多个表格的函数的“其中”子句。
在步骤612,第一方计算系统和第二方计算系统可以各自确定对应于私有数据库表联接查询的联接密钥集合(替代地称为多个第一方或第二方联接密钥,或第一方集合和第二方集合)。此联接密钥集合可包括对应于一个或多个第一和第二数据库表中的一个或多个列的数据条目。这些列本身可对应于由私有数据库表联接查询标识的属性。因此,第一方计算系统和第二方计算系统可以基于一个或多个第一数据库表或第二数据库表和一个或多个属性来确定多个第一方联接密钥和多个第二方联接密钥。
一旦使用本地“其中”子句过滤输入表,第一方计算系统和第二方计算系统就可以将联接密钥列视为第一方集合和第二方集合,然后执行章节II中描述的分组技术。联接密钥列可以指出现在“联接”子句中的列。在上面的示例中,对于第一方,这些是P1.table0.col1、P1.table0.col2,并且对于第二方,这些是P2.table0.col2、P2.table0.col6。
在步骤614,第一方计算系统和第二方计算系统可以分别对多个第一方联接密钥和多个第二方联接密钥进行令牌化,从而生成令牌化第一方联接密钥集合(包括多个第一方令牌)和令牌化第二方联接密钥集合(包括多个第二方令牌)。步骤614可以类似于步骤412,如上文的章节II.A中参考图4和5所描述的。
在其中存在多个属性的一些实施例中,第一方计算系统可以串接对应于所述属性的每个第一方联接密钥,从而生成多个串接的第一方联接密钥。然后,第一部分计算系统可以对多个串接的第一方联接密钥进行散列以生成多个散列值,这样可以包括令牌化联接密钥集合。使用上述示例私有数据库表联接查询,第一方可以如下生成其令牌化联接密钥集合P1:
P1={H(P1.table0.col1[i],P1.table0.col2[i])|i∈{1,…,n}}
令P2表示第二方的类似令牌集合。换句话说,第一方计算系统可以在进行散列之前经由串接来组合这些联接密钥集合,而不是单独地对每个联接密钥集合进行散列(例如,单独地对P1.table0.col1[i]进行散列以及对P1.table0.col2[i]进行散列)。这种串接操作可以减少需要执行的PPSI操作的数目,并且因此可以提高性能。请注意,具有相同联接密钥的行将具有相同的令牌,因此令牌化集合P1和P2可以仅包含所述令牌的单个副本。
在步骤616,第一方计算系统和第二方计算系统可以各自生成映射,所述映射使其相应令牌与原始数据值(例如,联接密钥)相关。在一些实施例中,这可以通过将“令牌”列附加到一个或多个第一方数据表和一个或多个第二方数据库表来实现。第一方计算系统可以生成包括令牌化第一方联接密钥集合的令牌列,并将其附加到一个或多个第一数据库表。所述第二方计算系统可以执行类似过程。即,就以上示例而言:
P1.table0.token=H(P1.table0.col1[i],P1.table0.col2[i])
在步骤618,第一方计算系统和第二方计算系统可以将其相应令牌化联接密钥集合分配到令牌化第一和第二方子集。第一方计算系统可以通过使用分配函数将多个第一方令牌中的每个第一方令牌分配到多个令牌化第一方子集中的令牌化第一方子集来生成多个令牌化第一方子集,所述分配函数例如上文参考图4和5中的步骤414描述的基于词典排序或散列的分配函数。所述第二方计算系统可以执行类似过程。
在步骤620处,如果需要,第一方计算系统和第二方计算系统可以使用虚拟令牌填充其令牌化子集中的每一个,例如,章节II.C中参考图4和5中的步骤416所描述的。
在步骤622,对于多个令牌化子集中的每个令牌化子集,第一方计算系统和第二方计算系统可以执行私有集合交集协议,从而执行多个私有集合交集协议,并生成多个相交令牌子集,例如,章节III中参考图4和5中的步骤418所描述的。第一方计算系统和第二方计算系统可以使用任何适当的PSI协议,例如KKRT、PSSZ15、PSSW18等。
在步骤624,第一方计算系统和第二方计算系统可以组合多个相交令牌子集,从而生成例如章节III中参考图4和5中的步骤420所描述的相交令牌集合。第一方计算系统和第二方计算系统可以使用并集操作来组合多个相交令牌子集。
在步骤626,第一方计算系统和第二方计算系统可以对相交令牌集合进行去令牌化,从而生成例如章节III中参考图4和5的步骤422所描述的相交联接密钥集合。第一方计算系统和第二方计算系统可以使用例如“令牌”列来实现此去令牌化,所述“令牌”列在上文步骤616处生成并附加到数据库表。
在步骤628,第一方计算系统和第二方计算系统可以使用相交联接密钥集合过滤其相应数据库表,从而生成一个或多个过滤后的第一方数据库表和一个或多个过滤后的第二方数据库表。这可涉及例如基于令牌列从一个或多个第一数据库表移除一个或多个行,所述一个或多个行对应于不在相交联接密钥集合中的一个或多个令牌化第一方联接密钥的一个或多个行,并且同样地适用于一个或多个第二数据库表。
在步骤630,第一方计算系统可以将一个或多个过滤后的第一数据库表发送到第二方计算系统。同样,第二方计算系统可以将一个或多个过滤后的第一数据库表发送到第一方计算系统。此发送可以使双方能够构建联接数据库表。值得注意的是,由于两个表都使用相交联接密钥集合进行过滤,所以它们不会泄漏任何额外信息。
在步骤632,第一方计算系统和第二方计算系统可以组合一个或多个过滤后的第一数据库表和一个或多个第二过滤后的数据库表,从而生成联接表。这可以使用标准(例如,非私有)联接操作在一个或多个过滤后的第一数据库表与一个或多个过滤后的第二数据库表之间使用相交联接密钥集合来实现。
在步骤634,第一方计算系统和第二方计算系统可以各自将联接数据库表发送到编排器计算机。任选地,编排器计算机可以确认两个联接数据库表是等同的,以便验证第一方计算系统和第二方计算系统都半诚实地行动。
在步骤636,编排器计算系统可以经由例如上文所描述的编排器API将联接数据库表发送到客户端计算机。
总之,PDJ操作可以使用一系列阶段来执行。在一个阶段中,PSI和PDJ系统可以将PDJ查询重新解释为集合交集操作。在随后的阶段中,对应于PDJ查询的表可以由其相应各方(例如,从第一方数据库和第二方数据库)检取。接下来,各方可以基于重新解释的PDJ查询来确定联接密钥集合。使用上文所描述的分组技术,各方可以产生令牌化联接密钥子集,所述令牌化联接密钥子集的交集可以使用PPSI技术来确定。之后,交集可用于执行“反向令牌查找”,使各方能够过滤其相应数据表。各方可以彼此发送其过滤后的数据表,然后使用两个过滤后的数据表来构建联接数据表。
VI.SPARK-PSI
本章节描述使用包括Apache Spark在内的现有开源Apache软件的本公开的实施例的特定实施方案。此实施方案被称为“SPARK-PSI”,并且使用KKRT协议的C++实施方案作为上述PPSI技术中使用的基础PSI协议。本章节示出如何使用行业标准软件在实践中实施本公开的实施例。
A.Apache Spark
ApacheSpark是用于大规模数据工作量的开源分布式计算框架。它利用内存中缓存,并优化任何大小的数据的查询执行。在Spark之上,还有用于运行分布式计算的库,例如SQL查询、机器学习算法、图形分析和数据流。Spark应用程序由“驱动程序”(由“驱动程序”或“主”节点操作)组成,所述程序将用户提供的数据处理管道转换为单独的任务,并将这些任务分配到“工作节点”在Spark中可用的基本抽象建立在称为“弹性分布式数据集(RDD)”[73]的分布式数据结构上,并且这些抽象提供分布式数据处理操作符,例如映射、过滤、归约、广播等。更高层次的抽象揭示了例如SQL、流式传输和图形处理等流行API。
由于Spark和类似数据平台已展示出的能力,使用Apache Spark实施PSI可能实现性能增益。但是,Spark缺乏任何多租户概念,并且所有的应用程序和所有的任务都在一个安全域中运行。这与PSI协议的基本设置不兼容,PSI协议涉及两个或多个不可信方,它们需要多个安全域,并且它们之间具有很强的隔离性。实施例通过将每一方分配到一个Spark集群来解决这个问题,从而通过物理分离每一方的计算来实现隔离。另外,实施例引入协调不同数据中心中的多个独立Spark集群以共同执行PSI任务的编排器计算机。
Apache的第二安全问题(由SPARK-PSI解决)是默认数据分区方案,它可以显示关于各方数据集的信息。例如,如果数据基于每个数据元素中的第一字节被分区到工作节点,恶意用户可以知道有多少数据元素以特定字节开始(例如,0x00、0x01等)。这可能会泄漏关于数据集中的数据分布的信息,并且破坏与PSI协议相关联的安全性。这个问题是使用章节II中所描述的安全分组技术解决的。
另一潜在问题(由SPARK-PSI解决)是,在Spark集群之外添加编排器可能会产生次优的执行计划。特别是,每个集群的本地调度优化可能会降低跨具有不同数据大小和硬件配置的多个集群的协作计算的性能。然而,SPARK-PSI可以利用Spark的惰性评估能力,所述惰性评估能力可用于延迟任务的执行,直到触发某个动作为止。以此方式,可以使用无线评估来有效地协调集群之间的操作。
B.SPARK-PSI系统
图7示出SPARK-PSI系统的整体系统架构。第一方和第二方可以使用SPARK-PSI系统来确定第一方集合和第二方集合(例如,两个私有数据集)的PSI。替代地或另外,第一方和第二方可以使用SPARK-PSI系统来完成PDJ操作。这样,第一方和第二方可以产生联接表。
如章节I中参考图2所描述的,各方可拥有其相应域(第一方域706和第二方域708),这些相应域包含所述方的数据(例如,集合、数据库表等)和计算资源。这些可以包括第一方(边缘)服务器710、第一方数据库722和第一方Spark集群726,以及对应第二方(边缘)服务器712、第二方数据库724和第二方Spark集群728。
编排器计算机704可以协调第一方域706和第二方域708的计算资源,以便使得双方能够确定PSI或完成PDJ。编排器704可以暴露是使客户端计算机702能够发送私有数据库联接查询并接收所述查询的结果(例如,联接数据库表)的接口(例如UI应用程序、门户、Jupyter Lab接口等)。编排器704可以经由其相应Apache Livy[45]集群接口714和720与第一方服务器710和第二方服务器712连接。尽管编排器计算机704被示为在第一方域706和第二方域708之外,但实际上编排器704可以被包括在这些域中的任一个中。
如上所述,参考图2,编排器704可以存储和管理各种元数据,包括由第一方和第二方存储(例如,存储在第一方数据库722和第二方数据库724中)的任何数据集的模式中。编排器计算机704可以在编排器704、第一方服务器710与第二方服务器712之间执行的初始化阶段期间获取这些元数据和模式。在此初始化阶段期间,第一方服务器710和第二方服务器712可以将其相应元数据和模式发送到编排器704。
在PDJ操作期间,在步骤754,客户端计算机702可以首先使用任何适当的认证技术来认证自身与编排器704。客户端计算机可包括与双方(例如,第一方)或任何其它适当客户端中的一个相关联的计算机系统。在认证之后,在步骤756,客户端计算机702可以将联接请求或PDJ查询(例如,SQL样式查询)发送到编排器704。
编排器704可以解析PDJ查询,并编译第一方Spark集群726和第二方Spark集群728的Apache Spark作业。这些Spark作业可以对应于每个集群在PDJ操作期间要执行的操作或步骤,包括与上述PPSI技术相关联的步骤。然后,编排器可以将这些Spark作业连同其它相关信息一起,例如数据集标识符、联接列、网络配置等,经由其Apache Livy接口714和720发送到第一方服务器710和第二方服务器712。
使用Spark作业和其它相关信息,第一方服务器710和第二方服务器712可以从第一方数据库722和第二方数据库724检取任何相关数据库表。从这些数据库表中,第一方服务器710和第二方服务器712可以提取可以在其上执行PSI操作的任何相关数据集(例如,第一方集合和第二方集合)。
在步骤758,第一方服务器710和第二方服务器712可以对第一方集合和第二方集合执行(以上章节II中所描述的)分组技术。如上所述,这可以包括首先对这些数据集进行令牌化,从而产生令牌化第一和第二方数据集。然后,第一方服务器710和第二方服务器712可以将令牌化元素分配到子集(例如,使用基于散列的分配函数),从而生成多个第一方令牌子集和多个第二方令牌子集。随后,第一方服务器710和第二方服务器712可以用虚拟值填充令牌子集。
随后,在步骤760,第一方服务器710和第二方服务器712可以发起PSI执行,并且分别将令牌子集和任何相关Spark代码发送到第一方Spark集群和第二方Spark集群。第一方服务器710和第二方服务器712可以使用其相应Apache Livy[45]接口714和720来内部管理Spark会话,并提交用于确定私有集合交集的Spark代码。Spark驱动程序730和732可以解译此Spark代码,并向工作节点738-744分配与PSI有关的Spark作业或任务。然后,工作节点738-744可以执行这些任务。
另外,第一方服务器710和第二方服务器712可以使用其相应Apache Kafka框架716和718充当“Kafka代理”,从而在第一方Spark集群726与第二方Spark集群728之间建立安全数据传输信道。这些可以包括用于执行基础KKRT PSI协议的特定步骤的一个或多个“字节交换”762。虽然Apache Kafka已被选择在SPARK-PSI中实施通信管道,但此架构允许各方使用任何其它适当的通信框架来读取、写入和发送数据。
C.SPARK-PSI实施方案架构的优势
存在与上述SPARK-PSI实施方案相关联的若干优点。其中一个优点是SPARK-PSI不需要对Apache Spark进行任何内部更改,因此更便于大规模采用和部署。其它优点涉及数据安全性。虽然通过采用安全PSI协议来保证PDJ的安全性,但SPARK-PSI架构提供了一些其它安全特征。更具体地说,除了Apache Spark的内置安全特征之外,SPARK-PSI设计确保了集群隔离和会话隔离,如下所述。
编排器704为每个PSI或PDJ作业提供受保护的虚拟计算环境,从而保证会话隔离。虽然标准TLS可以用于保护第一方域706与第二方域708之间的通信,但编排器704可以提供额外的通信保护,例如会话特定的加密和认证密钥、随机和匿名的端点、管理的允许和拒绝列表,以及监测和/或防止对第一方服务器710和第二方服务器712的DOS/DDOS攻击。如上所述,编排器还提供额外层的用户认证和授权。可以在会话内保护所有计算资源,包括任务、缓存数据、通信信道和元数据。可防止外部用户查看或更改会话的内部状态。第一方Spark集群726和第二方Spark集群728可以彼此隔离,并且只能经由第一方服务器710和第二方服务器712向编排器704报告执行状态。
集群隔离旨在保护各方的计算资源在PSI或PDJ操作期间免遭滥用。为了实现这一点,编排器704可以包括SPARK-PSI系统中可以访问端对端处理流的唯一节点。编排器704还可以包括SPARK-PSI系统中具有对应于第一方Spark集群726和第二方Spark集群728的元数据的唯一节点。编排器704可以存在于第一方域706和第二方域708外部,以便使编排器704能够访问第一方集群726与第二方集群728之间的数据流管道。然而,即使将编排器704包括在一方的域中,也经由Apache Livy和Kafka采用第一方集群726与第二方集群728之间的单独安全通信信道,这阻止各方访问另一Spark集群,因此仍从数据流管道移除编排器704。这种安全通信信道还确保每个Spark集群是自主的,并且需要很少或不需要改变就能参与与其它方的数据库联接协议。编排器404还可以管理联接故障和不均匀的计算速度,以确保第一方Spark集群726和第二方Spark集群728的即开即用的可重用性。
此外,调用密码库并在C++实例与Spark数据帧(例如,Scala PSI库734和736以及PSI工作库746-752)之间交换数据的低级别API位于第一方Spark集群726和第二方Spark集群728中,因此不引入任何信息泄漏。高级别API可以将安全Spark执行管道打包为服务,并可以将独立作业映射到每个工作节点738-744,并从工作节点收集结果。
总之,SPARK-PSI架构提供了与基础PSI协议(例如,KKRT)相关联的理论安全性。换句话说,如果一方被黑客或其它恶意用户破坏,则另一方的数据仍然是保密的,除了通过PSI或PDJ操作的输出所显示的内容。
D.Spark PSI实施方案工作流
图8示出用KKRT协议实例化的SPARK-PSI框架中的详细数据工作流。每个PSI实例802和804中的相位可由编排器计算机依序调用。编排器可以通过向双方提交关于第一方集合和第二方集合的元数据信息来开始KKRT执行。
在设置阶段806(包括步骤832-838)中,基于请求,第一方计算系统(包括第一方服务器820和包括工作节点816的Spark集群)和第二方计算系统(包括第二方服务器822和包括工作节点818的Spark集群)可以开始执行其相应Spark代码。此代码可以通过使用受支持的Java数据库连接(JDBC)驱动程序加载第一方集合和第二方集合来创建新的数据帧。如上文参考章节II所描述的,这些数据帧随后可以被散列以产生令牌数据帧。然后,令牌数据帧可以被映射到m个令牌块组或子集。使用Apache Spark术语,这些块组可被称为“分区”。图8中示出四个这样的块组、第一方令牌块组i 824、第一方令牌块组m 828、第二方令牌块组i826和第二方令牌块组m830。如果需要,可以用虚拟令牌填充这些块组。令牌块组可以分布到工作节点816和818,使得能够并行地执行KKRT。
在最终确定设置之后,PSI实例802和804可进入PSI阶段810。在此阶段,本地KKRT协议可以经由连接到Spark代码的通用Java本地接口(JNI)执行。JNI可以根据轮函数进行操作,因此无论KKRT PSI协议的具体实施方案如何,都可以进行操作。请注意,KKRT协议具有一次性设置阶段,对于给定对的参与方只需要一次。此设置阶段对应于步骤832-838。有关设置阶段的更多详情,请参阅[41]。在线PSI阶段(其可确定令牌块组之间的交集)对应于步骤840-848。每当对任何一个Kafka代理进行写入操作时,双方都可以使用第一方服务器820和第二方服务器822进行数据镜像。
注意,主PSI阶段包括发送加密令牌数据集,这可能是Apache Kafka的性能瓶颈,因为它针对小消息进行了优化。为了克服这个问题,工作节点816和818可以在经由第一方服务器820和第二方服务器822将加密数据集发送到另一方之前将加密数据集拆分成较小的数据块。当通过第一方服务器820和第二方服务器822从另一方接收数据时,工作节点816和818可以合并块,复制加密令牌数据集并允许它们执行KKRT PSI协议。另外,可以缩短Kafka代理的中间数据保留期,以解决存储和安全问题。
数据块化具有实现基础PSI协议消息的流式传输的额外益处。注意,本地KKRT实施方案被设计成在数据生成后立即发送和接收数据。因此,SPARK-PSI实施方案可以在协议消息可用时不断地将协议消息转发到Kafka和从Kafka转发协议消息。由于工作节点816和818不需要阻塞慢速网络I/O,这有效地导致了额外的并行化。注意,此实施方案可以缓存在多个阶段中使用的令牌数据帧和实例地址数据帧,以避免任何重新计算。以此方式,SPARK-PSI实施方案可利用Spark的惰性评估,其基于有向无环图(DAG)和弹性分布式数据集(RDD)持久性优化执行。
E.可重复使用的组件
SPARK-PSI实施方案具有几个组件,这些组件可以重复使用以并行化KKRT以外的PSI协议。对应于SPARK-PSI实施方案的代码可以打包为Spark-Scala库,其包括本地KKRT协议的端对端示例实施方案。此库本身具有几个可重复使用的组件,例如与多个数据源一起使用的JDBC连接器、用于令牌化和子集分配的方法、用于链接其它原生PSI算法的通用C++接口,以及Scala与C++之间的通用JNI。这些功能中的每一个可以在库的基础类别中实施,所述库可重复用于其它本地PSI实施方案。另外,库可以将网络方法与实际PSI确定断开耦合。这可以增加框架的灵活性,从而在需要时能够使用其它网络信道。
大多数PSI协议可以通过暴露框架可以调用的C/C++API来“插入”SPARK-PSI。API围绕设置轮和在线轮的概念构建,因此不对这些轮中执行的密码协议作出任何假设。API可包括以下函数:
●Get-setup-round-count()->count:检取此PSI实施方案所需的设置轮总数。
●Setup(id,in-data)->out-data:使用在上一轮设置中从另一方收到的数据调用适当方的round id,并返回要发送的数据。
●Get-online-round-count()->count:检取此PSI实施方案所需的在线轮总数。
●Psi-round(round id,in-data)->out-data:使用在PSI协议的上一轮中从另一方接收到的数据调用适当方的在线round id,并返回要发送的数据。
传递到psi-round的调用的数据可以包括来自单个令牌化子集的数据,并且SPARK-PSI可以在所有块组上协调此API的并行调用。作为示例,对于KKRT实施方案,存在三个设置轮(标记为P1.setup1、P2.setup1和P1.setup2)和三个在线轮(标记为P1.psi1、P2.psi1和P1.psi2)。当用256个块组运行KKRT时,设置轮P1.setup1、P2.setup1和P1.setup2可以分别使用适当的round id调用setup一次,而在线轮P1.psi1、P2.psi1和P1.psi2可以分别使用适当的round id调用psi-round256次。
VII.实验评估
本章节描述使用SPARK-PSI系统执行的PSI实验的结果。另外,本章节提供PSI协议中不同步骤的基准(例如,令牌化、设置轮等)。本章节还提供端对端性能结果,并详述块组数目对运行时间的影响。值得注意的是,当在包括十亿元素的集合上执行PSI时,实现了82.88分钟的运行时间。这个结果是使用2048个块组获得的,对应于大约500,000个块组大小的值δ0=0.019。
在类似于图7和8中描述的SPARK-PSI设置上评估这些实验。在实验中,第一方和第二方使用SPARK-PSI系统执行基于KKRT的PPSI协议。每一方都运行单独独立的六节点Spark(v2.4.5)集群,其中有一个驱动程序服务器和五个工作服务器。另外,每一方还运行单独独立的Kafka(v2.12-2.5.0)VM(充当边缘服务器),用于集群间通信。触发PSI计算的编排器服务器位于第一方域。所有服务器都有8个vCPU(2.6GHz)、64GB RAM并运行Ubuntu18.04.4LTS。
表1总结了使用2048个块组(令牌化子集)在不同数据集大小(即,1,000万、5,000万和1亿个元素)的基于KKRT的PPSI方法中执行各种步骤所需的时间量。P1.tokenize表示执行分组技术所花费的时间量,所述分组技术即对第一方集合进行令牌化,将这些令牌映射到不同的令牌化子集,以及填充每个令牌化子集。令牌化步骤由工作节点并行执行。
P1.psi1表示发送对应于第一方的PSI字节集合所花费的时间量(即,在图8中的步骤540)。在此步骤中,第一方计算系统生成并经由第一方(边缘)服务器将大约60n个字节的数据(其中n是数据集中的元素的数目)传输到第二方计算系统。同样,P2.psi1表示每个令牌化子集接收对应于第二方的PSI字节集合所花费的时间量(例如,在图8中的步骤546)。在此步骤中,第二方计算系统生成数据并经由第二方(边缘)服务器将大约22n个字节的数据传输回到第一方计算系统。P1.psi2表示接收对应于令牌化交集子集的PSI字节集合、组合令牌化交集子集以及对令牌化交集集合进行去令牌化从而产生交集集合的时间量。
表1:使用KKRT PSI和2048个块组的SPARK-PSI的微基准测试。
表2示出块组大小对执行集群间通信所花费的时间的影响,所述集群间通信包括通过数据流处理器(例如Apache Kafka)读取和写入数据。P1.psi1步骤产生9.1GB的中间数据,这些数据经由第一方(边缘)服务器发送到第二方计算系统。P2.psi1步骤产生3.03GB的中间数据,这些数据经由第二方(边缘)服务器发送到第一方计算系统。从表2中的基准可明显看出,随着消息块变得较小,使用更多块组可提高网络性能。更详细地,当使用256个块组时,大小为35.55MB的单独消息在P1.psi1步骤期间经由数据流处理器发送。当使用2048个块组时,对应单独消息大小仅为4.44MB。
表2:包括1亿元素的数据集的网络延迟。
表3将SPARK-PSI的性能与包括1亿元素的数据集上的不安全联接的性能进行比较。为了评估和比较SPARK-PSI的性能和不安全联接的性能,考虑了两个不安全联接变体。在第一变体中,称为“单集群Spark联接”,使用具有六个节点(一个驱动程序节点和五个工作节点)的单个计算集群对两个数据集执行联接,每个数据集包括1亿元素。通过将数据分区成多个块组并且使用单个Spark联接调用直接确定交集来执行联接计算。
在被称为“跨集群Spark联接”的第二变体中,使用两个计算集群,每个计算集群包括六个节点(一个驱动程序节点和五个工作节点),每个集群包含1亿元素令牌化数据集。为执行联接,每个集群将其数据集分区成多个块组。然后,其中一个集群将分区数据集发送到另一集群,所述另一集群接着将接收到的数据聚合为一个数据集,然后使用单个Spark联接调用计算最终联接。
对于不安全的单个集群联接,增加块组的数目会引起数据混排操作(例如,随机读取/写入操作)的数目增加,这降低了执行速度。当不安全连接被拆分到两个集群之间时,目标集群上就会有额外的网络通信开销和额外的调度操作,但由于两个集群系统的计算资源是原来的两倍,并行性会增加。
当使用SPARK-PSI时,跨集群通信开销得到维持,并且PSI计算产生额外开销,但避免了额外的数据混排(因为系统采用广播联接)。当系统使用较大数目的块组(例如,8,192个块组)时,广播联接的影响增加,使得SPARK-PSI在某些情况下比不安全的跨集群联接更快。与不安全的跨集群联接进行比较,系统在最坏的情况下引入高达77%的开销。
表3:超过1亿元素数据集的不同联接的总执行时间。每列中最快的时间用粗体表示。
表4详细说明了与SPARK-PSI相关联的运行时间随块组数目和数据集大小而变化的关系。运行时间也绘制在图9中。一个值得注意的结果是,对于包括十亿元素并使用2048个块组的数据集,运行时间为82.88分钟,大致比Pinkas等人[60]的先前研究快25倍。同样如表4和图9中的对应曲线所指示,SPARK-PSI性能随着块组的数目增加而提高,然后达到拐点,之后性能下降。初始改善是并行化的结果。块组的数目越高会使得Spark上的块组大小越小,这对于较大的数据集是优选的。然而,随着块组数目的进一步增加,Spark中的任务调度开销(以及各种分组技术的填充开销)减缓了执行。如果使用更多的工作节点,则可能实现更好的性能,因为这可能允许更好的并行化。
表4:具有不同数据集大小和块组大小的SPARK-PSI的总执行时间。每列中最快的时间用粗体表示。
VIII.相关研究和结论
已经提出了若干协议来实现PSI,例如高效但不安全的朴素散列解决方案、基于公钥密码的协议[4,12,18,25,26,29,37,46,64]、基于不经意传输的协议[11,23,41,54,55,58]和其它基于电路的解决方案[7,36,56,57]。PSI的另一种流行模式是引入半可信的第三方来帮助有效地计算交集[1,2,67]。有关解决PSI的各种方法的更详细概述,请参阅[59]。另外,还广泛研究了PSI的其它变体,例如多方PSI[35,42]、PSI基数[13,39]、PSI总和[38,39]、阈值PSI[5,27]等。除了PSI之外,还有关于执行其它集合操作的一系列工作,例如私下并集[8,17,40,43]。
自从引入MapReduce编程模型[20]以来,现代大数据系统已经证明了高可扩展性和高性能。这为大规模数据集和云计算的安全分布式计算带来了机遇和挑战。
Dong等人[23]引入了加密布尔布隆过滤器,以设计针对大数据的有效PSI协议,所述协议使用MapReduce框架实施。PSJoin[22]利用差异化隐私权来构建基于MapReduce的隐私保护相似性联接。Hahn等人[30]使用可搜索加密和基于密钥策略属性的加密来设计用于安全联接的协议,所述协议会泄漏针对联接选择的元素的细粒度访问模式和频率。
SMCQL[6]使用基于加密布尔电路的后端ObliVM[44]计算几个源数据库的并集的查询结果,而不会显示关于单独元组的敏感信息。尽管经过优化,但它引入了令人望而却步的开销。ConClave[69]基于ShareMind[9]和Obliv-C[75]构建安全查询编译器,以提高可扩展性。ConClave在服务器辅助模型中起作用,以减少计算开销。然而,在对大数据执行高效安全计算方面,这些系统仍有很多不足之处。此外,现有的研究是为满足特定要求而定制的,因此不能为任意安全计算提供相同的性能增益。
隐私保护框架的另一集合利用硬件飞地。Opaque[76]是不经意的分布式数据分析平台,其利用Intel SGX硬件飞地提供强大的安全保障。OCQ[16]经由不经意的规划器进一步降低了Opaque的通信和计算成本。与这些方法不同,SPARK-PSI不依赖于硬件。其它近期研究包括CryptDB[61]和Seabed[52],它们提供了对加密大数据安全执行分析查询的协议。Senate[66]描述了在多方设置中启用隐私保护数据库查询的框架。
总之,本公开描述了可用于并行化任何PSI协议的方法的分析和应用,由此极大地提高了可以确定PSI的速率。使用根据实施例的方法,本公开展示了可以显著更大的速度确定大型(例如,十亿元素)数据集合的私有集合交集。另外,本公开描述了在PDJ应用中实施这些方法的Spark框架和架构。实验表明,此框架非常适合现实世界的场景。另外,此框架提供可重用组件,使密码器能够将新的PSI协议扩展到十亿元素集合。
IX.计算机系统
本文所提及的任何计算机系统都可以使用任何合适数目的子系统。图10中示出计算机系统1000中的此类子系统的示例。在一些实施例中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的组件。在其它实施例中,计算机系统可以包括多个计算机设备,每个计算机设备都是具有内部组件的子系统。计算机系统可以包括台式计算机和膝上型计算机、平板计算机、移动电话和其它移动装置。
图10中示出的子系统通过系统总线1012互连。示出额外子系统,例如打印机1008、键盘1018、存储装置1020、耦合到显示适配器1014的监测器1024(例如,显示屏,例如LED)等。耦合到输入/输出(I/O)控制器1002的外围装置和I/O装置可以通过本领域中已知的各种构件连接到计算机系统,所述构件例如是输入/输出(I/O)端口1016(例如USB、)。例如,I/O端口1016或外部接口1022(例如以太网、Wi-Fi等)可用于将计算机系统1000连接到例如互联网之类的广域网、鼠标输入装置或扫描仪。经由系统总线1012的互连允许中央处理器1006与每个子系统连通且控制来自系统存储器1004或存储装置1020(例如固定磁盘,例如硬盘驱动器或光盘)的多个指令的执行,以及子系统之间的信息交换。系统存储器1004和/或存储装置1020可以体现计算机可读介质。另一子系统是数据收集装置1010,例如照相机、麦克风、加速度计等。在本文中提及的任何数据可从一个组件输出到另一组件并且可输出到用户。
计算机系统可以包括多个相同组件或子系统,所述组件或子系统例如通过外部接口1022、通过内部接口或经由可装卸式存储装置连接在一起,所述可装卸式存储装置可以从一个组件连接和移除到另一组件。在一些实施例中,计算机系统、子系统或设备可通过网络通信。在此类情况下,一个计算机可视为客户端,并且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或组件。
本文所提及的任何计算机系统都可以使用任何合适数目的子系统。在一些实施例中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的组件。在其它实施例中,计算机系统可以包括多个计算机设备,每个计算机设备都是具有内部组件的子系统。
计算机系统可包括例如由外部接口或由内部接口连接在一起的多个组件或子系统。在一些实施例中,计算机系统、子系统或设备可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,并且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或组件。
应理解,本发明的任何实施例都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实现,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施例的其它方式和/或方法。
本申请中描述的任何软件组件或功能可实现为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或发送,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁性介质(例如硬盘驱动器或软盘),或光学介质(例如光盘(CD)或DVD(数字通用盘))、闪存存储器等。计算机可读介质可以是此类存储或传输装置的任何组合。
此类程序还可以使用适合于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行发送的载波信号来编码和发送。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可以与兼容装置一起封装或者与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,并且可存在于系统或网络内的不同计算机产品上或内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监测器、打印机或其它合适的显示器。
本文所述的任何方法可以完全地或部分地用包括可被配置为执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施例可涉及被配置为执行本文所述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可与来自其它方法的其它步骤的部分一起使用。同样,一个步骤的全部或部分可以是任选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其它手段来执行。
在不偏离本发明的实施例的精神和范围的情况下,特定实施例的具体细节可以任何合适方式组合。然而,本发明的其它实施例可涉及与每个单独的方面相关的特定实施例,或者这些单独的方面的特定组合。上文对本发明的示例性实施例的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。选择和描述这些实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的技术人员能够在各种实施例中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
以上描述是说明性的而不是限制性的。在所属领域的技术人员阅读了本公开后,本发明的许多变化将变得显而易见。因此,本发明的范围不应参考以上描述来确定,而是应参考未决的权利要求以及其完整范围或等效物来确定。
在不偏离本发明范围的情况下,来自任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
除非明确指示有相反的意思,否则叙述“一”或“该”旨在表示“一个或多个”。除非明确指示为相反情况,否则“或”的使用旨在表示“包括性的或”,而不是“排除性的或”。
本文中提及的所有专利、专利申请、公开和描述出于所有目的以引用方式全部并入本文。并非承认它们是现有技术。
X.参考文献
[1]Aydin Abadi、Sotirios Terzis和Changyu Dong,2015年,O-PSI:外包数据集上的委托私有集合交集(Delegated Private Set Intersection on OutsourcedDatasets),在信息通信技术系统安全和隐私保护-第30届国际信息通信技术大会第11届国际会议中,美国证券交易委员会2015年5月26日至28日,德国汉堡,会议记录(信息通信技术进步,第455卷),Hannes Federath和Dieter Gollmann(编辑),《施普林格》,第3-17页。https://doi.org/10.1007/978-3-319-18467-8_1
[2]Aydin Abadi、Sotirios Terzis和Changyu Dong,2016年,VD-PSI:外包私有数据集上可验证的委托私有集合交集(Verifiable Del-egated Private Set Intersectionon Outsourced Private Datasets)。在金融密码与数据安全-第20届国际会议中,FC2016,巴巴多斯基督教堂,2016年2月22日至26日,Jens Grossklages和Bart Preneel(编辑),修订论文选集(计算机科学讲义,第9603卷),《施普林格》,第149-168页。
https://doi.org/10.1007/978-3-662-54970-4_9
[3]Thomas Schneider N.Asokan Benny Pinkas Agnes Kiss、Jian Liu,2017年,移动应用程序中不相等集合大小的私有集合交集(Private Set Intersection forUnequal Set Sizes with Mobile Applications)。在《隐私增强技术论文集(4)》中,第177-197页。
[4]Giuseppe Ateniese、Emiliano De Cristofaro和Gene Tsudik,2011年,(如果)大小很重要:大小隐藏私有集合交集((If)Size Mat-ters:Size-Hiding Private SetIntersection)。在公钥密码学-PKC 2011年第14届公钥密码学实践和理论国际会议中,意大利陶尔米纳,2011年3月6日至9日,会议记录(计算机科学讲义,第6571卷),DarioCatalano,Dario Catalano、Nelly Fazio、Rosario Gennaro和Antonio Nicolosi(编辑),《施普林格》,第156-173页。https://doi.org/10.1007/978-3-642-19379-8_10
[5]Saikrishna Badrinarayanan、Peihan Miao和Peter Rindal,2020年,具有亚线性通信的多方阈值私有集合交集(Multi-Party Threshold Private Set Intersectionwith Sublinear Communication)IACR密码,ePrint Arch.2020(2020年),第600页。https://eprint.iacr.org/2020/600
[6]Johes Bater、Gregory Elliott、Craig Eggen、Satyender Goel、Abel Kho和Jennie Rogers,2017年,SMCQL:联合数据库的安全查询(SMCQL:secure querying forfederated databases),VLDB捐赠论文集10,6(2017年),第673-684页。
[7]Oleksandr Tkachenko Avishay Yanai Benny Pinkas、Thomas Schneider,2019年,具有线性通信的高效基于电路的PSI(Efficient Circuit-Based PSI withLinear Communication),欧洲密码学年会3,第122-153页。
[8]Marina Blanton和Everaldo Aguiar,2016年,私有和不经意的集合和多集合操作(Private and oblivious set and multiset operations),国际信息安全杂志章节15,5(2016年),第493-518页。https://doi.org/10.1007/s10207-015-0301-1
[9]Dan Bogdanov、Sven Laur和Jan Willemson,2008年,Sharemind:用于快速隐私保护计算的框架(Sharemind:A framework for fast privacy-preservingcomputations),在欧洲计算机安全研究研讨会中,《施普林格》,第192-206页。
[10]Justin Brickell、Donald E Porter、Vitaly Shmatikov和Emmett Witchel,2007年,隐私维护远程诊断(Privacy-preserving remote diagnostics)。在CCS中,
[11]Melissa Chase和Peihan Miao。2020年,来自轻量级不经意PRF的互联网中的私有集合交集(Private Set Intersection in the Internet Setting fromLightweight Oblivious PRF),在《密码学进展-加密货币2020第40届国际加密货币年会》中,CRYPTO 2020,美国加利福尼亚州圣巴巴拉,2020年8月17日至21日,论文集,第三部分(计算机科学讲义,第12172卷),Daniele Micciancio和Thomas Ristenpart(编辑)。《施普林格》,第34-63页。https://doi.org/10.1007/978-3-030-56877-1_2
[12]Hao Chen、Kim Laine和Peter Rindal,2017年,来自同态加密的快速私有集交集(Fast Private Set Intersection from Homomorphic Encryption),在2017年ACMSIGSAC计算机与通信安全会议记录中,CCS 2017,美国德克萨斯州达拉斯,2017年10月30日至11月3日,Bhavani M.Thuraisingham、David Evans、Tal Malkin和Dongyan Xu(编辑)。ACM,第1243-1255页。https://doi.org/10.1145/3133956.3134061
[13]Emilano De Cristofaro、Paolo Gasti和Gene Tsudik,2012年,集合交集和并集基数的快速私有计算(Fast and Private Computation of Cardinality of SetIntersection and Union),在第11届加密与网络安全国际会议的会议记录中,CANS 2012,德国达姆施塔特,2012年12月12日至14日,Josef Pieprzyk、Ahmad-Reza Sadeghi和MarkManulis(编辑),第7712卷,《施普林格》,第218-231页。https://doi.org/10.1007/978-3-642-35404-5_17
[14]Emilano De Cristofaro、Jihye Kim和Gene Tsudik,2010年,线性复杂度私有集合交集协议在恶意模型中的安全(Linear-Complexity Private Set IntersectionProtocols Secure in Malicious Model),在密码学进展-ASIACRYPT 2010年-第16届密码学和信息安全理论与应用国际会议,新加坡,2010年12月5日至9日。论文集(计算机科学讲义,第6477卷),Masayuki Abe(编辑)。《施普林格》,第213-231页。
https://doi.org/10.1007/978-3-642-17373-8_13
[15]Thomas Schneider Matthias Senker Christian Weinert Daniel Kales、Chris-tian Rechberger,2019年,大规模的移动私人联系人发现(Mobile PrivateContact Discovery at Scale),在USENIX年度技术会议中,第1447-1464页。
[16]Ankur Dave、Chester Leung、Raluca Ada Popa、Joseph E Gonzalez和IonStoica,2020年,使用硬件飞地的不经意合作竞争分析(Oblivious coopetitiveanalytics using hardware enclaves),在第十五届欧洲计算机系统会议记录中,第1-17页。
[17]Alex Davidson和Carlos Cid,2017年,用于计算私有集合操作的高效工具包(An Efficient Toolkit for Computing Private Set Operations),在信息安全与隐私-第22届澳大拉西亚会议的会议记录中,ACISP 2017,新西兰奥克兰,2017年7月3日至5日,第II部分(计算机科学讲义,第10343卷),Josef Piepzyk和Suriadi(编辑)。《施普林格》,第261-278页。https://doi.org/10.1007/978-3-319-59870-3_15
[18]Emilano De Cristofaro和Gene Tsudik,2010年,具有线性复杂性的实用私有集合交集协议(Practical private set intersection protocols with linearcomplexity)在FC中。
[19]Jeffrey Dean和Sanjay Ghemawat,2004年,MapReduce:简化大型集群上的数据处理(MapReduce:Simplified Data Processing on Large Clusters),在OSDI'04:第六届操作系统设计和实施研讨会中,加利福尼亚州旧金山,第137-150页。
[20]Jeffrey Dean和Sanjay Ghemawat,2008年,MapReduce:大型集群上的简化数据处理(MapReduce:simplified data processing on large clusters),通信ACM 51,1(2008年),第107-113页。
[21]Daniel Demmler、Peter Rindal、Mike Rosulek和Ni Trieu,2018年,PIR-PSI:扩展私人联系人发现(PIR-PSI:Scaling Private Contact Discovery),《隐私增强技术论文集》2018,4(2018年),第159-178页。https://doi.org/10.1515/popets-2018-0037
[22]Xiaofeng Ding、Wanlu Yang、Kim-Kwang Raymond Choo、Xiaoli Wang和HaiJin,2019年,使用MapReduce进行隐私保护相似性联接(Privacy preserving similarityjoins using MapReduce),信息科学493(2019年),第20-33页。https://doi.org/10.1016/j.ins.2019.03.035
[23]Changyu Dong、Liqun Chen和Zikai Wen,2013年,当私有集合交集与大数据发生冲突时:高效且可扩展的协议(When private set intersection meets big data:anefficient and scalable protocol),在2013年ACMSIGSAC计算机与通信安全会议记录中,第789-800页。
[24]Brett Hemenway Falk、Daniel Noble和Rafail Ostrovsky,2019年,具有一般假设中的线性通信的私有组间部分(Private Set Inter-section with LinearCommunication from General Assumptions),在第18届ACM电子社会隐私研讨会论文集中,WPES@CCS2019年,英国伦敦,2019年11月11日,Lorenzo Cavallaro、Johannes Kinder和JosephDomingo Ferrer(编辑),ACM,第14-25页。https://doi.org/10.1145/3338498.3358645
[25]Michael J.Freedman、Carmit Hazay、Kobbi Nissim和Benny Pinkas,2016年,具有基于模拟的安全性的高效集合交集(Efficient Set Intersection withSimulation-Based Security),J.密码学29,1(2016年),第115-155页。https://doi.org/10.1007/s00145-014-9190-0
[26]Michael J.Freedman、Kobbi Nissim和Benny Pinkas,2004年,高效的私有匹配和集合交集(Efficient private matching and set intersection),在欧洲密码学年会中。
[27]Satrajit Ghosh和Mark Simkin,2019年,阈值私有集合交集的通信复杂性(The Communication Complexity of Threshold Private Set Intersection),在密码学进展-加密2019-第39届国际密码学年会的会议记录中,美国加利福尼亚州圣巴巴拉,2019年8月18日至22日,论文集,第二部分(计算机科学讲义,第11693卷),AlexandraBoldyreva和Daniele Micciancio(编辑)。《施普林格》,第3-29页。https://doi.org/10.1007/978-3-030-26951-7_1
[28]Thomas Schneider Michael Zohner Gilad Asharov、Yehuda Lindell,2013年,用于实现更快的安全计算的更高效的不经意传输和扩展(More efficient oblivioustransfer and extensions for faster secure computation),在CCS中,第535-548页。
[29]Gene Tsudik Giuseppe Ateniese、Emilano De Cristofaro,2011年,(如果)大小很重要:大小隐藏的私有集合交集((if)size matters:Size-hiding private setintersection),在PKC中。第156-173页。
[30]Florian Hahn、Nicolas Loza和Florian Kerschbaum,2019年,以精细的细粒度安全性联接加密数据(Joins Over Encrypted Data with Fine Granular Security),在第35届IEEE国际数据工程会议上,ICDE 2019,中国澳门,2019年4月8日至11日,IEEE,第674-685页。https://doi.org/10.1109/ICDE.2019.00066
[31]Per A.Hallgren、Claudio Orlandi和Andrei Sabelfeld,2017年,PrivatePool:拼车隐私保护(PrivatePool:Privacy-Preserving Ridesharing),在CSF中。
[32]Kim Laine Hao Chen和Peter Rindal,2017年,同态加密的快速私有集合交集(Fast Private Set Intersection from Homomorphic Encryption),在CCS中,第1243-1255页。
[33]Kim Laine Hao Chen、Zhicong Huang和Peter Rindal,2018年,带有恶意安全的完全同态加密的标记PSI(Labeled PSI from Fully Homomorphic Encryption withMalicious Security),在CCS中,第1223-1237页。
[34]Carmit Hazay和Kobbi Nissim,2010年,存在恶意对手时的有效集合运算(Efficient Set Operations in the Presence of Malicious Adversaries),在PKC中。
[35]Carmit Hazay和Muthuramakrishnan Venkitasubramaniam。2017年,可扩展的多方私有集合交集(Scalable Multi-party Private Set-Intersection),在PKC中,Serge Fehr(编辑)。
[36]Yan Huang、David Evans、Jonathan Katz和Lior Malka,2011年,使用加密布尔电路进行更快速的安全的双方计算(Faster Secure Two-Party Computation UsingGarbled Circuits),在第20届USENIX安全研讨会的会议记录中,美国加利福尼亚州旧金山,2011年8月8日至12日,USENIX协会。http://static.usenix.org/events/sec11/tech/full_papers/Huang.pdf
[37]Bernardo A.Huberman、Matthew K.Franklin和Tad Hogg,1999年,增强对电子社区的隐私权和信任(Enhancing privacy and trust in electronic communities)。在美国计算机学会第一届电子商务会议(EC-99)会议记录中,美国科罗拉多州丹佛市,1999年11月3至5日,Stuart I.Feldman和Michael P.Wellman(编辑),ACM,第78-86页。https://doi.org/10.1145/336992.337012
[38]Mihaela Ion、Ben Kreuter、Ahmet Erhan Nergiz、Sarvar Patel、MarianaRaykova、Shobhit Saxena、Karn Seth、David Shanahan和Moti Yung,2019年,在商业上部署安全计算时:私有交集-和协议及其商业应用(On Deploying Secure ComputingCommercially:Private Intersection-Sum Protocols and their BusinessApplications)。IACR Cryptol.ePrint Arch.2019(2019年),第723页。https://eprint.iacr.org/2019/723
[39]Mihaela Ion、Ben Kreuter、Erhan Nergiz、Sarvar Patel、Shobhit Saxena、Karn Seth、David Shanahan和Moti Yung。2017年,具有聚合广告转换归属的应用程序的私有交集和协议(Private Intersection-Sum Protocol with Applications toAttributing Aggregate Ad Conversions),(2017年),ia.cr/2017/735,
[40]Lea Kissner和Dawn Song,2005年,隐私保护集合操作(Privacy-preservingset operations),在CRYPTO中,
[41]Vladimir Kolesnikov、Ranjit Kumaresan、Mike Rosulek和Ni Trieu,2016年,适用于私用集合交集的高效的批处理不经意PRF(Efficient batched oblivious PRFwith applications to private set intersection),在2016年关于计算机与通信安全的ACM SIGSAC会议的会议记录中,第818-829页。
[42]Vladimir Kolesnikov、Naor Matania、Benny Pindas、Mike Rosulek和NiTrieu,2017年,来自对称密钥技术的实用多方私有集合交集(Practical Multi-partyPrivate Set Intersection from Symmetric-Key Techniques),在CCS中。
[43]Vladimir Kolesnikov、Mike Rosulek、Ni Trieu和Xiao Wang,2019年,来自对称密钥技术的可扩展私有集合并集(Scalable Private Set Union from Symmetric-Key Techniques),在《密码学进展-ASIACRYPT 2019年-第25届密码学与信息安全理论与应用国际会议》中,日本神户,2019年12月8日至12日,《论文集》第二部分(计算机科学讲义,第11922卷),Steven D.Galbraith和Shiho Moraii(编辑),《施普林格》,第636-666页。https://doi.org/10.1007/978-3-030-34621-8_23
[44]Chang Liu、Xiao Shaun Wang、Kartik Nayak、Yan Huang和Elaine Shi,2015年,Oblivm:用于安全计算的编程框架(Oblivm:A programming framework for securecomputation),在2015年IEEE安全与隐私研讨会中,IEE,第359-376页。
[45]Apache Livy,2017年,Apache Livy,https://livy.apache.org/
[46]Catherine A.Meadows,1986年,在没有持续可用的第三方的情况下使用更有效的密码匹配协议(A More Efficient Cryptographic Matchmaking Protocol for Usein the Absence of a Continuously Available Third Party),在《1986年IEEE安全与隐私研讨会论文集》中,美国加利福尼亚州奥克兰,1986年4月7日至9日,IEEE计算机协会,第134-137页。https://doi.org/10.1109/SP.1986.10022
[47]Claudio Orlandi Michele Ciampi,2018年,将私用集合交集与安全的双方计算结合(Combining Private Set-Intersection with Secure Two-PartyComputation),在SCN中,第464-482页。
[48]Benny Pinkas Moni Naor,2001年,高效不经意传输协议(Efficientoblivious transfer protocols),在SODA中。第448-457页。
[49]Shishir Nagaraja、Prateek Mittal、Chi-Yao Hong、Matthew Caesar和Nikita Borisov,2010年,BotGrep:用结构化图分析寻找P2P机器人(BotGrep:Finding P2PBots with Structured Graph Analysis),在USENIX安全研讨会中。
[50]Arvind Narayanan、Narendran Thiagarajan、Mugdha Lakhani、MichaelHam-burg和Dan Boneh,2011年,经由私人接近测试实现位置隐私(Location Privacy viaPrivate Proximity Testing),在《网络和分布式系统安全研讨会论文集》中,NDSS 2011,美国加利福尼亚州圣地亚哥,2011年2月6日至2月9日,互联网社会。https://www.ndss-symposium.org/ndss2011/privacy-private-proximity-testing-paper
[51]Michele Orrua、Emmanuela Orsini和Peter Scholl,2016年,主动安全N取1的OT扩展及其在私用集交集中的应用(Actively Secure 1-out-of-N OT Extension withApplication to Private Set Intersection),在CT-RSA中。
[52]Antonis Papadimitriou、Ranjita Bhagwan、Nishanth Chandran、Ramachandran Ramjee、Andreas Haeberlen、Harmeet Singh、Abhishek Modi和SaikrishnaBadrinarayan,2016年,对带有海底的加密数据集进行大数据分析(Big data analyticsover encrypted datasets with seabed),在第12届USENIX操作系统设计与实施方案研讨会(OSDI 16)中,第587-602页。
[53]Phillipp Schoppmann Peter Rindal.[n.d.],VOLE-PSI:来自矢量OLE的快速OPRF和电路PSI(VOLE-PSI:Fast OPRF and Circuit-PSI from Vector-OLE),在欧洲密码学年会中。
[54]Benny Pindas、Mike Rosulek、Ni Trieu和Avishay Yanai,2019年,Spot-light:来自稀疏OT扩展的轻量级私有集合交集(Spot-light:Lightweight private setintersection from sparse OT extension),在CRYPTO中。
[55]Benny Pindas、Mike Rosulek、Ni Trieu和Avishay Yanai,2020年,来自PaXoS的PSI:快速、恶意私有集合交集(PSI from PaXoS:Fast,Malicious Private SetIntersection),在欧洲密码学年会中,Anne Canteaut和Yuval Ishai(编辑)。
[56]Benny Pindas、Thomas Schneider、Gil Segev和Michael Zohner,2015年,Phasing:使用基于排列的散列的私有集合交集(Phasing:Private Set IntersectionUsing Permutation-based Hashing),在USENIX中。
[57]Benny Pindas、Thomas Schneider、Christian Weinert和Udi Wieder,2018年,经由布谷鸟散列实现高效基于电路的PSI(Efficient Circuit-Based PSI via CuckooHashing),在欧洲密码学年会中。
[58]Benny Pindas、Thomas Schneider和Michael Zohner,2014年,基于OT扩展的更快的私有集合交集(Faster Private Set Intersection Based on OT Extension),在USENIX中。
[59]Benny Pindas、Thomas Schneider和Michael Zohner,2016年,基于OT扩展的可扩展私有集合交集(Scalable Private Set Intersection Based on OT Extension),IACR Cryptol.ePrint Arch.2016(2016年),第930页。http://eprint.iacr.org/2016/930
[60]Benny Pindas、Thomas Schneider和Michael Zohner,2018年,基于OT扩展的可扩展私有集合交集(Scalable Private Set Intersection Based on OT Extension),ACM Trans.Priv.Secur.21,2(2018年),7:1-7:35。https://doi.org/10.1145/3154794
[61]Raluca Ada Popa、Catherine MS Redfield、Nickolai Zeldovich和HariBalakrishnan,2011年,CryptDB:通过加密查询处理保护机密性(CryptDB:protectingconfidentiality with encrypted query processing),在第二十三届美国计算机学会操作系统原理研讨会论文集中,第85-100页。
[62]Amanda C.Davi Resende和Diego F.Aranha,2017年,不平衡的近似私有集合交集(Unbalanced Approximate Private Set Intersection),IACR Cryptol.ePrintArch.2017(2017年),第677页。http://eprint.iacr.org/2017/677
[63]Peter Rindal,[n.d.]libPSI:高效、可移植且易于使用的私有集合交集库([n.d.].libPSI:an efficient,portable,and easy to use Private Set IntersectionLibrary)。https://github.com/osu-crypto/libPSI.
[64]Peter Rindal和Mike Rosulek,2017年,针对恶意对手的改进的私有集合交集(Improved Private Set Intersection Against Malicious Adversaries),在欧洲密码学年会中。
[65]Peter Rindal和Mike Rosulek,2017年,经由双重执行的恶意安全私有集合交集(Malicious-secure private set intersection via dual execution),在CCS中。
[66]Avishay Yanai Ryan Deng Raluca Ada Popa Joseph M.HellersteinRishabh Poddar、Sukrit Kalla,2020年,Senate:用于协作分析的恶意安全MPC平台(Senate:A Maliciously-Secure MPC Platform for Collaborative Analytics),IACRCryptol.ePrint Arch.2020(2020年),第1350页。
[67]Mariana Raykova Saeed Sadeghian Seny Kamara、Payman Mohassel,2014年,将私有集合交集扩展到十亿元素集合(Scaling Private Set Intersection toBillion-Element Sets),在金融密码学和数据安全中。第195-215页。
[68]Ranjit Kumaresan Vladimir Kolesnikov,2013年,用于传输短秘密的改进OT扩展(Improved OT Extension for Transferring Short Secrets),在Crypto(2)中,第54-70页。
[69]Nikolaj Volgushev、Malte Schwarzkopf、Ben Getchell、Mayank Varia、Andrei Lapets和Azer Bestavros,2019年,Conclave:对大数据进行的安全多方计算(Conclave:secure multi-party computation on big data),在2019年第十四届欧洲系统大会论文集中,第1-18页。
[70]维基百科,2020年,Java本地接口-维基百科。https://en.wikipedia.org/wiki/Java_Native_Interface
[71]Song Jiang、Qiuyu Li、Shunde Cao、Pengfei Zuo、Yuan Yuan Sun、Yu Hua,2017年,SmartCuckoo:快速、经济高效的云存储系统散列索引方案(SmartCuckoo:A Fastand Cost-Efficient Hashing Index Scheme for Cloud Storage Systems),在USENIX年度技术会议中,第553-565页。
[72]Kobbi Nissim Erez Petrank Yuval Ishai、Joe Kilian,2003年,有效地扩展不经意传输(Extending Oblivious Transfers Efficiently)。在Crypto中,第145-161页。
[73]Matei Zaharia、Mosharaf Chowdhury、Tathagata Das、Ankur Dave、JustinMa、Murphy McCauly、Michael J Franklin、Scott Shenker和Ion Stoica,2012年,弹性分布式数据集:用于存储器中集群计算的容错抽象(Resilient distributed datasets:Afault-tolerant abstraction for in-memory cluster computing),作为第九届USENIX网络系统设计与实施方案研讨会(NSDI 12)的一部分,第15-28页。
[74]Matei Zaharia、Mosharaf Chowdhury、Michael J.Franklin、Scott Shenker和Ion Stoica,2010年,Spark:使用工作集合的集群计算(Spark:Cluster Computing withWorking Sets)。在第2届USENIX云计算热点会议论文集(马萨诸塞州波士顿)(HotCloud'10)中,USENIX协会,USA,第10页。
[75]Samee Zahur和David Evans,2015年,Obliv-C:可扩展数据语言——不经意计算(Obliv-C:A Language for Extensible Data-Oblivious Computation),IACRCryptol.ePrint Arch.,2015(2015年),第1153页。
[76]Wenting Zheng、Ankur Dave、Jethero G Beekman、Raluca Ada Popa、JosephE Gonzalez和Ion Stoica,2017年,Opaque:不经意的加密分布式分析平台(Opaque:Anoblivious and encrypted distributed analytics platform)。在第14届{USENIX}网络系统设计与实施方案研讨会({NSDI}17)中,第283-298页。
Claims (21)
1.一种方法,其包括由第一方计算系统执行以下各项:
对数据记录的第一方集合进行令牌化,从而生成令牌化第一方集合,其中所述令牌化第一方集合包括多个第一方令牌;
通过使用分配函数将所述多个第一方令牌中的每个第一方令牌分配到多个令牌化第一方子集中的令牌化第一方子集来生成所述多个令牌化第一方子集;
对于所述多个令牌化第一方子集中的每个令牌化第一方子集:
使用所述令牌化第一方子集和对应于第二方计算系统的令牌化第二方子集与所述第二方计算系统执行私有集合交集协议,从而执行多个私有集合交集协议并生成多个相交令牌子集;
组合所述多个相交令牌子集,从而生成相交令牌集合;以及
对所述相交令牌集合进行去令牌化,从而生成数据记录的相交集合。
2.根据权利要求1所述的方法,其中所述分配函数包括词典排序函数,并且其中通过使用所述分配函数将所述多个第一方令牌中的每个第一方令牌分配到所述多个令牌化第一方子集中的一个来生成所述多个令牌化第一方子集包括:
基于所述多个第一方令牌的词典排序将每个第一方令牌分配到对应的令牌化第一方子集。
3.根据权利要求1所述的方法,其还包括在执行所述私有集合交集协议之前,对于所述多个令牌化第一方子集中的每个令牌化第一方子集:
确定填充值,所述填充值包括所述令牌化第一方子集的大小与目标值之间的差;
生成多个随机虚拟令牌,所述多个随机虚拟令牌包括等于所述填充值的多个随机虚拟令牌;并且
将所述多个随机虚拟令牌分配到所述令牌化第一方子集。
4.根据权利要求1所述的方法,其中所述第一方计算系统包括第一方服务器和第一方计算集群,所述第一方计算集群包括第一方驱动程序节点和多个第一方工作节点,并且其中所述多个私有集合交集协议由所述多个第一方工作节点执行。
5.根据权利要求1所述的方法,其中所述第一方集合对应于与私有数据库表联接查询相对应的联接密钥集合,并且其中所述方法还包括:
从所述第二方计算系统接收一个或多个过滤后的第二方数据库表;
使用所述相交集合过滤一个或多个第一方数据库表,从而生成一个或多个过滤后的第一方数据库表;以及
将所述一个或多个过滤后的第一方数据库表与所述一个或多个过滤后的第二方数据库表联接,从而生成联接表。
6.根据权利要求1所述的方法,其还包括从第一方数据库检取所述第一方集合。
7.根据权利要求1所述的方法,其中所述第一方集合包括多个第一方元素,其中所述多个第一方令牌包括多个散列值,并且其中对所述第一方集合进行令牌化包括通过使用散列函数对每个第一方元素进行散列来生成所述多个散列值。
8.根据权利要求1所述的方法,其中所述第一方集合和所述第二方集合包括相等数目的元素。
9.根据权利要求1所述的方法,其中所述相交令牌集合包括所述多个相交令牌子集的并集,并且其中组合所述多个相交令牌子集包括确定所述多个相交令牌子集的所述并集。
10.根据权利要求1所述的方法,其还包括:
在对所述第一方集合进行令牌化之前:
从编排器计算机接收请求消息,所述请求消息指示所述第一方集合,并且
从第一方数据库检取所述第一方集合;以及
将所述相交集合发送到所述编排器计算机,其中所述编排器计算机将所述相交集合发送到客户端计算机。
11.根据权利要求1所述的方法,其中所述多个令牌化第一方子集和多个令牌化第二方子集包括预定数目的子集。
12.根据权利要求11所述的方法,其中每个令牌化第一方子集与包含端值的一与子集的所述预定数目之间的数字标识符相关联,其中所述分配函数是散列函数,所述散列函数产生包含端值的一与子集的所述预定数目之间的散列值,并且其中将所述多个第一方令牌中的每个第一方令牌分配到所述多个令牌化第一方子集中的一个包括:
对于所述多个第一方令牌中的每个第一方令牌:
使用所述第一方令牌作为所述散列函数的输入生成散列值;以及
将所述第一方令牌分配到令牌化第一方子集,所述令牌化第一方子集具有等于所述散列值的所述数字标识符。
13.一种方法,其包括由第一方计算系统执行以下各项:
接收私有数据库表联接查询,所述私有数据库表联接查询标识一个或多个第一数据库表和一个或多个属性;
从第一方数据库检取所述一个或多个第一数据库表;
基于所述一个或多个第一数据库表和所述一个或多个属性确定多个第一方联接密钥;
对所述多个第一方联接密钥进行令牌化,从而生成令牌化第一方联接密钥集合,其中所述令牌化第一方联接密钥集合包括多个第一方令牌;
通过使用分配函数将所述多个第一方令牌中的每个第一方令牌分配到多个令牌化第一方子集中的令牌化第一方子集来生成所述多个令牌化第一方子集;
对于所述多个令牌化第一方子集中的每个令牌化第一方子集:
使用所述令牌化第一方子集和对应于第二方计算系统的令牌化第二方子集与所述第二方计算系统执行私有集合交集协议,从而执行多个私有集合交集协议并生成多个相交令牌子集;
组合所述多个相交令牌子集,从而生成相交令牌集合;
对所述相交令牌集合进行去令牌化,从而生成相交联接密钥集合;
使用所述相交联接密钥集合过滤所述一个或多个第一数据库表,从而生成一个或多个过滤后的第一数据库表;
从所述第二方计算系统接收一个或多个过滤后的第二数据库表;并且
将所述一个或多个过滤后的第一数据库表与所述一个或多个过滤后的第二数据库表组合,从而生成联接数据库表。
14.根据权利要求13所述的方法,其中所述私有数据库表联接查询另外包括“其中”子句,并且其中所述方法还包括在确定所述多个第一方联接密钥之前:
基于所述其中子句对所述一个或多个第一数据库表进行预过滤。
15.根据权利要求13所述的方法,其中所述多个第一方联接密钥中的每个第一方联接密钥对应于所述一个或多个属性中的属性,并且其中对所述多个第一方联接密钥进行令牌化包括:
对于所述一个或多个属性中的每个属性,串接对应于所述属性的每个第一方联接密钥,从而生成多个串接的第一方联接密钥;以及
对所述多个串接的第一方联接密钥中的每个串接的第一方联接密钥进行散列,从而生成多个散列值,其中所述令牌化联接密钥集合包括所述多个散列值。
16.根据权利要求13所述的方法,其还包括将所述一个或多个过滤后的第一数据库表发送到所述第二方计算系统,其中所述第二方计算系统将所述一个或多个过滤后的第一数据库表与所述一个或多个过滤后的第二数据库表组合,从而生成所述联接数据库表。
17.根据权利要求13所述的方法,其中所述私有数据库表联接查询是从编排器计算机接收的,并且其中所述方法还包括将所述联接数据库表发送到所述编排器计算机,其中所述编排器计算机将所述联接数据库表发送到客户端计算机。
18.根据权利要求13所述的方法,其还包括:
生成包括所述令牌化第一方联接密钥集合中的令牌化第一方联接密钥的令牌列;以及
将所述令牌列附加到所述一个或多个第一数据库表。
19.根据权利要求18所述的方法,其中使用所述相交联接密钥集合过滤所述一个或多个第一数据库表包括:
基于所述令牌列从所述一个或多个第一数据库表移除一个或多个行,所述一个或多个行对应于不在所述相交联接密钥集合中的一个或多个令牌化231392 1PWCN
第一方联接密钥。
20.一种第一方计算系统,其包括:
第一处理器,以及
耦合到所述第一处理器的第一非瞬态计算机可读介质,所述第一非瞬态计算机可读介质包括能由所述第一处理器执行以实施根据权利要求1至19中任一项所述的方法的代码。
21.根据权利要求20所述的第一方计算系统,其还包括计算集群,所述计算集群包括驱动程序节点和多个工作节点,其中所述第一处理器和所述第一非瞬态计算机可读介质对应于第一方服务器,其中所述驱动程序节点包括第二处理器和耦合到所述第二处理器的第二非瞬态计算机可读介质,其中所述多个工作节点中的每个工作节点包括多个第三处理器中的第三处理器和多个第三非瞬态计算机可读介质中的第三非瞬态计算机可读介质,每个第三非瞬态计算机可读介质耦合到对应第三处理器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063088863P | 2020-10-07 | 2020-10-07 | |
US63/088,863 | 2020-10-07 | ||
PCT/US2021/053840 WO2022076605A1 (en) | 2020-10-07 | 2021-10-06 | Secure and scalable private set intersection for large datasets |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116261721A true CN116261721A (zh) | 2023-06-13 |
Family
ID=81126043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180065778.9A Pending CN116261721A (zh) | 2020-10-07 | 2021-10-06 | 用于大型数据集的安全和可扩展私有集合交集 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230401331A1 (zh) |
EP (1) | EP4226260A4 (zh) |
CN (1) | CN116261721A (zh) |
WO (1) | WO2022076605A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881310A (zh) * | 2023-09-07 | 2023-10-13 | 卓望数码技术(深圳)有限公司 | 一种大数据的集合计算方法及装置 |
CN117910045A (zh) * | 2024-03-13 | 2024-04-19 | 北京国际大数据交易有限公司 | 一种隐私集合求交方法及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230359631A1 (en) * | 2020-10-08 | 2023-11-09 | Visa International Service Association | Updatable private set intersection |
CN114884675B (zh) * | 2022-04-29 | 2023-12-05 | 杭州博盾习言科技有限公司 | 基于比特传输的多方隐私求交方法、装置、设备及介质 |
CN114969830B (zh) * | 2022-07-18 | 2022-09-30 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、系统和可读存储介质 |
CN115422581B (zh) * | 2022-08-30 | 2024-03-08 | 北京火山引擎科技有限公司 | 一种数据处理方法及装置 |
CN115168910B (zh) * | 2022-09-08 | 2022-12-23 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的共享数据等宽分箱方法 |
CN115834789B (zh) * | 2022-11-24 | 2024-02-23 | 南京信息工程大学 | 基于加密域的医疗影像加密以及恢复方法 |
CN116522402B (zh) * | 2023-07-04 | 2023-10-13 | 深圳前海环融联易信息科技服务有限公司 | 基于隐私计算的客户识别方法、装置、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291509B2 (en) * | 2008-10-17 | 2012-10-16 | Sap Ag | Searchable encryption for outsourcing data analytics |
US20120002811A1 (en) * | 2010-06-30 | 2012-01-05 | The University Of Bristol | Secure outsourced computation |
US20130073286A1 (en) * | 2011-09-20 | 2013-03-21 | Apple Inc. | Consolidating Speech Recognition Results |
US10594546B1 (en) * | 2017-08-23 | 2020-03-17 | EMC IP Holding Company LLC | Method, apparatus and article of manufacture for categorizing computerized messages into categories |
US10769295B2 (en) * | 2018-01-18 | 2020-09-08 | Sap Se | Join operations on encrypted database tables |
-
2021
- 2021-10-06 CN CN202180065778.9A patent/CN116261721A/zh active Pending
- 2021-10-06 US US18/044,060 patent/US20230401331A1/en active Pending
- 2021-10-06 WO PCT/US2021/053840 patent/WO2022076605A1/en unknown
- 2021-10-06 EP EP21878488.2A patent/EP4226260A4/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881310A (zh) * | 2023-09-07 | 2023-10-13 | 卓望数码技术(深圳)有限公司 | 一种大数据的集合计算方法及装置 |
CN116881310B (zh) * | 2023-09-07 | 2023-11-14 | 卓望数码技术(深圳)有限公司 | 一种大数据的集合计算方法及装置 |
CN117910045A (zh) * | 2024-03-13 | 2024-04-19 | 北京国际大数据交易有限公司 | 一种隐私集合求交方法及系统 |
CN117910045B (zh) * | 2024-03-13 | 2024-05-28 | 北京国际大数据交易有限公司 | 一种隐私集合求交方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4226260A4 (en) | 2024-03-20 |
WO2022076605A1 (en) | 2022-04-14 |
EP4226260A1 (en) | 2023-08-16 |
US20230401331A1 (en) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116261721A (zh) | 用于大型数据集的安全和可扩展私有集合交集 | |
Wang et al. | Blockchain based data integrity verification for large-scale IoT data | |
US11468186B2 (en) | Data protection via aggregation-based obfuscation | |
Gai et al. | Blockchain meets cloud computing: A survey | |
Dai et al. | From Bitcoin to cybersecurity: A comparative study of blockchain application and security issues | |
WO2021103794A1 (zh) | 在区块链中实现隐私保护的高效交易方法及装置 | |
WO2021088547A1 (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
WO2021088536A1 (zh) | 基于链下授权的隐私数据查询方法及装置 | |
Zhu et al. | Cooperative provable data possession for integrity verification in multicloud storage | |
TW202113645A (zh) | 基於區塊鏈的智能合約管理方法及裝置、電子設備 | |
Fu et al. | Blindfl: Vertical federated machine learning without peeking into your data | |
Hudic et al. | Data confidentiality using fragmentation in cloud computing | |
WO2021088533A1 (zh) | 隐私数据的共享方法及装置 | |
WO2021088543A1 (zh) | 基于智能合约的权限查询配置方法及装置 | |
JP2022177828A (ja) | 情報漏洩を低減した連合学習の方法、装置およびコンピュータプログラム(分割された動的シャッフルモデル更新を伴う連合学習) | |
WO2023061108A1 (zh) | 数据脱敏方法、联邦学习方法及系统 | |
Li et al. | An efficient blind filter: Location privacy protection and the access control in FinTech | |
Shi et al. | ESVSSE: Enabling efficient, secure, verifiable searchable symmetric encryption | |
Schlögl et al. | eNNclave: Offline inference with model confidentiality | |
Liu et al. | Lightning-fast and privacy-preserving outsourced computation in the cloud | |
Wu et al. | A secure and efficient data deduplication framework for the internet of things via edge computing and blockchain | |
Wu et al. | ObliDC: An SGX-based oblivious distributed computing framework with formal proof | |
Chen et al. | A privacy protection method based on key encapsulation mechanism in medical blockchain | |
Yoosuf | Lightweight fog‐centric auditing scheme to verify integrity of IoT healthcare data in the cloud environment | |
Kaci et al. | Toward a big data approach for indexing encrypted data in cloud computing |
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 |