一种隐私求交方法、装置和可读存储介质与流程

文档序号:31339480发布日期:2022-08-31 09:44阅读:200来源:国知局
一种隐私求交方法、装置和可读存储介质与流程

1.本发明涉及多方安全计算领域,尤其涉及一种隐私求交方法、装置和可读存储介质。


背景技术:

2.多方安全计算(multi-party computation,可以简称为mpc),指多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。例如,多方安全计算一个典型的应用是隐私求交(private set intersection,psi)。隐私求交可以理解为在基于隐私保护的前提下,确定多方之间的数据交集。
3.在参与隐私求交的数据方个数大于2时,多方的隐私求交过程可以通过两两隐私求交来实现。但是这样将会暴露两两求交的结果,导致暴露除多方隐私求交结果之外的信息,造成数据隐私泄露。


技术实现要素:

4.本发明实施例提供一种隐私求交方法、装置和可读存储介质,可以在保护数据隐私安全的前提下,支持大数据量的隐私求交计算。
5.第一方面,本发明实施例公开了一种隐私求交方法,所述方法用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述方法应用于数据方,所述方法包括:所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据;所述k个数据方中的每个数据方根据自身的映射数据,计算自身的标志向量;其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;所述k个数据方中的每个数据方对自身的标志向量进行加密得到密文向量,并将自身的密文向量发送至密文计算平台,以使所述密文计算平台将接收到的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
6.第二方面,本发明实施例公开了一种隐私求交方法,所述方法用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述方法应用于密文计算平台,所述方法包括:接收所述k个数据方中每个数据方发送的密文向量;其中,第i个数据方的密文向量为所述第i个数据方对自身的标志向量进行加密得到,所述第i个数据方的标志向量为第i个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,根据自身的映射数据计算得到,所述第i个数据方的标志向量中的每个元素对应
一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;将接收到的k个数据方的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
7.第三方面,本发明实施例公开了一种隐私求交装置,所述装置用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述装置应用于所述k个数据方中的每个数据方,所述装置包括:映射转换模块,用于对数据方自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据;标志计算模块,用于根据数据方自身的映射数据,计算数据方自身的标志向量;其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;加密发送模块,用于对数据方自身的标志向量进行加密得到密文向量,并将数据方自身的密文向量发送至密文计算平台,以使所述密文计算平台将接收到的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
8.第四方面,本发明实施例公开了一种隐私求交装置,所述装置用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述装置应用于密文计算平台,所述装置包括:密文向量接收模块,用于接收所述k个数据方中每个数据方发送的密文向量;其中,第i个数据方的密文向量为所述第i个数据方对自身的标志向量进行加密得到,所述第i个数据方的标志向量为第i个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,根据自身的映射数据计算得到,所述第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;隐私求交模块,用于将接收到的k个数据方的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
9.第五方面,本发明实施例公开了一种隐私求交系统,所述系统用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述系统包括密文计算平台和k个数据方,其中,所述k个数据方中的每个数据方,用于对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,根据自身的映射数据,计算自身的标志向量,对自身的标志向量进行加密得到密文向量发送至密文计算平台;其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号
是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;所述密文计算平台,用于将接收到的k个数据方的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
10.第六方面,本发明实施例公开了一种用于隐私求交的装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的隐私求交方法的指令。
11.第七方面,本发明实施例公开了一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的隐私求交方法。
12.本发明实施例包括以下优点:本发明实施例提供了一种隐私求交方法,用于对k个数据方持有的数据集合进行隐私求交。所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,k个数据方中的每个数据方根据自身的映射数据,计算自身的标志向量,并将自身的标志向量加密为密文向量后发送至密文计算平台计算求交结果向量。本发明实施例在对k个数据方持有的数据集合进行隐私求交时,基于k个数据方的密文向量进行计算,而不用比较原始数据,在隐私求交的数据量较大的情况下,不需要将k个数据方的所有密文数据加载到密文计算平台,可以减少数据传输量和计算量;k个数据方发送给密文计算平台的是各自计算得到的密文向量,不会暴露原始数据的相关信息;k个数据方也不需要进行两两求交,可以避免暴露除多方隐私求交结果之外的其他信息。此外,在映射转换方式确定的情况下,密文计算平台的计算量是一定的,与隐私求交的数据量无关,因此本发明实施例可以在保证计算效率的前提下,支持大数据量下的隐私求交计算。再者,本发明实施例提供的隐私求交方法,只有查询方可以获取最终的隐私求交结果,被查询的数据方无法获取查询方的信息,也无法获得最终的隐私求交结果以及除隐私求交结果之外的其他信息,可以保护数据隐私安全。
附图说明
13.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
14.图1是本发明的一种隐私求交方法实施例的步骤流程图;图2是本发明的另一种隐私求交方法实施例的步骤流程图;图3是本发明的一种隐私求交装置实施例的结构框图;图4是本发明的另一种隐私求交装置实施例的结构框图;图5是本发明的一种隐私求交系统实施例的结构框图;图6是本发明的一种用于隐私求交的装置800的框图;
图7是本发明的一些实施例中服务器的结构示意图。
具体实施方式
15.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
17.参照图1,示出了本发明的一种隐私求交方法实施例的步骤流程图,所述方法可用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述方法应用于数据方,所述方法可以包括如下步骤:步骤101、所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据;步骤102、所述k个数据方中的每个数据方根据自身的映射数据,计算自身的标志向量;其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;步骤103、所述k个数据方中的每个数据方对自身的标志向量进行加密得到密文向量,并将自身的密文向量发送至密文计算平台,以使所述密文计算平台将接收到的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
18.所述密文计算平台是一种保护数据隐私安全的计算平台。本发明实施例对所述密文计算平台支持的加密协议不做限制。示例性地,所述密文计算平台支持可以支持同态加密协议、秘密分享协议等。
19.本发明实施例提供了一种隐私求交方法,通过k个数据方与密文计算平台之间的交互,实现对k个数据方持有的数据集合进行隐私求交,得到k个数据方的数据集合的交集,并且不会暴露除隐私求交结果之外的其他信息。k为大于或等于2的整数,为便于描述,本发明实施例中主要以两个数据方(k=2)为例进行说明,三个以上数据方(k>2)的场景相互参照即可。
20.本发明实施例提供的隐私求交方法可应用于大数据共享场景,通过对多个数据方各自持有的数据集合进行隐私求交,可以在避免敏感数据存在被泄露风险的基础上,实现多方数据的融合,进而可以对多方产生的业务数据执行汇集、处理和分析等操作,解决信息
孤岛,提高多个网络服务中的海量级业务数据的应用价值。
21.本发明实施例提供的隐私求交方法在对k个数据方持有的数据集合计算交集时,首先,k个数据方在本地对各自持有的数据集合中的原始数据进行映射转换,得到映射数据,然后基于k个数据方的映射数据计算交集。因此,在本发明实施例中,将k个数据方各自持有的数据集合中的数据称为原始数据,将对原始数据进行映射转换后得到的数据称为映射数据。
22.在具体实施中,所述原始数据可能具有不同的数据类型和不同的长度,例如,有的原始数据是数字类型的,有的原始数据是字符串类型的,等等。在本发明实施例中,所述映射转换可以包括两个阶段,第一阶段是对各原始数据进行加密,转换为统一类型和统一长度的中间数据。第二阶段是对中间数据进行截取及映射,得到映射数据。由于原始数据的大小以及加密算法的影响,对原始数据进行加密后得到的中间数据可能具有较长的长度,将影响隐私求交的可行性和计算效率,因此,本发明实施例截取中间数据的一部分进行映射,得到映射数据,利用映射数据进行隐私求交,在保证隐私求交结果准确性的基础上,可以减小计算量,提高计算效率。
23.本发明实施例在对多个数据方持有的数据集合进行隐私求交时,不用比较原始数据,只用对映射数据进行比较即可得到交集。在隐私求交的数据量较大的情况下,不需要将多个数据方的所有数据加载到密文计算平台计算交集,也不需要进行两两求交,可以减少数据传输量和计算量,还可以避免暴露除多方隐私求交结果之外的其他信息。
24.在本发明的一种可选实施例中,所述数据集合中的原始数据可以为索引字符串,所述索引字符串可以包括但不限于用户标识、身份证标识中的至少一种。
25.所述索引字符串可以为长字符串,在多方安全计算中,以字符串作为索引进行隐私求交,得到隐私保护的集合交集,可以在不泄露数据方原始数据的情况下得到多方数据集合的交集。例如,在对用户信息的隐私求交场景中,用作匹配的索引字符串可以是用户标识(如用户id)、身份证标识(如身份证号)之类的长字符串。进一步地,所述k个数据方各自持有的数据集合中的原始数据可以为密文。
26.首先,所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据。本发明实施例对映射转换的方式不做限制。
27.在本发明的一种可选实施例中,第i个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据的步骤,可以包括:步骤s11、所述第i个数据方将其持有的数据集合中的各原始数据加密转换为第一长度的中间数据;步骤s12、对于每个原始数据对应的中间数据,从第一位开始截取第二长度转换为十进制,得到每个原始数据对应的映射数据。
28.步骤s11为映射转换的第一阶段,k个数据方分别对各自持有的数据集合中的各原始数据进行加密,转换为统一类型和统一长度的中间数据。本发明实施例对加密算法不做限制,所述第一长度根据加密算法不同而不同。需要说明的是,k个数据方将各自持有的数据集合中的各原始数据加密转换为第一长度的中间数据,采用的是相同的加密算法,也即,k个数据方采用相同的映射转换方式对各自持有的数据集合中的各原始数据进行映射转换。
29.在本发明的一种可选实施例中,所述第i个数据方将其持有的数据集合中的各原始数据加密转换为第一长度的中间数据,可以包括:所述第i个数据方将其持有的数据集合中的各原始数据进行md5(md5 message-digest algorithm,md5信息摘要算法)加密转换成16进制的中间数据,所述第一长度为32位。
30.一个示例中,假设需要对数据方a持有的数据集合和数据方b持有的数据集合进行隐私求交。数据方a持有的数据集合中的原始数据包括13841284064和13841284060。数据方b持有的数据集合中的原始数据包括13841284064和13841284063。数据方a和数据方b持有的数据集合中的原始数据可以为密文,为便于描述,本发明实施例中以明文示出。
31.数据方a和数据方b分别将自身持有的数据集合中的各原始数据进行md5加密转换成16进制的中间数据,该中间数据的长度为32位。
32.参照表1,示出了数据方a的数据集合中各原始数据转换为中间数据的具体示意,以及参照表2,示出了数据方b的数据集合中各原始数据转换为中间数据的具体示意。
33.表1原始数据中间数据(md5值)13841284064526576766e53f450504881eae222525c138412840602920c08bb3171a9c40c1ddfb2f781738表2原始数据中间数据(md5值)13841284064526576766e53f450504881eae222525c138412840638d85501d5c783bc38412588941f76788步骤s12为映射转换的第二阶段。由于中间数据(md5值)的长度较长,导致需要生成的标志向量较大,进而影响计算效率,因此,第二阶段对中间数据进行截取及映射,得到映射数据。
34.具体地,对于每个原始数据对应的中间数据,从第一位开始截取第二长度转换为十进制,得到每个原始数据对应的映射数据。
35.本发明实施例对所述第二长度不做限制。示例性的,第二长度可以为5位,当然,第二长度也可以为6位或7位等。第二长度可以根据中间数据的实际长度以及密文计算平台的计算资源情况所确定,可以选择既能保证隐私求交结果的正确性又能兼顾计算效率的第二长度。本发明实施例中以第二长度为5位为例进行说明。
36.在上述示例中,数据方a在本地将表1所示的各中间数据,分别从第一位开始截取第二长度转换为十进制,得到每个原始数据对应的映射数据。
37.例如,对于数据方a的第一条中间数据,从第一位开始截取5位为52657,将52657转换为十进制,得到映射数据为337495。对于数据方a的第二条中间数据,从第一位开始截取5位为2920c,将2920c转换为十进制,得到映射数据为168460。
38.同样的,对于数据方b的第一条中间数据,从第一位开始截取5位为52657,将52657转换为十进制,得到映射数据为337495。对于数据方b的第二条中间数据,从第一位开始截取5位为8d855,将8d855转换为十进制,得到映射数据为579669。
39.参照表3,示出了数据方a的数据集合中各原始数据转换为映射数据的具体示意,以及参照表4,示出了数据方b的数据集合中各原始数据转换为映射数据的具体示意。
40.表3原始数据中间数据(md5值)映射数据13841284064526576766e53f450504881eae222525c337495138412840602920c08bb3171a9c40c1ddfb2f781738168460表4原始数据中间数据(md5值)映射数据13841284064526576766e53f450504881eae222525c337495138412840638d85501d5c783bc38412588941f76788579669所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据之后,所述k个数据方中的每个数据方根据自身的映射数据,计算自身的标志向量。其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k。
41.所述标志向量可以为一个数组,对于第i个数据方,其计算得到的标志向量用于标识第i个数据方的每个映射数据对应的位置。本发明实施例对k个数据方中的每个数据方的标志向量中相同位置的元素进行比较,即可得到k个数据方的映射数据的比较结果,从而可以得到原始数据的交集。
42.在本发明的一种可选实施例中,所述第i个数据方的标志向量中的每个元素的值为第一数值或者第二数值,第一数值表示该元素对应的映射符号不是所述第i个数据方持有的映射数据,第二数值表示该元素对应的映射符号是所述第i个数据方持有的某个映射数据。
43.本发明实施例对所述第一数值和所述第二数值的具体数值不做限制。示例性地,所述第一数值可以为0,所述第二数值可以为1。当然,所述第一数值可以为1,所述第二数值可以为0。
44.在本发明的一种可选实施例中,第i个数据方根据自身的映射数据,计算自身的标志向量的步骤,可以包括:步骤s21、设置初始向量,所述初始向量中的各元素对应的映射符号为1~m,所述初始向量中各元素的值均为0,m为所述初始向量的长度;步骤s22、对于所述初始向量中各元素对应的映射符号,将其中与所述映射数据相匹配的映射符号对应的元素的值更新为1,得到第i个数据方的标志向量。
45.在本发明实施例中,初始向量的长度m由中间数据的加密算法以及第二长度所确定。m表示中间数据可能的最大取值。具体地,m=ab,其中,a为中间数据对应的进制数,b为第二长度。示例性地,在中间数据为对原始数据进行md5加密转换为16进制,以及第二长度为5位的情况下,初始向量的长度m=165,a=16,b=5。
46.可以理解的是,在具体实施中,对原始数据进行加密转换的算法不限于md5算法,如还可以包括sha256算法等。当然,加密转换得到的中间数据也不限于16进制,还可以为64进制等。在中间数据对应的进制数为64进制,第二长度为6的情况下,初始向量的长度m=646,a=64,b=6。
47.在上述示例中,数据方a可以定义一个长度为m=165=1048576的全零数组,本发明实施例将该全零数组称为数据方a的初始向量。该初始向量包含1048576个元素,各元素分别对应的映射符号为1~1048576。也即,在该初始向量中,第一个元素对应的映射符号为1,第二个元素对应的映射符号为2,第三个元素对应的映射符号为3,以此类推,第1048576个元素对应的映射符号为1048576。全零数组指数组中各元素的值均为0。对于数据方a的初始向量,将其中与映射数据相匹配的映射符号对应的元素的值更新为1,得到数据方a的标志向量。数据方a的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为数据方a持有的某个映射数据,数据方a的标志向量中包括数据方a持有的所有映射数据。
48.在计算机程序中,数组中元素的索引值是从0开始计数的,因此,对于数据方a的初始向量,可以在该初始向量中确定与数据方a的映射数据相匹配的映射符号,将该映射符号减1为索引值对应的元素的值更新为1。例如,在上述示例中,对于数据方a的初始向量,其中,映射符号168460与数据方a的映射数据168460相匹配,因此,将该初始向量中168460-1=168459为索引值对应的元素的值更新为1。映射符号337495与数据方a的映射数据337495相匹配,因此,将该初始向量中337495-1=337494为索引值对应的元素的值更新为1。其它元素的值仍为0,得到数据方a的标志向量,如记为flag_a。
49.同样的方法,数据方b计算得到其标志向量,如记为flag_b。
50.可选地,在本发明实施例中,标志向量中每个元素对应的映射符号可以为各元素对应的索引值(index)加1。
51.在本发明实施例中,对于某个标志向量,如flag_a,该标志向量中包含165个元素,每个元素对应一个映射符号,该映射符号为该元素在该标志向量中的索引值加1。由此,第i个数据方的标志向量中各元素的元素值与映射符号之间的对应关系,可以标识第i个数据方的每个映射数据在该标志向量中的位置。
52.参照表5,示出了数据方a的标志向量的具体示意,以及参照表6,示出了数据方b的标志向量的具体示意。
53.表5indexflag_a0010
······
1684591
······
3374941
······
10485750表6indexflag_b0010
······
3374941
······
5796681
······
10485750如表5所示,索引值为168459的元素的值为1,索引值168459对应的映射符号为168459+1=168460,映射符号168460为数据方a持有的映射数据。索引值为337494的元素的值为1,索引值337494对应的映射符号为337494+1=337495,映射符号337495为数据方a持有的映射数据。表5中其他元素的值均为0,表示对应的映射符号不在数据方a持有的映射数据中。
54.如表6所示,索引值为337494的元素的值为1,索引值337494对应的映射符号为337494+1=337495,映射符号337495为数据方b持有的映射数据。索引值为579668的元素的值为1,索引值579668对应的映射符号为579668+1=579669,映射符号579669为数据方b持有的映射数据。表6中其他元素的值均为0,表示对应的映射符号不在数据方b持有的映射数据中。
55.接下来,k个数据方中的每个数据方对自身的标志向量进行加密得到密文向量,并将自身的密文向量发送至密文计算平台。所述密文计算平台将接收到的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
56.在本发明实施例中,k个数据方按照相同的映射转换方式对各自数据集合中的原始数据进行映射转换,因此,k个数据方得到的密文向量的长度相同,密文计算平台对k个数据方的密文向量按位执行预设密文运算,也即对k个密文向量中相同位置的元素执行预设密文运算,得到的求交结果向量与所述密文向量的长度相同。
57.需要说明的是,在具体实施中,所述数据集合、标志向量、密文向量、以及求交结果向量,可以为数组类型。
58.本发明实施例对所述预设密文运算的类型不做限制。在本发明的一种可选实施例中,所述预设密文运算可以包括密文加法运算或者密文乘法运算。
59.进一步地,在所述预设密文运算为密文乘法运算时,所述求交结果向量中值为1的元素表示该元素对应的映射符号为所述k个数据方所共有的映射数据,所述求交结果向量中值为0的元素表示该元素对应的映射符号不是所述k个数据方所共有的映射数据。在所述预设密文运算为密文加法运算时,所述求交结果向量中值为2的元素表示该元素对应的映射符号为所述k个数据方所共有的映射数据,所述求交结果向量中值为0的元素表示该元素对应的映射符号不是所述k个数据方所共有的映射数据。
60.以所述预设密文运算为密文乘法运算为例,在上述示例中,密文计算平台将数据方a的密文向量和数据方b的密文向量执行密文乘法运算,得到求交结果向量。如将求交结果向量记为集合res,则该res中值为1的元素表示该元素对应的映射符号为双方(数据方a和数据方b)共有的映射数据,该res中值为0的元素表示该元素对应的映射符号并非双方共有的映射数据。
61.以所述预设密文运算为密文加法运算为例,在上述示例中,密文计算平台将数据方a的密文向量和数据方b的密文向量执行密文加法运算,得到求交结果向量。如将求交结果向量记为集合res,则该res中值为2的元素表示该元素对应的映射符号为双方(数据方a和数据方b)共有的映射数据,该res中值为0的元素表示该元素对应的映射符号并非双方共有的映射数据。
62.本发明实施例中以密文乘法运算为例。参照表7,示出了数据方a和数据方b的求交结果向量的具体示意。
63.表7indexres0010
······
3374941
······
10485750如表7所示,求交结果向量res中索引值为337494的元素的值为1,索引值337494对应的映射符号为337494+1=337495,也即,映射符号337495为数据方a和数据方b双方共有的映射数据,根据表3所示的对应关系可知,映射数据337495对应的原始数据为13841284064,也即,数据方a和数据方b隐私求交的结果为13841284064。
64.在本发明的一种可选实施例中,所述方法还可以包括:所述k个数据方中的查询方接收所述密文计算平台发送的所述求交结果向量,并根据所述求交结果向量获取隐私求交结果。
65.以密文乘法运算为例,查询方接收到求交结果向量之后,可以确定求交结果向量中值为1的元素对应的映射数据,再恢复得到原始数据,即可获得隐私求交结果。
66.需要说明的是,本发明实施例对标志向量进行加密采用的加密算法不做限制。例如,可以采用秘密分享、同态加密等任意加密算法。
67.在采用秘密分享加密算法时,k个数据方中的每个数据方计算得到的标志向量中的各元素可以为明文,例如,flag_a和flag_b中的0和1是明文。每个数据方对自身的标志向量进行加密得到密文向量可以为,每个数据方对自身的标志向量中的各元素进行秘密分享,也即,每个数据方的密文向量中的各元素为标志向量中的各元素的秘密分享分片。
68.密文计算平台将接收到的k个密文向量中相同位置的元素执行预设密文运算时,是对经过秘密分享后的秘密分享分片进行计算。例如,在上述示例中,密文计算平台接收到flag_a和flag_b后,flag_a和flag_b中的各元素为秘密分享分片,密文计算平台对flag_a和flag_b中相同位置的元素执行密文乘法运算,是对经过秘密分享后的秘密分享分片执行密文乘法运算。
69.具体地,数据方a在本地计算得到明文的flag_a,将flag_a进行秘密分享后,发送至密文计算平台。对flag_a进行秘密分享,就是对flag_a中的每个元素进行秘密分享。数据方b在本地计算得到明文的flag_b,将flag_b进行秘密分享后,发送至密文计算平台。密文计算平台接收到的是flag_a中每个元素的秘密分享分片,以及flag_b中每个元素的秘密分
享分片,在计算flag_a和flag_b的乘积时,是利用flag_a和flag_b中相同位置的元素的秘密分享分片计算乘积,得到的求交结果向量res中的各元素也是秘密分享分片,查询方获得求交结果向量res的所有秘密分享分片,可以恢复得到明文。
70.本发明实施例可以使用秘密分享方式实现多方隐私求交,保护数据的隐私安全。此外,在k>2时,本发明实施例的多方隐私求交无需两两求交,不会暴露除多方隐私求交结果之外的信息,并且只有查询方可以获得最终的交集。
71.在具体实施中,在采用md5加密算法对各原始数据进行加密后得到的各中间数据(md5值)是32位的数,前5位可能会出现相同的情况,此时将导致计算得到的求交结果并不是真正的求交结果。例如,假设数据方c持有的数据集合中包含原始数据data1和data2,对data1进行md5加密后得到的中间数据为01234567890123456789012345678901,对data2进行md5加密后得到的中间数据为01234567890123456789012345678902。假设数据方d的数据集合中包含原始数据data1,对data1进行md5加密后得到的中间数据为01234567890123456789012345678901。对于每个原始数据对应的中间数据,从第一位开始截取第二长度(假设第二长度为5位)转换为十进制,得到每个原始数据对应的映射数据,则data1和data2对应的映射数据均为4660。数据方c计算得到的标志向量为flag_c=[0,0,

,1,

,0](索引值为4660-1=4659的元素的值为1)。数据方d计算得到的标志向量为flag_d=[0,0,

,1,

,0](索引值为4660-1=4659的元素的值为1)。数据方c和数据方d分别对各自的标志向量进行加密(如进行秘密分享)后得到密文向量,发送至密文计算平台。密文计算平台对flag_c和flag_d按位执行密文乘法运算,得到求交结果向量res=[0,0,

,1,

,0](索引值为4660-1=4659的元素的值为1)。根据该求交结果向量可以确定映射符号4660(4659+1=4660)是数据方c和数据方d共有的映射数据,恢复原始数据后,将映射数据为4660的原始数据都认为是交集。假设数据方c是查询方,密文计算平台将求交结果向量发送至数据方c,数据方c对该求交结果向量进行解密后可以确定数据方c的data1和data2均是交集,但是,数据方c的data2实际上不是真正的交集。
[0072]
可以看出,在第二长度小于中间数据的长度时,求交结果向量存在假阳性的可能性,也即,存在上述求交结果向量中包含并不是真正交集的元素的可能性。
[0073]
在本发明的一种可选实施例中,所述方法还可以包括:步骤s31、所述k个数据方中的查询方接收所述密文计算平台发送的所述求交结果向量;步骤s32、所述查询方根据所述求交结果向量,在所述查询方持有的数据集合中确定下一轮迭代的中间数据,其余数据方根据各自持有的数据集合中的所有数据确定下一轮迭代的中间数据;步骤s33、第i个数据方将自身得到的下一轮迭代的中间数据,从第二位开始截取第二长度转换为十进制,得到下一轮迭代的映射数据;步骤s34、所述第i个数据方根据自身得到的下一轮迭代的映射数据,确定下一轮迭代的标志向量;步骤s35、所述第i个数据方将自身得到的下一轮迭代的标志向量进行加密得到下一轮迭代的密文向量,并发送至所述密文计算平台执行下一轮迭代操作,直至执行完成预设次数的迭代操作。
[0074]
为减少求交结果向量出现假阳性的概率,提高隐私求交结果的准确性,本发明实施例的隐私求交方法包括预设次数的迭代操作。
[0075]
在第一轮迭代计算(如上述步骤101至103)完成后,所述k个数据方中的查询方接收所述密文计算平台发送的第一轮迭代的求交结果向量,查询方根据第一轮迭代的求交结果向量,在自身持有的数据集合中确定第二轮迭代的中间数据。查询方可以是k个数据方中的任一数据方。具体地,查询方可以获取第一轮迭代的求交结果向量中值为1的元素,并确定这些值为1的元素对应的中间数据,将这些中间数据作为第二轮迭代的中间数据,除查询方之外的其余数据方将各自持有的数据集合中的所有原始数据对应的中间数据作为下一轮迭代的中间数据。对于每个第二轮迭代的中间数据,从第二位开始截取第二长度转换为十进制,得到第二轮迭代的映射数据。根据所述第二轮迭代的中间数据和所述第二轮迭代的映射数据,确定第二轮迭代的密文向量。每个数据方将自身得到的第二轮迭代的密文向量发送至所述密文计算平台执行第二轮的预设密文运算,得到第二轮迭代的求交结果向量。接下来,根据第二轮迭代的求交结果向量重复执行上述迭代操作步骤,直至完成预设次数的迭代操作,此时可以基本确定最后一轮迭代的求交结果向量为真正的求交结果向量。
[0076]
为了提升数据的隐私安全性,本发明实施例中每一轮迭代的求交结果向量只发送给查询方,查询方根据上一轮迭代的求交结果向量对自身数据集合中的数据进行筛选,将求交结果向量中元素值为1的中间数据作为下一轮迭代的中间数据。其它数据方无法获得求交结果向量,仍以自身数据集合中的全部数据参与下一轮迭代计算。在每一轮迭代计算过程中,只有查询方可以获取求交结果向量,被查询的数据方(k个数据方中除查询方之外的其余数据方)无法获取查询方的信息,也无法获得每一轮迭代的求交结果向量,可以保护数据隐私安全。
[0077]
在具体实施中,可以通过增加中间数据的第一长度(如将原始数据加密转换为64位的中间数据),和/或,通过增加第二长度,和/或,通过增加迭代次数来减少出现假阳性的概率。
[0078]
在增加第一长度后,迭代次数也会相应增加,每一次迭代出现假阳性的概率都会降低。比如,如果中间数据只有32位,选取第二长度为5位进行一次迭代的话,最后一次迭代只能选28-32位,如果中间数据的长度为64位,那么最后一次迭代可以选择60-64位,这样迭代次数可以增加很多,进而可以降低假阳性的概率。
[0079]
对原始数据进行md5加密后,得到的是一个16进制32位的字符串,每5位(16进制取5位的所有可能性为2的20次方)拆分成1列。考虑某轮迭代中某个数出现假阳性的概率,假设对方有n条数据,在该轮中某个数出现假阳性(0变成1)的概率p(n)为:
ꢀꢀꢀꢀꢀ
(1)这是因为该数与任意数发生碰撞的概率均为,所以与n个数中任意一个数碰撞的概率为。
[0080]
可选地,在隐私求交的数据量不大于0.5*165时,可以设置第二长度为5位,迭代操作的预设次数为7次,通常可以避免出现假阳性,得到真正的求交结果向量。在隐私求交的数据量大于0.5*165时,可以设置第二长度为6位,迭代操作的预设次数为7次,通常可以避
免出现假阳性,得到真正的求交结果向量。
[0081]
在经过预设次数的迭代操作后,密文计算平台可以将最后一轮迭代得到求交结果向量发送至查询方,查询方对求交结果向量进行解密后可以得到隐私求交的结果,确定交集。只有查询方可以获取求交结果向量,被查询的数据方无法获取查询方的信息,也得不到最终的隐私求交结果以及除隐私求交结果之外的其他信息,可以保护数据隐私安全。此外,在映射转换方式确定的情况下,本发明实施例中的密文计算平台的计算量是一定的。例如,在对k个数据方的数据集合进行隐私求交时,若映射转换方式为将原始数据加密转换为16进制的中间数据,并且选择第二长度为5位,则密文计算平台的计算量为k个长度为165的数组之间的密文加法运算或密文乘法运算的计算量,与k个数据方的数据量没有关系,因此本发明实施例可以在保证计算效率的前提下,支持大数据量下的隐私求交计算。
[0082]
参照图2,示出了本发明的另一种隐私求交方法实施例的步骤流程图,所述方法可用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述方法应用于密文计算平台,所述方法可以包括如下步骤:步骤201、接收所述k个数据方中每个数据方发送的密文向量;其中,第i个数据方的密文向量为所述第i个数据方对自身的标志向量进行加密得到,所述第i个数据方的标志向量为第i个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,根据自身的映射数据计算得到,所述第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;步骤202、将接收到的k个数据方的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
[0083]
本发明提供的隐私求交方法可应用于密文计算平台,本发明实施例对所述密文计算平台采用的加密协议不做限制,例如,所述密文计算平台可以采用秘密分享、半同态、不经意传输等加密协议实现安全计算。
[0084]
需要说明的是,对于密文计算平台侧的执行过程,在前述实施例中已详细说明,此处不再进行赘述,相互参照即可。
[0085]
可选地,所述第i个数据方的标志向量中的每个元素的值为第一数值或者第二数值,第一数值表示该元素对应的映射符号不是所述第i个数据方持有的映射数据,第二数值表示该元素对应的映射符号是所述第i个数据方持有的某个映射数据。
[0086]
可选地,所述得到求交结果向量之后,所述方法还可以包括:向所述k个数据方中的查询方发送所述求交结果向量,以使所述查询方根据所述求交结果向量,在所述查询方持有的数据集合中确定下一轮迭代的中间数据,其余数据方根据各自持有的数据集合中的所有数据确定下一轮迭代的中间数据;接收所述k个数据方中每个数据方发送的下一轮迭代的密文向量,所述下一轮迭代的密文向量根据所述下一轮迭代的中间数据计算得到;根据接收到的k个下一轮迭代的密文向量,计算下一轮迭代的求交结果向量,直至执行完成预设次数的迭代操作。
[0087]
可选地,所述预设密文运算包括密文加法运算或者密文乘法运算。
[0088]
本发明实施例提供了一种隐私求交方法,用于对k个数据方持有的数据集合进行隐私求交。所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,k个数据方中的每个数据方根据自身的映射数据,计算自身的标志向量,并将自身的标志向量加密为密文向量后发送至密文计算平台计算求交结果向量。本发明实施例在对k个数据方持有的数据集合进行隐私求交时,基于k个数据方的密文向量进行计算,而不用比较原始数据,在隐私求交的数据量较大的情况下,不需要将k个数据方的所有密文数据加载到密文计算平台,可以减少数据传输量和计算量;k个数据方发送给密文计算平台的是各自计算得到的密文向量,不会暴露原始数据的相关信息;k个数据方也不需要进行两两求交,可以避免暴露除多方隐私求交结果之外的其他信息。此外,本发明实施例将k个数据方的数据集合的隐私求交过程转换为密文计算平台对k个数据方的k个标志向量之间的密文计算。在映射转换方式确定的情况下,密文计算平台的计算量是一定的,与隐私求交的数据量无关,因此本发明实施例可以在保证计算效率的前提下,支持大数据量下的隐私求交计算。再者,本发明实施例提供的隐私求交方法,只有查询方可以获取最终的隐私求交结果,被查询的数据方无法获取查询方的信息,也无法获得最终的隐私求交结果以及除隐私求交结果之外的其他信息,可以保护数据隐私安全。
[0089]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0090]
参照图3,示出了本发明的一种隐私求交装置实施例的结构框图,所述装置用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述装置应用于所述k个数据方中的每个数据方,所述装置可以包括:映射转换模块301,用于对数据方自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据;标志计算模块302,用于根据数据方自身的映射数据,计算数据方自身的标志向量;其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;加密发送模块303,用于对数据方自身的标志向量进行加密得到密文向量,并将数据方自身的密文向量发送至密文计算平台,以使所述密文计算平台将接收到的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
[0091]
可选地,所述第i个数据方的标志向量中的每个元素的值为第一数值或者第二数值,第一数值表示该元素对应的映射符号不是所述第i个数据方持有的映射数据,第二数值表示该元素对应的映射符号是所述第i个数据方持有的某个映射数据。
[0092]
可选地,所述映射转换模块,包括:中间转换子模块,用于将数据方持有的数据集合中的各原始数据加密转换为第一
长度的中间数据;映射子模块,用于对于每个原始数据对应的中间数据,从第一位开始截取第二长度转换为十进制,得到每个原始数据对应的映射数据。
[0093]
可选地,所述装置还包括:结果接收模块,用于在数据方为所述k个数据方中的查询方时,接收所述密文计算平台发送的所述求交结果向量;下一轮中间数据确定模块,用于在数据方为查询方时,根据所述求交结果向量,在所述查询方持有的数据集合中确定下一轮迭代的中间数据;或者,用于在数据方为非查询方时,根据数据方持有的数据集合中的所有数据确定下一轮迭代的中间数据;下一轮映射数据确定模块,用于将自身得到的下一轮迭代的中间数据,从第二位开始截取第二长度转换为十进制,得到下一轮迭代的映射数据;下一轮标志计算模块,用于根据自身得到的下一轮迭代的映射数据,确定下一轮迭代的标志向量;下一轮加密发送模块,用于将自身得到的下一轮迭代的标志向量进行加密得到下一轮迭代的密文向量,并发送至所述密文计算平台执行下一轮迭代操作,直至执行完成预设次数的迭代操作。
[0094]
可选地,所述中间转换子模块,具体用于将数据方持有的数据集合中的各原始数据进行md5加密转换成16进制32位的中间数据。
[0095]
可选地,所述标志计算模块,包括:初始设置子模块,用于设置初始向量,所述初始向量中的各元素对应的映射符号为1~m,所述初始向量中各元素的值均为0,m为所述初始向量的长度;数值更新子模块,用于对于所述初始向量中各元素对应的映射符号,将其中与所述映射数据相匹配的映射符号对应的元素的值更新为1,得到第i个数据方的标志向量。
[0096]
可选地,所述预设密文运算包括密文加法运算或者密文乘法运算。
[0097]
参照图4,示出了本发明的一种隐私求交装置实施例的结构框图,所述装置用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述装置应用于密文计算平台,所述装置可以包括:密文向量接收模块401,用于接收所述k个数据方中每个数据方发送的密文向量;其中,第i个数据方的密文向量为所述第i个数据方对自身的标志向量进行加密得到,所述第i个数据方的标志向量为第i个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,根据自身的映射数据计算得到,所述第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;隐私求交模块402,用于将接收到的k个数据方的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
[0098]
可选地,所述第i个数据方的标志向量中的每个元素的值为第一数值或者第二数值,第一数值表示该元素对应的映射符号不是所述第i个数据方持有的映射数据,第二数值
表示该元素对应的映射符号是所述第i个数据方持有的某个映射数据。
[0099]
可选地,所述装置还包括:结果发送模块,用于向所述k个数据方中的查询方发送所述求交结果向量,以使所述查询方根据所述求交结果向量,在所述查询方持有的数据集合中确定下一轮迭代的中间数据,其余数据方根据各自持有的数据集合中的所有数据确定下一轮迭代的中间数据;下一轮数据接收模块,用于接收所述k个数据方中每个数据方发送的下一轮迭代的密文向量,所述下一轮迭代的密文向量根据所述下一轮迭代的中间数据计算得到;迭代计算模块,用于根据接收到的k个下一轮迭代的密文向量,计算下一轮迭代的求交结果向量,直至执行完成预设次数的迭代操作。
[0100]
可选地,所述预设密文运算包括密文加法运算或者密文乘法运算。
[0101]
参照图5,示出了本发明的一种隐私求交系统实施例的结构框图,所述系统用于对k个数据方持有的数据集合进行隐私求交,k为大于或等于2的整数,所述系统包括密文计算平台501和k个数据方502,其中,所述k个数据方中的每个数据方502,用于对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,根据自身的映射数据,计算自身的标志向量,对自身的标志向量进行加密得到密文向量发送至密文计算平台;其中,第i个数据方的标志向量中的每个元素对应一个映射符号,每个元素的值用于表示该元素对应的映射符号是否为所述第i个数据方持有的某个映射数据,所述第i个数据方的标志向量中包括所述第i个数据方持有的所有映射数据,i的取值为1~k;所述密文计算平台501,用于将接收到的k个数据方的k个密文向量中相同位置的元素执行预设密文运算,得到求交结果向量,所述求交结果向量中每个元素的值用于表示该元素对应的映射符号是否为所述k个数据方所共有的映射数据。
[0102]
可选地,所述隐私求交系统可以为多方安全计算系统,本发明实施例对所述多方安全计算系统采用的安全计算协议的类型不做限制,例如,所述安全计算协议可以为mpc协议,在基于mpc协议的安全计算系统中,多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协同计算得到计算结果,参与计算的数据、中间结果、以及最终结果可以为密文。在执行所述预计算的过程中,客户端不会泄露自己的密钥信息,服务端也会不泄露自己数据库中的数据信息。
[0103]
可选地,所述第i个数据方的标志向量中的每个元素的值为第一数值或者第二数值,第一数值表示该元素对应的映射符号不是所述第i个数据方持有的映射数据,第二数值表示该元素对应的映射符号是所述第i个数据方持有的某个映射数据。
[0104]
可选地,所述k个数据方中的每个数据方,用于将其持有的数据集合中的各原始数据加密转换为第一长度的中间数据,对于每个原始数据对应的中间数据,从第一位开始截取第二长度转换为十进制,得到每个原始数据对应的映射数据。
[0105]
可选地,所述k个数据方中的查询方,还用于接收所述密文计算平台发送的所述求交结果向量,根据所述求交结果向量,在所述查询方持有的数据集合中确定下一轮迭代的中间数据;所述k个数据方中除查询方外的其余数据方,还用于根据各自持有的数据集合中的所有数据确定下一轮迭代的中间数据;
所述k个数据方中的每个数据方,还用于将自身得到的下一轮迭代的中间数据,从第二位开始截取第二长度转换为十进制,得到下一轮迭代的映射数据;根据自身得到的下一轮迭代的映射数据,确定下一轮迭代的标志向量;将自身得到的下一轮迭代的标志向量进行加密得到下一轮迭代的密文向量,并发送至所述密文计算平台;所述密文计算平台,还用于根据接收到的k个下一轮迭代的密文向量,计算下一轮迭代的求交结果向量,直至执行完成预设次数的迭代操作。
[0106]
可选地,所述k个数据方中的第i个数据方,具体用于将其持有的数据集合中的各原始数据进行md5加密转换成16进制32位的中间数据。
[0107]
可选地,所述k个数据方中的第i个数据方,具体用于设置初始向量,所述初始向量中的各元素对应的映射符号为1~m,所述初始向量中各元素的值均为0,m为所述初始向量的长度;对于所述初始向量中各元素对应的映射符号,将其中与所述映射数据相匹配的映射符号对应的元素的值更新为1,得到第i个数据方的标志向量。
[0108]
可选地,所述预设密文运算包括密文加法运算或者密文乘法运算。
[0109]
本发明实施例提供的一种隐私求交装置,用于对k个数据方持有的数据集合进行隐私求交。所述k个数据方中的每个数据方对自身持有的数据集合中的各原始数据进行映射转换,得到各原始数据对应的映射数据,k个数据方中的每个数据方根据自身的映射数据,计算自身的标志向量,并将自身的标志向量加密为密文向量后发送至密文计算平台计算求交结果向量。本发明实施例在对k个数据方持有的数据集合进行隐私求交时,基于k个数据方的密文向量进行计算,而不用比较原始数据,在隐私求交的数据量较大的情况下,不需要将k个数据方的所有密文数据加载到密文计算平台,可以减少数据传输量和计算量;k个数据方发送给密文计算平台的是各自计算得到的密文向量,不会暴露原始数据的相关信息;k个数据方也不需要进行两两求交,可以避免暴露除多方隐私求交结果之外的其他信息。此外,本发明实施例将k个数据方的数据集合的隐私求交过程转换为密文计算平台对k个数据方的k个标志向量之间的密文计算。在映射转换方式确定的情况下,密文计算平台的计算量是一定的,与隐私求交的数据量无关,因此本发明实施例可以在保证计算效率的前提下,支持大数据量下的隐私求交计算。再者,本发明实施例提供的隐私求交方法,只有查询方可以获取最终的隐私求交结果,被查询的数据方无法获取查询方的信息,也无法获得最终的隐私求交结果以及除隐私求交结果之外的其他信息,可以保护数据隐私安全。
[0110]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0111]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0112]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0113]
本发明实施例提供了一种用于隐私求交的装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述一个或多个实施例所述的隐私求交方法的指令。
[0114]
图6是根据一示例性实施例示出的一种用于隐私求交的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗
设备,健身设备,个人数字助理等。
[0115]
参照图6,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/ o)的接口812,传感器组件814,以及通信组件816。
[0116]
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
[0117]
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0118]
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
[0119]
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0120]
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0121]
i/ o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0122]
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以搜索装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感
器,磁传感器,压力传感器或温度传感器。
[0123]
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频信息处理(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0124]
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0125]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0126]
图7是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
[0127]
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windows servertm,mac os xtm,unixtm, linuxtm,freebsdtm等等。
[0128]
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1或图2所示的隐私求交方法。
[0129]
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前文图1或图2所对应实施例中隐私求交方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本技术方法实施例的描述。
[0130]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0131]
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并
且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
[0132]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。以上对本发明所提供的一种隐私求交方法、装置和一种可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1