CN113434890B - 数据查询方法及系统、可读存储介质 - Google Patents
数据查询方法及系统、可读存储介质 Download PDFInfo
- Publication number
- CN113434890B CN113434890B CN202110768672.7A CN202110768672A CN113434890B CN 113434890 B CN113434890 B CN 113434890B CN 202110768672 A CN202110768672 A CN 202110768672A CN 113434890 B CN113434890 B CN 113434890B
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- party
- decryption key
- inquired
- 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/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/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/6227—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 where protection concerns the structure of data, e.g. records, types, queries
Abstract
一种数据查询方法及系统、可读存储介质,所述方法包括:查询方向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密;所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据;所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密;所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据;所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。本发明可以对双方的隐私信息进行全面有效的安全保护,且降低了查询成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据查询方法及系统、可读存储介质。
背景技术
随着互联网技术的飞速发展,各行各业中的数据规模正呈现出爆炸性增长的态势,数据的商业价值也不断攀升。然而,受限于商业利益或是法律法规,多数产业单位及机构之间目前难以进行有效的数据交流,尤其在涉及用户隐私信息查询的相关业务交流中,查询方出于对数据安全性的考虑无法向被查询方直接展示查询内容,被查询方也无法向查询方展示与查询内容无关的数据。
例如,在某一证券公司为新入客户提供服务时,因为缺乏该客户过往的交易信息与记录,公司往往难以判断提供某项服务的潜在风险,而查询该客户在其他公司内存在的交易记录则往往需要提供具体的客户身份信息,导致该公司泄露客户的隐私数据。
然而在现有技术中,当涉及用户隐私信息查询时,隐私保护性较差,查询成本较高。
发明内容
本发明解决的技术问题是提供一种数据查询方法及系统、可读存储介质,可以对双方的隐私信息进行全面有效的安全保护,且降低了查询成本。
为解决上述技术问题,本发明实施例提供一种数据查询方法,包括:查询方向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据;所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致;所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方;所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方;所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
可选的,在所述查询方采用第一加解密钥对待查询数据进行加密之前,所述的数据查询方法还包括:所述查询方生成第一加解密钥;所述被查询方生成第二加解密钥;其中,所述第一加解密钥和第二加解密钥满足:D(E(E(x,eA),eB),dA)=E(x,eB);D(E(E(x,eB),eA),dB)=E(x,eA);其中,x用于表示数据,eA用于表示所述第一加解密钥中的加密密钥,dA用于表示所述第一加解密钥中的解密密钥,eB用于表示所述第二加解密钥中的加密密钥,dB用于表示所述第二加解密钥中的解密密钥,E()用于表示加密运算,D()用于表示解密运算,E(x,eA)用于表示采用第一加解密钥中的加密密钥对数据进行加密运算,E(E(x,eA),eB)用于表示采用第二加解密钥中的加密密钥对一次加密的数据进行二次加密运算,D(E(E(x,eA),eB),dA)用于表示采用第一加解密钥中的解密密钥对二次加密数据进行一次解密运算,E(x,eB)用于表示采用第二加解密钥中的加密密钥对数据进行一次加密运算。
可选的,所述查询方生成第一加解密钥包括:所述查询方生成加密运算参数N,所述加密运算参数N为质数;所述查询方随机选取小于N-1且与N-1互质的整数作为所述第一加解密钥中的加密密钥eA;所述查询方计算所述第一加解密钥中的加密密钥eA关于N-1的模逆元,作为所述第一加解密钥中的解密密钥dA;所述被查询方生成第二加解密钥包括:所述被查询方从查询方接收所述加密运算参数N;所述被查询方随机选取小于N-1且与N-1互质的整数作为所述第二加解密钥中的加密密钥eB;所述被查询方计算所述第二加解密钥中的加密密钥eB关于N-1的模逆元,作为所述第二加解密钥中的解密密钥dB。
可选的,所述加密运算参数N包含于所述查询请求中。
可选的,所述加密运算参数N选自:256字节至2048字节。
可选的,在所述查询方采用第一加解密钥对待查询数据进行加密之前,所述数据查询方法还包括:所述查询方确定初始待查询数据,然后对所述初始待查询数据进行预加密处理,以得到所述待查询数据。
可选的,所述查询方采用哈希算法对所述初始待查询数据进行预加密处理。
可选的,在所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据之前,所述数据查询方法还包括:所述被查询方确定初始数据库数据中的至少一部分初始数据库数据,然后对所述至少一部分初始数据库数据进行预加密处理,以得到所述数据库中的至少一部分数据。
可选的,所述被查询方采用哈希算法对所述至少一部分初始数据库数据进行预加密处理。
可选的,所述查询方采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据包括:所述查询方采用RSA算法以及第一加解密钥对待查询数据进行加密,并得到加密结果:其中,x∈X;其中,XA用于表示查询方加密数据,x为待查询数据集合X中的各个待查询数据,eA用于表示所述第一加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
可选的,所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据包括:所述被查询方采用RSA算法以及第二加解密钥对数据库中的至少一部分数据进行加密,并得到加密结果:其中,y∈Y;其中,YB用于表示一次加密的数据库数据,y为数据库Y中的至少一部分数据Y中的各个数据,eB用于表示所述第二加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
可选的,所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据包括:所述查询方采用RSA算法以及第一加解密钥对收到的一次加密的数据库数据进行二次加密,并得到加密结果:其中,yB∈YB;其中,YAB用于表示二次加密的数据库数据,yB为一次加密的数据库数据集合YB中的各个一次加密的数据库数据,eA用于表示所述第一加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
可选的,所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据为:其中,yAB∈YAB;其中,YA用于表示一次解密的数据库数据,yAB为二次加密的数据库数据集合YAB中的各个二次加密的数据库数据,dB用于表示所述第二加解密钥中的解密密钥,N用于表示加密运算参数,且N为质数。
可选的,所述被查询方计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据为:IA=YA∩XA;其中,IA用于表示交集数据,YA用于表示一次解密的数据库数据,XA用于表示查询方加密数据。
可选的,所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果包括:所述查询方采用RSA算法以及所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果:
为解决上述技术问题,本发明实施例提供一种数据查询系统,包括:查询方的第一加密模块,用于向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据;被查询方的一次加密模块,用于采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致;所述查询方的二次加密模块,用于采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方;所述被查询方的一次解密模块,用于采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方;所述查询方的二次解密模块,用于采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
为解决上述技术问题,本发明实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述数据查询方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例中,通过设置查询方和被查询方两个参与方,在由双方对数据库中的数据分别进行一轮加密(即共进行两轮加密),由被查询方进行一轮解密后,相当于对数据库中的数据仅保留了查询方的加密结果,然后由被查询方将该数据与一轮加密的待查询数据计算交集,然后查询方解密交集数据得到查询结果。采用上述方案,既保证了被查询方对待查询数据的不可见,又保证了查询方对一次加密的数据库数据的不可见,且查询方接收到的交集数据仅保留了与己方待查询数据相同的那部分数据,而没有与己方待查询数据不同的那部分数据,从而能够对双方的隐私信息进行全面有效的安全保护,且相比于引入第三方作为公证,有效降低了查询成本。
进一步,第一加解密钥和第二加解密钥满足:D(E(E(x,eA),eB),dA)=E(x,eB),D(E(E(x,eB),eA),dB)=E(x,eA),可以使得采用第一加解密钥中的解密密钥对二次加密数据进行一次解密运算后的数据等于采用第二加解密钥中的加密密钥对数据进行一次加密运算后的数据,也即被查询方加密、查询方加密、被查询方解密后的数据等于查询方加密后的数据;并且使得采用第二加解密钥中的解密密钥对二次加密数据进行一次解密运算后的数据等于采用第一加解密钥中的加密密钥对数据进行一次加密运算后的数据,也即查询方加密、被查询方加密、查询方解密后的数据等于被查询方加密后的数据。相当于两组加解密钥对(eA,dA)与(eB,dB)满足可交换关系,进一步保证加解密后的数据具有有效性和可靠性,不因双方多次加解密而出现错漏。
进一步,通过设置加密运算参数N,所述加密运算参数N为质数,且加密密钥为随机选取的小于N-1且与N-1互质的整数,解密密钥为加密密钥关于N-1的模逆元,可以具体实现两组加解密钥对(eA,dA)与(eB,dB)满足可交换关系。
进一步,所述查询方确定初始待查询数据,然后对所述初始待查询数据进行预加密处理,以得到所述待查询数据,从而可以通过预加密处理,在从查询方生成待查询数据至采用第一加解密钥对待查询数据进行加密的过程中,进一步提高安全性和保密性。
进一步,采用RSA算法对数据进行加密,主要依赖于快速模幂运算,计算整数的幂次方然后被正整数N所除得到的余数,运算简单,运算量非常小,具有良好的运算效率与稳定性能,能够快速、稳健地解决查询问题。
附图说明
图1是本发明实施例中一种数据查询方法的流程图;
图2是本发明实施例中另一种数据查询方法的数据流图;
图3是本发明实施例中一种数据查询系统的结构示意图。
具体实施方式
在现有技术中,受限于商业利益或是法律法规,多数产业单位及机构之间目前难以进行有效的数据交流,尤其在涉及用户隐私信息查询的相关业务交流中,查询方出于对数据安全性的考虑无法向被查询方直接展示查询内容,被查询方也无法向查询方展示与查询内容无关的数据。
本发明的发明人经过研究发现,现有的数据查询方法普遍通过引入第三方作为公证监督个体从而保证隐私数据的安全,而在实际场景中,第三方的参与往往会造成更高的商业成本和资源消耗,此外,受到各类利益因素的影响,第三方的客观和公正性也缺乏有效保障,大大降低了该类查询方案的安全性和增加了查询成本。
在本发明实施例中,通过设置查询方和被查询方两个参与方,在由双方对数据库中的数据分别进行一轮加密(即共进行两轮加密),由被查询方进行一轮解密后,相当于对数据库中的数据仅保留了查询方的加密结果,然后由被查询方将该数据与一轮加密的待查询数据计算交集,然后查询方解密交集数据得到查询结果。采用上述方案,既保证了被查询方对待查询数据的不可见,又保证了查询方对一次加密的数据库数据的不可见,且查询方接收到的交集数据仅保留了与己方待查询数据相同的那部分数据,而没有与己方待查询数据不同的那部分数据,从而能够对双方的隐私信息进行全面有效的安全保护,且相比于引入第三方作为公证,有效降低了查询成本。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照图1,图1是本发明实施例中一种数据查询方法的流程图。所述数据查询方法可以用于查询方向被查询方查询数据,还可以包括步骤S11至步骤S15:
步骤S11:查询方向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据;
步骤S12:所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致;
步骤S13:所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方;
步骤S14:所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方;
步骤S15:所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
可以理解的是,在具体实施中,所述方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中。
在步骤S11的具体实施中,可以包括两个参与方:查询方与被查询方。
其中,查询方可以拥有一个隐私数据集X,其中包含一或多个对于被查询方不可知的隐私数据x,被查询方可以拥有一个隐私数据集Y,其中包含一个或多个对于查询方不可知的隐私数据y。
在一个具体实施例中,查询方可以为某一假设证券机构A,拥有隐私数据集X可以为新入客户证件号码集合,例如多个待查询是否存在违约记录的新客户的身份证号码。
被查询方可以为另一证券机构B,拥有隐私数据集Y为存在高风险行为记录的客户证件号码集合,也即被查询方可以拥有数据库,该数据库中包含所有存在高风险行为记录的客户的身份证号码。
在具体实施中,所述查询方向被查询方发送的查询请求可以是预先约定的指令信息,从而减少发送查询请求的信令开销。
在一个具体实施例中,所述X可以为预设数量个身份证号码,如
X={220203200506197750,440683199803081665,62242819600501806X}。
所述Y可以为存在高风险行为记录的客户证件号码集合,如
Y={…………220203200506197750,62242819600501806X,…………}。
进一步地,在所述查询方采用第一加解密钥对待查询数据进行加密之前,还可以包括:所述查询方生成第一加解密钥;所述被查询方生成第二加解密钥;其中,所述第一加解密钥和第二加解密钥满足:
D(E(E(x,eA),eB),dA)=E(x,eB);
D(E(E(x,eB),eA),dB)=E(x,eA);
其中,x用于表示数据,eA用于表示所述第一加解密钥中的加密密钥,dA用于表示所述第一加解密钥中的解密密钥,eB用于表示所述第二加解密钥中的加密密钥,dB用于表示所述第二加解密钥中的解密密钥,E()用于表示加密运算,D()用于表示解密运算,E(x,eA)用于表示采用第一加解密钥中的加密密钥对数据进行加密运算,E(E(x,eA),eB)用于表示采用第二加解密钥中的加密密钥对一次加密的数据进行二次加密运算,D(E(E(x,eA),eB),dA)用于表示采用第一加解密钥中的解密密钥对二次加密数据进行一次解密运算,E(x,eB)用于表示采用第二加解密钥中的加密密钥对数据进行一次加密运算。
在本发明实施例中,通过设置第一加解密钥和第二加解密钥满足:D(E(E(x,eA),eB),dA)=E(x,eB),D(E(E(x,eB),eA),dB)=E(x,eA),可以使得采用第一加解密钥中的解密密钥对二次加密数据进行一次解密运算后的数据等于采用第二加解密钥中的加密密钥对数据进行一次加密运算后的数据,也即被查询方加密、查询方加密、被查询方解密后的数据等于查询方加密后的数据;并且使得采用第二加解密钥中的解密密钥对二次加密数据进行一次解密运算后的数据等于采用第一加解密钥中的加密密钥对数据进行一次加密运算后的数据,也即查询方加密、被查询方加密、查询方解密后的数据等于被查询方加密后的数据。相当于两组加解密钥对(eA,dA)与(eB,dB)满足可交换关系,进一步保证加解密后的数据具有有效性和可靠性,不因双方多次加解密而出现错漏。
在具体实施中,查询方和被查询方可以是基于同一加密运算参数N,分别生成加解密钥的。
具体地,所述查询方生成第一加解密钥的步骤可以包括:所述查询方生成加密运算参数N,所述加密运算参数N为质数;所述查询方随机选取小于N-1且与N-1互质的整数作为所述第一加解密钥中的加密密钥eA;所述查询方计算所述第一加解密钥中的加密密钥eA关于N-1的模逆元,作为所述第一加解密钥中的解密密钥dA;所述被查询方生成第二加解密钥的步骤可以包括:所述被查询方从查询方接收所述加密运算参数N;所述被查询方随机选取小于N-1且与N-1互质的整数作为所述第二加解密钥中的加密密钥eB;所述被查询方计算所述第二加解密钥中的加密密钥eB关于N-1的模逆元,作为所述第二加解密钥中的解密密钥dB。
在本发明实施例中,通过设置加密运算参数N,所述加密运算参数N为质数,且加密密钥为随机选取的小于N-1且与N-1互质的整数,解密密钥为加密密钥关于N-1的模逆元,通过采用质数、互质、模逆元,可以具体实现两组加解密钥对(eA,dA)与(eB,dB)满足可交换关系。
进一步地,所述加密运算参数N可以包含于所述查询请求中。
在本发明实施例中,通过设置发送查询请求时一并发送加密运算参数N,可以节约信令开销,提高信息交互效率。
需要指出的是,在本发明实施例中,还可以单独发送加密运算参数N。
更进一步地,为了提高保密性,所述加密运算参数N可以设置为较大的数,从而降低暴力破解的可能性。
可以理解的是,N不应当设置过大,以免由于运算量过大导致查询成本过高,查询效率降低;N不应当设置过小,以免由于过于简单导致易破解,安全性下降。
作为一个非限制性的例子,所述加密运算参数N可以选自:256字节至2048字节,例如可以为1024字节。
在一个具体实施例中,可以是N=138007294518017919820913819638156153027542526049139258963564356651378226177179876076867128586320925582763652115928391531142870191976016512524321451336950375350100575169116266631196286543443534735889797800261156186835890349085162132675449449372841663328033944061984841745932098109793487997929832758788458357097。
进一步地,在所述查询方采用第一加解密钥对待查询数据进行加密之前,还可以包括:所述查询方确定初始待查询数据,然后对所述初始待查询数据进行预加密处理,以得到所述待查询数据。
在本发明实施例中,所述查询方确定初始待查询数据,然后对所述初始待查询数据进行预加密处理,以得到所述待查询数据,从而可以通过预加密处理,在从查询方生成待查询数据至采用第一加解密钥对待查询数据进行加密的过程中,进一步提高安全性和保密性。
更进一步地,所述查询方可以采用哈希算法对所述初始待查询数据进行预加密处理。
具体地,可以对隐私数据x进行预加密处理后得到h(x),对隐私数据y进行预加密处理后得到h(y),其中,h(x)、h(y)用于表示哈希运算。
在本发明实施例中,采用哈希算法进行预加密处理,可以在从查询方生成待查询数据至采用第一加解密钥对待查询数据进行加密的过程中,更好地提高安全性和保密性。
进一步地,所述查询方采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据的步骤可以包括:所述查询方采用RSA算法以及第一加解密钥对待查询数据进行加密,并得到加密结果:
其中,XA用于表示查询方加密数据,x为待查询数据集合X中的各个待查询数据,eA用于表示所述第一加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
在前文所述的具体实施例中,可以设置N=138007294518017919820913819638156153027542526049139258963564356651378226177179876076867128586320925582763652115928391531142870191976016512524321451336950375350100575169116266631196286543443534735889797800261156186835890349085162132675449449372841663328033944061984841745932098109793487997929832758788458357097。
则可以取第一加解密钥中的加密密钥eA=229445255058280459945450075706928328795369897095129917654423657823746208308680278808246128095967472405226723330825052710545334773067227。
第一加解密钥中的解密密钥dA=1968629534468563179070530089628677428701732131898055452279661612516470593662735073389800624623095442924835011626751685757009850714620004105228339431091072304106980141126183902760070947378051270124085826928556673560921322920680874680700941813180369467118786951942168033534567518759562070168763799940752389803。
同理可知,被查询方的第二加解密钥中的加密密钥eB和第二加解密钥中的解密密钥dB可以设置为与eA和dA具有相同或相近字节数的情况。
在步骤S12的具体实施中,所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致。
进一步地,所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据包括:所述被查询方采用RSA算法以及第二加解密钥对数据库中的至少一部分数据进行加密,并得到加密结果:
其中,YB用于表示一次加密的数据库数据,y为数据库Y中的至少一部分数据Y中的各个数据,eB用于表示所述第二加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
在本发明实施例中,通过采用RSA算法对数据进行加密,主要依赖于快速模幂运算,计算整数的幂次方然后被正整数N所除得到的余数,运算简单,运算量非常小,具有良好的运算效率与稳定性能,能够快速、稳健地解决查询问题。
进一步地,在所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据之前,所述方法还包括:所述被查询方确定初始数据库数据中的至少一部分初始数据库数据,然后对所述至少一部分初始数据库数据进行预加密处理,以得到所述数据库中的至少一部分数据。
在本发明实施例中,所述被查询方确定初始数据库数据中的至少一部分初始数据库数据,然后对所述至少一部分初始数据库数据进行预加密处理,从而可以通过预加密处理,在被查询方将初始数据库数据送至采用第二加解密钥加密的过程中,进一步提高安全性和保密性。
更进一步地,所述被查询方采用哈希算法对所述至少一部分初始数据库数据进行预加密处理。
具体地,可以对隐私数据y进行预加密处理后得到h(y),其中,h(y)用于表示哈希运算。
在本发明实施例中,采用哈希算法进行预加密处理,可以在被查询方将初始数据库数据送至采用第二加解密钥加密的过程中,更好地提高安全性和保密性。
可以理解的是,在进行预加密处理之后,上述加密结果可以为:
其中,YB用于表示加密结果,h(y)用于表示哈希运算,eB用于表示所述第二加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
在步骤S13的具体实施中,所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方。
进一步地,所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据的步骤可以包括:所述查询方采用RSA算法以及第一加解密钥对收到的一次加密的数据库数据进行二次加密,并得到加密结果:
其中,YAB用于表示二次加密的数据库数据,yB为一次加密的数据库数据集合YB中的各个一次加密的数据库数据,eA用于表示所述第一加解密钥中的加密密钥,N用于表示加密运算参数,且N为质数。
在步骤S14的具体实施中,所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方。
进一步地,所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据为:
其中,YA用于表示一次解密的数据库数据,yAB为二次加密的数据库数据集合YAB中的各个二次加密的数据库数据,dB用于表示所述第二加解密钥中的解密密钥,N用于表示加密运算参数,且N为质数。
进一步地,所述被查询方计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据为:
IA=YA∩XA;
其中,IA用于表示交集数据,YA用于表示一次解密的数据库数据,XA用于表示查询方加密数据。
在步骤S15的具体实施中,所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
进一步地,所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果的步骤可以包括:所述查询方采用RSA算法以及所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果:
其中,I用于表示查询结果,iA为交集数据IA中的各个数据,dA用于表示所述第一加解密钥中的解密密钥,N用于表示加密运算参数,且N为质数。
在前文所述的具体实施中,查询结果可以为:
I={220203200506197750,62242819600501806X}。
在本发明实施例中,通过设置查询方和被查询方两个参与方,在由双方对数据库中的数据分别进行一轮加密(即共进行两轮加密),由被查询方进行一轮解密后,相当于对数据库中的数据仅保留了查询方的加密结果,然后由被查询方将该数据与一轮加密的待查询数据计算交集,然后查询方解密交集数据得到查询结果。采用上述方案,既保证了被查询方对待查询数据的不可见,又保证了查询方对一次加密的数据库数据的不可见,且查询方接收到的交集数据仅保留了与己方待查询数据相同的那部分数据,而没有与己方待查询数据不同的那部分数据,从而能够对双方的隐私信息进行全面有效的安全保护,且相比于引入第三方作为公证,有效降低了查询成本。
参照图2,图2是本发明实施例中另一种数据查询方法的数据流图。所述另一种数据查询方法可以包括步骤S201至步骤S213,以下对各个步骤进行说明。
在步骤S201中,查询方21生成加密运算参数N。
在步骤S202中,查询方21向被查询方22发送查询请求以及加密运算参数N。
在步骤S203中,查询方21生成第一加解密钥。
在步骤S204中,被查询方22生成第二加解密钥。
在步骤S205中,查询方21加密得到查询方加密数据XA。
在步骤S206中,被查询方22加密得到一次加密的数据库数据YB。
在步骤S207中,被查询方22向查询方21发送一次加密的数据库数据YB。
步骤S208中,查询方21加密得到二次加密的数据库数据YAB。
在步骤S209中,查询方21向被查询方22发送查询方加密数据XA以及二次加密的数据库数据YAB。
在步骤S210中,被查询方22解密得到一次解密的数据库数据YA。
在步骤S211中,被查询方22计算XA与YA之间的交集数据IA。
在步骤S212中,被查询方22向查询方21发送交集数据IA。
在步骤S213中,查询方21对交集数据IA二次解密,得到查询结果I。
在具体实施中,有关步骤S201至步骤S213的更多详细内容请参照图1中的步骤描述进行执行,此处不再赘述。
参照图3,图3是本发明实施例中一种数据查询系统的结构示意图。所述数据查询系统可以包括:
查询方的第一加密模块31,用于向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据;
被查询方的一次加密模块32,用于采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致;
所述查询方的二次加密模块33,用于采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方;
所述被查询方的一次解密模块34,用于采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方;
所述查询方的二次解密模块35,用于采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
关于该数据查询系统的原理、具体实现和有益效果请参照前文所述的关于数据查询方法的相关描述,此处不再赘述。
本发明实施例还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。所述可读存储介质可以是计算机可读存储介质,例如可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器,还可以包括光盘、机械硬盘、固态硬盘等。
具体地,在本发明实施例中,所述处理器可以为中央处理单元(centralprocessing unit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称DSP)、专用集成电路(application specificintegrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(staticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (17)
1.一种数据查询方法,其特征在于,包括:
查询方向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据;
所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致;
所述查询方采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方;
所述被查询方采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方;
所述查询方采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
2.根据权利要求1所述的数据查询方法,其特征在于,
在所述查询方采用第一加解密钥对待查询数据进行加密之前,还包括:
所述查询方生成第一加解密钥;
所述被查询方生成第二加解密钥;
其中,所述第一加解密钥和第二加解密钥满足:
D(E(E(x,eA),eB),dA)=E(x,eB);
D(E(E(x,eB),eA),dB)=E(x,eA);
其中,x用于表示数据,eA用于表示所述第一加解密钥中的加密密钥,dA用于表示所述第一加解密钥中的解密密钥,eB用于表示所述第二加解密钥中的加密密钥,dB用于表示所述第二加解密钥中的解密密钥,E()用于表示加密运算,D()用于表示解密运算,E(x,eA)用于表示采用第一加解密钥中的加密密钥对数据进行加密运算,E(E(x,eA),eB)用于表示采用第二加解密钥中的加密密钥对一次加密的数据进行二次加密运算,D(E(E(x,eA),eB),dA)用于表示采用第一加解密钥中的解密密钥对二次加密数据进行一次解密运算,E(x,eB)用于表示采用第二加解密钥中的加密密钥对数据进行一次加密运算。
3.根据权利要求2所述的数据查询方法,其特征在于,
所述查询方生成第一加解密钥包括:
所述查询方生成加密运算参数N,所述加密运算参数N为质数;
所述查询方随机选取小于N-1且与N-1互质的整数作为所述第一加解密钥中的加密密钥eA;
所述查询方计算所述第一加解密钥中的加密密钥eA关于N-1的模逆元,作为所述第一加解密钥中的解密密钥dA;
所述被查询方生成第二加解密钥包括:
所述被查询方从查询方接收所述加密运算参数N;
所述被查询方随机选取小于N-1且与N-1互质的整数作为所述第二加解密钥中的加密密钥eB;
所述被查询方计算所述第二加解密钥中的加密密钥eB关于N-1的模逆元,作为所述第二加解密钥中的解密密钥dB。
4.根据权利要求3所述的数据查询方法,其特征在于,所述加密运算参数N包含于所述查询请求中。
5.根据权利要求3所述的数据查询方法,其特征在于,所述加密运算参数N选自:256字节至2048字节。
6.根据权利要求1所述的数据查询方法,其特征在于,在所述查询方采用第一加解密钥对待查询数据进行加密之前,所述方法还包括:
所述查询方确定初始待查询数据,然后对所述初始待查询数据进行预加密处理,以得到所述待查询数据。
7.根据权利要求6所述的数据查询方法,其特征在于,所述查询方采用哈希算法对所述初始待查询数据进行预加密处理。
8.根据权利要求1所述的数据查询方法,其特征在于,在所述被查询方采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据之前,所述方法还包括:
所述被查询方确定初始数据库数据中的至少一部分初始数据库数据,然后对所述至少一部分初始数据库数据进行预加密处理,以得到所述数据库中的至少一部分数据。
9.根据权利要求8所述的数据查询方法,其特征在于,所述被查询方采用哈希算法对所述至少一部分初始数据库数据进行预加密处理。
14.根据权利要求1所述的数据查询方法,其特征在于,所述被查询方计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据为:
IA=YA∩XA;
其中,IA用于表示交集数据,YA用于表示一次解密的数据库数据,XA用于表示查询方加密数据。
16.一种数据查询系统,其特征在于,包括:
查询方的第一加密模块,用于向被查询方发送查询请求,以及采用第一加解密钥对待查询数据进行加密,以得到查询方加密数据;
被查询方的一次加密模块,用于采用第二加解密钥对数据库中的至少一部分数据进行加密后得到一次加密的数据库数据,并发送所述一次加密的数据库数据至所述查询方,其中,所述数据库数据的加密前数据格式与所述待查询数据的加密前数据格式一致;
所述查询方的二次加密模块,用于采用所述第一加解密钥对收到的一次加密的数据库数据进行二次加密,以得到二次加密的数据库数据,然后将所述查询方加密数据与所述二次加密的数据库数据发送至所述被查询方;
所述被查询方的一次解密模块,用于采用所述第二加解密钥对所述二次加密的数据库数据进行解密后得到一次解密的数据库数据,然后计算所述一次解密的数据库数据与所述查询方加密数据之间的交集数据,并发送所述交集数据至所述查询方;
所述查询方的二次解密模块,用于采用所述第一加解密钥对所述交集数据进行二次解密,以得到查询结果。
17.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至15任一项所述数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110768672.7A CN113434890B (zh) | 2021-07-07 | 2021-07-07 | 数据查询方法及系统、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110768672.7A CN113434890B (zh) | 2021-07-07 | 2021-07-07 | 数据查询方法及系统、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434890A CN113434890A (zh) | 2021-09-24 |
CN113434890B true CN113434890B (zh) | 2022-07-15 |
Family
ID=77759531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110768672.7A Active CN113434890B (zh) | 2021-07-07 | 2021-07-07 | 数据查询方法及系统、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434890B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726549A (zh) * | 2022-05-22 | 2022-07-08 | 北京共识数信科技有限公司 | 一种基于双向rsa三次传输协议的数据安全查询方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457945B (zh) * | 2019-08-01 | 2021-03-02 | 卫盈联信息技术(深圳)有限公司 | 名单查询的方法、查询方设备、服务方设备及存储介质 |
CN110851869B (zh) * | 2019-11-14 | 2023-09-19 | 深圳前海微众银行股份有限公司 | 敏感信息处理方法、设备及可读存储介质 |
CN111046047B (zh) * | 2019-12-17 | 2023-05-09 | 支付宝(杭州)信息技术有限公司 | 保护隐私的数据查询方法及装置 |
CN112989027B (zh) * | 2021-02-01 | 2024-04-12 | 中金金融认证中心有限公司 | 用于查询名单和用于提供名单查询服务的方法及相关产品 |
-
2021
- 2021-07-07 CN CN202110768672.7A patent/CN113434890B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113434890A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11483161B2 (en) | Method for information processing and non-transitory computer readable storage medium | |
CN110457945B (zh) | 名单查询的方法、查询方设备、服务方设备及存储介质 | |
US20180287785A1 (en) | Method and system for hierarchical cryptographic key management | |
CN104426973A (zh) | 一种云数据库加密方法、系统及装置 | |
CN104521178A (zh) | 安全的多方云计算的方法和系统 | |
JP2014002365A (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
CN112953974B (zh) | 数据碰撞方法、装置、设备及计算机可读存储介质 | |
CN111400728A (zh) | 应用于区块链的数据加密解密方法及装置 | |
CN112507365A (zh) | 数据匹配方法、终端及存储介质 | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
US11741242B2 (en) | Cryptographic pseudonym mapping method, computer system computer program and computer-readable medium | |
CN113609221A (zh) | 数据存储方法、数据访问方法、装置和存储介质 | |
CN110737905B (zh) | 数据授权方法、数据授权装置及计算机存储介质 | |
CN112733180A (zh) | 数据查询方法、装置和电子设备 | |
CN112199697A (zh) | 基于共享根密钥的信息处理方法、装置、设备及介质 | |
CN113434890B (zh) | 数据查询方法及系统、可读存储介质 | |
CN113190859A (zh) | 基于区块链的数据分级加密方法 | |
CN112069525A (zh) | 基于信息的属性生成密钥的加密方法、装置及设备 | |
CN117155549A (zh) | 密钥分发方法、装置、计算机设备和存储介质 | |
CN116361849A (zh) | 一种加密数据库的备份数据加密、解密方法及装置 | |
CN115599959A (zh) | 数据共享方法、装置、设备及存储介质 | |
CN116346318A (zh) | 数据共享方法、共享装置、处理器及其系统 | |
CN114726549A (zh) | 一种基于双向rsa三次传输协议的数据安全查询方法及系统 | |
Liu et al. | A parallel encryption algorithm for dual-core processor based on chaotic map | |
Bindlish et al. | Study of RSA, DES and Cloud Computing. |
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 |