CN114860735A - 匿踪查询方法及装置 - Google Patents
匿踪查询方法及装置 Download PDFInfo
- Publication number
- CN114860735A CN114860735A CN202210602612.2A CN202210602612A CN114860735A CN 114860735 A CN114860735 A CN 114860735A CN 202210602612 A CN202210602612 A CN 202210602612A CN 114860735 A CN114860735 A CN 114860735A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- target
- column
- columns
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种匿踪查询方法及装置,该方法包括:接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置;判断各个数据查询请求对应的目标列是否均不同,若是,则从预设的索引矩阵中选取混淆列,根据目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;将各个匿踪查询请求发送至数据提供方,以接收数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。本申请能够保证数据查询方的隐私性,提高匿踪查询的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种匿踪查询方法及装置。
背景技术
随着近年来大数据技术的不断发展,数据资产的价值越来越得到大量企业和机构的重视。数据隐私泄露问题也成为备受关注的热点,数据隐私泄露对涉事企业造成巨大损失。
为了避免数据隐私泄露,数据孤岛正在不断形成,大量数据沉睡无法发挥其价值。很多个人数据和企业数据,将不能直接用于明文交易;对一些企业来说,很多数据是企业的核心资产,也不愿意共享或进行明文交易;即使能够在企业之间达成数据交易的一致,从技术上很难保证跨企业的系统、身份的认证,同时这些明文数据在交易之后,面临被泄漏和滥用的风险,数据价值无法保全。
发明内容
针对现有技术中的至少一个问题,本申请提出了一种匿踪查询方法及装置,能够保证数据查询方的隐私性,同时能够提高匿踪查询的效率。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种匿踪查询方法,包括:
接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成;
判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
进一步地,所述的匿踪查询方法,还包括:
接收数据提供方发送的批量查询对象唯一标识各自的哈希码;
根据预设的第一分类规则将批量查询对象唯一标识各自的哈希码划分为多类哈希码类;
根据各类哈希码类,构建所述预设的索引矩阵;
所述哈希码组和预设的索引矩阵中的列一一对应。
进一步地,所述从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,包括:
从所述预设的索引矩阵中除所述目标列之外的列中随机选取至少一列确定为所述混淆列;
生成所述目标列和混淆列各自对应的索引序列,其中,每列索引序列的位数与目标列的位数相同,所述目标位置对应在索引序列中的位置填充模为预获取的随机数的非二次剩余,索引序列中的剩余位置均填充模为预获取的随机数的二次剩余;
根据所述目标列对应的列号、预获取的随机数、索引序列、所述混淆列对应的列号、预获取的随机数和索引序列,生成多个匿踪查询请求。
进一步地,在所述判断各个数据查询请求对应的目标列是否均不同之后,还包括:
若存在多个数据查询请求对应的目标列相同,则将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同;
针对每组哈希码组,从所述预设的索引矩阵中选取混淆列,根据所述哈希码组对应的目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
根据每个匿踪查询请求对应的加密查询结果和所述哈希码组对应的目标位置,确定所述哈希码组对应的每个数据查询请求的目标隐私数据并输出。
进一步地,在所述从所述预设的索引矩阵中选取混淆列之前,还包括:
若存在多个数据查询请求对应的目标列相同,则根据预设的第二分类规则和批量查询对象唯一标识各自的哈希码,重新构建所述预设的索引矩阵,各个数据查询请求在重新构建后的索引矩阵中对应的目标列均不同。
第二方面,本申请提供一种匿踪查询装置,包括:
接收模块,用于接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成;
判断模块,用于判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
查询模块,用于将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
第一确定模块,用于根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
进一步地,所述匿踪查询装置还包括:
接收哈希码模块,用于接收数据提供方发送的批量查询对象唯一标识各自的哈希码;
分类模块,用于根据预设的第一分类规则将批量查询对象唯一标识各自的哈希码划分为多类哈希码类;
生成模块,用于根据各类哈希码类,构建所述预设的索引矩阵;其中,所述哈希码组和预设的索引矩阵中的列一一对应。
进一步地,所述判断模块,包括:
选取单元,用于从所述预设的索引矩阵中除所述目标列之外的列中随机选取至少一列确定为所述混淆列;
填充单元,用于生成所述目标列和混淆列各自对应的索引序列,其中,每列索引序列的位数与目标列的位数相同,所述目标位置对应在索引序列中的位置填充模为预获取的随机数的非二次剩余,索引序列中的剩余位置均填充模为预获取的随机数的二次剩余;
生成单元,用于根据所述目标列对应的列号、预获取的随机数、索引序列、所述混淆列对应的列号、预获取的随机数和索引序列,生成多个匿踪查询请求。
进一步地,所述的匿踪查询装置,还包括:
划分模块,用于若存在多个数据查询请求对应的目标列相同,则将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同;
生成模块,用于针对每组哈希码组,从所述预设的索引矩阵中选取混淆列,根据所述哈希码组对应的目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
查询模块,用于将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
第二确定模块,用于根据每个匿踪查询请求对应的加密查询结果和所述哈希码组对应的目标位置,确定所述哈希码组对应的每个数据查询请求的目标隐私数据并输出。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的匿踪查询方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的匿踪查询方法。
由上述技术方案可知,本申请提供一种匿踪查询方法及装置。其中,该方法包括:接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成;判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出,能够保证数据查询方的隐私性,同时能够提高匿踪查询的效率,有利于隐私保护和数据使用计费;可以对多个查询请求进行打包,批量处理,减少作业量和通信量;有利于构建统一规范、互联互通、安全可控的数据开放平台,提升运用数据服务经济社会发展的能力;对数据使用方,提供匿踪查询中间服务,减少数据使用方的技术成本和压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的匿踪查询方法的流程示意图;
图2是本申请实施例中的匿踪查询方法的步骤201至步骤203的流程示意图;
图3是本申请实施例中的匿踪查询方法的步骤301至步骤303的流程示意图;
图4是本申请实施例中的匿踪查询方法的步骤401至步骤404的流程示意图;
图5是本申请一种举例中预设的索引矩阵中的哈希码Xij位置示意图;
图6是本申请一种举例中预设的索引矩阵中的哈希码Xij和Xi’j’对应的位置和序列示意图;
图7是本申请一种举例中批量目标哈希码分组前后在预设的索引矩阵中的位置组示意图;
图8是本申请一种举例中预设的索引矩阵重新构造前后批量目标哈希码对应的位置组示意图;
图9是本申请一种举例中动态构造索引矩阵的流程示意图;
图10是本申请一种举例中的目标列与索引序列之间的位置关系示意图;
图11是本申请应用实例中的匿踪查询方法的逻辑示意图;
图12是本申请实施例中匿踪查询装置的结构示意图;
图13是本申请另一实施例中匿踪查询装置的结构示意图;
图14为本申请实施例的电子设备的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
匿踪查询,也称隐私数据检索,是指数据查询方隐藏被查询对象的关键词或者客户ID信息,数据提供方提供匹配的加密查询结果却无法获知具体对应哪个查询对象;
目前,匿踪查询方式通常是通过多个互不通信的数据库副本共同协作完成查询,允许用户向不同的服务器提交不同的查询,然后合并这些服务器的应答消息得到最终的加密查询结果;该过程中任何单一服务器没有得到关于用户的私有信息,在这种方式中,几个服务器的作业量较多,匿踪查询效率较低。
隐私计算作为保证数据“可用不可见”的技术被应用于各个数据安全领域。隐私计算包括安全多方计算和联邦学习等技术分类。
通常定义下多方安全计算(MPC)指的是多个持有各自私有数据的参与方,共同执行一个计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算,MPC计算可以通过对协议的设计而不用依赖于可信第三方。该技术的特点是:MPC可以在保证各方数据安全的同时,联合使用各方数据来达到特定的效果,从而充分发挥数据的价值。、隐私数据检索(Private InformationRetrieval,简称PIR)又称匿踪查询技术是针对特定问题的一种多方安全计算的重要协议。PIR技术的主要目的是,在用户查询隐私信息不被泄漏的条件下完成查询,即在过程中服务器或数据库不知道用户具体查询信息及检索出的数据项。后来PIR扩展为对称隐私信息检索(Symmetric PIR),即要求数据库的私有信息也不能被泄露。PIR技术在医疗、商业竞争(如专利数据查询、股票数据查询、数字产品交易)、军事合作等领域都有广阔的应用前景。
实现匿踪查询最简单的策略是将整个数据库全部传送给用户,用户在本地进行信息检索,这种方案对数据所有方的隐私没有保护,且数据传输量太大。
目前,还有一种常见的PIR方案是,通过密码学的计算后传送数据;经过几轮交互,能够保证数据查询方的隐私和数据提供方的隐私;缺点是每次查询中数据库运算量与数据库的大小呈线性增长,并不实用;已出现许多第三方机构为数据查询方和数据提供方提供中间服务,如,各类数据市场、数据交易所等。基于这种数据互联互通的大背景,也进一步对PIR技术提出了新的要求:在数据查询方(客户端)和数据提供方(数据库端)之间,存在一个可信赖的第三方机构提供数据共享流通服务,在对接数据查询方和数据提供方的同时能够保护双方的隐私和权益,也能够减少对数据查询方的技术要求。
常见的隐私信息检索技术,存在计算效率低,传输数据量大等缺点,同时需要在信息检索的查询方和数据提供方部署统一的隐私计算节点,对各方技术和计算资源要求高。目前针对提供数据服务的第三方机构的隐私查询方案较少,仍以传统隐私信息检索技术为基础,没有对请求做优化和批量处理。例如,一种安全隐匿三要素查询方法,主要描述了一种对三要素数据进行查询隐私核验的方法。该方案不涉及对请求进行优化,打包批量处理过程。
为了解决上述现有技术中存在的至少一个问题,本申请提供一种匿踪查询方法及装置,本申请目的是保证数据查询方的隐私性和数据提供方的权益,解决可信第三方如何对查询过程进行隐私保护的问题;同时可提供数据服务调用统计功能,为数据使用的计费提供方便;当存在来自多个数据查询方的大量数据请求时,普通的隐私数据检索方案会带来巨大的计算量和通信量,本申请能够提升计算效率,减少系统通信压力,加速数据查询过程。
在本申请中,可信第三方T可以接收来自多个数据查询方的数据查询请求,根据其请求目标进行统一混淆和打包,T基于打包后的请求与数据提供方之间运行通用的PIR协议,获得批量加密查询结果,T对批量结果处理分发给各个数据查询方,同时记录数据使用情况。通过可信第三方对请求的批量匿踪处理,数据提供方不知道数据查询方信息,也并不确定每个具体查询请求,批量加密查询结果返回给可信第三方后,由批量加密查询结果做中间结果的解密运算和处理,分解出每个数据查询方需要的结果,再分别返回给数据查询方,能够减少数据传输量;可信第三方能够根据保留的信息,记录每个数据查询方查询量和使用的数据量,有利于准确计费。
基于此,为了保证数据查询方的隐私性,同时提高匿踪查询的效率,本申请实施例提供一种匿踪查询装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行匿踪查询的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
需要说明的是,本申请公开的匿踪查询方法及装置可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的匿踪查询方法及装置的应用领域不做限定。
具体通过下述各个实施例进行说明。
为了保证数据查询方的隐私性,同时提高匿踪查询的效率,本实施例提供一种执行主体是匿踪查询装置的匿踪查询方法,该匿踪查询装置包括但不限于服务器,如图1所示,该方法具体包含有如下内容:
步骤101:接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成。
具体地,匿踪查询装置可以接收数据查询方发送的数据查询请求,匿踪查询装置可以相当于可信第三方,可信第三方作为匿踪查询的中间处理方,连接数据查询方与数据提供方;解析数据查询方检索请求,执行匿踪处理之后合并请求发送给数据提供方;与数据提供方协调数据检索处理方式,获取数据检索结果,并分发给数据查询方;数据查询方包括但不限于服务器;例如,在黑名单查询中,数据查询方将用户ID号(身份证号、手机号等)作为检索索引项,检索索引项即上述目标查询对象唯一标识,返回结果值为1或0,代表该用户是否在黑名单中;数据查询方可以有多个;数据查询方对需要请求的目标查询对象唯一标识先进行hash编码脱敏,与数据库端的算法相同,即算法能够保证转换后同样的ID,编码也是相同的;可以获取所述目标哈希码在预设的索引矩阵中所属的目标列和目标位置;所述预设的索引矩阵是由批量查询对象唯一标识的哈希码组成的,批量查询对象唯一标识中包含有所述目标查询对象唯一标识。
具体地,所述预设的索引矩阵为n×n的二维矩阵;假设数据库全部记录条数为m,那么n≥m1/2,该矩阵就可以存储所有m个hash码,如64条记录可以构造8×8的矩阵。
举例来说,数据查询方A请求Ca,数据查询方B请求Cb,假设Ca请求的哈希码是Xij,Cb请求的哈希码是Xi’j’,对应在矩阵中的位置为(i,j)和(i’,j’)。
步骤102:判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列。
具体地,可以从预设的索引矩阵中随机选取1到n/2个混淆列加入;例如,随机选取第j*列作为混淆列;分别对目标列和混淆列,例如,第j列、第j’列和第j*列这3列运行某种PIR协议,生成加密的查询数据,这里不限制基础PIR协议的具体方案。
举例来说,生成第j列对应的随机数m1、第j’列对应的随机数m2和第j*列对应的随机数m3,即针对(j,j’,j*)中的每一列,生成对应的随机数(m1,m2,m3);再生成m1,m2,m3各自对应的随机n维数组,对于第j列,生成n-1个模m1的QR值(a1,...ai-1,ai+1,...)序列,任意a满足:存在一个整数x,使得x2 mod m1=a;生成1个模m1的QNR值bi,bi满足:不存在一个整数x,使得x2 mod m1=bi;最后组合成的序列是U=(a1,...ai-1,bi,ai+1,...),其中,非真实请求所在的位置填充模m的QR值a(二次剩余),真实请求所在位置(即数据查询请求对应的位置)填充模m的QNR值b(二次非剩余);同理生成U’和U*;其中,U、U’和U*可以相当于上述索引序列。
步骤103:将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果。
具体地,数据提供方根据各个索引序列,对本地存储结果数据矩阵Y相应的列(j,j’,j*)做某种PIR协议规定的运算,获得加密查询结果;数据提供方包括但不限于服务器;数据提供方:可以提供隐私化的数据库服务;配合可信第三方完成匿踪数据检索运算,返回检索结果给可信第三方;为了简化描述,假设数据库中,仅存储了客户ID和是否在黑名单中(取值为0或1)这2个数据列,其他更复杂的数据都可以用同样的方法扩展。
例如,对于数据提供方来说,U、U’和U*是3个随机数的向量U=(u1,u2,...),U’=(u’1,u’2,...),U*=(u*1,u*2,...),数据提供方无法区分哪个是真实请求的数据位置,数据提供方对结果矩阵Y中的这3列,分别进行计算,第j列:其中,y1j表示X1j的值,即预设的索引矩阵中的第1行第j列的哈希码对应的隐私数据,在黑名单查询场景中,y1j可以为1或0,表示第1行第j列的哈希码对应的用户是否在黑名单中;同理,得到v’和v*;v、v’和v*可以相当于上述各个索引序列各自的加密查询结果;结果矩阵Y和预设的索引矩阵中的元素可以一一对应,结果矩阵Y可以由批量查询对象唯一标识各自的隐私数据组成;可以根据哈希码在预设的索引矩阵中的位置,确定该哈希码在结果矩阵Y中对应的隐私数据,例如,哈希码在预设的索引矩阵中的位置为第i行第j列,则该哈希码对应的隐私数据为结果矩阵Y中第i行第j列的数据。
步骤104:根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
具体地,对每个索引序列的加密查询结果进行解密计算,保证仅能够解开对应的数据查询请求对应的位置Xij,Xi’j’的值Yij,Yi’j’。
举例来说,可以使用CPIR协议验证返回结果v是m1的QR还是QNR;v为QR,则Yij是0,否则是1。
为了提高预设的索引矩阵的可靠性,进而提高匿踪查询的可靠性,参见图2,在本申请一个实施例中,在步骤101之前,还包括:
步骤201:接收数据提供方发送的批量查询对象唯一标识各自的哈希码。
具体地,所述数据提供方可以预先存储批量查询对象唯一标识及其各自对应的隐私数据;批量查询对象唯一标识中包含有目标查询对象唯一标识。
步骤202:根据预设的第一分类规则将批量查询对象唯一标识各自的哈希码划分为多类哈希码类。
具体地,所述预设的分类规则可以是将前x位相同的哈希码归为一类,x可以根据实际需要设置,或者按中间某几位排序甚至随机等。
步骤203:根据各类哈希码类,构建所述预设的索引矩阵;所述哈希码组和预设的索引矩阵中的列一一对应。
具体地,所述预设的索引矩阵中的每个位置对应唯一的哈希码。
举例来说,数据提供方发送所有哈希码至匿踪查询装置,由匿踪查询装置按照某种自定义的方式(例如按hash码前几位,或按中间某几位排序,甚至随机)对这些哈希码进行分组,最终形成一个n×n的二维矩阵X;假设数据库全部记录条数为m,那么n≥m1/2,该矩阵就可以存储m个hash码,如64条记录可以构造8×8的矩阵,即哈希码Xij存储在矩阵的第i行,第j列,(0≤i,j<n)。
为了避免数据提供方获知目标查询对象唯一标识,提高匿踪查询过程中数据查询方的隐私安全,参见图3,在本申请一个实施例中,步骤102所述的从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,包括:
步骤301:从所述预设的索引矩阵中除所述目标列之外的列中随机选取至少一列确定为所述混淆列。
步骤302:生成所述目标列和混淆列各自对应的索引序列,其中,每列索引序列的位数与目标列的位数相同,所述目标位置对应在索引序列中的位置填充模为预获取的随机数的非二次剩余,索引序列中的剩余位置均填充模为预获取的随机数的二次剩余。
步骤303:根据所述目标列对应的列号、预获取的随机数、索引序列、所述混淆列对应的列号、预获取的随机数和索引序列,生成多个匿踪查询请求。
具体地,通过加入混淆列,可以增加隐私性;考虑极端情况,假如数据库中数据量极小,则较容易根据查询列,猜出要查的数据是哪条,增加混淆列减少这种可能。
参见图4,为了避免加解密时无法定位的问题,在本申请一个实施例中,在步骤102所述的判断各个数据查询请求对应的目标列是否均不同之后,还包括:
步骤401:若存在多个数据查询请求对应的目标列相同,则将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同。
具体地,同一组中的多个哈希码所属的目标列均不同;若存在多个数据查询请求对应的目标列相同并且按照预设个数的分类规则分别重新构建所述预设的索引矩阵之后,仍存在多个数据查询请求对应的目标列相同,则可以将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同;所述预设个数的分类规则可以根据实际需要进行设置。
步骤402:针对每组哈希码组,从所述预设的索引矩阵中选取混淆列,根据所述哈希码组对应的目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列。
步骤403:将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果。
步骤404:根据每个匿踪查询请求对应的加密查询结果和所述哈希码组对应的目标位置,确定所述哈希码组对应的每个数据查询请求的目标隐私数据并输出。
为了避免加解密时无法定位的问题,在本申请一个实施例中,在步骤102所述的从所述预设的索引矩阵中选取混淆列之前,还包括:若存在多个数据查询请求对应的目标列相同,则根据预设的第二分类规则和批量查询对象唯一标识各自的哈希码,重新构建所述预设的索引矩阵,各个数据查询请求在重新构建后的索引矩阵中对应的目标列均不同。
具体地,第一分类规则和第二分类规则为不同的分类规则,假设第一分类规则为将前x位相同的哈希码归为一类;第二分类规则可以是按中间某几位排序甚至随机分类等;接下来可以从重新构建后的索引矩阵中选取混淆列。
为了进一步说明本方案,本申请提供一种匿踪查询方法的应用实例,具体描述如下:
以金融行业黑名单查询的场景为例;通常金融机构都维护了自己的客户黑名单,用于信贷风控等业务领域;假设金融机构对外提供黑名单查询服务,其他一些机构希望查询某客户是否在黑名单中,但不希望被获知具体查询的是哪个人,因为通过这些查询信息本身也是商业机密的一部分。
1.准备阶段(线下):
1)对检索索引进行hash编码脱敏;例如,客户ID列转换为对应的128位哈希码,保证整个查询过程中不会传递ID的明文信息;这里三方应统一哈希编码方案,如md5、SHA1等常见哈希编码方法都可以使用。首先,将数据库中的所有索引转换为哈希编码,例如,将客户的18位身份证号转换为一串哈希码(如:ID:11010819900702****=>b9944e9367d2e40dd1f0c404********),哈希码无法复原,因此无法通过算法恢复原始身份证号。
2)可信第三方T与数据库端(数据提供方)S协商构造索引哈希码的矩阵分组方案。可以选择如下的方案:首先数据库端S发送所有的哈希码给T,由T按照某种自定义的方式(例如,按哈希码前几位,或按中间某几位排序,甚至随机)对这些哈希码进行分组,最终形成一个n×n的二维矩阵X。假设,数据库端全部记录条数为m,那么n≥m1/2,该矩阵就可以存储所有m个哈希码,如,64条记录可以构造8×8的矩阵。如图5所示,即哈希码Xij存储在索引矩阵的第i行,第j列(0≤i,j<n)。
3)可信第三方T与数据库端S同步已构造好的索引矩阵X;即T和S本地存储同一份矩阵;对某个索引的哈希码的查询可简化为对索引矩阵(i,j)的请求,这样以后的请求只要传递2个整数i,j的值即可。
2.查询阶段:
1)数据查询方对需要请求的索引ID先进行哈希编码脱敏;与数据库端的算法相同,即能够保证同样的ID转换后的哈希码也是相同的。
数据查询方:向可信第三方发送查询检索请求,获取加密查询结果;例如,在黑名单查询中,数据查询方发送用户ID号(身份证等唯一标识符)作为检索索引项,返回结果值为1或0,代表该用户是否在黑名单中;数据查询方可以有多个。
2)数据查询方发送请求给可信第三方T;例如,数据查询方A请求Ca,数据查询方B请求Cb。
3)T接收请求Ca,Cb,如图6所示,假设Ca请求的查询索引是Xij,Cb请求的查询索引是Xi’j’;即对应索引矩阵中的位置是(i,j)和(i’,j’),T在本地保留原始请求。
4)T将这2个请求重新打包,打包过程如下:
a.优化分组方案,动态构造矩阵;首先,通过试算,判断本次请求所涉及的所有索引Xij,Xi’j’是否会分在同一组,如果有同组的索引,用其他分组方案能否分在不同组(矩阵的不同列),寻找到一种分散分组的方案,将请求对应在不同列,可以避免出现加解密时无法定位的问题;如图7所示,对于存在更多数据索引的无法分散的情况,则分解成多个请求来打包,寻找到一种索引最优分散的方案。如图8所示,假设,原本Xij,Xi’j’分到了同一列j+,通过试算,寻找到更优的方案,将Xij,Xi’j’分到2列。此时,T按新方案重新构造分组矩阵,并同步新的分组方案给S,数据方S更新本地的矩阵。
如图9所示,动态构建索引矩阵的过程可以包含有:步骤91:判断同分组请求索引的个数是否大于1,步骤92:若同分组请求索引的个数大于1,则判断所有分组方案是否已试完,步骤93:若所有分组方案已试完,则把请求索引平分成2组,形成2个新的请求,返回步骤11重新计算分组;步骤94:若同分组请求索引的个数小于等于1,则按分组方案构建T本地矩阵;步骤95:同步新分组方案给S;步骤96:S按照更新分组方案构建本地矩阵。
b.随机选取1到n/2个混淆列加入;例如,随机选取第j*列作为混淆数据列。
c.分别对索引所在列和混淆列,例如,第j列、第j’列、第j*列这3列运行某种PIR协议,生成加密的查询数据;这里不限制基础PIR协议的具体方案;下面以应用典型的CPIR协议为例,描述新请求的打包过程。
d.针对(j,j’,j*)中的每一列,生成对应的随机数(m1,m2,m3),再生成m1,m2,m3对应的随机n维序列;其中,非真实请求所在的位置填充模m的QR值a(二次剩余),真实请求所在位置填充模m的QNR值b(非二次剩余),组合成3组n维的序列:U、U’、U*。
例如:对于第j列,生成n-1个模m1的QR值(a1,...ai-1,ai+1,...)序列,其中,任意a满足:存在一个整数x,x2 mod m1=a;生成1个模m1的QNR值bi,其中,b满足:不存在一个整数x,x2 mod m1=b;最后组合成的序列是U=(a1,...ai-1,bi,ai+1,...)同理生成U’、U*;如图10所示,相当于索引矩阵中,真实请求所在位置填充b类型(QNR)数,非真实请求所在的位置填充a类型(QR)数,生成U,U’,U*。
e.最终形成的批量数据请求Q,每一列都对应一个三元组;T发送这个请求给S,Q={(j,m1,U),(j’,m2,U’),(j*,m3,U*)}。
5)数据库端S接收请求Q,并在本地的存储的结果矩阵上对相应的列做PIR运算,形成加密的结果V。
a.首先,S从收到的请求Q中,分解出需要计算的列j,j’,j*,对本地存储结果数据矩阵Y相应的列(j,j’,j*)做某种PIR协议规定的运算。以CPIR为例:
c.通过在这3列上的运算得到对应3个结果值:v,v’,v*。
d.S返回结果(v,v’,v*)给T。
6)T接收到S返回的结果后,进行解密计算,保证仅能解开对应请求索引位置Xij,Xi’j’的值。例如,使用CPIR协议,T对返回结果v验证是m1的QR还是QNR;v为QR,则Xij是0,否则是1。
3.结果分发阶段:
T对解密后的结果按照原始查询请求分解,分发给不同的查询方。
1)T查找到结果Xij,Xi’j’对应的原数据请求对应关系Ca,Cb;
2)T将结果Xij分发给Ca的数据请求方A,将结果Xi’j’分发给Cb的数据请求方B。
4.计费阶段:
1)T统计本次加密查询结果条数,按照请求方记录入库。
2)数据库端S可向T请求查询次数、使用数据条数,作为计费依据。
5.更新阶段:当数据库端S有数据更新时,对本地索引矩阵加锁,做更新操作并和可信第三方T同步,解锁。
为了进一步说明本方案,参见图11,本申请提供一种匿踪查询方法的应用实例,具体描述如下:
数据查询方发送多个数据查询请求,数据查询请求可以是由哈希码组成的,也可以是明文数据查询请求;可信第三方执行请求预处理;可信第三方执行请求匿踪处理;可信第三方执行数据查询请求发送;数据提供方执行匿踪检索处理;可信第三方执行响应接收和处理;可信第三方执行结果分发;可信第三方执行查询统计;数据查询方接收多个明文查询结果;同时,数据提供方预先构建索引矩阵及其对应的结果矩阵,可信第三方同步索引矩阵;当同分组请求数大于1时,可信第三方重构索引矩阵,数据提供方同步重构后的索引矩阵并构建其对应的结果矩阵。
从软件层面来说,为了保证数据查询方的隐私性,同时提高匿踪查询的效率,本申请提供一种用于实现所述匿踪查询方法中全部或部分内容的匿踪查询装置的实施例,参见图12,所述匿踪查询装置具体包含有如下内容:
接收模块10,用于接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成;
判断模块20,用于判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
查询模块30,用于将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
第一确定模块40,用于根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
参见图13,在本申请一个实施例中,所述匿踪查询装置还包括:
接收哈希码模块50,用于接收数据提供方发送的批量查询对象唯一标识各自的哈希码;
分类模块60,用于根据预设的第一分类规则将批量查询对象唯一标识各自的哈希码划分为多类哈希码类;
生成模块70,用于根据各类哈希码类,构建所述预设的索引矩阵;其中,所述哈希码组和预设的索引矩阵中的列一一对应。
在本申请一个实施例中,所述判断模块,包括:
选取单元,用于从所述预设的索引矩阵中除所述目标列之外的列中随机选取至少一列确定为所述混淆列;
填充单元,用于生成所述目标列和混淆列各自对应的索引序列,其中,每列索引序列的位数与目标列的位数相同,所述目标位置对应在索引序列中的位置填充模为预获取的随机数的非二次剩余,索引序列中的剩余位置均填充模为预获取的随机数的二次剩余;
生成单元,用于根据所述目标列对应的列号、预获取的随机数、索引序列、所述混淆列对应的列号、预获取的随机数和索引序列,生成多个匿踪查询请求。
在本申请一个实施例中,所述的匿踪查询装置,还包括:
划分模块,用于若存在多个数据查询请求对应的目标列相同,则将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同;
生成模块,用于针对每组哈希码组,从所述预设的索引矩阵中选取混淆列,根据所述哈希码组对应的目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
查询模块,用于将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
第二确定模块,用于根据每个匿踪查询请求对应的加密查询结果和所述哈希码组对应的目标位置,确定所述哈希码组对应的每个数据查询请求的目标隐私数据并输出。
本说明书提供的匿踪查询装置的实施例具体可以用于执行上述匿踪查询方法的实施例的处理流程,其功能在此不再赘述,可以参照上述匿踪查询方法实施例的详细描述。
由上述描述可知,本申请提供的匿踪查询方法及装置,能够保证数据查询方的隐私性,同时能够提高匿踪查询的效率,有利于隐私保护和数据使用计费;有利于构建统一规范、互联互通、安全可控的数据开放平台,提升运用数据服务经济社会发展的能力;对数据使用方,提供匿踪查询中间服务,减少数据使用方的技术成本和压力。
从硬件层面来说,为了保证数据查询方的隐私性,同时提高匿踪查询的效率,本申请提供一种用于实现所述匿踪查询方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述匿踪查询装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述匿踪查询方法的实施例及用于实现所述匿踪查询装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图14为本申请实施例的电子设备9600的系统构成的示意框图。如图14所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图14是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,匿踪查询功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤101:接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成。
步骤102:判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列。
步骤103:将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果。
步骤104:根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
从上述描述可知,本申请的实施例提供的电子设备,能够保证数据查询方的隐私性,同时提高匿踪查询的效率。
在另一个实施方式中,匿踪查询装置可以与中央处理器9100分开配置,例如可以将匿踪查询装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现匿踪查询功能。
如图14所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图14中所示的所有部件;此外,电子设备9600还可以包括图14中没有示出的部件,可以参考现有技术。
如图14所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够保证数据查询方的隐私性,同时提高匿踪查询的效率。
本申请的实施例还提供能够实现上述实施例中的匿踪查询方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的匿踪查询方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤101:接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成。
步骤102:判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列。
步骤103:将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果。
步骤104:根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够保证数据查询方的隐私性,同时提高匿踪查询的效率。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种匿踪查询方法,其特征在于,包括:
接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成;
判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
2.根据权利要求1所述的匿踪查询方法,其特征在于,还包括:
接收数据提供方发送的批量查询对象唯一标识各自的哈希码;
根据预设的第一分类规则将批量查询对象唯一标识各自的哈希码划分为多类哈希码类;
根据各类哈希码类,构建所述预设的索引矩阵;
所述哈希码组和预设的索引矩阵中的列一一对应。
3.根据权利要求1所述的匿踪查询方法,其特征在于,所述从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,包括:
从所述预设的索引矩阵中除所述目标列之外的列中随机选取至少一列确定为所述混淆列;
生成所述目标列和混淆列各自对应的索引序列,其中,每列索引序列的位数与目标列的位数相同,所述目标位置对应在索引序列中的位置填充模为预获取的随机数的非二次剩余,索引序列中的剩余位置均填充模为预获取的随机数的二次剩余;
根据所述目标列对应的列号、预获取的随机数、索引序列、所述混淆列对应的列号、预获取的随机数和索引序列,生成多个匿踪查询请求。
4.根据权利要求1所述的匿踪查询方法,其特征在于,在所述判断各个数据查询请求对应的目标列是否均不同之后,还包括:
若存在多个数据查询请求对应的目标列相同,则将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同;
针对每组哈希码组,从所述预设的索引矩阵中选取混淆列,根据所述哈希码组对应的目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
根据每个匿踪查询请求对应的加密查询结果和所述哈希码组对应的目标位置,确定所述哈希码组对应的每个数据查询请求的目标隐私数据并输出。
5.根据权利要求1所述的匿踪查询方法,其特征在于,在所述从所述预设的索引矩阵中选取混淆列之前,还包括:
若存在多个数据查询请求对应的目标列相同,则根据预设的第二分类规则和批量查询对象唯一标识各自的哈希码,重新构建所述预设的索引矩阵,各个数据查询请求在重新构建后的索引矩阵中对应的目标列均不同。
6.一种匿踪查询装置,其特征在于,包括:
接收模块,用于接收批量数据查询请求,确定每个数据查询请求在预设的索引矩阵中对应的目标列和目标位置,每个数据查询请求包括:目标查询对象唯一标识的目标哈希码,所述预设的索引矩阵由多个查询对象唯一标识各自的哈希码组成;
判断模块,用于判断各个数据查询请求对应的目标列是否均不同,若是,则从所述预设的索引矩阵中选取混淆列,根据所述目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
查询模块,用于将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
第一确定模块,用于根据每个匿踪查询请求对应的加密查询结果和每个目标位置,确定每个数据查询请求对应的目标隐私数据并输出。
7.根据权利要求6所述的匿踪查询装置,其特征在于,还包括:
接收哈希码模块,用于接收数据提供方发送的批量查询对象唯一标识各自的哈希码;
分类模块,用于根据预设的第一分类规则将批量查询对象唯一标识各自的哈希码划分为多类哈希码类;
生成模块,用于根据各类哈希码类,构建所述预设的索引矩阵;
其中,所述哈希码组和预设的索引矩阵中的列一一对应。
8.根据权利要求6所述的匿踪查询装置,其特征在于,所述判断模块,包括:
选取单元,用于从所述预设的索引矩阵中除所述目标列之外的列中随机选取至少一列确定为所述混淆列;
填充单元,用于生成所述目标列和混淆列各自对应的索引序列,其中,每列索引序列的位数与目标列的位数相同,所述目标位置对应在索引序列中的位置填充模为预获取的随机数的非二次剩余,索引序列中的剩余位置均填充模为预获取的随机数的二次剩余;
生成单元,用于根据所述目标列对应的列号、预获取的随机数、索引序列、所述混淆列对应的列号、预获取的随机数和索引序列,生成多个匿踪查询请求。
9.根据权利要求6所述的匿踪查询装置,其特征在于,还包括:
划分模块,用于若存在多个数据查询请求对应的目标列相同,则将所述目标哈希码划分为多个哈希码组,每组哈希码组中的哈希码所属的目标列均不同;
生成模块,用于针对每组哈希码组,从所述预设的索引矩阵中选取混淆列,根据所述哈希码组对应的目标列和混淆列各自对应的预获取的随机码,生成多个匿踪查询请求,每个匿踪查询请求包括:唯一对应的列号、预获取的随机码和索引序列;
查询模块,用于将各个匿踪查询请求发送至数据提供方,以接收该数据提供方发送的各个匿踪查询请求各自对应的加密查询结果;
第二确定模块,用于根据每个匿踪查询请求对应的加密查询结果和所述哈希码组对应的目标位置,确定所述哈希码组对应的每个数据查询请求的目标隐私数据并输出。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述的匿踪查询方法。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至5任一项所述的匿踪查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210602612.2A CN114860735A (zh) | 2022-05-30 | 2022-05-30 | 匿踪查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210602612.2A CN114860735A (zh) | 2022-05-30 | 2022-05-30 | 匿踪查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860735A true CN114860735A (zh) | 2022-08-05 |
Family
ID=82642029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210602612.2A Pending CN114860735A (zh) | 2022-05-30 | 2022-05-30 | 匿踪查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860735A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858914A (zh) * | 2022-11-10 | 2023-03-28 | 星环信息科技(上海)股份有限公司 | 一种匿踪查询方法、装置、系统、终端设备及存储介质 |
CN115936891A (zh) * | 2023-01-28 | 2023-04-07 | 中债金科信息技术有限公司 | 金融数据检索方法及装置、存储介质及电子设备 |
CN116188232A (zh) * | 2023-04-19 | 2023-05-30 | 北京数牍科技有限公司 | 一种名单查询方法、装置、设备、介质及产品 |
CN116383252A (zh) * | 2023-03-21 | 2023-07-04 | 京信数据科技有限公司 | 基于隐匿查询的联邦规则引擎处理方法及装置 |
CN116502254A (zh) * | 2023-06-29 | 2023-07-28 | 极术(杭州)科技有限公司 | 可查得统计的匿踪查询方法及装置 |
CN116502276A (zh) * | 2023-06-29 | 2023-07-28 | 极术(杭州)科技有限公司 | 匿踪查询方法及装置 |
CN116821461A (zh) * | 2023-08-28 | 2023-09-29 | 云阵(杭州)互联网技术有限公司 | 资源查询方法以及装置 |
CN117077209A (zh) * | 2023-10-16 | 2023-11-17 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117171202A (zh) * | 2023-08-18 | 2023-12-05 | 北京海泰方圆科技股份有限公司 | 一种数据查询方法及装置 |
-
2022
- 2022-05-30 CN CN202210602612.2A patent/CN114860735A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858914A (zh) * | 2022-11-10 | 2023-03-28 | 星环信息科技(上海)股份有限公司 | 一种匿踪查询方法、装置、系统、终端设备及存储介质 |
CN115936891A (zh) * | 2023-01-28 | 2023-04-07 | 中债金科信息技术有限公司 | 金融数据检索方法及装置、存储介质及电子设备 |
CN116383252B (zh) * | 2023-03-21 | 2023-11-07 | 京信数据科技有限公司 | 基于隐匿查询的联邦规则引擎处理方法及装置 |
CN116383252A (zh) * | 2023-03-21 | 2023-07-04 | 京信数据科技有限公司 | 基于隐匿查询的联邦规则引擎处理方法及装置 |
CN116188232A (zh) * | 2023-04-19 | 2023-05-30 | 北京数牍科技有限公司 | 一种名单查询方法、装置、设备、介质及产品 |
CN116502254A (zh) * | 2023-06-29 | 2023-07-28 | 极术(杭州)科技有限公司 | 可查得统计的匿踪查询方法及装置 |
CN116502276A (zh) * | 2023-06-29 | 2023-07-28 | 极术(杭州)科技有限公司 | 匿踪查询方法及装置 |
CN116502276B (zh) * | 2023-06-29 | 2023-09-12 | 极术(杭州)科技有限公司 | 匿踪查询方法及装置 |
CN116502254B (zh) * | 2023-06-29 | 2023-09-19 | 极术(杭州)科技有限公司 | 可查得统计的匿踪查询方法及装置 |
CN117171202A (zh) * | 2023-08-18 | 2023-12-05 | 北京海泰方圆科技股份有限公司 | 一种数据查询方法及装置 |
CN116821461A (zh) * | 2023-08-28 | 2023-09-29 | 云阵(杭州)互联网技术有限公司 | 资源查询方法以及装置 |
CN116821461B (zh) * | 2023-08-28 | 2023-12-12 | 云阵(杭州)互联网技术有限公司 | 资源查询方法以及装置 |
CN117077209A (zh) * | 2023-10-16 | 2023-11-17 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117077209B (zh) * | 2023-10-16 | 2024-02-23 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114860735A (zh) | 匿踪查询方法及装置 | |
Giacomelli et al. | Privacy-preserving ridge regression with only linearly-homomorphic encryption | |
US20190394175A1 (en) | Systems and methods for permissioned blockchain infrastructure with fine-grained access control and confidentiality-preserving publish/subscribe messaging | |
US8898478B2 (en) | Method for querying data in privacy preserving manner using attributes | |
Gao et al. | BSSPD: A Blockchain‐Based Security Sharing Scheme for Personal Data with Fine‐Grained Access Control | |
CN112183765B (zh) | 一种用于共享学习的多源多模态数据预处理方法及系统 | |
CN111428887B (zh) | 一种基于多个计算节点的模型训练控制方法、装置及系统 | |
CN112131227A (zh) | 一种基于联盟链的数据查询方法及装置 | |
CN114329527A (zh) | 交集数据获取方法、设备和系统 | |
CN115269938B (zh) | 基于同态加密的关键词匿踪查询方法、系统及相关装置 | |
WO2021009528A1 (en) | Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium | |
Gahi et al. | Privacy preserving scheme for location-based services | |
Hou et al. | Multi‐Party Verifiable Privacy‐Preserving Federated k‐Means Clustering in Outsourced Environment | |
Gao et al. | BFR‐SE: A Blockchain‐Based Fair and Reliable Searchable Encryption Scheme for IoT with Fine‐Grained Access Control in Cloud Environment | |
CN115088005A (zh) | 使用安全mpc和向量计算来在内容分发中保护对信息的访问 | |
CN114116637A (zh) | 一种数据共享方法、装置、设备及存储介质 | |
CN116069957A (zh) | 一种信息检索方法、装置及设备 | |
Huynh et al. | A reliability guaranteed solution for data storing and sharing | |
CN117371010A (zh) | 数据匿踪查询方法、电子设备和可读存储介质 | |
CN117371011A (zh) | 数据隐匿查询方法、电子设备和可读存储介质 | |
Dittmer et al. | Streaming and unbalanced psi from function secret sharing | |
CN116010401A (zh) | 基于区块链与不经意传输扩展的信息匿踪查询方法及系统 | |
CN109815715A (zh) | 一种数据加密方法和相关装置 | |
CN113254989B (zh) | 目标数据的融合方法、装置和服务器 | |
Zhang et al. | Research on Covert Communication Technology Based on Matrix Decomposition of Digital Currency Transaction Amount |
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 |