一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向密态数据的重复、不经意和抗链接的查询方法与系统

2022-06-08 15:39:00 来源:中国专利 TAG:


1.本发明可以实现一种面向密态数据的重复、不经意和抗链接的查询方法与系统,属于隐私保护、云服务以及加密数据查询技术领域。


背景技术:

2.智能手机现在配备了全球定位系统(gps)模块和各种支持基于位置的服务(lbs)的应用程序。它的工作原理是将数据用户的当前位置查询发送给服务提供商。服务提供商将查询与数据所有者的数据项进行匹配,并向数据用户检索相应的结果。例如,谷歌地图允许数据用户找到当前位置附近的星巴克、酒吧和餐馆。
3.虽然lbs提供了实际的好处,但由于位置揭示和不可信的服务提供商产生的隐私问题是lbs被广泛采用的主要障碍。首先,提交的位置信息可能包括用户的敏感地点。第二,位置信息往往与人类活动密切相关,比如访问癌症医院和在酒店会见朋友。
4.此外,近十年来,由于网络攻击、硬件故障或误操作等原因导致的数据泄露事件也有很多报道,同时很多企业在保护储存在服务提供商上的数据的意识仍比较薄弱,使得数据安全性问题日益严重。


技术实现要素:

5.本发明是为了解决上述现有技术存在的不足之处,提出一种面向密态数据的重复、不经意和抗链接的查询方法与系统,以期能在云上密态数据查询过程中抵抗不可信数据云存储方的安全威胁,并实现重复、不经意和抗链接的sknn查询,从而保护数据上传方和数据请求方的隐私问题,保护数据上传方和数据请求方的信息安全。
6.本发明为达到上述发明目的采用如下技术方案:
7.本发明一种面向密态数据的重复、不经意和抗链接的查询系统的特点包括:多个数据上传模块、多个数据请求模块以及一个数据云存储模块;
8.所述数据上传模块包括:索引生成单元、共享密钥发送单元;
9.所述数据请求模块包括:共享密钥接收单元、令牌生成单元、证据验证单元;
10.所述数据云存储模块包括:索引接收单元、数据搜索单元;
11.任意第x个数据上传模块的共享密钥发送单元将所产生的共享密钥分别发送给自身的索引生成单元和第j个数据请求模块的共享密钥接收单元;
12.所述第x个数据上传模块的索引生成单元提取数据项的身份属性、空间属性与类别属性,并计算安全索引和验证信息,再使用所述共享密钥加密所需上传的数据项属性后得到加密数据,最后与所述安全索引和验证信息一同发送给所述索引接收单元进行存储;
13.所述索引接收单元接收所述加密数据、所述安全索引和所述验证信息后存储并转发至所述数据搜索单元;
14.所述第j个数据请求模块的共享密钥接收单元接收所述共享密钥后,分别转发至自身的令牌生成单元和证据验证单元;
15.第j个数据请求模块的令牌生成单元根据自身要查询的数据项的访问身份属性、空间属性以及类别属性使用所述共享密钥生成查询令牌,并发送给所述数据搜索单元;
16.所述数据搜索单元使用所述查询令牌搜索所述安全索引,若搜索成功,则向所述第j个数据请求模块的证据验证单元发送对应的加密数据与验证信息,若搜索失败,则向所述第j个数据请求模块的证据验证单元发送空字符串;
17.所述第j个数据请求模块的证据验证单元若接收所述加密数据,则使用所述共享密钥对所述加密数据进行解密,再根据所述验证信息生成验证结果,从而利用所述验证结果判断是否接受解密后的数据。
18.本发明一种面向密态数据的重复、不经意和抗链接的查询方法的特点是应用于由多个数据上传方、多个数据请求方和一个数据云存储方所构成的网络环境中,所述查询方法是按如下步骤进行:
19.步骤一、构建索引:
20.步骤1.1任意第x个数据上传方首先生成共享密钥key,并对一组有n个数据项的数据集di中任意第i个数据项dii,抽取其位置属性li,再将li转换为一组网格编号{gi
i1
,gi
i2
,

,gi
il-1
,gi
il
},其中,gi
il
表示第i个数据项dii的位置属性li映射在第l层的网格编号,所述第x个数据上传方从共享密钥key中选择一个密钥k0,用于将网格编号{gi
i1
,gi
i2
,

,gi
il-1
,gi
il
}编码成一组按层级化分的多层位置编码lci:其中,表示使用密钥k0的伪随机密钥散列消息认证码函数,||表示字符串拼接,i∈[1,n];
[0021]
步骤1.2给定p个伪随机密钥散列消息认证码函数h1,h2,hv…
,h
p
、一个随机预言机h和p 1个密钥k1,k2,kv…
,k
p
,k
p 1
,所述第x个数据上传方初始化一个空的不可分辨布隆过滤器ibfi,令从而分别将多层位置编码lci的前l-2层编码嵌入到不可分辨布隆过滤器ibfi中;其中,ri表示ibfi对应的随机数,lc
iu
表示lci中第u层的层级位置编码,kv表示第v个密钥;hv表示使用第v个密钥kv的伪随机密钥散列消息认证码函数,表示使用第p 1个密钥k
p 1
的伪随机密钥散列消息认证码函数;表示异或操作,v∈[1,p],u∈[2,l-1];
[0022]
步骤1.3对于多层位置编码lci的第l层,所述第x个数据上传方利用前缀编码方法首先计算g
il
的前缀族pf
i1
和dii的身份属性idi的前缀族pf
i2
,然后将pf
i1
和pf
i2
串接在一起,得到一个混合码集mci;
[0023]
所述第x个数据上传方将lc
il
的层号和dii的类型属性作为混合码集mci中每个代码的前缀,所述第x个数据上传方令u

∈[1,|mci|],设置|],设置从而将mci中的每个混合代码插入不可分辨布隆过滤器ibfi;其中,mcu′
表示混合码集mci中第u

个混合代码;
[0024]
步骤1.4所述第x个数据上传方按步骤1.1-步骤1.3的过程处理所有数据项,从而得到n个不可分辨布隆过滤器,并将n个不可分辨布隆过滤器随机排序,然后从最后一层开始,任意两个不可分辨布隆过滤器分别作为左孩子和右孩子,从而利用式(1)合并为一个不
可分辨布隆过滤器作为父亲,最终按照从下向上的顺序构建索引树i:
[0025][0026]
式(1)中,ibf
left
表示左孩子,ibf
right
表示右孩子,ibf
father
表示父亲,且i∈[1,m],m为不可分辨布隆过滤器的长度;
[0027]
步骤1.5所述第x个数据上传方基于公钥sk使用aes对称加密方法对n个数据项进行加密,得到加密的数据ct={ct1,ct2,

,cti,

,ctn},ct中的第i个数据项cti表示数据集di中第i个数据项dii经过aes对称加密方法加密所得到的密文;
[0028]
所述第x个数据上传方根据索引树i的叶子节点的不可分辨布隆过滤器的值计算叶子节点的哈希值hv;然后从下到上计算每个非叶子节点的哈希值hv=hash(hv
left
hv
right
);hv
left
表示左孩子节点哈希值,hv
right
表示右孩子节点哈希值,最后计算得到根节点的哈希值rt并作为验证信息;
[0029]
步骤1.6所述第x个数据上传方将所述索引树i和随机数集合作为安全索引,再将加密后的数据ct={ct1,ct2,

,ctn}以及验证信息rt提交到所述数据云存储方;同时将共享密钥key分享给任一数据请求方;
[0030]
步骤二、令牌生成:
[0031]
步骤2.1任意第j个数据请求方利用空间编码方法将所需请求数据项的位置按层级化分的位置编码lc:其中,lcu表示lc的第u层的位置编码,exp(g
l
)表示网格扩展函数;
[0032]
步骤2.2所述第j个数据请求方首先计算前l-1层的位置编码lc的哈希值hv(lcu)和从而计算所有l-1层的位置编码后得到令牌tj的第一部分其中,v∈[1,p]和u∈[2,l-1];
[0033]
步骤2.3对于位置编码lc的第l层,所述第j个数据请求方先计算exp(g
l
)的最小前缀族m1,然后在计算身份扩展函数r(idi)的最小前缀族m2,其中,当idi为偶数时:r(idi)=[idi,idi 1]∨[idi 2,idi 3]∨

