CN111046047A - 保护隐私的数据查询方法及装置 - Google Patents
保护隐私的数据查询方法及装置 Download PDFInfo
- Publication number
- CN111046047A CN111046047A CN201911303644.7A CN201911303644A CN111046047A CN 111046047 A CN111046047 A CN 111046047A CN 201911303644 A CN201911303644 A CN 201911303644A CN 111046047 A CN111046047 A CN 111046047A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- encrypted
- hash
- key
- 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.)
- Granted
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/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/2455—Query execution
-
- 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)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供一种保护隐私的数据查询方法及装置,该方法应用于数据提供方,其维护有加密数据列表,该列表用于记录多条以键值对形式存储的数据记录。其中,与每条数据记录对应的键值对包括哈希key值和加密value值,该方法包括:接收数据请求方发送的数据查询请求,其包括针对待查询数据记录的原始key值进行第二哈希后得到的经过一次哈希的key值。对经过一次哈希的key值进行第一哈希,得到待查询数据记录的哈希key值,并基于其从加密数据列表中查找对应的加密value值并返回给数据请求方,以使数据请求方使用第二加密秘钥对应的第二解密秘钥对加密value值进行二次解密,得到待查询数据记录的原始value值。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种保护隐私的数据查询方法及装置。
背景技术
在大数据时代,市场存在大量的数据合作需求。比如,某个企业或者组织(以下简称数据请求方)想要获取某个用户的信息,而其在本地又没有维护该用户的信息。那么就需要其它维护有该用户的信息的企业或者组织(以下简称数据提供方)协助其完成用户信息的查询。
在传统技术中,为实现用户信息的查询,请求方需要向被请求方发送用户的身份证号等唯一用户标识,由此,会造成请求方信息的泄露。因此,提供一种在对各方数据进行隐私保护的前提下,实现数据的查询就成为要解决的问题。
发明内容
本说明书一个或多个实施例描述了一种保护隐私的数据查询方法及装置,可以在确保各方数据安全的情况下实现数据的查询。
第一方面,提供了一种保护隐私的数据查询方法,包括:
接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
对所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
基于所述待查询数据记录的哈希key值,从所述加密数据列表中查找对应的加密value值;
向所述数据请求方发送查找到的所述加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对查找到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第二方面,提供了一种保护隐私的数据查询方法,包括:
对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
向所述数据提供方发送数据查询请求;所述数据查询请求包括所述经过一次哈希的key值;
接收所述数据提供方在针对所述经过一次哈希的key值进行所述一哈希后,基于二次哈希结果从所述加密数据列表中查找到的对应的加密value值;
使用所述第二加密秘钥对应的第二解密秘钥,对接收到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第三方面,提供了一种保护隐私的数据查询方法,包括:
接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
对所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
向所述数据请求方返回所述待查询数据记录的哈希key值;
接收所述数据请求方基于所述待查询数据记录的哈希key值,从所述加密数据列表中查找到的对应的加密value值;
使用所述第一加密秘钥对应的第一解密秘钥对所述加密value值进行解密,得到经过一次解密的加密value值;
向所述数据请求方发送所述经过一次解密的加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第四方面,提供了一种保护隐私的数据查询方法,包括:
对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
向所述数据提供方发送数据查询请求;所述数据查询请求包括所述经过一次哈希的key值;
接收所述数据提供方在针对所述经过一次哈希的key值进行所述第一哈希后发送的哈希key值;
基于接收的哈希key值,从所述加密数据列表中查找对应的加密value值;
向所述数据提供方发送查找到的加密value值;
接收所述数据提供方在使用所述第一加密秘钥对应的第一解密秘钥,对所述查找到的加密value值进行一次解密后发送的经过一次解密的加密value值;
使用所述第二加密秘钥对应的第二解密秘钥,对所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第五方面,提供了一种保护隐私的数据查询装置,包括:
接收单元,用于接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
运算单元,用于对所述接收单元接收的所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
查找单元,用于基于所述运算单元运算得到的所述待查询数据记录的哈希key值,从所述加密数据列表中查找对应的加密value值;
发送单元,用于向所述数据请求方发送所述查找单元查找到的所述加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对查找到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第六方面,提供了一种保护隐私的数据查询装置,包括:
运算单元,用于对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
发送单元,用于向所述数据提供方发送数据查询请求;所述数据查询请求包括所述运算单元运算得到的所述经过一次哈希的key值;
接收单元,用于接收所述数据提供方在针对所述经过一次哈希的key值进行所述第一哈希后,基于二次哈希结果从所述加密数据列表中查找到的对应的加密value值;
所述运算单元,还用于使用所述第二加密秘钥对应的第二解密秘钥,对所述接收单元接收到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第七方面,提供了一种保护隐私的数据查询装置,包括:
接收单元,用于接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
运算单元,用于对所述接收单元接收的所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
发送单元,用于向所述数据请求方返回所述运算单元运算得到的所述待查询数据记录的哈希key值;
所述接收单元,还用于接收所述数据请求方基于所述待查询数据记录的哈希key值,从所述加密数据列表中查找到的对应的加密value值;
所述运算单元,还用于使用所述第一加密秘钥对应的第一解密秘钥对所述接收单元接收的所述加密value值进行解密,得到经过一次解密的加密value值;
所述发送单元,还用于向所述数据请求方发送所述运算单元运算得到的所述经过一次解密的加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第八方面,提供了一种保护隐私的数据查询装置,包括:
运算单元,用于对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
发送单元,用于向所述数据提供方发送数据查询请求;所述数据查询请求包括所述运算单元运算得到的所述经过一次哈希的key值;
接收单元,用于接收所述数据提供方在针对所述经过一次哈希的key值进行所述第一哈希后发送的哈希key值;
查找单元,用于基于所述接收单元接收的哈希key值,从所述加密数据列表中查找对应的加密value值;
所述发送单元,还用于向所述数据提供方发送所述查找单元查找到的加密value值;
所述接收单元,还用于接收所述数据提供方在使用所述第一加密秘钥对应的第一解密秘钥,对所述查找到的加密value值进行一次解密后发送的经过一次解密的加密value值;
所述运算单元,还用于使用所述第二加密秘钥对应的第二解密秘钥,对所述接收单元接收到的所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
第九方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法或第二方面的方法或第三方面的方法或第四方面的方法。
第十方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法或第二方面的方法或第三方面的方法或第四方面的方法。
本说明书一个或多个实施例提供的保护隐私的数据查询方法及装置,数据请求方在向数据提供方请求查询某条数据记录时,向数据提供方发送该数据记录的经过一次哈希的key值。之后,数据提供方对该经过一次哈希的key值进行第二哈希,得到哈希key值。之后基于哈希key值,从加密数据列表中查找对应的加密value值。向数据请求方返回加密value值。数据请求方对加密value值进行二次解密,得到原始value值。由此可以看出,本方案的整个查询过程是基于加密的数据进行,从而可以避免数据提供方或者数据请求方信息泄露的问题。也即本方案可以在确保各方数据安全的情况下实现跨数据方的数据查询。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的数据查询系统示意图;
图2为本说明书提供的加密数据列表的生成方法信息交互图;
图3为本说明书一个实施例提供的保护隐私的数据查询方法流程图;
图4为本说明书另一个实施例提供的保护隐私的数据查询方法流程图;
图5为本说明书提供的保护隐私的数据查询方法信息交互图之一;
图6为本说明书再一个实施例提供的保护隐私的数据查询方法流程图;
图7为本说明书又一个实施例提供的保护隐私的数据查询方法流程图;
图8为本说明书提供的保护隐私的数据查询方法信息交互图之二;
图9为本说明书一个实施例提供的保护隐私的数据查询装置示意图;
图10为本说明书另一个实施例提供的保护隐私的数据查询装置示意图;
图11为本说明书再一个实施例提供的保护隐私的数据查询装置示意图;
图12为本说明书又一个实施例提供的保护隐私的数据查询装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书提供的方案之前,先对本方案的发明构思作以下说明。
如背景技术的内容所述,传统技术中,在实现跨数据方的数据查询时,容易造成某一方的信息泄露的问题。本方案中,可以将数据的查询过程划分为两个阶段:第一阶段,数据请求方向数据提供方请求数据列表,该数据列表中记录有多条以键值(key_value)对形式存储的数据记录。之后由双方先后对键值对中的key值进行两次哈希以及对value值进行两次加密,再由数据提供方对经过两次加密的value值再进行一次解密(即得到加密value值)后,将得到的加密数据列表保存在数据提供方。第二阶段,针对待查询的数据记录,由数据请求方和数据提供方先后对该数据记录的key值进行两次哈希后,由数据提供方基于哈希key值,从加密数据列表中查找对应的加密value值,并将其返回给数据请求方。由数据请求方对其进行二次解密,从而获得待查询数据记录的原始value值。
需要说明的是,上述加密数据列表也可以保存在数据请求方,当加密数据列表保存在数据请求方时,则加密数据列表可以包括各条数据记录的哈希key值和经过两次加密的加密value值。之后,在第二阶段,数据请求方针对待查询的数据记录进行查询时,由数据请求方和数据提供方先后对该数据记录的key值进行两次哈希后,由数据请求方基于得到的哈希key值,从加密数据列表中查找对应的经过两次加密的加密value值,并将其发送给数据提供方,由数据提供方对其进行一次解密后再返回给数据请求方,从而数据请求方进行二次解密后获得原始value值。
由此可以看出,本方案的整个查询过程是基于加密的数据进行,从而可以避免数据提供方或者数据请求方信息泄露的问题。也即本方案可以在确保各方数据安全的情况下实现跨数据方的数据查询。
此外,还需要说明的是,在本方案中,数据请求方与数据提供方可以预先协商哈希算法和加解密算法。这里的哈希算法可满足如下条件:基于两个以上不同的参数对目标数据进行哈希时,该两个以上不同的参数的使用顺序不影响哈希结果。如,其可以为DH算法、ECC-DH算法以及RSA算法等算法中的任一种。上述加密算法可以满足如下条件:基于两个以上的加密秘钥对目标数据进行加密后,在使用相应的解密算法对加密结果进行解密时该两个以上的加密秘钥对应的解密秘钥的使用顺序不影响解密结果。如,可以为elgamal算法。当加密算法采用elgamal算法时,相应的解密算法为elgamal算法。
以上就是本说明书提供的发明构思,基于该发明构思就可以得到本说明书提供的技术方案。以下对本方案进行详细阐述。
本说明书提供的保护隐私的数据查询方法可以应用于数据查询系统,该数据查询系统可以包括多个服务器,各服务器之间可以相互通信。需要说明的是,在一种场景下,多个服务器中的每个服务器均可以维护有数据列表,从而每个服务器均可以作为数据提供方,以及每个服务器均可以作为数据请求方。在另一种场景下,多个服务器中只有一个服务器维护有数据列表,从而只有该服务器可以作为数据提供方,其它服务器中的任一服务器作为数据请求方。
以图1所示的数据查询系统为例来说,可以包括两个服务器,其中,一个服务器为数据提供方,另一个服务器为数据请求方。图1中,数据请求方可以向数据提供方发送数据查询请求。该数据查询请求可以包括待查询数据记录的经过一次哈希的key值。数据提供方对该经过一次哈希的key值进行第二哈希,并基于二次哈希结果,从加密数据列表中查找对应的加密value值。之后,数据提供方向数据请求方返回加密value值。由数据请求方进行二次解密,得到待获取数据记录的原始value值。
由前述发明构思可知,本方案是基于加密数据列表实施的,因此,在描述本说明书提供的方案之前,先对加密数据列表的生成过程作以下说明。
图2为本说明书提供的加密数据列表的生成方法信息交互图。如图2所示,该方法可以包括如下步骤:
步骤202,数据请求方向数据提供方发送数据列表获取请求。
本说明书所述的数据提供方可以维护有原始数据列表。该原始数据列表用于记录多条以键值对形式存放的数据记录。其中,与每条数据记录对应的键值对可以包括一个原始key值和一个原始value值,其中,原始key值表征该条数据记录的主键(如,用户的身份证号等),原始value值表征该条数据记录的内容(如,用户的职业、年龄以及薪水等)。
步骤204,响应于数据列表获取请求,数据提供方对原始数据列表中的每条数据记录的原始key值进行第一哈希,得到经过一次哈希的key值,并使用第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值。
这里,数据提供方进行第一哈希时所使用的哈希算法由数据提供方和数据请求方预先协商得到,如,可以为DH算法、ECC-DH算法以及RSA算法中的任一种。需要说明的是,数据提供方在进行第一哈希时,可以针对该哈希算法生成对应的第一参数,从而数据提供方通过使用该哈希算法以及对应的第一参数实现第一哈希。
数据提供方进行一次加密时所使用的加密算法也由数据提供方和数据请求方预先协商得到,如,可以为上述elgamal算法。需要说明的是,数据提供方在进行一次加密时,可以针对该加密算法可以生成对应的第一参数(即上述第一加密秘钥),从而数据提供方通过使用该加密算法以及对应的第一加密秘钥实现一次加密。
可以理解的是,数据提供方针对上述哈希算法或者加密算法所生成的参数是保密的,不对外公开。
应理解,上述各条数据记录的经过一次哈希的key值和经过一次加密的value值可以构成经过一次加密的数据列表。此外,每条数据记录的经过一次哈希的key值和经过一次加密的value值可以构成一个经过一次加密的键值对,从而经过一次加密的数据列表中可以包括各条数据记录对应的多个经过一次加密的键值对。
步骤206,数据提供方向数据请求方返回经过一次加密的数据列表。
步骤208,数据请求方对经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行第二哈希,得到各条数据记录的哈希key值,并使用第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到经过两次加密的value值。
可选地,为了进一步确保数据的安全性,在执行步骤208之前,数据请求方针对经过一次加密的数据列表,可以随机调整其中各个经过一次加密的键值对的排列顺序,得到调整后的数据列表。之后,基于调整后的数据列表,进行上述二次哈希以及二次加密。
需要说明的是,数据请求方在执行步骤208之前,先对经过一次加密的键值对的排列顺序打乱的方式,可以避免在数据提供方查找到加密value值时,由于其预先知道各键值对的排列顺序以及对应的明文信息,而基于相应位置的数据记录的明文信息还原得到待查询数据记录的原始value值所造成的信息泄露问题。
回到步骤208中,数据请求方进行第二哈希时所使用的哈希算法即为数据提供方进行第一哈希时所使用的哈希算法。不同的是,数据请求方在进行第二哈希时,可以针对该哈希算法生成对应的第二参数,从而数据请求方可以通过使用该哈希算法以及对应的第二参数实现第二哈希。
此外,数据请求方进行二次加密时所使用的加密算法即为数据提供方进行一次加密时所采用的加密算法,其例如可以为上述elgamal算法。不同的是,数据提供方在进行二次加密时,可以针对该加密算法生成对应的第二参数(即上述第二加密秘钥),从而数据请求方可以通过使用该加密算法以及对应的第二加密秘钥实现二次加密。
总之,数据提供方与数据请求方可以预先协商哈希算法和加解密算法,且预先协商的哈希算法可以满足如下条件:基于两个以上不同的参数对目标数据进行哈希时,该两个以上不同的参数的使用顺序不影响哈希结果。预先协商的加密算法可以满足如下条件:基于两个以上的加密秘钥对目标数据进行加密后,在使用相应的解密算法对加密结果进行解密时该两个以上的加密秘钥对应的解密秘钥的使用顺序不影响解密结果。
此外,在步骤208中,各条数据记录的哈希key值和经过两次加密的value值可以构成经过两次加密的数据列表。
步骤210,数据请求方向数据提供方发送经过两次加密的数据列表。
步骤212,数据提供方使用第一加密秘钥对应的第一解密秘钥,对各条数据记录的经过两次加密的vlaue值进行一次解密,得到各自的加密value值。
这里的第一解密秘钥可以是由数据提供方在针对加密算法,生成对应的第一加密秘钥时生成的。以加密算法为elgamal算法为例来说,由于其相应的解密算法为elgamal算法,因此,在生成第一加密秘钥时,可以同时生成第一加密秘钥对应的第一解密秘钥。
步骤214,数据提供方保存各条数据记录的哈希key值和加密value值构成的加密数据列表。
需要说明的是,通过以上步骤,可以实现在保护各方数据隐私的情况下,对数据进行共享。
还需要说明的是,在实际应用中,数据请求方在得到经过两次加密的数据列表之后,也可以不向数据提供方发送该经过两次加密的数据列表,而将其保存在本地。可以理解的是,当数据请求方在本地保存经过两次加密的数据列表时,上述步骤210-步骤214可以替换为:数据请求方将经过两次加密的数据列表作为加密数据列表进行保存。
应理解,当加密数据列表保存在数据请求方时,该加密数据列表包括各条数据记录的哈希key值和经过两次加密的加密value值,且经过两次加密的数据列表的内容与加密数据列表的内容相同。
另外,当数据请求方在本地保存加密数据列表时,数据请求方在进行第二哈希和二次加密时,可以不执行对经过一次加密的数据列表中的各个经过一次加密的键值对的排列顺序打乱的步骤。原因在于:数据请求方原本就未获取到各条数据记录的排列顺序以及对应的明文信息。
以下针对加密数据列表保存在数据提供方的情况,对本方案的实施过程进行说明。
图3为本明书一个实施例提供的保护隐私的数据查询方法流程图。所述方法的执行主体可以为图1中的数据提供方。如图3所示,所述方法具体可以包括:
步骤302,接收数据请求方发送的数据查询请求。
该数据查询请求可以包括数据请求方针对待查询数据记录的原始key值进行第二哈希后得到的经过一次哈希的key值。应理解,这里的第二哈希可以基于数据请求方在生成加密数据列表的过程中所使用的哈希算法和第二参数进行。
步骤304,对经过一次哈希的key值进行第一哈希,得到待查询数据记录的哈希key值。
这里的第一哈希可以基于数据提供方在生成加密数据列表的过程中进行第一哈希时所使用的哈希算法和第一参数进行。
步骤306,基于待查询数据记录的哈希key值,从加密数据列表中查找对应的加密value值。
步骤308,向数据请求方发送查找的加密value值。
数据请求方使用第二加密秘钥对应的第二解密秘钥对加密value值进行二次解密,得到待查询数据记录的原始value值。
这里的第二解密秘钥可以是由数据请求方在针对加密算法,生成对应的第二加密秘钥时生成的。以加密算法为elgamal算法为例来说,由于其相应的解密算法为elgamal算法,因此,在生成第二加密秘钥时,可以同时生成第二加密秘钥对应的第二解密秘钥。
此外,数据请求方进行二次解密时所采用的解密算法即为数据提供方进行一次解密时所采用的解密算法。
结合图2和图3中的各步骤,可以得出,在生成加密数据列表的过程中和在查询数据的过程中,数据提供方和数据请求方进行哈希运算的顺序是不同的。具体地,在生成加密数据列表的过程中,先由数据提供方进行第一哈希,再由数据请求方进行第二哈希。而在查询数据的过程中,先由数据请求方进行第二哈希,再由数据提供方进行第一哈希。然而由于本说明书使用的哈希算法满足如下条件:基于两个以上不同的参数对目标数据进行哈希时,该两个以上不同的参数的使用顺序不影响哈希结果。也就是说,针对任一key值,先由数据请求方进行哈希再由数据提供方进行哈希与先由数据提供方进行哈希与再由数据请求方进行哈希得到的哈希结果相同。因此,在本说明书中,在查询数据的过程中,可以相反的顺序进行哈希。
同样地,结合图2和图3中的各步骤,可以得出,数据提供方和数据请求方对加解密秘钥的使用顺序相同。具体地,在生成加密数据列表的过程中,先由数据提供方进行一次加密,再由数据请求方进行二次加密,最后由数据提供方先进行一次解密。在之后的数据查询过程中,再由数据请求方进行二次解密。然而由于本说明书使用的加密算法满足如下条件:在使用相应的解密算法对加密结果进行解密时该两个以上的加密秘钥对应的解密秘钥的使用顺序不影响解密结果。也就是说,在针对任一value值,先由数据提供方进行加密再由数据请求方进行加密后,由数据提供方先进行解密再由数据请求方进行解密可还原得到上述value值。因此,在本说明书中,可以与加密顺序相同的顺序进行解密。
此外,还需要说明的是,数据提供方在查询得到加密value值时,其就可以获知相匹配的数据记录的位置。但因为,数据请求方在二次加密数据列表时,对其中的各个经过一次加密的键值对的顺序进行了调整,也即对原始数据列表中的各条数据记录的排列顺序进行了调整,从而数据提供方基于原始数据列表中已获知位置的数据记录,不能推理得到正确的数据记录的原始value值,由此可以实现数据提供方数据的隐私保护。
综上,本说明书实施例提供的保护隐私的数据查询方法,基于加密的数据进行,从而可以避免数据提供方或者数据请求方信息泄露的问题。也即本方案可以在确保各方数据安全的情况下实现跨数据方的数据查询。此外,本方案不仅可以查询待查询记录是否记录在加密数据列表中,还可以获取该数据记录的内容,进而可以提升其实用性。
图4为本说明书另一个实施例提供的保护隐私的数据查询方法流程图。所述方法的执行主体可以为图1中的数据请求方。如图4所示,所述方法具体可以包括:
步骤402,对待查询数据记录的原始key值进行第二哈希,得到经过一次哈希的key值。
应理解,这里的第二哈希可以基于数据请求方在生成加密数据列表的过程中所使用的哈希算法和第二参数进行。
步骤404,向数据提供方发送数据查询请求。
该数据查询请求包括经过一次哈希的key值。
步骤406,接收数据提供方在针对经过一次哈希的key值进行第一哈希后,基于二次哈希结果从加密数据列表中查找到的对应的加密value值。
这里的第一哈希可以基于数据提供方在生成加密数据列表的过程中所使用的哈希算法和第一参数进行。
步骤408,使用第二加密秘钥对应的第二解密秘钥,对加密value值进行二次解密,得到待查询数据记录的原始value值。
这里,数据请求方进行二次解密时所采用的解密算法即为数据提供方进行一次解密时所采用的解密算法。
综上,本说明书实施例提供的保护隐私的数据查询方法,基于加密的数据进行,从而可以避免数据提供方或者数据请求方信息泄露的问题。也即本方案可以在确保各方数据安全的情况下实现跨数据方的数据查询。此外,本方案不仅可以查询待查询记录是否记录在加密数据列表中,还可以获取该数据记录的内容,进而可以提升其实用性。
图5为本说明书提供的保护隐私的数据查询方法信息交互图之一。如图5所示,该方法可以包括如下步骤:
步骤502,数据请求方对待查询数据记录的原始key值进行第二哈希,得到经过一次哈希的key值。
步骤504,数据请求方向数据提供方发送数据查询请求。
该数据查询请求包括经过一次哈希的key值。
步骤506,数据提供方对经过一次哈希的key值进行第一哈希,得到待查询数据记录的哈希key值。
步骤508,数据提供方基于待查询数据记录的哈希key值,从加密数据列表中查找对应的加密value值。
步骤510,数据提供方向数据请求方发送查找到的加密value值。
步骤512,数据请求方使用第二加密秘钥对应的第二解密秘钥,对查找到的加密value值进行二次解密,得到待查询数据记录的原始value值。
这里,数据请求方进行二次解密时所采用的解密算法即为数据提供方进行一次解密时所采用的解密算法。
需要说明的是,以上是针对加密数据列表保存在数据提供方的情况,对本方案的实施过程的说明。以下针对加密数据列表保存在数据请求方的情况进行说明。
还需要说明的是,下面各实施例中所述的加密value值均为经过两次加密的加密value值,其含义与上述各实施例中所述的加密value值(即先经过两次加密再经过一次解密)不同。
图6为本说明书再一个实施例提供的保护隐私的数据查询方法流程图。所述方法的执行主体可以为图1中的数据提供方。如图6所示,所述方法具体可以包括:
步骤602-步骤604与步骤302-步骤304相同,在此不复赘述。
步骤606,向数据请求方返回待查询数据记录的哈希key值。
步骤608,接收数据请求方基于待查询数据记录的哈希key值,从加密数据列表中查找到的对应的加密value值。
步骤610,使用第一加密秘钥对应的第一解密秘钥对所述加密value值进行解密,得到经过一次解密的加密value值。
步骤612,向数据请求方发送经过一次解密的加密value值。
数据请求方使用第二加密秘钥对应的第二解密秘钥对经过一次解密的加密value值进行二次解密,得到待查询数据记录的原始value值。
图7为本说明书又一个实施例提供的保护隐私的数据查询方法流程图。所述方法的执行主体可以为图1中的数据请求方。如图7所示,所述方法具体可以包括:
步骤702-步骤704与步骤402-步骤404相同,在此不复赘述。
步骤706,接收数据提供方在针对经过一次哈希的key值进行第一哈希后发送的哈希key值。
步骤708,基于接收的哈希key值,从加密数据列表中查找对应的加密value值。
步骤710,向数据提供方发送查找到的加密value值。
步骤712,接收数据提供方在使用第一加密秘钥对应的第一解密秘钥,对查找到的加密value值进行一次解密后发送的经过一次解密的加密value值。
步骤714,使用第二加密秘钥对应的第二解密秘钥,对经过一次解密的加密value值进行二次解密,得到待查询数据记录的原始value值。
图8为本说明书提供的保护隐私的用户信息查询方法信息交互图之二。如图8所示,该方法可以包括如下步骤:
步骤802-步骤806与步骤502-步骤506相同,在此不复赘述。
步骤808,数据提供方向数据请求方返回待查询数据记录的哈希key值。
步骤810,数据请求方基于待查询数据记录的哈希key值,从加密数据列表中查找对应的加密value值。
步骤812,数据请求方向数据提供方发送查找到的加密value值。
步骤814,数据提供方使用第一加密秘钥对应的第一解密秘钥对查找到的加密value值进行解密,得到经过一次解密的加密value值。
步骤816,数据提供方向数据请求方发送经过一次解密的加密value值。
步骤818,数据请求方使用第二加密秘钥对应的第二解密秘钥,对经过一次解密的加密value值进行二次解密,得到待查询数据记录的原始value值。
与上述保护隐私的数据查询方法对应地,本说明书一个实施例还提供的一种保护隐私的数据查询装置,设置于数据提供方。该数据提供方维护有加密数据列表,该加密数据列表用于记录多条以键值对形式存储的数据记录。其中,与每条数据记录对应的键值对包括哈希key值和加密value值。哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到。加密value值由数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密,再由数据请求方使用第二加密秘钥进行二次加密后,由数据提供方使用第一加密秘钥对应的第一解密秘钥对二次加密结果进行一次解密得到。如图9所示,该装置可以包括:
接收单元902,用于接收数据请求方发送的数据查询请求。该数据查询请求包括数据请求方针对待查询数据记录的原始key值进行第二哈希后得到的经过一次哈希的key值。
运算单元904,用于对接收单元902接收的经过一次哈希的key值进行第一哈希,得到待查询数据记录的哈希key值。
上述第一哈希和第二哈希可通过使用不同参数的同一哈希算法实现。
查找单元906,用于基于运算单元904运算得到的待查询数据记录的哈希key值,从加密数据列表中查找对应的加密value值。
发送单元908,用于向数据请求方发送查找单元906查找到的加密value值,以使数据请求方使用第二加密秘钥对应的第二解密秘钥对查找到的加密value值进行二次解密,得到待查询数据记录的原始value值。
可选地,该装置还可以包括:保存单元(图中未示出)。
接收单元902,还用于接收数据请求方发送的数据列表获取请求。
运算单元904,还用于响应于接收单元902接收的数据列表获取请求,对原始数据列表中的每条数据记录的原始key值进行所述第一哈希,得到经过一次哈希的key值,并使用第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值。各条数据记录的经过一次哈希的key值和经过一次加密的value值构成经过一次加密的数据列表。
发送单元908,还用于向数据请求方返回运算单元904运算得到的经过一次加密的数据列表。
接收单元902,还用于接收数据请求方针对经过一次加密的数据列表进行二次加密后返回的经过两次加密的数据列表。经过两次加密的数据列表包括各条数据记录的哈希key值和经过两次加密的value值。
运算单元904,还用于使用第一加密秘钥对应的第一解密秘钥,对接收单元902接收到的各条数据记录的经过两次加密的vlaue值进行一次解密,得到各自的加密value值。
保存单元,用于保存各条数据记录的哈希key值和加密value值构成的加密数据列表。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的保护隐私的数据查询装置,可以在确保各方数据安全的情况下实现跨数据方的数据查询。
与上述保护隐私的数据查询方法对应地,本说明书一个实施例还提供的一种保护隐私的数据查询装置,设置于数据请求方。对应于该数据请求方的数据提供方维护有加密数据列表,该加密数据列表用于记录多条以键值对形式存储的数据记录。其中,与每条数据记录对应的键值对包括哈希key值和加密value值。哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到。加密value值由数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密,再由数据请求方使用第二加密秘钥进行二次加密后,由数据提供方使用第一加密秘钥对应的第一解密秘钥对二次加密结果进行一次解密得到。如图10所示,该装置可以包括:
运算单元1002,用于对待查询数据记录的原始key值进行第二哈希,得到经过一次哈希的key值。
发送单元1004,用于向数据提供方发送数据查询请求。该数据查询请求包括运算单元1002运算得到的经过一次哈希的key值。
接收单元1006,用于接收数据提供方在针对经过一次哈希的key值进行第一哈希后,基于二次哈希结果从加密数据列表中查找到的对应的加密value值。
运算单元1002,还用于使用第二加密秘钥对应的第二解密秘钥,对接收单元1006接收到的加密value值进行二次解密,得到待查询数据记录的原始value值。
可选地,发送单元1004,还用于向数据提供方发送数据列表获取请求。
接收单元1006,还用于接收数据提供方返回的经过一次加密的数据列表。该经过一次加密的数据列表包括各条数据记录的经过一次哈希的key值和经过一次加密的value值。
运算单元1002,还用于对接收单元1006接收的经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行第二哈希,得到哈希key值,并使用第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到经过两次加密的value值。各条数据记录的哈希key值和经过两次加密的value值构成经过两次加密的数据列表。
其中,将每条数据记录的经过一次哈希的key值和经过一次加密的value值作为一个经过一次加密的键值对。
运算单元1002具体可以用于:
针对经过一次加密的数据列表,随机调整其中各个经过一次加密的键值对的排列顺序,得到调整后的数据列表。
对调整后的数据列表中的每条数据记录的经过一次哈希的key值进行第二哈希,得到哈希key值。
发送单元1004,还用于向数据提供方返回运算单元1002运算得到的经过两次加密的数据列表,以使数据提供方在对经过两次加密的数据列表中的各条数据记录的经过两次加密的value值进行一次解密后,将经过一次value值解密的经过两次加密的数据列表作为加密数据列表进行保存。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的保护隐私的数据查询装置,可以在确保各方数据安全的情况下实现跨数据方的数据查询。
与上述保护隐私的数据查询方法对应地,本说明书一个实施例还提供的一种保护隐私的数据查询装置,设置于数据提供方。该数据提供方对应的数据请求方维护有加密数据列表,该加密数据列表用于记录多条以键值对形式存储的数据记录。其中,与每条数据记录对应的键值对包括哈希key值和加密value值。哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到。加密value值由数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密后,再由数据请求方使用第二加密秘钥进行二次加密得到。如图11所示,该装置可以包括:
接收单元1102,用于接收数据请求方发送的数据查询请求。该数据查询请求包括数据请求方针对待查询数据记录的原始key值进行第二哈希后得到的经过一次哈希的key值。
运算单元1104,用于对接收单元1102接收的经过一次哈希的key值进行第一哈希,得到待查询数据记录的哈希key值。
上述第一哈希和第二哈希可通过使用不同参数的同一哈希算法实现。
发送单元1106,用于向数据请求方返回运算单元1104运算得到的待查询数据记录的哈希key值。
接收单元1102,还用于接收数据请求方基于待查询数据记录的哈希key值,从加密数据列表中查找到的对应的加密value值。
运算单元1104,还用于使用第一加密秘钥对应的第一解密秘钥对接收单元1102接收的加密value值进行解密,得到经过一次解密的加密value值。
发送单元1106,还用于向数据请求方发送运算单元1104运算得到的经过一次解密的加密value值,以使数据请求方使用第二加密秘钥对应的第二解密秘钥对经过一次解密的加密value值进行二次解密,得到待查询数据记录的原始value值。
可选地,接收单元1102,还用于接收数据请求方发送的数据列表获取请求。
运算单元1104,还用于响应于接收单元1102接收的数据列表获取请求,对原始数据列表中的每条数据记录的原始key值进行第一哈希,得到经过一次哈希的key值,并使用第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值。各条数据记录的经过一次哈希的key值和经过一次加密的value值构成经过一次加密的数据列表。
发送单元1106,还用于向数据请求方返回运算单元1104运算得到的经过一次加密的数据列表,以使得数据请求方针对经过一次加密的数据列表进行二次加密,并将得到的经过两次加密的数据列表作为加密数据列表进行保存。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的保护隐私的数据查询装置,可以在确保各方数据安全的情况下实现跨数据方的数据查询。
与上述保护隐私的数据查询方法对应地,本说明书一个实施例还提供的一种保护隐私的数据查询装置,设置于数据请求方,该数据请求方维护有加密数据列表,该加密数据列表用于记录多条以键值对形式存储的数据记录。其中,与每条数据记录对应的键值对包括哈希key值和加密value值。哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到。加密value值由数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密后,再由数据请求方使用第二加密秘钥进行二次加密得到。如图12所示,该装置可以包括:
运算单元1202,用于对待查询数据记录的原始key值进行第二哈希,得到经过一次哈希的key值。
发送单元1204,用于向数据提供方发送数据查询请求,该数据查询请求包括运算单元1202运算得到的经过一次哈希的key值。
接收单元1206,用于接收数据提供方在针对经过一次哈希的key值进行第一哈希后发送的哈希key值。
查找单元1208,用于基于接收单元1206接收的哈希key值,从加密数据列表中查找对应的加密value值。
发送单元1204,还用于向数据提供方发送查找单元1208查找到的加密value值。
接收单元1206,还用于接收数据提供方在使用第一加密秘钥对应的第一解密秘钥,对查找到的加密value值进行一次解密后发送的经过一次解密的加密value值。
运算单元1202,还用于使用第二加密秘钥对应的第二解密秘钥,对接收单元1206接收到的经过一次解密的加密value值进行二次解密,得到待查询数据记录的原始value值。
可选地,该装置还可以包括:保存单元(图中未示出)。
发送单元1204,还用于向数据提供方发送数据列表获取请求。
接收单元1206,还用于接收数据提供方返回的经过一次加密的数据列表。该经过一次加密的数据列表包括各条数据记录的经过一次哈希的key值和经过一次加密的value值。
运算单元1202,还用于对接收单元1206接收的经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行第二哈希,得到哈希key值,并使用第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到加密value值。
保存单元,用于保存各条数据记录的哈希key值和加密value值构成的加密数据列表。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的保护隐私的数据查询装置,可以在确保各方数据安全的情况下实现跨数据方的数据查询。
另一方面,本说明书的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图3-图8中任一幅图所示的方法。
另一方面,本说明书的实施例提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图3-图8中任一幅图所示的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。
Claims (24)
1.一种保护隐私的数据查询方法,应用于数据提供方;所述数据提供方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由所述数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密,再由所述数据请求方使用第二加密秘钥进行二次加密后,由所述数据提供方使用所述第一加密秘钥对应的第一解密秘钥对二次加密结果进行一次解密得到;所述方法包括:
接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
对所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
基于所述待查询数据记录的哈希key值,从所述加密数据列表中查找对应的加密value值;
向所述数据请求方发送查找到的所述加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对查找到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
2.根据权利要求1所述的方法,所述加密数据列表通过以下步骤获得:
接收所述数据请求方发送的数据列表获取请求;
响应于所述数据列表获取请求,对原始数据列表中的每条数据记录的原始key值进行所述第一哈希,得到经过一次哈希的key值,并使用所述第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值;各条数据记录的经过一次哈希的key值和经过一次加密的value值构成经过一次加密的数据列表;
向所述数据请求方返回所述经过一次加密的数据列表;
接收所述数据请求方针对所述经过一次加密的数据列表进行二次加密后返回的经过两次加密的数据列表;所述经过两次加密的数据列表包括所述各条数据记录的哈希key值和经过两次加密的value值;
使用所述第一加密秘钥对应的所述第一解密秘钥,对所述各条数据记录的经过两次加密的vlaue值进行一次解密,得到各自的加密value值;
保存所述各条数据记录的哈希key值和加密value值构成的所述加密数据列表。
3.根据权利要求1或2所述的方法,所述第一哈希和所述第二哈希通过使用不同参数的同一哈希算法实现。
4.一种保护隐私的数据查询方法,应用于数据请求方;对应于所述数据请求方的数据提供方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由所述数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密,再由所述数据请求方使用第二加密秘钥进行二次加密后,由所述数据提供方使用所述第一加密秘钥对应的第一解密秘钥对二次加密结果进行一次解密得到;所述方法包括:
对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
向所述数据提供方发送数据查询请求;所述数据查询请求包括所述经过一次哈希的key值;
接收所述数据提供方在针对所述经过一次哈希的key值进行所述一哈希后,基于二次哈希结果从所述加密数据列表中查找到的对应的加密value值;
使用所述第二加密秘钥对应的第二解密秘钥,对接收到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
5.根据权利要求4所述的方法,还包括:辅助所述数据提供方获取所述加密数据列表的步骤,包括:
向所述数据提供方发送数据列表获取请求;
接收所述数据提供方返回的经过一次加密的数据列表;所述经过一次加密的数据列表包括各条数据记录的经过一次哈希的key值和经过一次加密的value值;
对所述经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值,并使用所述第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到经过两次加密的value值;各条数据记录的哈希key值和经过两次加密的value值构成经过两次加密的数据列表;
向所述数据提供方返回所述经过两次加密的数据列表;以使所述数据提供方在对所述经过两次加密的数据列表中的各条数据记录的经过两次加密的value值进行一次解密后,将经过一次value值解密的所述经过两次加密的数据列表作为所述加密数据列表进行保存。
6.根据权利要求5所述的方法,其中,将每条数据记录的经过一次哈希的key值和经过一次加密的value值作为一个经过一次加密的键值对;
所述对所述经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值,包括:
针对所述经过一次加密的数据列表,随机调整其中各个经过一次加密的键值对的排列顺序,得到调整后的数据列表;
对所述调整后的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值。
7.一种保护隐私的数据查询方法,应用于数据提供方;所述数据提供方对应的数据请求方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由所述数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密后,再由所述数据请求方使用第二加密秘钥进行二次加密得到;所述方法包括:
接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
对所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
向所述数据请求方返回所述待查询数据记录的哈希key值;
接收所述数据请求方基于所述待查询数据记录的哈希key值,从所述加密数据列表中查找到的对应的加密value值;
使用所述第一加密秘钥对应的第一解密秘钥对所述加密value值进行解密,得到经过一次解密的加密value值;
向所述数据请求方发送所述经过一次解密的加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
8.根据权利要求7所述的方法,还包括:辅助所述数据请求方获取所述加密数据列表的步骤,包括:
接收所述数据请求方发送的数据列表获取请求;
响应于所述数据列表获取请求,对原始数据列表中的每条数据记录的原始key值进行所述第一哈希,得到经过一次哈希的key值,并使用所述第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值;各条数据记录的经过一次哈希的key值和经过一次加密的value值构成经过一次加密的数据列表;
向所述数据请求方返回所述经过一次加密的数据列表;以使得所述数据请求方针对所述经过一次加密的数据列表进行二次加密,并将得到的经过两次加密的数据列表作为所述加密数据列表进行保存。
9.根据权利要求7或8所述的方法,所述第一哈希和所述第二哈希通过使用不同参数的同一哈希算法实现。
10.一种保护隐私的数据查询方法,应用于数据请求方;所述数据请求方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由所述数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密后,再由所述数据请求方使用第二加密秘钥进行二次加密得到;所述方法包括:
对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
向所述数据提供方发送数据查询请求;所述数据查询请求包括所述经过一次哈希的key值;
接收所述数据提供方在针对所述经过一次哈希的key值进行所述第一哈希后发送的哈希key值;
基于接收的哈希key值,从所述加密数据列表中查找对应的加密value值;
向所述数据提供方发送查找到的加密value值;
接收所述数据提供方在使用所述第一加密秘钥对应的第一解密秘钥,对所述查找到的加密value值进行一次解密后发送的经过一次解密的加密value值;
使用所述第二加密秘钥对应的第二解密秘钥,对所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
11.根据权利要求10所述的方法,还包括:获取所述加密数据列表的步骤,包括:
向所述数据提供方发送数据列表获取请求;
接收所述数据提供方返回的经过一次加密的数据列表;所述经过一次加密的数据列表包括各条数据记录的经过一次哈希的key值和经过一次加密的value值;
对所述经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值,并使用所述第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到加密value值;
保存各条数据记录的哈希key值和加密value值构成的所述加密数据列表。
12.一种保护隐私的数据查询装置,设置于数据提供方;所述数据提供方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由所述数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密,再由所述数据请求方使用第二加密秘钥进行二次加密后,由所述数据提供方使用所述第一加密秘钥对应的第一解密秘钥对二次加密结果进行一次解密得到;所述装置包括:
接收单元,用于接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
运算单元,用于对所述接收单元接收的所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
查找单元,用于基于所述运算单元运算得到的所述待查询数据记录的哈希key值,从所述加密数据列表中查找对应的加密value值;
发送单元,用于向所述数据请求方发送所述查找单元查找到的所述加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对查找到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
13.根据权利要求12所述的装置,还包括:保存单元;
所述接收单元,还用于接收所述数据请求方发送的数据列表获取请求;
所述运算单元,还用于响应于所述接收单元接收的所述数据列表获取请求,对原始数据列表中的每条数据记录的原始key值进行所述第一哈希,得到经过一次哈希的key值,并使用所述第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值;各条数据记录的经过一次哈希的key值和经过一次加密的value值构成经过一次加密的数据列表;
所述发送单元,还用于向所述数据请求方返回所述运算单元运算得到的所述经过一次加密的数据列表;
所述接收单元,还用于接收所述数据请求方针对所述经过一次加密的数据列表进行二次加密后返回的经过两次加密的数据列表;所述经过两次加密的数据列表包括所述各条数据记录的哈希key值和经过两次加密的value值;
所述运算单元,还用于使用所述第一加密秘钥对应的所述第一解密秘钥,对所述接收单元接收到的所述各条数据记录的经过两次加密的vlaue值进行一次解密,得到各自的加密value值;
所述保存单元,用于保存所述各条数据记录的哈希key值和加密value值构成的所述加密数据列表。
14.根据权利要求12或13所述的装置,所述第一哈希和所述第二哈希通过使用不同参数的同一哈希算法实现。
15.一种保护隐私的数据查询装置,设置于应用于数据请求方;对应于所述数据请求方的数据提供方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由所述数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密,再由所述数据请求方使用第二加密秘钥进行二次加密后,由所述数据提供方使用所述第一加密秘钥对应的第一解密秘钥对二次加密结果进行一次解密得到;所述装置包括:
运算单元,用于对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
发送单元,用于向所述数据提供方发送数据查询请求;所述数据查询请求包括所述运算单元运算得到的所述经过一次哈希的key值;
接收单元,用于接收所述数据提供方在针对所述经过一次哈希的key值进行所述第一哈希后,基于二次哈希结果从所述加密数据列表中查找到的对应的加密value值;
所述运算单元,还用于使用所述第二加密秘钥对应的第二解密秘钥,对所述接收单元接收到的所述加密value值进行二次解密,得到所述待查询数据记录的原始value值。
16.根据权利要求15所述的装置,
所述发送单元,还用于向所述数据提供方发送数据列表获取请求;
所述接收单元,还用于接收所述数据提供方返回的经过一次加密的数据列表;所述经过一次加密的数据列表包括各条数据记录的经过一次哈希的key值和经过一次加密的value值;
所述运算单元,还用于对所述接收单元接收的所述经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值,并使用所述第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到经过两次加密的value值;各条数据记录的哈希key值和经过两次加密的value值构成经过两次加密的数据列表;
所述发送单元,还用于向所述数据提供方返回所述运算单元运算得到的所述经过两次加密的数据列表;以使所述数据提供方在对所述经过两次加密的数据列表中的各条数据记录的经过两次加密的value值进行一次解密后,将经过一次value值解密的所述经过两次加密的数据列表作为所述加密数据列表进行保存。
17.根据权利要求16所述的装置,其中,将每条数据记录的经过一次哈希的key值和经过一次加密的value值作为一个经过一次加密的键值对;
所述运算单元具体用于:
针对所述经过一次加密的数据列表,随机调整其中各个经过一次加密的键值对的排列顺序,得到调整后的数据列表;
对所述调整后的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值。
18.一种保护隐私的数据查询装置,所述装置应用于数据提供方;所述数据提供方对应的数据请求方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由所述数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密后,再由所述数据请求方使用第二加密秘钥进行二次加密得到;所述装置包括:
接收单元,用于接收数据请求方发送的数据查询请求;所述数据查询请求包括所述数据请求方针对待查询数据记录的原始key值进行所述第二哈希后得到的经过一次哈希的key值;
运算单元,用于对所述接收单元接收的所述经过一次哈希的key值进行所述第一哈希,得到所述待查询数据记录的哈希key值;
发送单元,用于向所述数据请求方返回所述运算单元运算得到的所述待查询数据记录的哈希key值;
所述接收单元,还用于接收所述数据请求方基于所述待查询数据记录的哈希key值,从所述加密数据列表中查找到的对应的加密value值;
所述运算单元,还用于使用所述第一加密秘钥对应的第一解密秘钥对所述接收单元接收的所述加密value值进行解密,得到经过一次解密的加密value值;
所述发送单元,还用于向所述数据请求方发送所述运算单元运算得到的所述经过一次解密的加密value值,以使所述数据请求方使用所述第二加密秘钥对应的第二解密秘钥对所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
19.根据权利要求18所述的装置,
所述接收单元,还用于接收所述数据请求方发送的数据列表获取请求;
所述运算单元,还用于响应于所述接收单元接收的所述数据列表获取请求,对原始数据列表中的每条数据记录的原始key值进行所述第一哈希,得到经过一次哈希的key值,并使用所述第一加密秘钥,对该条数据记录的原始value值进行一次加密,得到经过一次加密的value值;各条数据记录的经过一次哈希的key值和经过一次加密的value值构成经过一次加密的数据列表;
所述发送单元,还用于向所述数据请求方返回所述运算单元运算得到的所述经过一次加密的数据列表;以使得所述数据请求方针对所述经过一次加密的数据列表进行二次加密,并将得到的经过两次加密的数据列表作为所述加密数据列表进行保存。
20.根据权利要求18或19所述的装置,所述第一哈希和所述第二哈希通过使用不同参数的同一哈希算法实现。
21.一种保护隐私的数据查询装置,设置于数据请求方;所述数据请求方维护有加密数据列表,所述加密数据列表用于记录多条以键值对形式存储的数据记录;其中,与每条数据记录对应的键值对包括哈希key值和加密value值;所述哈希key值由数据提供方针对该条数据记录的原始key值先进行第一哈希后,再由所述数据请求方进行第二哈希得到;所述加密value值由所述数据提供方使用第一加密秘钥对该条数据记录的原始value值先进行一次加密后,再由所述数据请求方使用第二加密秘钥进行二次加密得到;所述装置包括:
运算单元,用于对待查询数据记录的原始key值进行所述第二哈希,得到经过一次哈希的key值;
发送单元,用于向所述数据提供方发送数据查询请求;所述数据查询请求包括所述运算单元运算得到的所述经过一次哈希的key值;
接收单元,用于接收所述数据提供方在针对所述经过一次哈希的key值进行所述第一哈希后发送的哈希key值;
查找单元,用于基于所述接收单元接收的哈希key值,从所述加密数据列表中查找对应的加密value值;
所述发送单元,还用于向所述数据提供方发送所述查找单元查找到的加密value值;
所述接收单元,还用于接收所述数据提供方在使用所述第一加密秘钥对应的第一解密秘钥,对所述查找到的加密value值进行一次解密后发送的经过一次解密的加密value值;
所述运算单元,还用于使用所述第二加密秘钥对应的第二解密秘钥,对所述接收单元接收到的所述经过一次解密的加密value值进行二次解密,得到所述待查询数据记录的原始value值。
22.根据权利要求21所述的装置,还包括:保存单元;
所述发送单元,还用于向所述数据提供方发送数据列表获取请求;
所述接收单元,还用于接收所述数据提供方返回的经过一次加密的数据列表;所述经过一次加密的数据列表包括各条数据记录的经过一次哈希的key值和经过一次加密的value值;
所述运算单元,还用于对所述接收单元接收的所述经过一次加密的数据列表中的每条数据记录的经过一次哈希的key值进行所述第二哈希,得到哈希key值,并使用所述第二加密秘钥,对该条数据记录的经过一次加密的value值进行二次加密,得到加密value值;
所述保存单元,用于保存各条数据记录的哈希key值和加密value值构成的所述加密数据列表。
23.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-3中任一项所述的方法或权利要求4-6中任一项所述的方法或权利要求7-9中任一项所述的方法或权利要求10-11中任一项所述的方法。
24.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-3中任一项所述的方法或权利要求4-6中任一项所述的方法或权利要求7-9中任一项所述的方法或权利要求10-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911303644.7A CN111046047B (zh) | 2019-12-17 | 2019-12-17 | 保护隐私的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911303644.7A CN111046047B (zh) | 2019-12-17 | 2019-12-17 | 保护隐私的数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111046047A true CN111046047A (zh) | 2020-04-21 |
CN111046047B CN111046047B (zh) | 2023-05-09 |
Family
ID=70237176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911303644.7A Active CN111046047B (zh) | 2019-12-17 | 2019-12-17 | 保护隐私的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111046047B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935163A (zh) * | 2020-08-14 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 保护隐私的数据联合处理方法及装置 |
CN113434890A (zh) * | 2021-07-07 | 2021-09-24 | 海通证券股份有限公司 | 数据查询方法及系统、可读存储介质 |
CN115168907A (zh) * | 2022-09-05 | 2022-10-11 | 盛业信息科技服务(深圳)有限公司 | 保护数据隐私的数据匹配方法、系统、设备及存储介质 |
CN116257887A (zh) * | 2023-05-16 | 2023-06-13 | 建信金融科技有限责任公司 | 数据查询方法、装置、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185847A1 (en) * | 2009-01-20 | 2010-07-22 | New York University | Database outsourcing with access privacy |
CN105556890A (zh) * | 2013-10-04 | 2016-05-04 | 株式会社日立制作所 | 加密处理方法、加密系统以及服务器 |
CN106611128A (zh) * | 2016-07-19 | 2017-05-03 | 四川用联信息技术有限公司 | 云存储中基于二次加密的数据验证和数据恢复算法 |
CN107579979A (zh) * | 2017-09-07 | 2018-01-12 | 成都理工大学 | 基于区块链技术的电子病历的共享查询方法 |
CN110580418A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
-
2019
- 2019-12-17 CN CN201911303644.7A patent/CN111046047B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185847A1 (en) * | 2009-01-20 | 2010-07-22 | New York University | Database outsourcing with access privacy |
CN105556890A (zh) * | 2013-10-04 | 2016-05-04 | 株式会社日立制作所 | 加密处理方法、加密系统以及服务器 |
CN106611128A (zh) * | 2016-07-19 | 2017-05-03 | 四川用联信息技术有限公司 | 云存储中基于二次加密的数据验证和数据恢复算法 |
CN107579979A (zh) * | 2017-09-07 | 2018-01-12 | 成都理工大学 | 基于区块链技术的电子病历的共享查询方法 |
CN110580418A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链账户的隐私数据查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
刑文凯: "基于云计算数据查询的安全索引构建方法" * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935163A (zh) * | 2020-08-14 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 保护隐私的数据联合处理方法及装置 |
CN113434890A (zh) * | 2021-07-07 | 2021-09-24 | 海通证券股份有限公司 | 数据查询方法及系统、可读存储介质 |
CN115168907A (zh) * | 2022-09-05 | 2022-10-11 | 盛业信息科技服务(深圳)有限公司 | 保护数据隐私的数据匹配方法、系统、设备及存储介质 |
CN115168907B (zh) * | 2022-09-05 | 2022-11-29 | 盛业信息科技服务(深圳)有限公司 | 保护数据隐私的数据匹配方法、系统、设备及存储介质 |
CN116257887A (zh) * | 2023-05-16 | 2023-06-13 | 建信金融科技有限责任公司 | 数据查询方法、装置、系统、设备及存储介质 |
CN116257887B (zh) * | 2023-05-16 | 2023-08-22 | 建信金融科技有限责任公司 | 数据查询方法、装置、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111046047B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10498706B2 (en) | Searchable encryption enabling encrypted search based on document type | |
US8447983B1 (en) | Token exchange | |
CN111046047B (zh) | 保护隐私的数据查询方法及装置 | |
EP3161992B1 (en) | Privacy-preserving querying mechanism on privately encrypted data on semi-trusted cloud | |
US10346627B2 (en) | Privacy preserving data querying | |
CN111090870A (zh) | 保护隐私的用户信息查询方法及装置 | |
CN107194273B (zh) | 可连续查询的数据脱敏方法和系统 | |
WO2019090841A1 (zh) | 一种加密文件的检索方法、系统、终端设备及存储介质 | |
EP4020265A1 (en) | Method and device for storing encrypted data | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN111917711B (zh) | 数据访问方法、装置、计算机设备和存储介质 | |
CN115098868A (zh) | 保护隐私的数据提供、查询方法、装置及系统 | |
CN115412356A (zh) | 数据查询设备法、装置、计算机设备以及存储介质 | |
CN115795514A (zh) | 一种隐私信息检索方法、装置及系统 | |
Lazrig et al. | Privacy preserving record matching using automated semi-trusted broker | |
CN110032890B (zh) | 一种安全网络装置和一种安全访问方法 | |
CN116975886A (zh) | 基于隐私保护的数据查询方法及装置 | |
CN113312650B (zh) | 交易日志隐私保护方法及装置 | |
CN116010529B (zh) | 数据处理方法及系统 | |
CN118839366A (zh) | 数据检索方法、计算设备、存储介质及计算机程序产品 | |
CN116303591A (zh) | 数据存储、查询的方法及装置 | |
CN117336010A (zh) | 基于可信执行环境的轻量级布尔查询可搜索对称加密方法 | |
CN117077155A (zh) | 一种数据库操作方法、装置、设备、芯片和存储介质 | |
CN116244307A (zh) | 数据查询方法及装置 | |
CN117708400A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028433 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |