CN116521969A - 一种数据检索方法、服务端、系统及相关设备 - Google Patents

一种数据检索方法、服务端、系统及相关设备 Download PDF

Info

Publication number
CN116521969A
CN116521969A CN202310316094.2A CN202310316094A CN116521969A CN 116521969 A CN116521969 A CN 116521969A CN 202310316094 A CN202310316094 A CN 202310316094A CN 116521969 A CN116521969 A CN 116521969A
Authority
CN
China
Prior art keywords
ciphertext
server
query
dbss
data
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.)
Granted
Application number
CN202310316094.2A
Other languages
English (en)
Other versions
CN116521969B (zh
Inventor
叶飞
田海博
李秉帅
刘君广
张煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Publication of CN116521969A publication Critical patent/CN116521969A/zh
Application granted granted Critical
Publication of CN116521969B publication Critical patent/CN116521969B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据检索方法,具体地,服务端接收客户端发送的包括查询密文的查询请求,服务端包括多个DBS,并且,不同DBS用于存储数据库中不同部分的数据项;服务端根据查询密文,利用多个DBS并行执行数据检索过程,得到目标检索结果,其中,每个DBS利用多个加速器从该DBS已存储的数据项中并行检索数据,从而服务端向客户端发送该目标检索结果,以满足客户端的检索请求。如此,服务端不仅可以实现密态查询,而且,在DBS粒度上以加速器粒度上实现并行化检索,可以有效减小服务端反馈目标检索结果的时延、提高服务端反馈目标检索结果的效率,从而提高用户的数据检索体验。此外,本申请还提供了对应的服务端、系统及相关设备。

Description

一种数据检索方法、服务端、系统及相关设备
本申请要求于2023年2月28日提交中国国家知识产权局、申请号为202310181355.4、申请名称为“一种信息检索系统、方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及人工智能技术领域,尤其涉及一种数据检索方法、服务端、系统及相关设备。
背景技术
隐私数据检索(private information retrieval,PIR),也可称之为匿踪查询,是一种用于保护用户查询隐私的技术,其允许用户(通过客户端)向服务端的数据库提交查询请求而不泄露查询信息及检索出的数据项。
实际应用场景中,服务端的数据库中所包括的数据条目的数量可能较大,如数据库中的数据条目的数量可能高达227,这使得服务端基于客户端发送的查询请求从数据库中检索出用户所需的数据项时,存在较大的时间开销,如服务端从227个数据条目中检索出用户所需的数据项可能需要1个多小时,从而降低了用户的数据检索体验。因此,如何在实现保护用户查询隐私的前提下,减小服务端反馈数据时延、提高反馈效率,成为亟需解决的重要问题。
发明内容
有鉴于此,本申请实施例提供了一种数据检索方法,以在实现保护用户查询隐私的前提下,减小服务端反馈数据时延、提高反馈效率。本申请还提供了对应的服务端、数据检索系统、计算设备集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请实施例提供了一种数据检索方法,该方法可以由服务端执行,具体地,服务端接收客户端发送的包括查询密文的查询请求,该查询密文例如可以是对待查询的数据项的查询索引进行加密后所得到的二进制字符串,其中,服务端包括多个DBS,该多个DBS用于存储数据库中的数据项,并且,不同DBS用于存储数据库中不同部分的数据项,如当服务端包括4个DBS时,每个DBS存储数据库中四分之一的数据项,另外,每个DBS包括多个加速器,该加速器例如可以是GPU或者DPU等计算单元;然后,服务端根据查询密文,利用多个DBS并行执行数据检索过程,得到目标检索结果,其中,每个DBS利用多个加速器从该DBS已存储的数据项中并行检索数据,从而服务端向客户端发送该目标检索结果,以满足客户端的检索请求。
如此,服务端基于查询密文进行数据检索,这使得客户端与服务端之间的信息可以均为密文信息,以此可以实现密态查询,即服务端能够在保护用户查询隐私的情况下,为用户提供数据检索服务。同时,数据检索过程中,在DBS粒度上,利用多个DBS进行并行化检索,能够加速数据检索过程,并且,在加速器粒度上,每个DBS利用多个加速器并行化检索,能够进一步加速数据检索过程,这使得服务端能够在至少两个粒度上执行并行化检索,可以有效减小服务端反馈目标检索结果的时延、提高服务端反馈目标检索结果的效率,从而提高用户的数据检索体验。
在一种可能的实施方式中,服务端在检索得到目标检索结果的过程中,具体可以是先根据查询密文,利用多个DBS并行执行数据检索过程,得到每个DBS输出的子检索结果,再基于该多个DBS分别输出的子检索结果,生成目标检索结果。如此,服务端可以通过整合多个DBS并行化检索所得到的多个子检索结果,生成最终反馈给客户端的唯一的目标检索结果,以此可以实现提高服务端反馈检索结果的效率,提高用户的检索体验。
在一种可能的实施方式中,查询密文包括第一部分密文、第二部分密文以及第三部分密文,则服务端在检索得到目标检索结果的过程中,具体可以是先利用每个DBS中的加速器,根据该第一部分密文执行检索,得到每个DBS加速器中的加速器所输出的结果;然后,服务端再根据第二部分密文,从每个DBS中的多个加速器输出的结果中选择一个加速器输出的结果作为DBS输出的子检索结果,从而服务端根据该第三部分密文,从多个DBS分别输出的子检索结果中选择一个子检索结果作为该目标检索结果。如此,服务端不仅可以通过查询密文检索得到目标检索结果,实现保护用户的查询隐私,而且,基于多个部分的密文,实现在加速器以及DBS粒度上的双重加速,可以有效提高数据检索效率,从而有效提高用户的检索体验。
在一种可能的实施方式中,每个DBS中的加速器可以包括加速处理器(APU)、大脑处理器(BPU)、深度学习处理器(DPU)、数据处理单元(DPU)、图形处理器(GPU)、神经网络处理器(NPU)、张量处理器(TPU)、矢量处理器(VPU)中的至少一种。可选地,该加速器还可以其他具有向量计算能力的处理器。
在一种可能的实施方式中,服务端还可以包括主服务器(MS),则,服务端在检索得到目标检索结果的过程中,MS可以先将第一部分密文以及第二部分密文发送给每个DBS;每个DBS利用多个加速器根据该第一部分密文进行数据检索,得到每个加速器输出的结果,然后,每个DBS再根据第二部分密文,从多个加速器输出的结果中选择一个加速器输出的结果作为子检索结果;最后,MS再根据第三部分密文,从多个DBS分别输出的子检索结果中选择一个子检索结果作为目标检索结果。如此,服务端可以利用多个DBS实现加速数据检索的过程,并利用MS实现多个DBS的统一控制和管理。
在一种可能的实施方式中,查询密文为环面上容错学习(TLWE)类型的密文,如此,可以使得客户端会服务端之间基于较小的通信开销传输查询密文;或者,查询密文为TRGSW类型的密文,如此,可以使得服务端能够基于较小的计算开销完成数据检索,降低服务端的计算负担。
在一种可能的实施方式中,查询密文为TLWE类型的密文,该查询密文基于伪随机函数生成。如此,可以通过伪随机函数降低查询密文的数据量,从而可以进一步降低客户端与服务端之间传输查询密文所需的通信开销。
在一种可能的实施方式中,查询密文为经过压缩后的TLWE类型的密文,则服务端在根据第三部分密文从多个DBS分别输出的子检索结果中选择一个子检索结果作为目标检索结果时,具体可以是先利用测试向量将查询密文中的第三部分密文进行解压缩,得到第三部分密文对应的TRGSW类型的密文;然后再根据该第三部分密文对应的TRGSW类型的密文,从多个DBS分别输出的子检索结果中选择一个子检索结果作为所述目标检索结果。如此,可以实现在降低客户端与服务端之间的通信开销的情况下,服务端能够检索得到目标检索结果。
第二方面,本申请提供一种服务端,该服务端包括多个DBS,并且,该多个DBS用于存储数据库中的数据项,不同DBS用于存储该数据库中不同部分的数据项,每个DBS包括多个加速器,该服务端用于接收客户端发送的查询请求,该查询请求包括查询密文;并根据该查询密文,利用多个DBS并行执行数据检索过程,得到目标检索结果,其中,每个DBS利用多个加速器从已存储的数据项中并行检索数据;并向客户端发送该目标检索结果。
在一种可能的实施方式中,在生成目标检索结果的过程中,服务端,具体用于:根据查询密文,利用多个DBS并行执行数据检索过程,得到每个DBS输出的子检索结果;并基于多个DBS分别输出的子检索结果,生成目标检索结果。
在一种可能的实施方式中,查询密文包括第一部分密文、第二部分密文以及第三部分密文,第一部分密文用于作为每个DBS中的加速器执行检索的依据,第二部分密文用于指示每个DBS选择一个加速器输出的结果作为子检索结果,第三部分密文用于指示从多个DBS分别输出的子检索结果中选择一个子检索结果作为目标检索结果。
在一种可能的实施方式中,加速器包括加速处理器APU、大脑处理器BPU、深度学习处理器DPU、数据处理单元DPU、图形处理器GPU、神经网络处理器NPU、张量处理器TPU、矢量处理器VPU中的至少一种。
在一种可能的实施方式中,服务端还包括主服务器MS,MS用于:将查询密文中的第一部分密文以及第二部分密文发送给每个DBS;获取多个DBS分别根据第一部分密文以及第二部分密文进行数据检索所输出的子检索结果;根据多个DBS分别输出的子检索结果生成目标检索结果。
在一种可能的实施方式中,查询密文为环面上容错学习TLWE类型的密文,或者,查询密文为TRGSW类型的密文。
在一种可能的实施方式中,查询密文为TLWE类型的密文,查询密文基于伪随机函数生成。
在一种可能的实施方式中,查询密文为经过压缩后的TLWE类型的密文,服务端,用于利用测试向量将查询密文中的第三部分密文进行解压缩,得到第三部分密文对应的TRGSW类型的密文。
值得注意的是,第二方面提供的服务端,对应于第一方面提供的数据检索方法,故第二方面以及第二方面中任一实施方式所具有的技术效果,可参见第一方面或者第一方面的相应实施方式所具有的技术效果。
第三方面,本申请提供一种数据检索系统,该数据检索系统包括客户端以及服务端,其中,服务端包括多个数据库服务器DBS,该多个DBS用于存储数据库中的数据项,并且,不同DBS用于存储数据库中不同部分的数据项,每个DBS包括多个加速器;客户端,用于根据用户的查询操作生成查询请求,该查询请求包括查询密文,并向服务端发送该查询请求;服务端,用于根据该查询请求中的查询密文,利用多个DBS并行执行数据检索过程,得到目标检索结果,并向客户端发送该目标检索结果,其中,每个DBS利用多个加速器从已存储的数据项中并行检索数据;客户端,还用于对目标检索结果进行解密,得到目标数据项。
在一种可能的实施方式中,服务端用于执行上述第一方面或第一方面任一种可能实现方式中的数据检索方法。
第四方面,本申请提供一种计算设备集群,所述计算设备包括至少一个计算设备,所述至少一个计算设备包括至少一个处理器和至少一个存储器;所述至少一个存储器用于存储指令,所述至少一个处理器执行所述至少一个存储器存储的该指令,以使所述计算设备集群执行上述第一方面或第一方面任一种可能实现方式中的数据检索方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。所述至少一个计算设备还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行上述第一方面或第一方面的任一种实现方式所述的方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行上述第一方面或第一方面的任一种实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的一示例性数据检索系统的结构示意图;
图2为本申请提供的另一示例性数据检索系统的结构示意图;
图3为本申请提供的一种数据检索方法的流程示意图;
图4为本申请提供的查询密文的示意图;
图5为数据库中的数据在多个DBS中存储的示意图;
图6为本申请提供的另一种数据检索方法的流程示意图;
图7为本申请提供的一种计算设备的结构示意图;
图8为本申请提供的一种计算设备集群的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请提供的实施例中的方案进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
参见图1,示出了本申请提供的一示例性数据检索系统的结构示意图。如图1所示的,数据检索系统10包括服务端以及至少一个客户端,服务端包括多个数据库服务器(database service,DBS)。为便于理解与描述,图1中以数据检索系统10包括客户端101与服务端200,并且,服务端200包括DBS201、DBS202、DBS203、DBS204为例进行说明。
其中,客户端101,可以是运行在用户侧设备上的应用程序,或者可以是数据检索系统10对外提供的网络浏览器等。
服务端200中的每个DBS,可以通过至少一个具有数据存储能力的设备实现,如可以通过存储服务器实现等。数据检索系统10中的多个DBS用于存储同一数据库中的数据,如可以存储用户1预先上传的数据等,每个DBS中存储的数据为加密状态的数据或者明文状态的数据,并且,不同DBS用于存储该数据库中的不同部分的数据。举例来说,假设数据库中包括227条数据项,并且,每个DBS可以存储该数据库中的225条数据项,如DBS201存储第1条至第225条数据项,DBS202存储第225+1条至第226条数据项,DBS202存储第226+1条至第226+225条数据项,DBS202存储第226+225+1条至第227条数据项。
每个DBS包括多个加速器,每个加速器可以通过具有向量计算能力的处理器实现。
示例性地,加速器具体可以是加速处理器(accelerated processing unit,APU)、大脑处理器(brain processing unit,BPU)、深度学习处理器(deep-learning processingunit,DPU)、数据处理单元(data processing unit,DPU)、图形处理器(graphicsprocessing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processing unit,TPU)、矢量处理器(vector processing unit,VPU)中的一种或者多种处理器,或者可以是其它处理器等。图1中以每个DBS包括2个加速器为例进行说明,进一步地,每个DBS中还包括中央处理器(central processing unit,CPU)。如DBS201中包括CPU2011、加速器2012以及加速器2013等。实际应用时,每个DBS中包括的加速器的数量以及类型也可以采用其它方式实现,在此不做限定。
通常情况下,数据检索系统10允许用户1通过客户端101查询已存储的数据,如允许用户1查询数据检索系统10中指定的一个数据项。具体实现时,用户通过客户端101对查询信息进行加密,例如可以基于同态加密算法进行加密等,该查询信息例如可以是包括所要查找的数据项的索引(index)的二进制表达(其中,二进制表达中该索引对应的比特位的取值为1,其余比特位的取值为0),或者,该查询信息例如可以是包括所要查找的数据项的索引的多维向量,并将查询信息的密文发送至服务端200;服务端200基于该密文检索出用户1所需的、处于加密状态的数据项,并将该数据项作为检索结果反馈给客户端101,因此实现在保护用户1的查询隐私的情况下,为用户1提供数据检索服务。但是,实际应用场景中,由于数据检索系统10中存储的数据项的条目较多,如可能高达227条数据项(甚至227条数据项以上),同时服务端200基于查询密文执行密态计算,这使得服务端200需要较多的算力执行数据检索过程,此时,如果数据检索系统10基于单个服务器的算力从多条数据项中检索出用户1所需的数据项,则可能需要较高的耗时,如可能需要1个小时以上等,从而严重影响用户1的数据检索体验。
基于此,本申请实施例提供的数据检索系统10中,服务端200可以利用多个DBS以及每个DBS中的多个加速器,并行执行数据检索过程,以此提高数据检索系统10反馈检索结果的效率,降低时延。具体实现时,服务端200在接收到用户1通过客户端101发送的经过加密的查询信息后,可以利用多个DBS(包括DBS201至DBS204)根据该加密的查询信息并行执行数据检索过程,得到目标检索结果,并且,在数据检索过程中,每个DBS也利用多个加速器从该DBS存储的数据项中并行检索数据;然后,服务端200再将目标检索结果发送给客户端101,从而客户端101对该目标检索结果进行解密后,即可得到用户1所需的目标数据项。
一方面,服务端200基于查询密文进行数据检索,这使得客户端101与服务端200之间的信息均为密文信息,以此可以实现密态查询,即在保护用户查询隐私的情况下,为用户提供数据检索服务。另一方面,数据检索过程中,在DBS粒度上,服务端200利用多个DBS进行并行化检索,能够加速数据检索过程,并且,在加速器粒度上,每个DBS利用多个加速器并行化检索,这能够进一步加速数据检索过程,这使得在至少两个粒度上执行并行化检索,可以有效减小服务端200反馈目标检索结果的时延、提高服务端200反馈目标检索结果的效率,从而提高用户1的数据检索体验。
值得注意的是,上述图1所示的数据检索系统10仅作为一种示例性说明。实际应用时,数据检索系统也可以具有其它可能的结构。比如,在其它可能的实施方式中,数据检索系统包括的客户端、DBS以及加速器的数量可以是其它数量。或者,如图2所示,在图1所示的数据检索系统的基础上,图2所示的数据检索系统10中还可以包括主服务器(masterservice,MS)301,其中,MS301,用于接收客户端101发送的查询密文,并将该查询密文分别发送给多个DBS,以便多个DBS根据该查询密文并行执行数据检索过程,每个DBS也利用多个加速器从该DBS存储的数据项中并行检索数据;然后,每个DBS分别将检索得到的结果反馈给MS301,MS301根据该多个DBS分别反馈的结果生成最终的目标检索结果,并将其反馈给客户端101。
作为一种示例,上述图1或者图2所示的数据检索系统10可以被部署于云端,用于为用户提供数据检索的云服务。作为另一种示例,上述图1或者图2所示的数据检索系统10可以被部署于本地,从而可以为用户提供本地的数据检索服务。
实际应用时,上述图1或者图2所示的数据检索系统10可以通过软件实现,或者可以通过硬件实现。
数据检索系统10作为软件功能单元的一种举例,可以包括运行在计算实例上的代码。其中,计算实例可以包括主机、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,数据检索系统10可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
数据检索系统10作为硬件功能单元的一种举例,数据检索系统10可以包括至少一个计算设备,如服务器等。或者,数据检索系统10可以利用包括专用集成电路(application-specific integrated circuit,ASIC)、或可编程逻辑器件(programmablelogic device,PLD)设备进行实现等。其中,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD)、现场可编程门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)、数据处理单元(Dataprocessing unit,DPU)或其任意组合实现。
数据检索系统10包括的多个设备(如多个DBS)可以分布在相同的区域(region)中,也可以分布在不同的region中。数据检索系统10包括的多个设备可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。通常情况下,一个region可以包括多个AZ。同样,数据检索系统10包括的多个设备可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
接下来,对数据检索过程的各种非限定性的具体实施方式进行详细描述。
参阅图3,为本申请实施例中一种数据检索方法的流程示意图。该方法可以应用于上述图1或者图2所示的数据检索系统中,或者也可以是应用于其它可适用的应用场景中。下面以应用于图2所示的数据检索系统10为例进行说明。在图2所示的数据检索系统10中,客户端101以及服务端200中的MS301、DBS201至DBS204的功能,具体参见下述实施例的相关描述。
图3所示的数据检索方法具体可以包括:
S301:客户端101根据用户1的查询操作生成查询请求,该查询请求包括查询密文。
S302:客户端101向服务端200中的MS301发送该查询请求。
本实施例中,数据检索系统10可以执行基于密态查询的方式进行数据检索,以此实现PIR,保护用户1的查询隐私。为此,客户端101可以生成经过加密处理的查询密文,以便后续基于该查询密文执行数据检索过程,避免查询信息发生泄露。
在一种可能的实施方式中,客户端101可以向用户1呈现信息输入界面,该信息输入界面上可以呈现有信息输入控件,如文本框或者语音录入按钮等,从而用户1可以在该信息输入界面上,利用信息输入控件完成查询内容的输入。
其中,用户1所输入的查询内容,可以是方便用户侧理解的交互内容,如可以是关键字、关键词、语句等文本类型的信息,或者可以是语音等音频类型的信息、或者可以是照片等图像类型的信息等。如此,客户端101可以基于用户1在信息输入界面上执行的查询操作,如在文本框中输入文本、点击语音录入按钮输入语音的操作等,获取用户输入的查询内容,并根据该查询内容确定用户1所需检索的数据对应的索引;然后,客户端101通过对该索引进行加密,即可得到相应的查询密文。
或者,用户1所输入的查询信息,可以是方便设备侧理解的交互内容,如可以是用户1所需检索的数据对应的索引。比如,在部分应用场景中,用户1可以获知数据对应的索引信息,从而用户1可以直接在该信息输入界面上输入该数据所对应的索引。这样,客户端101可以通过对用户1输入的索引进行加密,即可得到相应的查询密文。
作为一种实现示例,客户端101所生成的查询密文,例如可以是经过压缩后的环面上容错学习(tours learning with errors,TLWE)类型的密文。具体实现时,客户端101可以将索引i表征为n位的二进制字符串i0,…,ij,…,in-1,其中,ij表征该索引的二进制字符串中第j位的值,则整个二进制字符串的值即为然后,客户端101可以根据该二进制字符串,生成一个查询向量,所生成的查询向量即为经过压缩后的TLWE类型的密文。比如,客户端101可以基于下述公式(1)生成查询向量/>
其中,表征查询向量/>中第j维的值;UE+LWE为密文压缩函数,用于生成经过压缩后的TLWE密文;L表征将环面元素映射到无符号的整数的位数,例如可以是32位;λ为安全参数,通常为固定值,如λ的取值为128等;多个DBS中存储的数据项的数量为2n;nr用于指示DBS中的加速器(如GPU)的算力所能支持的表查找(table lookup,TLU)的比特长度;DBS中包括加速器的数量为/>服务端200中包括的DBS的数量为/>相应的,同一数据库中的多个数据项可以预先划分为/>个部分,每个部分的数据可以存储在一个单独的DBS中;/>为预先生成的私钥,实际应用时,客户端101可以预先生成私钥和公钥,如可以通过keygen(λ)函数生成私钥/>和公钥/>等,并在客户端101本地保存私钥sk,将公钥pk注册至MS301中。
值得注意的是,当nc的值为0时,即DBS中包括一个加速器,此时nr≤j≤nr+nc-1,具体为nr≤j≤nr-1,该不等式不成立,则,j的取值为nr或者nr-1时,的取值均为
示例性地,客户端101在生成经过压缩后的TLWE密文时,具体可以是先选取一个随机种子,其中,seed为随机种子;μ为正态分布的期望值,其取值根据上述公式(1)中j的大小进行确定,为ij/2*2L或(2ij-1)/32*2L。然后,客户端101利用伪随机函数(pseudo random function,PRF)生成一个向量,如通过运行函数PRA(seed,n),生成一个向量/>其中,Y用于指示环面(Torus)。接着,客户端101在T上的次高斯分布χ采样一个错误值e←χ,并计算/>其中,e为噪声;从而,客户端101生成(b,seed),所生成的(b,seed)即为经过压缩后的TLWE密文。
如此,基于压缩后的TLWE密文作为查询密文,可以有效降低查询密文的长度,如可以将查询密文的长度由32KB(千字节)降低至20log3n字节,从而在将查询密文传输至服务端200的过程中,可以有效降低通信开销。
实际应用时,客户端101除了可以采用上述示例对查询索引进行加密以生成查询密文之外,也可以采用其它方式对该查询索引进行加密,本实施例对此并不进行限定。
客户端101在生成查询密文后,可以进一步生成包括该查询密文的查询请求,并将该查询请求发送给服务端200,具体可以是发送给服务端200中的MS301,以请求服务端200基于该查询密文反馈相应的检索结果,以满足用户1的数据查询需求。
本实施例中,服务端200响应接收到查询请求,根据该查询请求中的查询密文,利用多个DBS并行执行数据检索过程,得到目标检索结果,并且,在数据检索过程中,每个DBS利用多个加速器并行从该DBS已存储的数据项中并行检索数据。示例性地,本实施例中具体还包括如下步骤。
S303:MS301将查询密文中的第一部分密文以及第二部分密文发送给DBS201至DBS204。
MS301负责与客户端101进行数据交互。MS301在接收到客户端101发送的查询请求后,可以从该查询请求中解析出查询密文,并进一步确定该查询密文中的第一部分密文以及第二部分密文。
示例性地,当客户端101基于上述公式(1)生成查询密文时(经过压缩的TLWE密文),MS301可以将该查询密文中的0≤j≤nr-1这部分密文、/>nr+nc≤j≤n-nm-1这部分密文,作为本实施例中的第一部分密文,以下分别表示为:/>如图4所示。其中,第一部分密文作为各个DBS执行检索的依据,即各个DBS利用加速器,根据该第一部分密文执行数据检索过程。
另外,MS301还可以向每个DBS发送查询密文中的第二部分密文,该第二部分密文具体可以是以下表示为如图4所示。其中,第二部分密文用于指示每个DBS选择一个加速器输出的结果作为子检索结果进行输出。
S304:每个DBS根据第一部分密文以及第二部分密文,利用多个加速器从该DBS已存储的数据项中并行检索数据,得到子检索结果。
本实施例中,同一数据库中的所有数据项,可以被划分成4个部分,并且,不同部分的数据项可以被存储于不同的DBS,即,DBS201至DBS204中,每个DBS存储有该数据库中的部分数据项。如图5所示,数据库中包括2n个条目的数据项,则,可以预先根据DBS的数量将2n个条目的数据项划分为/>个部分,每个DBS可以存储该数据库中的/>个条目的数据项,每个数据项的值少于N个比特。并且,每个DBS在存储多个数据项时,可以将每个数据项转换成TRLWE密文,即,如果一个条目包含数据data,并且|data|≤N,则,DBS会将该条目中的其它比特位全部填充为0,该条目可以简单表征为(data,03N-|data|)。
多个DBS可以根据MS301分发的第一部分密文,并行执行数据检索过程,以提高根据第一部分密文进行数据检索的效率。其中,每个DBS在进行数据检索的过程中,该DBS上的多个加速器可以并行运行,以便利用多个加速器来加速该DBS上的数据检索过程,从而可以进一步加快数据检索效率。
作为一种实现示例,DBS具体可以包括2个加速器,如图2所示。以DBS201执行数据检索过程为例,CPU2011可以根据第一部分密文生成两个密态的索引。比如,CPU2011可以针对TLWE密文和/>执行电路自举函数,如CircuitBootstrapping函数等,分别将TLWE密文/>和/>转换为多项式环面上GSW(tours ring Gentry-Sahai-Waters,TRGSW)类型的密文,并将转换得到的两个TRGSW密文作为两个密态的索引/>和/>
然后,CPU2011可以分别调用加速器2012以及加速器2013,以作为查询信息,并以/>个条目的数据项为单位执行数据检索过程,从而每个加速器从各自负责的/>个条目的数据项中检索出与/>相匹配的数据项,并作为临时结果进行缓存,该临时结果为检索出的一个条目的数据项。其中,不同加速器负责从互不重叠的多个数据项中检索与/>相匹配的数据项。
示例性地,每个加速器可以基于如下所示的批量表查找算法,从个条目的数据项中检索出与/>相匹配的数据项。该批量表查找算法的数据处理流程具体可以包括:
1)设置i=0;
2)在选择偶数条目来组成/>和/>其中,/>表征待查找的所有数据条目,2V表征每条条目均为TRLWE密文,维度为2N,每个维度为次数为N-1的多项式;
3)计算
4)通过分解算法,如gadget分解算法等,将中的每个条目并行地分解为一个2l维的向量,l为固定值,如可以设置l为2等,用于指示分解的深度;
5)计算其中,/>为查询向量,其中,4l基于(k+1)l*(k+1)计算得到,k可以被设置为1,在其它实施例中,k也可以是为其它值;
6)设置κ=κ-1,i=i+1;
7)重复步骤2)至步骤6),直到κ=1,其中,初始时κ可以为16(或者其它值);
8)当κ=1时,返回的值。
其中,每个加速器利用批量表查询算法可以算法将2κ个TRLWE密文同时作为输入,并同时利用数据选择器完成计算,从而可以实现加速数据检索。
实际测试时,当DBS中存储的数据项的条目为216时,加速器使用批量表查询算法可以使得一次查表时间从2.2秒(s)下降到0.45s左右。在其它实施方式中,每个加速器也可以采用TLU或者其它算法检索与相匹配的数据项,本实施例对此并不进行限定。
然后,每个加速器可以继续选择下一个条目的数据项,并从中检索出与/>相匹配的数据项,然后将检索出的一条数据项作为临时结果进行缓存。每个加速器重复执行从个条目的数据项中检索出与/>相匹配的数据项,每个数据项仅参与一次检索过程。每个加速器重复执行的次数为/>次,使得/>从而完成对DBS中存储的所有数据项的检索。此时,每个加速器可以检索出/>个临时结果,也即/>个数据项条目。
接着,CPU2011可以将分别发送给加速器2012以及加速器2013。每个加速器以作为查询信息,从各自检索出的/>个临时结果中,检索出与/>相匹配的一个临时结果,也即与/>相匹配的一个数据项,并将所检索出的临时结果返回给CPU2011。示例性地,每个加速器可以采用上述批量表查找算法或者TLU算法,从/>个临时结果中,检索出与/>相匹配的临时结果。
最后,CPU2011可以从多个加速器返回的临时结果中,选择其中一个加速器返回的临时结果作为子检索结果。
具体实现时,在每个加速器根据第一部分密文进行数据检索的过程中,CPU2011可以利用测试向量对查询密文中的第二部分密文进行解压缩(decompression),例如可以通过执行批量比特比较算法对第二部分密文进行解压缩,得到该第二部分密文的一元编码,该一元编码为TRGSW类型的密文。对于各个加速器所反馈的每个临时结果,CPU2011可以根据该第二部分密文的一元编码以及该临时结果,进行外积运算,如可以通过执行ExternalProcuct算法进行外积运算等,以此生成新的临时结果,该临时结果页即为该一元编码与临时结果对应的外积结果,以此得到生成得到多个新的临时结果。从而,CPU2011可以对新生成的多个临时结果进行求和,并将求和结果作为DBS201所生成的子检索结果。
示例性地,该批量比特比较算法的数据处理流程具体可以包括:
1)对于[0,…,2κ-1]范围内的每一个索引,将其转换为具有固定长度κ的索引的位字符串id,其中,κ为固定值,例如κ可以取值为16等;
2)对于位置i的TLWE密文(如上述第二部分密文中第i个位置的TLWE密文),如果id[i]为1,计算/>其中,为/>为密文向量中的第i个密文;
3)设置一个平凡的TLWE密文计算TLWE密文/>
4)设置一个测试向量使得其前V/32个位置的值为1/8*2L,其它位置的值为-1/8*2L,也就是/>
5)用和/>执行盲旋转(blind rotate)函数,通过变换输入的一组密文值位置后生成新的一组密文,然后对该新的一组密文进行样本提取以及密钥交换,如通过执行样本提取(sample extract)函数对密文进行样本提取,并基于密钥交换函数(identitykey switch)利用公钥对提取的样本进行加密,以此得到一个TLWE密文/>
6)运行电路自举算法,如可以运行CircuitBootstrapping算法等,将TLWE密文转换成TRGSW密文/>
7)收集并返回每个索引的TRGSW密文(即2κ个索引分别对应的/>)。
其中,基于批量比特比较算法可以减少(n-1)次的自举过程,从而可以减小服务端200获取第二部分密文对应的TRGSW类型的密文的时间,这不仅可以减小服务端的计算代价,而且能够提高数据检索的整体效率。
示例性地,CPU2011可以与多个加速器并行化执行数据处理过程,即多个加速器在执行数据检索的过程中,CPU2011可以执行对第二部分密文进行解压缩的过程,并在接收到加速器反馈的首个临时结果时,即可根据第二部分密文的一元编码以及该临时结果生成新的临时结果,以此实现数据检索的进一步加速。或者,CPU2011也可以是在接收到所有加速器反馈的临时结果后,才开始执行上述解压缩过程,本实施例对此并不进行限定。
基于上述示例性的数据检索过程,每个DBS可以基于第一部分密文以及第二部分密文利用多个加速器生成相应的子检索结果,并且,基于上述过程生成子检索结果所需的计算开销较小。
S305:MS301利用测试向量对查询密文中的第三部分密文进行解压缩,得到解压缩后的第三部分密文。
示例性地,解压缩后的第三部分密文,具体可以是TRGSW类型的密文。
本实施例中,在每个DBS根据第一部分密文以及第二部分密文进行数据检索的过程中,MS301可以同步执行步骤S305,以实现MS301与DBS的并行化操作,从而可以进一步提高服务端200反馈检索结果的整体效率。其中,MS301执行批量比特比较算法的实现方式,与上述CPU2011对第二部分密文执行批量比特比较算法的实现方式类似,具体可参见上述相关之处描述,在此不做赘述。
在其它实施例中,MS301也可以是在接收到DBS反馈的子检索结果后,开始执行步骤S305,对此并不进行限定。
S306:每个DBS向MS301发送子检索结果。
S307:MS301根据解压缩后的第三部分密文、多个DBS分别输出的子检索结果,生成目标检索结果。
可以理解,每个DBS所反馈的子检索结果是基于该DBS中存储的数据库中的部分数据进行检索得到,因此,MS301可以通过综合多个DBS反馈的子检索结果,确定最终响应的目标检索结果,该目标检索结果也即为基于数据库中的全部数据所检索出的结果。
值得注意的是,服务端200在进行数据检索过程中,是基于密态的查询密文进行检索,因此,MS301基于多个子检索结果所生成的目标检索结果,也为密态的检索结果,以便于保护用户1的查询信息以及检索出的数据项不发生泄露。其中,密态的目标检索结果中包括服务端200检索出的数据项。
在一种可能的实施方式中,MS301可以对解压缩后的第三部分密文分别与每个DBS反馈的子检索结果进行外积运算,如利用ExternalProcuct等算法进行外积运算等,以此生成新的临时结果,从而MS301可以对新生成的多个临时结果进行求和,并将求和结果作为目标检索结果。其中,MS301在生成目标检索结果的过程中,利用客户端101预先注册的公钥完成加密。
S308:MS301将目标检索结果发送给客户端101。
其中,基于上述过程所生成的目标检索结果的数据长度较小,如可以仅为8KB,以此可以降低MS301向客户端101反馈检索结果的通信开销。
S309:客户端101对该目标检索结果进行解密,得到目标检索项。
其中,目标检索项,即为用户1所需查询的数据项。如此,客户端101在解密得到目标检索项后,可以将其呈现给用户1,以满足用户1的数据检索需求。
具体实现时,客户端101可以利用预先创建的私钥对目标检索结果进行解密,从而在解密得到的明文中得到用户1所需查询的数据库中的相应数据项。
如此,在数据检索系统10提供检索服务的过程中,客户端101与服务端200之间的信息均为密文信息,以此可以实现密态查询。同时,在DBS粒度上以及加速器粒度上,服务端200利用多个DBS进行并行化检索,并且,每个DBS利用多个加速器并行化检索,这使得在至少两个粒度上执行并行化检索,可以有效减小服务端200反馈目标检索结果的时延、提高服务端200反馈目标检索结果的效率,从而提高用户1的数据检索体验。进一步地,在数据检索过程中,MS301与多个DBS可以并行执行相应的数据处理过程,且,每个DBS中的CPU与多个加速器也可以并行执行相应的数据处理过程,如此,服务端200可以通过MS301与多个DBS之间的并行化、CPU与多个加速器之间的并行化,进一步有效提高服务端200反馈目标检索结果的效率,提高用户1的数据检索体验。
上述图3所示的实施例中,客户端101是将压缩后的TLWE密文作为查询密文,以此降低客户端101与服务端200之间的通信开销;相应的,服务端200在基于该TLWE密文转换为TRGSW密文时,可能需要较多的计算开销。为此,在另一种数据检索的方法实施例中,客户端101将TRGSW密文作为查询密文,以此减少服务端200的计算开销。
参见图6,示出了另一种数据检索方法的流程示意图,如图6所示,该方法具体可以包括:
S601:服务端200中的每个DBS分别存储同一数据库中的部分数据项,并且,不同DBS存储该数据库中的不同部分的数据项。
本实施例中,同一数据库中的所有数据项,可以被划分成4个部分,并且,DBS201至DBS204中,每个DBS存储有该数据库中的部分数据项。并且,每个DBS在存储多个数据项时,可以将每个数据项转换成TRLWE密文。
S602:客户端101根据用户1的查询操作生成查询请求,该查询请求包括查询密文。
其中,客户端101所生成的查询密文的长度较小,例如可以为16.0jg*log3n
S603:客户端101向服务端200发送该查询请求。
本实施例中,客户端101可以根据用户1输入的查询内容确定用户1所需检索的数据对应的索引,或者,客户端101直接获取用户1输入的索引。
然后,客户端101将该索引表征为n位的二进制字符串i0,…,ij,…,in-1,并根据该二进制字符串,生成一个查询向量,所生成的查询向量即为TRLWE类型的密文。其中0≤j≤n-1。
示例性地,客户端101可以基于下述公式(2)生成作为TRLWE密文(也即查询密文)的查询向量
其中,表征查询向量/>中第j维的值;UETRGSW为密文生成函数,用于生成TRLWE类型的密文;ij表征该索引的二进制字符串中第j位的值;L表征将环面元素映射到无符号的整数的位数;λ为安全参数,通常为固定值,如λ的取值为128等;/>为预先生成的私钥,本实施例中,客户端101可以不用生成公钥并向服务端200注册公钥。
其中,密文生成函数UETRGSW的具体实现流程可以包括:
1)选取一个比特字符串作为随机种子其中,seed为随机种子;并利用伪随机函数生成多个元素,如通过运行函数PRF(seed,2l*N-l),产生2lN-l个在T中的元素;
2)采样
3)将2lN个元素格式化为2l个多项式系数其中/>
4)在TN上的次高斯分布χ采样错误向量
5)计算其中i∈{0,1},j∈{1,l};
6)将和/>格式化成2l×2的矩阵B,其中i∈{0,1},j∈{1,l};
7)计算其中,/>为分解矩阵,z为TRGSW密文中所对应的要加密的明文;
8)返回其中i∈{0,2l-1},j∈{l,2l-1},所生成的即为TRLWE密文。
S604:MS301将查询密文中的第一部分密文发送给DBS201至DBS204。
MS301在接收到客户端101发送的查询请求后,可以从该查询请求中解析出查询密文,并进一步确定该查询密文中的第一部分密文,并将该第一部分密文发送给各个DBS。
示例性地,第一部分密文例如可以是查询密文中的这部分密文以及/> 这部分密文,以下简称为/>
实际应用时,MS301可以将查询密文中的 发送给各个DBS,以便各个DBS根据该部分密文中包括的第一部分密文执行相应的数据检索操作。
S605:每个DBS根据第一部分密文,利用多个加速器从该DBS已存储的数据项中并行检索数据,得到子检索结果。
作为一种实现示例,DBS具体可以包括2个加速器,如图2所示。以DBS201执行数据检索过程为例,CPU2011可以分别调用加速器2012以及加速器2013,以作为查询信息,并以/>个条目的数据项为单位执行数据检索过程,从而每个加速器从各自负责的个条目的数据项中检索出与/>相匹配的数据项,并作为临时结果进行缓存,该临时结果为检索出的一个条目的数据项。其中,不同加速器负责从互不重叠的多个数据项中检索与相匹配的数据项。
示例性地,每个加速器可以基于批量表查找算法,从个条目的数据项中检索出与/>相匹配的数据项,该批量表查找算法的数据处理流程具体可以参见前述实施例的相关之处描述,在此不再重述。
其中,每个加速器利用批量表查询算法可以实现加速数据查询。
然后,每个加速器可以继续选择下一个条目的数据项,并从中检索出与相匹配的数据项,然后将检索出的一条数据项作为临时结果进行缓存。每个加速器重复执行从/>个条目的数据项中检索出与/>相匹配的数据项,每个数据项仅参与一次检索过程。每个加速器重复执行的次数为/>次,使得/>从而完成对DBS中存储的所有数据项的检索。此时,每个加速器可以检索出/>个临时结果,也即/>个数据项条目。
接着,CPU2011可以将分别发送给加速器2012以及加速器2013。每个加速器以/>作为查询信息,从各自检索出的/>个临时结果中,检索出与/>相匹配的一个临时结果,也即与相匹配的一个数据项,并将所检索出的临时结果返回给CPU2011。示例性地,每个加速器可以采用上述批量表查找算法或者TLU算法,从/>个临时结果中,检索出与/> 相匹配的临时结果。
最后,CPU2011可以基于表查找算法对多个加速器返回的临时结果进行求和,并将得到的求和结果作为DBS201的子检索结果。
S606:每个DBS向MS301发送子检索结果。
S607:MS301根据多个DBS分别输出的子检索结果,生成目标检索结果。
示例性地,MS301可以基于表查找算法,对多个子检索结果进行求和,并将得到的求和结果作为服务端200的目标检索结果,该目标检索结果也即为基于数据库中的全部数据所检索出的结果。
S608:MS301将目标检索结果发送给客户端101。
其中,基于上述过程所生成的目标检索结果的数据长度较小,如可以仅为8KB,以此可以降低MS301向客户端101反馈检索结果的通信开销。
S609:客户端101对该目标检索结果进行解密,得到目标检索项。
其中,目标检索项,即为用户1所需查询的数据项。如此,客户端101在解密得到目标检索项后,可以将其呈现给用户1,以满足用户1的数据检索需求。
具体实现时,客户端101可以利用预先创建的私钥对目标检索结果进行解密,从而在解密得到的明文中得到用户1所需查询的数据库中的相应数据项。
如此,在数据检索系统10提供检索服务的过程中,客户端101与服务端200之间的信息均为密文信息,以此可以实现密态查询。同时,在DBS粒度上以及加速器粒度上,服务端200利用多个DBS进行并行化检索,并且,每个DBS利用多个加速器并行化检索,这使得在至少两个粒度上执行并行化检索,可以有效减小服务端200反馈目标检索结果的时延、提高服务端200反馈目标检索结果的效率,从而提高用户1的数据检索体验。进一步地,客户端101发送的查询密文为TRGSW密文,这可以有效降低服务端200基于该查询密文进行数据检索所需的计算代价。
需要说明的是,上述图3以及图6所示的实施例,是以应用于图2所示的数据检索系统10为例进行示例性说明。在其它可能的实施例中,数据检索方法也可以应用于图1所示的数据检索系统10,此时,上述MS301所执行的操作可以由多个DBS中的部分DBS承担。
以DBS201承担MS301所执行的操作为例,DBS201可以接收客户端101发送的查询请求,并在从该查询请求中解析出查询密文后,将该查询密文中的第一部分密文以及第二部分密文发送给其余各个DBS,并且,DBS201与其余多个DBS并行执行数据检索过程。然后,DBS201接收其余各个DBS反馈的子检索结果,并根据DBS201生成的子检索结果以及其余各个DBS反馈的子检索结果生成最终的目标检索结果。最后,DBS201将生成的目标检索结果发送给客户端101,以便客户端101对该目标检索结果进行解密后,将目标数据项呈现给用户1。
上述图3以及图6所示实施例中,针对数据检索过程中所涉及到的服务端200可以是配置于计算设备或者计算设备集群上的软件,并且,通过在计算设备或者计算设备集群上运行该软件,可以使得计算设备或者计算设备集群实现上述服务端200所具有的功能。下面,基于硬件设备实现的角度,对数据检索的过程中所涉及的服务端200进行详细介绍。
图7示出了一种计算设备的结构示意图,上述服务端200可以部署在该计算设备上,该计算设备可以是云环境中的计算设备(如服务器),或边缘环境中的计算设备等具体可以用于实现上述图3以及图6所示实施例中服务端200的功能。
如图7所示,计算设备700包括处理器710、存储器720、通信接口730和总线740。处理器710、存储器720和通信接口730之间通过总线740通信。总线740可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口730用于与外部通信,例如接收用户提供的原始数据以及待训练的特征提取网络模型等。
其中,处理器710可以为中央处理器(central processing unit,CPU)、专用集成电路(application specific integrated circuit,ASIC)、图形处理器(graphicsprocessing unit,GPU)或者一个或多个集成电路。处理器710还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,服务端200的功能可以通过处理器710中的硬件的集成逻辑电路或者软件形式的指令完成。处理器710还可以是通用处理器、数据信号处理器(digital signal process,DSP)、现场可编程逻辑门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件,分立门或者晶体管逻辑器件,分立硬件组件,可以实现或者执行本申请实施例中公开的方法、步骤及逻辑框图。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,结合本申请实施例所公开的方法可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器720,处理器710读取存储器720中的信息,结合其硬件完成服务端200中的部分或全部功能。
存储器720可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器720还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,HDD或SSD。
存储器720中存储有可执行代码,处理器710执行该可执行代码以执行前述服务端200所执行的方法。
具体地,在实现图3以及图6所示实施例的情况下,且图3以及图6所示实施例中所描述的服务端200为通过软件实现的情况下,执行图3以及图6中的服务端200的功能所需的软件或程序代码存储在存储器720中,服务端200与其它设备的交互通过通信接口730实现,处理器用于执行存储器720中的指令,实现服务端200所执行的方法。
图8示出的一种计算设备集群的结构示意图。其中,图8所示的计算设备集群80包括多个计算设备,上述服务端200可以分布式地部署在该计算设备集群80中的多个计算设备上。如图8所示,计算设备集群80包括多个计算设备800,每个计算设备800包括存储器820、处理器810、通信接口830以及总线840,其中,存储器820、处理器810、通信接口830通过总线840实现彼此之间的通信连接。
处理器810可以采用CPU、GPU、ASIC或者一个或多个集成电路。处理器810还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,服务端200的部分功能可用通过处理器810中的硬件的集成逻辑电路或者软件形式的指令完成。处理器810还可以是DSP、FPGA、通用处理器、其他可编程逻辑器件,分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的部分方法、步骤及逻辑框图。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器820,在每个计算设备800中,处理器810读取存储器820中的信息,结合其硬件可以完成服务端200的部分功能。
存储器820可以包括ROM、RAM、静态存储设备、动态存储设备、硬盘(例如SSD、HDD)等。存储器820可以存储程序代码,例如,用于实现数据获取模块81的部分或者全部程序代码、用于实现模型训练模块82的部分或者全部程序代码、用于实现数据检索模块83的部分或者全部程序代码等。针对每个计算设备800,当存储器820中存储的程序代码被处理器810执行时,处理器810基于通信接口830执行服务端200所执行的部分方法,如其中一部分计算设备800可以用于执行上述MS301所执行的方法,另一部分计算设备800用于执行上述各个DBS所执行的方法。存储器820还可以存储数据,例如:处理器810在执行过程中产生的中间数据或结果数据,例如,上述子检索结果、目标检索结果等。
每个计算设备800中的通信接口803用于与外部通信,例如与其它计算设备800进行交互等。
总线840可以是外设部件互连标准总线或扩展工业标准结构总线等。为便于表示,图8中每个计算设备800内的总线840仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述多个计算设备800之间通过通信网络建立通信通路,以实现服务端200的功能。任一计算设备可以是云环境中的计算设备(例如,服务器),或边缘环境中的计算设备。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在一个或者多个计算设备上运行时,使得该一个或者多个计算设备执行上述实施例服务端200所执行的方法。
此外,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被一个或者多个计算设备执行时,所述一个或者多个计算设备执行前述数据检索方法中的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述数据检索方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
另外需说明的是,以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (20)

