CN111935080B - 区块链的数据共享方法、装置、计算机设备和存储介质 - Google Patents

区块链的数据共享方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111935080B
CN111935080B CN202010586318.8A CN202010586318A CN111935080B CN 111935080 B CN111935080 B CN 111935080B CN 202010586318 A CN202010586318 A CN 202010586318A CN 111935080 B CN111935080 B CN 111935080B
Authority
CN
China
Prior art keywords
data
user
key
block chain
strategy
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
CN202010586318.8A
Other languages
English (en)
Other versions
CN111935080A (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.)
Bubi Beijing Network Technology Co ltd
Original Assignee
Bubi Beijing Network Technology Co ltd
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 Bubi Beijing Network Technology Co ltd filed Critical Bubi Beijing Network Technology Co ltd
Priority to CN202010586318.8A priority Critical patent/CN111935080B/zh
Publication of CN111935080A publication Critical patent/CN111935080A/zh
Application granted granted Critical
Publication of CN111935080B publication Critical patent/CN111935080B/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/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
    • 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
    • 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/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

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

本申请涉及一种区块链的数据共享方法、装置、计算机设备和存储介质。该方法包括:接收数据所有者发布的数据共享智能合约;接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统生成系统公钥和系统主密钥并更新至智能合约中;根据系统公钥、对称密钥和访问策略生成策略密文;接收数据使用者对应的区块链节点发送的获取用户密钥请求;根据系统公钥、系统主密钥和数据使用者的用户属性,生成用户密钥,并将用户密钥和策略密文反馈给数据使用者对应的区块链节点,该用户密钥用于指示数据使用者对应的区块链节点根据策略密文和系统公钥反解密对称密钥并在解密成功后获取共享数据,采用本方法实现安全便捷的数据共享。

Description

区块链的数据共享方法、装置、计算机设备和存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链的数据共享方法、装置、计算机设备和存储介质。
背景技术
区块链作为一个去中心化的信任平台,通过公开可查询的记录可以为用户的行为进行见证,同时,不可避免的会产生数据共享的需求,数据共享可以包括一对一,一对多,多对多等不同模式。
传统的区块链数据共享通常直接将数据发送到区块链上存储,使用者可以在区块链上实现访问控制和数据的共享,但是由于区块链的所有节点数据一致性,且区块链可用存储容量有限,这种方式只能允许少量数据的共享,同时,共享数据在所有区块链节点中存储,数据的安全性和隐私性无法保证;另一种方式是将数据加密后,存储至公共存储空间(第三方平台),然后,将数据的哈希值存储在区块链中,然而,这种方式的数据共享,依赖于第三方平台的可靠性,而且数据使用者也无法直接访问数据,仅能通过区块链中数据的哈希值进行验证,使数据访问难度大,操作复杂。
因此,亟需一种安全、便捷的区块链的数据共享方案。
发明内容
基于此,有必要针对上述技术问题,提供一种区块链的数据共享方法、装置、计算机设备和存储介质。
一种区块链的数据共享方法,所述方法应用于存储有共享数据的区块链节点,所述方法包括:
接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布;
接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至所述数据共享智能合约中;
根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;
接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
在其中一个实施例中,根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文之后,所述方法还包括:
根据当前时间及预设的时间范围值,确定本次数据共享的有效时间;
接收所述数据使用者对应的区块链节点发送的策略密文获取请求,所述策略密文获取请求中携带有时间戳;
若所述时间戳不在所述有效时间范围内,则获取所述策略密文数据失败。
在其中一个实施例中,所述方法还包括:
当所述数据共享的有效时间到期或接收到所述数据所有者对应的区块链节点发送的授权变更请求时,对所述访问策略进行更新,得到更新后的访问策略;
根据所述系统公钥、所述对称密钥和所述更新后的访问策略,生成新的策略密文;
接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述新的策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述新的策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
在其中一个实施例中,所述方法还包括:
根据所述数据所有者的私钥和所述数据使用者的公钥,对所述用户密钥进行加密,得到加密的用户密钥,并将所述加密的用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点。
一种区块链的数据共享方法,所述方法应用于接收共享数据的区块链节点,所述方法包括:
接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在所述各数据共享智能合约中,确定目标数据共享智能合约,所述目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥;
根据所述存储地址,向所述存储有目标共享数据的区块链节点发送数据访问请求;
根据所述存储地址,向所述存储有目标共享数据的区块链节点发送获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
接收所述存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,并根据所述用户密钥、所述系统公钥和所述策略密文进行密文策略属性基解密;
若所述用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据所述对称密钥及所述存储地址,获取所述目标共享数据。
在其中一个实施例中,所述方法还包括:
若所述用户密钥中包含的所述用户属性不在所述属性集合中,根据所述用户密钥、所述系统公钥和所述策略密文进行所述密文策略属性基解密,则解密失败。
在其中一个实施例中,所述方法还包括:
向所述存储有目标共享数据的区块链节点发送策略密文获取请求,所述策略密文获取请求中携带有时间戳;
当所述时间戳在数据共享的有效时间范围内,接收所述存储有目标共享数据的区块链节点反馈的策略密文。
在其中一个实施例中,所述方法还包括:
根据所述数据使用者的私钥和所述数据所有者的公钥,生成解密密钥;
根据所述解密密钥对加密的用户密钥进行解密,得到解密后的用户密钥。
一种区块链的数据共享装置,所述装置应用于存储有共享数据的区块链节点,所述装置包括:
第一接收模块,用于接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布;
第二接收模块,用于接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至所述数据共享智能合约中;
确定模块,用于根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;
第三接收模块,用于接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
发送模块,用于根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
一种区块链的数据共享装置,所述装置应用于接收共享数据的区块链节点,所述装置包括:
第一接收模块,用于接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在所述各数据共享智能合约中,确定目标数据共享智能合约,所述目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥;
第一发送模块,用于根据所述存储地址,向所述存储有目标共享数据的区块链节点发送数据访问请求;
第二发送模块,用于根据所述存储地址,向所述存储有目标共享数据的区块链节点发送获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
第二接收模块,用于接收所述存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,并根据所述用户密钥、所述系统公钥和所述策略密文进行密文策略属性基解密;
解密模块,用于若所述用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据所述对称密钥及所述存储地址,获取所述目标共享数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布,所述数据共享智能合约中包括所述共享数据的存储地址;
接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至所述数据共享智能合约中;
根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;
接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布;
接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至所述数据共享智能合约中;
根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;
接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
上述区块链的数据共享方法、装置、计算机设备和存储介质,通过存储有共享数据的区块链节点接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布;然后,接收数据使用者对应的区块链节点发送的数据访问请求,并根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥更新至所述数据共享智能合约中;其次,根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;最后,根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,其中,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。采用本方法,存储有共享数据的区块链节点根据密文策略属性基加密系统,实现安全细粒度数据访问控制,即基于用户属性的授权访问,共享数据仅对授权用户(指定用户属性的用户)开放,实现了区块链网络中各节点间安全便捷的数据共享。
附图说明
图1为一个实施例中区块链的数据共享方法的应用环境图;
图2为一个实施例中区块链的数据共享方法的流程示意图;
图3为一个实施例中访问控制树的结构示意图;
图4为一个实施例中限定数据共享有效时间的方法的流程示意图;
图5为一个实施例中数据访问变更授权方法的流程示意图;
图6为另一个实施例中区块链的数据共享方法的流程示意图;
图7为另一个实施例中限定数据共享有效时间的方法的流程示意图;
图8为一个实施例中对加密的用户密钥进行解密的方法的流程示意图;
图9为一个实施例中区块链的数据共享装置的结构框图;
图10为另一个实施例中区块链的数据共享装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链的数据共享方法,可以应用于如图1所示的联盟链场景中。各区块链节点集成了授权中心和存储服务,每个区块链节点为数据共享(数据访问)提供了存储地址(URL,uniform resource locator),实现区块链中数据的直接访问和读取。
在一个实施例中,如图2所示,提供了一种区块链的数据共享方法,以该方法应用于存储有共享数据的区块链节点进行说明,包括以下步骤:
步骤201,接收数据所有者创建的数据共享智能合约,对数据共享智能合约进行共识发布。
在实施中,数据所有者可以是一个或多个区块链用户,数据所有者可以将共享数据上传至区块链中任意一个集成了授权中心和存储空间的区块链节点,然后,将上传了共享数据的节点作为数据所有者对应的区块链节点,该区块链节点接收数据所有者创建的数据共享智能合约后,对数据共享智能合约进行全网(区块链网络)共识发布。
具体的,数据所有者根据数据共享需求创建数据共享智能合约,该数据共享智能合约中包含多个调用接口,用于数据交互双方的区块链节点通过该数据共享智能合约实现各功能的调用,例如,SetShareData(id,URL,CA,Metadata)接口用于设置共享数据,其中,id=hash(data),为共享数据的哈希值(下文中智能合约各接口中包含的id均与之相同),URL为共享数据的存储地址(也可称为访问地址),通过该地址可以直接获取数据,CA为该区块链节点集成的授权中心(地址),Metadata为数据的元数据信息,包含用于搜索查询的关键字。SearchData("keyword")接口用于加密数据信息。存储有共享数据的区块链节点调用智能合约中的SetShareData(id,URL,CA,Metadata)接口,发布共享数据信息。
可选的,数据所有者在将共享数据上传至区块链中任意一个节点之前,数据所有者可以通过预设的密钥生成算法,生成随机的对称密钥,并利用该对称密钥对共享数据进行加密Encrypt(k,data)→Edata,得到加密的共享数据Edata
步骤202,接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至数据共享智能合约中。
在实施中,存储有共享数据的区块链节点接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥,并将生成的系统公钥和系统主密钥更新至数据共享智能合约中。
具体的,存储有共享数据的区块链节点在接收到数据访问请求后,该区块链节点的授权中心执行预设的密文策略属性基加密系统(CP-ABE)加密方法,根据数据所有者输入安全参数λ生成系统公钥PSK和系统主密钥MSK。然后,存储有共享数据的区块链节点调用智能合约中的SetPSK(PSK)接口,将生成的系统公钥和系统主密钥并更新至智能合约中。
步骤203,根据系统公钥、对称密钥和预设的访问策略,生成策略密文。
在实施中,存储有共享数据的区块链节点根据预设的密钥生成算法,生成随机的对称密钥k,然后,存储有共享数据的区块链节点调用智能合约中的GetPSK(id)接口,获取到系统公钥,并根据系统公钥PSK、对称密钥k和预设的访问策略T,生成对应的策略密文。其中,预设的访问策略T可以根据授权范围进行设置,授权范围包含已经申请数据访问的用户的用户属性。
例如,授权范围中包括的已申请数据访问的用户的属性为学生和老师,同时,学生和老师又具备已付款、已认证和贡献者中多个的身份特征,因此,根据该授权范围设置的访问策略T的结构,如图3所示,其中的访问控制树显示,用户属性必须满足是学生和老师中的一种,而且同时必须至少拥有已付款、已认证和贡献者属性中的两种的用户,才可以对该访问策略对应的共享数据进行访问。因此,存储有共享数据的区块链节点执行CP-ABE加密算法,调用智能合约中的SetABEKey(id,Ek)接口,根据该访问策略T、系统公钥PSK和对称密钥k,生成对应的策略密文,并将生成的策略密文存储至智能合约中,其中,具体的加密公式如下所示:
ABEEncrypt(PSK,k,T)→Ek
步骤204,接收数据使用者对应的区块链节点发送的获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。
在实施中,存储有共享数据的区块链节点接收数据使用者对应的区块链节点发送的获取用户密钥请求,该获取用户密钥请求中携带有数据使用者对应的用户属性。
步骤205,根据系统公钥、系统主密钥和用户属性,生成用户密钥,并将用户密钥和策略密文反馈给数据使用者对应的区块链节点,用户密钥用于指示数据使用者对应的区块链节点根据策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。
在实施中,存储有共享数据的区块链节点根据系统公钥PSK、系统主密钥MSK和用户属性a,生成用户密钥USK,并将该用户密钥USK和策略密文Ek反馈给数据使用者对应的区块链节点。具体的生成用户密钥的加密算法公式为KeyGen(PSK,MSK,a)→USK。
上述区块链的数据共享方法中,通过存储有共享数据的区块链节点接收数据所有者创建的数据共享智能合约,对数据共享智能合约进行共识发布;然后,接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至数据共享智能合约中;其次,根据系统公钥、对称密钥和预设的访问策略,生成策略密文;另外,接收数据使用者对应的区块链节点发送的获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性;根据系统公钥、系统主密钥和用户属性,生成用户密钥,并将用户密钥和策略密文反馈给数据使用者对应的区块链节点,该用户密钥用于指示数据使用者对应的区块链节点根据策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。采用本方法,存储有共享数据的区块链节点根据密文策略属性基加密系统,实现安全细粒度数据访问控制,即基于用户属性的授权访问,共享数据仅对授权用户(指定用户属性的用户)开放,实现了区块链网络中各节点间安全便捷的数据共享。
在一个实施例中,如图4所示,步骤203之后,该区块链的数据共享方法还包括:
步骤401,根据当前时间及预设的时间范围值,确定本次数据共享的有效时间。
在实施中,存储有共享数据的区块链节点可以限定数据共享的时效或策略密文的获取时效,具体的,在生成策略密文之后,存储有共享数据的区块链节点调用智能合约中的根据当前时间及预设的时间范围值,确定本次数据共享的有效时间t,例如t1<t<t2
步骤402,接收数据使用者对应的区块链节点发送的策略密文获取请求,策略密文获取请求中携带有时间戳。
在实施中,存储有共享数据的区块链节点接收数据使用者对应的区块链节点发送的策略密文获取请求,该策略密文获取请求中携带有时间戳,将该时间戳与对应的数据共享的有效时间进行比对,对该次策略密文获取请求的有效性进行判断。
步骤403,若时间戳不在有效时间范围内,则获取策略密文数据失败。
在实施中,若存储有共享数据的区块链节点判定该策略密文获取请求中携带的时间戳不在预设的有效时间内,则策略密文获取失败,无法返回对应的策略密文。
本实施例中,通过确定本次数据共享的有效时间,对数据使用者进行鉴权,若数据使用者对应的区块链节点发送的策略密文获取请求不在本次数据共享的有效时间内,则判定该次策略密文获取请求无效,无法进行进一步的数据访问,提高了数据访问控制的安全性和可靠性。
在一个实施例中,如图5所示,该区块链的数据共享方法还包括:
步骤501,当数据共享的有效时间到期或接收到数据所有者对应的区块链节点发送的授权变更请求时,对访问策略进行更新,得到更新后的访问策略。
在实施中,当数据共享的有效时间到期或接收到数据所有者对应的区块链节点发送得到授权变更请求时,存储有共享数据的区块链节点对访问策略进行更新,得到更新后的访问策略,具体的,当数据共享的有效时间到期或接收到数据所有者对应的区块链节点发送的授权变更请求后,存储有共享数据的区块链节点会根据新的授权范围确定新的访问策略T′,具体的新的访问策略确定过程与上述步骤203中访问策略的确定过程类似,本申请实施例不再赘述。
步骤502,根据系统公钥、对称密钥和更新后的访问策略,生成新的策略密文。
在实施中,存储有共享数据的区块链节点调用智能合约中的GetPSK(id)接口,获取系统公钥,并根据系统公钥、预设的密钥生成算法生成的随机对称密钥和更新后的访问策略,生成新的策略密文。具体的,生成新的策略密文的过程与上述步骤203类似,存储有共享数据的区块链节点执行CP-ABE加密,根据更新后的访问策略T′、系统公钥和对称密钥,生成新的策略密文E′k,其中,策略密文加密公式为ABEEncrypt(PSK,k,T′)→E′k。然后,存储有共享数据的区块链节点调用智能合约中的SetABEKey(id,E′k)接口,将新的策略密文E′k存储至智能合约中。
可选的,根据上述步骤401-403可知,存储有共享数据的区块链节点还可以根据生成新的策略密文的当前时间及预设的时间范围值,确定新一次数据共享的有效时间,例如,该次数据共享的有效时间范围为t3<t<t4
步骤503,接收数据使用者对应的区块链节点发送的获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。
在实施中,存储有共享数据的区块链节点接收数据使用者对应的区块链节点发送的获取用户密钥请求,该获取用户密钥请求中携带有数据使用者对应的用户属性,例如,用户属性b。
步骤504,根据系统公钥、系统主密钥和用户属性,生成用户密钥,并将用户密钥和新的策略密文反馈给数据使用者对应的区块链节点,用户密钥用于指示数据使用者对应的区块链节点根据新的策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。
在实施中,存储有共享数据的区块链节点根据系统公钥、系统主密钥和用户属性b,生成对应用户属性b的用户密钥,然后将该用户密钥和新的策略密文反馈给数据使用者对应的区块链节点,对应于用户属性b的用户密钥用于指示数据使用者对应的区块链节点根据新的策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。
在本实施例中,通过新的授权范围更新访问策略,并进一步根据更新后的访问策略执行CP-ABE加密,实现对数据使用者的授权更新过程,通过对数据共享的访问权限的变更,实现了对数据访问的灵活控制,同时,提高了数据共享的安全性和可靠性。
在一个实施例中,该区块链的数据共享方法还包括:根据数据所有者的私钥和数据使用者的公钥,对用户密钥进行加密,得到加密的用户密钥,并将加密的用户密钥和策略密文反馈给数据使用者对应的区块链节点。
在实施中,存储有共享数据的区块链节点在生成用户密钥后,为了进一步增强用户密钥的安全性,确保该包含用户属性的用户密钥(也可以称为属性密钥)只有对应的用户利用自身私钥才可以获取,因此,可以对生成的用户密钥进行加密,具体的,存储有共享数据的区块链节点调用智能合约中的SetUSK(id,EUSK)接口,根据对应的数据所有者的账号私钥PrivateKeyca和数据使用者的账号公钥PubKeyuser,利用ECDH交换密钥算法keyecdh=ECDH(PrivateKeyca,PubKeyuser),生成交换密钥keyecdh,并利用交换密钥对用户密钥进行加密,得到加密后的用户密钥EUSK,具体的加密公式为:EUSK=AES(keyecdh,USK)。然后,存储有共享数据的区块链节点将策略密文和加密后的用户密钥反馈给数据使用者对应的区块链节点。
在另一个实施例中,如图6所示,提供了一种区块链的数据共享方法,以该方法应用于接收共享数据的区块链节点进行说明,包括以下步骤:
步骤601,接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在各数据共享智能合约中,确定目标数据共享智能合约,目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥。
在实施中,数据使用者可以是一个或多个区块链用户,接收共享数据的区块链节点,也即数据使用者对应的区块链节点,该节点可以接收数据所有者通过存储有共享数据的区块链节点共识发布的各数据共享智能合约,各数据共享智能合约中均包含数据的关键词信息、共享数据的存储地址和对应的系统公钥。因此,数据使用者可以在各智能合约中浏览共享数据的关键词信息,根据自身需求通过向自身对应的区块链节点(接收共享数据的区块链节点)输入数据共享请求,使接收共享数据的区块链节点根据数据共享请求中携带的数据关键词信息,在各数据共享智能合约中进行查询,确定目标数据共享智能合约,该目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥。
步骤602,根据存储地址,向存储有目标共享数据的区块链节点发送数据访问请求。
在实施中,接收共享数据的区块链节点根据目标数据共享智能合约中的目标共享数据的存储地址(也即对应的存储有共享数据的区块链节点地址),向存储有共享数据的区块链节点发送数据访问请求。具体的,接收共享数据的区块链节点还可以从共识发布的智能合约中获取到共享数据的id标识,进而通过智能合约中的AccessRequest(id)接口,向存储有目标共享数据的区块链节点发送数据访问请求。可选的,接收共享数据的区块链节点还可以将这次访问请求记录在目标数据共享智能合约中。
步骤603,根据存储地址,向存储有目标共享数据的区块链节点发送获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。
在实施中,接收共享数据的区块链节点(数据使用者对应的区块链节点)根据目标共享数据的存储地址,向存储有目标共享数据的区块链节点发送获取用户密钥请求,该获取用户密钥请求中携带有与自身数据使用者对应的用户属性,例如用户属性a。
步骤604,接收存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,并根据用户密钥、系统公钥和策略密文进行密文策略属性基解密。
在实施中,接收共享数据的区块链节点(数据使用者对应的区块链节点)接收存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,执行CP-ABE解密。
具体的,接收共享数据的区块链节点调用智能合约中的GetUSK(id)接口接收到存储有目标共享数据的区块链节点反馈的用户密钥USK,同时,调用智能合约中的GetABEKey(id)接口接收到存储有目标共享数据的区块链节点反馈的策略密文Ek,调用智能合约中的GetPSK(id)获取到系统公钥PSK,然后,接收共享数据的区块链节点根据用户密钥、系统公钥和策略密文进行密文策略属性基解密,解密公式为:
ABEDecrypt(PSK,USK,Ek)→k
步骤605,若用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据对称密钥及存储地址,获取目标共享数据。
在实施中,根据策略密文进行解密过程中可以获得预设的访问策略的属性集合。如果生成用户密钥时所包含的用户属性(也即数据使用者的用户属性)包含在访问策略的属性集合中,则接收共享数据的区块链节点解密成功,得到对称密钥k,进而,接收共享数据的区块链节点和存储有共享数据的区块链节点间通过智能合约中的DataTransferFlag标志显示数据传递过程,例如,标志为0时,代表接收共享数据的区块链节点等待接收,标志为1时,代表验证通过解密成功,存储服务开始推送数据,标志为2代表数据传输完成,通道关闭。然后,在标志为1的过程中,接收共享数据的区块链节点根据该对称密钥k和目标共享数据的存储地址,可以获取到目标共享数据。其中,数据传输通过加密通道,采用异步传输方式进行,不影响区块链正常交易。
可选的,接收共享数据的区块链节点在得到对称密钥k后,需要根据对称密钥对加密后的共享数据Edata进行解密Decrypt(k,Edata)→data,得到明文数据data。
可选的,接收共享数据的区块链节点为数据使用者对应的区块链节点,同样的,当用户角色为数据共享监管者时,数据监管(数据共享)的过程与上述步骤601至605类似,此时的接收共享数据的区块链节点为数据监管者对应的区块链节点,因此,本申请实施例对应区块链节点对应的用户角色不做限定。
上述区块链的数据共享方法中,接收共享数据的区块链节点接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在各数据共享智能合约中,确定目标数据共享智能合约,目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥;接收共享数据的区块链节点根据存储地址,向存储有目标共享数据的区块链节点发送数据访问请求;然后,根据存储地址,向存储有目标共享数据的区块链节点发送获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性;最后,接收共享数据的区块链节点接收存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,并根据用户密钥、系统公钥和策略密文进行密文策略属性基解密;若用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据对称密钥及存储地址,获取目标共享数据。采用本方法,接收共享数据的区块链节点根据密文策略属性基加密系统解密对称密钥,并根据对称密钥和目标共享数据的存储地址实现安全细粒度数据访问控制,即基于用户属性的授权访问,共享数据仅对授权用户(指定用户属性的用户)开放,实现了区块链网络中各节点间安全便捷的数据共享。
在一个实施例中,该区块链的数据共享方法还包括:
若用户密钥中包含的用户属性不在属性集合中,根据用户密钥、系统公钥和策略密文进行密文策略属性基解密,则解密失败。
在实施中,若用户密钥中包含的用户属性不在属性集合中,接收共享数据的区块链节点根据用户密钥、系统公钥和策略密文进行密文策略属性基解密时,则会解密失败。从而实现非特征用户(具有特定用户属性的用户)不能访问共享数据,完成对数据访问的用户的鉴权过程。
在一个实施例中,如图7所示,该区块链的数据共享方法还包括:
步骤701,向存储有目标共享数据的区块链节点发送策略密文获取请求,策略密文获取请求中携带有时间戳。
在实施中,接收共享数据的区块链节点向存储有目标共享数据的区块链节点发送策略密文获取请求,该策略密文获取请求中携带有时间戳,该时间戳显示了本次策略密文获取请求的发送时间。
步骤702,当时间戳在数据共享的有效时间范围内,接收存储有目标共享数据的区块链节点反馈的策略密文。
在实施中,当接收共享数据的区块链节点发送的策略密文获取请求中的时间戳在本次数据共享的有效时间范围内,则接收共享数据的区块链节点会接收到存储有目标共享数据的区块链节点反馈的策略密文。
本实施例中,通过发送的策略密文获取请求中携带有时间戳,对该接收共享数据的区块链节点对应的数据使用者进行鉴权,若时间戳在本次数据共享的有效时间内,则判定该次策略密文获取请求有效,该数据使用者为授权用户,可以进行进一步的数据访问,提高了数据访问控制的安全性和可靠性。
在一个实施例中,存储有共享数据的区块链节点在生成用户密钥后,为了进一步增强用户密钥的安全性,可以对生成的用户密钥进行加密,因此,如图8所示,该区块链的数据共享方法还包括:
步骤801,根据数据使用者的私钥和数据所有者的公钥,生成解密密钥。
在实施中,接收共享数据的区块链节点通过调用智能合约中的GetUSK(id)接口获取到该加密的用户密钥EUSK,然后,根据对应的数据使用者的账号私钥PrivateKeyuser和数据所用者的账号公钥PubKeyca,利用ECDH交换密钥算法keyecdh=ECDH(PrivateKeyuser,PubKeyca),生成解密密钥keyecdh
步骤802,根据解密密钥对加密的用户密钥进行解密,得到解密后的用户密钥。
在实施中,接收共享数据的区块链节点利用生成的解密密钥对加密的用户密钥EUSK进行解密,得到解密后的用户密钥USK。
在本实施例中,通过设置ECDH交换密钥算法,使得包含用户属性的加密用户密钥只有对应的用户利用自身特有的私钥才可以进行解密获取,确保该次数据共享的安全性和可靠性。
应该理解的是,虽然图2和图4-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图4-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种区块链的数据共享装置900,该装置应用于存储有共享数据的区块链节点,包括:第一接收模块910、第二接收模块920、确定模块930、第三接收模块940和发送模块950,其中:
第一接收模块910,用于接收数据所有者创建的数据共享智能合约,对数据共享智能合约进行共识发布。
第二接收模块920,用于接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至数据共享智能合约中。
确定模块930,用于根据系统公钥、对称密钥和预设的访问策略,生成策略密文。
第三接收模块940,用于接收数据使用者对应的区块链节点发送的获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。
发送模块950,用于根据系统公钥、系统主密钥和用户属性,生成用户密钥,并将用户密钥和策略密文反馈给数据使用者对应的区块链节点,用户密钥用于指示数据使用者对应的区块链节点根据策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。
在一个实施例中,该装置900还包括:
第一确定模块,根据当前时间及预设的时间范围值,确定本次数据共享的有效时间。
第四接收模块,用于接收数据使用者对应的区块链节点发送的策略密文获取请求,策略密文获取请求中携带有时间戳。
若时间戳不在有效时间范围内,则获取策略密文数据失败。
在一个实施例中,该装置900还包括:
更新模块,用于当数据共享的有效时间到期或接收到数据所有者对应的区块链节点发送的授权变更请求时,对访问策略进行更新,得到更新后的访问策略。
确定模块,用于根据系统公钥、对称密钥和更新后的访问策略,生成新的策略密文。
第三接收模块,用于接收数据使用者对应的区块链节点发送的获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。
发送模块,用于根据系统公钥、系统主密钥和用户属性,生成用户密钥,并将用户密钥和策略密文反馈给数据使用者对应的区块链节点,用户密钥用于指示数据使用者对应的区块链节点根据新的策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。
在一个实施例中,该装置900还包括:
加密模块,用于根据数据所有者的私钥和数据使用者的公钥,对用户密钥进行加密,得到加密的用户密钥,并将加密的用户密钥和策略密文反馈给数据使用者对应的区块链节点。
上述区块链的数据共享装置,第一接收模块910,用于接收数据所有者创建的数据共享智能合约,对数据共享智能合约进行共识发布。第二接收模块920,用于接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至数据共享智能合约中。确定模块930,用于根据系统公钥、对称密钥和预设的访问策略,生成策略密文。第三接收模块940,用于接收数据使用者对应的区块链节点发送的获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。发送模块950,用于根据系统公钥、系统主密钥和用户属性,生成用户密钥,并将用户密钥和策略密文反馈给数据使用者对应的区块链节点,用户密钥用于指示数据使用者对应的区块链节点根据策略密文和系统公钥反解密对称密钥,以及在解密成功后获取共享数据。采用本装置,存储有共享数据的区块链节点根据密文策略属性基加密系统,实现安全细粒度数据访问控制,即基于用户属性的授权访问,共享数据仅对授权用户(指定用户属性的用户)开放,实现了区块链网络中各节点间安全便捷的数据共享。
在一个实施例中,如图10所示,提供了一种区块链的数据共享装置1000,该装置应用于接收共享数据的区块链节点,包括:第一接收模块1010、第一发送模块1020、第二发送模块1030、第二接收模块1040和解密模块1050,其中,
第一接收模块1010,用于接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在各数据共享智能合约中,确定目标数据共享智能合约,目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥。
第一发送模块1020,用于根据存储地址,向存储有目标共享数据的区块链节点发送数据访问请求。
第二发送模块1030,用于根据存储地址,向存储有目标共享数据的区块链节点发送获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。
第二接收模块1040,用于接收存储有目标共享数据的区块链节点发送的用户密钥和策略密文,并根据用户密钥、系统公钥和策略密文进行密文策略属性基解密。
解密模块1050,用于若用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据对称密钥及存储地址,获取目标共享数据。
在一个实施例中,解密模块1050还用于若用户密钥中包含的用户属性不在属性集合中,根据用户密钥、系统公钥和策略密文进行密文策略属性基解密,则解密失败。
在一个实施例中,该装置1000还包括:
发送模块,用于向存储有目标共享数据的区块链节点发送策略密文获取请求,策略密文获取请求中携带有时间戳。
接收模块,用于当时间戳在数据共享的有效时间范围内,接收存储有目标共享数据的区块链节点反馈的策略密文。
在一个实施例中,该装置1000还包括:
确定模块,用于根据数据使用者的私钥和数据所有者的公钥,生成解密密钥;
解密模块,用于根据解密密钥对加密的用户密钥进行解密,得到解密后的用户密钥。
上述区块链的数据共享装置中,第一接收模块1010,用于接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在各数据共享智能合约中,确定目标数据共享智能合约,目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥。第一发送模块1020,用于根据存储地址,向存储有目标共享数据的区块链节点发送数据访问请求。第二发送模块1030,用于根据存储地址,向存储有目标共享数据的区块链节点发送获取用户密钥请求,获取用户密钥请求中携带有数据使用者对应的用户属性。第二接收模块1040,用于接收存储有目标共享数据的区块链节点发送的用户密钥和策略密文,并根据用户密钥、系统公钥和策略密文进行密文策略属性基解密。解密模块1050,用于若用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据对称密钥及存储地址,获取目标共享数据。采用本装置,接收共享数据的区块链节点根据密文策略属性基加密系统解密对称密钥,并根据对称密钥和目标共享数据的存储地址实现安全细粒度数据访问控制,即基于用户属性的授权访问,共享数据仅对授权用户(指定用户属性的用户)开放,实现了区块链网络中各节点间安全便捷的数据共享。
关于区块链的数据共享装置的具体限定可以参见上文中对于区块链的数据共享方法的限定,在此不再赘述。上述区块链的数据共享装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链的数据共享方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种区块链的数据共享方法,其特征在于,所述方法应用于存储有共享数据的区块链节点,所述方法包括:
接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布;
接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至所述数据共享智能合约中;所述数据访问请求记录在所述数据共享智能合约中;
根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;
接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
2.根据权利要求1所述的方法,其特征在于,根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文之后,所述方法还包括:
根据当前时间及预设的时间范围值,确定本次数据共享的有效时间;
接收所述数据使用者对应的区块链节点发送的策略密文获取请求,所述策略密文获取请求中携带有时间戳;
若所述时间戳不在所述有效时间范围内,则获取所述策略密文数据失败。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述数据共享的有效时间到期或接收到所述数据所有者对应的区块链节点发送的授权变更请求时,对所述访问策略进行更新,得到更新后的访问策略;
根据所述系统公钥、所述对称密钥和所述更新后的访问策略,生成新的策略密文;
接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述新的策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述新的策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述数据所有者的私钥和所述数据使用者的公钥,对所述用户密钥进行加密,得到加密的用户密钥,并将所述加密的用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点。
5.一种区块链的数据共享方法,其特征在于,所述方法应用于接收共享数据的区块链节点,所述方法包括:
接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在所述各数据共享智能合约中,确定目标数据共享智能合约,所述目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥;
根据所述存储地址,向所述存储有目标共享数据的区块链节点发送数据访问请求;所述数据访问请求被记录在所述目标数据共享智能合约中;
根据所述存储地址,向所述存储有目标共享数据的区块链节点发送获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
接收所述存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,并根据所述用户密钥、所述系统公钥和所述策略密文进行密文策略属性基解密;
若所述用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据所述对称密钥及所述存储地址,获取所述目标共享数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述用户密钥中包含的所述用户属性不在所述属性集合中,根据所述用户密钥、所述系统公钥和所述策略密文进行所述密文策略属性基解密,则解密失败。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向所述存储有目标共享数据的区块链节点发送策略密文获取请求,所述策略密文获取请求中携带有时间戳;
当所述时间戳在数据共享的有效时间范围内,接收所述存储有目标共享数据的区块链节点反馈的策略密文。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述数据使用者的私钥和所述数据所有者的公钥,生成解密密钥;
根据所述解密密钥对加密的用户密钥进行解密,得到解密后的用户密钥。
9.一种区块链的数据共享装置,其特征在于,所述装置应用于存储有共享数据的区块链节点,所述装置包括:
第一接收模块,用于接收数据所有者创建的数据共享智能合约,对所述数据共享智能合约进行共识发布;
第二接收模块,用于接收数据使用者对应的区块链节点发送的数据访问请求,根据预设的密文策略属性基加密系统,生成系统公钥和系统主密钥并更新至所述数据共享智能合约中;所述数据访问请求记录在所述数据共享智能合约中;
确定模块,用于根据所述系统公钥、对称密钥和预设的访问策略,生成策略密文;
第三接收模块,用于接收所述数据使用者对应的区块链节点发送的获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
发送模块,用于根据所述系统公钥、所述系统主密钥和所述用户属性,生成用户密钥,并将所述用户密钥和所述策略密文反馈给所述数据使用者对应的区块链节点,所述用户密钥用于指示所述数据使用者对应的区块链节点根据所述策略密文和所述系统公钥反解密所述对称密钥,以及在解密成功后获取所述共享数据。
10.一种区块链的数据共享装置,其特征在于,所述装置应用于接收共享数据的区块链节点,所述装置包括:
第一接收模块,用于接收数据所有者发布的各数据共享智能合约,并根据数据使用者输入的数据共享请求中的数据关键词信息,在所述各数据共享智能合约中,确定目标数据共享智能合约,所述目标数据共享智能合约包含目标数据的关键词信息、目标共享数据的存储地址和系统公钥;
第一发送模块,用于根据所述存储地址,向所述存储有目标共享数据的区块链节点发送数据访问请求;所述数据访问请求记录在所述数据共享智能合约中;
第二发送模块,用于根据所述存储地址,向所述存储有目标共享数据的区块链节点发送获取用户密钥请求,所述获取用户密钥请求中携带有所述数据使用者对应的用户属性;
第二接收模块,用于接收所述存储有目标共享数据的区块链节点反馈的用户密钥和策略密文,并根据所述用户密钥、所述系统公钥和所述策略密文进行密文策略属性基解密;
解密模块,用于若所述用户密钥包含的用户属性在预设的访问策略的属性集合中,则解密成功,得到对称密钥,并根据所述对称密钥及所述存储地址,获取所述目标共享数据。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4,或5至8中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4,或5至8中任一项所述的方法的步骤。
CN202010586318.8A 2020-06-24 2020-06-24 区块链的数据共享方法、装置、计算机设备和存储介质 Active CN111935080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010586318.8A CN111935080B (zh) 2020-06-24 2020-06-24 区块链的数据共享方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010586318.8A CN111935080B (zh) 2020-06-24 2020-06-24 区块链的数据共享方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111935080A CN111935080A (zh) 2020-11-13
CN111935080B true CN111935080B (zh) 2022-09-27

Family

ID=73317792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010586318.8A Active CN111935080B (zh) 2020-06-24 2020-06-24 区块链的数据共享方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111935080B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112637278B (zh) * 2020-12-09 2021-10-08 云南财经大学 基于区块链和属性基加密的数据共享方法、系统及计算机可读存储介质
CN112688927B (zh) * 2020-12-18 2022-06-24 重庆大学 一种基于区块链的分布式访问控制方法
CN112751850A (zh) * 2020-12-29 2021-05-04 中国联合网络通信集团有限公司 一种共享方法及装置
CN112953712B (zh) * 2021-02-19 2022-10-18 昆明理工大学 一种基于零知识证明和同态加密的数据跨链共享方法
CN112966285A (zh) * 2021-03-26 2021-06-15 江苏省生态环境监控中心(江苏省环境信息中心) 一种环境监测用仪器数据自动采集集成方法及系统
CN113392430B (zh) * 2021-05-27 2023-05-19 中国联合网络通信集团有限公司 基于智能合约认证的数字资源管理方法及系统
CN113486393A (zh) * 2021-06-16 2021-10-08 中国联合网络通信集团有限公司 基于区块链的个人信息共享方法、节点、设备及存储介质
CN113486122A (zh) * 2021-07-29 2021-10-08 维沃移动通信有限公司 数据共享方法和电子设备
CN113326541B (zh) * 2021-08-03 2021-11-16 之江实验室 一种基于智能合约的云边协同多模式隐私数据流转方法
CN113824557A (zh) * 2021-09-18 2021-12-21 广东稳峰电力科技有限公司 变电二次三维数字化构建方法、装置及变电二次三维系统
CN113779612B (zh) * 2021-09-30 2023-06-13 国网湖南省电力有限公司 一种基于区块链与隐藏策略属性加密的数据共享方法与系统
CN114157473A (zh) * 2021-11-29 2022-03-08 广发银行股份有限公司 生物特征技术共享及验证方法、系统、设备和介质
CN114465790A (zh) * 2022-01-24 2022-05-10 蚂蚁区块链科技(上海)有限公司 一种ip内容库业务处理方法、装置以及设备
CN115001824B (zh) * 2022-06-02 2024-03-12 云南软捷科技有限公司 一种面向区块链的数据加密共享方法、装置及存储介质
CN115118485A (zh) * 2022-06-24 2022-09-27 蚂蚁区块链科技(上海)有限公司 基于区块链获取数据的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9998286B1 (en) * 2017-02-17 2018-06-12 Accenture Global Solutions Limited Hardware blockchain consensus operating procedure enforcement
CN109559124A (zh) * 2018-12-17 2019-04-02 重庆大学 一种基于区块链的云数据安全共享方法
CN110400642A (zh) * 2019-06-12 2019-11-01 梁胤豪 一种基于区块链技术的医疗数据共享系统及设计方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120639B (zh) * 2018-09-26 2021-03-16 众安信息技术服务有限公司 一种基于区块链的数据云存储加密方法及系统
CN111079191A (zh) * 2020-01-09 2020-04-28 内蒙古大学 一种基于区块链的cp-abe访问控制方案
CN111245837B (zh) * 2020-01-13 2021-08-10 电子科技大学 一种基于区块链的车联网数据共享细粒度访问控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9998286B1 (en) * 2017-02-17 2018-06-12 Accenture Global Solutions Limited Hardware blockchain consensus operating procedure enforcement
CN109559124A (zh) * 2018-12-17 2019-04-02 重庆大学 一种基于区块链的云数据安全共享方法
CN110400642A (zh) * 2019-06-12 2019-11-01 梁胤豪 一种基于区块链技术的医疗数据共享系统及设计方法

