私有信息检索方法、装置、设备及存储介质与流程

文档序号:26592295发布日期:2021-09-10 21:19阅读:214来源:国知局
私有信息检索方法、装置、设备及存储介质与流程

1.本发明涉及安全技术领域,尤其涉及一种私有信息检索方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.私有信息检索(private information retrieval,pir)是指用户在检索数据库时,向数据库服务器方隐藏身份信息,从而保护用户的隐私信息不被泄露。私有信息检索问题作为安全多方计算的一个重要分支,在商业竞争、军事合作等多个领域(专利数据库查询、股票数据库查询、数字产品的网上交易、云计算等)有着广泛应用。
3.现有技术下,广泛使用pir协议或pir模型来进行私有信息检索,但都要求服务端及客户端有较强的计算能力来完成信息的检索,从而导致私有信息检索效率不高。


技术实现要素:

4.本发明提供一种私有信息检索方法、装置、设备及存储介质,其主要目的在于解决私有信息检索的效率较低的问题。
5.为实现上述目的,本发明提供的一种应用于客户端的私有信息检索方法,包括:
6.与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
7.基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
8.接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
9.可选地,所述与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块,包括:
10.与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
11.接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
12.在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
13.在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
14.可选地,所述基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,包括:
15.将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
16.利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
17.可选地,所述利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据,包括:
18.根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
19.可选地,所述随机碎片多项式为:
20.f(x)=s+a1*x1+a2*x2+

+a
t
‑1*x
t
‑1mod(p)
21.其中,f(x)为所述秘密共享协议生成的随机碎片多项式,s为所述查询数据,p为素数,且s<p,a1、a2、...、a
t
‑1为随机选取的自然数,t为预设的数据碎片的数量。
22.为实现上述目的,本发明提供的一种应用于服务端的私有信息检索方法,包括:
23.与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
24.获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
25.为了解决上述问题,本发明还提供一种应用于客户端的私有信息检索装置,所述装置包括:
26.数据块协商模块,用于与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
27.查询请求切分模块,用于基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
28.数据复原模块,用于接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
29.为了解决上述问题,本发明还提供一种应用于服务端的私有信息检索装置,所述装置包括:
30.数据块预缓存模块,用于与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
31.查询数据切分模块,用于获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
32.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
33.存储器,存储至少一个指令;及
34.处理器,执行所述存储器中存储的指令以实现上述所述的私有信息检索方法。
35.为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的私有信息检索方法。
36.本发明通过与服务端进行秘密通信来确定查询数据块,可以提前锁定数据查询的业务范围,提高了数据查询速度,进而提高了信息检索的效率。并且通过秘密共享协议对数据查询请求进行切分及对服务端查询到的数据进行数据复原,可以有效确保数据传输的安
全性。因此本发明提出的私有信息检索方法、装置、电子设备及计算机可读存储介质,可以解决私有信息检索的效率较低的问题。
附图说明
37.图1为本发明第一方法实施例提供的私有信息检索方法的流程示意图;
38.图2为本发明第二方法实施例提供的私有信息检索方法的流程示意图;
39.图3为本发明一实施例提供的私有信息检索装置的功能模块图;
40.图4为本发明一实施例提供的电子设备的结构示意图。
41.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
42.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
43.本技术实施例提供一种私有信息检索方法。所述私有信息检索方法的执行主体包括但不限于服务端、终端等能够被配置为执行本技术实施例提供的该方法的电子设备中的至少一种。换言之,所述私有信息检索方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
44.参照图1所示,为本发明第一方法实施例提供的私有信息检索方法的流程示意图。在本实施例中,所述私有信息检索方法应用于客户端,包括:
45.s10、与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块。
46.具体地,所述与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块,包括:
47.与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
48.接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
49.在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
50.在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
51.本发明实施例中,所述秘密通信可以为安全套接字协议(ssl,secure sockets layer)通信,ssl通信基于数据加密技术可确保数据在网络上的传输过程中不会被截取及窃听。所述通信连接可以为传输控制协议(tcp,transmission control protocol)连接,tcp连接可以在服务端及客户端上提供可靠的端到端字节流传输协议。所述握手信息中包括了客户端支持的算法列表、公钥、私钥等有用信息。所述回复信息包括了服务端确定的本次通信所需要的算法及服务端的证书等信息,以便客户端能够认证服务端。
52.例如,在一次ssl通信中,客户端首先建立到服务端的tcp连接,然后发送一个clienthello消息(即握手信息)启动ssl握手,该信息包含了客户端支持的算法列表和一些有用消息(公钥、私钥等);服务端根据握手信息回复一个serverhello消息(即回复信息),该回复信息确定了这次通信所需要的算法及服务端自己的证书,以便客户端能够认证自
己;客户端认证完成后,生成一个秘密消息,然后利用公钥进行加密发送至服务端;服务端用自己的私钥解密后,确定本次ssl通信成功。
53.本发明一可选实施例中,数据存储在二维矩阵里,并按一定的编码方式以独立数据矩阵块的形式空间有序的存放在服务端的数据库中,因此根据预设的业务查询范围对数据库中的数据进行分块,确定本次通信的查询数据块。
54.例如,客户端需要查询财务数据,则确定数据库中存储有财务数据的独立数据矩阵块为本次查询的查询数据块。
55.本发明实施例中,通过提前协商查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。
56.s11、基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端。
57.本发明实施例中,所述秘密共享协议可以为shamir秘密共享协议,该协议可以将检索到的数据分成许多部分,而只需要这些部分的一小部分即可重建检索到的数据。
58.具体地,所述基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,包括:
59.将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
60.利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
61.本发明实施例中,比如,客户端按照shamir秘密共享协议将一个查询请求处理成1个向量密码共享流(l为服务器数量),对所述向量密码共享流进行随机选取得到随机序列a1,a2,

,al,并使用shamir秘密共享协议生成随机碎片多项式f1,f2,...,fr(r随机取),填充计算得到所述数据查询向量pi=[f1(ai),f2(ai),...,fr(ai)](1<=i<=1),并根据所述数据查询向量生成数据查询语句并发送至对应的服务端。
[0062]
例如,客户端根据shamir秘密共享协议将一个查询请求处理成四条查询语句,并分别发送至服务端对应的四个数据库。
[0063]
本发明一可选实施中,所述随机碎片多项式为:
[0064]
f(x)=s+a1*x1+a2*x2+

+a
t
‑1*x
t
‑1mod(p)
[0065]
其中,f(x)为所述秘密共享协议生成的随机碎片多项式,s为所述查询数据,p为素数,且s<p,a1、a2、

、a
t
‑1为随机选取的自然数,t为预设的数据碎片的数量。
[0066]
本发明实施例中,基于所述shamir秘密共享协议将一个查询请求进行切分,可以保证客户端查询用户的隐私性。
[0067]
s12、接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
[0068]
具体地,所述利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据,包括:
[0069]
根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
[0070]
本发明实施例中,可以基于shamir秘密共享协议的数据复原多项式对服务端反馈
的目标检索数据进行数据复原。
[0071]
本发明一可选实施例中,所述数据复原多项式可以为:
[0072][0073]
其中,f(x)’为随机碎片多项式f(x)对应的数据复原多项式,p为对应随机碎片多项式f(x)中的素数,t为数据碎片的数量,(x
i
,y
i
)为第i组数据碎片,(x
j
,y
j
)为第j组数据碎片。
[0074]
例如,p=23,利用3组秘密碎片(1,7)(3,6)(4,0)带入数据恢复多项式可得s=f(0)’=7*(0

3)*(0

4)*((1

3)*(1

4))1+6*(0

1)*(0

4)*((3

1)*(3

4))
‑1+0*(0

1)*(0

3)*((4

1)*(4
‑3‑
1mod(23),可得查询数据s=2。
[0075]
本发明通过与服务端进行秘密通信来确定查询数据块,可以提前锁定数据查询的业务范围,提高了数据查询速度,进而提高了信息检索的效率。并且通过秘密共享协议对数据查询请求进行切分及对服务端查询到的数据进行数据复原,可以有效确保数据传输的安全性。因此本发明提出的应用于客户端的私有信息检索方法,可以解决私有信息检索的效率较低的问题。
[0076]
参照图2所示,为本发明另一实施例提供的应用于服务端的私有信息检索方法的流程示意图。在本实施例中,所述私有信息检索方法包括:
[0077]
s20、与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块。
[0078]
本发明实施例中,所述查询数据块是指服务端数据库中存储数据的二维矩阵块。
[0079]
详细地,所述与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块,包括:
[0080]
对本地数据库进行业务划分,根据预设的业务查询范围从所述本地数据库中确定本次通信所需要的查询数据块;
[0081]
对确定的所述查询数据块进行预缓存,得到所述预缓存虚拟数据块。
[0082]
本发明一可选实施例中,一个查询数据块对应一个预缓存虚拟数据块。
[0083]
本发明一可选实施例中,不同数据库中存储有不同业务的数据,同一数据库中也会根据业务的范围划分为不同的数据块,根据秘密通信提前确定查询数据块,可以提高数据查询的效率,进而提高信息检索的效率。
[0084]
s21、获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
[0085]
具体地,所述基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,包括:
[0086]
利用所述数据查询向量中的随机碎片多项式对所述预缓存虚拟数据块中检索到的查询数据进行碎片化处理,得到包括数据碎片的目标检索数据。
[0087]
本发明实施例中,可以利用数据查询语句从所述预缓存虚拟数据块中检索到查询数据,并利用所述数据查询向量中的随机碎片多项式对查询数据进行碎片化处理,得到多
个数据碎片,在本次查询结束后会清除所述预缓存数据块避免占用过多内存。
[0088]
本发明实施例中,例如,一个财务查询请求根据秘密通信协商有四个查询数据块,服务端利用java预缓存项目(如oscache等)将四个查询数据块预缓存成四个虚拟数据块,利用所述财务查询请求的查询语句对四个虚拟数据块进行检索,得到查询数据s=2,利用随机碎片多项式f(x)=2+3*x1+2*x2mod(23),取x1=1,x2=2,x3=3,x4=4,可得y1=7,y2=16,y3=6,y4=0,即包含四组数据碎片(1,7),(2,16),(3,6),(4,0)的目标检索数据。
[0089]
本发明实施例中,服务端利用数据块预缓存的方式可以减少数据库数据检索的时间,从而进一步提高数据查询的速率。
[0090]
本发明通过与客户端的秘密通信来确定查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。并且通过查询数据块预缓存的方式来进行数据检索,可以减少数据库数据检索的时间,从而提高信息检索的效率。同时,通过数据查询向量对查询到的数据进行数据切分,可以提高数据传输的速度,从而提高信息检索的效率。因此本发明提出的应用于服务端的私有信息检索方法,可以解决私有信息检索的效率较低的问题。
[0091]
如图3所示,是本发明一实施例提供的私有信息检索装置的功能模块图。
[0092]
本发明所述私有信息检索装置可以分为第一私有信息检索装置100以及第二私有信息检索装置200。其中,所述第一私有信息检索装置100可以安装于客户端中,所述第二私有信息检索装置200可以安装在服务端中。
[0093]
根据实现的功能,所述第一私有信息检索装置100可以包括数据块协商模块101、查询请求切分模块102及数据复原模块103;以及所述第二私有信息检索装置200可以包括数据块预缓存模块201及查询数据切分模块202。
[0094]
本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0095]
在本实施例中,所述第一私有信息检索装置100中各模块/单元的功能如下:
[0096]
所述数据块协商模块101,用于与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块。
[0097]
具体地,所述数据块协商模块101通过执行下述操作与所述服务端协商查询数据块:
[0098]
与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
[0099]
接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
[0100]
在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
[0101]
在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
[0102]
本发明实施例中,所述秘密通信可以为安全套接字协议(ssl,secure sockets layer)通信,ssl通信基于数据加密技术可确保数据在网络上的传输过程中不会被截取及窃听。所述通信连接可以为传输控制协议(tcp,transmission control protocol)连接,tcp连接可以在服务端及客户端上提供可靠的端到端字节流传输协议。所述握手信息中包括了客户端支持的算法列表、公钥、私钥等有用信息。所述回复信息包括了服务端确定的本次通信所需要的算法及服务端的证书等信息,以便客户端能够认证服务端。
[0103]
例如,在一次ssl通信中,客户端首先建立到服务端的tcp连接,然后发送一个clienthello消息(即握手信息)启动ssl握手,该信息包含了客户端支持的算法列表和一些有用消息(公钥、私钥等);服务端根据握手信息回复一个serverhello消息(即回复信息),该回复信息确定了这次通信所需要的算法及服务端自己的证书,以便客户端能够认证自己;客户端认证完成后,生成一个秘密消息,然后利用公钥进行加密发送至服务端;服务端用自己的私钥解密后,确定本次ssl通信成功。
[0104]
本发明一可选实施例中,数据存储在二维矩阵里,并按一定的编码方式以独立数据矩阵块的形式空间有序的存放在服务端的数据库中,因此根据预设的业务查询范围对数据库中的数据进行分块,确定本次通信的查询数据块。
[0105]
例如,客户端需要查询财务数据,则确定数据库中存储有财务数据的独立数据矩阵块为本次查询的查询数据块。
[0106]
本发明实施例中,通过提前协商查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。
[0107]
所述查询请求切分模块102,用于基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端。
[0108]
本发明实施例中,所述秘密共享协议可以为shamir秘密共享协议,该协议可以将检索到的数据分成许多部分,而只需要这些部分的一小部分即可重建检索到的数据。
[0109]
具体地,查询请求切分模块102通过执行下述操作得到数据查询向量:
[0110]
将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
[0111]
利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
[0112]
本发明实施例中,比如,客户端按照shamir秘密共享协议将一个查询请求处理成l个向量密码共享流(l为服务器数量),对所述向量密码共享流进行随机选取得到随机序列a1,a2,...,al,并使用shamir秘密共享协议生成随机碎片多项式f1,f2,...,fr(r随机取),填充计算得到所述数据查询向量pi=[f1(ai),f2(ai),...,fr(ai)](1<=i<=l),并根据所述数据查询向量生成数据查询语句并发送至对应的服务端。
[0113]
例如,客户端根据shamir秘密共享协议将一个查询请求处理成四条查询语句,并分别发送至服务端对应的四个数据库。
[0114]
本发明一可选实施中,所述随机碎片多项式为:
[0115]
f(x)=s+a1*x1+a2*x2+

+a
t
‑1*x
t
‑1mod(p)
[0116]
其中,f(x)为所述秘密共享协议生成的随机碎片多项式,s为所述查询数据,p为素数,且s<p,a1、a2、

、a
t
‑1为随机选取的自然数,t为预设的数据碎片的数量。
[0117]
本发明实施例中,基于所述shamir秘密共享协议将一个查询请求进行切分,可以保证客户端查询用户的隐私性。
[0118]
所述数据复原模块103,用于接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
[0119]
具体地,所述数据复原模块103通过执行下述操作得到查询数据:
[0120]
根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
[0121]
本发明实施例中,可以基于shamir秘密共享协议的数据复原多项式对服务端反馈的目标检索数据进行数据复原。
[0122]
本发明一可选实施例中,所述数据复原多项式可以为:
[0123][0124]
其中,f(x)’为随机碎片多项式f(x)对应的数据复原多项式,p为对应随机碎片多项式f(x)中的素数,t为数据碎片的数量,(x
i
,y
i
)为第i组数据碎片,(x
j
,y
j
)为第j组数据碎片。
[0125]
例如,p=23,利用3组秘密碎片(1,7)(3,6)(4,0)带入数据恢复多项式可得s=f(0)’=7*(0

3)*(0

4)*((1

3)*(1

4))1+6*(0

1)*(0

4)*((3

1)*(3

4))
‑1+0*(0

1)*(0

3)*((4

1)*(4
‑3‑
1mod(23),可得查询数据s=2。
[0126]
本发明通过与服务端进行秘密通信来确定查询数据块,可以提前锁定数据查询的业务范围,提高了数据查询速度,进而提高了信息检索的效率。并且通过秘密共享协议对数据查询请求进行切分及对服务端查询到的数据进行数据复原,可以有效确保数据传输的安全性。因此本发明提出的应用于客户端的私有信息检索装置,可以解决私有信息检索的效率较低的问题。
[0127]
在本实施例中,所述第二私有信息检索装置200中各模块/单元的功能如下:
[0128]
所述数据块预缓存模块201,用于与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块。
[0129]
本发明实施例中,所述查询数据块是指服务端数据库中存储数据的二维矩阵块。
[0130]
详细地,所述数据块预缓存模块201通过执行下述操作得到预缓存虚拟数据块:
[0131]
对本地数据库进行业务划分,根据预设的业务查询范围从所述本地数据库中确定本次通信所需要的查询数据块;
[0132]
对确定的所述查询数据块进行预缓存,得到所述预缓存虚拟数据块。
[0133]
本发明一可选实施例中,一个查询数据块对应一个预缓存虚拟数据块。
[0134]
本发明一可选实施例中,不同数据库中存储有不同业务的数据,同一数据库中也会根据业务的范围划分为不同的数据块,根据秘密通信提前确定查询数据块,可以提高数据查询的效率,进而提高信息检索的效率。
[0135]
所述查询数据切分模块202,用于获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
[0136]
具体地,所述查询数据切分模块202通过执行下述操作得到目标检索数据:
[0137]
利用所述数据查询向量中的随机碎片多项式对所述预缓存虚拟数据块中检索到的查询数据进行碎片化处理,得到包括数据碎片的目标检索数据。
[0138]
本发明实施例中,可以利用数据查询语句从所述预缓存虚拟数据块中检索到查询数据,并利用所述数据查询向量中的随机碎片多项式对查询数据进行碎片化处理,得到多个数据碎片,在本次查询结束后会清除所述预缓存数据块避免占用过多内存。
[0139]
本发明实施例中,例如,一个财务查询请求根据秘密通信协商有四个查询数据块,服务端利用java预缓存项目(如oscache等)将四个查询数据块预缓存成四个虚拟数据块,利用所述财务查询请求的查询语句对四个虚拟数据块进行检索,得到查询数据s=2,利用随机碎片多项式f(x)=2+3*x1+2*x2mod(23),取x1=1,x2=2,x3=3,x4=4,可得y1=7,y2=16,y3=6,y4=0,即包含四组数据碎片(1,7),(2,16),(3,6),(4,0)的目标检索数据。
[0140]
本发明实施例中,服务端利用数据块预缓存的方式可以减少数据库数据检索的时间,从而进一步提高数据查询的速率。
[0141]
本发明通过与客户端的秘密通信来确定查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。并且通过查询数据块预缓存的方式来进行数据检索,可以减少数据库数据检索的时间,从而提高信息检索的效率。同时,通过数据查询向量对查询到的数据进行数据切分,可以提高数据传输的速度,从而提高信息检索的效率。因此本发明提出的应用于服务端的私有信息检索装置,可以解决私有信息检索的效率较低的问题。
[0142]
如图4所示,是本发明一实施例提供的电子设备的结构示意图,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。
[0143]
存储器113,用于存放计算机程序,如私有信息检索程序。
[0144]
在本技术一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的私有信息检索方法。
[0145]
详细的,当所述电子设备为客户端电子设备时,所述私有信息检索方法包括:
[0146]
与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
[0147]
基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
[0148]
接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
[0149]
进一步地,当所述电子设备为服务端电子设备时,所述私有信息检索方法包括:
[0150]
与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
[0151]
获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
[0152]
上述通信总线114可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线114可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0153]
通信接口112用于上述电子设备与其他设备之间的通信。
[0154]
存储器113可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non

volatilememory),例如至少一个磁盘存储器。可选的,存储器113还可以是至少一个位于远离前述处理器111的存储装置。
[0155]
上述的处理器111可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field

programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0156]
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被客户端的电子设备的处理器所执行时,可以实现:
[0157]
与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
[0158]
基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
[0159]
接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
[0160]
进一步地,所述计算机程序在被服务端的电子设备的处理器所执行时,可以实现:
[0161]
与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
[0162]
获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
[0163]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0164]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0165]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0166]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0167]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0168]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0169]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1