CN112328639A - 数据查询方法、装置、系统以及数据集处理方法 - Google Patents

数据查询方法、装置、系统以及数据集处理方法 Download PDF

Info

Publication number
CN112328639A
CN112328639A CN202011247552.4A CN202011247552A CN112328639A CN 112328639 A CN112328639 A CN 112328639A CN 202011247552 A CN202011247552 A CN 202011247552A CN 112328639 A CN112328639 A CN 112328639A
Authority
CN
China
Prior art keywords
data
current
queried
candidate
target
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
CN202011247552.4A
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 CN202011247552.4A priority Critical patent/CN112328639A/zh
Priority to PCT/CN2020/140678 priority patent/WO2022099893A1/zh
Publication of CN112328639A publication Critical patent/CN112328639A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/2455Query execution
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

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

Abstract

本申请涉及一种数据查询方法、装置、系统以及数据集处理方法。该方法包括:发送数据查询请求至待查询设备;接收有序间隔点集;获取待查询数据,根据待查询数据和有序间隔点集确定当前数据组序号;获取待查询加密数据;将当前数据组序号发送至待查询设备中,待查询设备获取当前数据,获取预设随机数对应的当前加密函数,对当前数据进行加密计算,得到当前加密数据集,构建当前加密代数式,生成当前坐标数据集;接收当前坐标数据集,生成目标加密代数式;将目标代数式系数发送至待查询设备,确定待查询数据对应的查询结果;接收查询结果。采用本方法能够保证查询数据的隐私性从而提高查询数据安全性。

Description

数据查询方法、装置、系统以及数据集处理方法
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据查询方法、装置、系统、计算机设备和存储介质,以及数据集处理方法、装置、计算机设备和存储介质。
背景技术
保护数据集合的隐私性是在很多场景下是自然甚至是必要的需求,比如当集合是某用户的通讯录或是某基因诊断服务用户的基因组,这样的输入就一定要通过密码学的手段进行保护。隐私保护集合交集(Private Set Intersection,PSI)计算技术允许持有各自集合的两方来共同计算两个集合的交集运算。在协议交互的最后,一方或是两方应该得到正确的交集,而且不会得到交集以外另一方集合中的任何信息。
然而,隐私保护集合交集计算技术,需要允许持有各自集合的两方来共同计算两个集合的交集运算,这种方式,在数据查询过程中容易导致数据泄露,无法保证查询数据的隐私性,查询数据不安全。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证查询数据的隐私性从而提高查询数据安全性的数据查询方法、装置、系统、计算机设备和存储介质,以及数据集处理方法、装置、计算机设备和存储介质。
第一方面,本申请实施例提供了一种数据查询的方法,包括以下步骤:
发送数据查询请求至待查询设备;
接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据;
将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集;
接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;
将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果;
接收查询结果。
第二方面,本申请实施例还提供一种数据查询装置,该装置包括:
查询请求发送模块,用于发送数据查询请求至待查询设备;
有序间隔点集接收模块,用于接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
待查询数据获取模块,用于获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
待查询加密数据生成模块,用于对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据;
当前数据组序号发送模块,用于将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集;
坐标数据集接收模块,用于接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;
代数式系数发送模块,用于将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果;
查询结果接收模块,用于接收查询结果。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
发送数据查询请求至待查询设备;
接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据;
将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集;
接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;
将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果;
接收查询结果。
第四方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
发送数据查询请求至待查询设备;
接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据;
将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集;
接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;
将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果;
接收查询结果。
第五方面,本申请实施例还提供一种数据查询系统,该系统包括:
查询设备,用于获取数据查询请求,并将数据查询请求发送至待查询设备;
待查询设备,用于根据数据查询请求获取与候选数据集合对应的有序间隔点集,并将有序间隔点集返回至查询设备,有序间隔点集包括候选数据集合对应的有序数据组间隔点;
查询设备,还用于接收有序间隔点集,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据,将当前数据组序号发送至待查询设备;
待查询设备,还用于获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集,并将当前坐标数据集返回至查询设备;
查询设备,还用于接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,将目标代数式系数发送至待查询设备;
待查询设备,还用于根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果,并返回查询结果至查询设备;
查询设备,还用于接收查询结果。
第六方面,本申请实施例还提供一种数据集处理方法,包括以下步骤:
获取候选数据集合,候选数据集合包括至少一个候选数据;
根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据;
按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组;
根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
第七方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取候选数据集合,候选数据集合包括至少一个候选数据;
根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据;
按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组;
根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
第八方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取候选数据集合,候选数据集合包括至少一个候选数据;
根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据;
按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组;
根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
上述数据查询方法、装置、系统、计算机设备和存储介质,以及数据集处理方法、装置、计算机设备和存储介质,发送数据查询请求至待查询设备;接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据;将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集;接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果;接收查询结果。
因此,由于待查询设备发送查询设备的有序间隔点集本身不是待查询设备内的候选数据集合,这些有序间隔点集中的有序数据组间隔点本身就是没有意义的,并没有将待查询设备内的候选数据集合发送至查询设备中,避免了待查询设备内的候选数据集合泄露,保证了查询数据的隐私性,而且待查询设备和查询设备发送给对方的数据都是通过保密的大质数进行加密计算得到的,由于自己的数据和指数都是保密的,互相无法反推出对方的真实数据,从而提高查询数据的安全性和隐私性。而且,待查询设备发送给查询设备的当前坐标数据集也是由当前加密函数处理后的数据生成的目标加密代数式随机产生的,如果查询设备的待查询数据在候选数据集合中,就能够还原出正确的目标加密代数式,但是由于查询设备中的待查询数据通过目标加密代数式隐藏在系数中,查询设备无法确定待查询设备中的候选数据,只能确定待查询数据是否在候选数据集合中,查询设备与待查询设备都无法反推出对方的隐私数据,从而保证了隐私数据的保密性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本发明一个实施例中数据查询方法的应用场景图;
图2是根据本发明一个实施例中数据查询方法的流程图;
图3是根据本发明一个实施例中当前数据组序号确定步骤的流程图;
图4是根据本发明一个实施例中数据查询方法的流程图;
图5是根据本发明一个实施例中待查询加密数据生成步骤的流程图;
图6是根据本发明一个实施例中目标加密代数式生成步骤的流程图;
图7是根据本发明一个实施例中查询结果确定步骤的流程图;
图8是根据本发明一个实施例中有序间隔点集的生成步骤的流程图;
图9是根据本发明一个实施例中数据集处理方法的流程图;
图10是根据本发明一个实施例中数据查询系统的结构框图;
图11是根据本发明一个实施例中数据查询装置的结构框图;
图12是根据本发明一个实施例中数据集处理装置的结构框图;
图13是根据本发明一个实施例中计算机设备的结构示意图;
图14是根据本发明一个实施例中计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
图1为一个实施例中数据查询方法的应用环境图。参照图1,该数据查询方法应用于数据查询系统。该数据查询系统包括查询设备102和待查询设备104。查询设备102和待查询设备104通过网络连接。查询设备102具体可以是台式终端或移动终端或查询待查询设备,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。待查询设备104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体地,查询设备102获取数据查询请求至待查询设备104,待查询设备104接收到数据查询请求后,根据数据查询请求获取与候选数据集合对应的有序间隔点集,并将有序间隔点集返回至查询设备102,有序间隔点集包括候选数据集合对应的有序数据组间隔点,查询设备102接收有序间隔点集,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据,将当前数据组序号发送至待查询设备104。待查询设备104获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集,并将当前坐标数据集返回至查询设备102。
进一步地,查询设备102接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,将目标代数式系数发送至待查询设备104,待查询设备104根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果,并返回查询结果至查询设备102。最后,查询设备102接收查询结果。
在一个实施例中,如图2所示,提供了一种数据查询方法,以该方法应用于图1中的查询设备为例进行说明,包括以下步骤:
步骤202,发送数据查询请求至待查询设备。
其中,查询设备可以是数据查询方所在的设备,可以是但不限于查询终端或查询待查询设备,而这里的待查询设备可以是数据用户方所在的待查询设备,存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合,对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。
其中,这里的数据查询请求是用来请求待查询设备进行数据查询的,数据查询请求可以在查询设备上进行操作触发生成的,具体可以是,在查询设备上设有相关查询应用,在查询应用相关界面设有查询按钮,对查询按钮进行操作,触发生成数据查询请求,其中,操作包括但不限于点击操作、语音操作或者定时事件触发操作。
步骤204,接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点。
其中,这里的有序间隔点集是指存在一定顺序的数据组间隔点组成的集合,而数据组间隔点是指候选数据集合对应的候选数据组之间的间隔值,而待查询设备上预先存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合,对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。
其中,根据各个候选数据组中的数据确定对应的数据组间隔点的确定方式可自定义,自定义可以是获取当前候选数据组,获取当前候选数据组对应的当前候选数据,获取上一个候选数据组对应的目标候选数据,根据当前候选数据与目标候选数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选数据,直至得到各个数据组间隔点。
其中,当前候选数据可以是当前候选数据组中的首位候选数据,目标候选数据可以是上一个候选数据组中的末位候选数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选数据,获取上一个候选数据组中的末位候选数据,根据首位候选数据和末位候选数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的首位候选数据,直至得到数据组间隔点。
例如,当前候选数据组为:[317、553],上一个候选数据组为:[55、270],当前候选数据为当前候选数据组中的首位候选数据为:317,目标候选数据为上一个候选数据组中的末位候选数据:270,则当前候选数据组间隔点可以是根据首位候选数据和末位候选数据计算得到当前数据组间隔点:(270+317)/2=293.5。
在另一个实施例中,数据组间隔点的确定方式自定义还可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选数据,获取上一个候选数据组对应的目标候选数据,可以随机从当前候选数据和目标候选数据之间任意选取一个数字确定为当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选数据,直至得到各个数据组间隔点。
其中,当前候选数据可以是当前候选数据组中的首位候选数据,目标候选数据可以是上一个候选数据组中的末位候选数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选数据,获取上一个候选数据组中的末位候选数据,随机从首位候选数据和末位候选数据之间任意选取一个数字确定为当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选数据,直至得到各个数据组间隔点。
例如,当前候选数据组为:[317、553],上一个候选数据组为:[55、270],当前候选数据为当前候选数据组中的首位候选数据为:317,目标候选数据为上一个候选数据组中的末位候选数据:270,则当前候选数据组间隔点可以是随机从首位候选数据和末位候选数据之间任意选取的一个数字,例如,可以选取300为当前候选数据组间隔点。
例如,候选数据集合中的所有候选数据都通过相同的hash(哈希)函数通过以下公式处理得到目标候选数据,由目标候选数据组成目标候选数据集合:
Figure BDA0002770540480000111
然后,将目标候选数据按照一定的顺序进行排序,其中,一定的顺序可以是升序,也可以是降序,按照每组固定的大小的方式进行分组,得到多个候选数据组,其中,固定的大小可以根据业务需求、产品需求或者实际应用场景进行预先确定得到,其中,在另一个实施例中,在将目标候选数据按照一定的顺序进行排序后,还可以按照每组不同的大小的方式进行分组,即可以按照每组非固定的大小的方式进行分组,每个候选数据组对应的分组大小可以根据业务需求、产品需求以及实际应用场景具体确定得到,其中,在又一个实施例中,各个候选数据组对应的分组大小有些可以相同,有些可以不同,具体可以根据实际情况确定得到。
进一步地,再根据各个候选数据组中的目标候选数据计算得到数据组间隔点,对这些数据组间隔点进行排序,从而得到有序数据组间隔点。具体地,当查询设备发送数据查询请求至待查询设备时,待查询设备根据数据查询请求获取有序间隔点集合,并将获取到的有序间隔点集合返回至查询设备。
步骤206,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号。
其中,待查询数据是等待进行查询的数据。其中,待查询数据可以是经过hash(哈希)函数处理后的数据,待查询数据可以从本地数据库中调用得到,也可以通过其他设备获取得到,具体可以根据业务需求、实际应用场景、产品需求确定得到。而这里的当前数据组序号是待查询数据所在的数据组对应的序号,具体地,在接收到有序间隔点集后,可以根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,具体可以是,根据待查询数据从有序间隔点集中获取对应的相邻的两个目标间隔点,再根据两个目标间隔点确定待查询数据对应的当前数据组序号。其中,若待查询数据与相邻的两个目标间隔点中的一个相等,或者待查询数据只有一个相邻间隔点,则说明待查询数据不在候选数据集合中,结束数据查询。
例如,候选数据集合进行hash函数处理得到的目标候选数据集合为:55、270、317、553、682、847,对目标候选数据集合进行分组,得到:[55、270]、[317、553]、[682、847],有序间隔点集为:第一组和第二组之间的数据组间隔点为293.5、第二组和第三组之间的数据组间隔点为617.5,若待查询数据进行hash函数处理后为583,由于待查询数据位于293.5和617.5之间,因此,可以确定待查询数据对应的当前数据组序号为2,即待查询数据如果要插入候选数据集合中,则需要插入第二组中。其中,第一组和第二组之间的数据组间隔点可以根据第一组的末位目标候选数据和第二组的首位目标候选数据进行计算得到的,例如,第一组的末位目标候选数据为270,第二组的首位目标候选数据为317,第一组和第二组之间的数据组间隔点可以为:(270+317)/2=293.5。同样地,第二组和第三组之间的数据组间隔点可以根据第二组的末位目标候选数据和第三组的首位目标候选数据进行计算得到的,例如,第二组的末位目标候选数据为553,第三组的首位目标候选数据为682,第二组和第三组之间的数据组间隔点可以为:(553+682)/2=617.5。
步骤208,对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据。
其中,这里的预设加密协议是查询设备与待查询设备之间预先达成共识设置的一种加密协议,预设加密协议可以是不经意伪随机函数协议(Oblivious PseudorandomFunction-OPRF):待查询设备提供伪随机函数以及对应的随机数,查询设备提供待计算数据。在协议执行完毕后,仅查询设备获取不经意伪随机函数计算的结果。整个过程中待查询设备无法获取查询设备的计算数据和计算结果,查询设备也无法学习到待查询设备的伪随机函数以及对应的随机数。
具体地,在获取到待查询数据后,获取查询设备与待查询设备之间预先约定好的预设加密协议,具体可以是,获取查询设备与待查询设备之间预先约定好的不经意伪随机函数协议,由于不经意伪随机函数协议执行完毕后,查询设备可以获取不经意伪随机函数的计算结果,而这个计算结果就是待查询数据对应的待查询加密数据。其中,待查询加密数据是已经加密过的数据,其他设备无法经过破解、或者其他方式进行解密得到待查询数据。
在一个实施例中,待查询数据执行不经意伪随机函数协议的执行过程可以是,获取预设加密密钥对,预设加密密钥对包括第一加密密钥和第二加密密钥,接收待查询设备发送的第一加密数据和第二加密数据,随机生成第一随机数,根据第一随机数和第一加密密钥计算得到第三加密数据,根据第一加密数据、待查询数据、第二加密数据计算得到第四加密数据。
进一步地,将第三加密数据、第四加密数据和第一加密密钥发送至待查询设备中,以使待查询设备随机生成第二随机数,根据第四加密数据计算得到第五加密数据,根据第五加密数据和预设加密模长计算得到第六加密数据,根据第六加密数据和第三加密数据计算得到第七加密数据,根据预设公共参数和第二随机数计算得到第八加密数据,根据第七加密数据、第一加密密钥和第八加密数据计算得到第九加密数据。其中,预设公共参数和预设加密模长可以根据业务需求、产品需求或实际应用场景预先确定得到的。
最后,查询设备接收待查询设备返回的第七加密数据和第九加密数据,根据第七加密数据和第九加密数据计算得到待查询数据对应的待查询加密数据。
例如,查询设备中的加密密钥对可以为(pkc,skc),第一加密密钥为pkc,第二机密密钥为skc,第一加密数据为
Figure BDA0002770540480000141
第二加密数据为pks,第一随机数为a,第三加密数据为
Figure BDA0002770540480000142
第四加密数据为
Figure BDA0002770540480000143
第二随机数为ds,第五加密数据为b,第六加密数据为r,第七加密数据为
Figure BDA0002770540480000144
第八加密数据为
Figure BDA0002770540480000145
第九加密数据为vs,待查询加密数据为fk(x),x为待查询数据,g为预设公共参数,n为预设加密模长,具体过程可以是:
1、待查询设备随机生成不经意伪随机函数的随机数k,获取伪随机函数为
Figure BDA0002770540480000146
当前预设加密密钥对(pks,sks),待查询设备计算
Figure BDA0002770540480000147
并将
Figure BDA0002770540480000148
pks发送至查询设备。
2、查询设备接收到
Figure BDA0002770540480000149
pks后,随机生成随机数a,计算得到
Figure BDA00027705404800001410
Figure BDA00027705404800001411
并将
Figure BDA00027705404800001412
pkc发送至待查询设备中。
3、待查询设备接收到
Figure BDA00027705404800001413
pkc后,随机生成随机数ds,计算得到
Figure BDA00027705404800001414
r=b-1mod n=(ax+ak)-1mod n
Figure BDA0002770540480000151
并将
Figure BDA0002770540480000152
vs发送至查询设备中。
4、查询设备接收到
Figure BDA0002770540480000153
vs后,计算得到:
Figure BDA0002770540480000154
Figure BDA0002770540480000155
输出
Figure BDA0002770540480000156
步骤210,将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集。
其中,在预设加密协议执行的同时,将当前数据组序号发送至待查询设备中,待查询设备接收到当前数据组序号后,获取当前数据组序号对应的至少一个当前数据,这里的当前数据可以是指当前数据组序号内的数据元素,当前数据可以是当前数据组序号内的所有数据,也可以是当前数据组序号内的目标数据,目标数据的数量可以根据业务需求、实际应用情况确定得到,其中,候选数据集合经过处理后得到目标候选数据集合,并对目标候选数据集合进行分组,得到多个候选数据组,各个候选数据组内都包括相应的目标候选数据和相应的组序号,在一个实施例中,可将当前数据组序号内的所有目标候选数据都可作为当前数据。
其中,在获取当前数据组序号对应的至少一个当前数据的同时,随机生成一个预设随机数,根据预设随机数获取对应的当前加密函数,这里的当前加密函数是用来进行加密计算的,当前加密函数可以是不经意伪随机函数,使用当前加密函数对当前数据组序号内的当前数据进行加密处理,具体可以是,使用不经意伪随机函数对当前数据组序号内的当前数据进行加密处理,得到当前加密数据集。进一步地,可以根据当前机密数据集中的数据元素构建当前加密代数式,当前加密代数式可以是但不限于多项式,当前加密代数式包括多个当前计算单元项,各个当前计算单元项包括对应的当前代数式系数。例如,当前加密代数式为:a0+a1x+a2x2,当前加密代数式包括多个当前计算单元,a0、a1x、a2x2,各个当前计算单元项包括相应的当前代数式系数:a0、a1、a2
进一步地,在构建得到当前加密代数式后,可以根据当前加密代数式生成当前坐标数据集,具体地,可以根据当前加密代数式随机生成非零的当前坐标数据集,具体可以是,随机赋予当前加密代数式中未知量相应的值,从而求得非零的当前坐标数据集。例如,当前加密代数式为:fi(x)=a0+a1x+a2x2,当前加密代数式中的未知量为x,则随机赋予x相应的值,可以赋予x相应的值为1、2、3,分别求得当前坐标数据集,当前坐标数据集可以为(1,fi(1))、(2,fi(2))、(3,fi(3))。
步骤212,接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数。
其中,待查询设备生成得到当前坐标数据集后,会将当前坐标数据集发送至查询设备,查询设备接收到当前坐标数据集后,可以根据待查询加密数据和当前坐标数据集生成目标加密代数式,具体可以是,先获取目标加密代数式的目标代数式结构,目标代数式结果在目标加密代数式生成之前会预先根据业务需求、实际应用场景或产品需求进行确定得到的,在获取到目标代数式结构后,可以将待查询加密数据和待查询数据组成待查询坐标数据,将待查询坐标数据和当前坐标数据集中各个当前坐标数据分别作为目标代数式结构的未知量的取值和相应的结果,从而求得目标代数式结构各个目标计算单元项对应的目标代数式系数,最后得到目标加密代数式。
例如,目标加密代数式的目标代数式结构为fb(x)=b0+b1x+b2x2,待查询加密数据和待查询数据组成待查询坐标数据为:(3,5),当前坐标数据集中的当前坐标数据为:(2,8),(5,9),将待查询坐标数据的3作为目标代数式结构中的x对应的值,5作为目标代数式结构中的fb(x),同样地,将当前坐标数据的2作为目标代数式结构中的x对应的值,8作为目标代数式结构中的fb(x),将当前坐标数据的5作为目标代数式结构中的x对应的值,9作为目标代数式结构中的fb(x),解方程得到b0、b1和b2
在另一个实施例中,查询设备接收到当前坐标数据集后,可以根据待查询加密数据和当前坐标数据集生成目标加密代数式,具体还可以是,先获取目标加密代数式的目标代数式结构,目标代数式结果在目标加密代数式生成之前会预先根据业务需求、实际应用场景或产品需求进行确定得到的,在获取到目标代数式结构后,可以将待查询加密数据和待查询数据组成待查询坐标数据,将待查询坐标数据和当前坐标数据集中各个当前坐标数据通过插值法还原目标加密代数式。其中,插值法还原法是现有的计算方法,具体的计算过程在此不作任何赘述。
进一步地,在得到目标加密代数式后,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数。例如,目标加密代数式为:b0+b1x+b2x2,目标加密代数式包括多个目标计算单元:b0、b1x、b2x2,各个目标计算单元项包括相应的目标代数式系数:b0、b1、b2
步骤214,将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果。
步骤216,接收查询结果。
具体地,查询设备在生成目标加密代数式后,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数。将各个目标计算单元项对应的目标代数式系数发送至待查询设备。
进一步地,待查询设备接收到目标代数式系数后,获取当前加密代数式对应的各个当前计算单元项,获取各个当前计算单元项对应的当前代数式系数。可以根据当前代数式系数和目标代数式系统确定待查询数据对应的查询结果。其中,确定待查询数据对应的查询结果可以是,比较当前代数式系数和相应的目标代数式系数是否都相同,如果当前代数式系数与对应的目标代数式系数都相同,说明待查询数据是候选数据集合中的一个元素,因此查询结果为确定待查询数据在候选数据集合中。
反之,如果任一当前代数式系数与对应的目标代数式系数不相同时,说明待查询数据不是候选数据集合中的一个元素,因此,可以确定查询结果为待查询数据不在候选数据集合中。
例如,当前加密代数式为:a0+a1x+a2x2,当前加密代数式包括多个当前计算单元,a0、a1x、a2x2,各个当前计算单元项包括相应的当前代数式系数:a0、a1、a2,目标加密代数式为:b0+b1x+b2x2,目标加密代数式包括多个目标计算单元:b0、b1x、b2x2,各个目标计算单元项包括相应的目标代数式系数:b0、b1、b2。如果a0与b0相同,a1与b1相同,a2与b2相同,则确定查询结果为确定待查询数据在候选数据集合中。反之,如果有任一当前代数式系数与对应的目标代数式系数不相同时,则可以确定查询结果为待查询数据不在候选数据集合中。如a0与b0不同。
上述数据查询方法中,发送数据查询请求至待查询设备;接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据;将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集;接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果;接收查询结果。
因此,由于待查询设备发送查询设备的有序间隔点集本身不是待查询设备内的候选数据集合,这些有序间隔点集中的有序数据组间隔点本身就是没有意义的,并没有将待查询设备内的候选数据集合发送至查询设备中,避免了待查询设备内的候选数据集合泄露,保证了查询数据的隐私性,而且待查询设备和查询设备发送给对方的数据都是通过保密的大质数进行加密计算得到的,由于自己的数据和指数都是保密的,互相无法反推出对方的真实数据,从而提高查询数据的安全性和隐私性。而且,待查询设备发送给查询设备的当前坐标数据集也是由当前加密函数处理后的数据生成的目标加密代数式随机产生的,如果查询设备的待查询数据在候选数据集合中,就能够还原出正确的目标加密代数式,但是由于查询设备中的待查询数据通过目标加密代数式隐藏在系数中,查询设备无法确定待查询设备中的候选数据,只能确定待查询数据是否在候选数据集合中,查询设备与待查询设备都无法反推出对方的隐私数据,从而保证了隐私数据的保密性。
在一个实施例中,如图3所示,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,包括:
步骤302,从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点。
步骤304,根据两个目标间隔点确定待查询数据对应的当前数据组序号。
其中,这里的有序间隔点集是指存在一定顺序的数据组间隔点组成的集合,而数据组间隔点是指候选数据集合对应的候选数据组之间的间隔值,而待查询设备上预先存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合,对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。
其中,根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选哈希数据可以是当前候选数据组的第一个候选哈希数据,而目标候选哈希数据可以是上一个候选数据组的最后一个候选哈希数据。
其中,这里的当前数据组序号是待查询数据所在的数据组对应的序号,具体地,在接收到有序间隔点集后,可以根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,具体可以是,根据待查询数据从有序间隔点集中获取对应的相邻的两个目标间隔点,再根据两个目标间隔点确定待查询数据对应的当前数据组序号。其中,若待查询数据与相邻的两个目标间隔点中的一个相等,或者待查询数据只有一个相邻间隔点,则说明待查询数据不在候选数据集合中,结束数据查询。
例如,候选数据集合进行hash函数处理得到的目标候选数据集合为:55、270、317、553、682、847、987、1203,对目标候选数据集合进行分组,得到:[55、270]、[317、553]、[682、847]、[987、1203],有序间隔点集为:第一组和第二组之间的数据组间隔点为293.5、第二组和第三组之间的数据组间隔点为617.5,第三组和第四组之间的数据组间隔点为917,若待查询数据进行hash函数处理后为583,由于待查询数据位于293.5和617.5之间,因此,可以确定待查询数据对应的当前数据组序号为2。
其中,第一组和第二组之间的数据组间隔点可以根据第一组的末位候选哈希数据和第二组的首位候选哈希数据进行计算得到的,例如,第一组的末位候选哈希数据为270,第二组的首位候选哈希数据为317,第一组和第二组之间的数据组间隔点可以为:(270+317)/2=293.5。同样地,第二组和第三组之间的数据组间隔点可以根据第二组的末位候选哈希数据和第三组的首位候选哈希数据进行计算得到的,例如,第二组的末位候选哈希数据为553,第三组的首位候选哈希数据为682,第二组和第三组之间的数据组间隔点可以为:(553+682)/2=617.5。依次类推,第三组和第四组之间的数据组间隔点可以根据第三组末位候选哈希数据和第四组首位候选哈希数据进行计算得到的,例如,第三组末位候选哈希数据为847,第四组的首位候选哈希数据为987,第三组和第四组之间的数据组间隔点可以为:(847+987)/2=917。
在一个实施例中,如图4所示,数据查询方法还包括:
步骤402,发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号。
步骤404,接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据,或。
步骤406,接收待查询设备返回的第二版本号信息,则进入步骤发送数据查询请求至待查询设备。
其中,这里的当前有序间隔点集版本号查询请求是用来请求查询当前有序间隔点集版本号的,当前有序间隔点集版本号是当前有序间隔点集对应的版本标识号,每一次待查询设备发送的当前有序间隔点集都包括对应的当前有序间隔点集版本号,在查询设备第一次向待查询设备发送有序间隔点集版本号查询请求时,会保存待查询设备返回的有序间隔点集版本号,在后续查询时,查询设备携带当前有序间隔点集版本号查询请求向待查询设备查询时,待查询设备比较当前有序间隔点集版本号与本地存储的候选间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,并将第一版本号信息或第二版本号信息返回至查询设备。
进一步地,查询设备接收到第一版本号信息,说明当前有序间隔点集版本号与待查询设备本地存储的候选间隔点集版本号一致,则可以将查询设备本身缓存的有序间隔点确定为有序间隔点集,具体可以是,获取历史有序间隔点集,所谓历史有序间隔点集是查询设备本地缓存的有序间隔点集,将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据。
其中,若查询设备接收到的是第二版本号信息,说明当前有序间隔点集版本号与待查询设备本地存储的候选间隔点集版本号不一致,则进入步骤发送数据查询请求至待查询设备,并将后续接收到的有序间隔点集替换查询设备本地存储的历史有序间隔点集,即根据后续接收到的有序间隔点集更新本地存储的历史有序间隔点集。
在一个实施例中,预设加密协议为不经意伪随机函数协议,对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据,包括:对待查询数据执行不经意伪随机函数协议,在不经意伪随机函数协议执行完毕后,得到待查询数据对应的待查询加密数据,其中,不经意伪随机函数协议使得查询设备和待查询设备以不经意的方式交互信息。
其中,这里的预设加密协议是查询设备与待查询设备之间预先达成共识设置的一种加密协议,预设加密协议可以是不经意伪随机函数协议(Oblivious PseudorandomFunction-OPRF):待查询设备提供伪随机函数以及对应的随机数,查询设备提供待计算数据。在协议执行完毕后,仅查询设备获取不经意伪随机函数计算的结果。整个过程中待查询设备无法获取查询设备的计算数据和计算结果,查询设备也无法学习到待查询设备的伪随机函数以及对应的随机数。即不经意伪随机函数协议使得查询设备和待查询设备以不经意的方式交互信息。
具体地,在获取到待查询数据后,获取查询设备与待查询设备之间预先约定好的预设加密协议,具体可以是,获取查询设备与待查询设备之间预先约定好的不经意伪随机函数协议,由于不经意伪随机函数协议执行完毕后,查询设备可以获取不经意伪随机函数的计算结果,而这个计算结果就是待查询数据对应的待查询加密数据。其中,待查询加密数据是已经加密过的数据,其他设备无法经过破解、或者其他方式进行解密得到待查询数据。
在一个实施例中,如图5所示,在不经意伪随机函数协议执行完毕后,得到待查询数据对应的待查询加密数据,包括:
步骤502,获取预设加密密钥对,预设加密密钥对包括第一加密密钥和第二加密密钥。
步骤504,接收待查询设备发送的第一加密数据和第二加密数据。
步骤506,随机生成第一随机数,根据第一随机数和第一加密密钥计算得到第三加密数据,根据第一加密数据、待查询数据、第二加密数据计算得到第四加密数据。
其中,这里的预设加密密钥对是指查询设备中的密钥对,预设加密密钥对包括第一加密密钥和第二加密密钥,其中,第一加密密钥可以是公钥,第二加密密钥可以是私钥。其中,可以预先设置查询设备中的预设加密密钥对,可根据业务需求、实际应用场景或产品需求确定得到。
具体地,获取预设加密密钥对,同时接收待查询设备发送的第一加密数据和第二加密数据,待查询设备的第一加密数据和第二加密数据是通过预设加密算法机密得到的,无法破解。进一步地,在接收到待查询设备发送的第一加密数据和第二加密数据后,随机生成第一随机数,可以根据第一随机数和第一加密密钥计算得到第三加密数据,根据第一加密数据、待查询数据、第二加密数据计算得到第四加密数据。其中,第三加密数据和第四加密数据可以根据相应的加密算法计算得到。
例如,加密密钥对可以为(pkc,skc),第一加密密钥为pkc,第二机密密钥为skc,第一加密数据为
Figure BDA0002770540480000231
第二加密数据为pks,第一随机数为a,第三加密数据为
Figure BDA0002770540480000232
第四加密数据为
Figure BDA0002770540480000233
具体地,待查询设备随机生成不经意伪随机函数的随机数k,获取伪随机函数为
Figure BDA0002770540480000234
当前预设加密密钥对(pks,sks),待查询设备计算
Figure BDA0002770540480000235
并将
Figure BDA0002770540480000236
pks发送至查询设备。然后,查询设备接收到
Figure BDA0002770540480000237
pks后,随机生成随机数a,计算得到:
Figure BDA0002770540480000238
Figure BDA0002770540480000239
并将
Figure BDA00027705404800002310
pkc发送至待查询设备中。
步骤508,将第三加密数据、第四加密数据和第一加密密钥发送至待查询设备中,以使待查询设备随机生成第二随机数,根据第四加密数据计算得到第五加密数据,根据第五加密数据和预设加密模长计算得到第六加密数据,根据第六加密数据和第三加密数据计算得到第七加密数据,根据预设公共参数和第二随机数计算得到第八加密数据,根据第七加密数据、第一加密密钥和第八加密数据计算得到第九加密数据。
步骤510,接收待查询设备返回的第七加密数据和第九加密数据,根据第七加密数据和第九加密数据计算得到待查询数据对应的待查询加密数据。
其中,查询设备在计算得到第三加密数据、第四加密数据后,将第三加密数据、第四加密数据和第一加密密钥发送至待查询设备中,待查询设备在接收到第三加密数据、第四加密数据和第一加密密钥后,随机生成第二随机数,可以根据第四加密数据计算得到第五加密数据,具体的计算方法可以根据相应的加密算法计算得到,对第四加密数据进行加密处理,得到第二加密数据。进一步地,在得到第五加密数据后,可以根据第五加密数据和预设加密模长计算得到第七加密数据,根据预设公共参数和第二随机数计算得到第八加密数据,根据第七加密数据、第一加密密钥和第八加密数据计算得到第九加密数据。其中,各个加密数据对应的加密方式都可以根据相应的加密算法计算得到,而加密算法预先根据业务需求、实际应用场景、产品需求确定得到,各个加密数据的加密算法可以不同。
例如,加密密钥对可以为(pkc,skc),第一加密密钥为pkc,第二机密密钥为skc,第一加密数据为
Figure BDA0002770540480000241
第二加密数据为pks,第一随机数为a,第三加密数据为
Figure BDA0002770540480000242
第四加密数据为
Figure BDA0002770540480000243
第二随机数为ds,第五加密数据为b,第六加密数据为r,第七加密数据为
Figure BDA0002770540480000244
第八加密数据为
Figure BDA0002770540480000245
第九加密数据为vs,待查询加密数据为fk(x),x为待查询数据,g为预设公共参数,n为预设加密模长,具体过程可以是:
1、待查询设备随机生成不经意伪随机函数的随机数k,获取伪随机函数为
Figure BDA0002770540480000246
当前预设加密密钥对(pks,sks),待查询设备计算
Figure BDA0002770540480000247
并将
Figure BDA0002770540480000248
pks发送至查询设备。
2、查询设备接收到
Figure BDA0002770540480000249
pks后,随机生成随机数a,计算得到
Figure BDA00027705404800002410
Figure BDA00027705404800002411
并将
Figure BDA00027705404800002412
pkc发送至待查询设备中。
3、待查询设备接收到
Figure BDA00027705404800002413
pkc后,随机生成随机数ds,计算得到
Figure BDA0002770540480000251
r=b-1mod n=(ax+ak)-1mod n
Figure BDA0002770540480000252
并将
Figure BDA0002770540480000253
vs发送至查询设备中。
在一个实施例中,当前加密函数为当前不经意伪随机函数,将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集,包括:
将当前数据组序号发送至待查询设备中,以使待查询设备随机生成预设随机数,获取预设随机数对应的当前不经意伪随机函数,获取当前数据组序号对应的至少一个当前数据,根据当前不经意伪随机函数对至少一个当前数据进行处理,得到至少一个当前数据对应的当前加密数据集,将当前加密数据集中的当前加密数据作为根,构建当前加密代数式,根据当前加密代数式随机生成非零的当前坐标数据集,当前加密代数式包括多个当前计算单元项。
其中,在预设加密协议执行的同时,将当前数据组序号发送至待查询设备中,待查询设备接收到当前数据组序号后,获取当前数据组序号对应的至少一个当前数据,这里的当前数据可以是指当前数据组序号内的数据元素,当前数据可以是当前数据组序号内的所有数据,也可以是当前数据组序号内的目标数据,目标数据的数量可以根据业务需求、实际应用情况确定得到,其中,候选数据集合经过处理后得到目标候选数据集合,并对目标候选数据集合进行分组,得到多个候选数据组,各个候选数据组内都包括相应的目标候选数据和相应的组序号,在一个实施例中,可以将当前数据组序号内的所有目标候选数据都确定为当前数据。
其中,在获取当前数据组序号对应的至少一个当前数据的同时,随机生成一个预设随机数,根据预设随机数获取对应的当前加密函数,这里的当前加密函数是用来进行加密计算的,当前加密函数可以是不经意伪随机函数,使用当前加密函数对当前数据组序号内的当前数据进行加密处理,具体可以是,使用不经意伪随机函数对当前数据组序号内的当前数据进行加密处理,得到当前加密数据集。进一步地,可以根据当前机密数据集中的数据元素构建当前加密代数式,当前加密代数式可以是但不限于多项式,当前加密代数式包括多个当前计算单元项,各个当前计算单元项包括对应的当前代数式系数。例如,当前加密代数式为:a0+a1x+a2x2,当前加密代数式包括多个当前计算单元,a0、a1x、a2x2,各个当前计算单元项包括相应的当前代数式系数:a0、a1、a2
进一步地,在构建得到当前加密代数式后,可以根据当前加密代数式生成当前坐标数据集,具体地,可以根据当前加密代数式随机生成非零的当前坐标数据集,具体可以是,随机赋予当前加密代数式中未知量相应的值,从而求得非零的当前坐标数据集。例如,当前加密代数式为:fi(x)=a0+a1x+a2x2,当前加密代数式中的未知量为x,则随机赋予x相应的值,可以赋予x相应的值为1、2、3,分别求得当前坐标数据集,当前坐标数据集可以为(1,fi(1))、(2,fi(2))、(3,fi(3))。
在一个实施例中,如图6所示,根据待查询加密数据和当前坐标数据集生成目标加密代数式,包括:
步骤602,获取待查询加密数据对应的加密坐标数据。
步骤604,根据加密坐标数据和当前坐标数据集计算得到目标加密代数式。
其中,加密坐标数据可以是由待查询数据与待查询加密数据组成的坐标对,例如,待查询数据为x,待查询加密数据为y,则加密坐标数据为:(x,y)。进一步地,在获取到加密坐标数据后,可以根据加密坐标数据和当前坐标数据集中的当前坐标数据计算得到目标加密代数式,具体可以是,先获取目标加密代数式的目标代数式结构,目标代数式结果在目标加密代数式生成之前会预先根据业务需求、实际应用场景或产品需求进行确定得到的,在获取到目标代数式结构后,可以将待查询加密数据和待查询数据组成待查询坐标数据,将待查询坐标数据和当前坐标数据集中各个当前坐标数据分别作为目标代数式结构的未知量的取值和相应的结果,从而求得目标代数式结构各个目标计算单元项对应的目标代数式系数,最后得到目标加密代数式。
例如,目标加密代数式的目标代数式结构为fb(x)=b0+b1x+b2x2,待查询加密数据和待查询数据组成待查询坐标数据为:(3,5),当前坐标数据集中的当前坐标数据为:(2,8),(5,9),将待查询坐标数据的3作为目标代数式结构中的x对应的值,5作为目标代数式结构中的fb(x),同样地,将当前坐标数据的2作为目标代数式结构中的x对应的值,8作为目标代数式结构中的fb(x),将当前坐标数据的5作为目标代数式结构中的x对应的值,9作为目标代数式结构中的fb(x),解方程得到b0、b1和b2
在一个实施例中,如图7所示,当前加密代数式包括多个当前计算单元项,各个当前计算单元项包括对应的当前代数式系数,将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果,包括:
步骤702,将各个目标计算单元项对应的目标代数式系数发送至待查询设备,以使待查询设备获取当前加密代数式中各个当前计算单元项对应的当前代数式系数,比较当前代数式系数和对应的目标代数式系数是否都相同,在当前代数式系数与对应的目标代数式系数都相同时,确定待查询数据在候选数据集合中。
步骤704,反之,在任一当前代数式系数与对应的目标代数式系数不相同时,确定待查询数据不在候选数据集合中。
具体地,查询设备在生成目标加密代数式后,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数。将各个目标计算单元项对应的目标代数式系数发送至待查询设备。
进一步地,待查询设备接收到目标代数式系数后,获取当前加密代数式对应的各个当前计算单元项,获取各个当前计算单元项对应的当前代数式系数。可以根据当前代数式系数和目标代数式系统确定待查询数据对应的查询结果。其中,确定待查询数据对应的查询结果可以是,比较当前代数式系数和相应的目标代数式系数是否都相同,如果当前代数式系数与对应的目标代数式系数都相同,说明待查询数据是候选数据集合中的一个元素,因此查询结果为确定待查询数据在候选数据集合中。
反之,如果任一当前代数式系数与对应的目标代数式系数不相同时,说明待查询数据不是候选数据集合中的一个元素,因此,可以确定查询结果为待查询数据不在候选数据集合中。
例如,当前加密代数式为:a0+a1x+a2x2,当前加密代数式包括多个当前计算单元,a0、a1x、a2x2,各个当前计算单元项包括相应的当前代数式系数:a0、a1、a2,目标加密代数式为:b0+b1x+b2x2,目标加密代数式包括多个目标计算单元:b0、b1x、b2x2,各个目标计算单元项包括相应的目标代数式系数:b0、b1、b2。如果a0与b0相同,a1与b1相同,a2与b2相同,则确定查询结果为确定待查询数据在候选数据集合中。反之,如果有任一当前代数式系数与对应的目标代数式系数不相同时,则可以确定查询结果为待查询数据不在候选数据集合中,如a0与b0不同时,则确定查询结果为待查询数据不在候选数据集合中。
在一个实施例中,如图8所示,有序间隔点集的生成步骤包括:
步骤802,待查询设备获取候选数据集合,候选数据集合包括至少一个候选数据。
步骤804,待查询设备根据预设哈希函数对候选数据集合中的候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据。
其中,这里的待查询设备可以是数据用户方所在的待查询设备,存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合,对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。
其中,这里的有序间隔点集是指存在一定顺序的数据组间隔点组成的集合,而数据组间隔点是指候选数据集合对应的候选数据组之间的间隔值,而待查询设备上预先存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合。
其中,对候选数据集合进行处理,得到目标候选数据集,具体可以是,获取预设哈希函数,通过预设哈希函数对候选数据集合中的各个候选数据进行哈希处理,得到相应的候选哈希数据,由各个候选哈希数据组成目标候选数据集合。
例如,候选数据集合中的所有候选数据都通过相同的hash(哈希)函数通过以下公式处理得到候选哈希数据,由候选哈希数据组成目标候选数据集合:
Figure BDA0002770540480000291
步骤806,待查询设备按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组。
步骤808,待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
具体地,待查询设备在得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据后,再对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。其中,具体可以是,待查询设备按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组,其中,预设的规则可以是对目标候选数据集合中的候选哈希数据进行排序,排序可以是升序或降序,得到排序后的目标候选数据集合,再根据预设分组大小对排序后的目标候选数据集合进行分组,从而得到多个候选数据组。
具体可以是,可以根据升序的规则对目标候选数据集合中的候选哈希数据进行排序,或者可以根据降序的规则对目标候选数据集合中的候选哈希数据进行降序,得到排序后的目标候选数据集合,再获取预设分组大小,所谓分组大小是指相应组对应的最大承受能力,预设分组大小可以根据业务需求、应用场景或产品需求进行确定得到,根据预设分组大小对排序后的目标候选数据集合进行分组,得到分组后的各个候选数据组。
进一步地,再根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选哈希数据可以是当前候选数据组的第一个候选哈希数据,而目标候选哈希数据可以是上一个候选数据组的最后一个候选哈希数据。
例如,候选数据集合进行hash函数处理得到的目标候选数据集合为:55、270、317、553、682、847、987、1203,对目标候选数据集合进行分组,得到:[55、270]、[317、553]、[682、847]、[987、1203],有序间隔点集为:第一组和第二组之间的数据组间隔点为293.5、第二组和第三组之间的数据组间隔点为617.5,第三组和第四组之间的数据组间隔点为917,有序数据组间隔点集为:{293.5、617.5、917}。其中,第一组和第二组之间的数据组间隔点可以根据第一组的末位候选哈希数据和第二组的首位候选哈希数据进行计算得到的,例如,第一组的末位候选哈希数据为270,第二组的首位候选哈希数据为317,第一组和第二组之间的数据组间隔点可以为:(270+317)/2=293.5。同样地,第二组和第三组之间的数据组间隔点可以根据第二组的末位候选哈希数据和第三组的首位候选哈希数据进行计算得到的,例如,第二组的末位候选哈希数据为553,第三组的首位候选哈希数据为682,第二组和第三组之间的数据组间隔点可以为:(553+682)/2=617.5。依次类推,第三组和第四组之间的数据组间隔点可以根据第三组末位候选哈希数据和第四组首位候选哈希数据进行计算得到的,例如,第三组末位候选哈希数据为847,第四组的首位候选哈希数据为987,第三组和第四组之间的数据组间隔点可以为:(847+987)/2=917。
其中,根据各个候选数据组中的数据确定对应的数据组间隔点的确定方式可自定义,自定义可以是获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点。
其中,当前候选哈希数据可以是当前候选数据组中的首位候选哈希数据,目标候选哈希数据可以是上一个候选数据组中的末位候选哈希数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选哈希数据,获取上一个候选数据组中的末位候选哈希数据,根据首位候选哈希数据和末位候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的首位候选哈希数据,直至得到数据组间隔点。
例如,当前候选数据组为:[317、553],上一个候选数据组为:[55、270],当前候选哈希数据为当前候选数据组中的首位候选哈希数据为:317,目标候选哈希数据为上一个候选数据组中的末位候选哈希数据:270,则当前候选数据组间隔点可以是根据首位候选哈希数据和末位候选哈希数据计算得到当前数据组间隔点:(270+317)/2=293.5。
在另一个实施例中,数据组间隔点的确定方式自定义还可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,可以随机从当前候选哈希数据和目标候选哈希数据之间任意选取一个数字确定为当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点。
其中,当前候选哈希数据可以是当前候选数据组中的首位候选哈希数据,目标候选哈希数据可以是上一个候选数据组中的末位候选哈希数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选哈希数据,获取上一个候选数据组中的末位候选哈希数据,随机从首位候选哈希数据和末位候选哈希数据之间任意选取一个数字确定为当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点。
例如,当前候选数据组为:[317、553],上一个候选数据组为:[55、270],当前候选哈希数据为当前候选数据组中的首位候选哈希数据为:317,目标候选哈希数据为上一个候选数据组中的末位候选哈希数据:270,则当前候选数据组间隔点可以是随机从首位候选哈希数据和末位候选哈希数据之间任意选取的一个数字,例如,可以选取300为当前候选数据组间隔点。
在一个实施例中,待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,包括:待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
具体地,根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选数据组可以从各个候选数据组中随机抽取一个作为当前候选数据组,或者还可以是依次将候选数据组确定为当前候选数据组。
在另一个实施例中,当前候选哈希数据可以是当前候选数据组中的首位候选哈希数据,目标候选哈希数据可以是上一个候选数据组中的末位候选哈希数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选哈希数据,获取上一个候选数据组中的末位候选哈希数据,根据首位候选哈希数据和末位候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的首位候选哈希数据,直至得到数据组间隔点。
在一个实施例中,如图9所示,提供了一种数据集处理方法,以该方法应用于图1中的待查询设备为例进行说明,包括以下步骤:
步骤902,获取候选数据集合,候选数据集合包括至少一个候选数据。
步骤904,根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据。
其中,这里的待查询设备可以是数据用户方所在的待查询设备,存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合,对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。
其中,这里的有序间隔点集是指存在一定顺序的数据组间隔点组成的集合,而数据组间隔点是指候选数据集合对应的候选数据组之间的间隔值,而待查询设备上预先存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合。
其中,对候选数据集合进行处理,得到目标候选数据集,具体可以是,获取预设哈希函数,通过预设哈希函数对候选数据集合中的各个候选数据进行哈希处理,得到相应的候选哈希数据,由各个候选哈希数据组成目标候选数据集合。
例如,候选数据集合中的所有候选数据都通过相同的hash(哈希)函数通过以下公式处理得到候选哈希数据,由候选哈希数据组成目标候选数据集合:
Figure BDA0002770540480000331
步骤906,按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组。
步骤908,根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
具体地,待查询设备在得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据后,再对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。其中,具体可以是,待查询设备按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组,其中,预设的规则可以是对目标候选数据集合中的候选哈希数据进行排序,排序可以是升序或降序,得到排序后的目标候选数据集合,再根据预设分组大小对排序后的目标候选数据集合进行分组,从而得到多个候选数据组。
具体可以是,可以根据升序的规则对目标候选数据集合中的候选哈希数据进行排序,或者可以根据降序的规则对目标候选数据集合中的候选哈希数据进行降序,得到排序后的目标候选数据集合,再获取预设分组大小,所谓分组大小是指相应组对应的最大承受能力,预设分组大小可以根据业务需求、应用场景或产品需求进行确定得到,根据预设分组大小对排序后的目标候选数据集合进行分组,得到分组后的各个候选数据组。
进一步地,再根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选哈希数据可以是当前候选数据组的第一个候选哈希数据,而目标候选哈希数据可以是上一个候选数据组的最后一个候选哈希数据。
例如,候选数据集合进行hash函数处理得到的目标候选数据集合为:55、270、317、553、682、847、987、1203,对目标候选数据集合进行分组,得到:[55、270]、[317、553]、[682、847]、[987、1203],有序间隔点集为:第一组和第二组之间的数据组间隔点为293.5、第二组和第三组之间的数据组间隔点为617.5,第三组和第四组之间的数据组间隔点为917,有序数据组间隔点集为:{293.5、617.5、917}。其中,第一组和第二组之间的数据组间隔点可以根据第一组的末位候选哈希数据和第二组的首位候选哈希数据进行计算得到的,例如,第一组的末位候选哈希数据为270,第二组的首位候选哈希数据为317,第一组和第二组之间的数据组间隔点可以为:(270+317)/2=293.5。同样地,第二组和第三组之间的数据组间隔点可以根据第二组的末位候选哈希数据和第三组的首位候选哈希数据进行计算得到的,例如,第二组的末位候选哈希数据为553,第三组的首位候选哈希数据为682,第二组和第三组之间的数据组间隔点可以为:(553+682)/2=617.5。依次类推,第三组和第四组之间的数据组间隔点可以根据第三组末位候选哈希数据和第四组首位候选哈希数据进行计算得到的,例如,第三组末位候选哈希数据为847,第四组的首位候选哈希数据为987,第三组和第四组之间的数据组间隔点可以为:(847+987)/2=917。
在一个实施例中,根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,包括:获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
具体地,根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选数据组可以从各个候选数据组中随机抽取一个作为当前候选数据组,或者还可以是依次将候选数据组确定为当前候选数据组。
在另一个实施例中,当前候选哈希数据可以是当前候选数据组中的首位候选哈希数据,目标候选哈希数据可以是上一个候选数据组中的末位候选哈希数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选哈希数据,获取上一个候选数据组中的末位候选哈希数据,根据首位候选哈希数据和末位候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的首位候选哈希数据,直至得到数据组间隔点。
在一个实施例中,数据集处理方法还包括:接收新增加的候选哈希数据,将新增加的候选哈希数据插入其对应的第一数据组内,判断第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。
其中,这里的第一数据组是指新增加的候选哈希数据需要插入的数据组,可以根据各个数据组间隔点确定新增加的候选哈希数据对应的第一数据组,再第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内后重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。例如,第一组和第二组之间的数据组间隔点为293.5、第二组和第三组之间的数据组间隔点为617.5,新增加的候选哈希数据为530,则确定新增加的候选哈希数据为第二组为第一数据组,再判断第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内后重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。
在一个具体的实施例中,提供了一种数据查询方法,具体包括以下步骤:
1、待查询设备获取候选数据集合,候选数据集合包括至少一个候选数据。
2、待查询设备根据预设哈希函数对候选数据集合中的候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据。
3、待查询设备按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组。
4、待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
4-1、待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
5、发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号。
6、接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤10。
7、接收待查询设备返回的第二版本号信息,则进入步骤8。
8、发送数据查询请求至待查询设备。
9、接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点。
10、获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号。
10-1、从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点。
10-2、根据两个目标间隔点确定待查询数据对应的当前数据组序号。
11、对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据。
11-1、预设加密协议为不经意伪随机函数协议,对待查询数据执行不经意伪随机函数协议,在不经意伪随机函数协议执行完毕后,得到待查询数据对应的待查询加密数据,其中,不经意伪随机函数协议使得查询设备和待查询设备以不经意的方式交互信息。
11-1-1、获取预设加密密钥对,预设加密密钥对包括第一加密密钥和第二加密密钥。
11-1-2、接收待查询设备发送的第一加密数据和第二加密数据。
11-1-3、随机生成第一随机数,根据第一随机数和第一加密密钥计算得到第三加密数据,根据第一加密数据、待查询数据、第二加密数据计算得到第四加密数据。
11-1-4、将第三加密数据、第四加密数据和第一加密密钥发送至待查询设备中,以使待查询设备随机生成第二随机数,根据第四加密数据计算得到第五加密数据,根据第五加密数据和预设加密模长计算得到第六加密数据,根据第六加密数据和第三加密数据计算得到第七加密数据,根据预设公共参数和第二随机数计算得到第八加密数据,根据第七加密数据、第一加密密钥和第八加密数据计算得到第九加密数据。
11-1-5、接收待查询设备返回的第七加密数据和第九加密数据,根据第七加密数据和第九加密数据计算得到待查询数据对应的待查询加密数据。
12、将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集。
12-1、当前加密函数为当前不经意伪随机函数,将当前数据组序号发送至待查询设备中,以使待查询设备随机生成预设随机数,获取预设随机数对应的当前不经意伪随机函数,获取当前数据组序号对应的至少一个当前数据,根据当前不经意伪随机函数对至少一个当前数据进行处理,得到至少一个当前数据对应的当前加密数据集,将当前加密数据集中的当前加密数据作为根,构建当前加密代数式,根据当前加密代数式随机生成非零的当前坐标数据集,当前加密代数式包括多个当前计算单元项。
13、接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数。
13-1、获取待查询加密数据对应的加密坐标数据。
13-2、根据加密坐标数据和当前坐标数据集计算得到目标加密代数式。
14、将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果。
14-1、当前加密代数式包括多个当前计算单元项,各个当前计算单元项包括对应的当前代数式系数,将各个目标计算单元项对应的目标代数式系数发送至待查询设备,以使待查询设备获取当前加密代数式中各个当前计算单元项对应的当前代数式系数,比较当前代数式系数和对应的目标代数式系数是否都相同,在当前代数式系数与对应的目标代数式系数都相同时,确定待查询数据在候选数据集合中。
14-2、反之,在任一当前代数式系数与对应的目标代数式系数不相同时,确定待查询数据不在候选数据集合中。
15、接收查询结果。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种数据查询系统1000,包括:
查询设备1002,用于获取数据查询请求,并将数据查询请求发送至待查询设备。
待查询设备1004,用于根据数据查询请求获取与候选数据集合对应的有序间隔点集,并将有序间隔点集返回至查询设备,有序间隔点集包括候选数据集合对应的有序数据组间隔点。
查询设备1002,还用于接收有序间隔点集,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据,将当前数据组序号发送至待查询设备。
待查询设备1004,还用于获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集,并将当前坐标数据集返回至查询设备。
查询设备1002,还用于接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,将目标代数式系数发送至待查询设备。
待查询设备1004,还用于根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果,并返回查询结果至查询设备。
查询设备1002,还用于接收查询结果。
在一个实施例中,如图11所示,提供了一种数据查询装置1100,包括:查询请求发送模块1102、有序间隔点集接收模块1104、待查询数据获取模块1106、待查询加密数据生成模块1108、当前数据组序号发送模块1110、坐标数据集接收模块1112、代数式系数发送模块1114和查询结果接收模块1116,其中:
查询请求发送模块1102,用于发送数据查询请求至待查询设备。
有序间隔点集接收模块1104,用于接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点。
待查询数据获取模块1106,用于获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号。
待查询加密数据生成模块1108,用于对待查询数据执行预设加密协议,在预设加密协议执行完毕后得到待查询数据对应的待查询加密数据。
当前数据组序号发送模块1110,用于将当前数据组序号发送至待查询设备中,以使待查询设备获取当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据当前加密函数对至少一个当前数据进行加密计算,得到当前加密数据集,根据当前加密数据集构建当前加密代数式,根据当前加密代数式生成当前坐标数据集。
坐标数据集接收模块1112,用于接收当前坐标数据集,根据待查询加密数据和当前坐标数据集生成目标加密代数式,目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数。
代数式系数发送模块1114,用于将目标代数式系数发送至待查询设备,以使待查询设备根据目标代数式系数和当前加密代数式确定待查询数据对应的查询结果。
查询结果接收模块1116,用于接收查询结果。
在一个实施例中,待查询数据获取模块1106还用于从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点,根据两个目标间隔点确定待查询数据对应的当前数据组序号。
在一个实施例中,数据查询装置1100还用于发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据,或,接收待查询设备返回的第二版本号信息,则进入步骤发送数据查询请求至待查询设备。
在一个实施例中,预设加密协议为不经意伪随机函数协议,待查询加密数据生成模块1108还用于对待查询数据执行不经意伪随机函数协议,在不经意伪随机函数协议执行完毕后,得到待查询数据对应的待查询加密数据,其中,不经意伪随机函数协议使得查询设备和待查询设备以不经意的方式交互信息。
在一个实施例中,预设加密协议为不经意伪随机函数协议,待查询加密数据生成模块1108还用于获取预设加密密钥对,预设加密密钥对包括第一加密密钥和第二加密密钥,接收待查询设备发送的第一加密数据和第二加密数据,随机生成第一随机数,根据第一随机数和第一加密密钥计算得到第三加密数据,根据第一加密数据、待查询数据、第二加密数据计算得到第四加密数据,将第三加密数据、第四加密数据和第一加密密钥发送至待查询设备中,以使待查询设备随机生成第二随机数,根据第四加密数据计算得到第五加密数据,根据第五加密数据和预设加密模长计算得到第六加密数据,根据第六加密数据和第三加密数据计算得到第七加密数据,根据预设公共参数和第二随机数计算得到第八加密数据,根据第七加密数据、第一加密密钥和第八加密数据计算得到第九加密数据,接收待查询设备返回的第七加密数据和第九加密数据,根据第七加密数据和第九加密数据计算得到待查询数据对应的待查询加密数据。
在一个实施例中,当前加密函数为当前不经意伪随机函数,当前数据组序号发送模块1110还用于将当前数据组序号发送至待查询设备中,以使待查询设备随机生成预设随机数,获取预设随机数对应的当前不经意伪随机函数,获取当前数据组序号对应的至少一个当前数据,根据当前不经意伪随机函数对至少一个当前数据进行处理,得到至少一个当前数据对应的当前加密数据集,将当前加密数据集中的当前加密数据作为根,构建当前加密代数式,根据当前加密代数式随机生成非零的当前坐标数据集,当前加密代数式包括多个当前计算单元项。
在一个实施例中,坐标数据集接收模块1112还用于获取待查询加密数据对应的加密坐标数据,根据加密坐标数据和当前坐标数据集计算得到目标加密代数式。
在一个实施例中,当前加密代数式包括多个当前计算单元项,各个当前计算单元项包括对应的当前代数式系数,代数式系数发送模块1114还用于将各个目标计算单元项对应的目标代数式系数发送至待查询设备,以使待查询设备获取当前加密代数式中各个当前计算单元项对应的当前代数式系数,比较当前代数式系数和对应的目标代数式系数是否都相同,在当前代数式系数与对应的目标代数式系数都相同时,确定待查询数据在候选数据集合中,反之,在任一当前代数式系数与对应的目标代数式系数不相同时,确定待查询数据不在候选数据集合中。
关于数据查询装置的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图12所示,提供了一种数据集处理装置1200,包括:候选数据集合获取模块1202、目标候选数据集合获取模块1204、目标候选数据集合分组模块1206、有序数据组间隔点集生成模块1208,其中:
候选数据集合获取模块1202,用于获取候选数据集合,候选数据集合包括至少一个候选数据。
目标候选数据集合获取模块1204,用于根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据。
目标候选数据集合分组模块1206,用于按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组。
有序数据组间隔点集生成模块1208,用于根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
在一个实施例中,有序数据组间隔点集生成模块1208还用于获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
在一个实施例中,数据集处理装置1200还用于接收新增加的候选哈希数据,将新增加的候选哈希数据插入其对应的第一数据组内,判断第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储查询结果。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13或图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据查询方法的步骤。此处数据查询方法的步骤可以是上述各个实施例的数据查询方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据查询方法的步骤。此处数据查询方法的步骤可以是上述各个实施例的数据查询方法中的步骤。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据集处理方法的步骤。此处数据集处理方法的步骤可以是上述各个实施例的数据集处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据集处理方法的步骤。此处数据集处理方法的步骤可以是上述各个实施例的数据集处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种数据查询方法,其特征在于,所述方法包括:
发送数据查询请求至待查询设备;
接收有序间隔点集,所述有序间隔点集包括所述待查询设备根据所述数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据所述待查询数据和所述有序间隔点集确定所述待查询数据对应的当前数据组序号;
对所述待查询数据执行预设加密协议,在所述预设加密协议执行完毕后得到所述待查询数据对应的待查询加密数据;
将所述当前数据组序号发送至所述待查询设备中,以使所述待查询设备获取所述当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据所述当前加密函数对至少一个所述当前数据进行加密计算,得到当前加密数据集,根据所述当前加密数据集构建当前加密代数式,根据所述当前加密代数式生成当前坐标数据集;
接收所述当前坐标数据集,根据所述待查询加密数据和所述当前坐标数据集生成目标加密代数式,所述目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;
将所述目标代数式系数发送至所述待查询设备,以使所述待查询设备根据所述目标代数式系数和所述当前加密代数式确定所述待查询数据对应的查询结果;
接收所述查询结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待查询数据和所述有序间隔点集确定所述待查询数据对应的当前数据组序号,包括:
从所述有序间隔点集中获取与所述待查询数据对应的相邻的两个目标间隔点;
根据所述两个目标间隔点确定所述待查询数据对应的当前数据组序号。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
发送当前有序间隔点集版本号查询请求至待查询设备,所述当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使所述待查询设备获取候选有序间隔点集版本号,比较所述当前有序间隔点集版本号和所述候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号;
接收所述待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将所述历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据,或;
接收所述待查询设备返回的第二版本号信息,则进入步骤发送数据查询请求至待查询设备。
4.根据权利要求1所述的方法,其特征在于,所述预设加密协议为不经意伪随机函数协议,所述对所述待查询数据执行预设加密协议,在所述预设加密协议执行完毕后得到所述待查询数据对应的待查询加密数据,包括:
对所述待查询数据执行所述不经意伪随机函数协议,在所述不经意伪随机函数协议执行完毕后,得到所述待查询数据对应的待查询加密数据,其中,所述不经意伪随机函数协议使得查询设备和待查询设备以不经意的方式交互信息;
所述在所述不经意伪随机函数协议执行完毕后,得到所述待查询数据对应的待查询加密数据,包括:
获取预设加密密钥对,所述预设加密密钥对包括第一加密密钥和第二加密密钥;
接收待查询设备发送的第一加密数据和第二加密数据;
随机生成第一随机数,根据所述第一随机数和所述第一加密密钥计算得到第三加密数据,根据所述第一加密数据、所述待查询数据、所述第二加密数据计算得到第四加密数据;
将所述第三加密数据、所述第四加密数据和所述第一加密密钥发送至所述待查询设备中,以使所述待查询设备随机生成第二随机数,根据所述第四加密数据计算得到第五加密数据,根据所述第五加密数据和预设加密模长计算得到第六加密数据,根据所述第六加密数据和所述第三加密数据计算得到第七加密数据,根据预设公共参数和所述第二随机数计算得到第八加密数据,根据所述第七加密数据、所述第一加密密钥和第八加密数据计算得到第九加密数据;
接收所述待查询设备返回的所述第七加密数据和所述第九加密数据,根据所述第七加密数据和所述第九加密数据计算得到所述待查询数据对应的待查询加密数据。
5.根据权利要求1所述的方法,其特征在于,所述当前加密函数为当前不经意伪随机函数,所述将所述当前数据组序号发送至所述待查询设备中,以使所述待查询设备获取所述当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据所述当前加密函数对至少一个所述当前数据进行加密计算,得到当前加密数据集,根据所述当前加密数据集构建当前加密代数式,根据所述当前加密代数式生成当前坐标数据集,包括:
将所述当前数据组序号发送至所述待查询设备中,以使所述待查询设备随机生成预设随机数,获取所述预设随机数对应的当前不经意伪随机函数,获取所述当前数据组序号对应的至少一个当前数据,根据所述当前不经意伪随机函数对至少一个所述当前数据进行处理,得到至少一个所述当前数据对应的当前加密数据集,将所述当前加密数据集中的当前加密数据作为根,构建当前加密代数式,根据所述当前加密代数式随机生成非零的当前坐标数据集,所述当前加密代数式包括多个当前计算单元项。
6.根据权利要求1所述的方法,其特征在于,所述根据所述待查询加密数据和所述当前坐标数据集生成目标加密代数式,包括:
获取所述待查询加密数据对应的加密坐标数据;
根据所述加密坐标数据和所述当前坐标数据集计算得到目标加密代数式。
7.根据权利要求1所述的方法,其特征在于,所述当前加密代数式包括多个当前计算单元项,各个当前计算单元项包括对应的当前代数式系数,所述将所述目标代数式系数发送至所述待查询设备,以使所述待查询设备根据所述目标代数式系数和所述当前加密代数式确定所述待查询数据对应的查询结果,包括:
将各个所述目标计算单元项对应的目标代数式系数发送至所述待查询设备,以使所述待查询设备获取所述当前加密代数式中各个所述当前计算单元项对应的当前代数式系数,比较所述当前代数式系数和对应的目标代数式系数是否都相同,在所述当前代数式系数与对应的目标代数式系数都相同时,确定所述待查询数据在所述候选数据集合中;
反之,在任一所述当前代数式系数与对应的目标代数式系数不相同时,确定所述待查询数据不在所述候选数据集合中。
8.根据权利要求1所述的方法,其特征在于,所述有序间隔点集的生成步骤包括:
待查询设备获取候选数据集合,所述候选数据集合包括至少一个候选数据;
所述待查询设备根据预设哈希函数对所述候选数据集合中的候选数据进行处理,得到目标候选数据集合,所述目标候选数据集合包括至少一个候选哈希数据;
所述待查询设备按照预设的规则对所述目标候选数据集合进行分组,得到多个候选数据组;
所述待查询设备根据各个所述候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个所述数据组间隔点生成有序数据组间隔点集。
9.根据权利要求8所述的方法,其特征在于,所述待查询设备根据各个所述候选数据组中的候选哈希数据确定对应的数据组间隔点,包括:
所述待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据所述当前候选哈希数据和所述目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将所述下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到所述数据组间隔点。
10.一种数据集处理方法,其特征在于,包括:
获取候选数据集合,所述候选数据集合包括至少一个候选数据;
根据预设哈希函数对所述候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,所述目标候选数据集合包括至少一个候选哈希数据;
按照预设的规则对所述目标候选数据集合进行分组,得到多个候选数据组;
根据各个所述候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个所述数据组间隔点生成有序数据组间隔点集。
11.根据权利要求10所述的方法,其特征在于,所述根据各个所述候选数据组中的候选哈希数据确定对应的数据组间隔点,包括:
获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据所述当前候选哈希数据和所述目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将所述下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到所述数据组间隔点。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
接收新增加的候选哈希数据,将新增加的候选哈希数据插入其对应的第一数据组内;
判断所述第一数据组内的数据数量是否超出设定范围:
若是,则从所述第一数据组内重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。
13.一种数据查询装置,其特征在于,所述装置包括:
查询请求发送模块,用于发送数据查询请求至待查询设备;
有序间隔点集接收模块,用于接收有序间隔点集,所述有序间隔点集包括所述待查询设备根据所述数据查询请求获取与候选数据集合对应的有序数据组间隔点;
待查询数据获取模块,用于获取待查询数据,根据所述待查询数据和所述有序间隔点集确定所述待查询数据对应的当前数据组序号;
待查询加密数据生成模块,用于对所述待查询数据执行预设加密协议,在所述预设加密协议执行完毕后得到所述待查询数据对应的待查询加密数据;
当前数据组序号发送模块,用于将所述当前数据组序号发送至所述待查询设备中,以使所述待查询设备获取所述当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据所述当前加密函数对至少一个所述当前数据进行加密计算,得到当前加密数据集,根据所述当前加密数据集构建当前加密代数式,根据所述当前加密代数式生成当前坐标数据集;
坐标数据集接收模块,用于接收所述当前坐标数据集,根据所述待查询加密数据和所述当前坐标数据集生成目标加密代数式,所述目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数;
代数式系数发送模块,用于将所述目标代数式系数发送至所述待查询设备,以使所述待查询设备根据所述目标代数式系数和所述当前加密代数式确定所述待查询数据对应的查询结果;
查询结果接收模块,用于接收所述查询结果。
14.一种数据查询系统,其特征在于,所述系统包括:
查询设备,用于获取数据查询请求,并将所述数据查询请求发送至待查询设备;
待查询设备,用于根据所述数据查询请求获取与候选数据集合对应的有序间隔点集,并将所述有序间隔点集返回至所述查询设备,所述有序间隔点集包括所述候选数据集合对应的有序数据组间隔点;
所述查询设备,还用于接收有序间隔点集,获取待查询数据,根据所述待查询数据和所述有序间隔点集确定所述待查询数据对应的当前数据组序号,对所述待查询数据执行预设加密协议,在所述预设加密协议执行完毕后得到所述待查询数据对应的待查询加密数据,将所述当前数据组序号发送至所述待查询设备;
所述待查询设备,还用于获取所述当前数据组序号对应的至少一个当前数据,获取预设随机数对应的当前加密函数,根据所述当前加密函数对至少一个所述当前数据进行加密计算,得到当前加密数据集,根据所述当前加密数据集构建当前加密代数式,根据所述当前加密代数式生成当前坐标数据集,并将所述当前坐标数据集返回至所述查询设备;
所述查询设备,还用于接收所述当前坐标数据集,根据所述待查询加密数据和所述当前坐标数据集生成目标加密代数式,所述目标加密代数式包括多个目标计算单元项,各个目标计算单元项包括对应的目标代数式系数,将所述目标代数式系数发送至所述待查询设备;
所述待查询设备,还用于根据所述目标代数式系数和所述当前加密代数式确定所述待查询数据对应的查询结果,并返回所述查询结果至所述查询设备;
所述查询设备,还用于接收所述查询结果。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202011247552.4A 2020-11-10 2020-11-10 数据查询方法、装置、系统以及数据集处理方法 Pending CN112328639A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011247552.4A CN112328639A (zh) 2020-11-10 2020-11-10 数据查询方法、装置、系统以及数据集处理方法
PCT/CN2020/140678 WO2022099893A1 (zh) 2020-11-10 2020-12-29 数据查询方法、装置、系统以及数据集处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011247552.4A CN112328639A (zh) 2020-11-10 2020-11-10 数据查询方法、装置、系统以及数据集处理方法

Publications (1)

Publication Number Publication Date
CN112328639A true CN112328639A (zh) 2021-02-05

Family

ID=74317352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011247552.4A Pending CN112328639A (zh) 2020-11-10 2020-11-10 数据查询方法、装置、系统以及数据集处理方法

Country Status (2)

Country Link
CN (1) CN112328639A (zh)
WO (1) WO2022099893A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115412246B (zh) * 2022-11-01 2023-01-31 北京信安世纪科技股份有限公司 不经意传输方法、装置、设备和存储介质
CN115765969B (zh) * 2023-01-10 2023-06-09 蓝象智联(杭州)科技有限公司 一种基于同态加密的隐匿集合求交方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794237A (zh) * 2015-05-07 2015-07-22 中国人民大学 网页信息处理方法及装置
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN110222081A (zh) * 2019-06-08 2019-09-10 西安电子科技大学 多用户环境下基于细粒度排序的数据密文查询方法
US20200082112A1 (en) * 2018-09-12 2020-03-12 Netz Forecasts Ltd. Systems and methods for secure prediction using an encrypted query executed based on encrypted data
CN111783109A (zh) * 2019-04-04 2020-10-16 华控清交信息科技(北京)有限公司 数据查询方法、系统及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387495B2 (en) * 2016-06-10 2019-08-20 Palo Alto Research Center Incorporated System and method for efficient interval search using locality-preserving hashing
CN108768651A (zh) * 2018-04-20 2018-11-06 南京搜文信息技术有限公司 支持多维区间范围查询的可搜索公钥加密方法
CN110618999A (zh) * 2019-08-01 2019-12-27 平安科技(深圳)有限公司 数据的查询方法及装置、计算机存储介质、电子设备
CN111198882A (zh) * 2019-12-26 2020-05-26 东软集团股份有限公司 数据的处理方法、装置、存储介质和电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794237A (zh) * 2015-05-07 2015-07-22 中国人民大学 网页信息处理方法及装置
US20200082112A1 (en) * 2018-09-12 2020-03-12 Netz Forecasts Ltd. Systems and methods for secure prediction using an encrypted query executed based on encrypted data
CN111783109A (zh) * 2019-04-04 2020-10-16 华控清交信息科技(北京)有限公司 数据查询方法、系统及存储介质
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN110222081A (zh) * 2019-06-08 2019-09-10 西安电子科技大学 多用户环境下基于细粒度排序的数据密文查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QINLONG HUANG ET AL: "Secure Data Group Sharing and Conditional Dissemination with Multi-Owner in Cloud Computing", 《IEEE TRANSACTIONS ON CLOUD COMPUTING》, vol. 9, no. 4, 29 March 2019 (2019-03-29), pages 1607 - 1618, XP011891529, DOI: 10.1109/TCC.2019.2908163 *
陈文 等: "基于数据分割的网络数字图像安全传输方法", 《计算机工程与设计》, vol. 37, no. 7, 31 July 2016 (2016-07-31), pages 1734 - 1740 *