∨[idi 2|s(1,n)|-2,idi 2|s(1,n)|-1]
[0034]
当idi为奇数时:
[0035]
r(idi)=[id
i-1,idi]∨[idi 1,idi 2]∨

∨[idi 2|s(1,n)|-3,idi 2|s(1,n)|-2],|s(1,n)|表示(1,n)这个范围的最小前缀族的长度,通过连接m1和m2得到一个混合编码集mc,然后将位置编码lc
l
的层号和类型作为每个混合代码的前缀,从而得到令牌tj的第二部分t
j2
,最后所述第j个数据请求方将令牌tj发送给所述数据云存储方;
[0036]
步骤三、查询处理:
[0037]
步骤3.1所述数据云存储方分别从多个数据上传方接收到相应的安全索引,并从第j个数据请求方接收到查询令牌tj;
[0038]
步骤3.2所述数据云存储方从索引树i的根节点开始从上往下利用检查所述查询令牌tj的第一部分t
j1
,是否能匹配所有的前l-1层编码,其中,u∈[2,l-1],若索引树i的第i个节点能匹配t
j1
,则返回验证信息{hvi,hv
root
}以及随机数ri给所述第j个数据请求方,然后从第i个节点的子节点开始继续往下查询,直到查询至索引树i的叶子节点,否则,查询到不满足t
j1
的第i个节点为止,从而返回空
的字符串、验证信息{hvi,hv
root
}以及随机数ri给所述第j个数据请求方;其中,hvi表示索引树的第i个节点的哈希值;
[0039]
步骤3.3所述数据云存储方在叶子节点利用检查所述查询令牌t的第二部分t2是否均能匹配到任意一个安全索引,若索引树i的第i个节点能匹配t
j2
,则返回相应的加密数据ei、验证信息{hvi,hv
root
}以及随机数ri给所述第j个数据请求方以进一步解密数据,否则,查询到不满足t
j2
的第i个节点为止,返回空的字符串、验证信息{hvi,hv
root
}以及随机数ri给所述第j个数据请求方;
[0040]
步骤四、验证结果:
[0041]
步骤4.1所述第j个数据请求方从所述数据云存储方接收加密数据ei或空的字符串,从第i个数据上传方接收到共享密钥key,并使用所述共享密钥key解密所述加密数据ei以验证加密数据ei的正确性;
[0042]
步骤4.2所述第j个数据请求方从所述数据云存储方接收验证信息集合hv
x
以及随机数集合,并根据验证信息集合hv
x
中的元素计算验证节点哈希值hv
ver
=hash(hva hvb),比较hv
root
与hv
ver
是否相同以验证加密数据ei的完整性;其中,hv
x
表示在所述第x个数据上传方生成的索引树查询时返回的验证信息集合,其中,a,b=1,2,

