多表联合查询装置及算法制造方法及图纸

技术编号:33455851 阅读:11 留言:0更新日期:2022-05-19 00:38
本发明专利技术属于数据加密技术领域,提供了一种多表联合查询装置及算法。本发明专利技术的装置包括多个客户端及一个服务器,参数选取部提取公开参数并将公开参数发送给客户端的本地接收存储部,一旦客户端发起查询请求,各个客户端的构造部根据公开参数及对应的本地参数集合构造对应的零分享混淆布隆过滤器,客户端的加密部用零碎片加密零分享混淆布隆过滤器,得到加密后零分享混淆布隆过滤器,服务器计算部将各个加密后零分享混淆布隆过滤器进行异或计算后得到加和后零分享混淆布隆过滤器,结果判定输出部使用加和后零分享混淆布隆过滤器及哈希函数从服务器参数集合中选取交集元素从而生成交集,并将交集发送给发起查询请求的客户端。端。端。

【技术实现步骤摘要】
多表联合查询装置及算法


[0001]本专利技术属于数据加密
,具体涉及一种多表联合查询装置及算法。

技术介绍

[0002]随着互联网云技术的发展,一个云端对应多个客户端越来越寻常,服务器和多个客户端分别持有一系列数据,他们都希望能够安全地求出交集,而全体集合的交集外的数据不能被任意一方获取。
[0003]在一般的场景中,数据供应方拥有一批数据,每个客户端也拥有本地数据,诚实的数据请求方会根据自己的需求发起查询请求,但是在遇到不诚实的数据请求方时,传统的数据库查询不加密,可能会暴露数据供应方查询请求之外的数据,造成数据供应方隐私数据的泄漏。随着大数据的普及和公众隐私保护意识的提高,隐私数据查询愈加重要。
[0004]目前的按列进行隐私数据查询都基于全同态加密,但是全同态加密因其计算开销较大,速度比较慢,效率比较低,无法应用在高效的SQL查询中。如果数据量大,特别是涉及到多表查询时,全同态加密的查询速度非常慢,处理一个查询请求可能需要几分钟,远远无法满足现有的用户需求。为了解决这一问题,急需构建一种高效安全的数据库SQL查询方法。

技术实现思路

[0005]本专利技术是为了解决上述问题而进行的,目的在于提供一种多表联合查询装置及算法,能够支持多表同时进行join函数的查询,能够安全地求出服务器和多个客户端的交集,而全体集合的交集外的数据不能被任意一方获取,计算速度快,安全高效。
[0006]本专利技术为了实现上述目的,采用了以下方案:
[0007]<方案一>
[0008]本专利技术提供了一种多表联合查询装置,具有这样的特征,包括:一个服务器及分别与服务器通信连接的多个客户端,每个客户端包括本地接收存储部、查询指令输入部、本地集合存储部、构造部、加密部;服务器包括服务器存储部、参数提取部、接收部、服务器计算部、结果判定输出部;服务器存储部存储有服务器参数集合及公开参数,本地集合存储部用于存储对应的客户端的本地参数集合及零碎片,参数提取部提取公开参数并发送给客户端的本地接收存储部,查询指令输入部用于用户输入查询指令使客户端发起查询请求,一旦客户端发起查询请求,各个客户端的构造部根据公开参数及对应的本地参数集合构造对应的零分享混淆布隆过滤器,各个客户端的加密部用对应的零碎片加密对应的零分享混淆布隆过滤器,得到加密后零分享混淆布隆过滤器,并将加密后零分享混淆布隆过滤器发送给服务器,一旦接收部接受到加密后零分享混淆布隆过滤器,服务器计算部就将各个加密后零分享混淆布隆过滤器进行异或计算后得到加和后零分享混淆布隆过滤器,结果判定输出部使用加和后零分享混淆布隆过滤器及哈希函数从服务器参数集合中选取交集元素从而生成交集,并将交集发送给发起查询请求的客户端。
[0009]在本专利技术提供的多表联合查询装置中,还可以具有这样的特征:其中,公开参数包含零分享混淆布隆过滤器的长度m,零分享混淆布隆过滤器中各比特串的长度λ,哈希函数的个数k,以及哈希族H:{h1,h2,...,h
k
}:{0,1}
*

