CN112328640A - 数据查询方法、装置、***和数据集处理方法 - Google Patents

数据查询方法、装置、***和数据集处理方法 Download PDF

Info

Publication number
CN112328640A
CN112328640A CN202011249438.5A CN202011249438A CN112328640A CN 112328640 A CN112328640 A CN 112328640A CN 202011249438 A CN202011249438 A CN 202011249438A CN 112328640 A CN112328640 A CN 112328640A
Authority
CN
China
Prior art keywords
data
candidate
queried
current
encrypted
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
CN202011249438.5A
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 CN202011249438.5A priority Critical patent/CN112328640A/zh
Priority to PCT/CN2020/140634 priority patent/WO2022099891A1/zh
Publication of CN112328640A publication Critical patent/CN112328640A/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)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (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)

Abstract

本申请涉及一种数据查询方法、装置、***和数据集处理方法。该方法包括:发送数据查询请求至待查询设备;接收有序间隔点集;获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的至少一个当前数据组序号;根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取第一加密数据集和第二加密数据;接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。采用本申请能够保证查询数据的隐私性从而提高查询数据安全性。

Description

数据查询方法、装置、***和数据集处理方法
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据查询方法、装置、***、计算机设备和存储介质,以及数据集处理方法、装置、计算机设备和存储介质。
背景技术
保护数据集合的隐私性是在很多场景下是自然甚至是必要的需求,比如当集合是某用户的通讯录或是某基因诊断服务用户的基因组,这样的输入就一定要通过密码学的手段进行保护。隐私保护集合交集(Private Set Intersection,PSI)计算技术允许持有各自集合的两方来共同计算两个集合的交集运算。在协议交互的最后,一方或是两方应该得到正确的交集,而且不会得到交集以外另一方集合中的任何信息。
然而,隐私保护集合交集计算技术,需要允许持有各自集合的两方来共同计算两个集合的交集运算,这种方式,在数据查询过程中容易导致数据泄露,无法保证查询数据的隐私性,查询数据不安全。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证查询数据的隐私性从而提高查询数据安全性的数据查询方法、装置、***、计算机设备和存储介质,以及数据集处理方法、装置、计算机设备和存储介质。
第一方面,本申请实施例提供了一种数据查询方法,包括以下步骤:
发送数据查询请求至待查询设备;
接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据;
接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;
根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
第二方面,本申请实施例还提供一种数据查询装置,该装置包括:
查询请求发送模块,用于发送数据查询请求至待查询设备;
有序间隔集接收模块,用于接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
数据组序号确定模块,用于获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
加密数据计算模块,用于根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据;
加密数据处理模块,用于接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;以及
查询结果确定模块,用于根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
发送数据查询请求至待查询设备;
接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据;
接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;
根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
第四方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
发送数据查询请求至待查询设备;
接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;
获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;
根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据;
接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;
根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
第五方面,本申请实施例还提供一种数据查询***,该***包括:
查询设备,用于获取数据查询请求,并将数据查询请求发送至待查询设备;以及
待查询设备,用于根据数据查询请求获取与候选数据集合对应的有序间隔点集,并将有序间隔点集返回至查询设备,有序间隔点集包括候选数据集合对应的有序数据组间隔点;
查询设备,还用于接收有序间隔点集,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备;
待查询设备,还用于获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据,并将第一加密数据集和第二加密数据返回至查询设备;
查询设备,还用于接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集,根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
第六方面,本申请实施例还提供一种数据集处理方法,包括以下步骤:
获取候选数据集合,候选数据集合包括至少一个候选数据;
根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据;
按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组;
根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
上述数据查询方法、装置、***、计算机设备和存储介质,以及数据集处理方法、装置、计算机设备和存储介质,查询设备发送数据查询请求至待查询设备,数据查询请求包括待查询数据,接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的当前数据,根据第三预设质数、第一预设质数和当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据,接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集,根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
因此,由于待查询设备发送查询设备的有序间隔点集本身不是待查询设备内的候选数据集合,这些有序间隔点集中的有序数据组间隔点本身就是没有意义的,并没有将待查询设备内的候选数据集合发送至查询设备中,避免了待查询设备内的候选数据集合泄露,保证了查询数据的隐私性,而且待查询设备和查询设备发送给对方的数据都是通过保密的大质数进行加密计算得到的,由于自己的数据和指数都是保密的,互相无法反推出对方的真实数据,从而提高查询数据的安全性和隐私性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本发明一个实施例中数据查询方法的应用场景图;
图2是根据本发明一个实施例中数据查询方法的流程示意图;
图3是根据本发明一个实施例中当前数据组序号确定步骤的流程示意图;
图4是根据本发明一个实施例中第一加密数据处理步骤的流程示意图;
图5是根据本发明一个实施例中查询结果确定步骤的流程示意图;
图6是根据本发明一个实施例中有序间隔点集的生成步骤的流程示意图;
图7是根据本发明一个实施例中数据查询装置的结构框图;
图8是根据本发明一个实施例中数据查询***的结构框图;
图9是根据本发明一个实施例中计算机设备的结构框图;
图10是根据本发明一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”、“第四”等仅仅是区别类似的对象,不代表针对对象的特定排序。
图1为一个实施例中数据查询方法的应用环境图。参照图1,该数据查询方法应用于数据查询***。该数据查询***包括查询设备102和待查询设备104。查询设备102和待查询设备104通过网络连接。查询设备102具体可以是台式终端或移动终端或查询待查询设备,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。待查询设备104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体地,查询设备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 BDA0002771130540000091
然后,将目标候选数据按照一定的顺序进行排序,其中,一定的顺序可以是升序,也可以是降序,按照每组固定的大小的方式进行分组,得到多个候选数据组,其中,固定的大小可以根据业务需求、产品需求或者实际应用场景进行预先确定得到,其中,在另一个实施例中,在将目标候选数据按照一定的顺序进行排序后,还可以按照每组不同的大小的方式进行分组,即可以按照每组非固定的大小的方式进行分组,每个候选数据组对应的分组大小可以根据业务需求、产品需求以及实际应用场景具体确定得到,其中,在又一个实施例中,各个候选数据组对应的分组大小有些可以相同,有些可以不同,具体可以根据实际情况确定得到。
进一步地,再根据各个候选数据组中的目标候选数据计算得到数据组间隔点,对这些数据组间隔点进行排序,从而得到有序数据组间隔点。具体地,当查询设备发送数据查询请求至待查询设备时,待查询设备根据数据查询请求获取有序间隔点集合,并将获取到的有序间隔点集合返回至查询设备。
步骤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,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据。
其中,第一预设质数、第二预设质数都是随机生成的足够大的质数,基于离散对数难解性保证无法根据加密后的数据逆推出原数据,由于加密算法的特殊性,可以保证多次加密的数据的结果与加密的顺序无关。随机生成质数时,先随机选择一个给定位数的奇数,然后用质数判别法判断其是否为质数。如果不是,则重新选择。但是,根据质数定理,给定一个数x,小于x的质数个数约为x/lnx,也就是说,给定一个数,其为质数的概率约为1/lnx。就算给定的数是个奇数,其概率也只能上升到2/lnx。如果质数要求是2048位,那么随机取一个奇数,其能通过质数检验的概率约为2/2048*log(e)=0.22%。也就是说,大约要选500次才能有一次通过质数判断,如果位数大,选取的次数就要增加,效率就低。本申请实施例中随机生成的质数均优选为2048位,超过2048位,计算效率下降,不足2048位,安全性得不到满足,在之前密码学中都是用的1024位,但是已出现通过算力穷举被攻击的情况,位数长需要的算力就大,目前在重要场合一般使用2048位。
具体地,查询设备随机生成两个质数,分别作为第一预设质数和第二预设质数,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,其中,计算方式可以是,将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行第一次加密计算,其中,第一次加密计算可以是模指数计算,从而得到第一加密数据。
例如,随机生成2048位第一预设质数N和第二预设质数P,并将第一预设质数N作为加密的模,将第二预设质数P作为待查询数据B的指数,对待查询数据B进行模指数计算,得到第一加密数据Bp,具体可以以以下公式所示:
BP=BPmodN
进一步地,查询设备将第一预设质数、第一加密数据和当前组序号一起发送至待查询设备,待查询设备接收到第一预设质数、第一加密数据和当前组序号后,随机生成第三预设质数,第三预设质数可以是2048位的质数,同时根据当前组序号获取对应的至少一个当前数据,这里的当前数据可以是指当前组序号内的数据元素,当前数据可以是当前组序号内的所有数据,也可以是当前组序号内的目标数据,目标数据的数量可以根据业务需求、实际应用情况确定得到,其中,候选数据集合经过处理后得到目标候选数据集合,并对目标候选数据集合进行分组,得到多个候选数据组,各个候选数据组内都包括相应的目标候选数据和相应的组序号,因此,可将当前组序号内的所有目标候选数据都可作为当前数据。其次,可将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对当前数据进行第二次加密,第二次加密可以是模指数计算,从而得到第一加密数据集。
例如,当前组序号为i,随机生成2048位的第三预设质数Q,将第三预设质数Q作为当前数据Ai的指数,将第一预设质数N作为第二次加密的模,对当前数据Ai进行模指数计算,得到第一加密数据集
Figure BDA0002771130540000111
具体可以以以下公式所示:
Figure BDA0002771130540000112
进一步地,待查询设备接收到第一预设质数、第一加密数据和当前组序号后,还可以将第三预设质数作为第一加密数据的指数,对第一加密数据进行第三次加密计算,第三次加密计算可以是模指数计算,得到第二加密数据。
例如,随机生成2048位第一预设质数N和第二预设质数P,并将第一预设质数N作为加密的模,将第二预设质数P作为待查询数据B的指数,对带查询数据B进行模指数计算,得到第一加密数据Bp,具体可以以以下公式所示:
BP=BPmodN
再随机生成2048位的第三预设质数Q,将第三预设质数Q作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据BPQ,具体可以以以下公式所示:
BPQ=(BP)QmodN=BPQmodN
其中,待查询设备计算得到第一加密数据集和第二加密数据后,需要将第一加密数据集和第二加密数据返回至查询设备。
其中,待查询设备可以先根据第一加密数据和第三预设质数计算得到第二加密数据后,再根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,这两个步骤之间不分顺序,可以相互交换。
步骤210,接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集。
其中,查询设备在接收到待查询设备返回的第一加密数据集和第二加密数据后,可以再对第一加密数据集进行加密,得到第二加密数据集,其中,加密过程可以是根据第一加密数据集和第二预设指数进行加密计算得到第二加密数据集。具体可以是,将第二预设指数作为第一加密数据集的指数,对第一加密数据集进行第四次加密,第四次加密可以是模指数计算,得到第二加密数据集。
例如,当前组序号为i,随机生成2048位的第三预设质数Q,将第三预设质数Q作为当前数据Ai的指数,将第一预设质数N作为第二次加密的模,对当前数据Ai进行模指数计算,得到第一加密数据集
Figure BDA0002771130540000121
具体可以以以下公式所示:
Figure BDA0002771130540000122
查询设备接收到待查询设备发送的第一加密数据集
Figure BDA0002771130540000123
对第二次加密数据
Figure BDA0002771130540000124
进行再次加密计算,将第二预设质数P作为第一加密数据集
Figure BDA0002771130540000125
的指数,对第一加密数据集
Figure BDA0002771130540000126
进行模指数计算,得到第二加密数据集
Figure BDA0002771130540000127
具体可以以以下公式所示:
Figure BDA0002771130540000128
步骤212,根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
其中,查询设备在得到第二加密数据和第二加密数据集后,可以根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果,具体可以是,比较第二加密数据和第二加密数据集是否匹配,其中,若第二加密数据和第二加密数据集匹配,则确定待查询数据对应的查询结果为第一查询结果,第一查询结果说明待查询数据在候选数据集合中,若第二加密数据和第二加密数据集不匹配时,则确定待查询数据对应的查询结果为第二查询结果,第二查询结果说明待查询数据不在候选数据集合中。其中,第二加密数据和第二加密数据集是否匹配可以是,比较第二加密数据和第二加密数据集是否相同,或者比较第二加密数据和第二加密数据集是否相等。
其中,由于待查询设备发送查询设备的有序间隔点集本身不是待查询设备内的候选数据集合,同时由于hash函数的特性,这些有序间隔点集中的有序数据组间隔点本身就是没有意义的,并没有将待查询设备内的候选数据集合发送至查询设备中,避免了待查询设备内的候选数据集合泄露,保证了查询数据的隐私性,而且待查询设备和查询设备发送给对方的数据都是通过保密的大质数进行加密计算得到的,由于自己的数据和指数都是保密的,互相无法反推出对方的真实数据,从而提高查询数据的安全性和隐私性。
上述数据查询方法中,查询设备发送数据查询请求至待查询设备,接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据,接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集,根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
因此,由于待查询设备发送查询设备的有序间隔点集本身不是待查询设备内的候选数据集合,这些有序间隔点集中的有序数据组间隔点本身就是没有意义的,并没有将待查询设备内的候选数据集合发送至查询设备中,避免了待查询设备内的候选数据集合泄露,保证了查询数据的隐私性,而且待查询设备和查询设备发送给对方的数据都是通过保密的大质数进行加密计算得到的,由于自己的数据和指数都是保密的,互相无法反推出对方的真实数据,从而提高查询数据的安全性和隐私性。
在一个实施例中,如图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。
在一个实施例中,如图4所示,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据,包括:
步骤402,随机生成第一预设质数和第二预设质数。
步骤404,将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行模指数运算计算,得到第一加密数据。
其中,第一预设质数、第二预设质数都是随机生成的足够大的质数,随机生成质数时,先随机选择一个给定位数的奇数,然后用质数判别法判断其是否为质数。如果不是,则重新选择。但是,根据质数定理,给定一个数x,小于x的质数个数约为x/lnx,也就是说,给定一个数,其为质数的概率约为1/lnx。就算给定的数是个奇数,其概率也只能上升到2/lnx。如果质数要求是2048位,那么随机取一个奇数,其能通过质数检验的概率约为2/2048*log(e)=0.22%。本申请实施例中随机生成的质数均优选为2048位,超过2048位,计算效率下降,不足2048位,安全性得不到满足,在之前密码学中都是用的1024位,但是已出现通过算力穷举被攻击的情况,位数长需要的算力就大,目前在重要场合一般使用2048位。
具体地,查询设备随机生成两个质数,分别作为第一预设质数和第二预设质数,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,其中,计算方式可以是,将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行第一次模指数计算,从而得到第一加密数据。
例如,随机生成2048位第一预设质数N和第二预设质数P,并将第一预设质数N作为加密的模,将第二预设质数P作为待查询数据B的指数,对待查询数据B进行模指数计算,得到第一加密数据Bp,具体可以以以下公式所示:
BP=BPmodN
步骤406,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备根据当前数据组序号获取对应的至少一个当前数据,随机生成第三预设质数,将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对至少一个当前数据进行模指数计算,得到第一加密数据集,将第三预设质数作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据。
具体地,查询设备将第一预设质数、第一加密数据和当前组序号一起发送至待查询设备,待查询设备接收到第一预设质数、第一加密数据和当前组序号后,随机生成第三预设质数,第三预设质数可以是2048位的质数,同时根据当前组序号获取对应的当前数据,这里的当前数据是指当前组序号内的所有数据,候选数据集合经过处理后得到目标候选数据集合,并对目标候选数据集合进行分组,得到多个候选数据组,各个候选数据组内都包括相应的目标候选数据和相应的组序号,因此,可将当前组序号内的所有目标候选数据都可作为当前数据。其次,可将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对当前数据进行第二次模指数计算,从而得到第一加密数据集。
例如,当前组序号为i,随机生成2048位的第三预设质数Q,将第三预设质数Q作为当前数据Ai的指数,将第一预设质数N作为第二次加密的模,对当前数据Ai进行模指数计算,得到第一加密数据集
Figure BDA0002771130540000161
具体可以以以下公式所示:
Figure BDA0002771130540000162
其中,若当前组序号i内的当前数据为多个,则可以将第三预设质数Q作为各个当前数据Ai的质数,将第一预设质数N作为第二次加密的模,对当前组序号i内的所有当前数据进行模指数计算,得到对应的第一加密数据集。
进一步地,待查询设备接收到第一预设质数、第一加密数据和当前组序号后,还可以将第三预设质数作为第一加密数据的指数,对第一加密数据进行第三次加密计算,第三次加密计算可以是模指数计算,得到第二加密数据。
例如,查询设备随机生成2048位第一预设质数N和第二预设质数P,并将第一预设质数N作为加密的模,将第二预设质数P作为待查询数据B的指数,对带查询数据B进行模指数计算,得到第一加密数据Bp,具体可以以以下公式所示:
BP=BPmodN
查询设备把第一加密数据Bp发送至待查询设备,待查询设备随机生成2048位的第三预设质数Q,将第三预设质数Q作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据BPQ,具体可以以以下公式所示:
BPQ=(BP)QmodN=BPQmodN
其中,待查询设备计算得到第一加密数据集和第二加密数据后,需要将第一加密数据集和第二加密数据返回至查询设备。
在一个实施例中,根据第一加密数据集和第二预设质数计算得到第二加密数据集,包括:将第二预设质数作为第一加密数据集的指数,对第一加密数据集进行模指数计算,得到第二加密数据集。
其中,查询设备在接收到待查询设备返回的第一加密数据集和第二加密数据后,可以通过再次对第一加密数据集进行加密,得到第二加密数据集,其中,加密过程可以是根据第一加密数据集和第二预设指数进行加密计算得到第二加密数据集。具体可以是,将第二预设指数作为第一加密数据集的指数,对第一加密数据集进行第四次模指数计算,得到第二加密数据集。
例如,当前组序号为i,随机生成2048位的第三预设质数Q,将第三预设质数Q作为当前数据Ai的指数,将第一预设质数N作为第二次加密的模,对当前数据Ai进行模指数计算,得到第一加密数据集
Figure BDA0002771130540000171
具体可以以以下公式所示:
Figure BDA0002771130540000172
查询设备接收到待查询设备发送的第一加密数据集
Figure BDA0002771130540000173
对第二次加密数据
Figure BDA0002771130540000174
进行再次加密计算,将第二预设质数P作为第一加密数据集
Figure BDA0002771130540000175
的指数,对第一加密数据集
Figure BDA0002771130540000176
进行模指数计算,得到第二加密数据集
Figure BDA0002771130540000177
具体可以以以下公式所示:
Figure BDA0002771130540000178
在一个实施例中,如图5所示,根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果,包括:
步骤502,在第二加密数据与第二加密数据集的某一元素相同时,确定待查询数据对应的查询结果为第一查询结果,第一查询结果为待查询数据在候选数据集合中。
步骤504,在第二加密数据与第二加密数据集任一元素均不相同时,确定待查询数据对应的查询结果为第二查询结果,第二查询结果为待查询数据不在候选数据集合中。
具体地,查询设备在得到第二加密数据和第二加密数据集后,可以根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果,具体可以是,比较第二加密数据和第二加密数据集是否匹配,其中,若第二加密数据和第二加密数据集的某一元素匹配,则确定待查询数据对应的查询结果为第一查询结果,第一查询结果说明待查询数据在候选数据集合中,若第二加密数据和第二加密数据集任一元素均不匹配时,则确定待查询数据对应的查询结果为第二查询结果,第二查询结果说明待查询数据不在候选数据集合中。其中,第二加密数据和第二加密数据集是否匹配可以是,比较第二加密数据和第二加密数据集的某一元素是否相同,或者比较第二加密数据和第二加密数据集任一元素均是否相等。
其中,若待查询数据为多个,且当前组序号内的数据也为多个时,则第二加密数据为多个,第二加密数据集也为多个,将各个第二加密数据与各个第二加密数据集进行比较,若存在任何一个第二加密数据与任何一个第二加密数据集相同或者相等时,则可确定待查询数据对应的查询结果为第一查询结果,说明待查询数据在候选数据集合中,若不存在任何一个第二加密数据与任何一个第二加密数据集相同或者相等时,则可确定待查询数据对应的查询结果为第二查询结果,说明待查询数据不在候选数据集合中。
在一个实施例中,如图6所示,有序间隔点集的生成步骤包括:
步骤602,待查询设备获取候选数据集合,候选数据集合包括至少一个候选数据。
步骤604,待查询设备根据预设哈希函数对候选数据集合中的候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据。
其中,这里的待查询设备可以是数据用户方所在的待查询设备,存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合,对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。
其中,这里的有序间隔点集是指存在一定顺序的数据组间隔点组成的集合,而数据组间隔点是指候选数据集合对应的候选数据组之间的间隔值,而待查询设备上预先存储候选数据集合,候选数据集合包括至少一个候选数据,对候选数据集合进行处理,得到目标候选数据集合。
其中,对候选数据集合进行处理,得到目标候选数据集,具体可以是,获取预设哈希函数,通过预设哈希函数对候选数据集合中的各个候选数据进行哈希处理,得到相应的候选哈希数据,由各个候选哈希数据组成目标候选数据集合。
例如,候选数据集合中的所有候选数据都通过相同的hash(哈希)函数通过以下公式处理得到候选哈希数据,由候选哈希数据组成目标候选数据集合:
Figure BDA0002771130540000191
步骤606,待查询设备根据按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组。
步骤608,待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
具体地,待查询设备在得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据后,再对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的数据确定对应的数据组间隔点,对这些数据组间隔点进行排序,得到有序数据组间隔点集。其中,具体可以是,待查询设备按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组,其中,预设的规则可以是对目标候选数据集合中的候选哈希数据进行排序,排序可以是升序或降序,得到排序后的目标候选数据集合,再根据预设分组大小对排序后的目标候选数据集合进行分组,从而得到多个候选数据组。
具体可以是,可以根据升序的规则对目标候选数据集合中的候选哈希数据进行排序,或者可以根据降序的规则对目标候选数据集合中的候选哈希数据进行降序,得到排序后的目标候选数据集合,再获取预设分组大小,所谓分组大小是指相应组对应的最大承受能力,预设分组大小可以根据业务需求、应用场景或产品需求进行确定得到,根据预设分组大小对排序后的目标候选数据集合进行分组,得到分组后的各个候选数据组。进一步地,再根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选哈希数据可以是当前候选数据组的第一个候选哈希数据,而目标候选哈希数据可以是上一个候选数据组的最后一个候选哈希数据。
例如,候选数据集合进行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。
在一个实施例中,待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,包括:待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
具体地,根据各个候选数据组中的数据确定对应的数据组间隔点,具体可以是,获取当前候选数据组,获取当前候选数据组对应的当前候选哈希数据,获取上一个候选数据组对应的目标候选哈希数据,根据当前候选哈希数据与目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组对应的当前候选哈希数据,直至得到各个数据组间隔点,各个数据组间隔点之间进行排序,得到有序数据组间隔点集。其中,当前候选数据组可以从各个候选数据组中随机抽取一个作为当前候选数据组,或者还可以是依次将候选数据组确定为当前候选数据组。
在另一个实施例中,当前候选哈希数据可以是当前候选数据组中的首位候选哈希数据,目标候选哈希数据可以是上一个候选数据组中的末位候选哈希数据,具体可以是待查询设备获取当前候选数据组,获取当前候选数据组中的首位候选哈希数据,获取上一个候选数据组中的末位候选哈希数据,根据首位候选哈希数据和末位候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的首位候选哈希数据,直至得到数据组间隔点。
在一个实施例中,数据查询方法还包括:发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据,或;接收待查询设备返回的第二版本号信息,则进入步骤发送数据查询请求至待查询设备。
其中,这里的当前有序间隔点集版本号查询请求是用来请求查询当前有序间隔点集版本号的,当前有序间隔点集版本号是当前有序间隔点集对应的版本标识号,每一次待查询设备发送的当前有序间隔点集都包括对应的当前有序间隔点集版本号,在查询设备第一次向待查询设备发送有序间隔点集版本号查询请求时,会保存待查询设备返回的有序间隔点集版本号,在后续查询时,查询设备携带当前有序间隔点集版本号查询请求向待查询设备查询时,待查询设备比较当前有序间隔点集版本号与本地存储的候选间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,并将第一版本号信息或第二版本号信息返回至查询设备。
进一步地,查询设备接收到第一版本号信息,说明当前有序间隔点集版本号与待查询设备本地存储的候选间隔点集版本号一致,则可以将查询设备本身缓存的有序间隔点确定为有序间隔点集,具体可以是,获取历史有序间隔点集,所谓历史有序间隔点集是查询设备本地缓存的有序间隔点集,将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据。
其中,若查询设备接收到的是第二版本号信息,说明当前有序间隔点集版本号与待查询设备本地存储的候选间隔点集版本号不一致,则进入步骤发送数据查询请求至待查询设备,并将后续接收到的有序间隔点集替换查询设备本地存储的历史有序间隔点集,即根据后续接收到的有序间隔点集更新本地存储的历史有序间隔点集。
在一个具体的实施例中,提供了一种数据查询方法,具体包括以下步骤:
1、待查询设备获取候选数据集合,候选数据集合包括至少一个候选数据。
2、待查询设备根据预设哈希函数对候选数据集合中的候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据。
3、待查询设备根据按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组。
4、待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
4-1、待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
5、发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号。
6、接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤10。
7、接收待查询设备返回的第二版本号信息,则进入步骤8。
8、发送数据查询请求至待查询设备。
9、接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点。
10、获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号。
10-1、从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点。
10-2、根据两个目标间隔点确定待查询数据对应的当前数据组序号。
11、根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据。
11-1、随机生成第一预设质数和第二预设质数。
11-2、将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行模指数运算计算,得到第一加密数据。
11-3、将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备根据当前数据组序号获取对应的至少一个当前数据,随机生成第三预设质数,将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对至少一个当前数据进行模指数计算,得到第一加密数据集,将第三预设质数作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据。
12、接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集。
12-1、将第二预设质数作为第一加密数据集的指数,对第一加密数据集进行模指数计算,得到第二加密数据集。
13、根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
13-1、在第二加密数据与第二加密数据集的某一元素相同时,确定待查询数据对应的查询结果为第一查询结果,第一查询结果为待查询数据在候选数据集合中。
13-2、在第二加密数据与第二加密数据集任一元素均不相同时,确定待查询数据对应的查询结果为第二查询结果,第二查询结果为待查询数据不在候选数据集合中。
在一个实施例中,提供了一种数据集处理方法,包括以下步骤:获取候选数据集合,候选数据集合包括至少一个候选数据,根据预设哈希函数对候选数据集合中的至少一个候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据,按照预设的规则对目标候选数据集合进行分组,得到多个候选数据组,根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
在一个实施例中,根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,包括:获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
在一个实施例中,数据集处理方法还包括:接收新增加的候选哈希数据,将新增加的候选哈希数据***其对应的第一数据组内,判断第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内后重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。
其中,这里的第一数据组是指新增加的候选哈希数据需要***的数据组,可以根据各个数据组间隔点确定新增加的候选哈希数据对应的第一数据组,再第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内后重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。例如,第一组和第二组之间的数据组间隔点为293.5、第二组和第三组之间的数据组间隔点为617.5,新增加的候选哈希数据为530,则确定新增加的候选哈希数据为第二组为第一数据组,再判断第一数据组内的数据数量是否超出设定范围,若是,则从第一数据组内后重新确定数据组间隔点,根据各个数据组间隔点更新有序数据组间隔点集。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种数据查询装置700,包括:查询请求发送模块702、有序间隔集接收模块704、数据组序号确定模块706、加密数据计算模块708、加密数据处理模块710和查询结果确定模块712,其中:
查询请求发送模块702,用于发送数据查询请求至待查询设备。
有序间隔集接收模块704,用于接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点。
数据组序号确定模块706,用于获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号。
加密数据计算模块708,用于根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据。
加密数据处理模块710,用于接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集。
查询结果确定模块712,用于根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
在一个实施例中,数据组序号确定模块706还用于从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点,根据两个目标间隔点确定待查询数据对应的当前数据组序号。
在一个实施例中,数据查询装置700还用于发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入数据组序号确定模块706用于获取待查询数据,或,接收待查询设备返回的第二版本号信息,则进入查询请求发送模块702用于发送数据查询请求至待查询设备。
在一个实施例中,加密数据计算模块708还用于随机生成第一预设质数和第二预设质数,将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行模指数运算计算,得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备根据当前数据组序号获取对应的至少一个当前数据,随机生成第三预设质数,将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对至少一个当前数据进行模指数计算,得到第一加密数据集,将第三预设质数作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据。
在一个实施例中,加密数据处理模块710还用于将第二预设质数作为第一加密数据集的指数,对第一加密数据集进行模指数计算,得到第二加密数据集。
在一个实施例中,查询结果确定模块712还用于在第二加密数据与第二加密数据集的某一元素相同时,确定待查询数据对应的查询结果为第一查询结果,第一查询结果为待查询数据在候选数据集合中,在第二加密数据与第二加密数据集任一元素均不相同时,确定待查询数据对应的查询结果为第二查询结果,第二查询结果为待查询数据不在候选数据集合中。
关于数据查询装置的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图8所示,提供了一种数据查询***800,该***包括:
查询设备802,用于获取数据查询请求,并将数据查询请求发送至待查询设备。
待查询设备804,用于根据数据查询请求获取与候选数据集合对应的有序间隔点集,并将有序间隔点集返回至查询设备,有序间隔点集包括候选数据集合对应的有序数据组间隔点。
查询设备802,还用于接收有序间隔点集,获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号,根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备。
待查询设备804,还用于获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据,并将第一加密数据集和第二加密数据返回至查询设备。
查询设备802,还用于接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集,根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是查询设备,查询设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储有序间隔点集和查询结果。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是查询设备,查询设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9或图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:发送数据查询请求至待查询设备;接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据;接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点;根据两个目标间隔点确定待查询数据对应的当前数据组序号。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据,接收待查询设备返回的第二版本号信息,则进入步骤发送数据查询请求至待查询设备。在一个实施例中,处理器执行计算机程序时还实现以下步骤:随机生成第一预设质数和第二预设质数;将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行模指数运算计算,得到第一加密数据;将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备根据当前数据组序号获取对应的至少一个当前数据,随机生成第三预设质数,将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对当前数据进行模指数计算,得到第一加密数据集,将第三预设质数作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第二预设质数作为第一加密数据集的指数,对第一加密数据集进行模指数计算,得到第二加密数据集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第二加密数据与第二加密数据集某一元素相同时,确定待查询数据对应的查询结果为第一查询结果,第一查询结果为待查询数据在候选数据集合中;在第二加密数据与第二加密数据集任一元素均不相同时,确定待查询数据对应的查询结果为第二查询结果,第二查询结果为待查询数据不在候选数据集合中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:待查询设备获取候选数据集合,候选数据集合包括至少一个候选数据;待查询设备根据预设哈希函数对候选数据集合中的候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据;待查询设备根据至少一个候选哈希数据对目标候选数据集合进行分组,得到多个候选数据组;待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:发送数据查询请求至待查询设备;接收有序间隔点集,有序间隔点集包括待查询设备根据数据查询请求获取与候选数据集合对应的有序数据组间隔点;获取待查询数据,根据待查询数据和有序间隔点集确定待查询数据对应的当前数据组序号;根据第一预设质数、第二预设质数和待查询数据计算得到第一加密数据,将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备获取当前数据组序号对应的至少一个当前数据,根据第三预设质数、第一预设质数和至少一个当前数据计算得到第一加密数据集,根据第一加密数据和第三预设质数计算得到第二加密数据;接收第一加密数据集和第二加密数据,根据第一加密数据集和第二预设质数计算得到第二加密数据集;根据第二加密数据和第二加密数据集确定待查询数据对应的查询结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:发送当前有序间隔点集版本号查询请求至待查询设备,当前有序间隔点集版本号查询请求包括当前有序间隔点集版本号,以使待查询设备获取候选有序间隔点集版本号,比较当前有序间隔点集版本号和候选有序间隔点集版本号是否一致,若一致,则确定为第一版本号信息,若不一致,则确定为第二版本号信息,并返回,其中候选有序间隔点集版本号为待查询设备中目前有序间隔点集对应的版本号,接收待查询设备返回的第一版本号信息,获取历史有序间隔点集,则将历史有序间隔点集作为有序间隔点集,进入步骤获取待查询数据,接收待查询设备返回的第二版本号信息,则进入步骤发送数据查询请求至待查询设备。在一个实施例中,处理器执行计算机程序时还实现以下步骤:从有序间隔点集中获取与待查询数据对应的相邻的两个目标间隔点;根据两个目标间隔点确定待查询数据对应的当前数据组序号。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:随机生成第一预设质数和第二预设质数;将第一预设质数作为第一次加密的模,将第二预设质数作为待查询数据的指数,对待查询数据进行模指数运算计算,得到第一加密数据;将第一预设质数、第一加密数据和当前数据组序号发送至待查询设备,以使待查询设备根据当前数据组序号获取对应的至少一个当前数据,随机生成第三预设质数,将第三预设质数作为当前数据的指数,将第一预设质数作为第二次加密的模,对至少一个当前数据进行模指数计算,得到第一加密数据集,将第三预设质数作为第一加密数据的指数,对第一加密数据进行模指数计算,得到第二加密数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第二预设质数作为第一加密数据集的指数,对第一加密数据集进行模指数计算,得到第二加密数据集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第二加密数据与第二加密数据集的某一元素相同时,确定待查询数据对应的查询结果为第一查询结果,第一查询结果为待查询数据在候选数据集合中;在第二加密数据与第二加密数据集任一元素均不相同时,确定待查询数据对应的查询结果为第二查询结果,第二查询结果为待查询数据不在候选数据集合中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:待查询设备获取候选数据集合,候选数据集合包括至少一个候选数据;待查询设备根据预设哈希函数对候选数据集合中的候选数据进行处理,得到目标候选数据集合,目标候选数据集合包括至少一个候选哈希数据;待查询设备根据至少一个候选哈希数据对目标候选数据集合进行分组,得到多个候选数据组;待查询设备根据各个候选数据组中的候选哈希数据确定对应的数据组间隔点,根据各个数据组间隔点生成有序数据组间隔点集。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:待查询设备获取当前候选数据组,获取当前候选数据组中的当前候选哈希数据,获取上一个候选数据组中的目标候选哈希数据,根据当前候选哈希数据和目标候选哈希数据计算得到当前数据组间隔点,获取下一个候选数据组,将下一个候选数据组作为当前候选数据组,返回步骤获取当前候选数据组中的当前候选哈希数据,直至得到数据组间隔点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (15)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011249438.5A CN112328640A (zh) 2020-11-10 2020-11-10 数据查询方法、装置、***和数据集处理方法
PCT/CN2020/140634 WO2022099891A1 (zh) 2020-11-10 2020-12-29 数据查询方法、装置、***和数据集处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011249438.5A CN112328640A (zh) 2020-11-10 2020-11-10 数据查询方法、装置、***和数据集处理方法

Publications (1)

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

Family

ID=74317749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011249438.5A Pending CN112328640A (zh) 2020-11-10 2020-11-10 数据查询方法、装置、***和数据集处理方法

Country Status (2)

Country Link
CN (1) CN112328640A (zh)
WO (1) WO2022099891A1 (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794237A (zh) * 2015-05-07 2015-07-22 中国人民大学 网页信息处理方法及装置
US20190213350A1 (en) * 2018-01-05 2019-07-11 Sap Se Data Protection Management System Compliant Identification Handling
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN111191255A (zh) * 2019-08-08 2020-05-22 腾讯科技(深圳)有限公司 信息加密处理的方法、服务器、终端、设备以及存储介质
WO2020200306A1 (zh) * 2019-04-04 2020-10-08 华控清交信息科技(北京)有限公司 数据查询和计算方法及***、及存储介质
CN111783109A (zh) * 2019-04-04 2020-10-16 华控清交信息科技(北京)有限公司 数据查询方法、***及存储介质
CN111797285A (zh) * 2020-06-30 2020-10-20 深圳壹账通智能科技有限公司 字符串模糊匹配方法、装置、设备及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038349B (zh) * 2014-07-03 2017-05-03 西安电子科技大学 一种基于kp‑abe的有效可验证的公钥可搜索加密方法
US9715546B1 (en) * 2016-02-18 2017-07-25 Yahoo! Inc. Method and system for searching encrypted data
US10402581B2 (en) * 2017-10-03 2019-09-03 Servicenow, Inc. Searching for encrypted data within cloud based platform
CN111541679B (zh) * 2020-04-17 2021-04-16 武汉大学 一种云环境下基于秘密共享的图像安全检索方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794237A (zh) * 2015-05-07 2015-07-22 中国人民大学 网页信息处理方法及装置
US20190213350A1 (en) * 2018-01-05 2019-07-11 Sap Se Data Protection Management System Compliant Identification Handling
WO2020200306A1 (zh) * 2019-04-04 2020-10-08 华控清交信息科技(北京)有限公司 数据查询和计算方法及***、及存储介质
CN111783109A (zh) * 2019-04-04 2020-10-16 华控清交信息科技(北京)有限公司 数据查询方法、***及存储介质
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN111191255A (zh) * 2019-08-08 2020-05-22 腾讯科技(深圳)有限公司 信息加密处理的方法、服务器、终端、设备以及存储介质
CN111797285A (zh) * 2020-06-30 2020-10-20 深圳壹账通智能科技有限公司 字符串模糊匹配方法、装置、设备及可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUI YIN; JIXIN ZHANG; YINQIAO XIONG; LU OU; FANGMIN LI; SHAOLIN LIAO; KEQIN LI: "CP-ABSE: A Ciphertext-Policy Attribute-Based Searchable Encryption Scheme", IEEE ACCESS, 3 January 2019 (2019-01-03), pages 5682 *
王淑霞;赵洪岩;: "RSA加密算法中获得强质数算法的改进", 通化师范学院学报, no. 10, 20 October 2007 (2007-10-20), pages 21 - 22 *
窦轶;黄海平;王汝传;秦小麟: "两层无线传感器网络安全范围查询协议", 计算机研究与发展, vol. 50, no. 6, 30 June 2013 (2013-06-30), pages 1253 - 1266 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN108829781B (zh) 客户信息查询方法、装置、计算机设备和存储介质
CN110457945B (zh) 名单查询的方法、查询方设备、服务方设备及存储介质
EP3134994A1 (en) Method of obfuscating data
US20200076592A1 (en) Method for generating seed and device thereof
CN109246130A (zh) 数据加密方法、装置、计算机设备及存储介质
CN113239046A (zh) 数据查询方法、***、计算机设备及存储介质
CN113836559A (zh) 一种联邦学习中的样本对齐方法、装置、设备及存储介质
CN111614469B (zh) 数字签名生成方法、设备及存储介质
CN112073444A (zh) 数据集的处理方法、装置和服务器
CN112328639A (zh) 数据查询方法、装置、***以及数据集处理方法
CN114021198A (zh) 一种保护数据隐私的确定共有数据的方法及装置
CN108389124B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112541102A (zh) 异常数据过滤方法、装置、设备及存储介质
CN112328640A (zh) 数据查询方法、装置、***和数据集处理方法
CN113971296B (zh) 一种id模糊化的数据处理***
CN114374505A (zh) 密文生成方法、装置、服务器、介质及产品
CN114239004A (zh) 电子签章生成方法、装置、计算机设备和存储介质
CN114238914A (zh) 数字证书申请***、方法、装置、计算机设备和存储介质
CN114091063A (zh) 密钥存储、恢复、支付处理方法、装置、设备和存储介质
CN109561093B (zh) 越权行为检测方法、装置、计算机设备和存储介质
CN111666290A (zh) 基于人工智能的数据替换方法、装置、计算机设备和介质
CN113627635A (zh) 基于区块链的数据处理方法、计算机设备及存储介质
CN111339377A (zh) 基于编号的信息查询方法、装置、计算机设备和存储介质
CN112330452A (zh) 交易数据处理方法、装置、计算机设备和存储介质
CN112104569A (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