一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据查询方法、装置及存储介质与流程

2022-05-21 06:00:19 来源:中国专利 TAG:


1.本发明实施例涉及互联网及计算机技术领域,尤其涉及一种数据查询方法、装置及存储介质。


背景技术:

2.相关技术中,查询方拥有一个关系数据表ra,合作方拥有一个关系数据表rb。ra、rb中都有一些重要的属性或特征,查询方想通过使用双方的数据表完成一些单方情况下无法实现的统计查询操作,但是其各自持有的数据是非常隐私的,不能离开本地。当前通用的技术手段是查询方通过编写的后端代码,向合作方查询预定的数据参数,再结合固定秘密分享形式计算出最终的查询结果。但是通过编写的后端代码这一过程前期准备时间较长使查询方需要等待,且固定秘密分享形式的计算效率也低,进而导致确定查询结果的效率较低。


技术实现要素:

3.本发明实施例提供的一种数据查询方法、装置及存储介质,可以提高确定出查询结果的效率。
4.本发明的技术方案是这样实现的:
5.本发明实施例提供了一种数据查询方法,应用于查询节点,包括:
6.基于获取的查询语句信息,确定出密文计算文件;
7.将所述密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收所述合作节点响应所述密文计算文件反馈的第一组合作方秘密随机数;
8.基于所述密文计算文件,利用预知的第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果;所述第一组本地秘密随机数和所述第二组本地秘密随机数,是将所述本地数据按照所述预定秘密分享形式拆分得到的两组随机数;
9.接收所述合作节点反馈的第二秘密结果,结合所述第一秘密结果与所述第二秘密结果,确定出查询结果;所述第二秘密结果和所述第一组合作方秘密随机数是所述合作节点基于所述密文计算文件确定出来的。
10.上述方案中,所述基于获取的查询语句信息,确定出密文计算文件,包括:
11.将所述查询语句信息通过语法分析形成查询列表;所述查询列表包括:条件查询标识符、查询源数据标识符及多个计算操作标识符;
12.确定出所述条件查询标识符、所述查询源数据标识符及所述多个计算操作标识符,各自对应的预设代码模板;
13.利用所述预设代码模板将所述查询列表转换成查询代码,再将所述查询代码编译形成所述密文计算文件。
14.上述方案中,所述基于获取的查询语句信息,确定出密文计算文件之前,所述方法还包括:
15.获取所述查询语句信息;所述查询语句信息是用户根据预知的所述本地数据与合作方数据的数据结构编写的。
16.上述方案中,所述预定秘密分享形式包括:算术分享;
17.所述将所述密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收所述合作节点响应所述密文计算文件反馈的第一组合作方秘密随机数之前,所述方法还包括:
18.将所述本地数据以所述算术分享的形式编译成多个随机数;
19.将所述多个随机数分为两组,得到所述第一组本地秘密随机数和所述第二组本地秘密随机数。
20.上述方案中,所述基于所述密文计算文件,利用预知的第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果,包括:
21.运行所述密文计算文件,按照预定属性求所述第二组本地秘密随机数与所述第一组合作方秘密随机数的随机数交集;所述预定属性为所述本地数据与所述合作方数据包含的数据属性;
22.将所述随机数交集内的随机数转换成姚氏电路形式的数据,得到中间数据集合;
23.对所述中间数据集合进行连接计算操作,得到第一中间数据集合,并将所述第一中间数据集合内的数据个数恢复为所述中间数据集合内的个数,得到第二中间数据集合;
24.对所述第二中间数据集合进行排序或去重操作,得到所述第一秘密结果。
25.上述方案中,所述基于所述密文计算文件,利用预知的第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果,包括:
26.运行所述密文计算文件,利用所述第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略,进行多个计算操作得到所述第一秘密结果。
27.上述方案中,所述多个计算操作包括k个计算操作;k为大于1的正整数;
28.所述利用所述第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略,进行多个计算操作得到所述第一秘密结果,包括:
29.对所述第二组本地秘密随机数与所述第一组合作方秘密随机数进行第1计算操作,并将计算结果转换为第2计算操作匹配的秘密分享形式的第一随机数集合;
30.对所述第一随机数集合进行所述第2计算操作,并将计算结果转换为第3计算操作匹配的秘密分享形式的第二随机数集合,直至对第k-1随机数集合进行第k计算操作后停止,得到所述第一秘密结果。
31.上述方案中,所述接收所述合作节点反馈的第二秘密结果,结合所述第一秘密结果与所述第二秘密结果,确定出查询结果,包括:
32.将所述第一秘密结果和所述第二秘密结果组合,得到中间秘密结果;
33.对所述中间秘密结果进行解密,得到所述查询结果。
34.本发明实施例还提供了一种数据查询方法,应用于合作节点,包括:
35.接收查询节点发送的密文计算文件和第一组本地秘密随机数;所述密文计算文件是所述查询节点基于获取的查询语句信息确定出来的;
36.响应所述密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,将所述第一组合作方秘密随机数反馈给所述查询节点;
37.利用第二组合作方秘密随机数与所述第一组本地秘密随机数,结合秘密分享形式转换策略确定出第二秘密结果;所述第一组合作方秘密随机数和所述第二组合作方秘密随机数,是将所述合作方数据按照所述预定秘密分享形式拆分得到的两组随机数;
38.将所述第二秘密结果反馈给所述查询节点,供所述查询节点根据所述第二秘密结果与确定的第一秘密结果,确定出查询结果。
39.上述方案中,所述响应所述密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,包括:
40.响应所述密文计算文件,在数据库中确定出所述合作方数据;
41.基于所述合作方数据确定出所述第一组合作方秘密随机数。
42.上述方案中,所述响应所述密文计算文件,在数据库中确定出所述合作方数据,包括:
43.解析所述密文计算文件,得到条件查询标识符和查询源数据标识符;
44.基于所述条件查询标识符和所述查询源数据标识符,在数据库中确定出所述合作方数据。
45.上述方案中,所述基于所述合作方数据确定出所述第一组合作方秘密随机数,包括:
46.将所述合作方数据以所述算术分享的形式编译成多个合作方随机数;
47.将所述多个合作方随机数分为两组,得到所述第一组合作方秘密随机数和所述第二组合作方秘密随机数。
48.本发明实施例还提供了一种数据查询装置,应用于查询节点,包括:
49.确定单元,用于基于获取的查询语句信息,确定出密文计算文件;
50.第一接收单元,用于将所述密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收所述合作节点响应所述密文计算文件反馈的第一组合作方秘密随机数;
51.所述确定单元,还用于基于所述密文计算文件,利用预知的第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果;所述第一组本地秘密随机数和所述第二组本地秘密随机数,是将所述本地数据按照所述预定秘密分享形式拆分得到的两组随机数;
52.所述确定单元,还用于接收所述合作节点反馈的第二秘密结果,结合所述第一秘密结果与所述第二秘密结果,确定出查询结果;所述第二秘密结果和所述第一组合作方秘密随机数是所述合作节点基于所述密文计算文件确定出来的。
53.本发明实施例还提供了一种数据查询装置,应用于合作节点,包括:
54.第二接收单元,用于接收查询节点发送的密文计算文件和第一组本地秘密随机数;所述密文计算文件是所述查询节点基于获取的查询语句信息确定出来的;
55.响应单元,用于响应所述密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,将所述第一组合作方秘密随机数反馈给所述查询节点;
56.所述响应单元,还用于利用第二组合作方秘密随机数与所述第一组本地秘密随机数,结合秘密分享形式转换策略确定出第二秘密结果;所述第一组合作方秘密随机数和所述第二组合作方秘密随机数,是将所述合作方数据按照所述预定秘密分享形式拆分得到的
两组随机数;
57.反馈单元,用于将所述第二秘密结果反馈给所述查询节点,供所述查询节点根据所述第二秘密结果与确定的第一秘密结果,确定出查询结果。
58.本发明实施例还提供了一种数据查询装置,包括第一存储器和第一处理器,所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现查询节点一侧所述方法中的步骤。
59.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时实现查询节点一侧所述方法中的步骤。
60.本发明实施例还提供了一种数据查询装置,包括第二存储器和第二处理器,所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现合作节点一侧所述方法中的步骤。
61.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被第二处理器执行时实现合作节点一侧所述方法中的步骤。
62.本发明实施例中,通过基于获取的查询语句信息,确定出密文计算文件;将密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收合作节点响应密文计算文件反馈的第一组合作方秘密随机数;基于密文计算文件,利用预知的第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果;第一组本地秘密随机数和第二组本地秘密随机数,是将本地数据按照预定秘密分享形式拆分得到的两组随机数;接收合作节点反馈的第二秘密结果,结合第一秘密结果与第二秘密结果,确定出查询结果;第二秘密结果和第一组合作方秘密随机数是合作节点基于密文计算文件确定出来的。由于本方案利用查询语句信息可以确定出密文计算文件,进行进行数据查询,准备时间短,而且利用了秘密分享形式转换策略,使得各个秘密分享形式之间可以相互转换,提高了计算效率,进而提高了确定出查询结果的效率。
附图说明
63.图1为本发明实施例提供的数据查询方法的一个可选的流程示意图;
64.图2为本发明实施例提供的数据查询方法的一个可选的效果示意图;
65.图3为本发明实施例提供的数据查询方法的一个可选的流程示意图;
66.图4为本发明实施例提供的数据查询方法的一个可选的流程示意图;
67.图5为本发明实施例提供的数据查询方法的一个可选的流程示意图;
68.图6为本发明实施例提供的数据查询方法的一个可选的效果示意图;
69.图7为本发明实施例提供的数据查询方法的一个可选的流程示意图;
70.图8为本发明实施例提供的数据查询方法的一个可选的流程示意图;
71.图9为本发明实施例提供的数据查询方法的一个可选的流程示意图;
72.图10为本发明实施例提供的数据查询方法的交互示意图;
73.图11为本发明实施例提供的数据查询装置的结构示意图一;
74.图12为本发明实施例提供的数据查询装置的一种硬件实体示意图一;
75.图13为本发明实施例提供的数据查询装置的结构示意图二;
76.图14为本发明实施例提供的数据查询装置的一种硬件实体示意图二。
具体实施方式
77.图1为本发明实施例提供的数据查询方法的一个可选的流程示意图,将结合图1示出的步骤进行说明。
78.s101、基于获取的查询语句信息,确定出密文计算文件。
79.本发明实施例中,查询节点基于获取的查询语句信息,确定出密文计算文件。
80.本发明实施例中,用户首先根据查询节点的本地数据的数据结构,以及合作节点的合作方数据的数据结构编写出查询语句信息。其中,合作方数据的数据结构是预先获取的。用户通过查询节点的人机交互设备输入查询语句信息。查询节点对该查询语句信息进行解析,编译处理,得到密文计算文件。
81.本发明实施例中,查询语句信息可以为结构化查询语言(structured query language,sql)。密文计算文件可以为安全多方计算引擎(secure multi-party computation,mpc)可以处理的可执行文件。
82.本发明实施例中,查询节点和合作节点可以为服务器、终端或者移动终端。
83.本发明实施例中,查询节点的用户根据公开的本地数据及合作方数据的数据结构,以及想要查询的业务编写sql语句。查询节点获取该sql语句,查询节点配置的sql解析编译模块解析输入的sql语句,形成对应的token列表(token列表包括:join、aggregate等to ken.标识符对象)。查询节点结合预先编写好的代码模板,生成对应的后端代码,进而形成密文计算文件。
84.s102、将密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收合作节点响应密文计算文件反馈的第一组合作方秘密随机数。
85.本发明实施例中,查询节点将密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收合作节点响应密文计算文件反馈的第一组合作方秘密随机数。
86.本发明实施例中,查询节点根据本地数据,确定出本地数据对应的预定秘密分享形式的两组随机数:第一组本地秘密随机数和第二组本地秘密随机数。查询节点将密文计算文件与第一组本地密随机数发送给合作节点。合作节点根据密文计算文件在数据库中确定出合作方数据,并根据该合作方数据确定出预定秘密分享形式的第一组合作方秘密随机数和第二组合作方秘密随机数。合作节点将第一组秘密随机数发送给查询节点。
87.本发明实施例中,预定秘密分享形式可以为算术分享、布尔分享和姚氏电路中的任意一个。
88.示例性的,结合图2,查询节点100获取的sql语句,通过sql解析编译模块103形成对应的密文计算文件。同时,查询节点在第一数据库104中提取出本地数据。查询节点100将该本地数据进行数据读取加密,得到预定秘密分享形式的第一组本地秘密随机数和第二组本地秘密随机数。查询节点100将该第一本地秘密随机数与密文计算文件发送给合作节点101。合作节点101解析密文计算文件,在第二数据库105中提取出合作方数据,并加密形成第一组合作方秘密随机数和第二组合作方秘密随机数。合作节点101将第一组合作方秘密随机数发送给查询节点100。
89.本发明实施例中,第一组本地秘密随机数、第二组本地秘密随机数、第一组合作方秘密随机数和第二组合作方秘密随机数均可以为数字的集合。
90.s103、基于密文计算文件,利用预知的第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果。
91.本发明实施例中,查询节点基于密文计算文件,利用预知的第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果。其中,第一组本地秘密随机数和第二组本地秘密随机数,是将本地数据按照预定秘密分享形式拆分得到的两组随机数。
92.本发明实施例中,查询节点运行密文计算文件,利用第二组本地秘密随机数与第一组合作方秘密随机数,结合预定秘密分享形式与其他秘密分享形式的转换策略,进行多个计算操作得到第一秘密结果。本发明实施例中,查询节点,每进行一次计算操作之后,都会将所得结果转化为下一次计算操作匹配的秘密分享形式的结果,再进行下一次的计算操作,直至进行到最后一次计算操作,得到第一秘密结果。
93.本发明实施例中,多个计算操作可以包括join操作和aggregate计算操作。
94.示例性的,结合图2,查询节点100通过第一安全多方计算引擎106对第二组本地秘密随机数,和第一组合作方秘密随机数,结合定秘密分享形式与其他秘密分享形式的转换策略,进行多个计算操作得到第一秘密结果。
95.s104、接收合作节点反馈的第二秘密结果,结合第一秘密结果与第二秘密结果,确定出查询结果。
96.本发明实施例中,查询节点接收合作节点反馈的第二秘密结果,结合第一秘密结果与第二秘密结果,确定出查询结果。其中,第二秘密结果和第一组合作方秘密随机数是合作节点基于密文计算文件确定出来的。
97.本发明实施例中,结合图2,合作节点101通过第二安全多方计算引擎107对第一组本地秘密随机数,和第二组合作方秘密随机数,结合预定秘密分享形式与其他秘密分享形式的转换策略,进行多个计算操作得到第二秘密结果,并返回结果。合作节点101将第二秘密结果发送给查询节点100。查询节点100通过第一秘密结果和第二秘密结果组合形成中间秘密结果,查询节点100对中间秘密结果进行解密,得到查询结果。
98.本发明实施例中,查询节点可以按照第一秘密结果和第二密结果的秘密分享形式,对中间秘密结果采取对应的方式进行解密。
99.本发明实施例中,合作节点运行密文计算文件,利用第二组合作方秘密随机数与第一组本地秘密随机数,结合预定秘密分享形式与其他秘密分享形式的转换策略,进行多个计算操作得到第二秘密结果。本发明实施例中,合作节点,每进行一次计算操作之后,都会将所得结果转化为下一次计算操作匹配的秘密分享形式的结果,再进行下一次的计算操作,直至进行到最后一次计算操作,得到第二秘密结果。
100.本发明实施例中,通过基于获取的查询语句信息,确定出密文计算文件;将密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收合作节点响应密文计算文件反馈的第一组合作方秘密随机数;基于密文计算文件,利用预知的第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果;第一组本地秘密随机数和第二组本地秘密随机数,是将本地数据按照预定秘密分享形式拆分得到的两组随机数;接收合作节点反馈的第二秘密结果,结合第一秘密结果与第二秘密结果,确定出查询结果;第二秘密结果和第一组合作方秘密随机数是合作节点基于所
述密文计算文件确定出来的。由于本方案利用查询语句信息可以确定出密文计算文件,进行进行数据查询,准备时间短,而且利用了秘密分享形式转换策略,使得各个秘密分享形式之间可以相互转换,提高了计算效率,进而提高了确定出查询结果的效率。
101.在一些实施例中,参见图3,图3为本发明实施例提供的数据查询方法的一个可选的流程示意图,图1示出的s101可以通过s105-s108实现,将结合各步骤进行说明。
102.s105、获取查询语句信息;查询语句信息是用户根据预知的本地数据与合作方数据的数据结构编写的。
103.本发明实施例中,查询节点获取查询语句信息。其中,查询语句信息是用户根据预知的本地数据与合作方数据的数据结构编写的。
104.本发明实施例中,用户通过查询节点的人机交互设备编写查询语句信息。
105.s106、将查询语句信息通过语法分析形成查询列表;查询列表包括:条件查询标识符、查询源数据标识符及多个计算操作标识符。
106.本发明实施例中,查询节点将查询语句信息通过语法分析形成查询列表。其中,查询列表包括:条件查询标识符、查询源数据标识符及多个计算操作标识符。
107.本发明实时中,查询节点通过解析器(parser)将获取的sql语句,解析成查询列表。
108.s107、确定出条件查询标识符、查询源数据标识符及多个计算操作标识符,各自对应的预设代码模板。
109.本发明实施例中,查询节点确定出条件查询标识符、查询源数据标识符及多个计算操作标识符,各自对应的预设代码模板。
110.本发明实施例中,查询节点的数据库中存储各种标识符对应的代码模板,查询节点在数据库中确定出查询列表中的标识符各自对应的预设代码模板。
111.s108、利用预设代码模板将查询列表转换成查询代码,再将查询代码编译形成密文计算文件。
112.本发明实施例中,查询节点利用预设代码模板,将查询列表转换成查询代码,再将查询代码编译形成密文计算文件。
113.本发明实施例中,查询节点利用条件查询标识符、查询源数据标识符及多个计算操作标识符各自对应的预设代码模板,将查询列表转换成查询代码。查询节点再利用编译器将查询代码,编译形成密文计算文件。
114.本发明实施例中,查询节点通过对获取的查询语句信息,进行语法分析,及编译处理,得到了密文计算文件,进而可以将密文计算文件发送给查询节点,以得到查询结果,准备时间短,进而提高了确定查询结果的效率。
115.在一些实施例中,参见图4,图4为本发明实施例提供的数据查询方法的一个可选的流程示意图,图3示出的s105-s108可以通过s401-s407实现,将结合各步骤进行说明。
116.s401、获取查询语句信息。
117.本发明实施例中,查询节点获取条件查询语句信息。
118.s402、解析。
119.s403、查询列表。
120.本发明实施例中,查询节点对查询语句信息进行解析得到查询列表,其中包括:
join/w here/aggregate等tokens。
121.s404、join模板、agg模板和其他声明模板。
122.本发明实施例中查询节点确定出join模板、agg模板和其他声明模板。
123.s405、后端代码。
124.s406、编译。
125.s407、密文计算文件。
126.本发明实施例中,查询节点通过编译器将确定的后端代码,编译成密文计算文件。
127.本发明实施例中,用户给查询节点输入合法的sql查询语句,查询节点的sql解析模块通过parser将sql查询语句解析成对应的tokens列表(where、from、aggregate等标识符或token对象)。查询节点根据token列表中的标识符匹配对应的代码模板,从而生成对应的代码。如:
128.sql查询语句:select ra.id from ra where ra.id=rb.id中;部分伪代码如下:
129.#声明ra、rb
130.relation::ra;ra.load_data(ra_data_path);
131.relation::rb;rb.load_data(rb_data_path);
132.#ra join rb,semijoin的结果,关系仍在ra中
133.ra.aggregate(ra.id);rb.aggregate(rb.id);
134.ra.join(rb,join_attribute=(ra.id,rb.id));
135.#返回结果给查询
136.ra.revealtoparty(a);
137.查询节点最后通过编译器编译所生成的c 后端的代码并生成对应的可执行mpc文件(也就是密文计算文件),在mpc计算引擎执行对应的隐私数据融合查询任务。
138.在一些实施例中,参见图3,图3为本发明实施例提供的数据查询方法的一个可选的流程示意图,图1示出的s102之前还包括s109-s110实现,将结合各步骤进行说明。
139.s109、将本地数据以算术分享的形式编译成多个随机数。
140.本发明实施例中,查询节点将本地数据以算术分享的形式编译成多个随机数。
141.s110、将多个随机数分为两组,得到第一组本地秘密随机数和第二组本地秘密随机数。
142.本发明实施例中,查询节点将多个随机数分为两组,得到第一组本地秘密随机数和第二组本地秘密随机数。
143.本发明实施例中,查询节点可以将多个随机数平均分为两组,也可以按照一定的比例将多个随机数分为两组。
144.本发明实施例中,查询节点将本地数据处理成算术分享形式的第一组本地秘密随机数和第二组本地秘密随机数,保证了查询过程中的保密性。
145.在一些实施例中,参见图5,图5为本发明实施例提供的数据查询方法的一个可选的流程示意图,图1示出的s103可以通过s111-s114实现,将结合各步骤进行说明。
146.s111、运行密文计算文件,按照预定属性求第二组本地秘密随机数与第一组合作方秘密随机数的随机数交集。
147.本发明实施例中,查询节点运行密文计算文件,按照预定属性求第二组本地秘密
随机数与第一组合作方秘密随机数的随机数交集。
148.其中,预定属性为本地数据与合作方数据包含的数据属性。
149.示例性的,查询节点在第二组本地秘密随机数与第一组合作方秘密随机数中,确定出对应标识信息相同的随机数交集。其中,本地数据和合作方数据都各自对应有标识信息,各组秘密随机数中的数组,也对应标识信息。
150.本发明实施例中,查询节点对第二组本地秘密随机数与第一组合作方秘密随机数进行隐私集合求交(private set intersection,psi)计算。psi是基于秘密分享的隐私集合求交,主要用于join操作中,求出第二组本地秘密随机数与第一组合作方秘密随机数中,用于求交的候选属性的共同集合。psi是指参与双方在不泄露任何额外信息的情况下,得到双方持有数据的交集。在这里,额外的信息指的是除了双方的数据交集以外的任何信息。基于秘密分享的psi是,双发输入的数据是秘密分享的形式,进行求交集后,结果仍为秘密分享的形式。本专利中使用的psi是基于秘密分享的。
151.其中,秘密分享:秘密分享(secret sharing,ss)的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。
152.s112、将随机数交集内的随机数转换成姚氏电路形式的数据,得到中间数据集合。
153.本发明实施例中,查询节点将随机数交集内的随机数转换成姚氏电路形式的数据,得到中间数据集合。
154.本发明实施例中,第二组本地秘密随机数,与第一组合作方秘密随机数都是算术分享形式的秘密随机数。进而随机数交集也是算术分享形式的秘密随机数。查询节点先将随机数交集内随机数转换成姚氏电路形式的数据,得到中间数据集合。
155.s113、对中间数据集合进行连接计算操作,得到第一中间数据集合,并将第一中间数据集合内的数据个数恢复为中间数据集合内的个数,得到第二中间数据集合。
156.本发明实施例中,查询节点对中间数据集合进行连接计算操作,得到第一中间数据集合,并将第一中间数据集合内的数据个数恢复为中间数据集合内的个数,得到第二中间数据集合。
157.其中,连接计算操作也就是join计算操作。
158.本发明实施例中,查询节点得到第一中间数据集合之后,对第一中间数据进行不经意扩展排列(oblivious extended permutation,oep)。扩展排列是函数f:{1,....,m}-{1,....,n}用于通过bi=a
f(i)
将n个元素向量a映射到m个元素的向量b。而一个不经意扩展排列函数允许在安全多方计算协议中保护a、b和f的隐私的同时完成此函数映射。
159.s114、对第二中间数据集合进行排序或去重操作,得到第一秘密结果。
160.本发明实施例中,查询节点第二中间数据集合进行排序或去重操作,得到第一秘密结果。
161.其中,排序或者去重操作也就是aggregate计算操作。
162.示例性的,结合图6,查询节点从第一数据库中获取到需要进行融合计算的本地数据,对其进行秘密分享。合作节点从第二数据库中获取到需要进行融合计算的合作方数据,对其进行秘密分享。秘密分享后的本地数据,合作方数据分别在合作节点和查询节点进行mpc密文计算,从而完成隐私融合查询。计算过程中,计算双方都部署一个mpc计算引擎,双
方引擎执行上一步骤生成的可执行mpc后端代码,该后端代码为具体执行的mpc操作,如join、aggregate操作等。
163.其中,混合的两方安全多方计算框架:(arithmetic-boolean-yao,aby),可以高效地结合算术共享(arithmetic sharing)、布尔共享(boolean sharing)和姚氏混淆电路(yao's garbled circuits,gc)的安全计算方案,为安全两方计算提供最佳实践解决方案。不经意传输(obli vious transfer,ot)在协议开始的时候,发送方拥有一些保密信息,协议结束后,接收方通过一定的方式得到其中部分保密信息。而发送方并不知道接受方到底学习了哪部分保密信息。
164.aby中三种分享方式包括:
165.算术分享(a):秘密s=share_0 share_1。
166.布尔分享(b):秘密s=share_0 share_1。
167.姚氏电路(y):秘密s=lsb(share_0 share_1)。
168.本地数据,合作方数据选用的秘密分享的形式是算术分享:
169.查询节点将本地数据和合作方数据分别将各自数据拆分成两份秘密share_0、share_1(随机数):
170.算术分享(a):秘密s=share_0 share_1。
171.查询节点将本地数据的多个随机数随机的将其中一份在本地,另外一份发给合作节点。
172.查询节点将秘密分享后的本地数据,合作方数据,使用aby作为底层安全协议。aby可以根据特定计算需求在算术分享、布尔分享、姚氏电路三种方法中切换,转换形式有:
173.a2y:算术分享

姚氏电路。
174.y2b:姚氏电路

布尔分享。
175.b2a:布尔分享

算术分享。
176.b2y::布尔分享

姚氏电路。
177.查询节点基于aby以及ot协议,本方法中在其上层构建了psi/oep基础算子。查询节点实现的隐私数据融合操作的join操作、aggregation聚合操作的功能算子是基于psi以及oep、aby等基础算子实现,其中:
178.psi:基于秘密分享的隐私集合求交,主要用于join操作中,求出第一组合作方秘密随机数,第二组本地秘密随机数中用于求交的候选属性的共同集合
179.oep:用于对数据集合的大小进行隐私保护:

在aggregate聚合操作中,往往会进行排序、去重操作,去重后的数据集的大小一般会小于原来的数据集;

在join操作中,返回的交集的大小一般会小于原先的数据的大小;为了防止上述操作后,通过数据集的大小来逆推数据的具体信息,需要对aggregate、join的中间结果进行扩展成原来数据的大小,本发明实施例中,查询节点对基于秘密分享的数据使用oep的方法对中间结果进行映射成原来数据集的大小,且映射结果也是秘密分享的方式。
180.本发明实施例中,查询节点在进行连接计算操作后,将得到第一中间数据集合内的数据个数恢复为中间数据集合内的个数,得到第二中间数据集合,再进行排序或去重操作,得到第一秘密结果,进而可以有效地防止数据被破译,提高了数据安全性。
181.在一些实施例中,参见图7,图7为本发明实施例提供的数据查询方法的一个可选
的流程示意图,图1示出的s103可以通过s115实现,将结合各步骤进行说明。
182.s115、运行密文计算文件,利用第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式的转换策略,进行多个计算操作得到第一秘密结果。
183.本发明实施例中,查询节点运行密文计算文件,利用第二组本地秘密随机数与第一组合作方秘密随机数,结合预定秘密分享形式与其他秘密分享形式的转换策略,进行多个计算操作得到第一秘密结果。
184.在一些实施例中,参见图8,图8为本发明实施例提供的数据查询方法的一个可选的流程示意图,图7示出的s115-s104可以通过s116-s119实现,将结合各步骤进行说明。
185.s116、对第二组本地秘密随机数与第一组合作方秘密随机数进行第1计算操作,并将计算结果转换为第2计算操作匹配的秘密分享形式的第一随机数集合。
186.本发明实施例中,查询节点对第二组本地秘密随机数与第一组合作方秘密随机数进行第1计算操作,并将计算结果转换为第2计算操作匹配的秘密分享形式的第一随机数集合。
187.其中,多个计算操作包括:k个计算操作,k为大于1的正整数。
188.本发明实施例中,若第2计算操作匹配的秘密分享形式为姚氏电路,则查询节点将计算结果转化为姚氏电路形式的第一随机数集合。
189.s117、对第一随机数集合进行第2计算操作,并将计算结果转换为第3计算操作匹配的秘密分享形式的第二随机数集合,直至对第k-1随机数集合进行第k计算操作后停止,得到第一秘密结果。
190.本发明实施例中,查询节点对第一随机数集合进行第2计算操作,并将计算结果转换为第3计算操作匹配的秘密分享形式的第二随机数集合,直至对第k-1随机数集合进行第k计算操作后停止,得到第一秘密结果。
191.s118、将第一秘密结果和第二秘密结果组合,得到中间秘密结果。
192.本发明实施例中,查询节点将第一秘密结果和第二秘密结果组合,得到中间秘密结果。
193.s119、对中间秘密结果进行解密,得到查询结果。
194.本发明实施例中,查询节点对中间秘密结果进行解密,得到查询结果。
195.本发明实施例中,查询节点对中间秘密结果按照对应的秘密分享形式的解密方法进行解密,得到查询结果。
196.本发明实施例中,查询节点在每进行一次计算操作之后,都会将计算结果转换成下一次计算匹配的秘密分享形式的数据,进而可以提高数据查询的效率。
197.在一些实施例中,参见图9,图9为本发明实施例提供的数据查询方法的一个可选的流程示意图,将结合各步骤进行说明。
198.s201、接收查询节点发送的密文计算文件和第一组本地秘密随机数;密文计算文件是查询节点基于获取的查询语句信息确定出来的。
199.本发明实施例中,合作节点接收查询节点发送的密文计算文件和第一组本地秘密随机数;密文计算文件是查询节点基于获取的查询语句信息确定出来的。
200.s202、响应密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,将第一组合作方秘密随机数反馈给查询节点。
201.本发明实施例中,合作节点响应密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,将第一组合作方秘密随机数反馈给查询节点。
202.s203、利用第二组合作方秘密随机数与第一组本地秘密随机数,结合秘密分享形式转换策略确定出第二秘密结果。
203.本发明实施例中,合作节点利用第二组合作方秘密随机数与第一组本地秘密随机数,结合秘密分享形式转换策略确定出第二秘密结果。其中,第一组合作方秘密随机数和第二组合作方秘密随机数,是将合作方数据按照预定秘密分享形式拆分得到的两组随机数。
204.s204、将第二秘密结果反馈给查询节点,供查询节点根据第二秘密结果与确定的第一秘密结果,确定出查询结果。
205.本发明实施例中,合作节点将第二秘密结果反馈给查询节点,供查询节点根据第二秘密结果与确定的第一秘密结果,确定出查询结果。
206.由于本方案利用查询语句信息可以确定出密文计算文件,进行进行数据查询,准备时间短,而且利用了秘密分享形式转换策略,使得各个秘密分享形式之间可以相互转换,提高了计算效率,进而提高了确定出查询结果的效率。
207.在一些实施例中,图9示出的s202可以通过s205-s206实现,将结合各步骤进行说明。
208.s205、响应密文计算文件,在数据库中确定出合作方数据。
209.本发明实施例中,合作节点响应密文计算文件,在数据库中确定出合作方数据。
210.本发明实施例中,合作节点解析密文计算文件,得到条件查询标识符和查询源数据标识符。合作节点按照预设程序指令基于条件查询标识符和查询源数据标识符,在数据库中确定出合作方数据。
211.s206、基于合作方数据确定出第一组合作方秘密随机数。
212.本发明实施例中,合作节点基于合作方数据确定出第一组合作方秘密随机数。
213.本发明实施例中,合作节点将合作方数据以算术分享的形式编译成多个合作方随机数。将多个合作方随机数分为两组,得到第一组合作方秘密随机数和第二组合作方秘密随机数。
214.本发明实施例中,合作节点根据密文计算文件,确定出第一组合作方秘密随机数,由于密文计算文件是查询节点通过获取的查询语句信息确定出的,缩短了准备时间,进而提高了确定出查询数据结果的效率。
215.在一些实施例中,图9示出的s203可以通过s207-s208实现,将结合各步骤进行说明。
216.s207、对第二组合作方秘密随机数,与第一组本地秘密随机数进行第1计算操作,并将计算结果转换为第2计算操作匹配的秘密分享形式的第一合作方随机数集合。
217.本发明实施例中,合作节点对第二组合作方秘密随机数,与第一组本地秘密随机数进行第1计算操作,并将计算结果转换为第2计算操作匹配的秘密分享形式的第一合作方随机数集合。
218.s208、对第一合作方随机数集合进行第2计算操作,并将计算结果转换为第3计算操作匹配的秘密分享形式的第二合作方随机数集合,直至对第k-1合作方随机数集合进行第k计算操作后停止,得到第二秘密结果。
219.本发明实施例中,合作节点对第一合作方随机数集合进行第2计算操作,并将计算结果转换为第3计算操作匹配的秘密分享形式的第二合作方随机数集合,直至对第k-1合作方随机数集合进行第k计算操作后停止,得到第二秘密结果。
220.在一些实施例中,图9示出的s203可以通过s209-s212实现,将结合各步骤进行说明。
221.s209、运行密文计算文件,按照预定属性求第二组合作方秘密随机数与第一组本地秘密随机数的合作方随机数交集。
222.本发明实施例中,合作节点运行密文计算文件,按照预定属性求第二组合作方秘密随机数与第一组本地秘密随机数的合作方随机数交集。
223.s210、将合作方随机数交集内的随机数转换成姚氏电路形式的数据,得到合作方中间数据集合。
224.本发明实施例中,合作节点将合作方随机数交集内的随机数转换成姚氏电路形式的数据,得到合作方中间数据集合。
225.s211、对合作方中间数据集合进行连接计算操作,得到第一合作方中间数据集合,并将第一合作方中间数据集合内的数据个数恢复为合作方中间数据集合内的个数,得到第二合作方中间数据集合。
226.本发明实施例中,合作节点对合作方中间数据集合进行连接计算操作,得到第一合作方中间数据集合,并将第一合作方中间数据集合内的数据个数恢复为合作方中间数据集合内的个数,得到第二合作方中间数据集合。
227.s212、对第二合作方中间数据集合进行排序或去重操作,得到第二秘密结果。
228.本发明实施例中,合作节点对第二合作方中间数据集合进行排序或去重操作,得到第二秘密结果。
229.在一些实施例中,参见图10,图10为本发明实施例提供的数据查询方法的交互示意图,将结合各步骤进行说明。
230.s301、查询节点基于获取的查询语句信息,确定出密文计算文件。
231.步骤s301的详细实现与s101的实现一致,此处不再赘述。
232.s302、查询节点将密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收合作节点响应密文计算文件反馈的第一组合作方秘密随机数。
233.步骤s302的详细实现与s102的实现一致,此处不再赘述。
234.s303、查询节点基于密文计算文件,利用预知的第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果。
235.步骤s303的详细实现与s103的实现一致,此处不再赘述。
236.s304、查询节点接收合作节点反馈的第二秘密结果,结合第一秘密结果与第二秘密结果,确定出查询结果。
237.步骤s304的详细实现与s104的实现一致,此处不再赘述。
238.参见图11,图11为本发明实施例提供的数据查询装置的结构示意图一。
239.本发明实施例还提供了一种数据查询装置800,应用于查询节点,包括:确定单元803和第一接收单元804。
240.确定单元803,用于基于获取的查询语句信息,确定出密文计算文件;
241.第一接收单元804,用于将所述密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收所述合作节点响应所述密文计算文件反馈的第一组合作方秘密随机数;
242.所述确定单元803,还用于基于所述密文计算文件,利用预知的第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果;所述第一组本地秘密随机数和所述第二组本地秘密随机数,是将所述本地数据按照预定秘密分享形式拆分得到的两组随机数;
243.所述确定单元804,还用于接收所述合作节点反馈的第二秘密结果,结合所述第一秘密结果与所述第二秘密结果,确定出查询结果;所述第二秘密结果和所述第一组合作方秘密随机数是所述合作节点基于所述密文计算文件确定出来的。
244.本发明实施例中,数据查询装置800中的确定单元803用于将所述查询语句信息通过语法分析形成查询列表;所述查询列表包括:条件查询标识符、查询源数据标识符及多个计算操作标识符;确定出所述条件查询标识符、所述查询源数据标识符及所述多个计算操作标识符,各自对应的预设代码模板;利用所述预设代码模板将所述查询列表转换成查询代码,再将所述查询代码编译形成所述密文计算文件。
245.本发明实施例中,数据查询装置800用于获取所述查询语句信息;所述查询语句信息是用户根据预知的所述本地数据与合作方数据的数据结构编写的。
246.本发明实施例中,所述预定秘密分享形式包括:算术分享;数据查询装置800中的确定单元803用于将所述本地数据以所述算术分享的形式编译成多个随机数;将所述多个随机数分为两组,得到所述第一组本地秘密随机数和所述第二组本地秘密随机数。
247.本发明实施例中,数据查询装置800中的确定单元803用于运行所述密文计算文件,按照预定属性求所述第二组本地秘密随机数与所述第一组合作方秘密随机数的随机数交集;所述预定属性为所述本地数据与所述合作方数据包含的数据属性;将所述随机数交集内的随机数转换成姚氏电路形式的数据,得到中间数据集合;对所述中间数据集合进行连接计算操作,得到第一中间数据集合,并将所述第一中间数据集合内的数据个数恢复为所述中间数据集合内的个数,得到第二中间数据集合;对所述第二中间数据集合进行排序或去重操作,得到所述第一秘密结果。
248.本发明实施例中,数据查询装置800中的确定单元803用于运行所述密文计算文件,利用所述第二组本地秘密随机数与所述第一组合作方秘密随机数,结合秘密分享形式转换策略,进行多个计算操作得到所述第一秘密结果。
249.本发明实施例中,所述多个计算操作包括k个计算操作;k为大于1的正整数;数据查询装置800中的确定单元803用于对所述第二组本地秘密随机数与所述第一组合作方秘密随机数进行第1计算操作,并将计算结果转换为第2计算操作匹配的秘密分享形式的第一随机数集合;对所述第一随机数集合进行所述第2计算操作,并将计算结果转换为第3计算操作匹配的秘密分享形式的第二随机数集合,直至对第k-1随机数集合进行第k计算操作后停止,得到所述第一秘密结果。
250.本发明实施例中,数据查询装置800中的确定单元803用于将所述第一秘密结果和所述第二秘密结果组合,得到中间秘密结果;对所述中间秘密结果进行解密,得到所述查询结果。
251.本发明实施例中,通过确定单元803基于获取的查询语句信息,确定出密文计算文件;通过第一接收单元804将密文计算文件与确定出的本地数据的第一组本地秘密随机数发送给合作节点,接收合作节点响应密文计算文件反馈的第一组合作方秘密随机数;通过确定单元803基于密文计算文件,利用预知的第二组本地秘密随机数与第一组合作方秘密随机数,结合秘密分享形式转换策略确定出第一秘密结果;第一组本地秘密随机数和第二组本地秘密随机数,是将本地数据按照预定秘密分享形式拆分得到的两组随机数;通过确定单元803接收合作节点反馈的第二秘密结果,结合第一秘密结果与第二秘密结果,确定出查询结果;第二秘密结果和第一组合作方秘密随机数是合作节点基于所述密文计算文件确定出来的。由于本方案利用查询语句信息可以确定出密文计算文件,进行进行数据查询,准备时间短,而且利用了秘密分享形式转换策略,使得各个秘密分享形式之间可以相互转换,提高了计算效率,进而提高了确定出查询结果的效率。
252.需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的数据查询方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台数据查询装置(可以是个人计算机等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
253.对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
254.对应地,本发明实施例提供一种数据查询装置,包括第一存储器802和第一处理器801,所述第一存储器802存储有可在第一处理器801上运行的计算机程序,所述第一处理器801执行所述程序时实现上述方法中的步骤。
255.这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
256.需要说明的是,图12为本发明实施例提供的数据查询装置的一种硬件实体示意图一,如图12所示,该数据查询装置800的硬件实体包括:第一处理器801和第一存储器802,其中;
257.第一处理器801通常控制数据查询装置800的总体操作。
258.第一存储器802配置为存储由第一处理器801可执行的指令和应用,还可以缓存待第一处理器801以及数据查询装置800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
259.参见图13,图13为本发明实施例提供的数据查询装置的结构示意图二。
260.本发明实施例还提供了一种数据查询装置900,应用于合作节点,包括:第二接收单元903、响应单元904和反馈单元905。
261.第二接收单元903,用于接收查询节点发送的密文计算文件和第一组本地秘密随
机数;所述密文计算文件是所述查询节点基于获取的查询语句信息确定出来的;
262.响应单元904,用于响应所述密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,将所述第一组合作方秘密随机数反馈给所述查询节点;
263.所述响应单元904,还用于利用第二组合作方秘密随机数与所述第一组本地秘密随机数,结合秘密分享形式转换策略确定出第二秘密结果;所述第一组合作方秘密随机数和所述第二组合作方秘密随机数,是将所述合作方数据按照所述预定秘密分享形式拆分得到的两组随机数;
264.反馈单元905,用于将所述第二秘密结果反馈给所述查询节点,供所述查询节点根据所述第二秘密结果与确定的第一秘密结果,确定出查询结果。
265.本发明实施例中,数据查询装置900中的响应单元904用于运行所述密文计算文件,在数据库中确定出所述合作方数据;基于所述合作方数据确定出所述第一组合作方秘密随机数。
266.本发明实施例中,数据查询装置900中的响应单元904用于解析所述密文计算文件,得到条件查询标识符和查询源数据标识符;基于所述条件查询标识符和所述查询源数据标识符,在数据库中确定出所述合作方数据。
267.本发明实施例中,数据查询装置900中的响应单元904用于将所述合作方数据以所述算术分享的形式编译成多个合作方随机数;将所述多个合作方随机数分为两组,得到所述第一组合作方秘密随机数和所述第二组合作方秘密随机数。
268.本发明实施例中,通过第二接收单元903,用于接收查询节点发送的密文计算文件和第一组本地秘密随机数;所述密文计算文件是所述查询节点基于获取的查询语句信息确定出来的;响应单元904,用于响应所述密文计算文件,确定出合作方数据对应的第一组合作方秘密随机数,将所述第一组合作方秘密随机数反馈给所述查询节点;所述响应单元904,还用于利用第二组合作方秘密随机数与所述第一组本地秘密随机数,结合秘密分享形式转换策略确定出第二秘密结果;所述第一组合作方秘密随机数和所述第二组合作方秘密随机数,是将所述合作方数据按照所述预定秘密分享形式拆分得到的两组随机数;反馈单元905,用于将所述第二秘密结果反馈给所述查询节点,供所述查询节点根据所述第二秘密结果与确定的第一秘密结果,确定出查询结果。由于本方案利用查询语句信息可以确定出密文计算文件,进行进行数据查询,准备时间短,而且利用了秘密分享形式转换策略,使得各个秘密分享形式之间可以相互
269.对应地,本发明实施例提供一种数据查询装置,包括第二存储器902和第二处理器901,所述第二存储器902存储有可在第二处理器901上运行的计算机程序,所述第二处理器901执行所述程序时实现上述方法中的步骤。
270.这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
271.需要说明的是,图14为本发明实施例提供的数据查询装置的一种硬件实体示意图二,如图14所示,该数据查询装置900的硬件实体包括:第二处理器901和第二存储器902,其中;
272.第二处理器901通常控制数据查询装置900的总体操作。
273.第二存储器902配置为存储由第二处理器901可执行的指令和应用,还可以缓存待第二处理器901以及数据查询装置900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
274.以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献