[m]。
[0010]在本专利技术提供的多表联合查询装置中,还可以具有这样的特征:其中,各个客户端非交互式地生成零碎片,第i个客户端拥有的零碎片记为s
i
,各个客户端的零碎片之和为0,即:第i个客户端持有的零分享混淆布隆过滤器记为ZGBF
i

[0011]在本专利技术提供的多表联合查询装置中,还可以具有这样的特征:其中,客户端的加密部用对应的零碎片加密对应的零分享混淆布隆过滤器,得到加密后零分享混淆布隆过滤器的具体过程为:对第i个客户端的第j个位置,j=0~m

1,计算为加密后零分享混淆布隆过滤器,计算m轮后,将每个所述零分享混淆布隆过滤器均发送给服务器的接收部。
[0012]在本专利技术提供的多表联合查询装置中,还可以具有这样的特征:其中,服务器计算部将各个加密后零分享混淆布隆过滤器进行异或计算得到加和后零分享混淆布隆过滤器的具体过程为:根据接收部的接收顺序,服务器计算部将每个客户端的第j个位置的ZGBF
i
'[j]进行异或计算,得到第j个位置的ZGBF[j],即m个ZGBF'[j]组成加和后零分享混淆布隆过滤器即ZGBF'。
[0013]在本专利技术提供的多表联合查询装置中,还可以具有这样的特征:其中,结果判定输出部使用加和后零分享混淆布隆过滤器及哈希函数从服务器参数集合中选取交集元素从而生成交集的具体过程为:对于y∈Y,Y为服务器参数集合,结果判定输出部检查集的具体过程为:对于y∈Y,Y为服务器参数集合,结果判定输出部检查是否等于0,如果等于0,y在交集中,否则y不在交集中。
[0014]在本专利技术提供的多表联合查询装置中,还可以具有这样的特征:其中,服务器为半可信的服务器,客户端为半可信的客户端。
[0015]<方案二>
[0016]本专利技术还提供了一种多表联合查询算法,具有这样的特征,包括以下步骤:
[0017]步骤S1,服务器存储有服务器参数集合Y及公开参数,并将公开参数发送给各个客户端,公开参数包含零分享混淆布隆过滤器的长度m,零分享混淆布隆过滤器中各比特串的长度λ,哈希函数的个数k,k个哈希函数的集合为哈希族H:{h1,h2,...,h
k
}:{0,1}
*

[m];
[0018]步骤S2,客户端发起查询请求;
[0019]步骤S3,各个客户端非交互式地生成零碎片;
[0020]步骤S4,各个客户端根据根据公开参数及自身存储的本地参数集合构造零分享混淆布隆过滤器;
[0021]步骤S5,各个客户端用对应的零碎片加密各自的零分享混淆布隆过滤器,得到加密后零分享混淆布隆过滤器,并将加密后零分享混淆布隆过滤器发送给服务器;
[0022]步骤S6,服务器将各个加密后零分享混淆布隆过滤器进行异或加和得到加和后零分享混淆布隆过滤器;
[0023]步骤S7,服务器使用加和后零分享混淆布隆过滤器及哈希函数从服务器参数集合中选取交集元素从而生成交集,并将交集发送给发起查询请求的客户端。
[0024]在本专利技术提供的多表联合查询算法中,还可以具有这样的特征:其中,第i个客户端所持有的本地参数集合记为X
i
,X
i
的大小为n,
[0025]第i个客户端的构造部根据对应的X
i
构造零分享混淆布隆过滤器ZGBF
i
的具体过程为:
[0026]步骤S4

1,定义一个m大小的零分享混淆布隆过滤器ZGBF
i
,其中每个元素的类型是λ长度的比特串,并初始化每个元素为空,然后进入步骤S4

2;
[0027]步骤S4

