CN113157778B - 分布式数据仓库的可代理查询方法、系统、设备及介质 - Google Patents
分布式数据仓库的可代理查询方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113157778B CN113157778B CN202110639947.7A CN202110639947A CN113157778B CN 113157778 B CN113157778 B CN 113157778B CN 202110639947 A CN202110639947 A CN 202110639947A CN 113157778 B CN113157778 B CN 113157778B
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- filter array
- list
- decryption
- ciphertext
- 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
- 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/2471—Distributed queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (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)
Abstract
本发明提供一种分布式数据仓库的可代理查询方法、系统、设备及介质,该方法包括:生成公私钥对;将公钥通过代理端转发至n个数据仓库,使得数据仓库采用布隆过滤器对本地数据集合进行处理得到n个布隆过滤器数组列表之后,采用公钥对各布隆过滤器数组列表进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过代理端对各列表密文进行同态加法运算得到列表密文和;采用布隆过滤器中的各哈希函数分别对待查询数据进行哈希运算;从代理端查询与每个哈希运算结果对应的列表密文和;采用私钥对每个查询到的列表密文和进行同态解密;当各解密结果相同时输出解密结果。本发明能够解决分布式数据仓库通过代理方式查询导致的隐私泄漏问题。
Description
技术领域
本发明涉及数据查询领域,尤其涉及一种分布式数据仓库的可代理查询方法、系统、设备及介质。
背景技术
在传统的数据查询应用中,如图1所示,数据分布式地存储于多个实体数据仓库D1…Dn中,各数据仓库彼此之间并无任何联系。这些数据仓库对外委托给一个代理机构P,该代理机构P接收来自查询方Q的查询请求,并将查询请求转发给各个数据仓库,在获得各个数据仓库的查询结果之后,代理机构汇总得到的最终结果并返回给查询方Q。在该方案中,代理机构可以记录源自于查询方的请求,并且可以实时记录查询方的“请求-应答”对,不利于查询方与数据拥有方的隐私保护。
因此,本发明亟待提供一种能够在不改变现有架构的前提下实现隐私保护的方案。
发明内容
为了解决现有技术中分布式数据仓库通过代理方式对外提供数据服务时存在的数据隐私泄漏问题,本发明提供一种分布式数据仓库的可代理查询方法、系统、设备及介质。
为了实现上述目的,本发明采用如下技术方案实现:
第一方面,本发明提供一种分布式数据仓库的可代理查询方法,包括:
生成公私钥对,所述公私钥对包括公钥和私钥;
将所述公钥通过代理端转发至n个数据仓库,使得n个所述数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表之后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过所述代理端对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
采用所述布隆过滤器中的各所述哈希函数分别对待查询数据进行哈希运算,得到k个哈希运算结果;
对于每个所述哈希运算结果,从所述代理端得到的对应所述布隆过滤器列表密文和中查询与该哈希运算结果位置对应的密文和;
采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果;
当k个所述解密结果相同时,输出所述解密结果。
优选地,所述采用所述公钥对各所述布隆过滤器数组列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,包括:
将各所述布隆过滤器数组列表中每个列表不同位置的数值分别映射为椭圆曲线上的点;
根据EC-ElGamal同态加密算法,采用所述公钥对映射至所述椭圆曲线上的点进行加密,得到与各所述布隆过滤器数组列表分别对应的布隆过滤器数组列表密文。
优选地,所述采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果,包括:
根据EC-ElGamal同态解密算法,采用所述私钥将每个查询到的密文和分别解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行逆映射,得到所述解密结果。
优选地,所述方法还包括:当k个所述解密结果不完全相同时,输出查询失败信息。
第二方面,本发明提供一种分布式数据仓库的可代理安全方法,适用于代理端,该方法包括:
将客户端生成的公私钥对中的公钥转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表之后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文;
对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
接收所述客户端发送的k个查询请求,各所述查询请求分别携带所述客户端采用所述布隆过滤器中的相应所述哈希函数对待查询数据进行哈希运算得到的哈希运算结果;
向所述客户端返回各所述布隆过滤器列表密文和中与相应哈希运算结果位置对应的密文和,以使所述客户端采用所述公私钥对中的私钥对每个查询到的密文和分别进行同态解密得到k个解密结果,并在k个所述解密结果相同时,输出所述解密结果。
第三方面,本发明提供一种分布式数据仓库的可代理查询系统,适用于客户端,该系统包括:
密钥生成模块,配置为生成公私钥对,所述公私钥对包括公钥和私钥;
发送模块,配置为将所述公钥通过代理端发送至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过所述代理端对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
哈希运算模块,配置为采用所述布隆过滤器中的各所述哈希函数分别对待查询数据进行哈希运算,得到k个哈希运算结果;
查询模块,配置为对于每个所述哈希运算结果,从所述代理端得到的对应所述布隆过滤器列表密文和中查询与该哈希运算结果位置对应的密文和;
解密模块,配置为采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果;
输出模块,配置为当k个所述解密结果相同时,输出所述解密结果。
优选地,所述数据仓库进行同态加密的过程如下:
将各所述布隆过滤器数组列表中每个列表不同位置的数值分别映射为椭圆曲线上的点;
根据EC-ElGamal同态加密算法,采用所述公钥对映射至所述椭圆曲线上的点进行加密,得到与各所述布隆过滤器数组列表分别对应的布隆过滤器数组列表密文。
优选地,所述解密模块具体配置为:
根据EC-ElGamal同态解密算法,采用所述私钥将每个查询到的密文和分别解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行逆映射,得到所述解密结果。
优选地,所述输出模块还配置为:当k个所述解密结果不完全相同时,输出查询失败信息。
第四方面,本发明提供一种分布式数据仓库的可代理查询系统,适用于代理端,该系统包括:
转发模块,配置为将客户端生成的公私钥对中的公钥转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文;
同态加法模块,配置为对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
请求接收模块,配置为接收所述客户端发送的k个查询请求,各所述查询请求分别携带所述客户端采用所述布隆过滤器中的相应哈希函数对待查询数据进行哈希运算得到的哈希运算结果;
返回模块,配置为向所述客户端返回各所述布隆过滤器列表密文和中与相应哈希运算结果位置对应的密文和,以使所述客户端采用所述公私钥对中的私钥对每个查询到的密文和分别进行同态解密得到k个解密结果,并在k个所述解密结果相同时,输出所述解密结果。
为了实现上述目的,本发明还提供一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法的步骤。
通过采用上述技术方案,本发明具有如下有益效果:
本发明首先通过客户端生成公私钥对,并将公钥通过代理端转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过所述代理端对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和;而后,客户端采用所述布隆过滤器中的各哈希函数分别对待查询数据进行哈希运算,得到k个哈希运算结果,并且对于每个所述哈希运算结果,从所述代理端查询与该哈希运算结果对应的密文和;最后采用私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果,当k个解密结果相同时,输出所述解密结果,该解密结果即表示所有数据仓库中存储有待查询数据的数据仓库数量。可见,采用本发明的查询方法进行数据查询时,代理端无法获取数据仓库的任何明文数据,同时也无法获取客户端的任何查询请求数据明文,从而能够在不改变传统可代理查询服务的底层架构的基础上,解决分布式数据仓库通过代理方式对外提供数据服务时遇到的数据隐私泄漏问题。
附图说明
图1为传统分布式数据仓库的可代理查询系统的系统架构图;
图2为本发明实施例1提供的分布式数据仓库的可代理查询方法的流程示意图;
图3为本发明实施例1提供的分布式数据仓库的可代理查询方法的原理图;
图4为本发明实施例1中布隆过滤器的工作原理图;
图5为本发明实施例1中同态加密过程的原理图;
图6为本发明实施例1中同态解密过程的原理图;
图7为本发明实施例2提供的分布式数据仓库的可代理安全查询方法的流程示意图;
图8为本发明实施例3提供的分布式数据仓库的可代理安全查询系统的结构框图;
图9为本发明实施例4提供的分布式数据仓库的可代理安全查询系统的结构框图;
图10为本发明实施例5提供的电子设备的硬件架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
实施例1
如图2和3所示,本实施例提供一种分布式数据仓库的可代理查询方法,适用于客户端,该方法具体包括以下步骤:
S11,生成公私钥对(pk,sk),所述公私钥对包括公钥pk和私钥sk。
在本实施例中,具体可以通过同态加密密钥生成器来生成公私钥对(pk,sk)。
S12,将所述公钥pk通过代理端P转发至n个数据仓库D1…Dn,使得n个数据仓库分别
采用预设布隆过滤器的k个哈希函数 对本地的数据集合 ~ 、 ~ 、…、 ~ 进行处理以得到n个布隆过滤器数组列表 l , l , …, l 、 l , l , …, l 、…、 l , l , …, l 之后,采用所述公钥
pk对各所述布隆过滤器数组列表中的每个列表l 分别进行逐位同态加密以得到n个布隆
过滤器数组列表密文 e , e , …, e 、 e , e , …, e 、…、 e , e , …,e ,而后通过所述代理端P对全部所述布隆过滤器数组列表密文进行同态加
法运算,得到布隆过滤器数组列表密文和 e , e , …, e ,该布隆过滤器数组列表密文
和包括k个布隆过滤器数组列表e , e , …, e 。
在本实施例中,布隆过滤器可以用于检索一个元素是否在一个集合中。下面结合图4,介绍布隆过滤器的工作原理如下:
当需要查询某个数据是否属于数据集合 时,使用哈希函数 分别对该数据进行运算,各到个值 ,而后判断 的第位、 的第 位、...、 的第 位的值是否均为1,如果均为1,则判定该数据属于
数据集合 ,只要其中有一个不为1,则判定该数据不属于数据集合 。
在本实施例中,如图5所示,数据仓库采用所述公钥pk对各所述布隆过滤器数组列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文的过程如下:
首先,采用映射器将各所述布隆过滤器数组列表中每个列表不同位置的数值x分别映射为椭圆曲线上的点X;
而后,采用现有的EC-ElGamal(椭圆曲线-厄格玛尔)加密器,根据EC-ElGamal同态加密算法,采用所述公钥pk对映射至所述椭圆曲线上的点X进行加密,得到与x对应的密文C,各所述布隆过滤器数组列表中所有列表的不同位置的数值x对应的密文组成各所述布隆过滤器数组列表分别对应的布隆过滤器数组列表密文。
例如,对于布隆过滤器数组列表 l , l , …, l ,其包括k个列表l ~ l ,各列表每个位置的数据为0或1,按照上述步骤对其进行逐位同态加密后,将得到对应
的布隆过滤器数组列表密文 e , e , …, e ,该布隆过滤器数组列表密文包括k
个列表密文e , e , …, e ,各列表密文e ~e 中每个位置的数值即为列表l ~ l 相应位置的数值的同态加密密文,以此类推。
当得到n个布隆过滤器数组列表密文后,代理端P对各所述布隆过滤器数组列表密
文进行同态加法运算,得到布隆过滤器数组列表密文和 e , e , …, e ,其包括k个列
表密文和e , e , …, e ,每个所述列表密文和的不同位置分别存储对应的密文和。例如,e 由e ~ e 同态相加得到,e 的位数与e ~ e 的位数相等,e 中各位置的数值
为e ~ e 中相应位置的密文相加之和,以此类推。
S14,对于每个所述哈希运算结果,采用安全查询方式从所述代理端P得到的对应所述布隆过滤器列表密文和中查询与该哈希运算结果位置对应的密文和。
S15,采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果;
在本实施例中,优选采用如图6所示的步骤进行同态解密:
首先,利用据EC-ElGamal解密器,根据EC-ElGamal同态解密算法,采用所述私钥sk将每个查询到的密文和C分别解密为所述椭圆曲线上的点X;
而后,采用逆映射器对解密得到的所述椭圆曲线上的点X进行逆映射,得到所述解密结果x。
如前所述,经过k次查询将得到k个密文和,对k个密文和分别进行同态解密,即可
得到列表l , l , …, l 中第 位数值之和l [ ],列表l , l , …, l 中第 位数值之和l 2 [ ],…,列表l , l , …, l 中第 位数值之和l k [ ],共得到k个解密结果。
S16,当k个所述解密结果相同时,输出其中一个所述解密结果。
在本实施例中,该解密结果表示所有数据仓库中存储有待查询数据的数据仓库数量。根据如前所述的布隆过滤器的查询原理可知,只有当k个解密结果相同,才认为结果是准确的,只要其中有一个不相同,则表明查询结果不准确。
S17,当k个所述解密结果不完全相同时,输出相应的查询错误信息。
采用本实施例的查询方法进行数据查询时,能够得到所有数据仓库中存储有待查询数据的数据仓库数量,在查询过程中代理端无法获取数据仓库的任何明文数据,同时也无法获取客户端的任何查询请求数据明文,从而能够在不改变传统可代理查询服务的底层架构的基础上,解决分布式数据仓库通过代理方式对外提供数据服务时遇到的数据隐私泄漏问题。
实施例2
如图7所示,本实施例提供一种分布式数据仓库的可代理安全方法,适用于代理端,该方法具体包括以下步骤:
S21,将客户端生成的公私钥对中的公钥转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文;
S22,对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
S23,接收所述客户端发送的k个查询请求,各所述查询请求分别携带所述客户端采用所述布隆过滤器中的相应哈希函数对待查询数据进行哈希运算得到的哈希运算结果;
S24,向所述客户端返回各所述布隆过滤器列表密文和中与相应哈希运算结果位置对应的密文和,以使所述客户端采用所述公私钥对中的私钥对每个查询到的密文和分别进行同态解密得到k个解密结果,并在k个所述解密结果相同时,输出所述解密结果。
采用本实施例的查询方法进行数据查询时,能够得到所有数据仓库中存储有待查询数据的数据仓库数量,在查询过程中代理端无需获取数据仓库的任何明文数据,同时也无需获取客户端的任何查询请求数据明文,从而能够在不改变传统可代理查询服务的底层架构的基础上,解决分布式数据仓库通过代理方式对外提供数据服务时遇到的数据隐私泄漏问题。
本实施例的相关之处参见实施例1的部分说明即可,在此不再赘述。
实施例3
本实施例提供一种分布式数据仓库的可代理查询系统,适用于客户端,如图8所示,该系统包括:密钥生成模块11、发送模块12、哈希运算模块13、查询模块14、解密模块15和输出模块16。
下面分别对上述各个模块的功能进行详细描述:
密钥生成模块11配置为生成公私钥对,所述公私钥对包括公钥和私钥;
发送模块12配置为将所述公钥通过代理端发送至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过所述代理端对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
哈希运算模块13配置为采用所述布隆过滤器中的各哈希函数分别对待查询数据进行哈希运算,得到k个哈希运算结果;
查询模块14配置为对于每个所述哈希运算结果,从所述代理端得到的对应所述布隆过滤器列表密文和中查询与该哈希运算结果位置对应的密文和;
解密模块15配置为采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果;
输出模块16配置为当k个所述解密结果相同时,输出所述解密结果;当k个所述解密结果不完全相同时,输出相应的查询失败信息。
在本实施例中,所述数据仓库进行同态加密的过程如下:
首先,将各所述布隆过滤器数组列表中每个列表不同位置的数值分别映射为椭圆曲线上的点;
而后,根据EC-ElGamal同态加密算法,采用所述公钥对映射至所述椭圆曲线上的点进行加密,得到与各所述布隆过滤器数组列表分别对应的布隆过滤器数组列表密文。
在本实施例中,所述解密模块15具体配置为:
首先,根据EC-ElGamal同态解密算法,采用所述私钥将每个查询到的密文和分别解密为所述椭圆曲线上的点;
而后,对解密得到的所述椭圆曲线上的点进行逆映射,得到所述解密结果。
采用本实施例的查询方法进行数据查询时,能够得到所有数据仓库中存储有待查询数据的数据仓库数量,在查询过程中代理端无需获取数据仓库的任何明文数据,同时也无需获取客户端的任何查询请求数据明文,从而能够在不改变传统可代理查询服务的底层架构的基础上,解决分布式数据仓库通过代理方式对外提供数据服务时遇到的数据隐私泄漏问题。
本实施例的相关之处参见实施例1的部分说明即可,在此不再赘述。
实施例4
本实施例提供一种分布式数据仓库的可代理查询系统,适用于代理端,如图9所示,该系统包括:转发模块21、同态加法模块22、请求接收模块23和返回模块24。
下面分别对上述各个模块的功能进行详细描述:
转发模块21配置为将客户端生成的公私钥对中的公钥转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文;
同态加法模块22配置为对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
请求接收模块23配置为接收所述客户端发送的k个查询请求,各所述查询请求分别携带所述客户端采用所述布隆过滤器中的相应哈希函数对待查询数据进行哈希运算得到的哈希运算结果;
返回模块24配置为向所述客户端返回与各所述布隆过滤器列表密文和中与相应哈希运算结果位置对应的密文和,以使所述客户端采用所述公私钥对中的私钥对每个查询到的密文和分别进行同态解密得到k个解密结果,并在k个所述解密结果相同时,输出所述解密结果。
采用本实施例的查询方法进行数据查询时,能够得到所有数据仓库中存储有待查询数据的数据仓库数量,在查询过程中代理端无需获取数据仓库的任何明文数据,同时也无需获取客户端的任何查询请求数据明文,从而能够在不改变传统可代理查询服务的底层架构的基础上,解决分布式数据仓库通过代理方式对外提供数据服务时遇到的数据隐私泄漏问题。
本实施例的相关之处参见实施例1的部分说明即可,在此不再赘述。
实施例5
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1-2提供的分布式数据仓库的可代理查询方法。
图10示出了本实施例的硬件结构示意图,如图10所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1-2所提供的分布式数据仓库的可代理查询方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例6
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1-2所提供的分布式数据仓库的可代理查询方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1-2所述的分布式数据仓库的可代理查询方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (12)
1.一种分布式数据仓库的可代理查询方法,其特征在于,包括:
生成公私钥对,所述公私钥对包括公钥和私钥;
将所述公钥通过代理端转发至n个数据仓库,使得n个所述数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表之后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过所述代理端对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
采用所述布隆过滤器中的各所述哈希函数分别对待查询数据进行哈希运算,得到k个哈希运算结果;
对于每个所述哈希运算结果,从所述代理端得到的对应所述布隆过滤器列表密文和中查询与该哈希运算结果位置对应的密文和;
采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果;
当k个所述解密结果相同时,输出所述解密结果。
2.根据权利要求1所述的可代理查询方法,其特征在于,所述采用所述公钥对各所述布隆过滤器数组列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,包括:
将各所述布隆过滤器数组列表中每个列表不同位置的数值分别映射为椭圆曲线上的点;
根据EC-ElGamal同态加密算法,采用所述公钥对映射至所述椭圆曲线上的点进行加密,得到与各所述布隆过滤器数组列表分别对应的布隆过滤器数组列表密文。
3.根据权利要求2所述的可代理查询方法,其特征在于,所述采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果,包括:
根据EC-ElGamal同态解密算法,采用所述私钥将每个查询到的密文和分别解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行逆映射,得到所述解密结果。
4.根据权利要求1所述的可代理查询方法,其特征在于,所述方法还包括:当k个所述解密结果不完全相同时,输出查询失败信息。
5.一种分布式数据仓库的可代理查询方法,适用于代理端,其特征在于,该方法包括:
将客户端生成的公私钥对中的公钥转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表之后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文;
对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
接收所述客户端发送的k个查询请求,各所述查询请求分别携带所述客户端采用所述布隆过滤器中的相应所述哈希函数对待查询数据进行哈希运算得到的哈希运算结果;
向所述客户端返回各所述布隆过滤器列表密文和中与相应哈希运算结果位置对应的密文和,以使所述客户端采用所述公私钥对中的私钥对每个查询到的密文和分别进行同态解密得到k个解密结果,并在k个所述解密结果相同时,输出所述解密结果。
6.一种分布式数据仓库的可代理查询系统,适用于客户端,其特征在于,该系统包括:
密钥生成模块,配置为生成公私钥对,所述公私钥对包括公钥和私钥;
发送模块,配置为将所述公钥通过代理端发送至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文,而后通过所述代理端对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
哈希运算模块,配置为采用所述布隆过滤器中的各所述哈希函数分别对待查询数据进行哈希运算,得到k个哈希运算结果;
查询模块,配置为对于每个所述哈希运算结果,从所述代理端得到的对应所述布隆过滤器列表密文和中查询与该哈希运算结果位置对应的密文和;
解密模块,配置为采用所述私钥对每个查询到的密文和分别进行同态解密,得到k个解密结果;
输出模块,配置为当k个所述解密结果相同时,输出所述解密结果。
7.根据权利要求6所述的可代理查询系统,其特征在于,所述数据仓库进行同态加密的过程如下:
将各所述布隆过滤器数组列表中每个列表不同位置的数值分别映射为椭圆曲线上的点;
根据EC-ElGamal同态加密算法,采用所述公钥对映射至所述椭圆曲线上的点进行加密,得到与各所述布隆过滤器数组列表分别对应的布隆过滤器数组列表密文。
8.根据权利要求7所述的可代理查询系统,其特征在于,所述解密模块具体配置为:
根据EC-ElGamal同态解密算法,采用所述私钥将每个查询到的密文和分别解密为所述椭圆曲线上的点;
对解密得到的所述椭圆曲线上的点进行逆映射,得到所述解密结果。
9.根据权利要求6所述的可代理查询系统,其特征在于,所述输出模块还配置为:当k个所述解密结果不完全相同时,输出查询失败信息。
10.一种分布式数据仓库的可代理查询系统,适用于代理端,其特征在于,该系统包括:
转发模块,配置为将客户端生成的公私钥对中的公钥转发至n个数据仓库,使得n个数据仓库分别采用预设布隆过滤器的k个哈希函数对本地的数据集合进行处理以得到n个布隆过滤器数组列表后,采用所述公钥对各所述布隆过滤器数组列表中的每个列表分别进行逐位同态加密以得到n个布隆过滤器数组列表密文;
同态加法模块,配置为对各所述布隆过滤器数组列表密文进行同态加法运算,得到布隆过滤器数组列表密文和,其中所述布隆过滤器数组列表密文和包括k个布隆过滤器列表密文和;
请求接收模块,配置为接收所述客户端发送的k个查询请求,各所述查询请求分别携带所述客户端采用所述布隆过滤器中的相应哈希函数对待查询数据进行哈希运算得到的哈希运算结果;
返回模块,配置为向所述客户端返回各所述布隆过滤器列表密文和中与相应哈希运算结果位置对应的密文和,以使所述客户端采用所述公私钥对中的私钥对每个查询到的密文和分别进行同态解密得到k个解密结果,并在k个所述解密结果相同时,输出所述解密结果。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110639947.7A CN113157778B (zh) | 2021-06-09 | 2021-06-09 | 分布式数据仓库的可代理查询方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110639947.7A CN113157778B (zh) | 2021-06-09 | 2021-06-09 | 分布式数据仓库的可代理查询方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157778A CN113157778A (zh) | 2021-07-23 |
CN113157778B true CN113157778B (zh) | 2021-09-24 |
Family
ID=76875836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110639947.7A Active CN113157778B (zh) | 2021-06-09 | 2021-06-09 | 分布式数据仓库的可代理查询方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157778B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3891922B1 (en) | 2020-02-14 | 2022-09-07 | Google LLC | Secure multi-party reach and frequency estimation |
CN113886418B (zh) * | 2021-09-28 | 2024-05-28 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及机器可读存储介质 |
CN115396148B (zh) * | 2022-07-22 | 2024-04-12 | 西安邮电大学 | 隐私保护的名单查询方法、系统、介质、设备及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533650A (zh) * | 2016-11-17 | 2017-03-22 | 浙江工商大学 | 面向云端的交互型隐私保护方法和系统 |
CN110851848A (zh) * | 2019-11-12 | 2020-02-28 | 广西师范大学 | 对称可搜索加密的隐私保护方法 |
CN112468521A (zh) * | 2021-02-01 | 2021-03-09 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
CN112769542A (zh) * | 2021-04-12 | 2021-05-07 | 富算科技(上海)有限公司 | 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8526603B2 (en) * | 2011-07-08 | 2013-09-03 | Sap Ag | Public-key encrypted bloom filters with applications to private set intersection |
CN106534313B (zh) * | 2016-11-17 | 2019-09-13 | 浙江工商大学 | 面向云端数据发布保护安全及隐私的频度测定方法和系统 |
CN111464282B (zh) * | 2019-01-18 | 2024-04-26 | 百度在线网络技术(北京)有限公司 | 基于同态加密的数据处理方法和装置 |
-
2021
- 2021-06-09 CN CN202110639947.7A patent/CN113157778B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533650A (zh) * | 2016-11-17 | 2017-03-22 | 浙江工商大学 | 面向云端的交互型隐私保护方法和系统 |
CN110851848A (zh) * | 2019-11-12 | 2020-02-28 | 广西师范大学 | 对称可搜索加密的隐私保护方法 |
CN112468521A (zh) * | 2021-02-01 | 2021-03-09 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
CN112769542A (zh) * | 2021-04-12 | 2021-05-07 | 富算科技(上海)有限公司 | 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
可搜索加密隐私保护技术研究;何魏酉;《中国优秀硕士学位论文全文数据库信息科技辑》;20180815;第I138-65页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113157778A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chinnasamy et al. | Efficient data security using hybrid cryptography on cloud computing | |
CN113157778B (zh) | 分布式数据仓库的可代理查询方法、系统、设备及介质 | |
Liu et al. | Efficient and privacy-preserving outsourced calculation of rational numbers | |
CN110537183B (zh) | 数据标记化方法和系统 | |
US10346627B2 (en) | Privacy preserving data querying | |
US9355271B2 (en) | System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
US10635824B1 (en) | Methods and apparatus for private set membership using aggregation for reduced communications | |
CN111523133A (zh) | 一种区块链与云端数据协同共享方法 | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
Gadepally et al. | Computing on masked data to improve the security of big data | |
Guo et al. | Enabling privacy-preserving geographic range query in fog-enhanced IoT services | |
CN114528331A (zh) | 基于区块链的数据查询方法及装置、介质、设备 | |
Gahi et al. | A secure multi-user database-as-a-service approach for cloud computing privacy | |
CN116032667A (zh) | 支持高效更新的在线匿踪查询方法、系统及相关设备 | |
CN113806795B (zh) | 一种两方隐私集合并集计算方法和装置 | |
Awais et al. | A novel searchable encryption scheme to reduce the access pattern leakage | |
Yao et al. | A secure remote data integrity checking cloud storage system from threshold encryption | |
Takeshita et al. | TERSE: tiny encryptions and really speedy execution for post-quantum private stream aggregation | |
CN117349685A (zh) | 一种通信数据的聚类方法、系统、终端及介质 | |
Wang et al. | Search ranges efficiently and compatibly as keywords over encrypted data | |
Al-Sakran et al. | Efficient Cryptographic Technique for Securing and Accessing Outsourced Data | |
Zhou et al. | Integrity preserving multi-keyword searchable encryption for cloud computing | |
Vo-Huu et al. | EPiC: efficient privacy-preserving counting for MapReduce | |
Tang et al. | Functional privacy-preserving outsourcing scheme with computation verifiability in fog 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 |