1.一种数据检索方法,其特征在于,所述方法包括:
服务端接收客户端发送的查询请求,所述查询请求包括查询密文,其中,所述服务端包括多个数据库服务器DBS,所述多个DBS用于存储数据库中的数据项,并且,不同DBS用于存储所述数据库中不同部分的数据项,每个DBS包括多个加速器;
所述服务端根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,其中,每个DBS利用多个加速器从已存储的数据项中并行检索数据;
所述服务端向所述客户端发送所述目标检索结果。
2.根据权利要求1所述的方法,其特征在于,所述服务端根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,包括:
所述服务端根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到每个DBS输出的子检索结果;
基于所述多个DBS分别输出的子检索结果,生成所述目标检索结果。
3.根据权利要求2所述的方法,其特征在于,所述查询密文包括第一部分密文、第二部分密文以及第三部分密文,所述服务端根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,包括:
所述服务端利用所述每个DBS中的加速器,根据所述第一部分密文执行检索,得到所述每个DBS中的加速器输出的结果;
所述服务端根据所述第二部分密文,从每个DBS中的多个加速器输出的结果中选择一个加速器输出的结果作为DBS输出的子检索结果;
所述服务端根据所述第三部分密文,从所述多个DBS分别输出的子检索结果中选择一个子检索结果作为所述目标检索结果。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述加速器包括加速处理器APU、大脑处理器BPU、深度学习处理器DPU、数据处理单元DPU、图形处理器GPU、神经网络处理器NPU、张量处理器TPU、矢量处理器VPU中的至少一种。
5.根据权利要求3或4所述的方法,其特征在于,所述服务端还包括主服务器MS,所述服务端根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,包括:
所述MS将所述第一部分密文以及所述第二部分密文发送给每个DBS;
每个DBS利用多个加速器根据所述第一部分密文进行数据检索,得到每个加速器输出的结果;
每个DBS根据所述第二部分密文,从多个加速器输出的结果中选择一个加速器输出的结果作为子检索结果;
所述MS根据所述第三部分密文,从所述多个DBS分别输出的子检索结果中选择一个子检索结果作为所述目标检索结果。
6.根据权利要求4至5任一项所述的方法,其特征在于,所述查询密文为环面上容错学习TLWE类型的密文,或者,所述查询密文为TRGSW类型的密文。
7.根据权利要求6所述的方法,其特征在于,所述查询密文为所述TLWE类型的密文,所述查询密文基于伪随机函数生成。
8.根据权利要求6或7所述的方法,其特征在于,所述查询密文为经过压缩后的所述TLWE类型的密文;
所述服务端根据所述第三部分密文,从所述多个DBS分别输出的子检索结果中选择一个子检索结果作为所述目标检索结果,包括:
所述服务端利用测试向量将所述查询密文中的第三部分密文进行解压缩,得到所述第三部分密文对应的所述TRGSW类型的密文;
所述服务端根据所述第三部分密文对应的所述TRGSW类型的密文,从所述多个DBS分别输出的子检索结果中选择一个子检索结果作为所述目标检索结果。
9.一种数据检索方法,其特征在于,所述方法包括:
客户端根据用户的查询操作生成查询请求,所述查询请求包括查询密文;
所述客户端向所述服务端发送所述查询请求,其中,所述服务端包括多个数据库服务器DBS,所述多个DBS用于存储数据库中的数据项,并且,不同DBS用于存储所述数据库中不同部分的数据项,每个DBS包括多个加速器;
所述服务端根据所述查询请求中的查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,其中,每个DBS利用多个加速器从已存储的数据项中并行检索数据;
所述服务端向所述客户端发送所述目标检索结果;
所述客户端对所述目标检索结果进行解密,得到目标数据项。
10.一种服务端,其特征在于,所述服务端包括多个数据库服务器DBS,所述多个DBS用于存储数据库中的数据项,并且,不同DBS用于存储所述数据库中不同部分的数据项,每个DBS包括多个加速器,所述服务端,用于:
接收客户端发送的查询请求,所述查询请求包括查询密文;
根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,其中,每个DBS利用多个加速器从已存储的数据项中并行检索数据;
向所述客户端发送所述目标检索结果。
11.根据权利要求10所述的服务端,其特征在于,所述服务端,具体用于:
根据所述查询密文,利用所述多个DBS并行执行数据检索过程,得到每个DBS输出的子检索结果;
基于所述多个DBS分别输出的子检索结果,生成所述目标检索结果。
12.根据权利要求11所述的服务端,其特征在于,所述查询密文包括第一部分密文、第二部分密文以及第三部分密文,所述第一部分密文用于作为每个DBS中的加速器执行检索的依据,所述第二部分密文用于指示每个DBS选择一个加速器输出的结果作为子检索结果,所述第三部分密文用于指示从所述多个DBS分别输出的子检索结果中选择一个子检索结果作为所述目标检索结果。
13.根据权利要求10至12任一项所述的服务端,其特征在于,所述加速器包括加速处理器APU、大脑处理器BPU、深度学习处理器DPU、数据处理单元DPU、图形处理器GPU、神经网络处理器NPU、张量处理器TPU、矢量处理器VPU中的至少一种。
14.根据权利要求12或13所述的服务端,其特征在于,所述服务端还包括主服务器MS,所述MS用于:
将所述查询密文中的所述第一部分密文以及所述第二部分密文发送给每个DBS;
获取所述多个DBS分别根据所述第一部分密文以及所述第二部分密文进行数据检索所输出的子检索结果;
根据所述多个DBS分别输出的子检索结果生成所述目标检索结果。
15.根据权利要求12至14任一项所述的服务端,其特征在于,所述查询密文为环面上容错学习TLWE类型的密文,或者,所述查询密文为TRGSW类型的密文。
16.根据权利要求15所述的服务端,其特征在于,所述查询密文为所述TLWE类型的密文,所述查询密文基于伪随机函数生成。
17.根据权利要求15或16所述的服务端,其特征在于,所述查询密文为经过压缩后的所述TLWE类型的密文,所述服务端,用于利用测试向量将所述查询密文中的第三部分密文进行解压缩,得到所述第三部分密文对应的所述TRGSW类型的密文。
18.一种数据检索系统,其特征在于,所述数据检索系统包括客户端以及服务端,所述服务端包括多个数据库服务器DBS,所述多个DBS用于存储数据库中的数据项,并且,不同DBS用于存储所述数据库中不同部分的数据项,每个DBS包括多个加速器;
所述客户端,用于根据用户的查询操作生成查询请求,所述查询请求包括查询密文,并向所述服务端发送所述查询请求;
所述服务端,用于根据所述查询请求中的查询密文,利用所述多个DBS并行执行数据检索过程,得到目标检索结果,并向所述客户端发送所述目标检索结果,其中,每个DBS利用多个加速器从已存储的数据项中并行检索数据;
所述客户端,还用于对所述目标检索结果进行解密,得到目标数据项。
19.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备集群执行权利要求1至9中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行如权利要求1至9任一项所述的方法。
CN202310316094.2A 2023-02-28 2023-03-28 一种数据检索方法、服务端、系统及相关设备 Active CN116521969B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310181355 2023-02-28
CN2023101813554 2023-02-28

