CN115186145A - 一种隐私关键词查询方法、装置及*** - Google Patents
一种隐私关键词查询方法、装置及*** Download PDFInfo
- Publication number
- CN115186145A CN115186145A CN202211099439.5A CN202211099439A CN115186145A CN 115186145 A CN115186145 A CN 115186145A CN 202211099439 A CN202211099439 A CN 202211099439A CN 115186145 A CN115186145 A CN 115186145A
- Authority
- CN
- China
- Prior art keywords
- hash table
- data
- positions
- oprf
- client
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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/602—Providing cryptographic facilities or services
-
- 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
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (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
本申请公开了一种隐私关键词查询方法、装置及***,涉及多方安全计算技术领域及隐私计算技术领域,其中,客户端利将k个待查询关键词映射到第一哈希表中,服务端将n条数据对直接哈希映射到第二哈希表中,客户端与服务端之间针对第一哈希表中的待查询关键词以及第二哈希表中的关键词,执行批量OPRF协议,客户端得到k个OPRF值,服务端得到n乘以r个OPRF值,服务端使用n乘以r个OPRF值对第二哈希表中相同位置的数据对中的数据进行加密,客户端向服务端发起针对k个位置的隐匿查询,得到第三哈希表中k个位置的加密数据,并通过解密加密数据,得到待查询关键词对应的查询结果。采用本方案,减少了隐私关键词查询的通信开销和计算开销。
Description
技术领域
本申请涉及多方安全计算技术领域及隐私计算技术领域,尤其涉及一种隐私关键词查询方法、装置及***。
背景技术
隐私关键词查询(Private Keyword Search,PKS),是关于密码学的多方安全计算技术领域中近年来兴起的一个重要应用场景。高效地实现PKS,可广泛应用于金融、工业等场景下的敏感隐私数据的查询,能够尽可能地保护客户端和服务端的数据隐私安全,使得服务端的数据仅透露单条数据查询结果的信息。
现有的隐私关键词查询实现方法,在仅有两方参与的情况下,可以采用基于同态加密(Homomorphic Rncryption,HE)的方法和基于不经意传输(Oblivious Transfer,OT)的方法。基于OT的方法通讯量很大,需要服务端向客户端传输与服务端持有的数据量成正比的密文数据。而一般的隐私关键词查询场景,客户端仅是查询少量的关键词,服务端如果持有大量数据,那么通讯开销和服务端持有的数据量成正比,显然将导致通讯开销较大,无法令人满意,也难以在实际场景中适用。
基于同态加密的方法通过构造多项式来同态计算查询结果,虽然通讯开销能够和服务端持有的数据量n成次线性,但也只能达到O(n0.5)级别,并且无法使用批处理技术,导致计算开销较大,具有O(n)的公钥复杂度开销,这一点在实际场景中需要使用很多机器算力才能满足高效查询的需求。
基于全同态加密及批处理技术可以实现高效的隐匿查询(Private InformationRetrieval,PIR),即按照位置进行查询,其通讯开销和计算开销都较小,能达到实际场景中实时查询的需求。但是实际场景中往往不会有按照位置查询的需求,因为客户端在发起查询时往往不会具有待查询数据在服务端数据库中的位置信息,从而不可能得知其待查询数据在服务端数据库的哪个位置中。
发明内容
本申请实施例提供一种隐私关键词查询方法、装置及***,用以解决现有技术中存在的隐私关键词查询的通信开销和计算开销较大的问题。
本申请实施例提供一种隐私关键词查询方法,应用于客户端,所述客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,所述方法,包括:
利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,所述k个待查询关键词分别位于所述第一哈希表的k个位置中;
针对所述第一哈希表中的待查询关键词以及所述服务端持有的第二哈希表中的关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到k个分别与所述第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,使得所述服务端得到n乘以r个OPRF值,所述第二哈希表为所述服务端利用所述r个哈希函数,将n条数据对直接哈希映射到一张大小为m的哈希表中得到的,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B,所述n乘以r个OPRF值分别与n条数据对在所述第二哈希表中的n乘以r个位置对应;
向所述服务端发起针对第三哈希表的所述k个位置的隐匿查询,得到针对所述k个位置中的每个位置返回的B个加密数据,所述第三哈希表中的所述n乘以r个位置的加密数据为所述服务端分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密得到的;
针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
进一步的,还包括:
当使用该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据均未成功时,确定所述n条数据对中不存在该位置对应的待查询关键词。
本申请实施例还提供一种隐私关键词查询方法,应用于服务端,所述服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端持有k个待查询关键词,所述方法,包括:
利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B;
针对所述第二哈希表中的关键词以及所述客户端持有的第一哈希表中的待查询关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到n乘以r个分别与n条数据对在所述第二哈希表中的n乘以r个位置对应的OPRF值,使得所述客户端得到k个OPRF值,所述第一哈希表为所述客户端利用具有所述r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的哈希表中得到的,所述k个待查询关键词分别位于所述第一哈希表的k个位置中,所述k个OPRF值分别与k个待查询关键词在所述第一哈希表中的k个位置及其存放的待查询关键词对应;
分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表;
接收所述客户端发起的针对所述第三哈希表的所述k个位置的隐匿查询;
向所述客户端针对所述k个位置中的每个位置,返回所述第三哈希表中该位置的B个加密数据,使得所述客户端针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
进一步的,在所述分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表之后,还包括:
当所述第三哈希表中存在存放的加密数据未达到所述预设数目B的位置时,使用随机数数据将该位置的加密数据补充到所述预设数目B。
本申请实施例还提供一种隐私关键词查询装置,应用于客户端,所述客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,所述装置,包括:
第一映射模块,用于利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,所述k个待查询关键词分别位于所述第一哈希表的k个位置中;
第一协议执行模块,用于针对所述第一哈希表中的待查询关键词以及所述服务端持有的第二哈希表中的关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到k个分别与所述第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,使得所述服务端得到n乘以r个OPRF值,所述第二哈希表为所述服务端利用所述r个哈希函数,将n条数据对直接哈希映射到一张大小为m的哈希表中得到的,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B,所述n乘以r个OPRF值分别与n条数据对在所述第二哈希表中的n乘以r个位置对应;
第一查询模块,用于向所述服务端发起针对第三哈希表的所述k个位置的隐匿查询,得到针对所述k个位置中的每个位置返回的B个加密数据,所述第三哈希表中的所述n乘以r个位置的加密数据为所述服务端分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密得到的;
数据解密模块,用于针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
进一步的,所述数据解密模块,还用于当使用该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据均未成功时,确定所述n条数据对中不存在该位置对应的待查询关键词。
本申请实施例还提供一种隐私关键词查询装置,应用于服务端,所述服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端持有k个待查询关键词,所述装置,包括:
第二映射模块,用于利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B;
第二协议执行模块,用于针对所述第二哈希表中的关键词以及所述客户端持有的第一哈希表中的待查询关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到n乘以r个分别与n条数据对在所述第二哈希表中的n乘以r个位置对应的OPRF值,使得所述客户端得到k个OPRF值,所述第一哈希表为所述客户端利用具有所述r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的哈希表中得到的,所述k个待查询关键词分别位于所述第一哈希表的k个位置中,所述k个OPRF值分别与k个待查询关键词在所述第一哈希表中的k个位置及其存放的待查询关键词对应;
数据加密模块,用于分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表;
第二查询模块,用于接收所述客户端发起的针对所述第三哈希表的所述k个位置的隐匿查询;
数据发送模块,用于向所述客户端针对所述k个位置中的每个位置,返回所述第三哈希表中该位置的B个加密数据,使得所述客户端针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
进一步的,所述数据加密模块,还用于当所述第三哈希表中存在存放的加密数据未达到所述预设数目B的位置时,使用随机数数据将该位置的加密数据补充到所述预设数目B。
本申请实施例还提供一种隐私关键词查询***,包括:上述任一应用于客户端的隐私关键词查询装置,以及上述任一应用于服务端的隐私关键词查询装置。
本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于客户端的隐私关键词查询方法,或者,实现上述任一应用于服务端的隐私关键词查询方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于客户端的隐私关键词查询方法,或者,实现上述任一应用于服务端的隐私关键词查询方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于客户端的隐私关键词查询方法,或者,执行上述任一应用于服务端的隐私关键词查询方法。
本申请有益效果包括:
本申请实施例提供的方法中,客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,服务端利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,客户端与服务端之间针对第一哈希表中的待查询关键词以及第二哈希表中的关键词,按照第一哈希表和第二哈希表中位置的指定顺序,执行批量OPRF协议,客户端得到k个分别与第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,服务端得到n乘以r个分别与n条数据对在第二哈希表中的n乘以r个位置对应的OPRF值,服务端分别使用n乘以r个OPRF值对第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表,然后,客户端向服务端发起针对第三哈希表的k个位置的隐匿查询,得到第三哈希表中k个位置中的每个位置的B个加密数据,并针对其中每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。采用该方法,相比现有技术,保留了基于位置的隐匿查询的次线性通信开销和高效计算的特性,且其中所引入的OPRF协议的额外通信开销较少,额外计算开销属于快速的对称密钥级别运算,因此,在一定程度上保证客户端查询关键词的隐私和服务端持有数据的隐私的安全性的前提下,减少了隐私关键词查询的通信开销和计算开销,提高了查询效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例中应用于客户端的隐私关键词查询方法的流程图;
图2为本申请实施例中应用于服务端的隐私关键词查询方法的流程图;
图3为本申请实施例提供的隐私关键词查询方法的流程图;
图4为本申请实施例的示例1中第一哈希表和第二哈希表的示意图;
图5为本申请实施例的示例1中第三哈希表的示意图;
图6为本申请实施例提供的应用于客户端的隐私关键词查询装置的结构示意图;
图7为本申请实施例提供的应用于服务端的隐私关键词查询装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出减少了隐私关键词查询的通信开销和计算开销的实现方案,本申请实施例提供了一种隐私关键词查询方法、装置及***,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种隐私关键词查询方法,应用于客户端,客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,如图1所示,该方法,包括:
步骤11、利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,k个待查询关键词分别位于第一哈希表的k个位置中;
步骤12、针对第一哈希表中的待查询关键词以及服务端持有的第二哈希表中的关键词,按照第一哈希表和第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到k个分别与第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,使得服务端得到n乘以r个OPRF值,第二哈希表为服务端利用r个哈希函数,将n条数据对直接哈希映射到一张大小为m的哈希表中得到的,每条数据对位于第二哈希表中的r个不同位置,且第二哈希表中每个位置存放的数据对不超过预设数目B,n乘以r个OPRF值分别与n条数据对在第二哈希表中的n乘以r个位置对应;
步骤13、向服务端发起针对第三哈希表的k个位置的隐匿查询,得到针对k个位置中的每个位置返回的B个加密数据,第三哈希表中的n乘以r个位置的加密数据为服务端分别使用n乘以r个OPRF值对第二哈希表中相同位置的数据对中的数据进行加密得到的;
步骤14、针对k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
相应的,本申请实施例还提供一种隐私关键词查询方法,应用于服务端,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端持有k个待查询关键词,如图2所示,该方法,包括:
步骤21、利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于第二哈希表中的r个不同位置,且第二哈希表中每个位置存放的数据对不超过预设数目B;
步骤22、针对第二哈希表中的关键词以及客户端持有的第一哈希表中的待查询关键词,按照第一哈希表和第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到n乘以r个分别与n条数据对在第二哈希表中的n乘以r个位置对应的OPRF值,使得客户端得到k个OPRF值,第一哈希表为客户端利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的哈希表中得到的,k个待查询关键词分别位于第一哈希表的k个位置中,k个OPRF值分别与k个待查询关键词在第一哈希表中的k个位置及其存放的待查询关键词对应;
步骤23、分别使用n乘以r个OPRF值对第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表;
步骤24、接收客户端发起的针对第三哈希表的k个位置的隐匿查询;
步骤25、向客户端针对k个位置中的每个位置,返回第三哈希表中该位置的B个加密数据,使得客户端针对k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
本申请实施例提供的上述隐私关键词查询方法中,客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,服务端利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,客户端与服务端之间针对第一哈希表中的待查询关键词以及第二哈希表中的关键词,按照第一哈希表和第二哈希表中位置的指定顺序,执行批量OPRF协议,客户端得到k个分别与第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,服务端得到n乘以r个分别与n条数据对在第二哈希表中的n乘以r个位置对应的OPRF值,服务端分别使用n乘以r个OPRF值对第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表,然后,客户端向服务端发起针对第三哈希表的k个位置的隐匿查询,得到第三哈希表中k个位置中的每个位置的B个加密数据,并针对其中每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。采用该方法,相比现有技术,保留了基于位置的隐匿查询的次线性通信开销和高效计算的特性,且其中所引入的OPRF协议的额外通信开销较少,额外计算开销属于快速的对称密钥级别运算,因此,在一定程度上保证客户端查询关键词的隐私和服务端持有数据的隐私的安全性的前提下,减少了隐私关键词查询的通信开销和计算开销,提高了查询效率。
下面结合附图,用具体实施例对本申请提供的方法及装置和相应***进行详细描述。
本申请实施例提供一种隐私关键词查询方法,应用于客户端和服务端,其中,客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,该方法可以用于客户端向服务端查询该k个待查询关键词对应的数据,如图3所示,该方法可以包括如下步骤:
步骤31、客户端利用具有r个哈希函数的布谷鸟哈希(Cuckoo Hash)算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,该k个待查询关键词分别位于第一哈希表的k个位置中,即第一哈希表中的每个位置最多映射有一个待查询关键词。
本申请实施例中,客户端需要进行隐私关键词查询,其持有k个待查询关键词z1,z2,……,zk,k个待查询关键词z1,z2,……,zk被分别映射到位置C(z1),C(z2),……,C(zk)。
以示例1为例,客户端持有2个待查询关键词x4和x7,将该2个待查询关键词映射到一张大小为8的第一哈希表中,如图4所示,将关键词x7映射到位置2,将关键词x4映射到位置6。
步骤32、服务端利用该布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于第二哈希表中的r个不同位置,且第二哈希表中每个位置存放的数据对不超过预设数目B。
本申请实施例中,客户端需要进行隐私关键词查询,服务端持有被查询的n条数据对(x1,y1),(x2,y2),……,(xn,yn),n条数据对(x1,y1),(x2,y2),……,(xn,yn)被映射到第二哈希表中,一共产生r乘以n个位置,假设xi被映射到的位置是H(xi,1),H(xi,2),……,H(xi,r),其中,H(xi,j)的值在1-m之间,在第二哈希表的位置H(xi,j)上存放数据对(xi,yi),其中1≤i≤n,1≤j≤r。且设定一个上限的预设数目B,即第二哈希表中每个位置存放的数据对不超过预设数目B。
以上述示例1为例,服务端持有7条数据对,分别是(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)、(x7,y7),r取值为3,B取值为3,将该7条数据对映射到一张大小为8的第二哈希表中,如图4所示,数据对(x1,y1)位于位置4、5和6,数据对(x2,y2)位于位置1、4和5,数据对(x3,y3)位于位置2、7和8,其他数据对所映射到的位置如图4所示。
由于客户端和服务端在执行哈希映射时,客户端使用的是具有r个哈希函数的布谷鸟哈希算法,服务端使用的是该同一个布谷鸟哈希算法的相同的该r个哈希函数,因此,在第一哈希表和第二哈希表中,对于k个待查询关键词中的每个待查询关键词,该待查询关键词的数据对在第二哈希表中所位于的r个位置中,必然有一个位置与该待查询关键词在第一哈希表中所位于的位置相同。
上述步骤31和步骤32之间,没有严格的先后顺序。
步骤33、客户端与服务端之间,针对第一哈希表中的待查询关键词以及第二哈希表中的关键词,按照第一哈希表和第二哈希表中位置的指定顺序,执行批量OPRF(Oblivious Pseudo-Random Function,不经意伪随机函数)协议。
客户端作为发送方,可以得到k个分别与第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,分别为OPRF(z1,C(z1))、OPRF(z2,C(z2))、……、OPRF(zk,C(zk))。
服务端作为接收方,可以得到n乘以r个分别与n条数据对在第二哈希表中的n乘以r个位置对应的OPRF值,分别为OPRF(x1,H(x1,1))、OPRF(x1,H(x1,2))、……、OPRF(x1,H(x1,r))、OPRF(x2,H(x2,1))、OPRF(x2,H(x2,2))、……、OPRF(x2,H(x2,r))、……、OPRF(xn,H(xn,1))、OPRF(xn,H(xn,2))、……、OPRF(xn,H(xn,r))。
按照上述示例1执行本步骤后,客户端得到2个OPRF值,分别是OPRF(x7,2)和OPRF(x4,6),服务端得到7乘以3共计21个OPRF值,例如,OPRF(x2,1),OPRF(x5,1),OPRF(x3,2)等,其中有两个OPRF值与客户端持有的OPRF(x7,2)和OPRF(x4,6)相等,即服务端针对位置2得到的3个OPRF值,包括OPRF(x3,2),OPRF(x6,2)和OPRF(x7,2),以及针对为宗旨6得到的3个OPRF值,包括OPRF(x1,6),OPRF(x4,6)和OPRF(x6,6)。
步骤34、服务端分别使用n乘以r个OPRF值对第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表。
也就是说,使用位置H(xi,j)对应的OPRF(xi,H(xi,j)),对放置在该位置H(xi,j)的数据对(xi,yi)中的数据yi进行加密,得到加密数据[yi],相应的加密数据对为(xi,[yi])。
按照上述示例1执行本步骤后,得到如图5所示的第三哈希表。
其中,服务端针对位置2,使用OPRF(x3,2),OPRF(x6,2)和OPRF(x7,2),分别对应的对y3,y6和y7进行加密,得到加密数据[y3]、[y6]、[y7],针对位置6,使用OPRF(x1,6),OPRF(x4,6)和OPRF(x6,6),分别对y1,y4和y6进行加密,得到加密数据[y1]、[y4]、[y6]。
步骤35、当第三哈希表中存在存放的加密数据未达到预设数目B的位置时,使用随机数数据将该位置的加密数据补充到预设数目B。
在上述示例1中,B取值为3,从图5中可见,位置1、5和8中所存放的加密数据未达到3条,因此可以使用随机数据将该位置的加密数据补充到3条。
步骤36、客户端向服务端发起针对第三哈希表的k个位置的隐匿查询,得到针对该k个位置中的每个位置返回的B个加密数据。
本步骤中,客户端向服务端发起针对第三哈希表的位置C(z1)、C(z2)、……、C(zk)的隐匿查询,服务端针对每个位置的隐匿查询返回第三哈希表中位于该位置的B个加密数据,共计返回k乘以B个加密数据。
按照上述示例1执行本步骤,针对第一哈希表中待查询关键词x7所位于的位置2,请求隐匿查询后,服务端向客户端返回第三哈希表中位于位置2的3个加密数据[y3]、[y6]、[y7],针对第一哈希表中待查询关键词x4所位于的位置6,请求隐匿查询后,服务端向客户端返回第三哈希表中位于位置6的3个加密数据[y1]、[y4]、[y6]。
步骤37、客户端针对该k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
若待查询关键词z1在服务端持有的n条数据对当中,假设z1=xi,那么服务端的第三哈希表的C(z1)位置中必定会有(xi,yi)经过OPRF(xi,C(z1))加密后的加密数据对(xi,[yi]),所以,客户端向服务端请求隐匿查询得到的B个加密数据[yt(1)]、[yt(2)]、……、[yt(B)]必定有一个为[yi],且客户端拥有的OPRF(z1,C(z1))与服务端拥有的OPRF(xi,C(z1))相同,从而,客户端能够正确将加密数据[yi]解密为yi,而其他加密数据都无法被正确的成功解密,只能得到乱码。
本申请实施例中,对于如何判断是正确的成功解密还是解密得到乱码,可以通过判断解密出的yi的前若干位(如40位)是否为0,若全为0则大概率为正确的成功解密,若解密得到乱码则非常小概率(2^-40)能得到前40位全部为0。
若待查询关键词z1在服务端持有的n条数据对当中,那么[yt(1)]、[yt(2)]、……、[yt(B)]就不会存在用OPRF(z1,C(z1))加密的加密数据,则客户端无法解密到任何有效数据信息,即无法成功解密,从而确定n条数据对中不存在该位置对应的待查询关键词。
按照上述示例1执行本步骤,针对位置2,客户端使用OPRF(x7,2)分别解密隐匿查询得到的加密数据[y3]、[y6]、[y7],由于[y7]是由服务端使用OPRF(x7,2)对y7加密得到的,所以,客户端可以成功对加密数据[y7]进行解密,得到y7,作为待查询关键词x7的查询结果。
针对位置6,客户端使用OPRF(x4,6)分别解密隐匿查询得到的加密数据[y1]、[y4]、[y6],由于[y4]是由服务端使用OPRF(x4,6)对y4加密得到的,所以,客户端可以成功对加密数据[y4]进行解密,得到y4,作为待查询关键词x4的查询结果。
本申请实施例提供的上述隐私关键词查询方法,利用了布谷鸟哈希、OPRF协议以及隐匿查询,其中,关于布谷鸟哈希算法中哈希表的大小m,以及哈希函数的个数r,以及每个位置存放的数据对的上限值B,均可以基于实际应用中的需要进行灵活设置,m应当适当选取,不能太小,否则每个位置存放的数据对的上限值B将比较大,使得计算和传输k乘以B个隐匿查询中的加密数据的开销将比较大,m也不能太大,否则客户端与服务端之间执行批量OPRF协议时传输的数据量将较大。
本申请实施例提供的上述隐私关键词查询方法,特别适用于客户端批量查询的场景,以及反复查询的场景。布谷鸟哈希算法中哈希函数的个数r可以选取2或3,由于客户端一次性查询的关键词数量不会太多,即便只选取2或3个哈希函数,也能保证较高的布谷鸟哈希的成功率。
基于同一发明构思,根据本申请上述实施例提供的应用于客户端的隐私关键词查询方法,相应地,本申请另一实施例还提供了一种隐私关键词查询装置,应用于客户端,所述客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,其结构示意图如图6所示,具体包括:
第一映射模块61,用于利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,所述k个待查询关键词分别位于所述第一哈希表的k个位置中;
第一协议执行模块62,用于针对所述第一哈希表中的待查询关键词以及所述服务端持有的第二哈希表中的关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到k个分别与所述第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,使得所述服务端得到n乘以r个OPRF值,所述第二哈希表为所述服务端利用所述r个哈希函数,将n条数据对直接哈希映射到一张大小为m的哈希表中得到的,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B,所述n乘以r个OPRF值分别与n条数据对在所述第二哈希表中的n乘以r个位置对应;
第一查询模块63,用于向所述服务端发起针对第三哈希表的所述k个位置的隐匿查询,得到针对所述k个位置中的每个位置返回的B个加密数据,所述第三哈希表中的所述n乘以r个位置的加密数据为所述服务端分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密得到的;
数据解密模块64,用于针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
进一步的,所述数据解密模块64,还用于当使用该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据均未成功时,确定所述n条数据对中不存在该位置对应的待查询关键词。
基于同一发明构思,根据本申请上述实施例提供的应用于服务端的隐私关键词查询方法,相应地,本申请另一实施例还提供了一种隐私关键词查询装置,应用于服务端,所述服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端持有k个待查询关键词,其结构示意图如图7所示,具体包括:
第二映射模块71,用于利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B;
第二协议执行模块72,用于针对所述第二哈希表中的关键词以及所述客户端持有的第一哈希表中的待查询关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到n乘以r个分别与n条数据对在所述第二哈希表中的n乘以r个位置对应的OPRF值,使得所述客户端得到k个OPRF值,所述第一哈希表为所述客户端利用具有所述r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的哈希表中得到的,所述k个待查询关键词分别位于所述第一哈希表的k个位置中,所述k个OPRF值分别与k个待查询关键词在所述第一哈希表中的k个位置及其存放的待查询关键词对应;
数据加密模块73,用于分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表;
第二查询模块74,用于接收所述客户端发起的针对所述第三哈希表的所述k个位置的隐匿查询;
数据发送模块75,用于向所述客户端针对所述k个位置中的每个位置,返回所述第三哈希表中该位置的B个加密数据,使得所述客户端针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
进一步的,所述数据加密模块73,还用于当所述第三哈希表中存在存放的加密数据未达到所述预设数目B的位置时,使用随机数数据将该位置的加密数据补充到所述预设数目B。
上述各模块的功能可对应于图1至图3所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的应用于客户端的隐私关键词查询装置,以及应用于服务端的隐私关键词查询装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要应用于客户端的隐私关键词查询装置,以及应用于服务端的隐私关键词查询装置具有上述功能,都应该在本申请的保护范围之内。
本申请实施例还提供一种隐私关键词查询***,包括:上述任一应用于客户端的隐私关键词查询装置,以及上述任一应用于服务端的隐私关键词查询装置。
本申请实施例还提供一种电子设备,如图8所示,包括处理器81和机器可读存储介质82,所述机器可读存储介质82存储有能够被所述处理器81执行的机器可执行指令,所述处理器81被所述机器可执行指令促使:实现上述任一应用于客户端的隐私关键词查询方法,或者,实现上述任一应用于服务端的隐私关键词查询方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于客户端的隐私关键词查询方法,或者,实现上述任一应用于服务端的隐私关键词查询方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于客户端的隐私关键词查询方法,或者,执行上述任一应用于服务端的隐私关键词查询方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种隐私关键词查询方法,其特征在于,应用于客户端,所述客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,所述方法,包括:
利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,所述k个待查询关键词分别位于所述第一哈希表的k个位置中;
针对所述第一哈希表中的待查询关键词以及所述服务端持有的第二哈希表中的关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到k个分别与所述第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,使得所述服务端得到n乘以r个OPRF值,所述第二哈希表为所述服务端利用所述r个哈希函数,将n条数据对直接哈希映射到一张大小为m的哈希表中得到的,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B,所述n乘以r个OPRF值分别与n条数据对在所述第二哈希表中的n乘以r个位置对应;
向所述服务端发起针对第三哈希表的所述k个位置的隐匿查询,得到针对所述k个位置中的每个位置返回的B个加密数据,所述第三哈希表中的所述n乘以r个位置的加密数据为所述服务端分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密得到的;
针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
2.如权利要求1所述的方法,其特征在于,还包括:
当使用该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据均未成功时,确定所述n条数据对中不存在该位置对应的待查询关键词。
3.一种隐私关键词查询方法,其特征在于,应用于服务端,所述服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端持有k个待查询关键词,所述方法,包括:
利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B;
针对所述第二哈希表中的关键词以及所述客户端持有的第一哈希表中的待查询关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到n乘以r个分别与n条数据对在所述第二哈希表中的n乘以r个位置对应的OPRF值,使得所述客户端得到k个OPRF值,所述第一哈希表为所述客户端利用具有所述r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的哈希表中得到的,所述k个待查询关键词分别位于所述第一哈希表的k个位置中,所述k个OPRF值分别与k个待查询关键词在所述第一哈希表中的k个位置及其存放的待查询关键词对应;
分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表;
接收所述客户端发起的针对所述第三哈希表的所述k个位置的隐匿查询;
向所述客户端针对所述k个位置中的每个位置,返回所述第三哈希表中该位置的B个加密数据,使得所述客户端针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
4.如权利要求3所述的方法,其特征在于,在所述分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表之后,还包括:
当所述第三哈希表中存在存放的加密数据未达到所述预设数目B的位置时,使用随机数数据将该位置的加密数据补充到所述预设数目B。
5.一种隐私关键词查询装置,其特征在于,应用于客户端,所述客户端持有k个待查询关键词,服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,所述装置,包括:
第一映射模块,用于利用具有r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的第一哈希表中,所述k个待查询关键词分别位于所述第一哈希表的k个位置中;
第一协议执行模块,用于针对所述第一哈希表中的待查询关键词以及所述服务端持有的第二哈希表中的关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到k个分别与所述第一哈希表的k个位置及其存放的待查询关键词对应的OPRF值,使得所述服务端得到n乘以r个OPRF值,所述第二哈希表为所述服务端利用所述r个哈希函数,将n条数据对直接哈希映射到一张大小为m的哈希表中得到的,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B,所述n乘以r个OPRF值分别与n条数据对在所述第二哈希表中的n乘以r个位置对应;
第一查询模块,用于向所述服务端发起针对第三哈希表的所述k个位置的隐匿查询,得到针对所述k个位置中的每个位置返回的B个加密数据,所述第三哈希表中的所述n乘以r个位置的加密数据为所述服务端分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密得到的;
数据解密模块,用于针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
6.如权利要求5所述的装置,其特征在于,所述数据解密模块,还用于当使用该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据均未成功时,确定所述n条数据对中不存在该位置对应的待查询关键词。
7.一种隐私关键词查询装置,其特征在于,应用于服务端,所述服务端持有n条数据对,每条数据对包含一个关键词和对应的数据,客户端持有k个待查询关键词,所述装置,包括:
第二映射模块,用于利用布谷鸟哈希算法的r个哈希函数,将n条数据对直接哈希映射到一张大小为m的第二哈希表中,每条数据对位于所述第二哈希表中的r个不同位置,且所述第二哈希表中每个位置存放的数据对不超过预设数目B;
第二协议执行模块,用于针对所述第二哈希表中的关键词以及所述客户端持有的第一哈希表中的待查询关键词,按照所述第一哈希表和所述第二哈希表中位置的指定顺序,执行批量不经意伪随机函数OPRF协议,得到n乘以r个分别与n条数据对在所述第二哈希表中的n乘以r个位置对应的OPRF值,使得所述客户端得到k个OPRF值,所述第一哈希表为所述客户端利用具有所述r个哈希函数的布谷鸟哈希算法,将k个待查询关键词映射到一张大小为m的哈希表中得到的,所述k个待查询关键词分别位于所述第一哈希表的k个位置中,所述k个OPRF值分别与k个待查询关键词在所述第一哈希表中的k个位置及其存放的待查询关键词对应;
数据加密模块,用于分别使用n乘以r个OPRF值对所述第二哈希表中相同位置的数据对中的数据进行加密,得到包含n乘以r个加密数据的第三哈希表;
第二查询模块,用于接收所述客户端发起的针对所述第三哈希表的所述k个位置的隐匿查询;
数据发送模块,用于向所述客户端针对所述k个位置中的每个位置,返回所述第三哈希表中该位置的B个加密数据,使得所述客户端针对所述k个位置中的每个位置,使用自身持有的该位置及其存放的待查询关键词对应的OPRF值,解密与该位置对应的B个加密数据,其中,能够成功解密出的数据,为该位置对应的待查询关键词对应的查询结果。
8.如权利要求7所述的装置,其特征在于,所述数据加密模块,还用于当所述第三哈希表中存在存放的加密数据未达到所述预设数目B的位置时,使用随机数数据将该位置的加密数据补充到所述预设数目B。
9.一种隐私关键词查询***,其特征在于,包括:如权利要求5-6任一所述的应用于客户端的隐私关键词查询装置,以及如权利要求7-8任一所述的应用于服务端的隐私关键词查询装置。
10.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-2任一所述的应用于客户端的隐私关键词查询方法,或者,实现权利要求3-4任一所述的应用于服务端的隐私关键词查询方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-2任一所述的应用于客户端的隐私关键词查询方法,或者,实现权利要求3-4任一所述的应用于服务端的隐私关键词查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211099439.5A CN115186145B (zh) | 2022-09-09 | 2022-09-09 | 一种隐私关键词查询方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211099439.5A CN115186145B (zh) | 2022-09-09 | 2022-09-09 | 一种隐私关键词查询方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115186145A true CN115186145A (zh) | 2022-10-14 |
CN115186145B CN115186145B (zh) | 2022-11-18 |
Family
ID=83524194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211099439.5A Active CN115186145B (zh) | 2022-09-09 | 2022-09-09 | 一种隐私关键词查询方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115186145B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115906185A (zh) * | 2023-02-14 | 2023-04-04 | 蓝象智联(杭州)科技有限公司 | 一种批量隐匿查询方法、装置及存储介质 |
CN115967491A (zh) * | 2023-03-07 | 2023-04-14 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、***和可读存储介质 |
CN115982424A (zh) * | 2023-03-15 | 2023-04-18 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及电子设备 |
CN116150445A (zh) * | 2023-04-04 | 2023-05-23 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
CN116361344A (zh) * | 2023-04-03 | 2023-06-30 | 北京火山引擎科技有限公司 | 数据查询方法、装置、设备及介质 |
CN116401693A (zh) * | 2023-06-09 | 2023-07-07 | 北京融数联智科技有限公司 | 一种具有隐私保护的数据库的一对多等值连接方法及*** |
CN117171162A (zh) * | 2023-08-03 | 2023-12-05 | 湖南天河国云科技有限公司 | 基于无碰撞哈希映射的隐匿查询方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201520A1 (en) * | 2010-12-03 | 2014-07-17 | Yacov Yacobi | Attribute-based access-controlled data-storage system |
CN113343305A (zh) * | 2021-06-29 | 2021-09-03 | 招商局金融科技有限公司 | 隐私数据的交集计算方法、装置、设备及存储介质 |
CN115017107A (zh) * | 2022-06-02 | 2022-09-06 | 润联软件***(深圳)有限公司 | 基于保护隐私的数据检索方法、装置、计算机设备及介质 |
-
2022
- 2022-09-09 CN CN202211099439.5A patent/CN115186145B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201520A1 (en) * | 2010-12-03 | 2014-07-17 | Yacov Yacobi | Attribute-based access-controlled data-storage system |
CN113343305A (zh) * | 2021-06-29 | 2021-09-03 | 招商局金融科技有限公司 | 隐私数据的交集计算方法、装置、设备及存储介质 |
CN115017107A (zh) * | 2022-06-02 | 2022-09-06 | 润联软件***(深圳)有限公司 | 基于保护隐私的数据检索方法、装置、计算机设备及介质 |
Non-Patent Citations (1)
Title |
---|
黄美东: "《医疗云中隐私信息可检索加密技术研究》", 《中国博士学位论文全文数据库》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115906185A (zh) * | 2023-02-14 | 2023-04-04 | 蓝象智联(杭州)科技有限公司 | 一种批量隐匿查询方法、装置及存储介质 |
CN115967491A (zh) * | 2023-03-07 | 2023-04-14 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、***和可读存储介质 |
CN115982424A (zh) * | 2023-03-15 | 2023-04-18 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及电子设备 |
CN115982424B (zh) * | 2023-03-15 | 2023-05-12 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及电子设备 |
CN116361344A (zh) * | 2023-04-03 | 2023-06-30 | 北京火山引擎科技有限公司 | 数据查询方法、装置、设备及介质 |
CN116150445A (zh) * | 2023-04-04 | 2023-05-23 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
CN116150445B (zh) * | 2023-04-04 | 2023-07-21 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
CN116401693A (zh) * | 2023-06-09 | 2023-07-07 | 北京融数联智科技有限公司 | 一种具有隐私保护的数据库的一对多等值连接方法及*** |
CN116401693B (zh) * | 2023-06-09 | 2023-07-28 | 北京融数联智科技有限公司 | 一种具有隐私保护的数据库的一对多等值连接方法及*** |
CN117171162A (zh) * | 2023-08-03 | 2023-12-05 | 湖南天河国云科技有限公司 | 基于无碰撞哈希映射的隐匿查询方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115186145B (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115186145B (zh) | 一种隐私关键词查询方法、装置及*** | |
JP5680725B2 (ja) | 複雑性の低い装置の認証及び機密性を提供する方法及び装置 | |
CN105610793B (zh) | 一种外包数据加密存储与密文查询***及其应用方法 | |
US8484480B2 (en) | Transmitting information using virtual input layout | |
CN112836229A (zh) | 属性基加密和区块链结合的可信数据访问控制方案 | |
CN115982424B (zh) | 一种隐私关键词查询方法、装置及电子设备 | |
CN111555880B (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN114547078A (zh) | 基于隐私计算的联邦跨特征查询方法、装置、介质及设备 | |
CN109194473A (zh) | 一种数据传输方法、***、装置、终端及存储介质 | |
CN115795514A (zh) | 一种隐私信息检索方法、装置及*** | |
CN116502254A (zh) | 可查得统计的匿踪查询方法及装置 | |
US20220191178A1 (en) | Method and system for secure information distribution based on group shared key | |
CN108171076A (zh) | 保护电子交易中消费者隐私的大数据相关性分析方法及*** | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN117077209B (zh) | 大规模数据匿踪查询方法 | |
CN117171202A (zh) | 一种数据查询方法及装置 | |
CN117371011A (zh) | 数据隐匿查询方法、电子设备和可读存储介质 | |
CN115567200B (zh) | http接口防刷方法、***及相关设备 | |
CN113364577B (zh) | 一种oprf协议的实现方法、装置及电子设备 | |
CN107872312B (zh) | 对称密钥动态生成方法、装置、设备及*** | |
CN114900318B (zh) | 基于密钥协商协议以及可验证的一轮通信可搜索加密方法 | |
CN114647662B (zh) | 数据检索方法、装置、电子设备、存储介质 | |
CN117827884A (zh) | 一种批量数据查询方法及装置 | |
CN116244307A (zh) | 数据查询方法及装置 | |
CN114553438A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |