CN113378228A - 私有信息检索方法、装置、设备及存储介质 - Google Patents
私有信息检索方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113378228A CN113378228A CN202110728101.0A CN202110728101A CN113378228A CN 113378228 A CN113378228 A CN 113378228A CN 202110728101 A CN202110728101 A CN 202110728101A CN 113378228 A CN113378228 A CN 113378228A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- query
- private information
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004891 communication Methods 0.000 claims abstract description 108
- 239000013598 vector Substances 0.000 claims abstract description 74
- 230000011218 segmentation Effects 0.000 claims abstract description 30
- 238000011084 recovery Methods 0.000 claims abstract description 25
- 230000001960 triggered effect Effects 0.000 claims abstract description 12
- 239000012634 fragment Substances 0.000 claims description 31
- 238000013467 fragmentation Methods 0.000 claims description 23
- 238000006062 fragmentation reaction Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000126 substance Substances 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及安全技术领域,揭露了一种私有信息检索方法,包括:与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块,基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端,接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。本发明还提出一种私有信息检索装置、电子设备以及计算机可读存储介质。本发明可以解决私有信息检索的效率较低的问题。
Description
技术领域
本发明涉及安全技术领域,尤其涉及一种私有信息检索方法、装置、电子设备及计算机可读存储介质。
背景技术
私有信息检索(Private Information Retrieval,PIR)是指用户在检索数据库时,向数据库服务器方隐藏身份信息,从而保护用户的隐私信息不被泄露。私有信息检索问题作为安全多方计算的一个重要分支,在商业竞争、军事合作等多个领域(专利数据库查询、股票数据库查询、数字产品的网上交易、云计算等)有着广泛应用。
现有技术下,广泛使用PIR协议或PIR模型来进行私有信息检索,但都要求服务端及客户端有较强的计算能力来完成信息的检索,从而导致私有信息检索效率不高。
发明内容
本发明提供一种私有信息检索方法、装置、设备及存储介质,其主要目的在于解决私有信息检索的效率较低的问题。
为实现上述目的,本发明提供的一种应用于客户端的私有信息检索方法,包括:
与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
可选地,所述与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块,包括:
与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
可选地,所述基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,包括:
将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
可选地,所述利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据,包括:
根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
可选地,所述随机碎片多项式为:
F(x)=S+a1*x1+a2*x2+…+at-1*xt-1mod(p)
其中,F(x)为所述秘密共享协议生成的随机碎片多项式,S为所述查询数据,p为素数,且S<p,a1、a2、...、at-1为随机选取的自然数,t为预设的数据碎片的数量。
为实现上述目的,本发明提供的一种应用于服务端的私有信息检索方法,包括:
与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
为了解决上述问题,本发明还提供一种应用于客户端的私有信息检索装置,所述装置包括:
数据块协商模块,用于与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
查询请求切分模块,用于基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
数据复原模块,用于接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
为了解决上述问题,本发明还提供一种应用于服务端的私有信息检索装置,所述装置包括:
数据块预缓存模块,用于与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
查询数据切分模块,用于获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的私有信息检索方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的私有信息检索方法。
本发明通过与服务端进行秘密通信来确定查询数据块,可以提前锁定数据查询的业务范围,提高了数据查询速度,进而提高了信息检索的效率。并且通过秘密共享协议对数据查询请求进行切分及对服务端查询到的数据进行数据复原,可以有效确保数据传输的安全性。因此本发明提出的私有信息检索方法、装置、电子设备及计算机可读存储介质,可以解决私有信息检索的效率较低的问题。
附图说明
图1为本发明第一方法实施例提供的私有信息检索方法的流程示意图;
图2为本发明第二方法实施例提供的私有信息检索方法的流程示意图;
图3为本发明一实施例提供的私有信息检索装置的功能模块图;
图4为本发明一实施例提供的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种私有信息检索方法。所述私有信息检索方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述私有信息检索方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
参照图1所示,为本发明第一方法实施例提供的私有信息检索方法的流程示意图。在本实施例中,所述私有信息检索方法应用于客户端,包括:
S10、与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块。
具体地,所述与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块,包括:
与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
本发明实施例中,所述秘密通信可以为安全套接字协议(SSL,Secure SocketsLayer)通信,SSL通信基于数据加密技术可确保数据在网络上的传输过程中不会被截取及窃听。所述通信连接可以为传输控制协议(TCP,Transmission Control Protocol)连接,TCP连接可以在服务端及客户端上提供可靠的端到端字节流传输协议。所述握手信息中包括了客户端支持的算法列表、公钥、私钥等有用信息。所述回复信息包括了服务端确定的本次通信所需要的算法及服务端的证书等信息,以便客户端能够认证服务端。
例如,在一次SSL通信中,客户端首先建立到服务端的TCP连接,然后发送一个ClientHello消息(即握手信息)启动SSL握手,该信息包含了客户端支持的算法列表和一些有用消息(公钥、私钥等);服务端根据握手信息回复一个ServerHello消息(即回复信息),该回复信息确定了这次通信所需要的算法及服务端自己的证书,以便客户端能够认证自己;客户端认证完成后,生成一个秘密消息,然后利用公钥进行加密发送至服务端;服务端用自己的私钥解密后,确定本次SSL通信成功。
本发明一可选实施例中,数据存储在二维矩阵里,并按一定的编码方式以独立数据矩阵块的形式空间有序的存放在服务端的数据库中,因此根据预设的业务查询范围对数据库中的数据进行分块,确定本次通信的查询数据块。
例如,客户端需要查询财务数据,则确定数据库中存储有财务数据的独立数据矩阵块为本次查询的查询数据块。
本发明实施例中,通过提前协商查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。
S11、基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端。
本发明实施例中,所述秘密共享协议可以为Shamir秘密共享协议,该协议可以将检索到的数据分成许多部分,而只需要这些部分的一小部分即可重建检索到的数据。
具体地,所述基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,包括:
将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
本发明实施例中,比如,客户端按照Shamir秘密共享协议将一个查询请求处理成1个向量密码共享流(l为服务器数量),对所述向量密码共享流进行随机选取得到随机序列a1,a2,…,al,并使用Shamir秘密共享协议生成随机碎片多项式f1,f2,...,fr(r随机取),填充计算得到所述数据查询向量pi=[f1(ai),f2(ai),...,fr(ai)](1<=i<=1),并根据所述数据查询向量生成数据查询语句并发送至对应的服务端。
例如,客户端根据Shamir秘密共享协议将一个查询请求处理成四条查询语句,并分别发送至服务端对应的四个数据库。
本发明一可选实施中,所述随机碎片多项式为:
F(x)=S+a1*x1+a2*x2+…+at-1*xt-1mod(p)
其中,F(x)为所述秘密共享协议生成的随机碎片多项式,S为所述查询数据,p为素数,且S<p,a1、a2、…、at-1为随机选取的自然数,t为预设的数据碎片的数量。
本发明实施例中,基于所述Shamir秘密共享协议将一个查询请求进行切分,可以保证客户端查询用户的隐私性。
S12、接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
具体地,所述利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据,包括:
根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
本发明实施例中,可以基于Shamir秘密共享协议的数据复原多项式对服务端反馈的目标检索数据进行数据复原。
本发明一可选实施例中,所述数据复原多项式可以为:
其中,F(x)’为随机碎片多项式F(x)对应的数据复原多项式,p为对应随机碎片多项式F(x)中的素数,t为数据碎片的数量,(xi,yi)为第i组数据碎片,(xj,yj)为第j组数据碎片。
例如,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。
本发明通过与服务端进行秘密通信来确定查询数据块,可以提前锁定数据查询的业务范围,提高了数据查询速度,进而提高了信息检索的效率。并且通过秘密共享协议对数据查询请求进行切分及对服务端查询到的数据进行数据复原,可以有效确保数据传输的安全性。因此本发明提出的应用于客户端的私有信息检索方法,可以解决私有信息检索的效率较低的问题。
参照图2所示,为本发明另一实施例提供的应用于服务端的私有信息检索方法的流程示意图。在本实施例中,所述私有信息检索方法包括:
S20、与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块。
本发明实施例中,所述查询数据块是指服务端数据库中存储数据的二维矩阵块。
详细地,所述与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块,包括:
对本地数据库进行业务划分,根据预设的业务查询范围从所述本地数据库中确定本次通信所需要的查询数据块;
对确定的所述查询数据块进行预缓存,得到所述预缓存虚拟数据块。
本发明一可选实施例中,一个查询数据块对应一个预缓存虚拟数据块。
本发明一可选实施例中,不同数据库中存储有不同业务的数据,同一数据库中也会根据业务的范围划分为不同的数据块,根据秘密通信提前确定查询数据块,可以提高数据查询的效率,进而提高信息检索的效率。
S21、获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
具体地,所述基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,包括:
利用所述数据查询向量中的随机碎片多项式对所述预缓存虚拟数据块中检索到的查询数据进行碎片化处理,得到包括数据碎片的目标检索数据。
本发明实施例中,可以利用数据查询语句从所述预缓存虚拟数据块中检索到查询数据,并利用所述数据查询向量中的随机碎片多项式对查询数据进行碎片化处理,得到多个数据碎片,在本次查询结束后会清除所述预缓存数据块避免占用过多内存。
本发明实施例中,例如,一个财务查询请求根据秘密通信协商有四个查询数据块,服务端利用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)的目标检索数据。
本发明实施例中,服务端利用数据块预缓存的方式可以减少数据库数据检索的时间,从而进一步提高数据查询的速率。
本发明通过与客户端的秘密通信来确定查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。并且通过查询数据块预缓存的方式来进行数据检索,可以减少数据库数据检索的时间,从而提高信息检索的效率。同时,通过数据查询向量对查询到的数据进行数据切分,可以提高数据传输的速度,从而提高信息检索的效率。因此本发明提出的应用于服务端的私有信息检索方法,可以解决私有信息检索的效率较低的问题。
如图3所示,是本发明一实施例提供的私有信息检索装置的功能模块图。
本发明所述私有信息检索装置可以分为第一私有信息检索装置100以及第二私有信息检索装置200。其中,所述第一私有信息检索装置100可以安装于客户端中,所述第二私有信息检索装置200可以安装在服务端中。
根据实现的功能,所述第一私有信息检索装置100可以包括数据块协商模块101、查询请求切分模块102及数据复原模块103;以及所述第二私有信息检索装置200可以包括数据块预缓存模块201及查询数据切分模块202。
本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,所述第一私有信息检索装置100中各模块/单元的功能如下:
所述数据块协商模块101,用于与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块。
具体地,所述数据块协商模块101通过执行下述操作与所述服务端协商查询数据块:
与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
本发明实施例中,所述秘密通信可以为安全套接字协议(SSL,Secure SocketsLayer)通信,SSL通信基于数据加密技术可确保数据在网络上的传输过程中不会被截取及窃听。所述通信连接可以为传输控制协议(TCP,Transmission Control Protocol)连接,TCP连接可以在服务端及客户端上提供可靠的端到端字节流传输协议。所述握手信息中包括了客户端支持的算法列表、公钥、私钥等有用信息。所述回复信息包括了服务端确定的本次通信所需要的算法及服务端的证书等信息,以便客户端能够认证服务端。
例如,在一次SSL通信中,客户端首先建立到服务端的TCP连接,然后发送一个ClientHello消息(即握手信息)启动SSL握手,该信息包含了客户端支持的算法列表和一些有用消息(公钥、私钥等);服务端根据握手信息回复一个ServerHello消息(即回复信息),该回复信息确定了这次通信所需要的算法及服务端自己的证书,以便客户端能够认证自己;客户端认证完成后,生成一个秘密消息,然后利用公钥进行加密发送至服务端;服务端用自己的私钥解密后,确定本次SSL通信成功。
本发明一可选实施例中,数据存储在二维矩阵里,并按一定的编码方式以独立数据矩阵块的形式空间有序的存放在服务端的数据库中,因此根据预设的业务查询范围对数据库中的数据进行分块,确定本次通信的查询数据块。
例如,客户端需要查询财务数据,则确定数据库中存储有财务数据的独立数据矩阵块为本次查询的查询数据块。
本发明实施例中,通过提前协商查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。
所述查询请求切分模块102,用于基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端。
本发明实施例中,所述秘密共享协议可以为Shamir秘密共享协议,该协议可以将检索到的数据分成许多部分,而只需要这些部分的一小部分即可重建检索到的数据。
具体地,查询请求切分模块102通过执行下述操作得到数据查询向量:
将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
本发明实施例中,比如,客户端按照Shamir秘密共享协议将一个查询请求处理成l个向量密码共享流(l为服务器数量),对所述向量密码共享流进行随机选取得到随机序列a1,a2,...,al,并使用Shamir秘密共享协议生成随机碎片多项式f1,f2,...,fr(r随机取),填充计算得到所述数据查询向量pi=[f1(ai),f2(ai),...,fr(ai)](1<=i<=l),并根据所述数据查询向量生成数据查询语句并发送至对应的服务端。
例如,客户端根据Shamir秘密共享协议将一个查询请求处理成四条查询语句,并分别发送至服务端对应的四个数据库。
本发明一可选实施中,所述随机碎片多项式为:
F(x)=S+a1*x1+a2*x2+…+at-1*xt-1mod(p)
其中,F(x)为所述秘密共享协议生成的随机碎片多项式,S为所述查询数据,p为素数,且S<p,a1、a2、…、at-1为随机选取的自然数,t为预设的数据碎片的数量。
本发明实施例中,基于所述Shamir秘密共享协议将一个查询请求进行切分,可以保证客户端查询用户的隐私性。
所述数据复原模块103,用于接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
具体地,所述数据复原模块103通过执行下述操作得到查询数据:
根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
本发明实施例中,可以基于Shamir秘密共享协议的数据复原多项式对服务端反馈的目标检索数据进行数据复原。
本发明一可选实施例中,所述数据复原多项式可以为:
其中,F(x)’为随机碎片多项式F(x)对应的数据复原多项式,p为对应随机碎片多项式F(x)中的素数,t为数据碎片的数量,(xi,yi)为第i组数据碎片,(xj,yj)为第j组数据碎片。
例如,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。
本发明通过与服务端进行秘密通信来确定查询数据块,可以提前锁定数据查询的业务范围,提高了数据查询速度,进而提高了信息检索的效率。并且通过秘密共享协议对数据查询请求进行切分及对服务端查询到的数据进行数据复原,可以有效确保数据传输的安全性。因此本发明提出的应用于客户端的私有信息检索装置,可以解决私有信息检索的效率较低的问题。
在本实施例中,所述第二私有信息检索装置200中各模块/单元的功能如下:
所述数据块预缓存模块201,用于与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块。
本发明实施例中,所述查询数据块是指服务端数据库中存储数据的二维矩阵块。
详细地,所述数据块预缓存模块201通过执行下述操作得到预缓存虚拟数据块:
对本地数据库进行业务划分,根据预设的业务查询范围从所述本地数据库中确定本次通信所需要的查询数据块;
对确定的所述查询数据块进行预缓存,得到所述预缓存虚拟数据块。
本发明一可选实施例中,一个查询数据块对应一个预缓存虚拟数据块。
本发明一可选实施例中,不同数据库中存储有不同业务的数据,同一数据库中也会根据业务的范围划分为不同的数据块,根据秘密通信提前确定查询数据块,可以提高数据查询的效率,进而提高信息检索的效率。
所述查询数据切分模块202,用于获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
具体地,所述查询数据切分模块202通过执行下述操作得到目标检索数据:
利用所述数据查询向量中的随机碎片多项式对所述预缓存虚拟数据块中检索到的查询数据进行碎片化处理,得到包括数据碎片的目标检索数据。
本发明实施例中,可以利用数据查询语句从所述预缓存虚拟数据块中检索到查询数据,并利用所述数据查询向量中的随机碎片多项式对查询数据进行碎片化处理,得到多个数据碎片,在本次查询结束后会清除所述预缓存数据块避免占用过多内存。
本发明实施例中,例如,一个财务查询请求根据秘密通信协商有四个查询数据块,服务端利用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)的目标检索数据。
本发明实施例中,服务端利用数据块预缓存的方式可以减少数据库数据检索的时间,从而进一步提高数据查询的速率。
本发明通过与客户端的秘密通信来确定查询数据块,可以确定数据查询的业务范围,提高了数据查询速度。并且通过查询数据块预缓存的方式来进行数据检索,可以减少数据库数据检索的时间,从而提高信息检索的效率。同时,通过数据查询向量对查询到的数据进行数据切分,可以提高数据传输的速度,从而提高信息检索的效率。因此本发明提出的应用于服务端的私有信息检索装置,可以解决私有信息检索的效率较低的问题。
如图4所示,是本发明一实施例提供的电子设备的结构示意图,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。
存储器113,用于存放计算机程序,如私有信息检索程序。
在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的私有信息检索方法。
详细的,当所述电子设备为客户端电子设备时,所述私有信息检索方法包括:
与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
进一步地,当所述电子设备为服务端电子设备时,所述私有信息检索方法包括:
与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
上述通信总线114可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线114可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口112用于上述电子设备与其他设备之间的通信。
存储器113可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器113还可以是至少一个位于远离前述处理器111的存储装置。
上述的处理器111可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被客户端的电子设备的处理器所执行时,可以实现:
与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
进一步地,所述计算机程序在被服务端的电子设备的处理器所执行时,可以实现:
与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种私有信息检索方法,其特征在于,所述方法应用于客户端,包括:
与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
2.如权利要求1所述的私有信息检索方法,其特征在于,所述与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块,包括:
与服务端建立通信连接,在所述通信连接成功时,向所述服务端发送握手信息;
接收所述服务端基于所述握手信息反馈的回复信息,对所述回复信息进行认证,在认证成功后,向所述服务端发送加密消息;
在所述服务端解密所述加密消息时,与所述服务端建立秘密通信;
在所述秘密通信建立成功时,根据预设的业务查询范围与所述服务端协商查询数据块。
3.如权利要求1所述的私有信息检索方法,其特征在于,所述基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,包括:
将所述数据查询请求切分成预设个数的向量密码共享流,对所述向量密码共享流进行随机选取,得到随机序列;
利用所述秘密共享协议生成随机碎片多项式,填充所述随机碎片多项式至所述随机序列中,得到所述数据查询向量。
4.如权利要求3所述的私有信息检索方法,其特征在于,所述利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据,包括:
根据所述随机碎片多项式对应的数据复原多项式对所述目标检索数据中的数据碎片进行复原,得到所述查询数据。
5.如权利要求3所述的私有信息检索方法,其特征在于,所述随机碎片多项式为:
F(x)=S+a1*x1+a2*x2+…+at-1*xt-1mod(p)
其中,F(x)为所述秘密共享协议生成的随机碎片多项式,S为所述查询数据,p为素数,且S<p,a1、a2、…、at-1为随机选取的自然数,t为预设的数据碎片的数量。
6.一种私有信息检索方法,其特征在于,所述方法应用于服务端,包括:
与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
7.一种私有信息检索装置,其特征在于,所述装置应用于客户端,所述装置包括:
数据块协商模块,用于与服务端建立秘密通信,在所述秘密通信建立成功时,与所述服务端协商查询数据块;
查询请求切分模块,用于基于所述秘密通信的秘密共享协议对用户触发的数据查询请求进行请求切分,得到数据查询向量,并将所述数据查询向量发送至所述服务端;
数据复原模块,用于接收所述服务端基于所述数据查询向量从所述查询数据块中检索到的目标检索数据,利用所述秘密共享协议对所述目标检索数据进行数据复原,得到查询数据。
8.一种私有信息检索装置,其特征在于,所述装置应用于服务端,所述装置包括:
数据块预缓存模块,用于与客户端建立秘密通信,在所述秘密通信建立成功时,与所述客户端协商查询数据块,对所述查询数据块进行预缓存,得到预缓存虚拟数据块;
查询数据切分模块,用于获取所述客户端发送的数据查询向量,基于所述数据查询向量对所述预缓存虚拟数据块中的数据进行数据切分,得到目标检索数据,并将所述目标检索数据发送至所述客户端。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任意一项所述的私有信息检索方法,或执行如权利要求6所述的私有信息检索方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的私有信息检索方法,或执行如权利要求6所述的私有信息检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728101.0A CN113378228A (zh) | 2021-06-29 | 2021-06-29 | 私有信息检索方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728101.0A CN113378228A (zh) | 2021-06-29 | 2021-06-29 | 私有信息检索方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113378228A true CN113378228A (zh) | 2021-09-10 |
Family
ID=77579858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110728101.0A Withdrawn CN113378228A (zh) | 2021-06-29 | 2021-06-29 | 私有信息检索方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113378228A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836173A (zh) * | 2021-10-11 | 2021-12-24 | 百度在线网络技术(北京)有限公司 | 数据的处理方法、装置、电子设备及存储介质 |
CN114647662A (zh) * | 2022-05-13 | 2022-06-21 | 富算科技(上海)有限公司 | 数据检索方法、装置、电子设备、存储介质 |
WO2024066013A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 实现隐私信息检索 |
-
2021
- 2021-06-29 CN CN202110728101.0A patent/CN113378228A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836173A (zh) * | 2021-10-11 | 2021-12-24 | 百度在线网络技术(北京)有限公司 | 数据的处理方法、装置、电子设备及存储介质 |
CN113836173B (zh) * | 2021-10-11 | 2024-05-31 | 百度在线网络技术(北京)有限公司 | 数据的处理方法、装置、电子设备及存储介质 |
CN114647662A (zh) * | 2022-05-13 | 2022-06-21 | 富算科技(上海)有限公司 | 数据检索方法、装置、电子设备、存储介质 |
WO2024066013A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 实现隐私信息检索 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347835B (zh) | 信息传输方法、客户端、服务器以及计算机可读存储介质 | |
CN113378228A (zh) | 私有信息检索方法、装置、设备及存储介质 | |
CN106603233B (zh) | 远程开标型招投标系统用的加解密方法 | |
US9673984B2 (en) | Session key cache to maintain session keys | |
CN112926051B (zh) | 多方安全计算方法和装置 | |
CN114730420A (zh) | 用于生成签名的系统和方法 | |
CN114329599B (zh) | 一种数据查询方法、装置及存储介质 | |
CN112751673B (zh) | 一种基于端边云协同的可监管数据隐私共享方法 | |
CN105141602A (zh) | 基于收敛加密的文件所有权证明方法 | |
CN113193957B (zh) | 一种与量子网络分离的量子密钥服务方法与系统 | |
CN110868290B (zh) | 一种无中心管控的密钥服务方法与装置 | |
CN114143108B (zh) | 一种会话加密方法、装置、设备及存储介质 | |
CN111082929A (zh) | 一种加密即时通讯的实现方法 | |
CN112307504B (zh) | 一种安全多方计算方法、装置、电子设备及存储介质 | |
CN116032667B (zh) | 支持高效更新的在线匿踪查询方法、系统及相关设备 | |
CN111711607B (zh) | 一种基于区块链的流式微服务可信加载与验证方法 | |
CN109783456B (zh) | 去重结构搭建方法、去重方法、文件取回方法、去重系统 | |
CN113836571B (zh) | 基于云和区块链的医疗数据拥有终端位置匹配方法及系统 | |
CN113612616A (zh) | 一种基于区块链的车辆通信方法和装置 | |
CN110784318B (zh) | 群密钥更新方法、装置、电子设备、存储介质及通信系统 | |
CN114362947B (zh) | 一种广域量子密钥服务方法与系统 | |
US9602287B2 (en) | Method and system for signed stateless data transfer | |
CN110958285B (zh) | 一种基于区块链的数据存储系统 | |
CN110958211B (zh) | 一种基于区块链的数据处理系统及方法 | |
CN113761585A (zh) | 一种数据处理方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210910 |