数据查询方法和装置
技术领域
本说明书涉及互联网技术领域,尤其涉及一种数据查询方法和装置。
背景技术
在商业合作中,通常会保护数据持有方的数据隐私安全,然而,数据查询方的隐私也是重要的商业信息,需要被保护。如何在充分保护双方数据隐私的前提下,完成数据查询,成为一个亟待解决的问题。
发明内容
有鉴于此,本说明书提供一种数据查询方法和装置。
具体地,本说明书是通过如下技术方案实现的:
一种数据查询方法,应用于面向数据持有方的数据查询,所述数据持有方持有若干数据,所述若干数据分别对应不同的数据标识,所述方法应用于数据查询方,包括:
确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
发送所述若干数据标识及其加密权数至所述数据持有方,以供所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
接收所述数据持有方返回的加权结果,并对所述加权结果进行同态解密,得到查询结果。
一种数据查询方法,应用于数据持有方,所述数据持有方持有若干数据,所述若干数据分别对应不同的数据标识,所述方法包括:
接收数据查询方发送的若干数据标识及其加密权数,所述若干数据标识中包括目标数据标识和干扰数据标识,所述加密权数是所述数据查询方对所述数据标识的查询权数进行同态加密后得到,所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
根据所述加密权数对所述数据标识对应的数据进行加权;
将加权结果返回给所述数据查询方,以供所述数据查询方对所述加权结果进行同态解密,得到查询结果。
一种数据查询方法,应用于面向数据持有方的数据查询,所述数据持有方持有若干数据,所述若干数据分别对应不同的数据标识,所述方法包括:
数据查询方确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
所述数据查询方分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
所述数据查询方发送所述若干数据标识及其加密权数至所述数据持有方;
所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
所述数据持有方将加权结果返回给所述数据查询方;
所述数据查询方对所述加权结果进行同态解密,得到查询结果。
一种数据查询装置,应用于面向数据持有方的数据查询,所述数据持有方持有若干数据,所述若干数据分别对应不同的数据标识,所述装置应用于数据查询方,包括:
确定单元,确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
加密单元,分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
发送单元,发送所述若干数据标识及其加密权数至所述数据持有方,以供所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
解密单元,接收所述数据持有方返回的加权结果,并对所述加权结果进行同态解密,得到查询结果。
一种数据查询装置,应用于数据持有方,所述数据持有方持有若干数据,所述若干数据分别对应不同的数据标识,所述装置包括:
接收单元,接收数据查询方发送的若干数据标识及其加密权数,所述若干数据标识中包括目标数据标识和干扰数据标识,所述加密权数是所述数据查询方对所述数据标识的查询权数进行同态加密后得到,所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
加权单元,根据所述加密权数对所述数据标识对应的数据进行加权;
返回单元,将加权结果返回给所述数据查询方,以供所述数据查询方对所述加权结果进行同态解密,得到查询结果。
一种数据查询装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与数据查询逻辑对应的机器可执行指令,所述处理器被促使:
确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
发送所述若干数据标识及其加密权数至所述数据持有方,以供所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
接收所述数据持有方返回的加权结果,并对所述加权结果进行同态解密,得到查询结果。
由以上描述可以看出,在进行数据查询时,本说明书可将目标数据标识的查询权数设置为1,将干扰数据标识的查询权数设置为0,然后利用同态加密算法实现对目标数据标识的查询,既可确保数据查询方的查询隐私,又可确保数据持有方的数据隐私安全。
附图说明
图1是本说明书一示例性实施例示出的一种数据查询方法的流程示意图。
图2是本说明书一示例性实施例示出的一种数据查询装置的框图。
图3是本说明书一示例性实施例示出的另一种数据查询装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在大数据时代,不同的服务提供商可能持有同一查询对象的不同业务数据,在这种情况下,服务提供商在处理用户业务时,可能需要到其他服务提供商处查询该用户的业务数据。然而,由于不同企业之间的竞争关系或者隐私保护的考虑,在查询过程中既要保护数据持有方的数据隐私,又要保护数据查询方的数据隐私。
例如,银行持有各用户的借款数额,P2P(peer-to-peer,互联网金融点对点借贷)平台面向用户提供个人借款业务,用户在P2P平台借款时,P2P平台会去银行查询用户的借款数额,然后综合用户的其他信贷情况决定是否借款以及借款额度。
在这个例子中,银行是数据持有方,用户的借款数额是数据持有方持有的数据,用户身份证号是所述数据的数据标识,P2P平台是数据查询方。假设张三申请在P2P平台借款,在本例中,要确保P2P平台可以从银行查询到张三的借款数额,但是银行并不知晓P2P平台要查询的人是张三,同时又不会泄露其他用户在银行的借款数额。
图1是本说明书一示例性实施例示出的一种数据查询方法的流程示意图。
请参考图1,所述数据查询方法可以包括以下步骤:
步骤102,数据查询方确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识。
在本实施例中,目标数据标识是数据查询方真正想要查询的数据标识,而干扰数据标识不是数据查询方要查询的数据标识。
数据查询方在进行数据查询时,可选取一个或多个干扰数据标识,将目标数据标识和干扰数据标识混合在一起,以隐藏数据查询方真正想要查询的目标数据标识。
其中,干扰数据标识的数量可以由数据查询方随机确定,也可预先设置固定的数量,本说明书对此不作特殊限制。
步骤104,数据查询方分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0。
在本实施例中,数据查询方可生成用于同态加解密的公私钥对,然后用公钥加密各个数据标识的查询权数,得到所述数据标识的加密权数。
在本实施例中,假设数据查询方真正要查询的目标数据标识是ID1,数据查询方随机挑选4个干扰数据标识,分别为ID2至ID5,请参考表1,可生成表1所示的加密权数示例。
数据标识 |
查询权数 |
加密权数 |
ID1 |
1 |
Enc(1) |
ID2 |
0 |
Enc(0) |
ID3 |
0 |
Enc(0) |
ID4 |
0 |
Enc(0) |
ID5 |
0 |
Enc(0) |
表1
步骤106,数据查询方发送所述若干数据标识及其加密权数至所述数据持有方。
在一个例子中,数据查询方可先发送前述步骤102确定的若干数据标识至数据持有方,然后再发送所述若干数据标识的加密权数至数据持有方。
例如,数据查询方可随机将所述若干数据标识进行排序,然后发送对应的数据标识序列至数据持有方。仍以表1为例,数据查询方可先发送数据标识序列(ID1,ID2,ID3,ID4,ID5)。
接着,数据查询方可将各个数据标识的加密权数按照数据标识的排序进行排序,生成加密权数序列,然后将该加密权数序列发送至数据持有方。仍以表1为例,数据查询方接着可发送加密权数序列(Enc(1),Enc(0),Enc(0),Enc(0),Enc(0))。
采用序列的形式发送数据标识及其加密权数,传输量较小,并且数据持有方根据序列元素的排列顺序即可获知数据标识及其加密权数之间的对应关系,实现简单。
在另一个例子中,数据查询方可将所述若干数据标识及其加密权数一同发送给数据持有方,本说明书对此不作特殊限制。
步骤108,数据持有方根据所述加密权数对所述数据标识对应的数据进行加权。
在本实施例中,数据持有方在接收到数据标识及其加密权数之后,可分别查找每个数据标识对应的数据,然后根据所述加密权数对所述数据标识对应的数据进行加权,得到加权结果。
例如,依据使用的同态加密算法,数据持有方可采用数据查询方的公钥分别对数据标识对应的数据进行加密处理,得到对应的加密数据,并用加密数据乘以对应的加密权数,然后再求和,得到加权结果。
其中,所述数据查询方的公钥可由数据查询方单独发送给数据持有方,也可随同数据标识及其加密权数一同发送,本说明书对此不作特殊限制。
数据标识 |
查询权数 |
加密权数 |
数据 |
加密数据 |
ID1 |
1 |
Enc(1) |
X1 |
Enc(X1) |
ID2 |
0 |
Enc(0) |
X2 |
Enc(X2) |
ID3 |
0 |
Enc(0) |
X3 |
Enc(X3) |
ID4 |
0 |
Enc(0) |
X4 |
Enc(X4) |
ID5 |
0 |
Enc(0) |
X5 |
Enc(X5) |
表2
仍以表1的示例为例,请参考表2,假设数据标识1对应的数据是X1,数据标识2对应的数据是X2,以此类推,数据持有方在本步骤可计算得到加权结果:
Enc(1)×Enc(X1)+Enc(0)×Enc(X2)+Enc(0)×Enc(X3)+Enc(0)×Enc(X4)+Enc(0)×Enc(X5)。
步骤110,数据持有方将加权结果返回给所述数据查询方。
步骤112,数据查询方对所述加权结果进行同态解密,得到查询结果。
在本实施例中,数据查询方对数据持有方的加权结果进行同态解密,以表2为例,对加权结果进行同态解密,可得到解密结果:
1×X1+0×X2+0×X3+0×X4+0×X5,
即解密结果是X1,是目标数据标识ID1对应的数据。换言之,解密结果就是查询结果。
由此,数据查询方可查询到目标数据标识对应的数据,同时,无法获知各个干扰数据标识对应的数据,实现对数据持有方的数据隐私安全的有效保护。
值得注意的是,对0进行同态加密之后得到的是随机数,因此即便所有干扰数据标识的查询权数都是0,数据持有方也无法区分目标数据标识和干扰数据标识,从而有效保护数据查询方所要查询的数据。
由以上描述可以看出,在进行数据查询时,本实施例可将目标数据标识的查询权数设置为1,将干扰数据标识的查询权数设置为0,然后利用同态加密算法实现对目标数据标识的查询,既可确保数据查询方的查询隐私,又可确保数据持有方的数据隐私安全。
本说明书记载的数据查询方案还可实现对多个目标数据标识对应数据总和的查询。
例如,李四申请在P2P平台借款,P2P平台要在银行查询李四及其爱人王五的借款总数额。
在本例中,假设李四的身份证号是ID6,王五的身份证号是ID7,ID6和ID7都是目标数据标识。P2P平台又选取两个干扰用户,其身份证号分别为ID8和ID9。
表3
请参考表3,P2P平台可生成表3所示的加密权数示例。P2P平台进而可将表3所示的数据标识及其加密权数发送给银行。
|
数据标识 |
查询权数 |
加密权数 |
数据 |
加密数据 |
李四 |
ID6 |
1 |
Enc(1) |
X6 |
Enc(X6) |
干扰用户 |
ID8 |
0 |
Enc(0) |
X8 |
Enc(X8) |
王五 |
ID7 |
1 |
Enc(1) |
X7 |
Enc(X7) |
干扰用户 |
ID9 |
0 |
Enc(0) |
X9 |
Enc(X9) |
表4
请参考表4,假设李四的借款数额是X6,干扰用户ID8的借款数额是X8,王五的借款数额是X7,干扰用户ID9的借款数额是X9,数据持有方在本步骤可计算得到加权结果:
Enc(1)×Enc(X6)+Enc(0)×Enc(X8)+Enc(1)×Enc(X7)+Enc(0)×Enc(X9)。
P2P平台对上述加权结果进行解密,可得到解密结果:
1×X6+0×X8+1×X7+0×X9
即解密结果是X6+X7,是李四和王五借款的总数额。
由此,P2P平台可查询到李四和王五的借款总数额,但无法获知干扰用户的借款数额,同时银行并不知晓P2P平台查询的人是李四和王五,实现查询双方的数据隐私安全。
与前述数据查询方法的实施例相对应,本说明书还提供了数据查询装置的实施例。
请参考图2,本说明书数据查询装置200应用于面向数据持有方的数据查询,所述数据持有方持有若干数据,所述若干数据分别对应不同的数据标识,所述装置应用于数据查询方,所述装置200可包括:
确定单元201,确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
加密单元202,分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
发送单元203,发送所述若干数据标识及其加密权数至所述数据持有方,以供所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
解密单元204,接收所述数据持有方返回的加权结果,并对所述加权结果进行同态解密,得到查询结果。
请参考图3,本说明书数据查询装置300应用于数据持有方,可包括:
接收单元301,接收数据查询方发送的若干数据标识及其加密权数,所述若干数据标识中包括目标数据标识和干扰数据标识,所述加密权数是所述数据查询方对所述数据标识的查询权数进行同态加密后得到,所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
加权单元302,根据所述加密权数对所述数据标识对应的数据进行加权;
返回单元303,将加权结果返回给所述数据查询方,以供所述数据查询方对所述加权结果进行同态解密,得到查询结果。
可选的,所述加权单元302:
采用所述数据查询方的公钥分别对所述数据标识对应的数据进行加密,得到加密数据;
根据所述加密权数对所述数据标识对应的加密数据进行加权,得到加权结果。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述数据查询方法的实施例相对应,本说明书还提供一种数据查询装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与查询逻辑对应的机器可执行指令,所述处理器被促使:
确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
发送所述若干数据标识及其加密权数至所述数据持有方,以供所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
接收所述数据持有方返回的加权结果,并对所述加权结果进行同态解密,得到查询结果。
可选的,当所述若干数据标识中包括1个目标数据标识时,所述查询结果是所述目标数据标识对应的数据;
当所述若干数据标识中包括多个目标数据标识时,所述查询结果是所述多个目标数据标识对应数据的求和结果。
与前述数据查询方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
确定本次查询所使用的若干数据标识,所述若干数据标识中包括目标数据标识和干扰数据标识;
分别对每个数据标识的查询权数进行同态加密,得到每个数据标识的加密权数,其中所述目标数据标识的查询权数是1,所述干扰数据标识的查询权数是0;
发送所述若干数据标识及其加密权数至所述数据持有方,以供所述数据持有方根据所述加密权数对所述数据标识对应的数据进行加权;
接收所述数据持有方返回的加权结果,并对所述加权结果进行同态解密,得到查询结果。
可选的,当所述若干数据标识中包括1个目标数据标识时,所述查询结果是所述目标数据标识对应的数据;
当所述若干数据标识中包括多个目标数据标识时,所述查询结果是所述多个目标数据标识对应数据的求和结果。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。