CN114840866B - 基于盲签名数据混淆的数据查询方法、装置和系统 - Google Patents
基于盲签名数据混淆的数据查询方法、装置和系统 Download PDFInfo
- Publication number
- CN114840866B CN114840866B CN202210763525.5A CN202210763525A CN114840866B CN 114840866 B CN114840866 B CN 114840866B CN 202210763525 A CN202210763525 A CN 202210763525A CN 114840866 B CN114840866 B CN 114840866B
- Authority
- CN
- China
- Prior art keywords
- user
- data
- value
- list
- party
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
- 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
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3257—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Computational Linguistics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Power Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供基于盲签名数据混淆的数据查询方法、装置和系统,该方法包括:根据目标用户的身份标识,生成第一哈希值;对第一哈希值进行盲化处理,得到第一盲化值;截取第一哈希值的前n位,得到第二哈希值;生成会话标识;向被查询方发送查询请求,其携带第一盲化值、第二哈希值和会话标识;接收被查询方返回的第二盲化值和第二用户列表;第二盲化值是被查询方对第一盲化值进行签名后得到的;第二用户列表是由被查询方使用公钥对第一用户列表中的所有键进行加密得到的;对第二盲化值进行去盲化处理,得到第三盲化值;根据第三盲化值在第二用户列表中是否存在,确定目标用户在被查询方中是否存在。该方法可进行匿踪查询且最小限度泄漏信息。
Description
技术领域
本发明涉及隐私数据处理领域,具体涉及基于盲签名数据混淆的数据查询方法、装置和系统。
背景技术
在数据流通过程中,查询方向被查询方直接查询数据时,会产生数据的泄漏。
例如:银行在向个人(被查用户)放贷时需要验证用户三要素(姓名、手机号、身份证)信息的真实性,如银行通过运营商来验证三要素是否真实,直接查询的方式就是将这三项信息发送给运营商,运营商在自己的库里查询这三个信息是否真实存在。在以上过程中运营商就得知了这个用户在向某银行贷款,也即这个用户的信息产生了泄漏。
发明内容
有鉴于此,本发明实施例的目的在于提供基于盲签名数据混淆的数据查询方法、装置和系统,以在海量数据中进行匿踪查询,且最小限度泄漏用户信息。
为达上述目的,第一方面,本发明实施例提供了一种基于盲签名数据混淆的数据查询方法,所述方法应用于查询方,所述方法包括:
根据目标用户的身份标识,生成第一哈希值;
对所述第一哈希值进行盲化处理,得到第一盲化值;
截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;
生成会话标识;
向被查询方发送查询请求,其携带所述第一盲化值、所述第二哈希值和所述会话标识;
接收被查询方返回的第二盲化值和第二用户列表数据;其中,所述第二盲化值是被查询方对所述第一盲化值进行签名后得到的;所述第二用户列表数据是由被查询方使用公钥对第一用户列表数据中的所有键进行签名得到的,所述第一用户列表数据是指在被查询方的数据库中键的前缀为所述第二哈希值的数据;
对所述第二盲化值进行去盲化处理,得到第三盲化值;
根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
第二方面,本发明实施例提供了一种基于盲签名数据混淆的数据查询方法,所述方法应用于被查询方,所述方法包括:
接收查询方发送的查询请求,所述查询请求中携带第一盲化值、第二哈希值和会话标识;
从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
生成用于盲签名的公私钥对;
获取所述第一用户列表数据的键列表,使用生成的公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;
对所述第一盲化值进行签名,得到第二盲化值;
向查询方返回所述第二盲化值和所述第二用户列表数据。
第三方面,本发明实施例提供了一种基于盲签名数据混淆的数据查询方法,其包括:
查询方根据目标用户的身份标识,生成第一哈希值;
查询方对所述第一哈希值进行盲化处理,得到第一盲化值;
查询方截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;
查询方生成会话标识;
查询方向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
被查询方从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
被查询方生成用于盲签名的公私钥对;
被查询方获取所述第一用户列表数据的键列表,使用生成的公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;
被查询方对所述第一盲化值进行签名,得到第二盲化值;
被查询方向查询方返回所述第二盲化值和所述第二用户列表数据;
查询方对所述第二盲化值进行去盲化处理,得到第三盲化值;
查询方根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
第四方面,本发明实施例提供了一种基于盲签名数据混淆的数据查询装置,所述装置应用于查询方,所述装置包括:
哈希模块,用于根据目标用户的身份标识,生成第一哈希值;
盲化处理模块,用于对所述第一哈希值进行盲化处理,得到第一盲化值;
截取模块,用于截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;
会话标识生成模块,用于生成会话标识;
第一发送模块,用于向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
第一接收模块,用于接收被查询方返回的第二盲化值和第二用户列表数据;其中,所述第二盲化值是被查询方对所述第一盲化值进行签名后得到的;所述第二用户列表数据是由被查询方使用公钥对第一用户列表数据中的所有键进行签名得到的,所述第一用户列表数据是指在被查询方的数据库中键的前缀为所述第二哈希值的数据;
去盲化处理模块,用于对所述第二盲化值进行去盲化处理,得到第三盲化值;
用户确定模块,用于根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
第五方面,本发明实施例提供了一种基于盲签名数据混淆的数据查询装置,所述装置应用于被查询方,所述装置包括:
第二接收模块,用于接收查询方发送的查询请求,所述查询请求中携带第一盲化值、第二哈希值和会话标识;
数据库查询模块,用于从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
公私钥对生成模块,用于生成用于盲签名的公私钥对;
第二用户列表数据确定模块,用于获取所述第一用户列表数据的键列表,使用生成的公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;
签名模块,用于对所述第一盲化值进行签名,得到第二盲化值;
第二发送模块,用于向查询方返回所述第二盲化值和所述第二用户列表数据。
第六方面,本发明实施例提供了一种基于盲签名数据混淆的数据查询系统,其包括:
查询方,用于根据目标用户的身份标识,生成第一哈希值;对所述第一哈希值进行盲化处理,得到第一盲化值;截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;生成会话标识;向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
被查询方,用于从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;生成用于盲签名的公私钥对;获取所述第一用户列表数据的键列表,使用生成的公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;对所述第一盲化值进行签名,得到第二盲化值;向查询方返回所述第二盲化值和所述第二用户列表数据;
所述查询方,还用于对所述第二盲化值进行去盲化处理,得到第三盲化值;根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
第七方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任意一种所述的基于盲签名数据混淆的数据查询方法。
第八方面,本发明实施例提供了一种计算机设备,其包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上任意一种所述的基于盲签名数据混淆的数据查询方法。
上述技术方案具有如下有益效果:
本发明实施例基于可交换加密算法实现目标用户在被查方是否存在的功能。在此过程中双方分别对己方数据及对方数据进行加密,最终查看目标用户是否在被查询方中存在,若被查用户在被查询方不存在,则被查询方无法推测被查用户信息,从而实现了在海量数据中进行匿踪查询,并且最小限度泄漏用户信息。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的由查询方执行的基于盲签名数据混淆的数据查询方法的流程图;
图2是本发明实施例的由被查询方执行的基于盲签名数据混淆的数据查询方法的流程图;
图3是本发明实施例的由系统执行的一种基于盲签名数据混淆的数据查询方法的整体流程图;
图4是本发明实施例的由系统执行的另一种基于盲签名数据混淆的数据查询方法的整体流程图;
图5是本发明实施例的用户画像查询过程被查询方数据生成示意图;
图6是本发明实施例的盲签名的原理框图;
图7是本发明实施例的一种应用于查询方的基于盲签名数据混淆的数据查询装置的功能框图;
图8是本发明实施例的一种应用于被查询方的基于盲签名数据混淆的数据查询装置的功能框图;
图9是本发明实施例的一种计算机可读存储介质的功能框图;
图10是本发明实施例的一种计算机设备的功能框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例通过OT(不经意传输,Oblivious Transfer)和盲签名查询方式在海量数据中实现匿踪查询,最低限度的减少数据泄漏。海量数据是指被查方用户量级在10亿或以上,由于数据量会影响技术的可行性,海量数据的支持说明本发明实施例具有良好的可行性。
本发明实施例的技术方案涉及如下三类对象:
被查用户(目标用户):指个人或企业等社会实体;
查询方:因受理被查用户的某些业务,由于自身数据不完备需要向第三方机构查询用户数据的机构或企业;
被查询方:具有某些被查用户的特定数据,向查询方提供被查用户信息的机构或企业。
在一个举例的应用场景中,上述三类对象可以包括:
被查询用户(或目标用户):个人,例如其向银行申请贷款;
查询方:银行,由于需要确认用户违约风险,所以需要外部数据补充;
被查询方:运营商,其向银行提供特定用户的通话及相关画像信息。
在本发明实施例中,查询的输入可以包括:查询方通过被查用户的标识信息的哈希码来从被查询方获取数据;查询的输出(被查询方向查询方提供的信息)可以包括:目标用户是否存在;或者,目标用户是否存在和目标用户的用户画像数据。
在一个实施例中,查询方使用可交换加密算法确定在被查方库中是否存在目标用户。在另一个实施例中,查询方确定目标用户存在后,使用OT(N选1不经意传输)技术从被查询方获得目标用户的用户画像信息。
关于盲签名算法:
本发明实施例中采用盲签名技术来实现查询的目标用户在被查方库中是否存在。盲签名在本发明实施例中用来保证如果目标用户在被查方不存在,被查询方无法推测目标用户。同时查询方也无法推测被查方存在哪些其他用户。
盲签名处理流程:
一般签名过程的角色只有一个签名者,但是盲签名中不能是同一个角色,因为原始消息必须由另外一个提供者进行盲化处理,称为签名消息的接收者。参阅图6,总体过程如下:
(1)接收者首先将待签数据或消息(Message)进行盲变换,即执行消息盲化,把变换后的盲数据(Message’)发给签名者;
(2)经签名者签名后再将产生的签名S’发给接收者;
(3)接收者对签名S’再作去盲变换,即执行消息去盲化,得出的便是签名者对原数据的盲签名或原始签名S。
流程上要保证满足盲签名的两条性质,必须使签名者事后看到盲签名时不能与盲数据联系起来。
RSA盲签名原理:
假设A是接收者,B是签名者,私钥d,并公开RSA公钥(n,e),A让B盲签消息m,处理流程如下:
(1)接收者A选取盲因子r,计算得到m' :m' = m*re mod n;
(2)签名者B对m'进行签名得到m'd:m'd= (m*re mod n)d mod n;
(3)接收者A对m'd去盲得到原始签名S:
S = m'd * r-1 = (m*re mod n)d mod n * r-1 = md mod n。
关于OT(N选1不经意传输):
通过不经意传输OT,从被查询方的多条信息中获取命中的一条数据。在本发明实施例中,在查询方确定目标用户在被查询方存在时,用来获取目标用户的用户画像。此技术可以保障查询方只能获得n条数据中想要的一条,而不能推测其他任何一条。并且被查询方只能在n条中按概率猜测目标用户,也即如果n=100,那么被查方只有1%的概率可以猜到目标用户是谁。实现原理请参考:Brassard G, C Crépeau, Robert J M. All or NothingDisclosure of Secrets. Advances in Cryptology — CRYPTO’ 86, 1986。
实施例一
图1是本发明实施例的由查询方执行的基于盲签名数据混淆的数据查询方法的流程图。如图1所示,其包括如下步骤:
S101:根据目标用户的身份标识,生成第一哈希值;
具体地,目标用户的身份标识可以包括用户的移动通信终端号码、身份证号、护照号等身份证明标识中的任意一个或者任意多个构成的组合。本步骤可基于信息摘要算法生成第一哈希值。信息摘要算法包括但不限于md5算法。
S102:对所述第一哈希值进行盲化处理,得到第一盲化值;
S103:截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;
具体地,在此过程中查询方提供的md5的前n位,有利于缩小目标用户量。由于md5有很强的分散性,所以被查询方获得前n位值,并不能推算出目标用户。n的位数可以由查询方和被查询方共同确定,作为一个举例,n可以是6或7。
S104:生成会话标识;例如生成一个通用唯一识别码(Universally UniqueIdentifier,uuid)。
S105:向被查询方发送查询请求,其携带所述第一盲化值、所述第二哈希值和所述会话标识;
S106:接收被查询方返回的第二盲化值和第二用户列表数据;其中,所述第二盲化值是被查询方对所述第一盲化值进行签名后得到的;所述第二用户列表数据是由被查询方使用公钥对第一用户列表数据中的所有键进行签名得到的,所述第一用户列表数据是指在被查询方的数据库中键的前缀为所述第二哈希值的数据;
具体地,上述公钥可以为例如但不限于RSA公钥。
以下描述基于RSA的盲签名实现过程:
假设A是接收者,B是签名者,私钥d,并且公开RSA公钥(n,e) ,接收者A让签名者B盲签消息m,具体处理流程如下:
(1)接收者A选取盲因子r,计算得到m' :m' = m*re mod n;
(2)签名者B对m'进行签名得到m'd:m'd= (m*re mod n)d mod n;
(3)接收者A对m'd去盲得到原始签名S:
S = m'd * r-1 = (m*re mod n)d mod n * r-1 = md mod n。
其中m'为本发明实施例中的第一盲化值,m'd为第二盲化值。
S107:对所述第二盲化值进行去盲化处理,得到第三盲化值;
S108:根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
具体地,当所述第三盲化值在所述第二用户列表数据中存在时,确定所述目标用户在被查询方中存在;当所述第三盲化值在所述第二用户列表数据中不存在时,确定所述目标用户在被查询方中不存在。
在进一步的实施例中,所述的方法还可以包括如下步骤:
当所述第三盲化值在所述第二用户列表数据中存在时,确定所述第三盲化值在所述第二用户列表数据中的索引号;
向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
接收所述被查询方返回的公钥列表;
从所述公钥列表中确定对应于所述索引号的目标公钥;
生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;
向被查询方发送所述会话标识和所述随机数加密值;
接收所述被查询方返回的用户画像异或值列表;
从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
上述技术方案的优点在于:
能够在海量数据(被查询方被查数据量在10亿或以上)中进行匿踪查询,且最小限度泄漏用户信息。
若被查询用户在被查询方不存在,则被查询方无法推测被查询用户信息;
在获取目标用户画像时,则被查询方只能在较大范围内猜测被查询用户是谁;
查询方除了能得到被查询用户信息外,无法得知任何其他用户信息。
实施例二
图2是本发明实施例的由被查询方执行的基于盲签名数据混淆的数据查询方法的流程图。如图2所示,其包括如下步骤:
S201:接收查询方发送的查询请求,所述查询请求中携带第一盲化值、第二哈希值和会话标识;
S202:从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
S203:生成用于盲签名的公私钥对;具体地,本步骤可以但不限于根据RSA算法生成RSA公私钥对;
S204:取所述第一用户列表数据的键(key)列表,使用生成的公钥对键列表中的所有键进行签名,得到第二用户列表数据;
S205:对所述第一盲化值进行签名,得到第二盲化值;
S206:向查询方返回所述第二盲化值和所述第二用户列表数据。
在进一步的实施例中,所述方法还可以包括如下步骤:
按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
接收查询方发送的针对目标用户的用户画像查询请求,其携带所述会话标识;
根据所述会话标识从数据库中查找到所述第三用户列表数据;
统计所述第三用户列表数据的列表长度,根据所述列表长度生成公私钥对列表,从所述公私钥对列表中取出公钥列表;其中,所述公钥列表中包括与所述列表长度数量相等的多个公钥;
向查询方返回所述公钥列表;
接收查询方发送的所述会话标识和随机数加密值;其中,所述随机数加密值是查询方从被查询方返回的公钥列表中取出对应位置的目标公钥,使用所述目标公钥对随机数进行加密而得到的;
采用对应的多个私钥分别解密所述随机数加密值,得到随机数解密值列表;
查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序相同的数据一一对应地执行异或,得到用户画像异或值列表;
向查询方返回用户画像异或值列表。
实施例三
图3是本发明实施例由系统执行的一种基于盲签名数据混淆的数据查询方法的整体流程图。如图3所示,其包括如下步骤:
S1:查询方根据用户身份标识生成目标用户key,其是指示用户身份的哈希值M。
哈希值M是用于标识用户身份的唯一标识的hash值;用户身份标识可以是手机号或者身份证号。相关计算公式如下:key=md5 hash(mobile|IdNo)。
在本发明实施例中,可以采用md5对查询key进行hash,以进行原始key值的散列与脱敏;md5算法的优点在于:不论输入数据长度,均可以以统一长度输出最终hash值;具有良好的分散性,即两个相近的输入,输出完全无规则可循。
S2:查询方对M进行盲化处理,得到D1,D1是对消息进行盲化处理的结果。
S3:查询方截取哈希值M的前n位,得到P。
其中,作为一个举例,n可以是6或7。
在此过程中查询方提供的md5的前n位,以缩小目标用户量。由于md5有很强的分散性,所以被查询方获得前n位值,并不能推算出目标用户;
n的位数可以由双方确定,由于md5的分散性,所以在确定数据量上不同n值能查到的数据条数比较稳定,最多条数与平均条数不会有特别大的差异;
以下为对随机生成的总量:1,047,220,755,共10亿个手机号md5前缀查询的统计:
表1:md5前缀查询统计表
位数 | 最大值 | 最小值 | 平均值 |
5 | 1157 | 851 | 999 |
6 | 109 | 24 | 62.4 |
7 | 19 | 1 | 4 |
8 | 7 | 1 | 1.27 |
9 | 4 | 1 | 1 |
10 | 3 | 1 | 1 |
根据表1统计,n=7(在10亿数据中前7位相同进行聚合统计)时平均值是4条,最多时返回19条,最少时返回1条。
S4:查询方生成唯一会话标识(sessionId),记为SId。
其中,这里可以生成的方法很多,例如生成一个通用唯一识别码(UniversallyUnique Identifier,uuid)。步骤S4的执行顺序不依赖于S1,S2,S3,S4可以在S1之前执行,或者S4位于S1与S2之间,或者位于S2与S3之间。
S5:查询方向被查询方发送查询请求,该查询请求中携带D1,P和SId。
S6:被查询方从数据库中查询key的前缀为P的用户列表数据L1。
在数据准备阶段,被查询方需要先将数据导入至数据库(例如key-value数据库)。以上文假设应用场景为例,查询方和被查询方以基于手机号确定的key进行查询,则被查询方应以手机号md5为key,其他数据为value进行存储。
假设运营商的数据格式如下:
Mobile:手机号;
Name:姓名;
Idno:身份证号;
Age:年龄;
Amount:消费金额;
则存储结构为:
key=md5(mobile)
Value={
"Mobile":"135......",
"Name":"李某某",
"Idno":"330......",
"Age":33,
"Amount":68
}。
作为海量被查数据的数据存储设备,例如:hbase。此类数据库可以支持良好的水平扩展而对性能影响较低,例如hbase在10亿级数据量级上而可以保持快速响应。
KV数据库可以提供基于key的快速查询;KV数据库可以提供快速的基于前缀的范围查询,例如可以快速查得key前缀为某字符串的所有数据。
S7:被查询方生成RSA公私钥对。
具体地,本步骤可以根据通用的RSA公私钥生成RSA公私钥对。
S8:被查询方获取用户列表数据L1的key值列表,使用上述生成的公钥对所有key进行签名,得到L2。
S9:被查询方按顺序保存所有用户列表数据L1,并与会话标识(sessionId)关联,得到关联后的数据L3。
S10:被查询方对查询方的盲化值D1进行签名,得到D2。
S11:被查询方向查询方返回D2和L2。
S12:查询方对盲化值D2执行去盲化处理(去盲变换),得到D3。
具体地,本步骤基于上述的RSA盲签名原理来执行,得到D3。
S13:查询方判断D3在L2中是否存在,以及D3在L2中的索引号IDX。
具体地,本步骤查询方在用户列表数据L2中查找D3是否存在,以及D3在用户列表数据L2中的序号IDX。
如果D3在L2中存在,则表示目标用户在被查询方中存在。本步骤返回的是一个列表,从而可以确定在返回的L2列表中D3在第几个。
查询的最终结论为:目标用户在被查方是否存在,以及在被查方结果列表中的索引号;在此过程中被查询方无法知道查询方目标用户是谁,同时查询方也无法知道返回的其他用户是谁。
图4是本发明实施例由系统执行的另一种基于盲签名数据混淆的数据查询方法的整体流程图。如图4所示,其包括如下步骤:
S14:查询方向被查询方发送会话标识(sessionId),以发起用户画像查询。
S15:被查询方根据会话标识(sessionId)从数据库中查找存储的列表L3。
S16:被查询方统计L3列表长度W,生成W个RSA公私钥对,取所有公钥构成公钥列表R:R=PUK_1~PUK_W。
S17:被查询方向查询方返回所有公钥列表R。
S18:查询方从公钥列表R中确定第IDX位公钥:PUK_IDX。
S19:查询方生成随机数x,并用PUK_IDX加密x得到随机数加密值M_IDX。
S20:查询方向被查询方发送会话标识(sessionId)和随机数加密值M_IDX。
再次发送sessionId是为了和上一次的查询关联起来。
S21:被查询方分别用对应的W个私钥分别解密随机数加密值M_IDX,得到随机数解密值列表,其包括W个随机数解密值E:E_1~E_W。
S22:被查询方查询L3关联的多个用户画像数据,并对每个用户画像数据做二进制转换,获得用户画像二进制数据列表,并且将该用户画像二进制数据列表并且与对应的E做异或,得到用户画像异或值列表或者加密用户画像列表RET。本步骤将在用户画像二进制数据列表中位置排序为第i位二进制用户画像值,与在随机数解密值列表中位置排序为第i位随机数解密值做异或。
图5是本发明实施例的用户画像查询过程被查询方数据生成示意图。如图5所示,以下详细举例描述具体处理过程:
在步骤S16,被查询方持有n个待查用户,构成用户列表数据;被查询方为每个用户相应地生成一对公私钥,公私钥对的数量与用户的数量相等。例如:为用户1生成一对公私钥对,其包括公钥1和私钥1;为用户2生成一对公私钥对,其包括公钥2和私钥2;依此类推,直到为用户n生成一对公私钥对,其包括公钥n和私钥n。在步骤S17,被查询方取出由所有公钥构成的公钥列表返回给查询方。
在步骤S21和步骤S22,被查询方在接收到查询方发送的随机数加密值后,被查询方针对每个用户,取该用户对应的私钥对该随机数加密值进行解密处理,得到相应的解密值;将每个用户对应的随机数解密值与该用户的用户画像二进制数据进行异或处理,相应地得到该用户对应的用户画像异或值;n个用户画像异或值构成用户画像异或值列表。例如,针对用户1,取私钥1对随机数加密值进行解密,得到随机数解密值1,将解密值1与用户1的画像二进制数据异或,生成异或值1;针对用户2,取私钥2对随机数加密值进行解密,得到随机数解密值2,将解密值2与用户2的画像二进制数据异或,生成异或值2;重复执行上述步骤,直到生成所有n个用户的异或值,并将其返回给查询方。
S23:被查询方向查询方返回用户画像异或值列表RET。
S24:查询方从用户画像异或值列表RET取出第IDX条数据,并将该第IDX条数据与随机数x进行异或,得到目标用户的用户画像数据。
图4所示的流程中为查询方确定目标用户在被查询方存在后,再次请求获取用户画像数据;本流程主要使用OT(不经意传输)方式从n条中获取1条;OT方式保证查询方只能获取其中一条有效记录;被查询方也无法知道在用户列表中谁是目标用户。
上述技术方案的优点在于:
能够在海量数据(被查询方被查数据量在10亿或以上)中进行匿踪查询,且最小限度泄漏用户信息。
若被查询用户在被查询方不存在,则被查询方无法推测被查询用户信息;
在获取目标用户画像时,则被查询方只能在较大范围内猜测被查询用户是谁;
查询方除了能得到被查询用户信息外,无法得知任何其他用户信息。
实施例四
图7是本发明实施例的一种应用于查询方的基于盲签名数据混淆的数据查询装置的功能框图。如图7所示,所述数据查询装置300包括:
哈希模块301,用于根据目标用户的身份标识,生成第一哈希值;
盲化处理模块302,用于对所述第一哈希值进行盲化处理,得到第一盲化值;
截取模块303,用于截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;
会话标识生成模块304,用于生成会话标识;
第一发送模块305,用于向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
第一接收模块306,用于接收被查询方返回的第二盲化值和第二用户列表数据;其中,所述第二盲化值是被查询方对所述第一盲化值进行签名后得到的;所述第二用户列表数据是由被查询方使用公钥对第一用户列表数据中的所有键进行签名得到的,所述第一用户列表数据是指在被查询方的数据库中键的前缀为所述第二哈希值的数据;
去盲化处理模块307,用于对所述第二盲化值进行去盲化处理,得到第三盲化值;
用户确定模块308,用于根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
在进一步的实施例中,所述数据查询装置300还可以包括:
索引号确定模块,用于当所述第三盲化值在所述第二用户列表数据中存在时,根据所述第三盲化值在所述第二用户列表数据中的序号,确定所述第三盲化值在所述第二用户列表数据中的索引号;
所述第一发送模块,还用于向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
所述第一接收模块,还用于接收所述被查询方返回的公钥列表;
目标公钥确定模块,用于从所述公钥列表中确定对应于所述索引号的目标公钥;
随机数加密值生成模块,用于生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;
所述第一发送模块,还用于向被查询方发送所述会话标识和所述随机数加密值;
所述第一接收模块,还用于接收所述被查询方返回的用户画像异或值列表;
用户画像数据确定模块,用于从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
实施例五
图8是本发明实施例的一种应用于被查询方的基于盲签名数据混淆的数据查询装置的功能框图。如图8所示,所述数据查询装置400包括:
第二接收模块401,用于接收查询方发送的查询请求,所述查询请求中携带第一盲化值、第二哈希值和会话标识;
数据库查询模块402,用于从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
公私钥对生成模块403,用于生成用于盲签名的公私钥对;
第二用户列表数据确定模块404,用于获取所述第一用户列表数据的键列表,使用上述生成的公钥对键列表中的所有键进行签名,得到第二用户列表数据;
签名模块405,用于对所述第一盲化值进行签名,得到第二盲化值;
第二发送模块406,用于向查询方返回所述第二盲化值和所述第二用户列表数据。
在进一步的实施例中,所述数据查询装置400还可以包括:
关联保存模块,用于按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
所述第二接收模块,还用于接收查询方发送的针对目标用户的用户画像查询请求,其携带所述会话标识;
数据库查询模块,用于根据所述会话标识从数据库中查找到所述第三用户列表数据;
公私钥对生成模块,用于统计所述第三用户列表数据的列表长度,根据所述列表长度生成公私钥对列表,从所述公私钥对列表中取出公钥列表;
所述第二发送模块,还用于向查询方返回所述公钥列表;
所述第二接收模块,还用于接收查询方发送的所述会话标识和随机数加密值;其中,所述随机数加密值是查询方从被查询方返回的公钥列表中取出对应位置的目标公钥,使用所述目标公钥对随机数进行加密而得到的;
解密模块,用于采用对应的多个私钥分别解密所述随机数加密值,得到随机数解密值列表;
用户画像数据处理模块,用于查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序相同的数据一一对应地执行异或,得到用户画像异或值列表;
所述第二发送模块,还用于向查询方返回用户画像异或值列表。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例六
本实施例提供一种基于盲签名数据混淆的数据查询系统,其包括:
查询方,用于根据目标用户的身份标识,生成第一哈希值;对所述第一哈希值进行盲化处理,得到第一盲化值;截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数;生成会话标识;向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
被查询方,用于从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;生成用于盲签名的公私钥对;获取所述第一用户列表数据的键列表,使用生成的公钥对键列表中的所有键进行签名,得到第二用户列表数据;对所述第一盲化值进行签名,得到第二盲化值;向查询方返回所述第二盲化值和所述第二用户列表数据;
所述查询方,还用于对所述第二盲化值进行去盲化处理,得到第三盲化值;根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在。
在进一步的实施例中,被查询方,还用于按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
查询方,还用于当所述第三盲化值在所述第二用户列表数据中存在时,确定所述第三盲化值在所述第二用户列表数据中的索引号;向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
被查询方,还用于根据所述会话标识从数据库中查找到所述第三用户列表数据;统计所述第三用户列表数据的列表长度,生成与所述列表长度相关联的多个公私钥对,从所述多个公私钥对中确定公钥列表,所述公钥列表包括多个公钥;向查询方返回所述公钥列表;
查询方,还用于从所述公钥列表中确定对应于所述索引号的目标公钥;生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;向被查询方发送所述会话标识和所述随机数加密值;
被查询方,还用于使用生成的公私钥对列表中的私钥列表解密从查询方收到的随机数加密值,得到随机数解密值列表;查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序(顺序)相同的数据一一对应地执行异或,得到用户画像异或值列表;
查询方,还用于从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
在进一步的实施例中,所述查询方,还用于根据目标用户的移动通信终端号码或者身份证号码,基于信息摘要算法生成第一哈希值。
实施例七
如图9所示,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述基于盲签名数据混淆的数据查询方法的各步骤。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
实施例八
本申请实施例提供了一种计算机设备1000,如图10所示,其包括:一个或多个处理器1001、存储装置1002和通信总线1003,存储装置1002存储有处理器1001可执行的机器可读指令,当计算机设备1000运行时,处理器1001与存储装置1002之间通过通信总线1003通信,处理器1001执行机器可读指令,以执行或实现如前述任一实施方式的所述基于盲签名数据混淆的数据查询方法的各步骤。
处理器1001可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储装置1002可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储装置1002可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储装置1002可包括可移除或不可移除(或固定)的介质。在特定实施例中,存储装置1002是非易失性固态存储器。在特定实施例中,存储装置1002包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
通信总线1003包括硬件、软件或两者,用于将上述部件彼此耦接在一起。举例来说,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于盲签名数据混淆的数据查询方法,所述方法应用于查询方,其特征在于,所述方法包括:
根据目标用户的身份标识,生成第一哈希值;
对所述第一哈希值进行盲化处理,得到第一盲化值;
截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数,n由查询方和被查询方共同确定;
生成会话标识;
向被查询方发送查询请求,其携带所述第一盲化值、所述第二哈希值和所述会话标识;
接收被查询方返回的第二盲化值和第二用户列表数据;其中,所述第二盲化值是被查询方对所述第一盲化值进行签名后得到的;所述第二用户列表数据是由被查询方使用公钥对第一用户列表数据中的所有键进行签名得到的,所述第一用户列表数据是指在被查询方的数据库中键的前缀为所述第二哈希值的数据;
对所述第二盲化值进行去盲化处理,得到第三盲化值;
根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在;
当所述第三盲化值在所述第二用户列表数据中存在时,确定所述第三盲化值在所述第二用户列表数据中的索引号;
向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
接收所述被查询方返回的公钥列表;
从所述公钥列表中确定对应于所述索引号的目标公钥;
生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;
向被查询方发送所述会话标识和所述随机数加密值;
接收所述被查询方返回的用户画像异或值列表;
从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
2.一种基于盲签名数据混淆的数据查询方法,所述方法应用于被查询方,其特征在于,所述方法包括:
接收查询方发送的查询请求,所述查询请求中携带第一盲化值、第二哈希值和会话标识;其中,所述第二哈希值是查询方截取第一哈希值的前n位得到的,所述第一哈希值是查询方根据目标用户的身份标识生成的,n由查询方和被查询方共同确定;
从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
生成用于盲签名的公私钥对;
获取所述第一用户列表数据的键列表,使用生成的公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;
对所述第一盲化值进行签名,得到第二盲化值;
向查询方返回所述第二盲化值和所述第二用户列表数据;
按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
接收查询方发送的针对目标用户的用户画像查询请求,其携带所述会话标识;
根据所述会话标识从数据库中查找到所述第三用户列表数据;
统计所述第三用户列表数据的列表长度,根据所述列表长度生成公私钥对列表,从所述公私钥对列表中取出公钥列表;
向查询方返回所述公钥列表;
接收查询方发送的所述会话标识和随机数加密值;其中,所述随机数加密值是查询方从被查询方返回的公钥列表中取出对应位置的目标公钥,使用所述目标公钥对随机数进行加密而得到的;
使用生成的公私钥对列表中的私钥列表解密从查询方收到的随机数加密值,得到随机数解密值列表;
查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序相同的数据一一对应地执行异或,得到用户画像异或值列表;
向查询方返回所述用户画像异或值列表。
3.一种基于盲签名数据混淆的数据查询方法,其特征在于,包括:
查询方根据目标用户的身份标识,生成第一哈希值;
查询方对所述第一哈希值进行盲化处理,得到第一盲化值;
查询方截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数,n由查询方和被查询方共同确定;
查询方生成会话标识;
查询方向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
被查询方从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
被查询方生成用于盲签名的公私钥对;
被查询方获取所述第一用户列表数据的键列表,使用公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;
被查询方对所述第一盲化值进行签名,得到第二盲化值;
被查询方向查询方返回所述第二盲化值和所述第二用户列表数据;
查询方对所述第二盲化值进行去盲化处理,得到第三盲化值;
查询方根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在;
被查询方按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
当所述第二盲化值在所述第二用户列表数据中存在时,查询方确定所述第二盲化值在所述第二用户列表数据中的索引号;
查询方向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
被查询方根据所述会话标识从数据库中查找到所述第三用户列表数据;
被查询方统计所述第三用户列表数据的列表长度,根据所述列表长度生成公私钥对列表,所述公私钥对列表中取出公钥列表;
被查询方向查询方返回所述公钥列表;
查询方从所述公钥列表中确定对应于所述索引号的目标公钥;
查询方生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;
查询方向被查询方发送所述会话标识和所述随机数加密值;
被查询方使用生成的公私钥对中的私钥列表解密从查询方收到的随机数加密值,得到随机数解密值列表;
被查询方查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序相同的数据一一对应地执行异或,得到用户画像异或值列表;
被查询方向查询方返回用户画像异或值列表;
查询方从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
4.一种基于盲签名数据混淆的数据查询装置,所述装置应用于查询方,其特征在于,所述装置包括:
哈希模块,用于根据目标用户的身份标识,生成第一哈希值;
盲化处理模块,用于对所述第一哈希值进行盲化处理,得到第一盲化值;
截取模块,用于截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数,n由查询方和被查询方共同确定;
会话标识生成模块,用于生成会话标识;
第一发送模块,用于向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
第一接收模块,用于接收被查询方返回的第二盲化值和第二用户列表数据;其中,所述第二盲化值是被查询方对所述第一盲化值进行签名后得到的;所述第二用户列表数据是由被查询方使用公钥对第一用户列表数据中的所有键进行签名得到的,所述第一用户列表数据是指在被查询方的数据库中键的前缀为所述第二哈希值的数据;
去盲化处理模块,用于对所述第二盲化值进行去盲化处理,得到第三盲化值;
用户确定模块,用于根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在;
索引号确定模块,用于当所述第三盲化值在所述第二用户列表数据中存在时,根据所述第三盲化值在所述第二用户列表数据中的序号,确定所述第三盲化值在所述第二用户列表数据中的索引号;
所述第一发送模块,还用于向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
所述第一接收模块,还用于接收所述被查询方返回的公钥列表;
目标公钥确定模块,用于从所述公钥列表中确定对应于所述索引号的目标公钥;
随机数加密值生成模块,用于生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;
所述第一发送模块,还用于向被查询方发送所述会话标识和所述随机数加密值;
所述第一接收模块,还用于接收所述被查询方返回的用户画像异或值列表;
用户画像数据确定模块,用于从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
5.一种基于盲签名数据混淆的数据查询装置,所述装置应用于被查询方,其特征在于,所述装置包括:
第二接收模块,用于接收查询方发送的查询请求,所述查询请求中携带第一盲化值、第二哈希值和会话标识;其中,所述第二哈希值是查询方截取第一哈希值的前n位得到的,所述第一哈希值是查询方根据目标用户的身份标识生成的,n由查询方和被查询方共同确定;
数据库查询模块,用于从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;
公私钥对生成模块,用于生成用于盲签名的公私钥对;
第二用户列表数据确定模块,用于获取所述第一用户列表数据的键列表,使用生成的公钥对所有键进行签名 ,得到第二用户列表数据;
签名模块,用于对所述第一盲化值进行签名,得到第二盲化值;
第二发送模块,用于向查询方返回所述第二盲化值和所述第二用户列表数据;
关联保存模块,用于按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
所述第二接收模块,还用于接收查询方发送的针对目标用户的用户画像查询请求,其携带所述会话标识;
数据库查询模块,用于根据所述会话标识从数据库中查找到所述第三用户列表数据;
公私钥对生成模块,用于统计所述第三用户列表数据的列表长度,根据所述列表长度生成公私钥对列表,从所述公私钥对列表中取出公钥列表;
所述第二发送模块,还用于向查询方返回所述公钥列表;
所述第二接收模块,还用于接收查询方发送的所述会话标识和随机数加密值;其中,所述随机数加密值是查询方从被查询方返回的公钥列表中取出对应位置的目标公钥,使用所述目标公钥对随机数进行加密而得到的;
解密模块,用于分别采用对应的多个私钥分别解密所述随机数加密值,得到随机数解密值列表;
用户画像数据处理模块,用于查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序相同的数据一一对应地执行异或,得到用户画像异或值列表;
所述第二发送模块,还用于向查询方返回用户画像异或值列表。
6.一种基于盲签名数据混淆的数据查询系统,其特征在于,包括:
查询方,用于根据目标用户的身份标识,生成第一哈希值;对所述第一哈希值进行盲化处理,得到第一盲化值;截取所述第一哈希值的前n位,得到第二哈希值,其中n是正整数,n由查询方和被查询方共同确定;生成会话标识;向被查询方发送查询请求,所述查询请求中携带所述第一盲化值、所述第二哈希值和所述会话标识;
被查询方,用于从数据库中查询键的前缀为所述第二哈希值的第一用户列表数据;生成用于盲签名的公私钥对;获取所述第一用户列表数据的键列表,使用生成的公钥对所述键列表中的所有键进行签名,得到第二用户列表数据;对所述第一盲化值进行签名,得到第二盲化值;向查询方返回所述第二盲化值和所述第二用户列表数据;
所述查询方,还用于对所述第二盲化值进行去盲化处理,得到第三盲化值;根据所述第三盲化值在所述第二用户列表数据中是否存在,确定所述目标用户在被查询方中是否存在;
被查询方,还用于按顺序保存所述第一用户列表数据,并与所述会话标识关联,得到关联后的第三用户列表数据;
查询方,还用于当所述第三盲化值在所述第二用户列表数据中存在时,确定所述第三盲化值在所述第二用户列表数据中的索引号;向被查询方发送所述会话标识,以发起针对所述目标用户的用户画像查询;
被查询方,还用于根据所述会话标识从数据库中查找到所述第三用户列表数据;统计所述第三用户列表数据的列表长度,根据所述列表长度生成公私钥对列表,从所述公私钥对列表中取出公钥列表;向查询方返回所述公钥列表;
查询方,还用于从所述公钥列表中确定对应于所述索引号的目标公钥;生成随机数,并用所述目标公钥加密所述随机数得到随机数加密值;向被查询方发送所述会话标识和所述随机数加密值;
被查询方,还用于使用生成的公私钥对列表中的私钥列表解密从查询方收到的随机数加密值,得到随机数解密值列表;查询所述第三用户列表数据关联的多个用户画像数据,对所述多个用户画像数据分别执行二进制转换,获得用户画像二进制数据列表,并且将所述用户画像二进制数据列表与所述随机数解密值列表中位置排序相同的数据一一对应地执行异或,得到用户画像异或值列表;
查询方,还用于从所述用户画像异或值列表中取出与所述索引号相匹配的目标数据,并将所述目标数据与所述随机数进行异或,得到所述目标用户的用户画像数据。
7.根据权利要求6所述的系统,其特征在于,所述查询方,还用于根据目标用户的移动通信终端号码或者身份证号码,基于信息摘要算法生成第一哈希值。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任意一项所述的基于盲签名数据混淆的数据查询方法。
9.一种计算机设备,其特征在于,其包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1或2所述的基于盲签名数据混淆的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210763525.5A CN114840866B (zh) | 2022-07-01 | 2022-07-01 | 基于盲签名数据混淆的数据查询方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210763525.5A CN114840866B (zh) | 2022-07-01 | 2022-07-01 | 基于盲签名数据混淆的数据查询方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840866A CN114840866A (zh) | 2022-08-02 |
CN114840866B true CN114840866B (zh) | 2022-10-11 |
Family
ID=82574973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210763525.5A Active CN114840866B (zh) | 2022-07-01 | 2022-07-01 | 基于盲签名数据混淆的数据查询方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840866B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544579B (zh) * | 2022-11-24 | 2023-03-28 | 北京融数联智科技有限公司 | 一种双随机数据混淆查询方法、装置和系统 |
CN115935429B (zh) * | 2022-12-30 | 2023-08-22 | 上海零数众合信息科技有限公司 | 一种数据处理方法、装置、介质以及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190584A (zh) * | 2021-04-07 | 2021-07-30 | 四川新网银行股份有限公司 | 一种基于不经意传输协议的匿踪查询方法 |
CN113672654A (zh) * | 2021-08-20 | 2021-11-19 | 平安银行股份有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN114139204A (zh) * | 2021-12-03 | 2022-03-04 | 杭州安恒信息技术股份有限公司 | 一种匿踪查询方法、装置及介质 |
CN114329578A (zh) * | 2021-11-25 | 2022-04-12 | 光之树(北京)科技有限公司 | 数据处理方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577029B2 (en) * | 2010-09-10 | 2013-11-05 | International Business Machines Corporation | Oblivious transfer with hidden access control lists |
CN114036565B (zh) * | 2021-11-19 | 2024-03-08 | 上海勃池信息技术有限公司 | 隐私信息检索系统及隐私信息检索方法 |
-
2022
- 2022-07-01 CN CN202210763525.5A patent/CN114840866B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190584A (zh) * | 2021-04-07 | 2021-07-30 | 四川新网银行股份有限公司 | 一种基于不经意传输协议的匿踪查询方法 |
CN113672654A (zh) * | 2021-08-20 | 2021-11-19 | 平安银行股份有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN114329578A (zh) * | 2021-11-25 | 2022-04-12 | 光之树(北京)科技有限公司 | 数据处理方法、装置及系统 |
CN114139204A (zh) * | 2021-12-03 | 2022-03-04 | 杭州安恒信息技术股份有限公司 | 一种匿踪查询方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114840866A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114840867B (zh) | 基于可交换加密数据混淆的数据查询方法、装置和系统 | |
CN114840866B (zh) | 基于盲签名数据混淆的数据查询方法、装置和系统 | |
US7415109B2 (en) | Partial encryption and full authentication of message blocks | |
Wang et al. | Search in my way: Practical outsourced image retrieval framework supporting unshared key | |
CN115098549B (zh) | 公平的数据匿踪查询方法、装置、设备及存储介质 | |
CN114036565A (zh) | 隐私信息检索系统及隐私信息检索方法 | |
CN115580396B (zh) | 匿踪查询系统及匿踪查询方法 | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
WO2023178919A1 (zh) | 一种基于不经意传输协议的排序查询系统及方法 | |
CN111177769A (zh) | 一种隐私数据保护的名单查询方法及相关的名单查询系统 | |
CN111783136A (zh) | 一种数据保护方法、装置、设备和存储介质 | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN114547668A (zh) | 一种基于国密和索引混淆的匿踪查询方法及装置 | |
CN112118113A (zh) | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 | |
CN115408435A (zh) | 一种数据查询方法及装置 | |
WO2022105518A1 (zh) | 电子投票方法及电子投票装置 | |
Ha et al. | A secure deduplication scheme based on data popularity with fully random tags | |
CN111835766B (zh) | 一种可重随机的公钥加解密方法 | |
CN117371011A (zh) | 数据隐匿查询方法、电子设备和可读存储介质 | |
CN114611152B (zh) | 查询方法和查询系统 | |
CN117077209A (zh) | 大规模数据匿踪查询方法 | |
CN114866312B (zh) | 一种保护数据隐私的共有数据确定方法及装置 | |
CN114500006B (zh) | 查询请求的处理方法及装置 | |
CN113411347A (zh) | 交易报文的处理方法及处理装置 | |
CN114978658B (zh) | 数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |