CN115604030B - 数据共享方法、装置、电子设备和存储介质 - Google Patents

数据共享方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115604030B
CN115604030B CN202211513665.3A CN202211513665A CN115604030B CN 115604030 B CN115604030 B CN 115604030B CN 202211513665 A CN202211513665 A CN 202211513665A CN 115604030 B CN115604030 B CN 115604030B
Authority
CN
China
Prior art keywords
key
authority
user terminal
encrypted
encrypted data
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
Application number
CN202211513665.3A
Other languages
English (en)
Other versions
CN115604030A (zh
Inventor
刘杨
李珺
彭木根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202211513665.3A priority Critical patent/CN115604030B/zh
Publication of CN115604030A publication Critical patent/CN115604030A/zh
Application granted granted Critical
Publication of CN115604030B publication Critical patent/CN115604030B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0478Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0822Key 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
进一步地,联盟链用户终端将各个权限密钥密文Enc(X)UPKi填充至权限密钥列表KL中,得到加密后的权限密钥列表
进一步地,联盟链用户终端通过对称密钥OSK将对象内容m(Object Conect)进行加密,得到加密后的对象内容,因此,加密后的对象内容可以表示为Enc(ObjectConect)OSK
进一步地,联盟链用户终端将加密后的对象内容、加密后的权限密钥列表、第一签名密钥对中的LPK、第二签名密钥对中的RPK和第三签名密钥对中的WPK进行组装,生成加密数据对象。同时,联盟链用户终端将加密数据发送至云服务器。
本发明实施例通过加密后的权限密钥列表进行访问控制,从而实现了细粒度的访问控制和用户终端操作匿名。
步骤111记载的基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成加密数据对象,包括:
将所述第二签名密钥对中的RPK、所述第三签名密钥对中的WPK和所述加密后的权限密钥列表进行组装,得到对象头信息;
将所述对象头信息与所述加密后的对象内容进行组装,并以所述第一签名密钥对中的LPK为对象名称,生成所述加密数据对象。
具体地,联盟链用户终端将第二签名密钥对中的RPK、第三签名密钥对中的WPK和加密后的权限密钥列表进行组装,得到对象头信息Object Header。
进一步地,联盟链用户终端将对象头信息Object Header与加密后的对象内容进行组装,并以第一签名密钥对中的LPK为对象名称Object Name,生成加密数据对象
在一实施例中,一个数据对象包括对象名称Object Name、对象头信息ObjectHeader、加密后的权限密钥列表和加密后的对象内容,具体为:对象名称ObjectName为第一签名密钥对中的LPK;对象头信息Object Header为第二签名密钥对中的RPK、第三签名密钥对中的WPK、加密后的权限密钥列表以及加密后的对象内容Enc(ObjectConect)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。因此,加密数据对象可以参照图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消息),会将所有交易打包成一个新的区块,并记录在本地区块链上,领导成员生成一个新块。
进一步地,关于联盟链的具体机制如下:
定义1 (双线性映射):设为素数阶的三个循环群。一个双线性映射是一个映射,具有以下性质:
双线性:对于所有,
非简并性:存在,使
可计算性:对于任意都很容易计算。
定义2(访问结构):令是一个参与者集合。对于,集合为单调的: 如果,则,访问结构(分别为单调访问结构)是非空集合的非空子集(分别为单调集合)的集合,即中的集合称为授权集合,不在中的集合称为未授权集合。
定义3(线性秘密共享方案(Linear secret sharing scheme,LSSS)):一个参与方集合上的秘密共享方案是线性秘密共享方案,若满足以下条件:
条件1:各方的共享份额组成一个域上的向量。
条件2:的共享生成矩阵列。
对于所有,矩阵的第行被参与方定义为为一个函数,从映射到。对于向量为共享秘密,其余为随机选择。
如果是根据的任何秘密的有效共享,存在常数满足下列方程:
进一步地,全球证书授权机构CA运行算法,具体为:以安全参数为输入,为素数阶p相同的两个循环群,即为双线性映射,g为的生成器,令是一个哈希函数。
全球证书授权机构CA选择一个随机数作为其主密钥,计算。同时,全球证书授权机构CA为每个合法属性授权机构AA分配一个唯一的全球权威身份,k表示系统中属性授权机构AA的数量。最后,全球证书授权机构CA将全局参数设置为
进一步地,全球证书授权机构CA运行算法:在此阶段全球证书授权机构CA为每个合法用户终端DU分配一个唯一的全局用户身份,然后为每个用户终端DU选择随机数,并让作为用户终端DU的解密密钥。全球证书授权机构CA还为每个用户终端生成解密公钥
进一步地,属性授权机构AA运行算法:在得到唯一全局权威身份援助后,属性授权机构AA选择表示系统中第个属性授权机构AA),然后计算作为属性授权机构AA的公钥。
进一步地,联盟链用户终端CBM运行算法:联盟链用户终端CBM选择两个随机大素数,计算,然后联盟链用户终端CBM选择一个随机数,其中的协素数。最后,联盟链用户终端CBM计算,生成密钥,公钥
进一步地,云服务器CSP运行算法,与联盟链用户终端CBM设置相同。云服务器CSP最后生成密钥,公钥
进一步,全球证书授权机构CA运行算法:当所有属性授权机构AA完成初始化时,全球证书授权机构CA计算作为系统公钥。
进一步,属性授权机构AA运行算法:在属性授权机构AA的管理域内,为用户终端DU的用户属性选择随机数,然后生成用户终端DU的属性密钥,属性密钥具体如下:
同时,属性授权机构AA将属性密钥发送到云服务器CSP。
进一步,联盟链用户终端CBM运行算法:联盟链用户终端CBM为数据对象生成操作权限密钥,其中,操作权限密钥包括读写对象内容的对称密钥,用于设置权限密钥列表的签名密钥对,用于Get对象内容的签名密钥对,用于Put对象内容的签名密钥对
进一步地,联盟链用户终端CBM生成权限密钥列表,其中,为第j类权限密钥集合,其中,是密钥列表长度。
,那么,即权限密钥列表各元素不重复。
对于,生成个权限分发密钥,然后联盟链用户终端CBM通过权限分发密钥加密,具体为:联盟链用户终端CBM为选择一个加密指数,计算,并生成向量,其中,用于共享加密指数。
对于为共享生成矩阵的行数,计算,其中的第行对应的向量,记对应的参与方属性,联盟链用户终端CBM输出密文如下:
得到加密后的密钥权限列表
进一步地,联盟链用户终端CBM将组装成对象头,并对对象头进行签名。
进一步地,联盟链用户终端CBM使用对称密钥对数据对象内容加密。联盟链用户终端CBM将和加密后的对象内容组合成加密后的对象密文,并以作为对象名发送给CSP。
进一步地,云服务器CSP运行算法:云服务器CSP收到联盟链用户终端CBM发送的加密后的对象密文后, 云服务器CSP计算,并生成,并将返回给联盟链用户终端CBM。
联盟链用户终端CBM运行算法:联盟链用户终端CBM接收到云服务器CSP发送的后,验证是否成立。如果不成立,联盟链用户终端CBM向云服务器CSP发送错误报告。如果成立,联盟链用户终端CBM生成一个交易:
其中,为将行向量映射到参与方的函数。
进一步地,联盟链用户终端CBM通过其密钥对该交易的散列进行签名,即。最后,联盟链用户终端CBM将交易和签名打包,并将它们广播给其他联盟链用户终端CBM。
进一步地,用户终端DU运行算法:当用户终端DU需要访问数据时,首先在区块链上查找数据的交易。对于每个,用户终端DU通过函数将其自身的每个用户属性映射到的对应行,得到属性矩阵。如果不存在的可逆子矩阵,则用户终端DU输出,表示用户终端DU的用户属性不满足第组访问控制策略,否则输出。进一步地,对的下一个元素重复上述验证,直至遍历完。若中至少有一个元素为1,用户终端DU则将数据请求以及发送给云服务器CSP。
云服务器CSP运行算法:对于中的每个元素,若,云服务器CSP验证用户终端DU的用户属性集是否满足联盟链用户终端CBM设定的第个访问控制策略,其中。若满足,云服务器CSP将输出预解密的权限密钥密文。否则,将输出⊥。
计算预解密权限密钥密文具体如下:
进一步地,云服务器CSP将预解密权限密钥密文填充到对应的位置上,生成预解密密钥列表,将的其它部分重新组装成预解密密文,并发送给用户终端DU。
进一步地,用户终端DU运行算法:对于中的每个元素,若,用户终端DU通过自身的解密密钥对预解密密钥列表中的进行解密,得到权限密钥集合,权限密钥集合可以表示为:
用户终端DU从上述处理过的中获得所有能获取的操作权限密钥。假设中至少包含对称密钥,用户终端DU使用解密出数据对象内容
进一步地,用户终端DU运行算法:当用户终端DU得到对象明文时,需要计算对象明的哈希值,并验证该哈希值值是否等于在区块链上的H(m)。
若哈希值值不等于在区块链上的,用户终端DU输出,表示对象明文不是上传的原始数据,并向云服务器CSP上报错误。若哈希值值等于在区块链上的,用户终端DU输出,表示对象明文正确。
进一步地,本发明提供的数据共享装置与本发明提供的数据共享方法互对应参照。
图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 (8)

1.一种数据共享方法,其特征在于,所述数据共享方法应用于云服务器,所述数据共享方法,包括:
根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享;
其中,所述加密数据对象是基于联盟链用户终端生成的,所述联盟链用户终端将生成的加密数据对象发送至所述云服务器;
基于所述联盟链用户终端生成所述加密数据对象具体包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成所述加密数据对象。
2.根据权利要求1所述的数据共享方法,其特征在于,所述根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,包括:
确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略;
若所述目标用户终端的用户属性符合,所述加密数据对象的访问控制策略,则输出所述目标用户终端的权限分发密钥密文;
其中,所述确定所述目标用户终端的用户属性是否符合,所述加密数据对象的访问控制策略,包括:
通过行向量映射函数将所述目标用户终端的用户属性映射到共享生成矩阵的对应行,得到所述目标用户终端的属性矩阵;
若所述目标用户终端的属性矩阵存在其可逆子矩阵,则确定所述目标用户终端的用户属性,符合所述加密数据对象的访问控制策略;
若所述目标用户终端的属性矩阵不存在其可逆子矩阵,则确定所述目标用户终端的用户属性,不符合所述加密数据对象的访问控制策略。
3.根据权利要求1所述的数据共享方法,其特征在于,所述基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成所述加密数据对象,包括:
将所述第二签名密钥对中的RPK、所述第三签名密钥对中的WPK和所述加密后的权限密钥列表进行组装,得到对象头信息;
将所述对象头信息与所述加密后的对象内容进行组装,并以所述第一签名密钥对中的LPK为对象名称,生成所述加密数据对象。
4.一种数据共享方法,其特征在于,所述数据共享方法应用于用户终端,所述数据共享方法,包括:
接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享;
其中,所述权限分发密钥密文是所述云服务器输出的,所述加密数据对象是基于联盟链用户终端生成的,所述联盟链用户终端将生成的加密数据对象发送至所述云服务器,所述云服务器将所述权限分发密钥密文和所述加密数据对象发送至所述用户终端;
基于所述云服务器输出所述权限分发密钥密文具体包括:
根据所述用户终端的用户属性和加密数据对象的访问控制策略,输出所述用户终端的权限分发密钥密文,其中,所述用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
基于所述联盟链用户终端生成所述加密数据对象具体包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成所述加密数据对象。
5.一种数据共享装置,其特征在于,所述数据共享装置应用于云服务器,所述数据共享装置,包括:
输出模块,用于根据目标用户终端的用户属性和加密数据对象的访问控制策略,输出所述目标用户终端的权限分发密钥密文,其中,所述目标用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
第一数据共享模块,用于将所述目标用户终端的权限分发密钥密文和所述加密数据对象发送至所述目标用户终端,以供所述目标用户终端基于权限分发密钥密文和所述加密数据对象得到对象内容和操作权限,并通过所述对象内容和所述操作权限进行数据共享;
所述数据共享装置还应用于联盟链用户终端,所述数据共享装置还包括:
第一生成模块,用于生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
获取模块,用于根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
第三加密模块,用于生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
填充模块,用于将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
第四加密模块,用于基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
第二生成模块,用于基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成所述加密数据对象。
6.一种数据共享装置,其特征在于,所述数据共享装置应用于用户终端,所述数据共享装置,包括:
第一解密模块,用于接收云服务器发送的权限分发密钥密文和加密数据对象,并基于解密密钥对所述权限分发密钥密文进行解密,得到权限分发密钥;
第二解密模块,用于基于权限分发密钥对所述加密数据对象中的权限密钥列表进行解密,得到权限密钥,其中,权限密钥包括对称密钥和操作权限密钥;
第二数据共享模块,用于根据所述对称密钥和所述操作权限密钥,分别得到对象内容和操作权限,并基于所述对象内容和操作权限进行数据共享;
其中,所述权限分发密钥密文是所述云服务器输出的,所述加密数据对象是基于联盟链用户终端生成的,所述联盟链用户终端将生成的加密数据对象发送至所述云服务器,所述云服务器将所述权限分发密钥密文和所述加密数据对象发送至所述用户终端;
基于所述云服务器输出所述权限分发密钥密文具体包括:
根据所述用户终端的用户属性和加密数据对象的访问控制策略,输出所述用户终端的权限分发密钥密文,其中,所述用户终端为向所述云服务器发送读取数据请求的用户终端,所述加密数据对象的访问控制策略记录在区块链中;
基于所述联盟链用户终端生成所述加密数据对象具体包括:
生成对象内容的第一权限密钥和权限密钥列表,其中,第一权限密钥包括用于读取对象内容的对称密钥OSK、用于更新权限密钥列表的第一签名密钥对LSK和LPK、用于Get对象的第二签名密钥对RPK和RSK,以及用于Put对象的第三签名密钥对WPK和WSK;
根据各个用户属性获取其第二权限密钥,其中,第二权限密钥包括对称密钥OSK、第一签名密钥对中的LSK、第二签名密钥对中的RSK或/和第三签名密钥对中的WSK;
生成各个用户属性的权限分发密钥,并通过各个用户属性的权限分发密钥对其第二权限密钥进行加密,得到各个权限密钥密文;
将各个权限密钥密文填充至所述权限密钥列表中,得到加密后的权限密钥列表;
基于所述对称密钥OSK对所述对象内容进行加密,得到加密后的对象内容;
基于所述加密后的对象内容、所述加密后的权限密钥列表、所述第一签名密钥对中的LPK、所述第二签名密钥对中的RPK和所述第三签名密钥对中的WPK,生成所述加密数据对象。
7.一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述的数据共享方法。
8.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的数据共享方法。
CN202211513665.3A 2022-11-30 2022-11-30 数据共享方法、装置、电子设备和存储介质 Active CN115604030B (zh)

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 CN115604030A (zh) 2023-01-13
CN115604030B true 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113901512A (zh) * 2021-09-27 2022-01-07 北京邮电大学 数据共享方法及系统
WO2022105505A1 (zh) * 2020-11-20 2022-05-27 腾讯科技(深圳)有限公司 应用于区块链系统的数据处理方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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
CN114219483B (zh) * 2021-12-14 2023-03-14 云南财经大学 基于lwe-cpabe的区块链数据共享方法、设备和存储介质
CN115296838B (zh) * 2022-06-24 2023-09-26 北京中科金财科技股份有限公司 基于区块链的数据共享方法、系统及存储介质
CN115412257A (zh) * 2022-08-24 2022-11-29 淮阴工学院 一种基于区块链双链的冷链联合节点数据共享方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022105505A1 (zh) * 2020-11-20 2022-05-27 腾讯科技(深圳)有限公司 应用于区块链系统的数据处理方法及装置
CN113901512A (zh) * 2021-09-27 2022-01-07 北京邮电大学 数据共享方法及系统