2,使ZGBF
i
中每个对应h<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多表联合查询装置,其特征在于,包括:一个服务器及分别与所述服务器通信连接的多个客户端,每个所述客户端包括本地接收存储部、查询指令输入部、本地集合存储部、构造部、加密部;所述服务器包括服务器存储部、参数提取部、接收部、服务器计算部、结果判定输出部;所述服务器存储部存储有服务器参数集合及公开参数,所述本地集合存储部用于存储对应的所述客户端的本地参数集合及零碎片,所述参数提取部提取所述公开参数发送给所述客户端的所述本地接收存储部,所述查询指令输入部用于用户输入查询指令使所述客户端发起查询请求,一旦所述客户端发起查询请求,各个所述客户端的所述构造部根据所述公开参数及对应的所述本地参数集合构造对应的零分享混淆布隆过滤器,各个所述客户端的所述加密部用对应的所述零碎片加密对应的所述零分享混淆布隆过滤器,得到加密后零分享混淆布隆过滤器,并将所述加密后零分享混淆布隆过滤器发送给所述服务器,一旦所述接收部接受到所述加密后零分享混淆布隆过滤器,所述服务器计算部就将各个所述加密后零分享混淆布隆过滤器进行异或计算后得到加和后零分享混淆布隆过滤器,所述结果判定输出部使用所述加和后零分享混淆布隆过滤器及所述哈希函数从所述服务器参数集合中选取交集元素从而生成交集,并将所述交集发送给发起查询请求的所述客户端。2.根据权利要求1所述的多表联合查询装置,其特征在于:其中,所述公开参数包含所述零分享混淆布隆过滤器的长度m,所述零分享混淆布隆过滤器中各比特串的长度λ,哈希函数的个数k,以及哈希族H:{h1,h2,...,h
k
}:{0,1}
*

[m]。3.根据权利要求2所述的多表联合查询装置,其特征在于:其中,各个所述客户端非交互式地生成零碎片,第i个所述客户端拥有的所述零碎片记为s
i
,各个所述客户端的所述零碎片之和为0,即:第i个所述客户端持有的所述零分享混淆布隆过滤器记为ZGBF
i
。4.根据权利要求3所述的多表联合查询装置,其特征在于:其中,所述客户端的所述加密部用对应的所述零碎片加密对应的所述零分享混淆布隆过滤器,得到所述加密后零分享混淆布隆过滤器的具体过程为:对第i个所述客户端的第j个位置,j=0~m

1,计算为所述零分享混淆布隆过滤器,计算m轮后,将每个所述所述零分享混淆布隆过滤器均发送给所述服务器的所述接收部。5.根据权利要求4所述的多表联合查询装置,其特征在于:其中,所述服务器计算部将各个所述加密后零分享混淆布隆过滤器进行异或计算得到加和后零分享混淆布隆过滤器的具体过程为:根据所述接收部的接收顺序,所述服务器计算部将每个所述客户端的第j个位置的ZGBF
i
'[j]进行异或计算,得到第j个位置的ZGBF[j],即
m个所述ZGBF'[j]组成所述加和后零分享混淆布隆过滤器即ZGBF'。6.根据权利要求5所述的多表联合查询装置,其特征在于:其中,所述结果判定输出部使用所述加和后零分享混淆布隆过滤器及所述哈希函数从所述服务器参数集合中选取所述交集元素从而生成所述交集的具体过程为:对于y∈Y,Y为所述服务器参数集合,所述结果判定输出部检查所述服务器参数集合,所述结果判定输出部检查是否等于0,如果等于0,y在交集中,否则y不在交集中。7.根据权利要求1所述的多表联合查询装置,其特征在于:其中,所述服务器为半可信的云服务器,所述客户端为半可信的客户端。8.一种多表联合查询算法,其特征在于,包括以下步骤:步骤S1,服务器存储有服务器参数集合Y及公开参数,并将所述公开参数发送给各个客户端,所述公开参数包含零分享混淆布隆过滤器的长度m,所述零分享混淆布隆过滤器中各比特串的长度λ,哈希函数的个数k,k个所述哈希函数的集合为哈希族H:{h1,h2,...,h
k
}:{0,1}
*

[m];步骤S2,所述客户端发起查询请求;步骤S3,各个所述客户端非交互式地生成零碎片;步骤S4,各个所述客户端根据所述公开参数及自身存储的本地参数...

【专利技术属性】
技术研发人员:杨赟博庞皓天张懿嘉魏立斐
申请(专利权)人:上海同态信息科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1