用于进行数据安全匹配的方法、装置和系统
技术领域
本申请涉及安全多方计算(SMC/SMPC),尤其涉及用于异质标识数据安全匹配的方法和设备。
背景技术
近年来,数据呈现出急剧增长的态势。尤其在大数据的背景下,要使得大量互不信任的参与方能够在不泄露各自的信息的前提下进行安全有效且高效率的多方合作的需求尤为迫切。
安全求交集(PSI)是针对安全多方计算中的一个子问题的技术。此技术在保护各参与方各自数据集的明细不不泄露的前提下,求出各参与方的数据交集。PSI在社交、军事、商业、金融、政府等领域均有极大的价值和前景。
在最简单的场景中,PSI可包括互不信任的两个参与方,称发送方A和接收方B。发送方A可具有数据集X,而接收方B可具有数据集Y。发送方A允许接收方B计算/获得它们各种的集合X和Y的交集X∩Y,而不会向对方/第三方泄露此交集中未包含的元素。一般而言,接收方B将能知道X∩Y以及X的大小|X|,但不能获悉X和/或任何其他关于X的信息,而发送方A将仅能知道Y的大小|Y|(以及在有些方案中也被允许知道X∩Y),但不能获悉Y和/或任何其他关于Y的信息。在更为复杂的场景中,可以涉及互不信任的多个参与方,其中可包括一个或多个发送方、一个或多个接收方、以及可以包括一个或多个中间方在内的其他各方等等,而PSI可包括计算其中多方的交集而不将其中任一方的信息泄漏给其他任何一方。
常用的PSI算法/协议包括但不限于基于哈希的PSI、基于OT(ObliviousTransfer,不经意传输)的PSI、基于公钥的PSI(诸如基于DH(Diffie-Hellman))、基于同态加密(Homomorphic Encryption)的PSI、基于第三方的PSI等等。
传统方案中,当两个数据集的标识列一致时,称之为同质标识数据,可以直接通过PSI进行匹配。而当两个数据集的标识列不一致即具有异质标识时,则称这两个数据集为异质标识数据。当需要匹配异质标识数据时,通常先将其中一个数据集的标识列通过一个或多个中间表映射到与另一个数据集相同的标识列上,然后再通过相同的标识列匹配。
图1示出了此类情形的示图。例如,匹配数据方A的数据集中的标识列为KEY A,而匹配数据方B的数据集中的标识列为KEY B。KEY A与KEY B不一致,从而它们是异质标识数据。在现有技术中,一般可通过一个或多个中间表C来例如将用户A的数据集的标识列KEY A中的各个标识映射到用户B的数据集Y中的标识列KEY B中对应的标识。在经映射的标识列的基础上求得用户A的数据集与B的数据集的交集。
然而,由于依赖于中间表映射,和/或在映射和/或匹配过程中采用集中式处理,因此待匹配数据表明细和中间表明细均有数据泄露的风险。即使采用散列(Hash)后的标识列进行匹配,也存在遭到例如“彩虹表攻击”的潜在风险。
因此,本领域中需要改进的异质标识数据安全匹配策略,以至少解决现有技术的上述问题中的一个或多个问题。
发明内容
为解决上述问题中的一个或多个问题,本公开提供了用于异质标识数据安全匹配的方法、装置和系统。
本公开的一方面涉及一种进行数据安全匹配的方法,包括接收用于对具有异质标识的至少两个数据集进行安全匹配的最优安全路由的请求;确定安全多方计算环境中能够进行所述异质标识之间的映射的最优安全路由;以及提供所确定的最优安全路由,以供基于所述最优安全路由通过安全求交集来进行所述至少两个数据集的安全匹配。
根据一示例性实施例,所述最优安全路由包括所述安全多方计算环境中的一个或多个成员节点,每一个成员节点包括多个标识及其之间的映射关系,其中所述异质标识之间的映射依次经由所述最优安全路由中的每一个成员节点来进行。
根据一替换性实施例,所述最优安全路由包括存储大数据集的成员节点,所述大数据集包括多个标识及其之间的映射关系,从而足以确定所述异质标识之间的映射。
根据一示例性实施例,该方法进一步包括比较所述至少两个数据集的数据量;以及将所述至少两个数据集中数据量少的一方作为所述最优安全路由的起点,并且其中提供所确定的最优安全路由包括将所确定的最优安全路由通知所述最优安全路由的起点。
根据进一步的示例性实施例,该方法进一步包括接收作为所述最优安全路由的起点的一方的数据集中还有部分数据的标识经由所述安全路由未得到映射的指示;确定所述安全多方计算环境中能够进行所述异质标识之间的映射的下一最优安全路由;以及提供所确定的下一最优安全路由,以供基于所述下一最优安全路由通过安全求交集来进行所述部分数据的安全匹配。
根据进一步的示例性实施例,该方法重复直至作为所述最优安全路由的起点的一方的数据集中所有数据的标识均得到映射并且所述至少两个数据集的安全匹配完成。
根据又一示例性实施例,所述至少两个数据集各自属于相应的数据方,并且所述请求从所述相应的数据方之一接收。
本公开的一方面涉及一种进行数据安全匹配的方法,包括接收用于对具有异质标识的至少两个数据集进行安全匹配的最优安全路由的通知,所述最优安全路由包括安全多方计算环境中能够进行所述异质标识之间的映射的安全路由;以及基于所述最优安全路由通过安全求交集来进行所述至少两个数据集的安全匹配。
根据一示例性实施例,所述最优安全路由包括所述安全多方计算环境中的一个或多个成员节点,每一个成员节点包括多个标识及其之间的映射关系,其中所述异质标识之间的映射依次经由所述最优安全路由中的每一个成员节点来进行。
根据另一示例性实施例,所述最优安全路由包括存储大数据集的成员节点,所述大数据集包括多个标识及其之间的映射关系,从而足以确定所述异质标识之间的映射。
根据又一示例性实施例,该方法还包括传送用于对所述具有异质标识的至少两个数据集进行安全匹配的最优安全路由的请求。
根据再一示例性实施例,所述最优安全路由的起点包括所述至少两个数据集中数据量少的一方。
根据进一步的示例性实施例,该方法进一步包括如果作为所述最优安全路由的起点的一方的数据集中还有部分数据的标识经由所述安全路由未得到映射,则接收下一最优安全路由的通知,所述下一最优安全路由包括所述安全多方计算环境中能够进行所述异质标识之间的映射的安全路由;以及基于所述下一最优安全路由通过安全求交集来进行所述部分数据的安全匹配。
根据进一步的示例性实施例,该方法重复直至作为所述最优安全路由的起点的一方的数据集中所有数据的标识均得到映射并且所述至少两个数据集的安全匹配完成。
根据又一示例性实施例,所述至少两个数据集各自属于相应的数据方,并且所述方法在数据方之一实现。
本公开的又一方面涉及一种安全多方计算系统,包括至少两个数据方,所述至少两个数据方包括具有异质标识的至少两个数据集;一个或多个成员节点,每一个成员节点包括多个标识及其之间的映射关系;路由发现设备,其中所述路由发现设备:接收用于对具有异质标识的至少两个数据集进行安全匹配的最优安全路由的请求;确定安全多方计算环境中能够进行所述异质标识之间的映射的最优安全路由;以及向所述至少两个数据方中的至少一个数据方提供所确定的最优安全路由;其中所述至少一个数据方接收用于对具有异质标识的至少两个数据集进行安全匹配的最优安全路由的通知;以及基于所述最优安全路由通过安全求交集来进行所述至少两个数据集的安全匹配。
本公开还包括相应的装置。本公开的实施例在对异质标识数据进行匹配时,可在高效率的前提下保证匹配各方和中间节点均不泄露明细数据。
附图说明
图1示出了现有技术的异质标识数据匹配。
图2示出了根据本公开的一示例性实施例的安全多方计算(SMC/SMPC)场景。
图3示出了根据本公开的一示例性实施例的安全多方计算(SMC/SMPC)场景。
图4示出了根据本公开的一示例性实施例的进行安全路由发现的方法的流程图。
图5示出了根据本公开的一示例性实施例的进行安全求交集(PSI)的方法的流程图。
图6示出了根据本公开的一示例性实施例的进行安全路由发现及安全求交集(PSI)的方法的流程图。
图7示出了根据本公开的替换示例性实施例的进行安全求交集(PSI)的方法的流程图。
图8示出了根据本公开的示例性实施例的路由发现装置的框图。
图9示出了根据本公开的示例性实施例的匹配数据方装置的框图。
图10示出了根据本公开的示例性实施例的安全多方计算(SMPC)场景中进行安全求交集(PSI)的系统的过程流图。
具体实施方式
为了更好地理解本发明的技术方案,下面结合附图对本申请的实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例的罗列。基于本公开中描述的实施例,本领域普通技术人员在没有付出创造习惯劳动的情况下所获得的所有其他变化例都属于本申请的保护范围。
图2示出了根据本公开的一示例性实施例的安全多方计算(SMC/SMPC)场景200。如所可见,该场景中包括多个SMPC节点,其中包括匹配数据方A、匹配数据方B以及其他SMPC成员C1–C10。如本领域普通技术人员所知,场景200仅是SMPC场景的一个示例,其在成员的数目、类型、拓扑等各方面并不旨在受到任何限定。例如,图2中示出了全连通的路径,但是本公开也涵盖了部分连通场景的情形。
在图2的示例中,例如希望将匹配数据方A的数据与匹配数据方B的数据进行安全求交集(PSI)。尤其,匹配数据方A和匹配数据方B的数据具有异质标识数据。与现有技术不同的是,在此方案中,可以不使用中间表。取而代之的是可通过SMPC安全路由来进行映射和匹配。
在一示例性而非限定性的实施例中,SMPC成员中具有多标识数据的成员被认为可以作为安全路由的节点。多标识是指具有不止一个标识列。例如,在图2的示例中,匹配数据方A的数据集具有标识列KEY1,并且该数据集中还有例如字段a1、字段a2、……。匹配数据方B的数据集具有标识列KEY2,并且该数据集中还有例如字段b1、字段b2、……。在此示例性而非限定性的SMPC场景中,还包括SMPC成员C1–C10,其中SMPC成员C1的数据集具有标识列KEY1、KEY2,并且该数据集中还可以有或没有其他字段;SMPC成员C1的数据集具有标识列KEY1、KEY2,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C2的数据集具有标识列KEY1、KEY3,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C3的数据集具有标识列KEY1、KEY4,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C4的数据集具有标识列KEY1、KEY5,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C5的数据集具有标识列KEY2、KEY3,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C6的数据集具有标识列KEY2、KEY6,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C7的数据集具有标识列KEY3、KEY4,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C8的数据集具有标识列KEY4、KEY5,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C9的数据集具有标识列KEY3、KEY5,并且该数据集中还可以有或可以没有一个或多个其他字段;SMPC成员C10的数据集具有标识列KEY5、KEY6,并且该数据集中还可以有或可以没有一个或多个其他字段。如本领域普通技术人员所知,上述成员数目、每个成员的具体标识列以及标识列数目等均为示例而非限定。
在此示例性场景中,由于SMPC成员C1–C10均具有至少两个标识列,因此它们均可以作为安全路由的节点。例如,当以匹配数据方A作为路由的起点时,由于它具有标识列KEY1,因此可在SMPC成员C1–C10中寻找也具有标识列KEY1的成员,确定了SMPC成员C1、C2、C3、C4作为第一跳。从SMPC成员C1寻找下一节点,由于其具有标识列KEY2,因此在SMPC成员C1–C10中寻找也具有标识列KEY2的成员,确定了匹配数据方B、以及SMPC成员C5、C6作为第二跳。注意到,此时匹配数据方A已经可以发现到一条经C1到达匹配数据方B的安全路由,其长度为两跳。从SMPC成员C2寻找下一节点,由于其具有标识列KEY3,因此在SMPC成员C1–C10中寻找也具有标识列KEY3的成员,确定了SMPC成员C2、C5、C7、C9作为第二跳。以此类推,可以找到从匹配数据方A经C2到C5到匹配数据方B的路线,其为经C2到达匹配数据方B的安全路由,其长度为三跳。从SMPC成员C3寻找下一节点,由于其具有标识列KEY4,因此在SMPC成员C1–C10中寻找也具有标识列KEY4的成员,确定了SMPC成员C3、C7、C8作为第二跳。以此类推,可以找到从匹配数据方A经C2到C5到匹配数据方B的三跳路线。如所可见,可以找到分别经第一跳C1、C2、C3、C4的一条或多条安全路由,如图2中的粗黑线所示。可以在从匹配数据方A出发的这些经不同的第一跳到达匹配数据方B的安全路由之中选择最优安全路由。例如,根据一个示例性实施例,最优安全路由可被确定为最短的安全路由。例如,在图2的示例中,最优安全路由可以是从匹配数据方A经C1到达匹配数据方B的两跳安全路由,该路由即被确定为最优安全路由。根据另一个示例性实施例,最优安全路由可被确定为得分最高的安全路由,其中得分可例如基于每一节点的安全性、每一节点的数据充分性、每一跳节点的数据处理能力、每一节点的历史得分、每一跳的权重、延迟等各种因素中的一种或多种或其任何组合。本公开的技术方案在发现安全路由的方式方面不受限定,而是可以使用本领域中目前或将来所知的任何发现方式,例如各种深度优先或广度优先算法等。本公开的技术方案在确定最优安全路由的准则方面也不受限定,而是可以使用各种确定最优安全路由的准则。
在确定最优安全路由期间或之后,可将匹配数据方A的标识列KEY1映射到每一跳节点的相应标识列。例如,在图2的示例中,匹配数据方A的标识列KEY1被映射到最优安全路由的第一跳节点(即SMPC成员C1)的标识列KEY2。此时,下一跳即为该最优安全路由的终点(即匹配数据方B),并且匹配数据方A的标识列KEY1已被映射成与匹配数据方B的标识列KEY2相同,因此便能够基于所映射的标识列KEY2来对匹配数据方A的数据集和匹配数据方B的数据集进行安全求交集PSI。
通过这种方式,不需要任何集中式数据处理。系统发现安全路由(以及还可能计算安全路由的得分),但标识列的映射以及安全求交集(PSI)可以不通过系统。最优安全路由的发现与利用最优安全路由进行标识列映射和安全求交集被隔离开来。这样的隔离既保证了效率,又为各方的数据提供了安全性。不仅如此,由于最优安全路由的寻找是动态的,因此更进一步地增强了SMPC场景中进行PSI的安全性。
图3示出了根据本公开的一替换示例性实施例的安全多方计算(SMC/SMPC)场景300。在此示例性场景中,当SMPC场景中存在一个或多个足够大和全的数据集时,便可以由其中至少一个数据集代替安全路由。足够大和全意味着该数据集包含足以用于各方之间的标识映射和匹配的各种不同标识数据之间的映射关系。例如,当存在一个大而全的数据集时,作为寻找最优安全路由的替代,可将匹配数据方的标识列(例如,匹配数据方A的标识列KEY1)通过该数据集映射的方式来与另一匹配数据方的标识列(例如,匹配数据方B的标识列KEY2)。在此映射之后,便可基于所映射的标识列KEY2来对匹配数据方A和匹配数据方B的数据集进行安全求交集PSI。此类大而全的数据集可以包含各种不同的标识数据之间的映射关系,从而可以作为/替代前述的安全路由。
类似地,系统发现安全路由(以及还可能计算安全路由的得分),但标识列的映射以及安全求交集(PSI)不通过系统(即,数据集可独立于系统存在)。这样的隔离既保证了效率,又为数据提供了安全性。
图4示出了根据本公开的一示例性实施例的进行安全路由发现的方法400的流程图。在框402,确定所要发现的安全路由的起点和终点。在一示例中,具有异质标识数据的匹配数据方A和B(以及可能还有更多匹配数据方C、D……)希望匹配它们的数据集。例如,匹配数据方A的数据集具有标识列KEY1,并且该数据集中还有例如字段a1、字段a2、……,并且匹配数据方A的数据集中共有NA个数据项。匹配数据方B的数据集具有标识列KEY2,并且该数据集中还有例如字段b1、字段b2、……,并且匹配数据方B的数据集中共有NB个数据项。数据匹配方A的字段a1、字段a2、……与数据匹配方B的字段b1、字段b2可以完全相同、完全不同、或部分相同。例如,系统可接收确定安全路由的请求,所述请求指示具有异质标识数据的这至少两个匹配数据方。根据一示例性而非限定性的实施例,当不止一个匹配数据方可作为路由起点时,可以比较各个匹配数据方的数据量(例如,数据项数目),以将要匹配的数据量较少的一方确定为路由起点,以减少PSI交互次数。但是,当其中任何一个或多个匹配数据方因任何原因不可/不适合用作路由起点时,也可不将其作为路由起点。
当在框402确定了路由起点和终点时,系统在框404根据作为路由起点的匹配数据方(例如,匹配数据方A)的标识列(例如,KEY1)在SMPC成员集中寻找能够映射到作为路由终点的匹配数据方(例如,匹配数据方B)的标识列(例如,KEY2)的最优安全路由。在框406,系统将在框404确定的最优安全路由通知给匹配数据方(例如,匹配数据方A和/或匹配数据方B)。
根据示例性而非限定性的实施例,系统在框404根据作为路由起点的匹配数据方(例如,匹配数据方A)的标识列(例如,KEY1)在SMPC成员集中寻找能够映射到作为路由终点的匹配数据方(例如,匹配数据方B)的标识列(例如,KEY2)的最优安全路由可以有各种方案且/或可以使用各种算法或其组合。例如,最优安全路由可以是最短(例如,跳数最少)的路由。又如,最优安全路由可被确定为得分最高的安全路由,其中得分可例如基于每一跳节点的安全性、每一跳节点的数据充分性、每一跳节点的数据处理能力、每一跳节点的历史得分、每一跳的权重的组合、每一跳的延迟的总和等各种因素中的一种或多种或其任何组合。再如,最优安全路由可被确定为是最快的安全路由,等等。最优安全路由的发现可以使用各种算法或其组合。
例如,根据一种方案,假定匹配数据方A被确定为路由起点。由于匹配数据方具有第一标识列KEY1,因此系统可在SMPC成员集中寻找具有KEY1并且还具有至少一个其他标识列的一个或多个成员(例如,C1、C2、C3、C4,它们分别具有例如,KEY2、KEY3、KEY4、KEY5)。然后,对于所寻找到的这一个或多个成员中的每一者,可确定其是否包括目标匹配数据方的标识列(例如,KEY2),如果为是,则即寻找到了最短的安全路由。如果为否,则对于该成员所包括的一个或多个其他标识列中的每一者(例如,KEY2、KEY3、KEY4、KEY5),在SMPC成员集中寻找具有该标识列的一个或多个成员并确定每一个成员是否还包括目标匹配数据方的标识列(例如,KEY2),依此类推。该方法可在寻找到第一条最短的安全路由后即终止,也可以继续寻找次最短的安全路由,以此类推。
根据另一种方案,假定匹配数据方A被确定为路由起点。系统可以用遍历的方式寻找该SMPC场景中的每一条能够到达路由终点(例如,匹配数据方B)的安全路由并计算其得分,其中得分可例如基于每一跳节点的安全性、每一跳节点的数据充分性、每一跳节点的数据处理能力、每一跳节点的历史得分、每一跳的权重的组合、每一跳的延迟的总和等各种因素中的一种或多种或其任何组合。在计算出所有可用安全路由的得分之后,系统可按顺序选取最优安全路由。
本公开的技术方案在发现安全路由以及发现最优安全路由的方式方面不受限定,而是可以使用本领域中目前或将来所知的任何发现方式,例如各种深度优先或广度优先算法等。
图5示出了根据本公开的一示例性实施例的进行安全求交集(PSI)的方法500的流程图。方法500始于在框502,匹配数据方(例如,路由起点和/或路由终点)根据系统所确定的最优安全路由,使用安全求交集(PSI)来将自己的标识列(例如,KEY1)映射到路由终点(例如,匹配数据方B)的标识列(例如,KEY2)。例如,最优安全路由可由系统通知给每一或任何一个或多个匹配数据方。在框504,匹配数据方(例如,路由起点和/或路由终点)基于经映射的标识列,对双方(即,匹配数据方自身与目标匹配数据方)的数据集进行安全求交集(PSI)。
如所可见,系统负责发现安全路由,但并不参与标识列的匹配以及PSI。另一方面,匹配数据方无需发现安全路由,而只需使用所确定的安全路由来进行标识列映射和安全求交集(PSI)。如此,将路由的发现与通过路由进行标识列匹配和PSI隔离开来,既提高了效率又进一步提高了安全性。不仅如此,在对具有异质标识数据的两个数据集进行匹配时,标识列的映射以及数据的匹配均采用PSI安全求交集的方式,可确保匹配各方以及成员节点均不会泄露明细数据。
图6示出了根据本公开的一示例性实施例的进行安全路由发现及安全求交集(PSI)的方法600的流程图。在框602,确定所要发现的安全路由的起点和终点。例如,系统可接收确定安全路由的请求,所述请求指示具有异质标识数据的至少两个匹配数据方。基于此,系统可确定路由的起点和终点。例如,根据一示例性而非限定性的实施例,当不止一个匹配数据方可作为路由起点时,可以将要匹配的数据项数目较少的一方确定为路由起点,以减少PSI交互次数。但是,当其中任何一个或多个匹配数据方因任何原因不可/不适合用作路由起点时,也可不将其作为路由起点。在框604,根据所确定的路由起点和路由终点寻找最优安全路由。在框606,系统将在框604确定的最优安全路由通知给匹配数据方(例如,匹配数据方A和/或匹配数据方B)。
在框608,匹配数据方根据所寻找到的最优安全路由,将路由起点的标识列经该最优安全路由上的每一跳节点映射到路由终点的标识列。在框610,匹配数据方基于经映射的标识列,将路由起点的数据集与路由终点的数据集进行安全求交集(PSI)。在框612,确定路由起点的数据集中是否所有数据均得到了映射。如果是,则方法600可以结束(框620)。如果否,则方法600去往框614。在框614,寻找下一最优安全路由。在框616,根据所寻找到的下一最优安全路由,针对路由起点的数据集中尚未得到匹配的数据,将路由起点的标识列经该最优安全路由上的每一跳节点映射到路由终点的标识列。在框618,基于经映射的标识列,将路由起点的数据集中尚未得到匹配的数据与路由终点的数据集进行安全求交集(PSI)。例如,在前例中,匹配数据方A的数据集具有标识列KEY1,并且该数据集中还有例如字段a1、字段a2、……,并且匹配数据方A的数据集中共有NA个数据项。匹配数据方B的数据集具有标识列KEY2,并且该数据集中还有例如字段b1、字段b2、……,并且匹配数据方B的数据集中共有NB个数据项。当匹配数据方A被确定作为路由起点(例如,基于NA<NB)而确定了最优安全路由时,确定这NA个数据项的标识列是否都得到了映射。如果其中只有N1个数据项得到了映射,且,则对于剩下的(NA-N1)个数据项,确定下一最优安全路由。例如,下一最优安全路由可以是下一最短的安全路由、下一得分最高的安全路由、下一最快的安全路由等等。在确定了下一最优安全路由之后,针对匹配数据方A的这剩下的(NA-N1)个数据项,根据所寻找到的下一最优安全路由,将路由起点的标识列经该最优安全路由上的每一跳节点映射到路由终点的标识列。基于经映射的标识列,将路由起点的数据集中尚未得到匹配的数据与路由终点的数据集进行安全求交集(PSI)。方法600然后返回框612。
当SMPC场景中存在一个或多个足够大和全的、包含了各种不同的标识数据之间的映射关系的数据集(例如,图3的示例性场景)时,便可以由其中至少一个数据集代替安全路由。例如,在一示例性而非限定性的实施例中,SMPC场景中有一个或多个成员能提供足够大和全的数据库,则可以从中选择至少一个提供成员,并将标识列经该成员的数据集映射到目标匹配数据方的标识列。基于经映射的标识列,将数据集与目标匹配数据方的数据集进行安全求交集(PSI)。
图7示出了根据本公开的替换示例性实施例的进行安全求交集(PSI)的方法700的流程图。在框702,系统在SMPC成员集中寻找能提供足以代替安全路由的数据集的一个或多个成员。在框704,系统或匹配数据方选择其中的至少一个成员。对成员的选择可基于各种因素,例如成本、安全性、历史、延迟等等或其任何组合。所选择的成员可以是例如至少一个因素意义上的最优成员。在框706,匹配数据方基于所选择的成员,将标识列经该成员的数据集映射到目标匹配数据方的标识列。在708,基于经映射的标识列,将数据集与目标匹配数据方的数据集进行安全求交集(PSI)。
同样地,在此替换方案中,系统负责寻找能提供足以代替安全路由的数据集的成员,但并不参与标识列的匹配以及PSI。另一方面,匹配数据方无需承担寻找提供数据集成员的任务。如此,将路由的发现与通过路由进行标识列匹配和PSI隔离开来,既提高了效率又进一步提高了安全性。
图8示出了根据本公开的示例性实施例的路由发现装置800的框图。路由发现装置800可包括例如用于确定所要发现的安全路由的起点和终点的模块802。路由发现装置800还可包括用于寻找最优安全路由的模块804。路由发现装置800还可包括用于将所确定的最优安全路由通知给匹配数据方的模块806。
在一示例中,路由发现装置800执行用于安全路由发现的各种方法,例如图4的方法,以及图6或图7的方法中的至少一部分或其组合。根据各个实施例,路由发现装置800可驻留在诸SMPC成员中的一个或多个成员中,或可独立存在。
图9示出了根据本公开的示例性实施例的匹配数据方装置900的框图。匹配数据方装置900可包括例如用于基于最优安全路由来映射标识列的模块902。匹配数据方装置900还可包括例如用于与目标匹配数据方进行PSI的模块904。
在一示例中,匹配数据方装置900执行用于标识列匹配和安全求交集的各种方法,例如图5的方法、或图6或图7的方法中的至少一部分或其组合。
图10示出了根据本公开的示例性实施例的安全多方计算(SMPC)场景中进行安全求交集(PSI)的系统1000的过程流图。系统1000包括匹配数据方A 1010、匹配数据方B1020、路由发现设备1030、成员节点11040、……成员节点N 1060。根据一示例性而非限定性实施例,匹配数据方A 1010可具有例如标识列KEY1,匹配数据方B 1020可具有例如标识列KEY2。根据进一步的示例性而非限定性实施例,成员节点1 1040可具有例如标识列KEY1和KEY3,成员节点N 1060可具有例如标识列KEY3和KEY2。如所可知,这仅是为了解说本公开的方案而给出的具体示例,其对本公开并不构成任何限定。
根据一示例性而非限定性实施例,匹配数据方A 1010可向路由发现设备1030传送确定安全路由的请求,所述请求指示可能具有异质标识数据的至少两个匹配数据方A和B。路由发现设备1030接收确定安全路由的请求,并基于所述至少两个匹配数据方A和B,来确定安全多方计算环境中的安全路由。
例如,根据一示例性而非限定性示例,路由发现设备1030可例如使用前述方式,基于特定准则来确定最优安全路由。特定准则可以是例如最短的安全路由或得分最高的安全路由等。在本例中,例如,路由发现设备1030可确定最优安全路由包括由匹配数据方A经由成员节点1和成员节点N到达匹配数据方B。即,匹配数据方A的标识列KEY1可借助于同样具有标识列KEY1的成员节点1被映射到成员节点1的另一标识列KEY3;然后,可借助于同样具有标识列KEY3的成员节点N被映射到成员节点N的另一标识列KEY2。由于成员节点N与匹配数据方B均有标识列KEY2,因此匹配数据方A的标识列KEY1即可被间接地映射到匹配数据方B的标识列KEY2。
在确定最优安全路由之后,路由发现设备1030可将所确定的最优安全路由通知给匹配数据方A 1010。匹配数据方A 1010基于此通知,经由PSI与成员节点1进行标识列映射,即将匹配数据方A 1010的标识列(例如,KEY1)映射到最优安全路径中的第一跳,即成员节点1的另一标识列(例如,KEY3)。然后,匹配数据方A 1010基于所映射到的KEY3进一步映射到最优安全路径中的下一跳成员节点N的另一标识列(例如,KEY2)。最后,匹配数据方A1010使用PSI基于所映射到的KEY2来与匹配数据方B 1020进行安全求交集。
匹配数据方在进行标识列映射时仅对标识列进行PSI,因此安全路径中的任何路由节点(例如,各成员节点以及匹配数据方B)获取不到任何涉及匹配数据方A的数据集的信息,也获取不到额外的标识列信息。本方案中,由于所有标识数据的安全路由映射、匹配都是以安全求交集的方式进行,因此不会泄露任何一个参与方的明细数据。数据源双方进行异质标识数据安全匹配后,能够控制只有一方获得交集部分信息,同时能控制交集的数据格式和数据源方的数据格式完全一致,不会获得额外的标识列信息。
在至少一些情形中,匹配数据方A可能确定自己的数据集中有数据未得到映射,并相应地传送关于所述至少两个匹配数据方中作为所述安全路由的起点的一方的数据集中未得到映射的数据的指示。路由发现设备1030接收关于所述至少两个匹配数据方中作为所述安全路由的起点的一方的数据集中未得到映射的数据的指示,确定下一最优安全路由并将所确定的下一最优安全路由通知给匹配数据方A。匹配数据方A接收关于所确定的下一安全路由的通知,并基于所确定的下一安全路由,针对所述未得到映射的数据,按前述方式进行标识列映射,并基于经映射的标识数据,针对所述未得到映射的数据,对所述至少两个匹配数据方的数据集进行安全求交集。根据一个示例,匹配数据方A重复上述动作直至所述至少两个匹配数据方中作为所述安全路由的起点的一方(例如,匹配数据方A)的数据集中的所有数据均得到了映射(图中未示出)。以上示例中,以匹配数据方A作为路由起点,但是本公开的方案并不被限定于此。例如,路由发现设备可比较匹配数据方A和匹配数据方B的数据量大小,并以数据量少的一方作为路由起点,以减少PSI交互次数并提升效率。
本领域普通技术人员应理解,本发明的有益效果并非由任何单个实施例来全部实现。各种组合、修改和替换均为本领域普通技术人员在本发明的基础上所易于明了。
此外,除非特别指出,否则术语“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或从上下文能清楚地看出,否则短语“X采用A或B”或类似短语旨在表示任何自然的可兼排列。即,短语“X采用A或B”藉由以下实例中的任何实例得到满足:X采用A;X采用B;X采用A和B两者。术语“连接”与“耦合”可表示相同含义,即两组件之间直接的或经由一个或多个居间组件的间接耦合。另外,本申请和所附权利要求书中所用的冠词“一”和“某”一般应当被理解为表示“一个或多个”,除非另外特别声明或从上下文中可以清楚地看出是指单数形式。
各个方面或特征以可包括数个设备、组件、模块及类似物等的系统的形式来呈现。应理解的时,各种系统可以包括附加的设备、组件、模块及类似物等,和/或可以并不包括所讨论的实施例中的设备、组件、模块及类似物的全体。
结合本文中所公开的实施例描述的各种说明性逻辑、逻辑块、模块和电路可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、门或晶体管逻辑、硬件组件。但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。以上结合方法描述的实施例可以通过处理器和与之耦合的存储器来实现,其中处理器可被配置成执行前述任何方法的任何步骤或其组合。
结合本文中的实施例描述的方法或算法的步骤和/或动作可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。例如,以上结合各个方法描述的实施例可以通过存储有计算机程序代码的计算机可读介质来实现,其中该计算机程序代码在由处理器/计算机执行时执行前述任何方法的任何步骤或其任何组合。
本公开中通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上等效的方案均被本公开所覆盖。此外,本文中任何内容无论是否在权利要求书中被述及,均并非旨在贡献给公众。