CN115604030A - 数据共享方法、装置、电子设备和存储介质 - Google Patents
数据共享方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115604030A CN115604030A CN202211513665.3A CN202211513665A CN115604030A CN 115604030 A CN115604030 A CN 115604030A CN 202211513665 A CN202211513665 A CN 202211513665A CN 115604030 A CN115604030 A CN 115604030A
- Authority
- CN
- China
- Prior art keywords
- key
- authority
- user terminal
- encrypted
- target user
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及计算机领域,提供一种数据共享方法、装置、电子设备和存储介质,该方法包括:根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出目标用户终端的权限分发密钥密文;将目标用户终端的权限分发密钥密文和加密数据对象发送至目标用户终端,以供目标用户终端基于权限分发密钥密文和加密数据对象得到对象内容和操作权限,通过对象内容和操作权限进行数据共享。本发明提供的数据共享方法将权限分发密钥密文下发至不同用户终端,使得不同用户终端不需要发送用户ID即可共享相同操作权限,从而无法通过用户ID区分用户终端,即无法判断当前执行操作的用户终端的用户身份,提升了用户终端执行各项操作权限时的匿名性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据共享方法、装置、电子设备和存储介质。
背景技术
随着信息技术的高速发展,远程数据存储和共享已经成为被广泛采用的技术。数据共享系统常常用于存储敏感数据,因此,保护用户的隐私和数据完整性至关重要。
目前常见的数据共享方法允许服务器跟踪用户,即用户终端提供用户ID以及自身对应的私钥签名,服务器根据用户ID找到用户公钥验证用户身份,然后允许用户终端进行读/写操作。因此,在数据共享时,用户终端执行各项操作权限时都会被跟踪,导致了用户终端执行各项操作权限时的匿名性低。
发明内容
本发明提供一种数据共享方法、装置、电子设备和存储介质,旨在提升用户终端执行各项操作权限时的匿名性。
第一方面,本发明提供一种数据共享方法,所述数据共享方法应用于云服务器,所述数据共享方法,包括:
根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
在一个实施例中,所述根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,包括:
确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略;
若所述目标用户终端的用户属性符合,所述加密数据对象的访问控制策略,则输出所述目标用户终端的权限分发密钥密文;
其中,所述确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略,包括:
通过行向量映射函数将所述目标用户终端的用户属性映射到共享生成矩阵的对应行,得到所述目标用户终端的属性矩阵;
若所述目标用户终端的属性矩阵存在其可逆子矩阵,则确定所述目标用户终端的用户属性,符合所述加密数据对象的访问控制策略;
若所述目标用户终端的属性矩阵不存在其可逆子矩阵,则确定所述目标用户终端的用户属性,不符合所述加密数据对象的访问控制策略。
第二方面,本发明提供一种数据共享方法,所述数据共享方法应用于用户终端,所述数据共享方法,包括:
接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
第三方面,本发明提供一种数据共享方法,所述数据共享方法应用于联盟链用户终端,所述数据共享方法,包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
在一实施例中,所述基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,包括:
将所述第二签名密钥对中的RPK、所述第三签名密钥对中的WPK和所述加密后的权限密钥列表进行组装,得到对象头信息;
将所述对象头信息与所述加密后的对象内容进行组装,并以所述第一签名密钥对中的LPK为对象名称,生成所述加密数据对象。
第四方面,本发明提供一种数据共享装置,所述数据共享装置应用于云服务器,所述数据共享装置,包括:
输出模块,用于根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
第一数据共享模块,用于将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
第四方面,本发明提供一种数据共享装置,所述数据共享装置应用于用户终端,所述数据共享装置,包括:
第一解密模块,用于接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
第二解密模块,用于基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
第二数据共享模块,用于根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
第六方面,本发明提供一种数据共享装置,所述数据共享装置应用于联盟链用户终端,所述数据共享装置,包括:
第一生成模块,用于生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
获取模块,用于根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
第三加密模块,用于生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
填充模块,用于将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
第四加密模块,用于基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
第二生成模块,用于基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
第七方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面、第二方面和第三方面所述数据共享方法。
第八方面,本发明还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质包括计算机程序,所述计算机程序被所述处理器执行时实现第一方面、第二方面和第三方面所所述数据共享方法。
第九方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被所述处理器执行时实现第一方面、第二方面和第三方面所所述数据共享方法。
本发明提供的数据共享方法、装置、电子设备和存储介质,根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出目标用户终端的权限分发密钥密文,目标用户终端为向云服务器发送读取数据请求的用户终端,加密数据对象的访问控制策略记录在区块链中;将目标用户终端的权限分发密钥密文和加密数据对象发送至目标用户终端,以供目标用户终端基于权限分发密钥密文和加密数据对象得到对象内容和操作权限,通过对象内容和操作权限进行数据共享。
因此,在数据共享的过程中,云服务器通过共同的加密数据对象和共同的访问控制策略,将权限分发密钥密文下发至不同的用户终端,所以,不同的用户终端直接通过权限分发密钥密文执行读写操作权限,使得不同的用户终端不需要发送用户ID即可共享相同操作权限。由于不同的用户终端都不需要发送用户ID,因此,云服务器无法通过用户ID来区分不同的用户终端,即无法判断当前执行操作的用户终端的用户身份,也即无法判断哪些操作是由哪个用户终端执行的,提升了用户终端执行各项操作权限时的匿名性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据共享方法的流程示意图之一;
图2是本发明提供的数据共享方法的流程示意图之二;
图3是本发明提供的数据共享方法的流程示意图之三;
图4是本发明提供的数据对象的结构示意图;
图5是本发明提供的数据共享装置的结构示意图之一;
图6是本发明提供的数据共享装置的结构示意图之二;
图7是本发明提供的数据共享装置的结构示意图之三;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了数据共享方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
参照图1,图1是本发明提供的数据共享方法的流程示意图之一。本发明实施例提供的数据共享方法包括:
步骤101,根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
步骤102,将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
需要说明的是,本实施例中的执行主体为云服务器。进一步地,用户终端在需要读取数据时,会向云端服务器发送读取数据请求。
因此,云端服务器接收到目标用户终端发送的读取数据请求后,确定该目标用户终端的用户属性。由于加密数据对象的访问控制策略记录在区块链中,因此,云端服务器接收到目标用户终端发送的读取数据请求的同时,在区块链中读取出加密数据对象的访问控制策略。
需要说明的是,加密数据对象的访问控制策略中定义了哪些用户属性可以读取云服务器中的数据,哪些用户终端对应有什么操作权限,哪些用户终端可以读取到云服务器中的哪些数据等。
进一步地,云端服务器根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出目标用户终端的权限分发密钥密文,其中,权限分发密钥密文可以理解为:对权限分发密钥使用属性基加密算法加密的结果,在一实施例中,权限分发密钥表示形式为UPKi,则权限分发密钥密文表示形式为Enc(UPKi),Enc表示加密。
进一步地,云端服务器将目标用户终端的权限分发密钥密文和加密数据对象发送至该目标用户终端。目标用户终端接收到云服务器发送的权限分发密钥密文和加密数据对象后,执行数据共享,具体为:
目标用户终端接收云服务器发送的权限分发密钥密文和加密数据对象后,通过目标用户终端的解密密钥对权限分发密钥密文进行解密,得到目标用户终端的权限分发密钥。
进一步地,目标用户终端通过权限分发密钥对加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥,对称密钥是用于解密对象内容的密钥,操作权限密钥是用于解密操作权限的密钥。
因此,目标用户终端根据解密出的对称密钥和操作权限密钥,分别获取到对象内容和操作权限。最后,目标用户终端通过对象内容和操作权限进行数据共享。
本发明提供的数据共享方法,根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出目标用户终端的权限分发密钥密文,目标用户终端为向云服务器发送读取数据请求的用户终端,加密数据对象的访问控制策略记录在区块链中;将目标用户终端的权限分发密钥密文和加密数据对象发送至目标用户终端,以供目标用户终端基于权限分发密钥密文和加密数据对象得到对象内容和操作权限,通过对象内容和操作权限进行数据共享。
因此,在数据共享的过程中,云服务器通过共同的加密数据对象和共同的访问控制策略,将权限分发密钥密文下发至不同的用户终端,所以,不同的用户终端直接通过权限分发密钥密文执行读写操作权限,使得不同的用户终端不需要发送用户ID即可共享相同操作权限。由于不同的用户终端都不需要发送用户ID,因此,云服务器无法通过用户ID来区分不同的用户终端,即无法判断当前执行操作的用户终端的用户身份,也即无法判断哪些操作是由哪个用户终端执行的,提升了用户终端执行各项操作权限时的匿名性。
进一步地,基于步骤101记载的根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,包括:
确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略;
若所述目标用户终端的用户属性符合,所述加密数据对象的访问控制策略,则输出所述目标用户终端的权限分发密钥密文。
具体地,云端服务器对目标用户终端的用户属性进行分析,确定目标用户终端的用户属性是否符合,加密数据对象的访问控制策略。
若确定目标用户终端的用户属性符合加密数据对象的访问控制策略,云端服务器则输出目标用户终端的权限分发密钥密文。
确定目标用户终端的用户属性是否符合加密数据对象的访问控制策略的具体方法包括:
通过行向量映射函数将所述目标用户终端的用户属性映射到共享生成矩阵的对应行,得到所述目标用户终端的属性矩阵;
若所述目标用户终端的属性矩阵存在其可逆子矩阵,则确定所述目标用户终端的用户属性,符合所述加密数据对象的访问控制策略;
若所述目标用户终端的属性矩阵不存在其可逆子矩阵,则确定所述目标用户终端的用户属性,不符合加密数据对象的访问控制策略。
需要说明的是,联盟链用户终端实际上是将数据的访问控制策略和数据的哈希值打包成交易记录在区块链上的。
因此,用户终端在请求数据之前先从联盟链处获得对应的交易,用户终端在本地预验证自身是否满足请求数据的访问控制策略。如果满足,用户终端再实际向云服务器发送数据读取请求,目的是为了监督云服务器进行访问控制的行为,即监督云服务器是否正确执行了联盟链用户终端定义的访问控制策略,具体为:
具体地,目标用户终端通过行向量映射函数将其用户属性映射到共享生成矩阵的对应行,得到目标用户终端的属性矩阵。
进一步地,若确定目标用户终端的属性矩阵存在其可逆子矩阵,目标用户终端则确定目标用户终端的用户属性符合加密数据对象的访问控制策略,将目标用户终端的每用户属性集合发送至云服务器。
云服务器接收到目标用户终端发送的用户属性集合后,通过加密数据对象的访问控制策略对用户属性集合进行再次确定,从而得到用户属性集合中符合加密数据对象的访问控制策略的用户属性。
如果不存在的可逆子矩阵,目标用户终端则输出,表示目标用户终端的
用户属性不满足第组访问控制策略,否则输出。进一步地,对的下一个元素重
复上述验证,直至遍历完。若至少有一个元素为1,目标用户终端则发送
给云服务器。
进一步地,若确定目标用户终端的属性矩阵不存在其可逆子矩阵,目标用户终端则确定目标用户终端的用户属性不符合加密数据对象的访问控制策略。
本发明实施例通过属性矩阵准确地确定出目标用户终端的用户属性是否符合,加密数据对象的访问控制策略。
进一步地,参照图2,图2是本发明提供的数据共享方法的流程示意图之二,本发明实施例提供的数据共享方法包括:
步骤103,接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
步骤104,基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
步骤105,根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
需要说明的是,本实施例中的执行主体为用户终端,通过云服务器进行通信,实现数据共享,具体为:
目标用户终端接收云服务器发送的权限分发密钥密文和加密数据对象后,通过目标用户终端的解密密钥对权限分发密钥密文进行解密,得到目标用户终端的权限分发密钥。
进一步地,目标用户终端通过权限分发密钥对加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥,对称密钥是用于解密对象内容的密钥,操作权限密钥是用于解密操作权限的密钥。
因此,目标用户终端根据解密出的对称密钥和操作权限密钥,分别获取到对象内容和操作权限。最后,目标用户终端通过对象内容和操作权限进行数据共享。
在一实施例中,目标用户终端接收云服务器发送的权限分发密钥密文Enc(UPKi)后,通过目标用户终端的解密密钥对权限分发密钥密文Enc(UPKi)进行解密,得到权限分发密钥UPKi。
需要说明的是,联盟链用户终端实际上是将数据的访问控制策略和数据的哈希值打包成交易记录在区块链上的。
因此,目标用户终端在解密出对象内容m(数据明文)后,计算出数据明文m的数据散列H(m),并确定联盟链上的数据散列H(m),其中,数据散列H(m)即数据明文m的哈希值,联盟链上的数据散列H(m)即联盟链上的哈希值。
进一步地,目标用户终端将数据明文m的哈希值与联盟链上的数据散列H(m)进行比较,确定数据明文m的哈希值是否等于联盟链上的哈希值。若确定数据明文m的哈希值等于联盟链上的哈希值,目标用户终端则确定数据明文m正确。若确定数据明文m的哈希值等于联盟链上的哈希值,目标用户终端则确定数据明文m不是上传的原始数据,并向云服务器上报错误,从而验证了云服务器上的数据完整性,即监督云服务器是否正确存储了数据。
本发明实施例在数据共享的过程中,不同的用户终端直接通过云服务器下发的权限分发密钥密文获取无关用户身份的读写操作权限,使得不同的用户终端不需要发送用户ID即可共享相同操作权限。由于不同的用户终端都不需要发送用户ID,因此,云服务器无法通过用户ID来区分不同的用户终端,即无法判断当前执行操作的用户终端的用户身份,也即无法判断哪些操作是由哪个用户终端执行的,提升了用户终端执行各项操作权限时的匿名性。
进一步地,参照图3,图3是本发明提供的数据共享方法的流程示意图之三,本发明实施例提供的数据共享方法包括:
需要说明的是,本实施例中的执行主体为联盟链用户终端,通过云服务器进行通信,将加密数据对象发送至云服务器,为云服务器实现数据共享提供加密数据,具体为:
步骤106,生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
步骤107,根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
步骤108,生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
步骤109,将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
步骤110,基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
步骤111,基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
具体地,联盟链用户终端生成对象内容m(Object Conect)的第一权限密钥和权限密钥列表KL(Key List),其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK,具体参照表1,表1是数据对象的密钥表。
表1 数据对象的密钥表
其中,LPK,RPK和WPK这三个验证密钥对所有用户终端可见。
进一步地,联盟链用户终端确定各个用户属性,并根据各个用户属性获取各个用
户属性的第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、
第二签名密钥对中的RSK或/和第三签名密钥对中的WSK。进一步地,联盟链用户终端生成各
个用户属性对应的各个权限分发密钥,其中,。
进一步地,联盟链用户终端通过各个用户属性的权限分发密钥对其获取到
的对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对
中的WSK进行加密,得到各个权限密钥密文,其中,权限密钥密文可以表示Enc(X)UPKi,权限
密钥密文Enc(X)UPKi中的X密钥即各个用户属性的第二权限密钥,根据各个用户属性决定。
在一实施例中,联盟链用户终端确定用户属性1为“计算机学院”&“老师”,则确定用户属性1可获取到读取权限、Get权限和Put权限,因此,获取到用户属性1的第二权限密钥为WSK、RSK和OSK。联盟链用户终端确定用户属性2为“计算机学院”&“学生”,则确定用户属性2可获取到读取权限和Get权限,因此,获取到用户属性2的第二权限密钥为OSK和RSK。联盟链用户终端确定用户属性3为“计算机学院”&“管理员”,则确定用户属性3可获取到读取权限、Get权限、Put权限和更新列表权限,因此,获取到用户属性3的第二权限密钥为WSK、RSK、LSK和OSK。
进一步地,联盟链用户终端生成用户属性1的权限分发密钥UPK1,生成用户属性2的权限分发密钥UPK2,生成用户属性3的权限分发密钥UPK3。联盟链用户终端通过权限分发密钥UPK1对用户属性1的第二权限密钥为WSK、RSK和OSK进行加密,得到用户属性1的权限密钥密文为Enc(WSK,RSK,OSK)UPK1。联盟链用户终端通过权限分发密钥UPK2对用户属性2的第二权限密钥为RSK和OSK进行加密,得到用户属性2的权限密钥密文为Enc(RSK,OSK,DMK)UPK2,其中,DMK为用来占位的伪密钥。联盟链用户终端通过权限分发密钥UPK3对用户属性3的第二权限密钥为WSK、RSK、LSK和OSK进行加密,得到用户属性3的权限密钥密文为Enc(WSK,RSK,OSK,LSK)UPK3。
进一步地,联盟链用户终端将加密后的对象内容、加密后的权限密钥列表、
第一签名密钥对中的LPK、第二签名密钥对中的RPK和第三签名密钥对中的WPK进行组装,生
成加密数据对象CT。同时,联盟链用户终端将加密数据发送至云服务器。
本发明实施例通过加密后的权限密钥列表进行访问控制,从而实现了细粒度的访问控制和用户终端操作匿名。
步骤111记载的基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,包括:
将所述第二签名密钥对中的RPK、所述第三签名密钥对中的WPK和所述加密后的权限密钥列表进行组装,得到对象头信息;
将所述对象头信息与所述加密后的对象内容进行组装,并以所述第一签名密钥对中的LPK为对象名称,生成所述加密数据对象。
在一实施例中,一个数据对象CT包括对象名称Object Name、对象头信息Object
Header、加密后的权限密钥列表和加密后的对象内容,具体为:对象名称Object Name
为第一签名密钥对中的LPK;对象头信息Object Header为第二签名密钥对中的RPK、第三签
名密钥对中的WPK、加密后的权限密钥列表以及加密后的对象内容Enc(Object
Conect)OSK,其中,加密后的权限密钥列表中包含有多个权限密钥密文Enc(X)UPKi,多个
权限密钥密文Enc(X)UPKi分别为Enc(WSK,RSK,OSK)UPK1、Enc(RSK,OSK,DMK)UPK2、Enc(WSK,
RSK,OSK,LSK)UPK3至Enc(X)UPKnk。因此,加密数据对象CT可以参照图4所示,图4是本发明提供
的数据对象的结构示意图。
本发明实施例的数据对象中包含一个加密的权限密钥列表,辅助权限密钥的分发至不同的用户终端,所以,不同的用户终端直接通过共享的权限密钥执行读写操作权限,使得不同的用户终端不需要发送用户ID即可共享相同操作权限。进一步地,由于不同的用户终端都不需要发送用户ID,因此,云服务器无法通过用户ID来区分不同的用户终端,即无法判断当前执行操作的用户终端的用户身份,也即无法判断哪些操作是由哪个用户终端执行的,提升了用户终端执行各项操作权限时的匿名性。
需要说明的是,本发明中的用户终端、联盟链用户终端和云服务器共属于一个联盟链。进一步地,联盟链主要包括联盟链用户终端(CBM)、云服务器(CSP)、属性授权机构(AA)、全球证书授权机构(CA)、联盟区块链(CB)和用户终端(DU)。
对于联盟链用户终端CBM:联盟链用户终端CBM是数据所有者组成,可以定义访问控制策略即决定哪些用户终端可以访问,哪些用户终端不可以访问,并将加密数据发送给云服务器CSP。同时,联盟链用户终端CBM 需要验证云服务器CSP 是否正确接收到密文。如果接收到云服务器CSP的值等于密文的哈希值,联盟链用户终端CBM则将访问控制策略、数据的哈希值和云服务器CSP的签名打包为一个交易。
进一步地,联盟链用户终端CBM根据其声誉分为领导成员和普通成员,名誉在特殊情况下有特殊的定义。普通成员可以通过提高声誉成为领导成员。所有联盟链用户终端CBM共同维护区块链,只有领导成员才能生成新区块。
对于云服务器CSP:云服务器CSP接收并存储联盟链用户终端CBM发送的密文,然后将密文的签名返回给联盟链用户终端CBM。云服务器CSP 还为用户终端DU 提供数据访问服务,并存储用户终端DU的属性密钥,用于对密文进行预解密。
对于属性授权机构AA:由全局唯一身份aid签名,识别用户终端DU并在其管理域内生成用户终端DU的属性密钥。将所有属性密钥和用户身份uid发送给云服务器CSP。每个属性授权机构 AA可管理多个属性,但一个属性只能被一个属性授权机构AA管理。
对于全球证书授权机构CA:全球证书授权机构CA是系统中完全受信任的全球证书颁发机构。接受系统内所有属性授权机构AA和用户终端DU的注册,并负责为每个合法属性授权机构AA和用户终端DU发放全球唯一的身份ID和UID。同时,为每个授权用户终端DU生成解密密钥,但不参与任何属性管理和任何属性密钥的生成。
对于联盟区块链CB:联盟区块链CB监督云服务器CSP,其成员是合法的用户。每个块体包含共享数据的哈希值、相应的访问策略和云服务器CSP对密文的签名。为了防止恶意攻击者,本发明实施例使用实用拜占庭容错(PBFT)共识算法。
对于用户终端DU:用户终端DU是由全球唯一身份uid签名的数据请求者。在访问数据之前,可以通过区块链验证其用户属性是否满足相应的访问控制策略。解密密文后,可以验证数据没有被篡改。只有当用户终端DU的用户属性满足访问控制策略时,用户终端DU才能解密密文。
进一步需要说明的是,联盟链用户终端CBM采用拜占庭容错(PBFT)协议来维护区块链。联盟链用户终端CBM根据声誉分为领导成员和普通成员,领导成员依次负责生成新区块。具体步骤如下:
预准备阶段Pre-Prepare:当一个联盟链用户终端CBM上传数据到云端,将产生的交易广播到全网。此外,领导成员对交易进行收集和排序存储至一个列表中,并将该列表广播到网络。
准备阶段Prepare:联盟链用户终端CBM收到交易清单后,按照顺序对交易进行验证。在验证所有交易后,联盟链用户终端CBM 根据交易结果计算新区块的哈希值,将该哈希值广播到网络。在这个过程中,每个联盟链用户终端CBM都需要验证交易中是否有云服务器CSP的签名,以及区块链上的访问控制策略是否与云端上的相同。只有满足以上两个条件的交易才被签署为有效交易。
Commit:如果一个联盟链用户终端CBM从其他联盟链用户终端CBM接收到2f+1(拜占庭节点的可容忍数量)个值,并且2f+1个值等于自身的值,联盟链用户终端CBM 将向网络广播Commit消息。
Reply:联盟链用户终端CBM一旦收到2f+1条Commit消息(包括自身的Commit消息),会将所有交易打包成一个新的区块,并记录在本地区块链上,领导成员生成一个新块。
进一步地,关于联盟链的具体机制如下:
定义2(访问结构):令是一个参与者集合。对于,集合为
单调的:如果且,则,访问结构(分别为单调访问结构)是非空集合
的非空子集(分别为单调集合)的集合,即。中的集合称为授权集合,不
在中的集合称为未授权集合。
全球证书授权机构CA选择一个随机数作为其主密钥MSK,计算,。同时,全球证书授权机构CA为每个合法属性授权机构AA分配一个唯一的全球权威
身份aid,k表示系统中属性授权机构AA的数量。最后,全球证书授权机构CA将全局参数设置
为。
进一步地,全球证书授权机构CA运行算法:在此阶段全球
证书授权机构CA为每个合法用户终端DU分配一个唯一的全局用户身份uid,然后为每个用
户终端DU选择随机数,并让作为用户终端DU的解密密钥。全球证书授权机
构CA还为每个用户终端生成解密公钥。
进一步,联盟链用户终端CBM运行算法:联盟链用户终端
CBM为数据对象生成操作权限密钥,其中,操作权限密钥包括读写对象内容的对称密钥
OSK,用于设置权限密钥列表的签名密钥对LPK和LSK,用于Get对象内容的签名密钥对RPK和
RSK,用于Put对象内容的签名密钥对WPK和WSK。
进一步地,联盟链用户终端CBM将RPK和WPK组装成对象头Header=(RPK,WPK),并对对象头进行签名。
联盟链用户终端CBM运行算法:联盟链用户终端
CBM接收到云服务器CSP发送的后,验证是否成立。如果
不成立,联盟链用户终端CBM向云服务器CSP发送错误报告。如果成立,联盟链用户终端CBM
生成一个交易:
进一步地,用户终端DU运行算法:当用户终端DU需要访问数
据时,首先在区块链上查找数据的交易。对于每个,用户终端DU通过函数将
其自身的每个用户属性映射到的对应行,得到属性矩阵。如果不存在的可逆子
矩阵,则用户终端DU输出,表示用户终端DU的用户属性不满足第组访问控制策略,否
则输出。进一步地,对的下一个元素重复上述验证,直至遍历完。若中至少有一个元素为1,用户终端DU则将数据请求以及发送给云服务器
CSP。
云服务器CSP运行算法:对于中的每个元素,
若,云服务器CSP验证用户终端DU的用户属性集是否满足联盟链用户终端CBM设定的
第个访问控制策略,其中。若满足,云服务器CSP将输出预解密的权限密钥密文。否则,将输出⊥。
进一步地,本发明提供的数据共享装置与本发明提供的数据共享方法互对应参照。
图5所示,图5是本发明提供的数据共享装置的结构示意图之一,数据共享装置应用于云服务器,数据共享装置包括:
输出模块501,用于根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
第一数据共享模块502,用于将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
进一步地,输出模块501还用于:
确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略;
若所述目标用户终端的用户属性符合,所述加密数据对象的访问控制策略,则输出所述目标用户终端的权限分发密钥密文;
其中,所述确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略,包括:
通过行向量映射函数将所述目标用户终端的用户属性映射到共享生成矩阵的对应行,得到所述目标用户终端的属性矩阵;
若所述目标用户终端的属性矩阵存在其可逆子矩阵,则确定所述目标用户终端的用户属性,符合所述加密数据对象的访问控制策略;
若所述目标用户终端的属性矩阵不存在其可逆子矩阵,则确定所述目标用户终端的用户属性,不符合所述加密数据对象的访问控制策略。
图6所示,图6是本发明提供的数据共享装置的结构示意图之二,数据共享装置应用于用户终端,数据共享装置包括:
第一解密模块601,用于接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
第二解密模块602,用于基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
第二数据共享模块603,用于根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
图7所示,图7是本发明提供的数据共享装置的结构示意图之三,数据共享装置应用于联盟链用户终端,数据共享装置包括:
第一生成模块701,用于生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
获取模块702,根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
第三加密模块703,用于生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
填充模块704,用于将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
第四加密模块705,用于基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
第二生成模块706,用于基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
进一步地,第二生成模块706还用于:
将所述第二签名密钥对中的RPK、所述第三签名密钥对中的WPK和所述加密后的权限密钥列表进行组装,得到对象头信息;
将所述对象头信息与所述加密后的对象内容进行组装,并以所述第一签名密钥对中的LPK为对象名称,生成所述加密数据对象。
本发明提供的数据共享装置的具体实施例与上述数据共享方法各实施例基本相同,在此不作赘述。
图8示例了一种电子设备的实体结构示意图,如图8所示,电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行数据共享方法,该方法应用于云服务器包括:
根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
该方法应用于用户终端包括:
接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
该方法应用于联盟链用户终端包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据共享方法,该方法应用于云服务器包括:
根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
该方法应用于用户终端包括:
接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
该方法应用于联盟链用户终端包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据共享方法,该方法应用于云服务器包括:
根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
该方法应用于用户终端包括:
接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
该方法应用于联盟链用户终端包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据共享方法,其特征在于,所述数据共享方法应用于云服务器,所述数据共享方法,包括:
根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
2.根据权利要求1所述的数据共享方法,其特征在于,所述根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,包括:
确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略;
若所述目标用户终端的用户属性符合,所述加密数据对象的访问控制策略,则输出所述目标用户终端的权限分发密钥密文;
其中,所述确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略,包括:
通过行向量映射函数将所述目标用户终端的用户属性映射到共享生成矩阵的对应行,得到所述目标用户终端的属性矩阵;
若所述目标用户终端的属性矩阵存在其可逆子矩阵,则确定所述目标用户终端的用户属性,符合所述加密数据对象的访问控制策略;
若所述目标用户终端的属性矩阵不存在其可逆子矩阵,则确定所述目标用户终端的用户属性,不符合所述加密数据对象的访问控制策略。
3.一种数据共享方法,其特征在于,所述数据共享方法应用于用户终端,所述数据共享方法,包括:
接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
4.一种数据共享方法,其特征在于,所述数据共享方法应用于联盟链用户终端,所述数据共享方法,包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
5.根据权利要求4所述的数据共享方法,其特征在于,所述基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,包括:
将所述第二签名密钥对中的RPK、所述第三签名密钥对中的WPK和所述加密后的权限密钥列表进行组装,得到对象头信息;
将所述对象头信息与所述加密后的对象内容进行组装,并以所述第一签名密钥对中的LPK为对象名称,生成所述加密数据对象。
6.一种数据共享装置,其特征在于,所述数据共享装置应用于云服务器,所述数据共享装置,包括:
输出模块,用于根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
第一数据共享模块,用于将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享。
7.一种数据共享装置,其特征在于,所述数据共享装置应用于用户终端,所述数据共享装置,包括:
第一解密模块,用于接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
第二解密模块,用于基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
第二数据共享模块,用于根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享。
8.一种数据共享装置,其特征在于,所述数据共享装置应用于联盟链用户终端,所述数据共享装置,包括:
第一生成模块,用于生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
获取模块,用于根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
第三加密模块,用于生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
填充模块,用于将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
第四加密模块,用于基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
第二生成模块,用于基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,并将所述加密数据发送至云服务器。
9.一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的数据共享方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的数据共享方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211513665.3A CN115604030B (zh) | 2022-11-30 | 2022-11-30 | 数据共享方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211513665.3A CN115604030B (zh) | 2022-11-30 | 2022-11-30 | 数据共享方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115604030A true CN115604030A (zh) | 2023-01-13 |
CN115604030B CN115604030B (zh) | 2023-05-02 |
Family
ID=84852864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211513665.3A Active CN115604030B (zh) | 2022-11-30 | 2022-11-30 | 数据共享方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115604030B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021154157A1 (en) * | 2020-01-31 | 2021-08-05 | Agency For Science, Technology And Research | Blockchain-based data exchange |
CN113901512A (zh) * | 2021-09-27 | 2022-01-07 | 北京邮电大学 | 数据共享方法及系统 |
CN114219483A (zh) * | 2021-12-14 | 2022-03-22 | 云南财经大学 | 基于lwe-cpabe的区块链数据共享方法、设备和存储介质 |
WO2022105505A1 (zh) * | 2020-11-20 | 2022-05-27 | 腾讯科技(深圳)有限公司 | 应用于区块链系统的数据处理方法及装置 |
CN115296838A (zh) * | 2022-06-24 | 2022-11-04 | 北京中科金财科技股份有限公司 | 基于区块链的数据共享方法、系统及存储介质 |
CN115412257A (zh) * | 2022-08-24 | 2022-11-29 | 淮阴工学院 | 一种基于区块链双链的冷链联合节点数据共享方法及装置 |
-
2022
- 2022-11-30 CN CN202211513665.3A patent/CN115604030B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021154157A1 (en) * | 2020-01-31 | 2021-08-05 | Agency For Science, Technology And Research | Blockchain-based data exchange |
WO2022105505A1 (zh) * | 2020-11-20 | 2022-05-27 | 腾讯科技(深圳)有限公司 | 应用于区块链系统的数据处理方法及装置 |
CN113901512A (zh) * | 2021-09-27 | 2022-01-07 | 北京邮电大学 | 数据共享方法及系统 |
CN114219483A (zh) * | 2021-12-14 | 2022-03-22 | 云南财经大学 | 基于lwe-cpabe的区块链数据共享方法、设备和存储介质 |
CN115296838A (zh) * | 2022-06-24 | 2022-11-04 | 北京中科金财科技股份有限公司 | 基于区块链的数据共享方法、系统及存储介质 |
CN115412257A (zh) * | 2022-08-24 | 2022-11-29 | 淮阴工学院 | 一种基于区块链双链的冷链联合节点数据共享方法及装置 |
Non-Patent Citations (1)
Title |
---|
雷蕾等: "支持策略隐藏的加密云存储访问控制机制", 《软件学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115604030B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112019591B (zh) | 一种基于区块链的云数据共享方法 | |
US10673626B2 (en) | Threshold secret share authentication proof and secure blockchain voting with hardware security modules | |
CN110493347B (zh) | 基于区块链的大规模云存储中数据访问控制方法及系统 | |
Ma et al. | Attribute-based secure announcement sharing among vehicles using blockchain | |
CN104901942B (zh) | 一种基于属性加密的分布式访问控制方法 | |
CN108881314B (zh) | 雾计算环境下基于cp-abe密文隐私保护方法及系统 | |
Yu et al. | Improved security of a dynamic remote data possession checking protocol for cloud storage | |
CN109145612B (zh) | 基于区块链实现防数据篡改、用户共谋的云数据共享方法 | |
Han et al. | A data sharing protocol to minimize security and privacy risks of cloud storage in big data era | |
WO2022199290A1 (zh) | 多方安全计算 | |
CN110430161B (zh) | 一种基于区块链的可监管数据匿名分享方法及系统 | |
JP2023500570A (ja) | コールドウォレットを用いたデジタルシグニチャ生成 | |
CN111294349B (zh) | 用于物联网设备数据共享的方法及装置 | |
Luo et al. | Efficient integrity auditing for shared data in the cloud with secure user revocation | |
Yan et al. | Integrity audit of shared cloud data with identity tracking | |
CN115174184A (zh) | 一种基于属性基加密的交易客体身份匿名可追踪方法、网络设备、存储设备 | |
WO2023134576A1 (zh) | 数据加密方法、属性授权中心及存储介质 | |
CN115208656B (zh) | 一种基于区块链和权限管理的供应链数据共享方法及系统 | |
Cui et al. | Towards Multi-User, Secure, and Verifiable $ k $ NN Query in Cloud Database | |
Li et al. | Blockchain‐Based Fine‐Grained Data Sharing for Multiple Groups in Internet of Things | |
CN115913677A (zh) | 一种基于区块链的协作边缘存储数据隐私保护系统及方法 | |
Malarvizhi et al. | Secure file sharing using cryptographic techniques in cloud | |
CN114629640A (zh) | 一种解决密钥托管问题的白盒可追责属性基加密系统及其方法 | |
CN115604030A (zh) | 数据共享方法、装置、电子设备和存储介质 | |
Neela et al. | A Hybrid Cryptography Technique with Blockchain for Data Integrity and Confidentiality in Cloud 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 |