一种数据访问方法、装置及系统制造方法及图纸

技术编号:22914205 阅读:23 留言:0更新日期:2019-12-24 21:53
本申请公开了一种数据访问方法、装置及系统。本申请公开的方法包括:数据共享者对应的客户端将从区块链获取的元数据密文发至代理服务器,代理服务器对元数据密文重加密后,将获得的重加密元数据密文发至客户端;客户端解密重加密元数据密文,获得数据密文在云端的存储位置后,发送访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器对数据密文重加密后,将获得的重加密数据密文发至客户端;客户端验证重加密数据密文,若验证通过,则解密重加密数据密文,获得数据。本申请为数据的安全共享提供了保障,提高了数据安全性。相应地,本申请公开的一种数据访问装置及系统,也同样具有上述技术效果。

【技术实现步骤摘要】
一种数据访问方法、装置及系统
本申请涉及计算机
,特别涉及一种数据访问方法、装置及系统。
技术介绍
在现有技术中,数据拥有者通常将数据和数据的元数据以密文形式存储在云端,这样数据共享者便可在获得相应的授权后,访问云端存储的数据。其中,将数据和数据的元数据均存储在云端,数据和元数据存在被合谋攻击的风险,因此降低了数据的安全性。因此,如何提高数据安全性,是本领域技术人员需要解决的问题。
技术实现思路
有鉴于此,本申请的目的在于提供一种数据访问方法、装置及系统,以提高数据安全性。其具体方案如下:第一方面,本申请提供了一种数据访问方法,应用于数据共享者对应的客户端,包括:从区块链获取搜索关键字对应的元数据密文,并将元数据密文发至代理服务器,以使代理服务器利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文,并将重加密元数据密文发送至客户端;利用解密参数和数据共享者的私钥解密重加密元数据密文,得到搜索关键字对应的数据密文在云端的存储位置;发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器利用重加密密钥对数据密文进行重加密,获得重加密数据密文,并将重加密数据密文发送至客户端;对重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。优选地,代理服务器利用重加密密钥对数据密文进行重加密之前,还包括:代理服务器利用第一验证等式验证数据密文的完整性;若第一验证等式成立,则执行利用重加密密钥对数据密文进行重加密的步骤;其中,第一验证等式为:e(a1,H4(a1||a2||a3))=e(g,a4)其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为数据密文中的参数,g为循环群G1中的生成元。优选地,对重加密数据密文进行验证,包括:利用第二验证等式验证重加密数据密文的完整性;若第二验证等式成立,则利用第三验证等式验证当前加密体制的正确性;若第三验证等式成立,则执行利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据的步骤;其中,第二验证等式为:e(a′1,H4(a′1||a′2||a′3))=e(g,a′4)其中,H4()为哈希函数组中的哈希函数,a′1,a′2,a′3,a′4分别为重加密数据密文中的参数,g为循环群G1中的生成元;其中,第三验证等式为:其中,pkB为数据共享者的公钥,skB为数据共享者的私钥;ε为解密参数,a1'为重加密数据密文中的参数,γ为目标参数,目标参数的计算公式为:γ=H2(m||ξ);m为数据,ξ为循环群G2中的元素,H1()和H2()为哈希函数组中的哈希函数。优选地,利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据,包括:按照解密公式组解密重加密数据密文,获得数据,解密公式为:其中,ξ为循环群G2中的元素,a′2,a′3为重加密数据密文中的参数,pkB为数据共享者的公钥,ε为解密参数,m为数据,H1()和H3()分别为哈希函数组中的哈希函数,γ为目标参数。第二方面,本申请提供了一种数据访问装置,应用于数据共享者对应的客户端,包括:元数据获取模块,用于从区块链获取搜索关键字对应的元数据密文,并将元数据密文发至代理服务器,以使代理服务器利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文,并将重加密元数据密文发送至客户端;元数据解密模块,用于利用解密参数和数据共享者的私钥解密重加密元数据密文,得到搜索关键字对应的数据密文在云端的存储位置;数据获取模块,用于发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器利用重加密密钥对数据密文进行重加密,获得重加密数据密文,并将重加密数据密文发送至客户端;数据解密模块,用于对重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。第三方面,本申请提供了一种数据访问系统,包括:区块链、云端、代理服务器和数据共享者对应的客户端,其中:区块链,用于存储搜索关键字对应的元数据密文;云端,用于存储搜索关键字对应的数据密文;代理服务器,用于利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文;利用重加密密钥对数据密文进行重加密,获得重加密数据密文;数据共享者对应的客户端,用于从区块链获取元数据密文,并将元数据密文发至代理服务器;利用解密参数和数据共享者的私钥解密代理服务器发送的重加密元数据密文,得到数据密文在云端的存储位置;发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;对代理服务器发送的重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。优选地,云端具体用于:利用系统初始化算法生成公开参数,并将公开参数发送至区块链、代理服务器和数据共享者对应的客户端。优选地,还包括:数据拥有者对应的客户端,用于利用数据拥有者的公钥加密元数据,获得元数据密文,将元数据密文存储至区块链;按照第一公式组加密数据,获得数据密文,将数据密文存储至云端;其中,第一公式组为:其中,数据密文用SA表示,SA=(a1,a2,a3,a4),a1,a2,a3,a4分别为数据密文中的参数;g为循环群G1中的生成元,ξ为循环群G2中的元素,pkA为数据拥有者的公钥;γ为目标参数,目标参数的计算公式为:γ=H2(m||ξ),m为数据,H1()、H2()、H3()和H4()分别为哈希函数组中的哈希函数。优选地,还包括:第一可信服务器和第二可信服务器,其中:第一可信服务器,用于利用解密参数、重加密参数和重加密密钥生成算法计算重加密密钥;其中,重加密参数由数据拥有者对应的客户端生成,并被发送至第一可信服务器;重加密参数的生成公式为:η为重加密参数,pkB为数据共享者的公钥,pkA为数据拥有者的公钥,skA为数据拥有者的私钥,γ为目标参数,H1()为哈希函数组中的哈希函数;第二可信服务器,用于管理解密参数,解密参数由数据拥有者对应的客户端生成,并被存储至第二可信服务器。优选地,代理服务器具体用于:按照第二公式组对数据密文进行重加密,获得重加密数据密文;第一公式组为:其中,重加密数据密文用SA→B表示,SA→B=(a′1,a′2,a′3,a′4),a′1,a′2,a′3,a′4分别为重加密数据密文中的参数,a1,a2,a3分别为数据密文中的参数;pkA为数据拥有者的公钥,pkB为数据共享者的公钥,skA为数据拥有者的私钥,ε为解密参数,γ为目标参数,g为循环群G1中的生成元,H1()和H4()分别为哈希函数组中的哈希函数。通过本文档来自技高网...

