CN115412356A - 数据查询设备法、装置、计算机设备以及存储介质 - Google Patents

数据查询设备法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN115412356A
CN115412356A CN202211071644.0A CN202211071644A CN115412356A CN 115412356 A CN115412356 A CN 115412356A CN 202211071644 A CN202211071644 A CN 202211071644A CN 115412356 A CN115412356 A CN 115412356A
Authority
CN
China
Prior art keywords
data
key
query
candidate
party
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.)
Pending
Application number
CN202211071644.0A
Other languages
English (en)
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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian Technology 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202211071644.0A priority Critical patent/CN115412356A/zh
Publication of CN115412356A publication Critical patent/CN115412356A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供一种数据查询设备法、装置、计算机设备以及存储介质,该方法中数据持有方通过对候选键值对应的数据项与公共随机数进行拼接后,通过密钥对拼接获得的明文数据进行加密,并将加密后的加密数据发送数据查询方,数据查询方利用查询方密钥数据对加密数据进行解密,并利用公共随机数从解密数据中确定待查询的数据项;数据持有设备和数据查询设备之间传输的数据只有加密数据,不涉及具体的明文数据,保护了双方的数据安全,而密钥传输是通过隐私交集计算进行传输,数据查询方仅能获取与查询键值相同的候选键值的正确密钥,以解密出该候选键值对应的数据项,无法获取其他候选键值的正确密钥以及数据项,且数据持有方无法得知数据查询方所获取的数据项。

Description