,|hv
x
|,|hv
x
|表示集合验证信息集合hv
x
的长度。
[0043]
与现有技术相比,本发明的有益效果在于:
[0044]
1、本发明中数据上传方提取数据项的身份属性、空间属性与类别属性计算安全索引和验证信息,加密数据后与索引和验证信息一起提交给数据云存储方,并与数据请求方共享密钥。数据请求方生成查询令牌提交给数据云存储方以获得需要数据和验证信息,验证查询结果。数据云存储方使用令牌搜索安全索引并返回相应数据和验证信息。通过这种方式解决了在加密和不断更新的数据上实现重复、不经意和抗链接的sknn查询,并有效保护了数据上传方和数据请求方的隐私;
[0045]
2、本发明使用多层结构的位置编码、前缀编码方法以及伪随机哈希函数方法使数据上传方生成安全索引和验证信息,使得恶意的数据云存储方无法获知数据上传方的空间位置等信息,达到了强索引安全性;
[0046]
3、本发明实现了在数据上传方、数据请求方与数据云存储方中各方上的低计算成本计算操作,实现了各方的较低开销通讯,有效降低了查询响应时间,避免了复杂的交互操作以本地执行为主,且安全k最近邻查询处理的准确性并未降低。
附图说明
[0047]
图1是现有技术中安全k最近邻查询模型图;
[0048]
图2是本发明一种面向密态数据的重复、不经意和抗链接的查询方法与系统的模型图;
[0049]
图3是本发明一种面向密态数据的重复、不经意和抗链接的查询方法与系统的概览图。
具体实施方式
[0050]
本实施例中,一个典型的安全k最近邻查询处理如图1所示,数据上传模块加密数
据并计算安全索引上传至数据云存储模块,数据请求模块向数据云存储模块发出安全k最近邻查询并获得返回结果;
[0051]
本实施例中,一种面向密态数据的重复、不经意和抗链接的查询方法与系统,如图2所示,包括多个数据上传模块、多个数据请求模块以及一个数据云存储模块;
[0052]
以一次搜索附近的披萨店服务中的云上密态数据重复的查询处理为例,数据上传模块为提供就餐服务的披萨店、数据请求模块为需要使用以前查询和体验过的披萨店服务的客人、数据云存储模块为第三方平台。客人将自己的位置和披萨店的身份属性提交给第三方平台,由第三方平台匹配合适的披萨店进行预定;
[0053]
数据上传模块包括:索引生成单元、共享密钥发送单元;
[0054]
数据请求模块包括:共享密钥接收单元、令牌生成单元、证据验证单元;
[0055]
数据云存储模块包括:索引接收单元、数据搜索单元;
[0056]
任意第x个数据上传模块的共享密钥发送单元将所产生的共享密钥分别发送给自身的索引生成单元和第j个数据请求模块的共享密钥接收单元;
[0057]
第x个数据上传模块的索引生成单元提取数据项的身份属性、空间属性与类别属性,并计算安全索引和验证信息,再使用共享密钥加密所需上传的数据项属性后得到加密数据,最后与安全索引和验证信息一同发送给索引接收单元进行存储;
[0058]
索引接收单元接收加密数据、安全索引和验证信息后存储并转发至数据搜索单元;
[0059]
第j个数据请求模块的共享密钥接收单元接收共享密钥后,分别转发至自身的令牌生成单元和证据验证单元;
[0060]
第j个数据请求模块的令牌生成单元根据自身要查询的数据项的访问身份属性、空间属性以及类别属性使用共享密钥生成查询令牌,并发送给数据搜索单元;
[0061]
数据搜索单元使用查询令牌搜索安全索引,若搜索成功,则向第j个数据请求模块的证据验证单元发送对应的加密数据与验证信息,若搜索失败,则向第j个数据请求模块的证据验证单元发送空字符串;
[0062]
第j个数据请求模块的证据验证单元若接收加密数据,则使用共享密钥对加密数据进行解密,再根据验证信息生成验证结果,从而利用验证结果判断是否接受解密后的数据。
[0063]
如图3所示,本实施例中使用基于金字塔的分层结构对位置属性进行空间编码,并且采用基于隐私保护的范围查询来生成数据项的身份前缀,进一步,本方法将重复查询问题和位置查询问题结合起来,将位置码和身份前缀混合在一起,然后利用ibf构建安全索引,并通过成员检查实现sknn查询,最后,数据用户解密并验证接收到的结果。
[0064]
本实施例中,一种面向密态数据的重复、不经意和抗链接的查询方法与系统是应用于由多个数据上传方、多个数据请求方和一个数据云存储方所构成的网络环境中,并按如下步骤进行:
[0065]
步骤一、构建索引:
[0066]
步骤1.1任意第x个数据上传方首先给定共享密钥key,第x个数据上传方先将数据集di中每一个数据项dii的位置属性li转换为一组网格编号{gi
i1
,gi
i2
,

,gi
il-1
,gi
il
},dii为位置li相关的有用信息,例如提供服务的披萨店上传的身份信息、披萨店地址信息等,计
算其加密数据ei,这里的加密算法是aes加密算法,位置编码按照金字塔状结构编码,金字塔有四个层次,即l1、l2、l3、l4,从第二层l2开始,该区域被划分为多个网格,l2、l3、l4分别有4个、16个和64个网格,gii表示该披萨店每一层所在的网格编号,第x个数据上传方然后选择一个密钥k0,将网格编号编码成一组按层级化分的位置编码:其中,表示使用密钥k0的伪随机密钥散列消息认证码函数,||表示字符串拼接,i∈[1,n];
[0067]
步骤1.2给定p个伪随机密钥散列消息认证码函数h1,h2,hv…
,h
p
、一个随机预言机h和p 1个密钥k1,k2,kv…
,k
p
,k
p 1
,第x个数据上传方初始化一个空的不可分辨布隆过滤器ibfi,令从而分别将多层位置编码lci的前l-2层编码嵌入到不可分辨布隆过滤器ibfi中;其中,ri表示ibfi对应的随机数,lc
iu
表示lci中第u层的层级位置编码,kv表示第v个密钥;hv表示使用第v个密钥kv的伪随机密钥散列消息认证码函数,表示使用第p 1个密钥k
p 1
的伪随机密钥散列消息认证码函数,密钥散列消息认证码指在数据之中加入密钥再进行散列运算得到的散列值;表示异或操作,v∈[1,p],u∈[2,l-1];
[0068]
步骤1.3对于多层位置编码lci的第l层,第x个数据上传方利用前缀编码方法首先计算g
il
的前缀族pf
i1
和dii的身份属性idi的前缀族pf
i2
,然后将pf
i1
和pf
i2
串接在一起,得到一个混合码集mci;
[0069]
第x个数据上传方将lc
il
的层号和dii的类型属性作为混合码集mci中每个代码的前缀,第x个数据上传方令u

