可扩展的多方隐私保护集合求交方法、系统及相关设备与流程

文档序号:33643666发布日期:2023-03-29 02:50阅读:65来源:国知局
可扩展的多方隐私保护集合求交方法、系统及相关设备与流程

1.本技术涉及隐私计算技术领域以及计算机技术领域,具体涉及一种可扩展的多方隐私保护集合求交方法、系统及相关设备。


背景技术:

2.随着人工智能的发展,数据的价值越来越受到重视。数据分析也成为研究的重点。实际应用中,针对多方求交应用,在多次两方求交时,中间结果会暴露部分交集以外的数据信息,无法完成多方求交的安全性要求,但由于性能较佳,在部分场景中也会使用,因此,如何提升多方求交运算的安全性的问题亟待解决。


技术实现要素:

3.本技术实施例提供了一种可扩展的多方隐私保护集合求交方法、系统及相关设备,可以提升多方求交运算的安全性。
4.第一方面,本技术实施例提供一种可扩展的多方隐私保护集合求交方法,应用于多方计算系统;所述多方计算系统包括发起方和n个参与方,n为大于1的整数;所述多方计算系统中的每一方均对应一个本地数据集合,所述方法包括:
5.通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵;
6.通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到所述前n-1个参与方中的各个参与方的参考第二初始矩阵;
7.通过所述发起方获取随机矩阵,并通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果;
8.通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果;
9.通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息;
10.通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息。
11.第二方面,本技术实施例提供了一种多方计算系统,所述多方计算系统包括发起方和n个参与方,n为大于1的整数;所述多方计算系统中的每一方均对应一个本地数据集合,其中,
12.所述发起方,用于选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵;
13.所述n个参与方中的前n-1个参与方中的每一参与方,用于选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到所述前n-1个参与方中的各个参与
方的参考第二初始矩阵;
14.所述发起方,还用于获取随机矩阵,并通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果;
15.所述前n-1个参与方,用于根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果;
16.第n个参与方,用于根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息;
17.所述发起方,还用于根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息。
18.第三方面,本技术实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本技术实施例第一方面中的步骤的指令。
19.第四方面,本技术实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本技术实施例第一方面中所描述的部分或全部步骤。
20.第五方面,本技术实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本技术实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
21.实施本技术实施例,具备如下有益效果:
22.可以看出,本技术实施例中所描述的可扩展的多方隐私保护集合求交方法、系统及相关设备,应用于多方计算系统;多方计算系统包括发起方和n个参与方,n为大于1的整数;多方计算系统中的每一方均对应一个本地数据集合,通过发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵,通过n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到前n-1个参与方中的各个参与方的参考第二初始矩阵,通过发起方获取随机矩阵,并通过随机矩阵和参考第一初始矩阵确定初始ot运算结果,通过前n-1个参与方根据初始ot运算结果和前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果,通过第n个参与方根据第n-1个参与方的ot运算结果和第n个参与方的本地数据集合确定初始求交判断信息,通过发起方根据发起方的本地数据集合和初始求交判断信息确定目标求交判断信息,可以通过将n方求交流程模块化,相邻的两方模拟两方求交流程,只在最后一步计算psi交集,既保证了交集外信息不泄露,也能完成求交任务,另外,通过对三方求交进行扩展,实现了任意多方隐私求交功能,从而,能够提升多方求交运算的安全性。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
24.图1是本技术实施例提供的一种用于实现可扩展的多方隐私保护集合求交方法的多方计算系统的结构示意图;
25.图2是本技术实施例提供的一种可扩展的多方隐私保护集合求交方法的流程示意图;
26.图3是本技术实施例提供的另一种可扩展的多方隐私保护集合求交方法的流程示意图;
27.图4是本技术实施例提供的另一种可扩展的多方隐私保护集合求交方法的流程示意图;
28.图5是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
29.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
31.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
32.本技术实施例所描述计算节点(多方计算系统中的任一方)可以为电子设备,电子设备可以包括智能手机(如android手机、ios手机、windows phone手机等)、平板电脑、掌上电脑、行车记录仪、服务器、笔记本电脑、移动互联网设备(mid,mobile internet devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备,该电子设备也可以为云服务器,或者,该电子设备也可以为计算机集群。本技术实施例中,发起方、参与方均可以为上述电子设备。
33.下面对本技术实施例进行详细介绍。
34.请参阅图1,图1是本技术实施例提供的一种用于实现可扩展的多方隐私保护集合求交方法的多方计算系统的架构示意图,如图所示,应用于多方计算系统;所述多方计算系统包括发起方和n个参与方,n为大于1的整数;所述多方计算系统中的每一方均对应一个本地数据集合,基于该多方计算系统可以实现如下功能:
35.通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵;
36.通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利
用各自的本地数据集合修改对应的第二初始矩阵,得到所述前n-1个参与方中的各个参与方的参考第二初始矩阵;
37.通过所述发起方获取随机矩阵,并通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果;
38.通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果;
39.通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息;
40.通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息。
41.可选的,在所述通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵方面,包括:
42.通过所述发起方获取所述第一初始矩阵和伪随机函数密钥;
43.根据所述伪随机函数密钥和所述发起方的本地数据集合确定所述发起方的列信息;
44.根据所述列信息修改所述第一初始矩阵,得到所述参考第一初始矩阵。
45.可选的,基于该多方计算系统还可以实现如下功能:
46.通过所述发起方将所述伪随机函数密钥发送给所述n个参与方中的任一参与方。
47.可选的,在所述通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息方面,包括:
48.根据所述发起方的列信息和所述初始求交判断信息确定所述目标求交判断信息。
49.可选的,在所述通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵方面,包括:
50.通过第i个参与方选取对应的第二初始矩阵;所述第i个参与方为所述前n-1个参与方中的任一参与方;
51.根据所述伪随机函数密钥和所述第i个参与方的本地数据集合确定所述第i个参与方的列信息;
52.根据所述第i个参与方的列信息修改所述第i个参与方的第二初始矩阵,得到所述第i个参与方的参考第二初始矩阵。
53.可选的,在n为2时,在所述通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果方面,包括:
54.通过第1个参与方根据所述初始ot运算结果和所述第1个参与方的参考第二初始矩阵确定所述第1个参与方的ot运算结果;
55.在所述通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息方面,包括:
56.通过第2个参与方根据所述第1个参与方的ot运算结果和所述第2个参与方的本地数据集合确定所述初始求交判断信息。
57.可选的,在所述通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果
方面,包括:
58.通过所述发起方将所述随机矩阵和所述参考第一初始矩阵进行异或运算,得到所述初始ot运算结果。
59.请参阅图2,图2是本技术实施例提供的一种可扩展的多方隐私保护集合求交方法的流程示意图,应用于图1所示的多方计算系统,所述多方计算系统包括发起方和n个参与方,n为大于1的整数;所述多方计算系统中的每一方均对应一个本地数据集合;如图所示,本可扩展的多方隐私保护集合求交方法包括:
60.201、通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵。
61.本技术实施例中,多方计算系统可以包括发起方和n个参与方,n为大于1的整数,即至少有3方参与运算。多方计算系统中的每一方均对应一个本地数据集合。
62.本技术实施例中,发起方可以拥有本地数据集合,本地数据集合可以包括n条数据组,每一数据组可以包括p个数据,每一数据可以对应一个标签信息,每一数据可以理解为一个信息字段,其用于表述标签信息的内容,标签信息可以包括以下至少一种:身份证号、身份卡号(id-card)、电话号码(phone number)、银行卡号(bank card)、社保账号、社交账号、学号、工号等等,在此不做限定。
63.具体实现中,例如,如下提供本地数据集合,如下表1所示:
64.表1
65.id-cardphone numberbank card123466666aaaa178988888bbbb125899999cccc
66.其中,id-card、phone number、bank card均表示标签信息,本地数据集合可以包括3条数据组,{1234,66666,aaaa}可以表示一个数据组,1234则可以表示一个数据,id-card则是1234的标签信息。实际应用中,可以只取表1中的任一列数据用于运算。
67.本技术实施中,可以通过发起方选取第一初始矩阵d∈{1}m×w,则第一初始矩阵还可以表示为d={d1||...||dw},其中,m表示行数,w表示列数。m、w的大小可以基于发起方以及n个参与方中每一方的本地数据集合的数据量决定。第一初始矩阵可以为全1矩阵,即第一初始矩阵的每一元素均为1。进而,可以利用其本地数据集合确定对应的列信息,并基于列信息修改该第一初始矩阵,得到参考第一初始矩阵,实际应用中,针对第一初始矩阵的修改,其修改方式可以为将第一初始矩阵的部分位置的元素从1改成0。
68.进一步的,假设发起方对应本地数据集合y、伪随机函数密钥k∈{0,1}
λ
,λ表示安全参数,例如,λ可以取值40,则可以计算本地数据集合的列信息y∈y,v=fk(h1(y))、修改初始矩阵di[v[i]]=0,i∈[w],v表示伪随机函数的计算结果,其是一个长向量,h表示哈希函数,y表示输入数据,i表示v向量第i个位置。
[0069]
可选的,还可以包括如下步骤:
[0070]
通过所述发起方将所述伪随机函数密钥发送给所述n个参与方中的任一参与方。
[0071]
具体实现中,通过发起方将伪随机函数密钥发送给n个参与方中的任一参与方,再由每一个接收到伪随机函数密钥的参与方,将该伪随机函数密钥发送给下一个参与方。或
者,也可以由发起方将伪随机函数密钥发送给n个参与方中的每一个参与方。例如,可以将k∈{0,1}
λ
发送给除了发起方之外的任一参与方。
[0072]
可选的,上述步骤201,通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵,可以包括如下步骤:
[0073]
11、通过所述发起方获取所述第一初始矩阵和伪随机函数密钥;
[0074]
12、根据所述伪随机函数密钥和所述发起方的本地数据集合确定所述发起方的列信息;
[0075]
13、根据所述列信息修改所述第一初始矩阵,得到所述参考第一初始矩阵。
[0076]
本技术实施例中,伪随机函数密钥可以为多方用同一个伪随机函数(例如aes)进行计算得到的一个密钥,该密钥能够保证相同的输入有相同的输出,并且这个输出在没有密钥的人眼中是随机的。例如,在采用aes算法时,伪随机函数密钥可以理解为aes的密钥,该密钥可以为私钥。
[0077]
本技术实施例中,可以通过发起方获取第一初始矩阵和伪随机函数密钥k,再根据伪随机函数密钥和发起方的本地数据集合确定发起方的列信息,其中,本地数据集合可以视为一个矩阵,即可以通过伪随机函数密钥对该矩阵进行加密,从而,可以得到发起方的列信息,再根据列信息修改第一初始矩阵,得到参考第一初始矩阵。
[0078]
202、通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到所述前n-1个参与方中的各个参与方的参考第二初始矩阵。
[0079]
本技术实施例中,可以通过n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵,即除n方外,每一方都可以挑选初始矩阵并修改,随后将修改结果作为ot的输入。
[0080]
具体的,可以利用各自的本地数据集合以及伪随机密钥函数确定对应的列信息,再基于该列信息修改对应的第二初始矩阵,得到前n-1个参与方中的各个参与方的参考第二初始矩阵,其原理与步骤201类似,即具体原理可以参照步骤201,在此不再赘述。
[0081]
可选的,上述步骤202,通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,可以包括如下步骤:
[0082]
21、通过第i个参与方选取对应的第二初始矩阵;所述第i个参与方为所述前n-1个参与方中的任一参与方;
[0083]
22、根据所述伪随机函数密钥和所述第i个参与方的本地数据集合确定所述第i个参与方的列信息;
[0084]
23、根据所述第i个参与方的列信息修改所述第i个参与方的第二初始矩阵,得到所述第i个参与方的参考第二初始矩阵。
[0085]
本技术实施例中,以第i个参与方为例,第i个参与方为前n-1个参与方中的任一参与方。具体的,可以通过第i个参与方选取对应的第二初始矩阵,再根据伪随机函数密钥和第i个参与方的本地数据集合确定第i个参与方的列信息,其中,本地数据集合可以视为一个矩阵,即可以通过伪随机函数密钥对该矩阵进行加密,从而,可以得到第i个参与方的列信息,再根据该列信息修改第二初始矩阵,得到参考第二初始矩阵。
[0086]
203、通过所述发起方获取随机矩阵,并通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果。
[0087]
具体实现中,随机矩阵可以理解为每个位置的元素随机选择,随机矩阵可以有多种方式生成,例如,可以采用blake2算法模拟以得到随机矩阵。
[0088]
本技术实施例中,可以通过发起方获取随机矩阵,并通过随机矩阵和参考第一初始矩阵进行异或运算,得到中间矩阵,将该随机矩阵和中间矩阵确定初始ot运算结果,也可以将两者进行异或运算,得到初始ot运算结果。
[0089]
可选的,上述步骤203,通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果,可以按照如下方式实施:
[0090]
通过所述发起方将所述随机矩阵和所述参考第一初始矩阵进行异或运算,得到所述初始ot运算结果。
[0091]
具体实现中,可以通过发起方将随机矩阵和参考第一初始矩阵进行异或运算,得到初始ot运算结果。
[0092]
具体的,假设d为第一初始矩阵,b为中间矩阵,a为随机矩阵,则b=a

d,{ai,bi}
i∈[w]


表示异或运算。
[0093]
204、通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果。
[0094]
本技术实施例中,发起方与各个参与方可以运行一种功能特殊的两方不经意伪随机函数(oblivious pseudo-random function,oprf)-隐私保护集合交集(private set intersection,psi)函数,简称为oprf-psi函数,每一方均可以运行ot,即不经意传输(oblivious transfer,ot)协议。
[0095]
本技术实施例中,通过使用多点oprf函数实现求交功能,安全性强,性能优,有助于提升用户体验。
[0096]
本技术实施例中,具体实现中,可以将ot运算结果作为输入的一部分,实现了信息的传递,保证了求交结果的正确性。
[0097]
205、通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息。
[0098]
本技术实施例中,除发起方之外,每一方的ot输入都要依赖前一方的ot结果,且最终求交判断信息是由第n个参与方将由其基于前一方的ot运算结果和其本地数据集合计算得到的初始求交判断信息发送给发起方,由发起方依赖该初始求交判断信息完成求交计算。
[0099]
可选的,在n为2时,上述步骤204,通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果,可以按照如下方式实施:
[0100]
通过第1个参与方根据所述初始ot运算结果和所述第1个参与方的参考第二初始矩阵确定所述第1个参与方的ot运算结果;
[0101]
则,上述步骤205,通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息,可以按照如下方式实施:
[0102]
通过第2个参与方根据所述第1个参与方的ot运算结果和所述第2个参与方的本地
数据集合确定所述初始求交判断信息。
[0103]
本技术实施例中,在n为2时,则n个参与方可以包括第1个参与方和第2个参与方,具体的,可以通过第1个参与方根据初始ot运算结果和第1个参与方的参考第二初始矩阵确定第1个参与方的ot运算结果,再通过第2个参与方根据第1个参与方的ot运算结果和第2个参与方的本地数据集合确定初始求交判断信息。
[0104]
本技术实施例中,可以通过将三方求交流程模块化,相邻的两方模拟两方求交流程,只在最后一步计算psi交集,既保证了交集外信息不泄露,也能完成求交任务,另外,通过对三方求交进行扩展,实现了任意多方隐私求交功能。
[0105]
206、通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息。
[0106]
本技术实施例中,第n个参与方则可以将初始求交判断信息发送给发起方,发起方接收该初始求交判断信息,再通过发起方根据发起方的本地数据集合和初始求交判断信息确定目标求交判断信息。
[0107]
实际应用中,隐私求交主要指的是在保证不泄露交集以外数据的前提下,多方求得本地数据的交集。目前隐私求交主要的使用场景有两方求交、三方求交、多方求交,其中多方求交通常可以通过三方求交扩展来实现。本技术实施例中主要考虑的是三方求交以及多方求交。
[0108]
具体实现中,本技术实施例中,采用了多点oprf的矩阵结构实现三方隐私求交,并基于此实现了从三方到多方的扩展。
[0109]
可选的,上述步骤206,通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息,可以按照如下方式实施:
[0110]
根据所述发起方的列信息和所述初始求交判断信息确定所述目标求交判断信息。
[0111]
具体实现中,发起方则可以根据发起方的列信息和初始求交判断信息确定目标求交判断信息,即可以通过列信息向量(v)从随机矩阵a中取某些位置的值,这些位置是由列信息向量(v)指定,再将这些值作为哈希函数h2的输入,计算结果为判断集合,将判断集合与初始求交判断信息进行求交,交集结果就是本地原始集合的交集结果。
[0112]
举例说明下,如图3所示,本技术实施例中,多方计算系统中参与运算的各方可以包括id 0方、id 1方和id 2方,输入数据集分别为y、x、z,具体步骤如下:
[0113]
1、id 0方:选择初始矩阵,获取伪随机密钥函数和计算本地数据集合的列信息,修改初始矩阵,具体为:选择初始矩阵d∈{1}m×w,d={d1||...||dw}、伪随机函数密钥k∈{0,1}
λ
,计算本地数据集合的列信息y∈y,v=fk(h1(y))、修改初始矩阵di[v[i]]=0,i∈[w];将k∈{0,1}
λ
发送给id 1方,id 1方将k∈{0,1}
λ
发送给id 2方;id 1方选择s1←
{0,1}w;
[0114]
2、id 0方作为ot发送方,运行ot,具体为:选择a

{0,1}m×w,令id 1方作为ot接收方,具体实现中,在ot协议中,ot发送方有两个输入a和b,ot接收方的输入为s,ot协议的作用是ot接收方根据s的每一个比特获得ot发送方的某个数据,例如,当s为0时,获取a,当s为1,获得b;
[0115]
3、id1方作为ot接收方,得到c,即:运行ot协议,获得cm×w;其中,cm×w是步骤2中ot接收方获取的结果;
[0116]
4、id1方:选择初始矩阵以及计算本地数据集合的列信息,并修改初始矩阵,得到
e,具体为:选择初始矩阵e∈{1}m×w,e={e1||...||ew},计算本地数据集合的列信息x∈x,v1=fk(h1(x))、令ei[v1[i]]=0,i∈[w];
[0117]
5、id1方作为ot发送方,运行ot,具体的:c∈{0,1}m×w,即通过c、e,得到f,具体的,可以令f=c

e,{ci,fi}
i∈[w]
;f作为步骤6中ot发送方的输入,具体的,ot发送方的输入为c和f;
[0118]
6、id2方作为ot接收方,运行ot,获得gm×w;gm×w为ot接收方获得的结果;
[0119]
7、id2方:计算本地列信息,计算psi判断集合,具体为:计算本地数据集合的列信息z∈z,v2=fk(h1(z)),计算psi判断集合信息ψ=h2(g1[v2[1]]||...||gw[v2[w]]),ψ={ψ}
z∈z

[0120]
8、id0方:计算本地列信息,计算psi判断集合,具体为:计算本地数据集合的列信息y∈y,v=fk(h1(y)),计算psi判断集合信息如果输出y,此时,y∈x∩y∩z。
[0121]
具体实现中,可以实施如下步骤:
[0122]
1、id 0方选择初始矩阵d∈{1}m×w和伪随机函数密钥k,随后根据本地集合计算出列信息v,根据列信息修改初始矩阵d。id 1方选择ot密钥s1;
[0123]
2、id 0方作为ot sender和id 1方运行ot协议,输入为矩阵{a,b},其中矩阵a为随机矩阵,矩阵
[0124]
3、id 1方作为ot receiver和id 0方运行ot协议,获得矩阵c;
[0125]
4、id 1方选择初始矩阵e∈{1}m×w,随后根据本地集合计算出列信息v1,根据列信息修改初始矩阵e;
[0126]
5、id 1方作为ot sender和id 2方运行ot协议,输入为矩阵{c,f},矩阵
[0127]
6、id 2方作为ot receiver和id 1方运行ot协议,获得矩阵g;
[0128]
7、id 2方计算本地列信息v2,随后计算psi判断集合ψ并发送给id 0方;
[0129]
8、id 0方计算本地列信息,随后计算psi判断集合根据输入交集。
[0130]
其中,步骤5将步骤3中ot的结果作为输入的一部分,实现了信息的传递,保证了求交结果的正确性。步骤7中计算psi判断集合并发送给id 0方,保证了只有id 0方能获得交集结果,其他参与方无法通过中间结果推断出交集信息;步骤8可以实现将三方求交模块化处理,提供了后续扩展的可能。
[0131]
本技术实施例中,ot密钥是为了完成ot协议必不可少的,ot协议分为两方:发送方和接收方。发送方:拥有数据,会根据接收方选择的密钥发送数据;接收方:选择密钥,随后接收发送方数据。
[0132]
本技术实施例中,通过列信息向量(v)从随机矩阵a中取某些位置的值,这些位置是由列信息向量(v)指定将这些值作为哈希函数h2的输入,计算结果为判断集合,将判断集合与第7步发送过来的集合进行求交,交集结果就是本地原始集合的交集结果。
[0133]
进一步的,如图4所示,图4的应用场景则为n方扩展应用场景,基于本技术实施例中的方案,可以比较容易的扩展到n方协议,通过观察协议流程可以得出:除n方外,每一方都要挑选初始矩阵并修改,随后将修改结果作为ot的输入。除id 0方外每一方的ot输入都
要依赖前一方的ot结果。最终求交判断信息是id n方发送给id 0方,由id 0方完成求交计算。
[0134]
具体实现中,如图4所示,多方计算系统中参与运算的各方可以包括id 0方、id 1方、

、id n-1方和id n方,对应的输入数据集分别为x0、x1、

x
n-1
和xn,可以实施如下步骤:
[0135]
s0、id 0方,挑选初始矩阵d0,并根据本地列信息修改初始矩阵,运行ot,输入a,
[0136]
s1、id 1方作为ot接收方,获得ot结果c1;挑选初始矩阵d1,并根据本地列信息修改初始矩阵;方运行ot,输入为c1,
[0137]
sn-1、id n-1方运行ot,获取ot结果c
n-1
,挑选初始矩阵d
n-1
,并根据本地列信息修改初始矩阵;运行ot,输入为c
n-1

[0138]
sn、id n方运行ot,获取ot结果cn,计算本地列信息,计算psi判断集合ψ,ψ={ψ},再将ψ发送给id 0方;
[0139]
sn+1、id 0方计算本地列信息,计算psi判断集合如果输出y,此时,y∈x0∩...∩x
n-1
∩xn。
[0140]
举例说明下,例如,有n家机构(1个发起方和n-1个参与方)想要利用手中的用户信息进行联合建模,第一步就是要统计n家机构的共有用户信息,因为用这些用户的特征进行建模训练才有意义,但是需要保护每家机构交集以外的用户信息,这是为了自身的数据安全,也是为了保护自身利益),这时联合建模的第一步就是要利用多方隐私求交技术找到交集,其中,机构可以包括以下至少一种:银行、供应商、运营商、经销商等等,在此不做限定。
[0141]
可以看出,本技术实施例中所描述的可扩展的多方隐私保护集合求交方法,应用于多方计算系统;多方计算系统包括发起方和n个参与方,n为大于1的整数;多方计算系统中的每一方均对应一个本地数据集合,通过发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵,通过n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到前n-1个参与方中的各个参与方的参考第二初始矩阵,通过发起方获取随机矩阵,并通过随机矩阵和参考第一初始矩阵确定初始ot运算结果,通过前n-1个参与方根据初始ot运算结果和前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果,通过第n个参与方根据第n-1个参与方的ot运算结果和第n个参与方的本地数据集合确定初始求交判断信息,通过发起方根据发起方的本地数据集合和初始求交判断信息确定目标求交判断信息,可以通过将n方求交流程模块化,相邻的两方模拟两方求交流程,只在最后一步计算psi交集,既保证了交集外信息不泄露,也能完成求交任务,另外,通过对三方求交进行扩展,实现了任意多方隐私求交功能,从而,能够提升多方求交运算的安全性。
[0142]
与上述实施例一致地,请参阅图5,图5是本技术实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,应用于多方计算系统;所述多方计算系统包括发起方和n个参与方,n为大于1的整数;所述多方计算系统中的每一方均对应一个本地数据集合,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,本技术实施例中,上述程序包括用于执行以下步骤的指令:
[0143]
通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵;
[0144]
通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到所述前n-1个参与方中的各个参与方的参考第二初始矩阵;
[0145]
通过所述发起方获取随机矩阵,并通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果;
[0146]
通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果;
[0147]
通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与方的本地数据集合确定初始求交判断信息;
[0148]
通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息。
[0149]
可选的,在所述通过所述发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵方面,上述程序包括用于执行以下步骤的指令:
[0150]
通过所述发起方获取所述第一初始矩阵和伪随机函数密钥;
[0151]
根据所述伪随机函数密钥和所述发起方的本地数据集合确定所述发起方的列信息;
[0152]
根据所述列信息修改所述第一初始矩阵,得到所述参考第一初始矩阵。
[0153]
可选的,上述还程序包括用于执行以下步骤的指令:
[0154]
通过所述发起方将所述伪随机函数密钥发送给所述n个参与方中的任一参与方。
[0155]
可选的,在所述通过所述发起方根据所述发起方的本地数据集合和所述初始求交判断信息确定目标求交判断信息方面,上述程序包括用于执行以下步骤的指令:
[0156]
根据所述发起方的列信息和所述初始求交判断信息确定所述目标求交判断信息。
[0157]
可选的,在所述通过所述n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵方面,上述程序包括用于执行以下步骤的指令:
[0158]
通过第i个参与方选取对应的第二初始矩阵;所述第i个参与方为所述前n-1个参与方中的任一参与方;
[0159]
根据所述伪随机函数密钥和所述第i个参与方的本地数据集合确定所述第i个参与方的列信息;
[0160]
根据所述第i个参与方的列信息修改所述第i个参与方的第二初始矩阵,得到所述第i个参与方的参考第二初始矩阵。
[0161]
可选的,在n为2时,在所述通过所述前n-1个参与方根据所述初始ot运算结果和所述前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果方面,上述程序包括用于执行以下步骤的指令:
[0162]
通过第1个参与方根据所述初始ot运算结果和所述第1个参与方的参考第二初始矩阵确定所述第1个参与方的ot运算结果;
[0163]
在所述通过第n个参与方根据所述第n-1个参与方的ot运算结果和所述第n个参与
方的本地数据集合确定初始求交判断信息方面,上述程序包括用于执行以下步骤的指令:
[0164]
通过第2个参与方根据所述第1个参与方的ot运算结果和所述第2个参与方的本地数据集合确定所述初始求交判断信息。
[0165]
可选的,在所述通过所述随机矩阵和所述参考第一初始矩阵确定初始ot运算结果方面,上述程序包括用于执行以下步骤的指令:
[0166]
通过所述发起方将所述随机矩阵和所述参考第一初始矩阵进行异或运算,得到所述初始ot运算结果。
[0167]
可以看出,本技术实施例中所描述的电子设备,应用于多方计算系统;多方计算系统包括发起方和n个参与方,n为大于1的整数;多方计算系统中的每一方均对应一个本地数据集合,通过发起方选取第一初始矩阵并利用其本地数据集合修改该第一初始矩阵,得到参考第一初始矩阵,通过n个参与方中的前n-1个参与方中的每一参与方选取第二初始矩阵并利用各自的本地数据集合修改对应的第二初始矩阵,得到前n-1个参与方中的各个参与方的参考第二初始矩阵,通过发起方获取随机矩阵,并通过随机矩阵和参考第一初始矩阵确定初始ot运算结果,通过前n-1个参与方根据初始ot运算结果和前n-1个参与方中的各个参与方的参考第二初始矩阵确定第n-1个参与方的ot运算结果,通过第n个参与方根据第n-1个参与方的ot运算结果和第n个参与方的本地数据集合确定初始求交判断信息,通过发起方根据发起方的本地数据集合和初始求交判断信息确定目标求交判断信息,可以通过将n方求交流程模块化,相邻的两方模拟两方求交流程,只在最后一步计算psi交集,既保证了交集外信息不泄露,也能完成求交任务,另外,通过对三方求交进行扩展,实现了任意多方隐私求交功能,从而,能够提升多方求交运算的安全性。
[0168]
本技术实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
[0169]
本技术实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
[0170]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0171]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0172]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,
可以是电性或其它的形式。
[0173]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0174]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0175]
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例上述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0176]
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-only memory,简称:rom)、随机存取器(英文:random access memory,简称:ram)、磁盘或光盘等。
[0177]
以上对本技术实施例进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1