Also Published As

Publication number Publication date
CN115604030A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN112019591B (zh) 一种基于区块链的云数据共享方法
CN109145612B (zh) 基于区块链实现防数据篡改、用户共谋的云数据共享方法
CN114039790B (zh) 一种基于区块链的细粒度云存储安全访问控制方法
CN107959566A (zh) 量子数据密钥协商系统及量子数据密钥协商方法
US8683209B2 (en) Method and apparatus for pseudonym generation and authentication
CN104901942A (zh) 一种基于属性加密的分布式访问控制方法
CN106790261B (zh) 分布式文件系统及用于其中节点间认证通信的方法
CN110933033B (zh) 智慧城市环境下多物联网域的跨域访问控制方法
JP2023500570A (ja) コールドウォレットを用いたデジタルシグニチャ生成
CN112383550B (zh) 一种基于隐私保护的动态权限访问控制方法
Wang et al. A pre-authentication approach to proxy re-encryption in big data context
CN111147460A (zh) 一种基于区块链的协同细粒度访问控制方法
CN117201132A (zh) 一种完全去中心化的多委员会属性基加密方法及其应用
CN115174184A (zh) 一种基于属性基加密的交易客体身份匿名可追踪方法、网络设备、存储设备
CN110933052A (zh) 一种边缘环境基于时间域的加密及其策略更新方法
CN115834067A (zh) 一种边云协同场景中密文数据共享方法
CN117200966A (zh) 一种基于分布式身份和联盟链的可信授权数据共享方法
CN115208656B (zh) 一种基于区块链和权限管理的供应链数据共享方法及系统
CN116702191A (zh) 一种联邦学习的本地模型参数聚合方法
CN115604030B (zh) 数据共享方法、装置、电子设备和存储介质
Malarvizhi et al. Secure file sharing using cryptographic techniques in cloud
Liang Enabling privacy preservation and decentralization for attribute-based task assignment in crowdsourcing
CN114417419A (zh) 具有安全授权和隐私保护的外包云存储医疗数据聚合方法
Dutta et al. Vector space access structure and ID based distributed DRM key management
CN109218016B (zh) 数据传输方法及装置、服务器、计算机设备和存储介质

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