∈[1,|mci|],设置|],设置从而将mci中的每个混合代码插入不可分辨布隆过滤器ibfi;其中,mcu′
表示混合码集mci中第u

个混合代码;
[0070]
步骤1.4第x个数据上传方按步骤1.1-步骤1.3的过程处理所有数据项,从而得到n个不可分辨布隆过滤器,并将n个不可分辨布隆过滤器随机排序,然后从最后一层开始,任意两个不可分辨布隆过滤器分别作为左孩子和右孩子,从而利用式(1)合并为一个不可分辨布隆过滤器作为父亲,最终按照从下向上的顺序构建索引树i:
[0071][0072]
式(1)中,ibf
left
表示左孩子,ibf
right
表示右孩子,ibf
father
表示父亲,且i∈[1,m],m为不可分辨布隆过滤器的长度;
[0073]
步骤1.5第x个数据上传方基于公钥sk使用aes对称加密方法对n个数据项进行加密,得到加密的数据ct={ct1,ct2,

,ctn},ct中的数据项cti表示数据集di中第i个数据项dii经过aes对称加密方法加密所得到的密文;
[0074]
第x个数据上传方根据索引树i的叶子节点的不可分辨布隆过滤器的值计算叶子节点的哈希值hv;然后从下到上计算每个非叶子节点的哈希值hv=hash(hv
left
hv
right
);hv
left
表示左孩子节点哈希值,hv
right
表示右孩子节点哈希值,最后计算得到根节点的哈希值rt并作为验证信息;
[0075]
步骤1.6第x个数据上传方将索引树i和随机数集合作为安全索引,再将加密后的数据ct={ct1,ct2,

,ctn}以及验证信息rt提交到数据云存储方;同时将共享密钥key分享给任一数据请求方;
[0076]
步骤二、令牌生成:
[0077]
步骤2.1任意第j个数据请求方利用空间编码方法将所需请求数据项的位置按层级化分的位置编码lc:其中,lcu表示lc的第u层的位置编码,exp(g
l
)表示网格扩展函数,例如在披萨店服务中,客人输入查询地址信息并将它转换为金字塔结构的分层编码;
[0078]
步骤2.2第j个数据请求方首先计算前l-1层的位置编码lc的哈希值hv(lcu)和从而计算所有l-1层的位置编码后得到令牌tj的第一部分其中v∈[1,p]和u∈[2,l-1];
[0079]
步骤2.3对于位置编码lc的第l层,第j个数据请求方先计算exp(g
l
)的最小前缀族m1,然后在计算身份扩展函数r(idi)的最小前缀族m2,其中,当idi为偶数时:r(idi)=[idi,idi 1]∨[idi 2,idi 3]∨