数据查询设备法、装置、计算机设备以及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种数据查询设备法、装置、计算机设备以及存储介质。
背景技术
隐私信息检索(Private Information Retrieval,PIR)是为了保障个人隐私在公共网络平台上的私密性而采用的策略,当数据查询方在向数据持有方所提交的数据查询请求时,保证数据持有方不知道数据查询方具体查询语句的相关信息。目前在医疗、专利等对检索隐私有着较高要求的领域,隐私信息检索都具有很大的应用空间。
现有的隐私信息检索基于全同态加密,通过构造多项式插值进行隐私查询,通过该方法进行隐私检索数据持有方与数据查询方间的通信量较小,但是数据计算量极大,信息检索效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种数据查询设备法、装置、计算机设备以及存储介质,用以提高隐私信息检索的检索效率。
第一方面,本申请提供一种数据查询方法,应用于数据持有设备,该方法包括:
获取候选键值以及候选键值对应的数据项;
拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;
通过与数据查询设备进行隐私交集计算得到持有方密钥数据,使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;
将候选键值对应的密文数据作为加密数据发送至数据查询设备,加密数据用于指示数据查询设备利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据,并基于公共随机数从解密数据中确定待查询的数据项;其中,查询方密钥数据是根据密钥参考数据以及查询键值获取的,密钥参考数据是数据查询设备通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。
在本申请一些实施例中,通过与数据查询设备进行隐私交集计算得到持有方密钥数据的步骤,包括:
获取与数据查询设备约定的公共映射函数;
通过公共映射函数将候选键值映射为与候选键值对应的第一映射数据;
构建与候选键值对应的第一随机向量,将第一随机向量确定为第一密钥数据;
对与候选键值对应的第一映射数据以及第一密钥数据进行逻辑运算,得到与候选键值对应的第二密钥数据;
将与候选键值对应的第一密钥数据以及第二密钥数据确定为持有方密钥数据。
第二方面,本申请提供一种数据查询方法,应用于数据查询设备,方法包括:
接收数据持有设备发送的加密数据;加密数据包括各个候选键值对应的密文数据;其中,候选键值对应的密文数据是使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密得到的,候选键值对应的明文数据是拼接公共随机数以及候选键值对应的数据项得到的;
通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据,根据密钥参考数据以及查询键值获取查询方密钥数据;
利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据;
基于公共随机数从解密数据中确定待查询的数据项。
在本申请一些实施例中,其特征在于,基于公共随机数从解密数据中确定待查询的数据项的步骤,包括:
获取解密数据中的目标位置的第一数据序列;
若数据序列与公共随机数相匹配,将解密数据中的第二数据序列确定为待查询的数据项。
在本申请一些实施例中,通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据的步骤,包括:
构建第二随机向量;
基于第二随机向量对数据持有设备发起不经意传输,从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据。
在本申请一些实施例中,根据密钥参考数据以及查询键值获取查询方密钥数据的步骤,包括:
对第二随机向量以及查询键值进行同或运算,得到第一运算结果;
获取与数据查询设备约定的公共映射函数,通过公共映射函数将第一运算结果映射为第二映射数据;
对密钥参考数据以及第二映射数据进行异或运算,得到查询方密钥数据。
第三方面,本申请提供一种数据查询方法,应用于数据查询系统,数据查询系统包括通信连接的数据持有设备以及数据查询设备,该方法包括:
数据持有设备与数据查询设备进行隐私交集计算,通过隐私交集计算,数据持有设备得到持有方密钥数据,数据查询设备从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据;
数据持有设备获取候选键值以及候选键值对应的数据项;
数据持有设备拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;
数据持有设备使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;
数据持有设备将候选键值对应的密文数据作为加密数据发送至数据查询设备;
数据查询设备接收数据持有设备发送的加密数据;加密数据包括各个候选键值对应的密文数据;
数据查询设备根据密钥参考数据以及查询键值获取查询方密钥数据;
数据查询设备利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据;
数据查询设备基于公共随机数从解密数据中确定待查询的数据项。
第四方面,本申请提供一种数据查询装置,应用于数据持有设备,该装置包括:
数据项获取模块,用于获取候选键值以及候选键值对应的数据项;
明文数据获取模块,用于拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;
数据加密模块,用于通过与数据查询设备进行隐私交集计算得到持有方密钥数据,使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;
数据发送模块,用于将候选键值对应的密文数据作为加密数据发送至数据查询设备,加密数据用于指示数据查询设备利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据,并基于公共随机数从解密数据中确定待查询的数据项;其中,查询方密钥数据是根据密钥参考数据以及查询键值获取的,密钥参考数据是数据查询设备通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。
第五方面,本申请提供一种数据查询装置,应用于数据查询设备,该装置包括:
数据接收模块,用于接收数据持有设备发送的加密数据;加密数据包括各个候选键值对应的密文数据;其中,候选键值对应的密文数据是使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密得到的,候选键值对应的明文数据是拼接公共随机数以及候选键值对应的数据项得到的;
密钥获取模块,用于通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据,根据密钥参考数据以及查询键值获取查询方密钥数据;
数据解密模块,用于利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据;
数据确定模块,用于基于公共随机数从解密数据中确定待查询的数据项。
第六方面,本申请还提供一种服务器,服务器包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中一个或多个应用程序被存储于存储器中,并配置为由处理器执行以实现数据查询设备法。
第七方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行数据查询设备法中的步骤。
上述数据查询设备法、装置、计算机设备以及存储介质,通过获取候选键值以及候选键值对应的数据项;拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;将候选键值对应的密文数据作为加密数据发送至数据查询设备,加密数据用于指示数据查询设备根据密钥参考数据以及查询键值获取查询方密钥数据,利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据,并基于公共随机数从解密数据中确定待查询的数据项;其中,持有方密钥数据是数据持有方通过与数据查询设备进行隐私交集计算得到,密钥参考数据是数据查询设备通过与数据持有方进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。数据持有方通过将候选键值对应的数据项与事先约定的公共随机数进行拼接后,通过与数据查询方进行隐私交集计算后得到的第一密钥数据对拼接获得的明文数据进行加密,并将加密后的加密数据发送数据查询方,数据查询方通过与数据查询方进行隐私交集计算后得到的密钥参考数据与查询键值计算查询方密钥数据,并利用查询方密钥数据对加密数据进行解密,进而基于公共随机数从解密数据中确定待查询的数据项,数据持有设备和数据查询设备之间传输的数据只有加密数据,不涉及具体的明文数据,保护了双方的数据安全;而密钥传输是通过隐私交集计算进行传输,数据查询方仅能获取与查询键值相同的候选键值的正确密钥,以解密出该候选键值对应的数据项,数据查询方无法获取其他候选键值的正确密钥以及数据项,且数据持有方无法得知数据查询方所获取的数据项,双方实现隐私信息检索,且数据交互过程中的数据计算量较小,信息检索效率高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中数据查询设备方法的场景示意图;
图2是本申请实施例中数据查询设备方法的流程示意图;
图3是本申请实施例中数据查询设备方法的另一流程示意图;
图4是本申请实施例中数据查询设备方法的另一流程示意图;
图5是本申请实施例中数据查询装置的结构示意图;
图6是本申请实施例中数据查询装置的另一结构示意图;
图7是本申请实施例中计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,“例如”一词用来表示“用作例子、例证或说明”。本申请中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
本申请实施例提供的数据查询设备法,可以应用于如图1所示的数据查询系统中。其中,该数据查询系统包括数据持有方对应的数据存储设备100和数据查询设备200,数据存储设备100和数据查询设备200可以是终端,也可以是服务器;其中,终端具体可以是手机、平板电脑、笔记本电脑等中的一种,服务器可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(CloudComputing)的大量计算机或网络服务器构成。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的计算机设备,例如图1中仅示出1个数据查询设备200,可以理解的,该数据查询系统还可以包括一个或多个其他服务器,具体此处不作限定。
还需说明的是,图1所示数据查询系统的场景示意图仅仅是一个示例,本发明实施例描述的数据查询系统以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着数据查询系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
参阅图2,本申请实施例提供了一种数据查询设备法,主要以该方法应用于上述图1中的数据存储设备100来举例说明,该方法包括步骤S210至S230,具体如下:
S210,获取候选键值以及候选键值对应的数据项。
其中,候选键值和候选键值对应的数据项是数据存储设备上所存储的键值对,其中键值是用于检索查询相应的数据项。
其中,候选键值以及候选键值对应的数据项的数量为两个或两个以上。具体地,可预先通过分桶处理(例如哈希取模分桶处理)对全量的键值对划分,在接收到数据查询设备发送的数据查询请求后,基于数据查询请求将某个桶所存储的键值对确定为候选键值以及候选键值对应的数据项,实现在数据量较大的时候通过离线预处理操作提高数据查询效率。
S220,拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据。
其中,公共随机数是数据持有方与数据查询设备事先约定的一个随机数,其数据长度可以为数据持有方与数据查询设备事先约定的安全长度,公共随机数据可用于在数据查询设备在解密过程中定位正确的数据项。
在获取到公共随机数后,数据持有方将公共随机数分别与各个候选键值对应的数据项进行拼接,以得到各个候选键值对应的明文数据;具体地,拼接公共随机数以及候选键值对应的数据项,可以是将公共随机数放置在前、数据项放置在后进行拼接,也可以是将公共随机数放置在后、数据项放置在前进行拼接,在此不进行限定。
例如,以将公共随机数放置在前、数据项放置在后进行拼接为例,候选键值对应的明文数据可表示为下式(1):
v′i=nonce||vi (1)
其中,v′i表示第i个候选键值对应的明文数据,nonce表示公共随机数,vi表示第i个候选键值对应的数据项。
S230,通过与数据查询设备进行隐私交集计算得到持有方密钥数据,使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据。
其中,持有方密钥数据包括第一密钥数据以及第二密钥数据,是数据持有方与数据查询设备通过隐私交集(Private Set Intersection,简称为PSI)计算得到的。具体地,在一个实施例中,通过与数据查询设备进行隐私交集计算得到持有方密钥数据的步骤,具体可由包括:获取与数据查询设备约定的公共映射函数;通过公共映射函数将候选键值映射为与候选键值对应的第一映射数据;构建与候选键值对应的第一随机向量,将第一随机向量确定为第一密钥数据;对与候选键值对应的第一映射数据以及第一密钥数据进行逻辑运算,得到与候选键值对应的第二密钥数据;将与候选键值对应的第一密钥数据以及第二密钥数据确定为持有方密钥数据。
其中,公共映射函数是数据持有方与数据查询设备事先约定的一个函数,用于将候选键值映射为其他值,以保护数据的隐私性。具体地,在一个实施例中,公共映射函数可以是伪随机数生成函数,该伪随机数生成函数可将输入数据映射为一个长度为安全长度的随机数序列;其中,安全长度是数据持有方与数据查询设备事先约定的,可表示为λ,安全长度越长,则在数据持有方与数据查询设备交互过程中数据的安全性和防碰撞性越高;伪随机数是用确定性的算法计算出服从{0,1}分布的随机数序列,在计算伪随机数时,若伪随机数生成函数使用的初值与输入值不变,那么伪随机数的数序也不变。例如,伪随机数生成函数由如下公式(2)表示:
Figure BDA0003829266410000091
式中,fk(·)标识伪随机数生成函数;
Figure BDA0003829266410000092
为所有候选键值的集合,称为消息空间;k为伪随机数生成函数的初值,对相同的k和输入值,得到的结果也是一致的,例如,数据持有方持有数据y,数据查询设备持有数据x,则下式(3)成立:
Figure BDA0003829266410000093
其中,第一密钥数据以及第二密钥数据可以包括长度为安全长度λ且由0和1组成的向量。
在一个实施例中,第一密钥数据为第一密钥矩阵,第一密钥矩阵中包括n个长度为安全长度λ、且由0和1组成的随机向量,同样的,第二密钥数据为第二密钥矩阵,第二密钥矩阵中包括n个长度为安全长度λ、且由0和1组成的随机向量,其中,n取值为候选键值的数量。
在通过公共映射函数将各个候选键值映射为长度为安全长度λ的第一映射数据后,针对任意一个候选键值,可对该候选键值对应的第一密钥数据与该候选键值对应的第一映射数据进行异或运算,以获取第二密钥数据。
例如,假设数据持有方持有数据:(y1,v1),(y2,v2),...,(yn,vn),其中,yi表示候选键值,vi表示候选键值对应的数据项,i∈[1,n];数据持有方先随机构建一个{0,1}n×λ的矩阵R0(即第一密钥数据),需要说明的是,矩阵R0中第i行的随机向量为第i个候选键值对应的第一密钥数据,i∈[1,n];同时,可通过下式计算矩阵R1(即第二密钥数据):
Figure BDA0003829266410000101
同样的,矩阵R1中第i行的向量为第i个候选键值对应的第二密钥数据。
在获取到持有方密钥数据后,针对任意一个候选键值对应的明文数据,使用持有方密钥数据中与该候选键值对应的第一密钥数据,对该候选键值对应的明文数据进行加密,得到该候选键值对应的密文数据。进一步地,具体可以是使用第一密钥数据以对称加密的方式对候选键值对应的明文数据进行加密。
例如,可以以第一密钥数据使用AES加密算法对候选键值对应的明文数据进行加密。
S240,将候选键值对应的密文数据作为加密数据发送至数据查询设备,加密数据用于指示数据查询设备利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据,并基于公共随机数从解密数据中确定待查询的数据项;其中,查询方密钥数据是根据密钥参考数据以及查询键值获取的,密钥参考数据是数据查询设备通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。
具体地,数据持有方在获取到所有候选键值对应的密文数据后,将所有候选键值对应的密文数据作为加密数据发送到数据查询设备。
其中,查询键值是数据查询方所持有的键值,是待查询的数据项的键值。密钥参考数据是数据查询设备通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取,数据查询设备基于查询键值以及密钥参考数据,可计算得到与各个密文数据对应的查询方密钥数据。
具体地,若查询键值与某一候选键值(即目标候选键值)相同时,根据该密钥参考数据以及查询键值所获取得到的查询方密钥数据与该目标候选键值对应的第一密钥数据相同,通过该查询方密钥数据对目标候选键值对应的密文数据进行解密可得的正确的明文数据,该明文数据包括公共随机数与候选键值对应的数据项。相反,若查询键值与某一候选键值(即目标候选键值)不相同时,根据该密钥参考数据以及查询键值所获取得到的查询方密钥数据与该目标候选键值对应的第一密钥数据不同,通过该查询方密钥数据对目标候选键值对应的密文数据进行解密得到的是乱码数据,而无法得到正确的明文数据。因此,数据查询设备在获得查询方密钥数据后,利用查询方密钥数据对各个候选键值对应的密文数据进行解密所得到的多个解密数据中,可通过公共随机数从解密数据中,查找被正确解密的解密数据,以获取与查询键值匹配的候选键值的数据项。
上述数据查询设备法中,通过获取候选键值以及候选键值对应的数据项;拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;将候选键值对应的密文数据作为加密数据发送至数据查询设备,加密数据用于指示数据查询设备根据密钥参考数据以及查询键值获取查询方密钥数据,利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据,并基于公共随机数从解密数据中确定待查询的数据项;其中,持有方密钥数据是数据持有方通过与数据查询设备进行隐私交集计算得到,密钥参考数据是数据查询设备通过与数据持有方进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。数据持有方通过将候选键值对应的数据项与事先约定的公共随机数进行拼接后,通过与数据查询方进行隐私交集计算后得到的第一密钥数据对拼接获得的明文数据进行加密,并将加密后的加密数据发送数据查询方,数据查询方通过与数据查询方进行隐私交集计算后得到的密钥参考数据与查询键值计算查询方密钥数据,并利用查询方密钥数据对加密数据进行解密,进而基于公共随机数从解密数据中确定待查询的数据项,数据持有设备和数据查询设备之间传输的数据只有加密数据,不涉及具体的明文数据,保护了双方的数据安全;而对明文数据的进行加密解密的密钥的传输是通过隐私交集计算进行传输的,数据查询方仅能获取到与查询键值相同的候选键值所对应的密钥,只能对与查询键值相同的候选键值所对应的加密数据进行正确解密,而无法对其他候选键值对应的加密数据进行正确解密,进而,基于查询方密钥数据对与查询键值匹配的候选键值对应的加密数据进行解密得到的是有效的明文数据,而对其他候选键值对应的加密数据进行解密得到的是乱码数据,由此数据查询方仅能获取与查询键值对应的数据项而无法获得其他数据项,而数据持有方也无法得知数据查询方所获取的数据项,双方的隐私信息检索无需采用同态加密,极大减少了数据计算量,信息检索效率高。
此外,现有的基于全同态加密的隐私信息检索,针对数据长度较长的数据项需要对数据项进行数据拆分以构造单独的插值多项式,然后对多个插值多项式进行拼接得到数据项对应的加密数据,相较于基于全同态加密的隐私信息检索,本申请实施例中的数据查询方法,可对任意长度的数据项进行加密,无需进行数据的拆分后再拼接的操作,大大提高信息检索效率高。
参阅图3,本申请实施例提供了一种数据查询设备法,主要以该方法应用于上述图1中的数据查询设备200来举例说明,该方法包括步骤310至S330,具体如下:
S310,接收数据持有设备发送的加密数据;加密数据包括各个候选键值对应的密文数据;其中,候选键值对应的密文数据是使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密得到的,候选键值对应的明文数据是拼接公共随机数以及候选键值对应的数据项得到的。
其中,数据查询设备可以发送数据查询请求至数据持有设备,以提示数据持有设备发送加密数据至数据查询设备。具体地,数据持有设备可以获取候选键值以及候选键值对应的数据项,在拼接公共随机数以及候选键值对应的数据项得到候选键值对应的明文数据后,使用事先与数据查询设备进行隐私交集计算得到持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据。
可以理解的是,数据持有设备的数据处理过程可以参照应用于数据持有设备的数据查询方法中各个实施例中的内容。
S320,通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据,根据密钥参考数据以及查询键值获取查询方密钥数据。
其中,查询键值是数据查询方所持有的键值,是待查询的数据项的键值。
在一个实施例中,通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据的步骤,包括:构建第二随机向量;基于第二随机向量对数据持有设备发起不经意传输,从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据。
其中,在数据持有设备和数据持有设备进行两方的隐私数据交集计算的情况下,数据持有设备和数据持有设备共同约定安全长度以及公共映射函数;数据持有设备随机生成一个长度为安全长度、由0和1组成的随机向量r0作为第一密钥数据,并基于所持有的数据、事先约定的公共映射函数以及随机向量r0生成随机向量r1作为第二密钥数据;数据查询设备随机生成一个长度为安全长度、由0和1组成的随机向量s(即第二随机向量);数据查询设备基于随机向量s向数据持有设备发起不经意传输,从随机向量r0以及随机向量r1获取密钥参考数据,其中,不经意传输是指数据持有设备只会向数据查询设备提供其需要的信息,而不是将所有的信息(如第一密钥数据或第二密钥数据)发送到数据查询设备,可以理解的是,密钥参考数据与数据持有设备中的第一密钥数据或第二密钥数据有关,但数据查询设备并不会直接获取到数据持有设备中第一密钥数据或第二密钥数据。
具体地,密钥参考数据可以为密钥参考矩阵,在密钥参考矩阵中包括n个长度为安全长度λ、由0和1组成的密钥参考向量,n取值为候选键值的数量;其中,在密钥参考矩阵中第k列(k∈[1,λ])的具体取值是基于随机向量s决定的;若随机向量s中第k列上的取值为0,则密钥参考矩阵中第k列的取值为将所有候选键值对应的第一密钥数据(即矩阵R0)的第k列的取值;若随机向量s中第k列上的取值为1,则密钥参考矩阵中第k列的取值为将所有候选键值对应的第二密钥数据(即矩阵R1)的第k列的取值。
在获取到密钥参考数据后,数据查询设备可以根据密钥参考数据以及查询键值进行逻辑运算,得到查询方密钥数据。具体地,在一个实施例中,根据密钥参考数据以及查询键值获取查询方密钥数据的步骤,包括:对第二随机向量以及查询键值进行同或运算,得到第一运算结果;获取与数据查询设备约定的公共映射函数,通过公共映射函数将第一运算结果映射为第二映射数据;对密钥参考数据以及第二映射数据进行异或运算,得到查询方密钥数据。
具体地,如上,密钥参考数据可以为密钥参考矩阵;在获取到第二映射数据后,对密钥参考数据以及第二映射数据进行异或运算得到查询方密钥数据的步骤,具体是:从密钥参考矩阵中任意获取一个密钥参考向量,确定为目标密钥参考向量,该目标密钥参考向量与目标候选键值对应;进而,将目标密钥参考向量与第二映射数据进行异或运算,得到与目标候选键值对应的查询方密钥数据。例如,查询方密钥数据可通过下式(4)计算:
Figure BDA0003829266410000141
其中,ti,j表示基于密钥参考矩阵中第i行的密钥参考向量计算得到的、与第j个查询键值对应的查询方密钥数据,Qi是指密钥参考矩阵中第i行的密钥参考向量,xj为第j个查询键值,s为第二随机向量。
可以理解的是,若查询键值与该目标候选键值相同,则与目标候选键值对应的查询方密钥数据与目标候选键值对应的第一密钥数据相同,可解密出与目标候选键值对应的数据项;若查询键值与该目标候选键值不相同,则与目标候选键值对应的查询方密钥数据为乱码数据,无法解密出与目标候选键值对应的数据项;。
S330,利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据。
具体地,数据查询设备利用查询方密钥数据分别对各个候选键值对应的加密数据进行解密,得到各个候选键值对应的解密数据。可以理解的是,当查询键值与某一候选键值(即目标候选键值)相同时,查询方密钥数据对该目标候选键值对应的加密数据进行解密可得到正确的解密结果,而对除目标候选键值以外的其他候选键值对应的加密数据进行解密得到的是无效解密结果,即基于查询方密钥数据对与查询键值匹配的候选键值对应的加密数据进行解密得到的解密数据是该候选键值对应明文数据,而对其他候选键值对应的加密数据进行解密得到的解密数据是乱码数据。
S340,基于公共随机数从解密数据中确定待查询的数据项。
其中,公共随机数是数据持有方与数据查询方预先约定的随机数,其数据长度可以为安全长度。
如上,若加密数据被正确解密,对应的解密数据为与查询键值匹配的候选键值对应的明文数据,其为拼接的公共随机数与数据项;若加密数据被无效解密,对应的解密数据为无效数据。因此,若解密数据中包括公共随机数,则该解密数据为被正确解密的数据,该解密数据为查询键值所命中的数据,其中除公共随机数以外的数据即为查询键值对应的数据项(即待查询的数据项);数据查询设备在获取到界面数据后,基于公共随机数从解密数据中确定被正确解密的目标解密数据,并从目标界面数据中获取待查询的数据项。
具体地,在一个实施例中,基于公共随机数从解密数据中确定待查询的数据项的步骤,包括:获取解密数据中的目标位置的第一数据序列;若数据序列与公共随机数相匹配,将解密数据中的第二数据序列确定为待查询的数据项。
其中,目标位置是指数据持有方在对公共随机数与数据项进行拼接时,公共随机数所放置的位置。例如,公共随机数的长度为安全长度λ且数据持有方将公共随机数放置在前、数据项放置在后进行拼接,则目标位置是指解密数据中的前λ位。第一数据序列是指解密数据中目标位置上的数据序列,第二数据序列是指解密数据中目标位置以外的数据序列。
具体地,数据查询设备获取目标位置的第一数据序列,并将第一数据序列与公共随机数进行对比,若第一数据序列与公共随机数相同,则将解密数据中的第二数据序列确定为待查询的数据项。继续以公共随机数的长度为安全长度λ且数据持有方将公共随机数放置在前、数据项放置在后进行拼接为例,若解密数据的前λ位等于公共随机数,则解密数据中第λ位之后的数据就是待查询的数据项。
上述数据查询方法中,数据持有方通过对候选键值对应的数据项与公共随机数进行拼接后,通过与数据查询方进行隐私交集计算后得到的第一密钥数据对拼接获得的明文数据进行加密,并将加密后的加密数据发送数据查询方,数据查询方通过与数据查询方进行隐私交集计算后得到的密钥参考数据与查询键值计算查询方密钥数据,并利用查询方密钥数据对加密数据进行解密,并利用公共随机数从解密数据中确定待查询的数据项,数据持有设备和数据查询设备之间传输的数据只有加密数据,不涉及具体的明文数据,保护了双方的数据安全;此外,在数据传输过程中,数据持有设备和数据查询设备之间,对明文数据的加密解密的密钥(即第一密钥数据)传输是通过隐私交集计算进行传输的,数据查询方根据密钥参考数据与查询键值计算所得的查询方密钥数据,仅能对与查询键值匹配的候选键值对应的加密数据进行正确解密,而对其他候选键值对应的加密数据进行无效解密,进而,基于查询方密钥数据对与查询键值匹配的候选键值对应的加密数据进行解密得到的是有效的明文数据,而对其他候选键值对应的加密数据进行解密得到的是乱码数据,由此数据查询方仅能获取与查询键值对应的数据项而无法获得其他数据项,而数据持有方无法得知数据查询方所获取的数据项,保证了双方的隐私信息检索。
参阅图4,本申请实施例提供了一种数据查询方法,应用于如图1所示的数据查询系统,数据查询系统包括通信连接的数据持有设备以及数据查询设备,方法包括:
S410,数据持有设备与数据查询设备进行隐私交集计算,通过隐私交集计算,数据持有设备得到持有方密钥数据,数据查询设备从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据;
S420,数据持有设备获取候选键值以及候选键值对应的数据项;
S430,数据持有设备拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;
S440,数据持有设备使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;
S450,数据持有设备将候选键值对应的密文数据发送至数据查询设备;
S460,数据查询设备接收数据持有设备发送的加密数据;加密数据包括各个候选键值对应的密文数据;
S470,数据查询设备根据密钥参考数据以及查询键值获取查询方密钥数据;
S480,数据查询设备利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据;
S490,数据查询设备基于公共随机数从解密数据中确定待查询的数据项。
具体地,假设数据持有设备持有候选键值对(y1,v1),(y2,v2),...,(yn,vn),数据查询设备持有查询键值x1,x2,...,xm,如果xj=yi,数据查询设备会获取到vi,但数据持有设备并不知道数据查询设备具体获取了什么数据。
数据持有设备以及数据查询设备事先约定好一个安全长度λ、伪随机数生成函数以及公共随机数nonce。
其中,安全长度λ越大,则算法安全性和防碰撞性越高,相应的,算法的效率也会越低。伪随机数生成函数可表示为:
Figure BDA0003829266410000171
其中,
Figure BDA0003829266410000172
为所有消息组成的集合,称为消息空间;可以理解的是,对相同的k和输入,得到的结果也是一致的,即
Figure BDA0003829266410000173
公共随机数nonce的数据长度为安全长度λ。
数据持有设备针对任意一个候选键值对,随机生成一个长度为λ、由0与1组成的第一随机向量,即得到一个{0,1}n×λ矩阵R0;可以理解的是,矩阵R0中第i行的随机向量为第i个候选键值对的第一密钥数据,i∈[1,n],即
Figure BDA0003829266410000174
表示为第i个候选键值对的第一密钥数据。
数据持有设备通过公共映射函数将候选键值对中的候选键值yi映射为与候选键值对应的第一映射数据fk(yi),进而根据候选键值对应的第一映射数据fk(yi)以及第一密钥数据
Figure BDA0003829266410000175
进行逻辑运算,得到与候选键值对应的第二密钥数据
Figure BDA0003829266410000176
得到矩阵R1。具体地,矩阵R1可通过以下公式(5)获取:
Figure BDA0003829266410000177
针对数据持有设备中的候选键值对(yi,vi),i∈[1,n],数据持有设备拼接公共随机数nonce以及候选键值yi对应的数据项vi,得到候选键值yi对应的明文数据,进而使用
Figure BDA0003829266410000178
为密钥,使用对称加密的方式(如AES),对候选键值yi对应的明文数据进行加密,得到加密数据ei,并将加密数据ei发送至数据查询设备。具体地,加密数据ei可通过以下公(6)式获取:
Figure BDA0003829266410000179
数据查询设备随机生成一个长度为λ、由0与1组成的第二随机向量,其中,第二随机向量可表示为s∈{0,1}λ
数据查询设备根据第二随机向量向数据持有设备发起不经意传输,构建密钥参考数据。其中,密钥参考数据可以为一个密钥参考矩阵Q,密钥参考矩阵Q包括n个长度为安全长度λ、由0和1组成的密钥参考向量,在密钥参考矩阵Q中第k列(k∈[1,λ])的具体取值是基于随机向量s决定的;若随机向量s中第k列上的取值为0,则密钥参考矩阵中第k列的取值为矩阵R0的第k列的取值;若随机向量s中第k列上的取值为1,则密钥参考矩阵中第k列的取值为矩阵R1的第k列的取值。
明显地,
Figure BDA0003829266410000181
即,密钥参考矩阵Q中的第i行向量上各个位置的取值,由第二随机向量以及第i个候选键值对应的第一密钥数据
Figure BDA0003829266410000182
和第二密钥数据
Figure BDA0003829266410000183
决定。
数据查询设备根据密钥参考矩阵Q以及查询键值xj,计算查询方密钥数据ti,j。具体地,查询方密钥数据ti,j可通过下式(7)计算:
Figure BDA0003829266410000184
其中,ti,j表示基于第i行的密钥参考向量计算得到的、与第j个查询键值对应的查询方密钥数据。
可以理解的是,若xj=yi,则ti,j
Figure BDA0003829266410000185
相等;具体理由如下:
Figure BDA0003829266410000186
又因为
Figure BDA0003829266410000187
所以如果xj=yi,则无论s的取值为多少,
Figure BDA0003829266410000188
若xj≠yi,则ti,j为乱码数据,数据查询设备无法获取任何关于数据持有方的额外信息。
数据查询设备计算得到查询方密钥数据ti,j后,利用查询方密钥数据ti,j对加密数据ei进行解密,得到解密数据di,j。具体地,解密数据为di,j可通过下式(8)进行计算:
Figure BDA0003829266410000189
数据查询设备基于公共随机数nonce从解密数据di中确定待查询的数据项。具体地,若解密数据di的前λ位等于公共随机数nonce,则说明命中了对应的键值对,di的λ位之后的数据也就是数据项vi
进一步地,以数据持有设备持有三个候选键值对(y1,v1)、(y2,v2)以及(y3,v3),数据查询设备持有查询键值x1以及x2为例对上述数据查询方法进行说明。
具体地,数据持有设备针对任意一个候选键值对,随机生成一个长度为λ、由0与1组成的第一随机向量,即得到与y1对应的第一密钥数据
Figure BDA0003829266410000191
与y2对应的第一密钥数据
Figure BDA0003829266410000192
以及与y3对应的第一密钥数据
Figure BDA0003829266410000193
同时,可通过下式(8)至(10)获取与y1对应的第二密钥数据
Figure BDA0003829266410000194
与y2对应的第二密钥数据
Figure BDA0003829266410000195
以及与y3对应的第二密钥数据
Figure BDA0003829266410000196
Figure BDA0003829266410000197
Figure BDA0003829266410000198
Figure BDA0003829266410000199
然后,数据持有设备拼接公共随机数nonce以及各个候选键值对应的数据项,得到候选键值对应的明文数据(包括nonce||v1、nonce||v2以及once||v3);进而,使用第一密钥数据
Figure BDA00038292664100001910
通过对称加密的方式(如AES),对候选键值y1对应的明文数据(nonce||v1)进行行加密,得到加密数据e1;使用第一密钥数据
Figure BDA00038292664100001911
通过对称加密的方式(如AES),对候选键值y2对应的明文数据(nonce||v2)进行加密,得到加密数据e2;以及,使用第一密钥数据
Figure BDA00038292664100001912
通过对称加密的方式(如AES),对候选键值y3对应的明文数据(nonce||v3)进行加密,得到加密数据e3;并将加密数据e1以及e2发送至数据查询设备。
具体地,加密数据e1、e2以及e3可通过以下公式(11)至(13)获取:
Figure BDA00038292664100001913
Figure BDA00038292664100001914
Figure BDA00038292664100001915
数据查询设备随机生成一个长度为λ、由0与1组成的第二随机向量,其中,第二随机向量可表示为s∈{0,1}λ
数据查询设备根据第二随机向量对数据持有设备发起不经意传输,构建密钥参考数据。其中,密钥参考数据可以为一个密钥参考矩阵Q,密钥参考矩阵Q的具体取值可参见上文,在此不再赘述。
针对查询键值x1,数据查询设备可通过以下公式(14)至(16)计算得到三个查询方密钥数据:
Figure BDA0003829266410000201
Figure BDA0003829266410000202
Figure BDA0003829266410000203
其中,Q1表示密钥参考矩阵中第1行的密钥参考向量,其由候选键值y1的第一密钥数据
Figure BDA0003829266410000204
和第二密钥数据
Figure BDA0003829266410000205
决定;同样的,Q2、Q3分别表示密钥参考矩阵中第2、3行的密钥参考向量,由对应候选键值的第一密钥数据和第二密钥数据决定;t1,1表示基于第1行的密钥参考向量计算得到的、与查询键值x1对应的查询方密钥数据,同样的,t2,1表示基于第2行的密钥参考向量计算得到的、与查询键值x1对应的查询方密钥数据,t3,1表示基于第3行的密钥参考向量计算得到的、与查询键值x1对应的查询方密钥数据。
进而,数据查询设备利用查询方密钥数据t1,1对加密数据e1,得到解密数据d1,1;利用查询方密钥数据t2,1对加密数据e2,得到解密数据d2,1;利用查询方密钥数据t3,1对加密数据e3,得到解密数据d3,1
假设x1=y1,此时,
Figure BDA0003829266410000206
利用查询方密钥数据t1,1对加密数据e1进行解密可得到正确的解密结果,即可得到d1,1=nonce||v1;而x1≠y2,即
Figure BDA0003829266410000207
利用查询方密钥数据t2,1对加密数据e2进行解密得到的是乱码数据,即d2,1≠nonce||v2;而x1≠y3,即
Figure BDA0003829266410000208
利用查询方密钥数据t3,1对加密数据e3进行解密得到的是乱码数据,即d3,1≠nonce||v3
同样的,针对查询键值x2,数据查询设备可通过以下公式(17)至(19)计算得到两个查询方密钥数据:
Figure BDA0003829266410000209
Figure BDA00038292664100002010
Figure BDA00038292664100002011
其中,Q1表示密钥参考矩阵中第1行的密钥参考向量,其由候选键值y1的第一密钥数据
Figure BDA0003829266410000211
和第二密钥数据
Figure BDA0003829266410000212
决定;同样的,Q2、Q3分别表示密钥参考矩阵中第2、3行的密钥参考向量,由对应候选键值的第一密钥数据和第二密钥数据决定;t1,2表示基于第1行的密钥参考向量计算得到的、与查询键值x2对应的查询方密钥数据,同样的,t2,2表示基于第2行的密钥参考向量计算得到的、与查询键值x2对应的查询方密钥数据,t3,2表示基于第3行的密钥参考向量计算得到的、与查询键值x2对应的查询方密钥数据。
进而,数据查询设备利用查询方密钥数据t1,2对加密数据e1,得到解密数据d1,2;利用查询方密钥数据t2,2对加密数据e2,得到解密数据d2,2;利用查询方密钥数据t3,2对加密数据e3,得到解密数据d3,2
假设x2=y3,此时,
Figure BDA0003829266410000213
利用查询方密钥数据t1,2对加密数据e1进行解密无法得到正确的解密结果,得到的是乱码数据,即d1,2≠nonce||v1
Figure BDA0003829266410000214
利用查询方密钥数据t2,2对加密数据e2进行解密无法得到正确的解密结果,即d2,2≠nonce||v2;而x2=y3,即
Figure BDA0003829266410000215
利用查询方密钥数据t3,2对加密数据e3进行解密可得到正确的解密结果,即d3,2=nonce||v3
最后,数据查询设备可基于公共随机数nonce从解密数据d1,1、d2,1、d3,1、d1,2、d2,2以及d3,2中确定待查询的数据项。具体地,若解密数据di,j的前λ位等于公共随机数nonce,则说明命中了对应的键值对,di,j的λ位之后的数据也就是数据项vi,即数据查询设备可从d1,1中查询键值x1对应获得v1、从d3,2中获得查询键值x2对应的v3,而数据查询设备无法获得v2
为了更好实施本申请实施例提供的数据查询设备法,在本申请实施例所提数据查询设备法的基础之上,本申请实施例中还提供一种数据查询装置,应用于数据持有设备,如图5所示,数据查询装置500包括:
数据项获取模块510,用于获取候选键值以及候选键值对应的数据项;
明文数据获取模块520,用于拼接公共随机数以及候选键值对应的数据项,得到候选键值对应的明文数据;
数据加密模块530,用于通过与数据查询设备进行隐私交集计算得到持有方密钥数据,使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密,得到候选键值对应的密文数据;
数据发送模块540,用于将候选键值对应的密文数据作为加密数据发送至数据查询设备,加密数据用于指示数据查询设备利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据,并基于公共随机数从解密数据中确定待查询的数据项;其中,查询方密钥数据是根据密钥参考数据以及查询键值获取的,密钥参考数据是数据查询设备通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。
在本申请一些实施例中,数据加密模块,具体用于获取与数据查询设备约定的公共映射函数;通过公共映射函数将候选键值映射为与候选键值对应的第一映射数据;构建与候选键值对应的第一随机向量,将第一随机向量确定为第一密钥数据;对与候选键值对应的第一映射数据以及第一密钥数据进行逻辑运算,得到与候选键值对应的第二密钥数据;将与候选键值对应的第一密钥数据以及第二密钥数据确定为持有方密钥数据。
为了更好实施本申请实施例提供的数据查询设备法,在本申请实施例所提数据查询设备法的基础之上,本申请实施例中还提供一种数据查询装置,应用于数据查询设备,如图6所示,数据查询装置600包括:
数据接收模块610,用于接收数据持有设备发送的加密数据;加密数据包括各个候选键值对应的密文数据;其中,候选键值对应的密文数据是使用持有方密钥数据中的第一密钥数据,对候选键值对应的明文数据进行加密得到的,候选键值对应的明文数据是拼接公共随机数以及候选键值对应的数据项得到的;
密钥获取模块620,用于根据密钥参考数据以及查询键值获取查询方密钥数据;其中,密钥参考数据是数据查询设备通过与数据持有设备进行隐私交集计算从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取;
数据解密模块630,用于利用查询方密钥数据对候选键值的密文数据进行解密得到解密数据;
数据确定模块640,用于基于公共随机数从解密数据中确定待查询的数据项。
在本申请一些实施例中,数据确定模块,具体用于获取解密数据中的目标位置的第一数据序列;若第一数据序列与公共随机数相匹配,将解密数据中的第二数据序列确定为待查询的数据项。
在本申请一些实施例中,密钥获取模块,具体用于对第二随机向量以及查询键值进行同或运算,得到第一运算结果;获取与数据查询设备约定的公共映射函数,通过公共映射函数将第一运算结果映射为第二映射数据;对密钥参考数据以及第二映射数据进行异或运算,得到查询方密钥数据。
在本申请一些实施例中,密钥获取模块,具体用于构建第二随机向量;基于第二随机向量对数据持有设备发起不经意传输,从持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据。
关于数据查询装置的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储候选键值对等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请一些实施例中,提供了一种计算机设备,包括一个或多个处理器;存储器;以及一个或多个应用程序,其中一个或多个应用程序被存储于存储器中,并配置为由处理器执行上述数据查询设备法的步骤。此处数据查询设备法的步骤可以是上述各个实施例的数据查询设备法中的步骤。
在本申请一些实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器进行加载,使得处理器执行上述数据查询设备法的步骤。此处数据查询设备法的步骤可以是上述各个实施例的数据查询设备法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本申请实施例所提供的一种数据查询设备法、装置、计算机设备以及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