【技术保护点】
1.一种数据访问方法,其特征在于,应用于数据共享者对应的客户端,包括:/n从区块链获取搜索关键字对应的元数据密文,并将所述元数据密文发至代理服务器,以使所述代理服务器利用重加密密钥对所述元数据密文进行重加密,获得重加密元数据密文,并将所述重加密元数据密文发送至所述客户端;/n利用解密参数和所述数据共享者的私钥解密所述重加密元数据密文,得到所述搜索关键字对应的数据密文在云端的存储位置;/n发送包含所述存储位置的访问请求至所述云端,以使所述云端将所述数据密文发送至所述代理服务器;所述代理服务器利用所述重加密密钥对所述数据密文进行重加密,获得重加密数据密文,并将所述重加密数据密文发送至所述客户端;/n对所述重加密数据密文进行验证,若验证通过,则利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得所述数据。/n

【技术特征摘要】
1.一种数据访问方法,其特征在于,应用于数据共享者对应的客户端,包括:
从区块链获取搜索关键字对应的元数据密文,并将所述元数据密文发至代理服务器,以使所述代理服务器利用重加密密钥对所述元数据密文进行重加密,获得重加密元数据密文,并将所述重加密元数据密文发送至所述客户端;
利用解密参数和所述数据共享者的私钥解密所述重加密元数据密文,得到所述搜索关键字对应的数据密文在云端的存储位置;
发送包含所述存储位置的访问请求至所述云端,以使所述云端将所述数据密文发送至所述代理服务器;所述代理服务器利用所述重加密密钥对所述数据密文进行重加密,获得重加密数据密文,并将所述重加密数据密文发送至所述客户端;
对所述重加密数据密文进行验证,若验证通过,则利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得所述数据。


2.根据权利要求1所述的数据访问方法,其特征在于,所述代理服务器利用所述重加密密钥对所述数据密文进行重加密之前,还包括:
所述代理服务器利用第一验证等式验证所述数据密文的完整性;
若所述第一验证等式成立,则执行所述利用所述重加密密钥对所述数据密文进行重加密的步骤;
其中,所述第一验证等式为:
e(a1,H4(a1||a2||a3))=e(g,a4)
其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为所述数据密文中的参数,g为循环群G1中的生成元。


3.根据权利要求2所述的数据访问方法,其特征在于,所述对所述重加密数据密文进行验证,包括:
利用第二验证等式验证所述重加密数据密文的完整性;
若所述第二验证等式成立,则利用第三验证等式验证当前加密体制的正确性;
若第三验证等式成立,则执行所述利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得所述数据的步骤;
其中,所述第二验证等式为:
e(a′1,H4(a′1||a'2||a'3))=e(g,a'4)
其中,H4()为所述哈希函数组中的哈希函数,a′1,a'2,a'3,a'4分别为所述重加密数据密文中的参数,g为循环群G1中的生成元;
其中,所述第三验证等式为:



其中,pkB为所述数据共享者的公钥,skB为所述数据共享者的私钥;ε为所述解密参数,a′1为所述重加密数据密文中的参数,γ为目标参数,所述目标参数的计算公式为:γ=H2(m||ξ);m为所述数据,ξ为循环群G2中的元素,H1()和H2()为所述哈希函数组中的哈希函数。


4.根据权利要求3所述的数据访问方法,其特征在于,所述利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得所述数据,包括:
按照解密公式组解密所述重加密数据密文,获得所述数据,所述解密公式为:



其中,ξ为循环群G2中的元素,a'2,a'3为所述重加密数据密文中的参数,pkB为所述数据共享者的公钥,ε为所述解密参数,m为所述数据,H1()和H3()分别为所述哈希函数组中的哈希函数,γ为所述目标参数。


5.一种数据访问装置,其特征在于,应用于数据共享者对应的客户端,包括:
元数据获取模块,用于从区块链获取搜索关键字对应的元数据密文,并将所述元数据密文发至代理服务器,以使所述代理服务器利用重加密密钥对所述元数据密文进行重加密,获得重加密元数据密文,并将所述重加密元数据密文发送至所述客户端;
元数据解密模块,用于利用解密参数和所述数据共享者的私钥解密所述重加密元数据密文,得到所述搜索关键字对应的数据密文在云端的存储位置;
数据获取模块,用于发送包含所述存储位置的访问请求至所述云端,以使所述云端将所述数据密文发送至所述代理...

【专利技术属性】
技术研发人员:雷艳芳贾志娟胡明生杨艳艳程亚歌付俊俊
申请(专利权)人:郑州师范学院
类型:发明
国别省市:河南;41

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

1