CN110610102B - 一种数据访问方法、装置及系统 - Google Patents
一种数据访问方法、装置及系统 Download PDFInfo
- Publication number
- CN110610102B CN110610102B CN201910900712.1A CN201910900712A CN110610102B CN 110610102 B CN110610102 B CN 110610102B CN 201910900712 A CN201910900712 A CN 201910900712A CN 110610102 B CN110610102 B CN 110610102B
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- encrypted
- metadata
- proxy server
- 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
- 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/6272—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 by registering files or documents with a third party
Abstract
本申请公开了一种数据访问方法、装置及系统。本申请公开的方法包括:数据共享者对应的客户端将从区块链获取的元数据密文发至代理服务器,代理服务器对元数据密文重加密后,将获得的重加密元数据密文发至客户端;客户端解密重加密元数据密文,获得数据密文在云端的存储位置后,发送访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器对数据密文重加密后,将获得的重加密数据密文发至客户端;客户端验证重加密数据密文,若验证通过,则解密重加密数据密文,获得数据。本申请为数据的安全共享提供了保障,提高了数据安全性。相应地,本申请公开的一种数据访问装置及系统,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据访问方法、装置及系统。
背景技术
在现有技术中,数据拥有者通常将数据和数据的元数据以密文形式存储在云端,这样数据共享者便可在获得相应的授权后,访问云端存储的数据。其中,将数据和数据的元数据均存储在云端,数据和元数据存在被合谋攻击的风险,因此降低了数据的安全性。
因此,如何提高数据安全性,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据访问方法、装置及系统,以提高数据安全性。其具体方案如下:
第一方面,本申请提供了一种数据访问方法,应用于数据共享者对应的客户端,包括:
从区块链获取搜索关键字对应的元数据密文,并将元数据密文发至代理服务器,以使代理服务器利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文,并将重加密元数据密文发送至客户端;
利用解密参数和数据共享者的私钥解密重加密元数据密文,得到搜索关键字对应的数据密文在云端的存储位置;
发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器利用重加密密钥对数据密文进行重加密,获得重加密数据密文,并将重加密数据密文发送至客户端;
对重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。
优选地,代理服务器利用重加密密钥对数据密文进行重加密之前,还包括:
代理服务器利用第一验证等式验证数据密文的完整性;
若第一验证等式成立,则执行利用重加密密钥对数据密文进行重加密的步骤;
其中,第一验证等式为:
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为本申请公开的一种数据访问方法流程图;
图2为本申请公开的一种数据访问装置示意图;
图3为本申请公开的一种数据访问系统示意图;
图4为本申请公开的另一种数据访问系统示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,将数据和数据的元数据均存储在云端,存在被合谋攻击的风险,因此降低了数据的安全性。为此,本申请提供了一种数据访问方案,能够为数据的安全共享提供了保障,提高了数据安全性。
参见图1所示,本申请实施例公开了一种数据访问方法,应用于数据共享者对应的客户端,包括:
S101、从区块链获取搜索关键字对应的元数据密文,并将元数据密文发至代理服务器,以使代理服务器利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文,并将重加密元数据密文发送至客户端;
在一种具体实施方式中,代理服务器利用重加密密钥对数据密文进行重加密之前,还包括:代理服务器利用第一验证等式验证数据密文的完整性;若第一验证等式成立,则执行利用重加密密钥对数据密文进行重加密的步骤。
其中,第一验证等式为:
e(a1,H4(a1||a2||a3))=e(g,a4)
其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为数据密文中的参数,g为循环群G1中的生成元。
其中,若第一验证等式不成立,则说明数据密文有误,因此可向数据共享者对应的客户端和云端反馈数据密文有误的提示信息,以便数据共享者对应的客户端重新发送访问请求,云端重新查询数据密文。
S102、利用解密参数和数据共享者的私钥解密重加密元数据密文,得到搜索关键字对应的数据密文在云端的存储位置;
S103、发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器利用重加密密钥对数据密文进行重加密,获得重加密数据密文,并将重加密数据密文发送至客户端;
S104、对重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。
在一种具体实施方式中,对重加密数据密文进行验证,包括:利用第二验证等式验证重加密数据密文的完整性;若第二验证等式成立,则利用第三验证等式验证当前加密体制的正确性;若第三验证等式成立,则执行利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据的步骤。
其中,第二验证等式为:
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()分别为哈希函数组中的哈希函数,γ为目标参数。
其中,若第二验证等式或第三验证等式不成立,则可以向全网各端反馈重加密数据密文有误的提示信息,以便各端进行自查,确定错误原因。
可见,本申请实施例将元数据密文存储在区块链中,将数据密文存储在云端,采用分离存储的方式,有效降低了数据被合谋攻击的风险。并且,数据共享者访问数据的前提是,首先需要从元数据密文中解密得到数据密文在云端的存储位置,而数据密文在云端的存储位置被加密在元数据密文中,元数据密文存储在区块链中。区块链能够避免元数据密文被窃取或篡改,从而提高了元数据的安全性。同时,元数据密文需要利用特定的解密参数和数据共享者的私钥解密才能获得,就算非法用户窃取到元数据密文,也难以解密获得元数据明文。因此本申请为数据的安全共享提供了保障,提高了数据安全性。
下面对本申请实施例提供的一种数据访问装置进行介绍,下文描述的一种数据访问装置与上文描述的一种数据访问方法可以相互参照。
参见图2所示,本申请实施例公开了一种数据访问装置,应用于数据共享者对应的客户端,包括:
元数据获取模块201,用于从区块链获取搜索关键字对应的元数据密文,并将元数据密文发至代理服务器,以使代理服务器利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文,并将重加密元数据密文发送至客户端;
元数据解密模块202,用于利用解密参数和数据共享者的私钥解密重加密元数据密文,得到搜索关键字对应的数据密文在云端的存储位置;
数据获取模块203,用于发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;代理服务器利用重加密密钥对数据密文进行重加密,获得重加密数据密文,并将重加密数据密文发送至客户端;
数据解密模块204,用于对重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。
在一种具体实施方式中,代理服务器还用于:利用第一验证等式验证数据密文的完整性;若第一验证等式成立,则执行利用重加密密钥对数据密文进行重加密的步骤。
其中,第一验证等式为:
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()分别为哈希函数组中的哈希函数,γ为目标参数。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种数据访问装置,该装置为数据的安全共享提供了保障,提高了数据安全性。
下面对本申请实施例提供的一种数据访问系统进行介绍,下文描述的一种数据访问系统与上文描述的一种数据访问方法及装置可以相互参照。
参见图3所示,本申请实施例公开了一种数据访问系统,包括:区块链301、云端302、代理服务器303、数据共享者对应的客户端304和数据拥有者对应的客户端305,其中:
区块链,用于存储搜索关键字对应的元数据密文;
云端,用于存储搜索关键字对应的数据密文;
代理服务器,用于利用重加密密钥对元数据密文进行重加密,获得重加密元数据密文;利用重加密密钥对数据密文进行重加密,获得重加密数据密文;
数据共享者对应的客户端,用于从区块链获取元数据密文,并将元数据密文发至代理服务器;利用解密参数和数据共享者的私钥解密代理服务器发送的重加密元数据密文,得到数据密文在云端的存储位置;发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;对代理服务器发送的重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,获得数据。
优选地,云端具体用于:
利用系统初始化算法生成公开参数,并将公开参数发送至区块链、代理服务器和数据共享者对应的客户端。
优选地,还包括:
数据拥有者对应的客户端,用于利用数据拥有者的公钥加密元数据,获得元数据密文,将元数据密文存储至区块链;
按照第一公式组加密数据,获得数据密文,将数据密文存储至云端;
其中,第一公式组为:
其中,数据密文用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()分别为哈希函数组中的哈希函数。
其中,
可见,本实施例提供了一种数据访问系统,该系统为数据的安全共享提供了保障,提高了数据安全性。
请参见图4,本实施例提供了另一种数据访问系统,包括:数据拥有者(Alice)对应的客户端,数据共享者(Bob)对应的客户端,云端,区块链,代理服务器,可信服务器RGK(上文提及的第一可信服务器),可信服务器SD(上文提及的第二可信服务器)。
其中,云端用于进行系统初始化,初始化过程采用Setup算法,包括:
选取长度为λ的大素数p,然后构建两个阶数为p的乘法循环群,并将其记为G1和G2。假设g为循环群G1的生成元,并定义双线性映射e:G1×G1→G2。设置如下的哈希函数组H1,H2,H3,H4,分别定义如下:
H1:{0,1}*→G1,H2:{0,1}*→Z* P
H3:G2→{0,1}l,H4:{0,1}*→G1
那么,系统初始化获得的公开参数para={G1,G2,p,g,H1,H2,H3,H4},这些公开参数被公开至数据拥有者(Alice)对应的客户端,数据共享者(Bob)对应的客户端,区块链,代理服务器,可信服务器RGK和可信服务器SD。
数据拥有者(Alice)对应的客户端执行的操作包括:
(1)生成数据拥有者的公私钥对KeyGen(para)→(sk,pk):
生成数据拥有者的公钥和私钥具体过程包括:数据拥有者对应的客户端在数据拥有者的操作下随机选取并计算sk=x,pk=gx,那么可获得数据拥有者的公私钥对(pkA,skA),其中,pkA为数据拥有者的公钥,skA为数据拥有者的私钥。
(2)生成元数据密文Encry(Data,pkA)→TA:
数据拥有者对应的客户端在数据拥有者的操作下,利用数据拥有者的公钥pkA对元数据Data进行加密,得到元数据密文TA=(k',pos')。
(3)生成数据密文Encry(m,pkA)→SA:
数据拥有者对应的客户端在数据拥有者的操作下,利用数据拥有者的公钥pkA、循环群G2中选取的元素ξ,对明文消息m进行加密,获得数据密文SA=(a1,a2,a3,a4),数据密文具体如下:
其中,γ=H2(m||ξ)。
(4)生成重加密参数Rkpara(pkA,skA,pkB,γ)→η:
(5)数据拥有者对应的客户端在数据拥有者的操作下,随机选取将ε确定为解密参数,并将ε发送至可信服务器SD,以使可信服务器SD管理ε,可信服务器对ε的管理,包括:在数据拥有者对应的客户端发送指令至可信服务器SD时,可信服务器SD对ε进行更新、删除、增加、查询等。
其中,一个数据共享者对应一个ε,当一个数据共享者对应的ε被数据拥有者改变后,若该数据共享者未及时从可信服务器SD中获取最新的ε,那么数据共享者将无法获得想要访问的数据。
可信服务器RGK执行的操作包括:
其中,ε,η均为固定长度的字符串。可信服务器RGK代替数据拥有者对应的客户端生成重加密密钥,可降低数据拥有者对应的客户端的计算量和压力。
代理服务器执行的操作包括:
代理服务器在获得元数据密文后,并利用重加密密钥对元数据密文TA进行重加密,获得重加密元数据密文TA→B。
代理服务器在获得元数据密文后,并利用重加密密钥对数据密文SA进行重加密,获得重加密数据密文SA→B:
具体的,代理服务器按照第二公式组对数据密文进行重加密,获得重加密数据密文;第一公式组为:
需要说明的是,若代理服务器本地可查询到重加密密钥,那么代理服务器可直接执行重加密操作;否则,代理服务器需要先从可信服务器RGK中获取重加密密钥,再执行重加密操作。代理服务器执行的重加密操作,能够将解密操作所需的参数转换为与Bob有关的参数。因为元数据密文或数据密文是由Alice的公钥加密的秘文,需要用Alice的私钥进行解密。而Bob无法获得Alice的私钥,因此需要二次加密。重加密过程能够把由Alice私钥解密的密文转换为由Bob的私钥解密的密文。
其中,代理服务器在获得元数据密文或数据密文后,执行重加密操作之前,需要先对元数据密文或数据密文进行验证,以验证密文的完整性,待验证通过后,才执行重加密操作。下述以数据密文为例介绍验证过程,元数据密文的验证过程可参照数据密文的验证过程。
代理服务器利用第一验证等式验证数据密文的完整性;若第一验证等式成立,则执行重加密操作。
其中,第一验证等式为:
e(a1,H4(a1||a2||a3))=e(g,a4)
其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为数据密文中的参数,g为循环群G1中的生成元。
数据共享者(Bob)对应的客户端执行的操作包括:
当数据共享者想要访问云端的数据时,首先操作相应客户端从区块链中获取元数据密文,并将元数据密文发至代理服务器,以使代理服务器将元数据密文转换为自己可解密的密文。解密代理服务器发送的重加密元数据密文,可得到数据密文在云端的存储位置;进而数据共享者操作相应客户端发送包含存储位置的访问请求至云端,以使云端将数据密文发送至代理服务器;待获得代理服务器发送的重加密数据密文后,数据共享者操作相应客户端对重加密数据密文进行验证,若验证通过,则利用数据共享者的公钥和私钥,以及解密参数解密重加密数据密文,可获得数据。
其中,若数据共享者(Bob)对应的客户端本地未查询到解密参数,则需要从可信服务器SD中获取解密参数,才能对重加密元数据密文或重加密数据密文进行解密。
其中,数据共享者对应的客户端解密重加密元数据密文之前,也需要对重加密元数据密文进行验证,待验证通过后,才执行解密操作。本说明书对重加密数据密文的验证过程进行了详细介绍,数据共享者对应的客户端对重加密元数据密文的验证过程可参照其对重加密数据密文的验证过程。
可见,本实施例结合代理重加密技术和区块链设计了一种支持关键词检索的数据访问系统。其中采用数据密文和元数据密文分离存储的方式,有效降低了信息被合谋攻击的风险。将解密参数和重加密参数利用不同的可信服务器进行管理,当访问权限变更时,仅需对解密参数进行更新就可以进行权限更新。并且,本方案中的可信服务器RGK和可信服务器SD代替数据拥有者对应的客户端执行重加密密钥生成和解密参数管理操作,降低了数据拥有者对应的客户端的计算量和压力;代理服务器能够降低云端和数据共享者对应的客户端的计算量和压力。系统中的区块链还为数据的安全共享提供了保障,提高了数据安全性。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种数据访问方法,其特征在于,应用于数据共享者对应的客户端,包括:
从区块链获取搜索关键字对应的元数据密文,并将所述元数据密文发至代理服务器,以使所述代理服务器利用重加密密钥对所述元数据密文进行重加密,获得重加密元数据密文,并将所述重加密元数据密文发送至所述客户端;
利用解密参数和所述数据共享者的私钥解密所述重加密元数据密文,得到所述搜索关键字对应的数据密文在云端的存储位置;
发送包含所述存储位置的访问请求至所述云端,以使所述云端将所述数据密文发送至所述代理服务器;所述代理服务器利用所述重加密密钥对所述数据密文进行重加密,获得重加密数据密文,并将所述重加密数据密文发送至所述客户端;
对所述重加密数据密文的完整性进行验证,若验证通过,则利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得数据;
其中,所述代理服务器利用所述重加密密钥对所述数据密文进行重加密之前,还包括:
所述代理服务器利用第一验证等式验证所述数据密文的完整性;
若所述第一验证等式成立,则执行所述利用所述重加密密钥对所述数据密文进行重加密的步骤;
其中,所述第一验证等式为:
e(a1,H4(a1||a2||a3))=e(g,a4)
其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为所述数据密文中的参数,g为循环群G1中的生成元。
2.根据权利要求1所述的数据访问方法,其特征在于,所述对所述重加密数据密文的完整性进行验证,包括:
利用第二验证等式验证所述重加密数据密文的完整性;
若所述第二验证等式成立,则利用第三验证等式验证当前加密体制的正确性;
若第三验证等式成立,则执行所述利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得数据的步骤;
其中,所述第二验证等式为:
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.一种数据访问装置,其特征在于,应用于数据共享者对应的客户端,包括:
元数据获取模块,用于从区块链获取搜索关键字对应的元数据密文,并将所述元数据密文发至代理服务器,以使所述代理服务器利用重加密密钥对所述元数据密文进行重加密,获得重加密元数据密文,并将所述重加密元数据密文发送至所述客户端;
元数据解密模块,用于利用解密参数和所述数据共享者的私钥解密所述重加密元数据密文,得到所述搜索关键字对应的数据密文在云端的存储位置;
数据获取模块,用于发送包含所述存储位置的访问请求至所述云端,以使所述云端将所述数据密文发送至所述代理服务器;所述代理服务器利用所述重加密密钥对所述数据密文进行重加密,获得重加密数据密文,并将所述重加密数据密文发送至所述客户端;
数据解密模块,用于对所述重加密数据密文的完整性进行验证,若验证通过,则利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得数据;
其中,所述代理服务器利用所述重加密密钥对所述数据密文进行重加密之前,还包括:
所述代理服务器利用第一验证等式验证所述数据密文的完整性;
若所述第一验证等式成立,则执行所述利用所述重加密密钥对所述数据密文进行重加密的步骤;
其中,所述第一验证等式为:
e(a1,H4(a1||a2||a3))=e(g,a4)
其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为所述数据密文中的参数,g为循环群G1中的生成元。
5.一种数据访问系统,其特征在于,包括:区块链、云端、代理服务器和数据共享者对应的客户端,其中:
所述区块链,用于存储搜索关键字对应的元数据密文;
所述云端,用于存储搜索关键字对应的数据密文;
所述代理服务器,用于利用重加密密钥对所述元数据密文进行重加密,获得重加密元数据密文;利用所述重加密密钥对所述数据密文进行重加密,获得重加密数据密文;其中,所述代理服务器利用所述重加密密钥对所述数据密文进行重加密之前,利用第一验证等式验证所述数据密文的完整性;若所述第一验证等式成立,则执行所述利用所述重加密密钥对所述数据密文进行重加密的步骤;其中,所述第一验证等式为:
e(a1,H4(a1||a2||a3))=e(g,a4)
其中,H4()为哈希函数组中的哈希函数,a1,a2,a3,a4分别为所述数据密文中的参数,g为循环群G1中的生成元;
所述数据共享者对应的客户端,用于从所述区块链获取所述元数据密文,并将所述元数据密文发至所述代理服务器;利用解密参数和所述数据共享者的私钥解密所述代理服务器发送的所述重加密元数据密文,得到所述数据密文在云端的存储位置;发送包含所述存储位置的访问请求至所述云端,以使所述云端将所述数据密文发送至所述代理服务器;对所述代理服务器发送的重加密数据密文的完整性进行验证,若验证通过,则利用所述数据共享者的公钥和私钥,以及所述解密参数解密所述重加密数据密文,获得数据。
6.根据权利要求5所述的数据访问系统,其特征在于,所述云端具体用于:
利用系统初始化算法生成公开参数,并将所述公开参数发送至所述区块链、所述代理服务器和所述数据共享者对应的客户端。
7.根据权利要求6所述的数据访问系统,其特征在于,还包括:
数据拥有者对应的客户端,用于利用所述数据拥有者的公钥加密所述元数据,获得所述元数据密文,将所述元数据密文存储至所述区块链;
按照第一公式组加密所述数据,获得所述数据密文,将所述数据密文存储至所述云端;
其中,所述第一公式组为:
其中,所述数据密文用SA表示,SA=(a1,a2,a3,a4),a1,a2,a3,a4分别为所述数据密文中的参数;g为循环群G1中的生成元,ξ为循环群G2中的元素,pkA为所述数据拥有者的公钥;γ为目标参数,所述目标参数的计算公式为:γ=H2(m||ξ),m为所述数据,H1()、H2()、H3()和H4()分别为哈希函数组中的哈希函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910900712.1A CN110610102B (zh) | 2019-09-23 | 2019-09-23 | 一种数据访问方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910900712.1A CN110610102B (zh) | 2019-09-23 | 2019-09-23 | 一种数据访问方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110610102A CN110610102A (zh) | 2019-12-24 |
CN110610102B true CN110610102B (zh) | 2021-06-25 |
Family
ID=68891926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910900712.1A Active CN110610102B (zh) | 2019-09-23 | 2019-09-23 | 一种数据访问方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110610102B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526197B (zh) * | 2020-04-24 | 2023-05-09 | 远光软件股份有限公司 | 一种云端数据安全共享方法 |
CN111641641B (zh) * | 2020-05-29 | 2021-07-30 | 兰州理工大学 | 基于可搜索代理重加密的区块链数据共享方法 |
CN112232639B (zh) * | 2020-09-22 | 2023-06-30 | 支付宝(杭州)信息技术有限公司 | 统计方法、装置和电子设备 |
CN113992330A (zh) * | 2021-10-30 | 2022-01-28 | 贵州大学 | 一种基于代理重加密的区块链数据受控共享方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731475A (zh) * | 2013-12-06 | 2014-04-16 | 中国科学院深圳先进技术研究院 | 一种数据保护系统 |
CN104408177A (zh) * | 2014-12-15 | 2015-03-11 | 西安电子科技大学 | 基于云文档系统的密文检索方法 |
CN104735070A (zh) * | 2015-03-26 | 2015-06-24 | 华中科技大学 | 一种通用的异构加密云间的数据共享方法 |
CN108259169A (zh) * | 2018-01-09 | 2018-07-06 | 北京大学深圳研究生院 | 一种基于区块链云存储的文件安全分享方法及系统 |
CN108418681A (zh) * | 2018-01-22 | 2018-08-17 | 南京邮电大学 | 一种支持代理重加密的基于属性的密文检索系统及方法 |
CN109189727A (zh) * | 2018-09-14 | 2019-01-11 | 江西理工大学 | 一种基于属性代理重加密的区块链密文云存储共享方法 |
CN109861826A (zh) * | 2019-02-18 | 2019-06-07 | 郑州师范学院 | 一种双向代理重签名的实现方法及装置 |
CN110247767A (zh) * | 2019-06-28 | 2019-09-17 | 北京工业大学 | 雾计算中可撤销的属性基外包加密方法 |
CN110266687A (zh) * | 2019-06-21 | 2019-09-20 | 杭州云象网络技术有限公司 | 一种采用区块链技术的物联网安全代理数据共享模块设计方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392394B2 (en) * | 2001-12-13 | 2008-06-24 | Digimarc Corporation | Digital watermarking with variable orientation and protocols |
US9858633B2 (en) * | 2015-01-23 | 2018-01-02 | Sony Corporation | Model anti-collusion watermark |
-
2019
- 2019-09-23 CN CN201910900712.1A patent/CN110610102B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731475A (zh) * | 2013-12-06 | 2014-04-16 | 中国科学院深圳先进技术研究院 | 一种数据保护系统 |
CN104408177A (zh) * | 2014-12-15 | 2015-03-11 | 西安电子科技大学 | 基于云文档系统的密文检索方法 |
CN104735070A (zh) * | 2015-03-26 | 2015-06-24 | 华中科技大学 | 一种通用的异构加密云间的数据共享方法 |
CN108259169A (zh) * | 2018-01-09 | 2018-07-06 | 北京大学深圳研究生院 | 一种基于区块链云存储的文件安全分享方法及系统 |
CN108418681A (zh) * | 2018-01-22 | 2018-08-17 | 南京邮电大学 | 一种支持代理重加密的基于属性的密文检索系统及方法 |
CN109189727A (zh) * | 2018-09-14 | 2019-01-11 | 江西理工大学 | 一种基于属性代理重加密的区块链密文云存储共享方法 |
CN109861826A (zh) * | 2019-02-18 | 2019-06-07 | 郑州师范学院 | 一种双向代理重签名的实现方法及装置 |
CN110266687A (zh) * | 2019-06-21 | 2019-09-20 | 杭州云象网络技术有限公司 | 一种采用区块链技术的物联网安全代理数据共享模块设计方法 |
CN110247767A (zh) * | 2019-06-28 | 2019-09-17 | 北京工业大学 | 雾计算中可撤销的属性基外包加密方法 |
Non-Patent Citations (4)
Title |
---|
基于代理重加密的云存储密文访问控制方案;朗讯,等;《计算机应用》;20140328;第34卷(第3期);第724-727,741页 * |
支持关键词搜索的属性代理重加密方案;刘振华,等;《电子与信息学报》;20180530;第40卷(第3期);第683-689页 * |
支持访问更新的可验证外包属性加密方案;林素青;《网络与信息安全学报》;20190327;第5卷(第1期);第37-49页 * |
标准模型下格上抗合谋攻击安全的代理重加密方案;吴立强;《科学技术与工程》;20170802;第17卷(第16期);第93-99页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110610102A (zh) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11381398B2 (en) | Method for re-keying an encrypted data file | |
CN110610102B (zh) | 一种数据访问方法、装置及系统 | |
CN108390876B (zh) | 支持撤销外包可验证多授权中心访问控制方法、云服务器 | |
US7320076B2 (en) | Method and apparatus for a transaction-based secure storage file system | |
JP5777630B2 (ja) | ドキュメント共有のための方法及び装置 | |
JP2021520714A5 (zh) | ||
CN108768951B (zh) | 一种云环境下保护文件隐私的数据加密和检索方法 | |
US7877604B2 (en) | Proof of execution using random function | |
US20120173885A1 (en) | Key management using trusted platform modules | |
CN110855430B (zh) | 计算系统和用于管理计算系统中的安全对象存储库的方法 | |
CN112434336A (zh) | 基于区块链的电子病历共享方法、装置、系统及存储介质 | |
CN106790045B (zh) | 一种基于云环境分布式虚拟机代理装置及数据完整性保障方法 | |
CN113407627A (zh) | 一种基于区块链的智能医疗网络系统及医疗数据共享方法 | |
CN112491529B (zh) | 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统 | |
CN114679340B (zh) | 一种文件共享方法、系统、设备及可读存储介质 | |
CN111639357B (zh) | 一种加密网盘系统及其认证方法和装置 | |
KR101140576B1 (ko) | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 | |
CN115809459B (zh) | 软件密码模块的数据保护及解密方法、系统、设备及介质 | |
CN112528309A (zh) | 一种数据存储加密和解密的方法及其装置 | |
JP5494171B2 (ja) | ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム | |
CN114567639A (zh) | 一种基于区块链的轻量级访问控制系统及方法 | |
Neela et al. | A Hybrid Cryptography Technique with Blockchain for Data Integrity and Confidentiality in Cloud Computing | |
Arvin S. Lat et al. | SOUL System: secure online USB login system | |
Abirami et al. | Efficient method for storing health record in cloud using integrity auditing and data sharing | |
Jahan et al. | Securely distributing files in cloud environment by dispensing asymmetric key management system applying hashing |
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 |