1.一种数据查询方法,其特征在于,应用于数据持有设备,所述方法包括:
获取候选键值以及候选键值对应的数据项;
拼接公共随机数以及所述候选键值对应的数据项,得到所述候选键值对应的明文数据;
通过与所述数据查询设备进行隐私交集计算得到持有方密钥数据,使用持有方密钥数据中的第一密钥数据,对所述候选键值对应的明文数据进行加密,得到所述候选键值对应的密文数据;
将所述候选键值对应的密文数据作为加密数据发送至数据查询设备,所述加密数据用于指示数据查询设备利用所述查询方密钥数据对所述候选键值的密文数据进行解密得到解密数据,并基于所述公共随机数从所述解密数据中确定待查询的数据项;其中,所述查询方密钥数据是根据密钥参考数据以及查询键值获取的,所述密钥参考数据是所述数据查询设备通过与所述数据持有设备进行隐私交集计算从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。
2.根据权利要求1所述的方法,其特征在于,所述通过与所述数据查询设备进行隐私交集计算得到持有方密钥数据的步骤,包括:
获取与所述数据查询设备约定的公共映射函数;
通过所述公共映射函数将所述候选键值映射为与所述候选键值对应的第一映射数据;
构建与所述候选键值对应的第一随机向量,将所述第一随机向量确定为第一密钥数据;
对与所述候选键值对应的所述第一映射数据以及所述第一密钥数据进行逻辑运算,得到与所述候选键值对应的第二密钥数据;
将与所述候选键值对应的所述第一密钥数据以及所述第二密钥数据确定为持有方密钥数据。
3.一种数据查询方法,其特征在于,应用于数据查询设备,所述方法包括:
接收数据持有设备发送的加密数据;所述加密数据包括各个候选键值对应的密文数据;其中,所述候选键值对应的密文数据是使用持有方密钥数据中的第一密钥数据,对所述候选键值对应的明文数据进行加密得到的,所述候选键值对应的明文数据是拼接公共随机数以及所述候选键值对应的数据项得到的;
通过与所述数据持有设备进行隐私交集计算从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据,根据所述密钥参考数据以及查询键值获取查询方密钥数据;
利用所述查询方密钥数据对所述候选键值的密文数据进行解密得到解密数据;
基于公共随机数从所述解密数据中确定待查询的数据项。
4.根据权利要求3所述的方法,其特征在于,所述基于公共随机数从所述解密数据中确定待查询的数据项的步骤,包括:
获取所述解密数据中的目标位置的第一数据序列;
若所述数据序列与所述公共随机数相匹配,将所述解密数据中的第二数据序列确定为待查询的数据项。
5.根据权利要求3所述的方法,其特征在于,所述通过与所述数据持有设备进行隐私交集计算从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据的步骤,包括:
构建第二随机向量;
基于所述第二随机向量对所述数据持有设备发起不经意传输,从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据。
6.根据权利要求5所述的方法,其特征在于,所述根据密钥参考数据以及查询键值获取查询方密钥数据的步骤,包括:
对所述第二随机向量以及所述查询键值进行同或运算,得到第一运算结果;
获取与所述数据查询设备约定的公共映射函数,通过所述公共映射函数将所述第一运算结果映射为第二映射数据;
对所述密钥参考数据以及所述第二映射数据进行异或运算,得到查询方密钥数据。
7.一种数据查询方法,其特征在于,应用于数据查询系统,所述数据查询系统包括通信连接的数据持有设备以及数据查询设备,所述方法包括:
所述数据持有设备与所述数据查询设备进行隐私交集计算,通过隐私交集计算,所述数据持有设备得到持有方密钥数据,所述数据查询设备从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据;
所述数据持有设备获取候选键值以及候选键值对应的数据项;
所述数据持有设备拼接公共随机数以及所述候选键值对应的数据项,得到所述候选键值对应的明文数据;
所述数据持有设备使用持有方密钥数据中的第一密钥数据,对所述候选键值对应的明文数据进行加密,得到所述候选键值对应的密文数据;
所述数据持有设备将所述候选键值对应的密文数据作为加密数据发送至所述数据查询设备;
所述数据查询设备接收所述数据持有设备发送的加密数据;所述加密数据包括各个候选键值对应的密文数据;
所述数据查询设备根据所述密钥参考数据以及查询键值获取查询方密钥数据;
所述数据查询设备利用所述查询方密钥数据对所述候选键值的密文数据进行解密得到解密数据;
所述数据查询设备基于公共随机数从所述解密数据中确定待查询的数据项。
8.一种数据查询装置,其特征在于,应用于数据持有设备,所述装置包括:
数据项获取模块,用于获取候选键值以及候选键值对应的数据项;
明文数据获取模块,用于拼接公共随机数以及所述候选键值对应的数据项,得到所述候选键值对应的明文数据;
数据加密模块,用于通过与所述数据查询设备进行隐私交集计算得到持有方密钥数据,使用持有方密钥数据中的第一密钥数据,对所述候选键值对应的明文数据进行加密,得到所述候选键值对应的密文数据;
数据发送模块,用于将所述候选键值对应的密文数据作为加密数据发送至数据查询设备,所述加密数据用于指示数据查询设备利用所述查询方密钥数据对所述候选键值的密文数据进行解密得到解密数据,并基于所述公共随机数从所述解密数据中确定待查询的数据项;其中,所述查询方密钥数据是根据密钥参考数据以及查询键值获取的,所述密钥参考数据是所述数据查询设备通过与所述数据持有设备进行隐私交集计算从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取。
9.一种数据查询装置,其特征在于,应用于数据查询设备,所述装置包括:
数据接收模块,用于接收数据持有设备发送的加密数据;所述加密数据包括各个候选键值对应的密文数据;其中,所述候选键值对应的密文数据是使用持有方密钥数据中的第一密钥数据,对所述候选键值对应的明文数据进行加密得到的,所述候选键值对应的明文数据是拼接公共随机数以及所述候选键值对应的数据项得到的;
密钥获取模块,用于通过与所述数据持有设备进行隐私交集计算从所述持有方密钥数据中的第一密钥数据以及第二密钥数据中获取密钥参考数据,根据所述密钥参考数据以及查询键值获取查询方密钥数据;
数据解密模块,用于利用所述查询方密钥数据对所述候选键值的密文数据进行解密得到解密数据;
数据确定模块,用于基于公共随机数从所述解密数据中确定待查询的数据项。
10.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至7中任一项所述的数据查询设备法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至7任一项所述的数据查询设备法中的步骤。
CN202211071644.0A 2022-09-02 2022-09-02 数据查询设备法、装置、计算机设备以及存储介质 Pending CN115412356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211071644.0A CN115412356A (zh) 2022-09-02 2022-09-02 数据查询设备法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211071644.0A CN115412356A (zh) 2022-09-02 2022-09-02 数据查询设备法、装置、计算机设备以及存储介质