Publications (2)

Publication Number Publication Date
CN116521969A true CN116521969A (zh) 2023-08-01
CN116521969B CN116521969B (zh) 2023-12-29

Family

ID=87398407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310316094.2A Active CN116521969B (zh) 2023-02-28 2023-03-28 一种数据检索方法、服务端、系统及相关设备

Country Status (1)

Country Link
CN (1) CN116521969B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117194756A (zh) * 2023-11-02 2023-12-08 北京信安世纪科技股份有限公司 数据处理方法、装置及存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089258B1 (en) * 2002-01-25 2006-08-08 Ncr Corporation System and method for structure subset generation for multiple databases
CN101663640A (zh) * 2007-06-27 2010-03-03 国际商业机器公司 提供合成显示的系统和方法
CN102084357A (zh) * 2008-07-01 2011-06-01 富士通株式会社 检索装置以及检索方法
CN103609059A (zh) * 2010-09-20 2014-02-26 安全第一公司 用于安全数据共享的系统和方法
CN104090934A (zh) * 2014-06-26 2014-10-08 山东金质信息技术有限公司 一种标准服务平台分布式并行计算数据库及其检索方法
CN104662539A (zh) * 2012-09-27 2015-05-27 艾玛迪斯简易股份公司 存储并检索数据的方法和系统
US20150205819A1 (en) * 2008-12-22 2015-07-23 Ctera Networks, Ltd. Techniques for optimizing data flows in hybrid cloud storage systems
CN106662981A (zh) * 2014-06-27 2017-05-10 日本电气株式会社 存储设备、程序和信息处理方法
US20180268015A1 (en) * 2015-09-02 2018-09-20 Sasha Sugaberry Method and apparatus for locating errors in documents via database queries, similarity-based information retrieval and modeling the errors for error resolution
CN111315487A (zh) * 2017-09-05 2020-06-19 迪森德克斯公司 用于质量控制和疾病检测的标志物分析
CN113032419A (zh) * 2021-04-21 2021-06-25 上海微盟企业发展有限公司 一种多源数据聚合搜索方法、装置、设备及存储介质
US20210250174A1 (en) * 2019-01-04 2021-08-12 Baidu Usa Llc Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator
CN115220740A (zh) * 2022-06-21 2022-10-21 平安科技(深圳)有限公司 数据库环境部署方法、装置、电子设备及存储介质
CN115422293A (zh) * 2022-08-31 2022-12-02 浙江齐安信息科技有限公司 一种分布式数据库及其数据检索方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089258B1 (en) * 2002-01-25 2006-08-08 Ncr Corporation System and method for structure subset generation for multiple databases
CN101663640A (zh) * 2007-06-27 2010-03-03 国际商业机器公司 提供合成显示的系统和方法
CN102084357A (zh) * 2008-07-01 2011-06-01 富士通株式会社 检索装置以及检索方法
US20150205819A1 (en) * 2008-12-22 2015-07-23 Ctera Networks, Ltd. Techniques for optimizing data flows in hybrid cloud storage systems
CN103609059A (zh) * 2010-09-20 2014-02-26 安全第一公司 用于安全数据共享的系统和方法
CN104662539A (zh) * 2012-09-27 2015-05-27 艾玛迪斯简易股份公司 存储并检索数据的方法和系统
CN104090934A (zh) * 2014-06-26 2014-10-08 山东金质信息技术有限公司 一种标准服务平台分布式并行计算数据库及其检索方法
CN106662981A (zh) * 2014-06-27 2017-05-10 日本电气株式会社 存储设备、程序和信息处理方法
US20180268015A1 (en) * 2015-09-02 2018-09-20 Sasha Sugaberry Method and apparatus for locating errors in documents via database queries, similarity-based information retrieval and modeling the errors for error resolution
CN111315487A (zh) * 2017-09-05 2020-06-19 迪森德克斯公司 用于质量控制和疾病检测的标志物分析
US20210250174A1 (en) * 2019-01-04 2021-08-12 Baidu Usa Llc Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator
CN113032419A (zh) * 2021-04-21 2021-06-25 上海微盟企业发展有限公司 一种多源数据聚合搜索方法、装置、设备及存储介质
CN115220740A (zh) * 2022-06-21 2022-10-21 平安科技(深圳)有限公司 数据库环境部署方法、装置、电子设备及存储介质
CN115422293A (zh) * 2022-08-31 2022-12-02 浙江齐安信息科技有限公司 一种分布式数据库及其数据检索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONGFEI CAO 等: ""Visual Reasoning Indexing and Retrieval Using In-Memory Computing"", 《2016 IEEE SECOND INTERNATIONAL CONFERENCE ON MULTIMEDIA BIG DATA》, pages 17 - 24 *
陈叶旺 等: ""面向大规模数据的DBSCAN 加速算法研究进展"", 《计算机研究与发展》, pages 1 - 20 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117194756A (zh) * 2023-11-02 2023-12-08 北京信安世纪科技股份有限公司 数据处理方法、装置及存储介质