Also Published As

Publication number Publication date
CN111935080A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN111935080B (zh) 区块链的数据共享方法、装置、计算机设备和存储介质
CN111090875B (zh) 部署合约的方法及装置
CN109120639B (zh) 一种基于区块链的数据云存储加密方法及系统
CN109471844B (zh) 文件共享方法、装置、计算机设备和存储介质
CN112019591B (zh) 一种基于区块链的云数据共享方法
CN111090874B (zh) 调用合约的方法及装置
KR102025409B1 (ko) 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
CN108123800A (zh) 密钥管理方法、装置、计算机设备及存储介质
CN103731432A (zh) 一种支持多用户的可搜索加密系统及方法
CN114239046A (zh) 数据共享方法
CN112532580B (zh) 一种基于区块链及代理重加密的数据传输方法及系统
CN110913390B (zh) 基于身份秘密共享的抗量子计算车联网方法及系统
CN113779612B (zh) 一种基于区块链与隐藏策略属性加密的数据共享方法与系统
CN113360944B (zh) 一种电力物联网的动态访问控制系统与方法
CN113098849A (zh) 基于属性及身份加密的访问控制方法、终端及存储介质
CN113708917B (zh) 基于属性加密的app用户数据访问控制系统及方法
CN114679340B (zh) 一种文件共享方法、系统、设备及可读存储介质
WO2020082226A1 (en) Method and system for transferring data in a blockchain system
CN114500069A (zh) 一种电子合同的存储及共享的方法与系统
CN111917711B (zh) 数据访问方法、装置、计算机设备和存储介质
CN108809631B (zh) 一种量子密钥服务管理系统及方法
CN112149184A (zh) 一种基于限时访问的区块链链外存储系统及方法
CN113094675B (zh) 基于分布式模型训练的用户认证方法及装置
CN113132982A (zh) 数据转发方法、装置、计算机设备和存储介质
CN115604030B (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