∨[idi 2|s(1,n)|-2,idi 2|s(1,n)|-1]
[0080]
当idi为奇数时:
[0081]
r(idi)=[id
i-1,idi]∨[idi 1,idi 2]∨

∨[idi 2|s(1,n)|-3,idi 2|s(1,n)|-2],|s(1,n)|表示(1,n)这个范围的最小前缀族的长度,通过连接m1和m2得到一个混合编码集mc,然后将位置编码lc
l
的层号和类型作为每个混合代码的前缀,从而得到令牌tj的第二部分t
j2
,最后第j个数据请求方将令牌tj发送给数据云存储方;
[0082]
步骤三、查询处理:
[0083]
步骤3.1数据云存储方分别从多个数据上传方接收到相应的安全索引,并从第j个数据请求方接收到查询令牌tj;
[0084]
步骤3.2所述数据云存储方从索引树i的根节点开始从上往下利用检查所述查询令牌tj的第一部分t
j1
,是否能匹配所有的前l-1层编码,其中,u∈[2,l-1],若索引树i的第i个节点能匹配t
j1
,则返回验证信息{hvi,hv
root
}以及随机数ri给所述第j个数据请求方,然后从第i个节点的子节点开始继续往下查询,直到查询至索引树i的叶子节点,否则,查询到不满足t
j1
的第i个节点为止,从而返回空的字符串、验证信息{hvi,hv
root
}以及随机数ri给所述第j个数据请求方;其中,hvi表示索引树的第i个节点的哈希值;
[0085]
步骤3.3数据云存储方在叶子节点利用检查查询令牌t的第二部分t2是否均能匹配到任意一个安全索引,若索引树i的第i个节点能匹配t
j2
,则返回相应的加密数据ei、验证信息{hvi,hv
root
}以及随机数ri给第j个数据请求方以进一步解密数据,否则查询到不满足t
j2
的第i个节点为止为止,返回空的字符串、验证信息{hvi,hv
root
}以及随机数ri给第j个数据请求方;
[0086]
步骤四、验证结果:
[0087]
步骤4.1第j个数据请求方从数据云存储方接收加密数据ei或空的字符串,从第i个数据上传方接收到共享密钥key,并使用共享密钥key解密加密数据ei以验证加密数据ei的正确性;
[0088]
步骤4.2第j个数据请求方从数据云存储方接收验证信息集合hv
x
以及随机数集合,并根据验证信息集合hv
x
中的元素计算验证节点哈希值hv
ver
=hash(hva hvb),比较hv
root
与hv
ver
是否相同以验证加密数据ei的完整性;其中,hv
x
表示在第x个数据上传方生成的索引树查询时返回的验证信息集合,其中,a,b=1,2,

,|hv
x
|,|hv
x
|表示集合验证信息集合hv
x
的长度。
[0089]
综上所述,本发明在安全k最近邻算法的基础上进行了改进,解决了一种面向密态数据的重复、不经意和抗链接的查询方法与系统,能够有效抵抗不可信数据云存储方的安全威胁,从而保护数据请求方的隐私安全与财产安全。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献