Publications (1)

Publication Number Publication Date
CN115412356A true CN115412356A (zh) 2022-11-29

Family

ID=84163153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211071644.0A Pending CN115412356A (zh) 2022-09-02 2022-09-02 数据查询设备法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN115412356A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115988245A (zh) * 2022-12-12 2023-04-18 四川启睿克科技有限公司 基于安全多方计算隐私信息检索的智能电视广告推荐方法
CN116702215A (zh) * 2023-08-07 2023-09-05 腾讯科技(深圳)有限公司 一种查询处理方法、装置、设备及介质
CN117728965A (zh) * 2023-06-30 2024-03-19 荣耀终端有限公司 一种获取信息安全程度的方法及服务器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115988245A (zh) * 2022-12-12 2023-04-18 四川启睿克科技有限公司 基于安全多方计算隐私信息检索的智能电视广告推荐方法
CN115988245B (zh) * 2022-12-12 2024-04-16 四川启睿克科技有限公司 基于安全多方计算隐私信息检索的智能电视广告推荐方法
CN117728965A (zh) * 2023-06-30 2024-03-19 荣耀终端有限公司 一种获取信息安全程度的方法及服务器
CN116702215A (zh) * 2023-08-07 2023-09-05 腾讯科技(深圳)有限公司 一种查询处理方法、装置、设备及介质
CN116702215B (zh) * 2023-08-07 2023-12-08 腾讯科技(深圳)有限公司 一种查询处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN110334526B (zh) 一种支持验证的前向安全可搜索加密存储系统及方法
CN115412356A (zh) 数据查询设备法、装置、计算机设备以及存储介质
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
US11374910B2 (en) Method and apparatus for effecting a data-based activity
US10447475B1 (en) System and method for managing backup of cryptographic keys
CN114491637B (zh) 数据查询方法、装置、计算机设备和存储介质
CN115269938B (zh) 基于同态加密的关键词匿踪查询方法、系统及相关装置
CN113434555B (zh) 一种基于可搜索加密技术的数据查询方法和装置
CN114443718B (zh) 一种数据查询方法及系统
US11637817B2 (en) Method and apparatus for effecting a data-based activity
CN117150557A (zh) 一种基于安全多方计算的支持压缩的隐私信息检索方法及系统
Shu et al. SybSub: Privacy-preserving expressive task subscription with sybil detection in crowdsourcing
CN109981614B (zh) 基于用户群的数据加密方法、解密方法、查询方法及装置
CN116975886A (zh) 基于隐私保护的数据查询方法及装置
WO2023134576A1 (zh) 数据加密方法、属性授权中心及存储介质
CN114884700B (zh) 抗关键字猜测攻击的可搜索公钥加密批处理方法及系统
CN115935426A (zh) 一种基于sgx的远程图像特征提取与检索方法
CN108141462B (zh) 数据库查询的方法和系统
CN115422224A (zh) 数据查询方法、装置、计算机设备以及存储介质
Park et al. A symmetric key based deduplicatable proof of storage for encrypted data in cloud storage environments
Zheng et al. Secure Similarity Queries over Vertically Distributed Data via TEE-Enhanced Cloud Computing
CN116361344B (zh) 数据查询方法、装置、设备及介质
CN104468535A (zh) 适合云环境的密文存储与连接查询系统及方法
CN116595562B (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