Also Published As

Publication number Publication date
CN116521969B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US11620392B2 (en) Sargable evaluation of queries submitted to an encrypted database
US20240113858A1 (en) Systems and Methods for Performing Secure Machine Learning Analytics Using Homomorphic Encryption
US10972251B2 (en) Secure web browsing via homomorphic encryption
US10476662B2 (en) Method for operating a distributed key-value store
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN112042150B (zh) 登记装置、服务器装置、隐匿检索系统、隐匿检索方法及计算机可读取的记录介质
CN110851481B (zh) 一种可搜索加密方法、装置、设备及可读存储介质
CN108111587B (zh) 一种基于时间释放的云存储搜索方法
US20240104234A1 (en) Encrypted information retrieval
CN116521969B (zh) 一种数据检索方法、服务端、系统及相关设备
US20220209945A1 (en) Method and device for storing encrypted data
CN111611621A (zh) 基于区块链的分布式数据加密存储方法和电子设备
JP2021521490A (ja) 劣線形公開鍵演算による非公開情報検索
JP2001101055A (ja) データベース管理装置、データベースシステム、暗号化装置及び記録媒体
Lam et al. Gpu-based private information retrieval for on-device machine learning inference
US20230006813A1 (en) Encrypted information retrieval
JP7440662B2 (ja) マルチキー情報検索
CN114911851B (zh) 数据查询方法、装置及存储介质
WO2022244226A1 (ja) セキュア結合システム、情報処理装置、セキュア結合方法、及びプログラム
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
WO2016002198A1 (ja) 検索補助データ格納装置、検索装置、追加装置、削除装置、検索依頼装置、追加依頼装置、削除依頼装置、データ検索システム、データ検索方法、および、記憶媒体
Silva et al. Leveraging an homomorphic encryption library to implement a coordination service
CN118118164A (zh) 数据保护方法、基于纵向联邦学习模型的预测方法及装置
JP2024061277A (ja) プログラム、情報処理装置、方法、及び情報処理システム
Zou et al. Semi-Honest 2-Party Faithful Truncation from Two-Bit Extraction

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
GR01 Patent grant
GR01 Patent grant