Also Published As

Publication number Publication date
WO2022099893A1 (zh) 2022-05-19

Similar Documents

Publication Publication Date Title
Liu et al. Efficient and privacy-preserving outsourced calculation of rational numbers
KR100401225B1 (ko) 데이터베이스관리장치
US10360406B2 (en) Method of obfuscating data
NL2013944B1 (en) Public-key encryption system.
KR20130064701A (ko) 프라이버시―보존 협력 필터링
CN109714157B (zh) 一种抗密钥暴露属性加密的sdn跨域访问控制方法
CN108055128B (zh) Rsa密钥的生成方法、装置、存储介质及计算机设备
CN114065252A (zh) 一种带条件检索的隐私集合求交方法、装置及计算机设备
CN112865957A (zh) 数据加密传输方法、装置、计算机目标设备和存储介质
US20170063536A1 (en) Generating Cryptographic Function Parameters Based on an Observed Astronomical Event
US10079675B2 (en) Generating cryptographic function parameters from a puzzle
CN112953974B (zh) 数据碰撞方法、装置、设备及计算机可读存储介质
CN112328639A (zh) 数据查询方法、装置、系统以及数据集处理方法
CN113836559A (zh) 一种联邦学习中的样本对齐方法、装置、设备及存储介质
CN111079153B (zh) 安全建模方法、装置、电子设备及存储介质
CN115412356A (zh) 数据查询设备法、装置、计算机设备以及存储介质
CN114021198B (zh) 一种保护数据隐私的确定共有数据的方法及装置
CN113434555B (zh) 一种基于可搜索加密技术的数据查询方法和装置
JP6743702B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム
CN117811733A (zh) 基于秘密共享算法的任务确认完成方法及相关装置
Ibrahim et al. Towards efficient yet privacy-preserving approximate search in cloud computing
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
WO2022110716A1 (zh) 冷启动推荐方法、装置、计算机设备及存储介质
CN113901437A (zh) 密码生成方法、装置、计算机设备和存储介质
CN114244517A (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