本技术涉及多方安全计算,尤其涉及一种隐匿查询求和方法、装置及电子设备。
背景技术:
1、在多方安全计算技术中涉及多方隐匿查询求和的问题,查询方针对查询关键词,需要获知该查询关键词在多个数据提供方持有的数据中对应的各数据值的和值,其数据安全性要求是,查询方除了能够获知和值的结果之外,无法获知每个数据提供方持有的数据中是否存在该查询关键词,以及该查询关键词对应的数据值,并且,数据提供方无法获知该查询关键词以及任何相关信息。
2、多头借贷是多方协同隐私保护计算的典型金融行业中的应用场景,在多头借贷场景中,查询方可以是任意机构,数据提供方可以为银行等金融机构,存储了若干id和对应的借贷数值,id为关键词,借贷数值为对应的数据值。查询方希望获知某一id在所有金融机构的借贷数值的总额,以此对该id的业务风险进行判定,有助于后续房贷等业务行为的决策。
3、由于借贷数据是隐私性较强的金融数据,在被查询的同时需要尽可能得到安全性的保护,并且,由于查询方认为其查询id可能涉及商业机密等隐私,故不希望将查询id的信息暴露出去,所以,在多头借贷场景中,广泛应用到隐匿查询求和技术。采用隐匿查询求和技术,可以使得查询方仅能够得知最终查询结果,不会泄露查询id的信息,数据提供方的隐私借贷数据也不会被泄露。
4、然而,现有技术中的隐匿查询求和技术,往往存在由于某一参与方的通讯开销大或计算开销大导致技术方案整体的综合效率较低的问题。
技术实现思路
1、本技术实施例提供一种隐匿查询求和方法、装置及电子设备,用以解决现有技术中存在的隐匿查询求和的技术方案整体的综合效率较低的问题。
2、本技术实施例提供一种隐匿查询求和方法,其特征在于,应用于中立方设备,包括:
3、接收查询方设备发送的同态加密算法的公钥;
4、接收多个数据提供方设备发送的指示密文序列和数据密文序列,其中,一个数据提供方发送的所述指示密文序列中包含u个指示密文,所述u个指示密文为该数据提供方设备使用所述公钥分别对u个第一多项式密文和对应的u个随机数进行数乘同态计算得到的,所述u个第一多项式密文为该数据提供方设备使用所述公钥和来自所述查询方设备的查询关键词密文,分别同态计算u个第一类多项式函数得到的,所述数据密文序列中包含u个数据密文,所述u个数据密文为该数据提供方设备使用所述公钥和所述查询关键词密文,分别同态计算u个第二类多项式函数得到的,所述u个第一类多项式函数和所述u个第二类多项式函数一一对应,相对应的第j个第一类多项式函数和第j个第二类多项式函数为基于该数据提供方持有的第j份数据构造的,且第j份数据中的关键词为第j个第一类多项式函数所有的根,第j份数据中的关键词作为第j个第二类多项式函数的输入,结果为第j份数据中该关键词对应的数据值,该数据提供方持有的数据被划分为u份,所述u为该数据提供方持有的数据的数量除以t的商值向上取整,除最后一份数据之外,前u-1份数据中每份数据包含t条数据,所述查询关键词密文为所述查询方设备使用所述公钥对查询关键词进行同态加密得到的;
5、将多个数据提供方设备发送的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照所述乱序后指示密文序列中指示密文的顺序,对接收的所述数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列;
6、向所述查询方设备发送所述乱序后指示密文序列,使得所述查询方设备使用所述同态加密算法的私钥对所述乱序后指示密文序列中的指示密文进行解密,并将解密结果为0的指示密文在所述乱序后指示密文序列中的位置信息发送给所述中立方设备;
7、基于接收的所述位置信息,从所述重排序数据密文序列提取解密结果为0的指示密文对应的数据密文;
8、使用所述公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文;
9、向所述查询方设备发送所述数据之和的密文,使得所述查询方设备使用所述私钥对所述数据之和密文进行解密,得到隐匿查询求和结果。
10、进一步的,所述查询关键词密文包括所述查询关键词的1次方至t次方的密文;
11、所述第一类多项式函数和所述第二类多项式函数的次数不超过t。
12、本技术实施例还提供一种隐匿查询求和方法,应用于数据提供方设备,包括:
13、接收查询方设备发送的同态加密算法的公钥,以及查询关键词密文,所述查询关键词密文为所述查询方设备使用所述公钥对查询关键词进行同态加密得到的;
14、使用所述公钥和所述查询关键词密文,分别同态计算u个第一类多项式函数,得到u个第一多项式密文,以及分别同态计算u个第二类多项式函数,得到u个数据密文,其中,所述u个第一类多项式函数和所述u个第二类多项式函数一一对应,相对应的第j个第一类多项式函数和第j个第二类多项式函数为基于该数据提供方持有的第j份数据构造的,且第j份数据中的关键词为第j个第一类多项式函数所有的根,第j份数据中的关键词作为第j个第二类多项式函数的输入,结果为第j份数据中该关键词对应的数据值,该数据提供方持有的数据被划分为u份,所述u为该数据提供方持有的数据的数量除以t的商值向上取整,除最后一份数据之外,前u-1份数据中每份数据包含t条数据;
15、使用所述公钥分别对所述u个第一多项式密文和对应的u个随机数进行数乘同态计算,得到u个指示密文;
16、向中立方设备发送包含所述u个指示密文的指示密文序列和包含所述u个数据密文的数据密文序列,使得所述中立方设备将来自多个数据提供方设备的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照所述乱序后指示密文序列中指示密文的顺序,对接收的所述数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列,以及使得所述中立方设备向所述查询方设备发送所述乱序后指示密文序列,使得所述查询方设备使用所述同态加密算法的私钥对所述乱序后指示密文序列中的指示密文进行解密,并将解密结果为0的指示密文在所述乱序后指示密文序列中的位置信息发送给所述中立方设备,使得所述中立方设备基于接收的所述位置信息,从所述重排序数据密文序列提取解密结果为0的指示密文对应的数据密文,并使用所述公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文,并向所述查询方设备发送所述数据之和的密文,使得所述查询方设备使用所述私钥对所述数据之和密文进行解密,得到隐匿查询求和结果。
17、进一步的,所述查询关键词密文包括所述查询关键词的1次方至t次方的密文;
18、所述第一类多项式函数和所述第二类多项式函数的次数不超过t。
19、本技术实施例还提供一种隐匿查询求和方法,应用于查询方设备,包括:
20、生成同态加密算法的私钥和公钥;
21、使用所述公钥对查询关键词进行同态加密,得到查询关键词密文;
22、向中立方设备发送所述公钥,以及向多个数据提供方设备发送所述公钥和所述查询关键词密文,使得所述数据提供方设备使用所述公钥和所述查询关键词密文,分别同态计算u个第一类多项式函数,得到u个第一多项式密文,以及分别同态计算u个第二类多项式函数,得到u个数据密文,以及使用所述公钥分别对所述u个第一多项式密文和对应的u个随机数进行数乘同态计算,得到u个指示密文,其中,所述u个第一类多项式函数和所述u个第二类多项式函数一一对应,相对应的第j个第一类多项式函数和第j个第二类多项式函数为基于该数据提供方持有的第j份数据构造的,且第j份数据中的关键词为第j个第一类多项式函数所有的根,第j份数据中的关键词作为第j个第二类多项式函数的输入,结果为第j份数据中该关键词对应的数据值,该数据提供方持有的数据被划分为u份,所述u为该数据提供方持有的数据的数量除以t的商值向上取整,除最后一份数据之外,前u-1份数据中每份数据包含t条数据,以及使得所述数据提供方设备向中立方设备发送包含所述u个指示密文的指示密文序列和包含所述u个数据密文的数据密文序列,使得所述中立方设备将来自多个数据提供方设备的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照所述乱序后指示密文序列中指示密文的顺序,对接收的所述数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列,以及使得所述中立方设备向所述查询方设备发送所述乱序后指示密文序列;
23、使用所述同态加密算法的私钥对所述乱序后指示密文序列中的指示密文进行解密;
24、向所述中立方设备发送解密结果为0的指示密文在所述乱序后指示密文序列中的位置信息,使得所述中立方设备基于接收的所述位置信息,从所述重排序数据密文序列提取解密结果为0的指示密文对应的数据密文,并使用所述公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文,并向所述查询方设备发送所述数据之和的密文;
25、使用所述私钥对所述数据之和密文进行解密,得到隐匿查询求和结果。
26、进一步的,所述第一类多项式函数和所述第二类多项式函数的次数不超过t;
27、所述使用所述公钥对查询关键词进行同态加密,得到查询关键词密文,包括:
28、使用所述公钥对查询关键词的1次方至t次方进行同态加密,得到包括所述查询关键词的1次方至t次方的密文的查询关键词密文。
29、本技术实施例还提供一种隐匿查询求和装置,应用于中立方设备,包括:
30、第一交互模块,用于接收查询方设备发送的同态加密算法的公钥;
31、所述第一交互模块,还用于接收多个数据提供方设备发送的指示密文序列和数据密文序列,其中,一个数据提供方发送的所述指示密文序列中包含u个指示密文,所述u个指示密文为该数据提供方设备使用所述公钥分别对u个第一多项式密文和对应的u个随机数进行数乘同态计算得到的,所述u个第一多项式密文为该数据提供方设备使用所述公钥和来自所述查询方设备的查询关键词密文,分别同态计算u个第一类多项式函数得到的,所述数据密文序列中包含u个数据密文,所述u个数据密文为该数据提供方设备使用所述公钥和所述查询关键词密文,分别同态计算u个第二类多项式函数得到的,所述u个第一类多项式函数和所述u个第二类多项式函数一一对应,相对应的第j个第一类多项式函数和第j个第二类多项式函数为基于该数据提供方持有的第j份数据构造的,且第j份数据中的关键词为第j个第一类多项式函数所有的根,第j份数据中的关键词作为第j个第二类多项式函数的输入,结果为第j份数据中该关键词对应的数据值,该数据提供方持有的数据被划分为u份,所述u为该数据提供方持有的数据的数量除以t的商值向上取整,除最后一份数据之外,前u-1份数据中每份数据包含t条数据,所述查询关键词密文为所述查询方设备使用所述公钥对查询关键词进行同态加密得到的;
32、乱序处理模块,用于将多个数据提供方设备发送的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照所述乱序后指示密文序列中指示密文的顺序,对接收的所述数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列;
33、所述第一交互模块,还用于向所述查询方设备发送所述乱序后指示密文序列,使得所述查询方设备使用所述同态加密算法的私钥对所述乱序后指示密文序列中的指示密文进行解密,并将解密结果为0的指示密文在所述乱序后指示密文序列中的位置信息发送给所述中立方设备;
34、数据密文提取模块,用于基于接收的所述位置信息,从所述重排序数据密文序列提取解密结果为0的指示密文对应的数据密文;
35、第一同态计算模块,用于使用所述公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文;
36、所述第一交互模块,还用于向所述查询方设备发送所述数据之和的密文,使得所述查询方设备使用所述私钥对所述数据之和密文进行解密,得到隐匿查询求和结果。
37、本技术实施例还提供一种隐匿查询求和装置,应用于数据提供方设备,包括:
38、第二交互模块,用于接收查询方设备发送的同态加密算法的公钥,以及查询关键词密文,所述查询关键词密文为所述查询方设备使用所述公钥对查询关键词进行同态加密得到的;
39、第二同态计算模块,用于使用所述公钥和所述查询关键词密文,分别同态计算u个第一类多项式函数,得到u个第一多项式密文,以及分别同态计算u个第二类多项式函数,得到u个数据密文,其中,所述u个第一类多项式函数和所述u个第二类多项式函数一一对应,相对应的第j个第一类多项式函数和第j个第二类多项式函数为基于该数据提供方持有的第j份数据构造的,且第j份数据中的关键词为第j个第一类多项式函数所有的根,第j份数据中的关键词作为第j个第二类多项式函数的输入,结果为第j份数据中该关键词对应的数据值,该数据提供方持有的数据被划分为u份,所述u为该数据提供方持有的数据的数量除以t的商值向上取整,除最后一份数据之外,前u-1份数据中每份数据包含t条数据;
40、所述第二同态计算模块,还用于使用所述公钥分别对所述u个第一多项式密文和对应的u个随机数进行数乘同态计算,得到u个指示密文;
41、所述第二交互模块,还用于向中立方设备发送包含所述u个指示密文的指示密文序列和包含所述u个数据密文的数据密文序列,使得所述中立方设备将来自多个数据提供方设备的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照所述乱序后指示密文序列中指示密文的顺序,对接收的所述数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列,以及使得所述中立方设备向所述查询方设备发送所述乱序后指示密文序列,使得所述查询方设备使用所述同态加密算法的私钥对所述乱序后指示密文序列中的指示密文进行解密,并将解密结果为0的指示密文在所述乱序后指示密文序列中的位置信息发送给所述中立方设备,使得所述中立方设备基于接收的所述位置信息,从所述重排序数据密文序列提取解密结果为0的指示密文对应的数据密文,并使用所述公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文,并向所述查询方设备发送所述数据之和的密文,使得所述查询方设备使用所述私钥对所述数据之和密文进行解密,得到隐匿查询求和结果。
42、本技术实施例还提供一种隐匿查询求和装置,应用于查询方设备,包括:
43、密钥生成模块,用于生成同态加密算法的私钥和公钥;
44、第三同态计算模块,用于使用所述公钥对查询关键词进行同态加密,得到查询关键词密文;
45、第三交互模块,用于向中立方设备发送所述公钥,以及向多个数据提供方设备发送所述公钥和所述查询关键词密文,使得所述数据提供方设备使用所述公钥和所述查询关键词密文,分别同态计算u个第一类多项式函数,得到u个第一多项式密文,以及分别同态计算u个第二类多项式函数,得到u个数据密文,以及使用所述公钥分别对所述u个第一多项式密文和对应的u个随机数进行数乘同态计算,得到u个指示密文,其中,所述u个第一类多项式函数和所述u个第二类多项式函数一一对应,相对应的第j个第一类多项式函数和第j个第二类多项式函数为基于该数据提供方持有的第j份数据构造的,且第j份数据中的关键词为第j个第一类多项式函数所有的根,第j份数据中的关键词作为第j个第二类多项式函数的输入,结果为第j份数据中该关键词对应的数据值,该数据提供方持有的数据被划分为u份,所述u为该数据提供方持有的数据的数量除以t的商值向上取整,除最后一份数据之外,前u-1份数据中每份数据包含t条数据,以及使得所述数据提供方设备向中立方设备发送包含所述u个指示密文的指示密文序列和包含所述u个数据密文的数据密文序列,使得所述中立方设备将来自多个数据提供方设备的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照所述乱序后指示密文序列中指示密文的顺序,对接收的所述数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列,以及使得所述中立方设备向所述查询方设备发送所述乱序后指示密文序列;
46、所述第三同态计算模块,还用于使用所述同态加密算法的私钥对所述乱序后指示密文序列中的指示密文进行解密;
47、所述第三交互模块,还用于向所述中立方设备发送解密结果为0的指示密文在所述乱序后指示密文序列中的位置信息,使得所述中立方设备基于接收的所述位置信息,从所述重排序数据密文序列提取解密结果为0的指示密文对应的数据密文,并使用所述公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文,并向所述查询方设备发送所述数据之和的密文;
48、所述第三同态计算模块,还用于使用所述私钥对所述数据之和密文进行解密,得到隐匿查询求和结果。
49、本技术实施例还提供一种隐匿查询求和系统,包括:上述任一所述中立方设备、所述查询方设备和所述多个数据提供方设备。
50、本技术实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于中立方设备的隐匿查询求和方法,或者,实现上述任一应用于查询方设备的隐匿查询求和方法,实现上述任一应用于数据提供方设备的隐匿查询求和方法。
51、本技术实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于中立方设备的隐匿查询求和方法,或者,实现上述任一应用于查询方设备的隐匿查询求和方法,实现上述任一应用于数据提供方设备的隐匿查询求和方法。
52、本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于中立方设备的隐匿查询求和方法,或者,执行上述任一应用于查询方设备的隐匿查询求和方法,执行上述任一应用于数据提供方设备的隐匿查询求和方法。
53、本技术有益效果包括:
54、本技术实施例提供的方法中,除了查询方设备和多个数据提供方设备之外,还引入了中立方设备,查询方设备生成同态加密算法的私钥和公钥,并使用私钥对查询关键词进行同态加密,得到查询关键词密文,并将公钥发送给中立方设备,以及将公钥和查询关键词密文发送给每个数据提供方,每个数据提供方使用公钥和查询关键词密文,同态计算第一类多项式函数和第二类多项式函数,相应的,得到u个第一多项式密文和u个数据密文,并使用公钥分别对u个第一多项式密文和对应的u个随机数进行数乘同态计算,得到u个指示密文,并向中立方设备发送包含u个指示密文的指示密文序列和包含u个数据密文的数据密文序列,中立方设备将多个数据提供方设备发送的指示密文序列中的全部指示密文进行乱序处理,得到乱序后指示密文序列,并按照乱序后指示密文序列中指示密文的顺序,对接收的数据密文序列中的全部数据密文进行对应的重排序,得到重排序数据密文序列,向查询方设备发送乱序后指示密文序列,查询方设备使用同态加密算法的私钥对乱序后指示密文序列中的指示密文进行解密,并将解密结果为0的指示密文在乱序后指示密文序列中的位置信息发送给中立方设备,中立方设备基于接收的位置信息,从重排序数据密文序列提取解密结果为0的指示密文对应的数据密文,使用公钥对提取的所有数据密文执行同态加法运算,得到数据之和密文,并发送给查询方设备,查询方设备使用私钥对数据之和密文进行解密,得到隐匿查询求和结果。在该方法中,计算开销主要集中在数据提供方侧,但其计算开销和数据提供方的数量无关,且数据提供方的通讯开销较小,通讯开销主要集中在中立方侧,但中立方的计算开销较小,所以,参与隐匿查询求和的各方总体开销较为均衡,不会出现明显的短板,使得技术方案整体的综合效率较高。
55、本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
1.一种隐匿查询求和方法,其特征在于,应用于中立方设备,包括:
2.如权利要求1所述的方法,其特征在于,所述查询关键词密文包括所述查询关键词的1次方至t次方的密文;
3.一种隐匿查询求和方法,其特征在于,应用于数据提供方设备,包括:
4.如权利要求3所述的方法,其特征在于,所述查询关键词密文包括所述查询关键词的1次方至t次方的密文;
5.一种隐匿查询求和方法,其特征在于,应用于查询方设备,包括:
6.如权利要求5所述的方法,其特征在于,所述第一类多项式函数和所述第二类多项式函数的次数不超过t;
7.一种隐匿查询求和装置,其特征在于,应用于中立方设备,包括:
8.一种隐匿查询求和装置,其特征在于,应用于数据提供方设备,包括:
9.一种隐匿查询求和装置,其特征在于,应用于查询方设备,包括:
10.一种隐匿查询求和系统,其特征在于,包括:上述权利要求7-9任一所述中立方设备、所述查询方设备和所述多个数据提供方设备。
11.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-2任一所述的方法,或者,实现权利要求3-4任一所述的方法,实现权利要求5-6任一所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-2任一所述的方法,或者,实现权利要求3-4任一所述的方法,实现权利要求5-6任一所述的方法。