CN111800373B - 基于属性基加密区块链的数据访问方法及装置 - Google Patents

基于属性基加密区块链的数据访问方法及装置 Download PDF

Info

Publication number
CN111800373B
CN111800373B CN201910927661.1A CN201910927661A CN111800373B CN 111800373 B CN111800373 B CN 111800373B CN 201910927661 A CN201910927661 A CN 201910927661A CN 111800373 B CN111800373 B CN 111800373B
Authority
CN
China
Prior art keywords
node
block
attribute
data
access
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
CN201910927661.1A
Other languages
English (en)
Other versions
CN111800373A (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 Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910927661.1A priority Critical patent/CN111800373B/zh
Publication of CN111800373A publication Critical patent/CN111800373A/zh
Application granted granted Critical
Publication of CN111800373B publication Critical patent/CN111800373B/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
    • H04L63/105Multiple levels of security
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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为本发明实施例提供的又一种基于属性基加密区块链的数据访问装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,大数据技术在揭示数据本身属性与规律的同时,也为数据的充分利用带来巨大价值。然而,目前开采的数据资源仅是冰山一角,绝大部分数据分散成一座座数据孤岛,甚至是从未开采的数据荒岛。由于数据是非独占资源,复制成本低,且大数据具有协同作用,即多个数据集作为整体的价值往往大于各个数据集价值的简单叠加。因此,将数据孤岛、数据荒岛开放共享、融合应用以体现大数据的协同作用,可以大幅度提升数据资源的利用价值。与此同时,随着企业安全意识的提升,由于数据的潜在价值未知以及对数据隐私安全的担忧等,数据所有者大多不愿意公开提供数据,并且对内部数据的保护意识日益增强。传统的集中式存储存在较多安全隐患:当数据泄露或者防火墙遭到攻击时将导致数据大范围丢失,对企业内多层级的访问控制和监督管理也非常不利。
根据上述可知:一方面,从行业整体的角度来看,同行业的各个企业之间存在合作与竞争的双重关系,需要各企业共享一部分数据来完成行业整体的规划;另一方面,各个企业需要保护好自身内部的敏感数据。此外,各行业通常收到国家相关部门的监管,如果有效保证监管质量、同时又保护好各自内部的敏感数据,成为急待解决的问题。
区块链因具有数据难篡改、可追溯等特性,成为解决数据共享和敏感数据保护的问题的主要技术。传统的区块链技术中,使用椭圆曲线非对称加密方式,为每个账户分配一个公钥和私钥的密钥对,利用公钥对数据加密,利用公钥对应的私钥对数据解密。
上述非对称加密方式中,企业内不同的员工分别具有自己的账户,每个账户均需要具有私钥,具有私钥即可解密数据,无法解决权限管理问题,无法适应企业内部大量用户对数据的多层级访问控制。
有鉴于此,本发明实施例提供一种基于属性基加密区块链的数据访问方法及装置,通过利用属性基对数据进行加密,实现企业内部大量用户对数据的多层级访问控制的目的。
图1为本发明实施例提供的基于属性基加密区块链的数据访问方法所适用的运行环境示意图。请参照图1,该运行环境至少包括企业区块链服务器A、企业区块链服务器B、行业区块链服务器S、企业节点1~企业节点7、关联节点a和关联节点b。其中,企业节点1~企业节点3属于同一个局域网A,该局域网可以为企业A的局域网,企业节点4~企业节点7属于另一个局域网B,该局域网可以为企业B的局域网。关联节点a位于局域网A,关联节点b位于局域网 B,关联节点a与关联节点b之间建立网络连接。企业节点1~企业节点3分别于企业区块链服务器A建立网络连接,企业节点4~企业节点7分别于企业区块链服务器B建立网络连接,关联节点a与关联节点b分别于行业区块链服务器S建立网络连接,该行业区块链服务器S也称之为行业节点。另外,企业A内的企业节点之间、企业节点与关联节点之间也建立网络连接(图中未示意出);同理,企业B内的企业节点之间、企业节点与关联节点之间也建立网络连接(图中未示意出)。
下面,对企业节点、行业节点、关联节点、企业区块链和行业区块链分别进行详细说明。
首先,企业节点。
本发明实施例中,企业节点用于维护企业区块链服务器上的数据。以企业A为例,企业节点1~企业节点3均可以生成区块,并将区块发送给企业区块链服务器A,企业区块链服务器A负责维护企业A的区块链。例如,企业节点1 的数据接近容量上限时,企业节点1对数据进行对称加密,将加密数据存储至低层的数据库中,并将该加密数据的密钥、索引地址利用属性基加密,并更新至企业区块链服务器A维护的区块链。
需要说明的是,虽然图1中,不同的企业对应不同的企业区块链服务器,然而,本发明实施例并不以此为限制,在其他可行的实现方式中,也可以是多个企业共用一个企业区块链服务器。例如,针对企业A和企业B,仅设置一个企业区块链服务器。
其次,行业节点。
本发明实施例,行业节点也可以理解为行业区块链服务器。行业节点用于维护行业区块链数据,不涉及企业内部的敏感数据。也就是说,行业节点维护的行业区块链中存储的是行业中各个企业共享的数据,该些数据例如为审计方面的数据,各企业将用于审计的数据生成区块发送给行业节点,由行业节点维护行业区块链,便于管理结构对该行业执行监管。
再次,关联节点。
本发明实施例中,每个企业的局域网内存在至少一个关联节点,该关联节点能够与该局域网内的各企业节点进行通信,也能够与该企业对于的企业区块链服务器进行通信。另外,关联节点还可以与行业区块链服务器通信,并且一个企业的关联节点还可以和另外一个企业的关联节点连接。当企业节点向行业区块链服务器发起数据共享请求以请求共享数据时,可以直接向区块链服务器发起数据共享请求。或者,出于安全性考虑,企业节点得现将区块发送至关联节点,由关联节点将区块发送给行业区块链服务器以实现共享。
再次,企业区块链。
本发明实施例中,区块链包括企业区块链和行业区块链两部分,属于平行区块链结构。企业区块链负责保存实体数据的索引地址和密钥,而行业区块链则负责各企业共享的数据。以一个企业对应一个企业区块链为例,该企业区块链中保存来自该企业的所有企业节点的敏感数据的地址索引和密钥,旨在确保企业内部数据安全性与可追溯性。当企业节点缓存中的数据接近容量上限时,该企业节点利用密钥对数据进行加密得到加密数据,将加密数据存储在低层数据库中。同时,企业节点将加密数据的时间戳、区块长度和前一区块的哈希(hash)值作为区块头,利用属性基加密该加密数据的地址索引以及密钥加密得到块,利用区块头和块生成区块,并将区块发送给企业区块链服务器,使得企业区块链服务器存储该区块。其中,属性基为可以访问该区块对应的加密数据的用户的属性,其可以是属性基加密策略树等。由于是企业内部数据访问,因此,这里的属性基主要指企业内部能够访问该区块对应的加密数据的用户的属性。
最后,行业区块链。
本发明实施例中,行业节点用于维护行业区块链,行业节点可以有多个。利用行业区块链,可通过多方计算对跨企业的数据进行统一分析和管理。与企业区块链类似,本发明实施例中,行业区块链也可以不存储实体数据,而是存储加密数据对应的密钥和地址索引,而需要共享的实体数据被加密成加密数据后存储在低层数据库中。例如,企业节点需要共享数据时,利用加密密钥对共享数据进行加密得到加密数据,将加密数据存储在数据库中,并利用属性基对加密数据的密钥和地址索引进行加密得到区块,将区块发送给行业区块链服务器,或者,将区块发送给关联节点,由关联节点将区块发送给行业区块链。其中,属性基为可以访问该区块对应的加密数据的用户的属性,其可以是属性基加密策略树等。由于是企业之间数据共享,因此,这里的属性基主要指其他企业能够访问该区块对应的加密数据的用户的属性。图2为本发明实施例提供的基于属性基加密区块链的数据访问方法中的属性基加密策略树的示意图。
请参照图2,该属性基加密策略树中的叶节点标识属性约束,如信用大于 3级、利用大于500万、负债小于50万。而非叶节点表示与、或等逻辑关系,用来对属性进行筛选控制。图2中,左子树表示对数据共享企业的属性要求,右子树表示对企业中有权限部分的要求。请参照图2,若一个用户想要共享数据,根据左子树可知:该用户必须是企业A或至少满足2条约束条件的企业的用户,约束条件包括:信用大于3级、利用大于500万、负债小于50万。若一个用户想要获得共享数据,则根据右子树可知:该用户必须是部门1或部门2 的用户,也就是说,共享数据的用户利用属性基加密该共享数据的密钥和索引地址时,该属性基是部门1或部门2的用户的属性。
根据上述可知:本发明实施例中,无论是企业区块链还是行业区块链,在数据存储方面,均是将密文存储和脱链存储相结合来共同保证数据的安全性。其中,密文存储是指:将加密数据存储在低层数据库中。以企业区块链为例,各企业需要保护内部重要数据,如财务数据、用户信息数据、核心技术参数等,利用密钥加密后存储在低层数据库。也就是说,采用对称加密方式对数据进行加密并存储在数据库中,以解决非对称加密方式导致密钥管理紊乱,且对于低层大量数据的加密效率不高的问题。脱链存储是指:为了提高区块链的处理速度,避免将实体数据存储在区块链上,因此,本发明实施例采用脱链存储的方式,即在区块链中存储的是加密数据的密钥和索引地址,而非加密数据本身。而且,利用属性基对加密数据的密钥和索引地址进行加密,可以实现层级的访问权限控制。
下面,基于图1,对本发明实施例所涉及的名次进行详细说明。
第一用户:通过第一节点向区块链服务器发送数据访问请求以请求访问数据的用户。
第二用户:通过第二节点向区块链服务器发送区块,以使得区块链服务器将区块存储在区块链中的用户。
第一节点、第二节点和第三节点:
当区块链服务器为企业区块链服务器时,第一节点和第二节点为同一个局域网内的节点,即第一节点和第二节点属于同一个企业。请参照图1,第一节点和第二节点例如为企业节点1和企业节点2,企业节点2向企业区块链服务器发送区块,企业区块链服务器A存储该区域。企业节点1向企业区块链服务器发送数据访问请求,以请求访问企业区块链服务器A维护的企业区块链内的数据。
当区块链服务器为行业区块链服务器时,第一节点和第二节点为不同局域网内的节点,第三节点和第二节点为同一个局域网内的节点,即第一节点和第二节点属于不同的企业,第一节点和第三节点为企业节点,第二节点为关联节点。请参照图1,第一节点和第二节点例如分别为企业节点1和企业节点4,第三节点为关联节点b。企业节点4生成区块并发送给关联节点b,由关联节点b将区块发送给用于维护行业区块链的行业区块链服务器,企业节点1 直接或通过关联节点a向行业区块链服务器S发送数据访问请求,以请求访问行业区块链内的数据。
下面,基于上述的图1和名词解释,对本发明实施例所述的基于属性基加密区块链的数据访问方法进行详细说明。示例性的,可参见图3。
图3是本发明实施例提供的一种基于属性基加密区块链的数据访问方法的流程图。本实施例是从区块链服务器、第一节点、第二节点交互的角度进行详细说明的。本实施例包括:
101、第一节点向区块链服务器发送数据访问请求。
相应的,区块链服务器接收该第一节点发送的数据访问请求。
其中,所述数据访问请求携带第一属性基,第一属性基用于指示请求访问所述第一区块的用户的属性。
例如,请参照图1,第一节点为企业节点A,区块链服务器为企业区块链服务器A,则第一节点发送的数据访问请求用于请求访问企业A的内部数据。实际中,第一节点可以展示一个用户界面,该用户界面展示各种属性供用户选择,用户选中的属性即为第一属性基。该第一属性基表征了发起数据访问请求的用户的属性。
102、区块链服务器根据所述第一属性基判断所述第一节点是否具有访问第一区块的权限,若第一节点具有访问第一区块的权限,则执行步骤103;若第一节点不具有访问第一区块的权限,则执行105。
其中,所述第一属性基用于指示请求访问所述第一区块的用户的属性。
示例性的,区块链服务器维护一个区块索引和区块的对应关系,第一节点发送的数据访问请求中携带一个区块索引以及第一属性基。接收到数据访问请求后,区块链服务器根据区块索引确定出区块,以下称之为第一区块,然后,根据第一属性基判断第一节点是否具有访问权限,即区块链服务器判断通过第一节点发起数据访问请求以访问第一区块的用户的属性是否符合第一区块的访问控制约束条件。这是因为区块链服务器维护的区块链中的区块被上传给区块链服务器时,实际上是第二节点利用第二属性基对密钥和加密密文的索引地址进行加密得到的,若第一属性基符合第一区块的访问控制约束条件,则说明第二节点生成第一区块时,考虑了第一属性基,其中,第二属性基用于指示对所述第一区块具有访问权限的用户的属性。例如,请按照图2,假设第二节点为企业A内的一个节点,该第二节点共享数据时,利用密钥加密该共享数据得到加密数据,将加密数据存储至低层数据库,获取存储该加密数据的地址索引,利用第二属性基加密该地址索引和密钥,该第二属性基例如为部门1和部门2内的员工的属性。加密后得到第一区块并上传至区块链服务器。部门1中的某个员工访问共享数据时,通过部门1内的第一节点向区块链服务器发送数据访问请求,该数据访问请求携带第一属性基,即部分1内的用户的属性。区块链服务器接收到数据访问请求后,发现该第一属性基符合第一区块的访问控制约束条件,则允许部门1的员工访问。
以下若未做特殊说明,则第一节点具有访问第一区块的权限,是指通过第一节点发起数据访问请求的用户具有访问第一区块的权限。
103、区块链服务器利用所述第一属性基获取解密数据。
示例性,区块链服务器利用第一属性基解密第一区块,以得到密钥和地址索引,进而根据密钥和地址索引获得解密数据。
104、区块链服务器向所述第一节点发送所述解密数据。
相应的,第一节点接收该解密数据。
105、区块链服务器向第一节点发送访问拒绝响应。
本发明实施例提供的基于属性基加密区块链的数据访问方法中,区块链服务器接收到第一节点发送的数据访问请求后,判断该数据访问请求携带的第一属性基是否符合第一区块的访问约束条件,若符合,则说明通过第一节点访问第一区块的用户具有访问权限,区块链服务器利用第一属性基获取解密数据并发送给第一节点。该过程中,由于不同用户发送的数据访问请求携带的第一属性基不同,只有在第一属性基符合第一区块的访问约束条件时才能够访问第一区块对应的解密数据,因此,针对复杂的数据,可以实现多层级、细粒度的访问控制。
上述实施例中,若第一节点具有访问第一区块的权限,则区块链服务器利用所述第一属性基获取解密数据时,利用所述第一属性基解密所述第一区块,以得到所述第一区块包含的密钥和索引地址,所述区块链服务器根据所述索引地址,从数据库中获取加密数据,所述区块链服务器利用所述密钥解密所述加密数据,以得到所述解密数据。
示例性的,基于脱链存储,本发明实施例中,加密密文存储在低层数据库,而区块链中仅保存了该加密数据的地址索引和密钥。因此,当第一属性基符合第一区块的访问控制约束条件时,区块链服务器利用该第一属性基解密第一区块,得到第一区块包含的密钥和索引地址,之后,根据索引地址从数据库中获取到加密数据,并利用密钥解密加密数据从而得到解密数据。
采用该种方案,利用对称加密方式对实体数据进行加密,采用脱链方式存储加密数据,仅将密钥和加密数据的地址索引存储在区块中,从而保证了数据的安全性。
本发明实施例中,区块链包括企业区块链和行业区块链,两个可以隔离又可以通过关联节点建立联系。其中,企业区块链用于加密保存企业内部数据的地址索引,行业区块链用于保存行业内跨企业间的共享数据的地址索引。
下面,分别从企业内部的访问控制和企业间的数据安全共享的角度,对本发明实施例所述的基于属性基加密区块链的数据访问方法进行详细说明。示例性的,可参见图4和图5。
图4是本发明实施例提供的另一种基于属性基加密区块链的数据访问方法的流程图。本实施例中,第一节点和第二节点属于同一个局域网,即第一节点和第二节点是同一个企业内的节点,区块链服务器为企业区块链服务器。本实施例包括:
201、认证授权服务器参数初始化。
示例性的,认证授权(certificate authority,CA)服务器根据给定的安全系数,生成主私钥(private)和公共参数(CP)。
202、所述第二节点向CA服务器发送注册请求。
相应的,CA服务器接收该注册请求,该注册请求携带用户名(user identity,UID)和用户属性(user property,UP)集合。
示例性的,该第二节点为用户向企业区块链服务器发送区块的节点。每个需要对向企业区块链服务器发送区块的用户,均需要向CA服务器发起注册,以请求CA服务器为其分配密钥。
203、CA服务器生成密钥。
204、CA服务器向第二节点发送密钥。
示例性的,CA服务器利用注册用户提供的属性集合、用户名等计算密钥,并通过安全的方式反馈给注册用户。其中,安全方式例如为系统邮件等方式,密钥也称之为对称密钥。
需要说明的是,若属性集合中的属性发生变化,则CA服务器在用户注册后更改用户属性集并重新计算密钥。
205、第二节点利用密钥对数据加密,以得到加密数据。
示例性的,第二节点利用步骤204得到的对称密钥,对数据进行加密,得到加密数据,其中,对称密钥例如是随机生成的,该对称密钥表示用sk表示。假设数据用集合D表示,D(d1,d2,d3,……dn)表示数据集合D中有 n个数据(data,d),该数据集合经过对称加密后得到的加密数据将存储至数据库,该加密数据在数据库中的位置用索引地址表示,则加密算法可以表示为公式(1):
SEncsk(D(d1,d2,d3,……dn))→crypt 公式(1)
206、第二节点将加密数据存储至数据库,并根据存储加密数据的位置确定索引地址。
示例性的,获取索引地址可以表示为公式(2):
AddGen(crypt)→address 公式(2)。
其中,crypt表示加密数据,address表示地址索引。
207、第二节点利用第二属性基加密索引地址和密钥,以得到第一区块。
示例性的,第二节点也可称之为数据拥有者,第二节点生成第一区块时,依据访问用户(即第一用户)当前的属性基,以下称之为第二属性制定访问控制策略得到第二属性基,该第二属性基可以用访问控制策略树Gen(UP) →tree。第二节点利用第二属性基对加密数据的索引地址和对称密钥进行加密操作。该加密过程可以用如下公式(3)表示:
AEncTree(address,sk)→crypt 公式(3)
其中,address表示索引地址,sk表示密钥,Tree表示第二属性基,crypt 表示第一区块。
208、第二节点向企业区块链服务器发送第一区块。
相应的,企业区块链服务器接收该第一区块并存储至区块链。
209、第一节点向企业区块链服务器发送数据访问请求。
相应的,企业区块链服务器接收该第一节点发送的数据访问请求。
其中,所述数据访问请求携带第一属性基,该第一属性基用于指示通过所述第一节点请求访问所述第一区块的用户的属性。
210、企业区块链服务器根据所述第一属性基判断所述第一节点是否具有访问第一区块的权限,若第一节点具有访问权限,则执行211;若第一节点不具有访问权限,则执行步骤213。
示例性的,第一节点发送的数据访问请求还携带区块索引,使得企业区块链服务器根据该区块索引确定出第一区块。确定出第一区块后,企业区块链服务器根据第一属性基判断访问用户是否具有访问权限,若第一属性基不满足第一区块的访问约束条件,则说明访问用户没有权限,无法解密第一区块获得密钥sk和索引地址address,从而访问失败;若第一属性基满足第一区块的访问约束条件,则可以解密第一区块获得密钥sk和索引地址address。该解密过程可以用公式(4)表示:
Dec(crypt)→sk,address 公式(4)。
211、企业区块链服务器利用所述第一属性基获取解密数据。
该解密过程可以用公式(5)表示:
SDec(crypt)→D(d1,d2,d3,……dn) 公式(5)。
212、企业区块链服务器向所述第一节点发送所述解密数据。
211、企业区块链服务器向第一节点发送访问拒绝响应。
本实施例中,第一节点和第二节点属于同一个局域网,第二节点向企业区块链服务器发送区块,第一节点请求访问该区块对应的数据。
图5是本发明实施例提供的又一种基于属性基加密区块链的数据访问方法的流程图。本实施例中,区块链服务器为行业区块链服务器,第一节点和第二节点属于不同的局域网,即第一节点和第二节点是不同企业的节点,第三节点和第二节点属于同一个局域网,且第二节点能够与行业区块链服务器通信。本实施例包括:
301、认证授权服务器参数初始化。
示例性的,认证授权(certificate authority,CA)服务器根据给定的安全系数,生成主私钥(private)和公共参数(CP)。
302、第三节点向CA服务器发送注册请求。
相应的,CA服务器接收该注册请求,该注册请求携带用户名(user identity,UID)和用户属性(user property,UP)集合。
示例性的,该第三节点为需要共享数据的节点。每个需要对向行业区块链服务器发送区块的第三节点,均需要向CA服务器发起注册,以请求CA 服务器为其分配密钥。
303、CA服务器生成密钥和令牌。
示例性的,CA服务器为各企业生成一个令牌(token),该token用于指示企业的访问权限和属性等信息。
304、CA服务器向第三节点发送密钥和令牌。
示例性的,CA服务器利用注册用户提供的属性集合、用户名等计算密钥,并通过安全的方式反馈给注册用户。其中,安全方式例如为系统邮件等方式,密钥也称之为对称密钥。
需要说明的是,若属性集合中的属性发生变化,则CA服务器在用户注册后更改用户属性集并重新计算密钥。
305、第三节点利用密钥对数据加密,以得到加密数据。
示例性的,第三节点利用步骤204得到的对称密钥,对数据进行加密,得到加密数据,其中,对称密钥例如是随机生成的,该对称密钥表示用sk表示。假设数据用集合D表示,D(d1,d2,d3,……dn)表示数据集合D中有 n个数据(data,d),该数据集合经过对称加密后得到的加密数据将存储至数据库,该加密数据在数据库中的位置用索引地址表示,则加密算法可以表示为公式(6):
SEncsk(D(d1,d2,d3,……dn))→crypt 公式(6)
306、第三节点将加密数据存储至数据库,并根据存储加密数据的位置确定索引地址。
示例性的,获取索引地址可以表示为公式(7):
AddGen(crypt)→address 公式(7)。
其中,crypt表示加密数据,address表示地址索引。
307、第三节点利用第二属性基加密索引地址和密钥,以得到第一区块。
示例性的,第三节点也可称之为数据拥有者,第三节点生成第一区块时,依据访问用户(即第一用户)当前的属性基,以下称之为第二属性制定访问控制策略得到第二属性基,该第二属性基可以用访问控制策略树Gen(UP′) →tree′。第三节点利用第二属性基对加密数据的索引地址和对称密钥进行加密操作。该加密过程可以用如下公式(8)表示:
AEncTree′(address,sk)→crypt 公式(8)
其中,address表示索引地址,sk表示密钥,Tree′表示第二属性基,crypt 表示第一区块。
需要说明的是,本实施例中的第二属性基和上述图4实施例中的第二属性基不同,不同之处在于:本实施例中,第三节点在对索引地址和密钥进行加密时,除了考虑本企业其他用户的权限外,还考虑其他企业的访问权限,即本实施中,第二属性基主要包括其他企业的用户的属性。
308、第三节点向第二节点发送第一区块。
309、第二节点向行业区块链服务器发送第一区块。
示例性的,一个企业中,只有关联节点可以与行业区块链服务器通信,而普通的企业节点无法与行业区块链服务器交互。因此,需要第三节点(普通的企业节点)将第一区块发送给第二节点(关联节点),由关联节点将第一区块发送给行业区块链服务器。
310、第一节点向行业区块链服务器发送数据访问请求。
相应的,行业区块链服务器接收该第一节点发送的数据访问请求。
其中,数据访问请求携带第一属性基。
311、行业区块链服务器根据所述第一属性基判断所述第一节点是否具有访问第一区块的权限,若第一节点具有访问第一区块的权限,则执行312;若第一节点不具有访问第一区块的权限,则执行步骤314。
示例性的,第一节点发送的数据访问请求还携带区块索引,使得行业区块链服务器根据该区块索引确定出第一区块。确定出第一区块后,行业区块链服务器根据第一属性基判断访问用户是否具有访问权限,若第一属性基不满足第一区块的访问约束条件,则说明访问用户没有权限,无法解密第一区块获得密钥sk和索引地址address,从而访问失败;若第一属性基满足第一区块的访问约束条件,则可以解密第一区块获得密钥sk和索引地址address。该解密过程可以用公式(9)表示:
Dec(crypt)→sk,address 公式(9)。
312、行业区块链服务器利用第一属性基获取解密数据。
该解密过程可以用公式(10)表示:
SDec(crypt)→D(d1,d2,d3,……dn) 公式(10)。
313、行业区块链服务器向第一节点发送解密数据。
314、行业区块链服务器向第一节点发送访问拒绝响应。
本实施例中,第一节点和第三节点属于不同局域网,第二节点将第三节点需要共享的区块发送给行业区块链服务器,第一节点请求访问该区块对应的数据。
需要说明的是,虽然本实施例中,是以第三节点不与行业区块链服务器直接发送第一区块,而是通过第三节点转发为例对本发明实施例所述的基于属性基加密区块链的数据访问方法进行详细说明。然而,本发明实施例并不以此为限制,在其他可行的设计中,也可以是第三节点可以直接将第一区块发送至行业区块链服务器上。
另外,还需要说明的是,第一节点还可以携带自己的token,使得行业区块链服务器根据第三节点发送的token对第一节点的token做身份认证,只有在第一节点身份认证通过后,行业区块链服务器才进一步的利用数据访问请求携带的第属性基解密第一区块。
上述实施例中,均是以脱链存储为例对本发明实施例所述的基于属性基加密区块链的数据访问方法进行说明。然而,本发明实施例并不限制,在其他可行的实现方式中,也可以不脱链存储。示例性的,可参见图6。
图6是本发明实施例提供的又一种基于属性基加密区块链的数据访问方法的流程图。本实施例与图5所示实施例的区别之处在于:图6实施例中采用脱链存储方式,本实施例中,行业区块链服务器维护的行业区块链并未采用脱链存储方式。本实施例包括:
401、认证授权服务器参数初始化。
402、第三节点向CA服务器发送注册请求。
403、CA服务器为第三节点生成令牌。
404、CA服务器向第三节点发送令牌。
405、第三节点利用第二属性基加密共享数据,以得到第一区块。
示例性的,数据用集合D表示,D(d1,d2,d3,……dn)表示数据集合 D中有n个数据(data,d),第三节点利用第二属性基对该数据集合加密,加密过程用公式(11)表示:
EncTree′(D(d1,d2,d3,……dn))→crypt 公式(11);
其中,Tree′表示第二属性基,该第二属性基为考虑了本企业外其他企业的用户属性的属性基。
406、第三节点向行业区块链服务器发送数据共享请求,该数据共享请求携带第一区块和第三节点的令牌。
相应的,行业区块链服务器接收该数据共享请求。该数据共享请求对所有企业可见,并由token中的信息判断其来源。
407、第一节点向行业区块链服务器发送数据访问请求。
相应的,行业区块链服务器接收该第一节点发送的数据访问请求。
其中,数据访问请求携带第一属性基和第一节点的令牌。
408、行业区块链服务器根据所述第一节点的令牌和第三节点的令牌判断第一节点是否能通过身份认证;若第一节点能够通过身份认证,则执行409;若第一节点无法通过身份认证,则执行412。
409、第一属性基判断所述第一节点是否具有访问第一区块的权限,若第一节点具有访问第一区块的权限,则执行410;若第一节点不具有访问第一区块的权限,则执行步骤412。
410、行业区块链服务器利用第一属性基获取解密数据。
该解密过程可以用公式(12)表示:
Dec(crypt,token)→D(d1,d2,d3,……dn) 公式(12)。
需要说明的是,该公式包含了两层含义:第一、利用第一节点的token 和第三节点的token对第一节点进行身份认证,身份认证通过后利用第一节点携带的第一属性基对第一区块进行解密,得到共享数据。
411、行业区块链服务器向第一节点发送解密数据。
412、行业区块链服务器向第一节点发送访问拒绝响应。
本实施例中,第一节点和第三节点属于不同局域网,第三节点将第三节点需要共享的区块发送给行业区块链服务器,第一节点请求访问该区块对应的数据。
需要说明的是,虽然上述实施例中,第三节点将共享数据加密后直接发送给行业区块链服务器,然而,本发明实施例并不以此为限制。在其他可行的设计中,也可以是第三节点无法与行业区块链服务器通信,而是将利用第二属性基加密后的共享数据和第三节点的令牌发送给第三节点的关联节点,由第三节点的关联节点发送给第一节点的关联节点,其中,第三节点的关联节点例如为企业A的关联节点a,第一节点的关联节点例如为企业B的关联节点b。关联节点b自动根据第三节点的token在其内部企业区块链上查询该企业区块链的数据是否对第三节点开放。如果第三节点的token符合交集数据的访问数据控制树要求,则企业B的关联节点b对共享数据进行交集操作,并通过安全的方式如系统邮件等反馈给第三节点,该过程可以用公式(13) 表示:
Intersect(DA,DB)→DA∩B 公式(13)
第三节点完成数据交集操作后,将对包含此token的消息进行全局广播,声明已经完成数据共享(交集)操作,其他企业确认无误后将词结果保存在行业区块链内。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图7为本发明实施例提供的一种基于属性基加密区块链的数据访问装置的结构示意图。本实施例所涉及的基于属性基加密区块链的数据访问装置可以为服务器,也可以为应用于服务器的芯片。该基于属性基加密区块链的数据访问装置可以用于执行上述实施例中服务器的功能。如图7所示,该基于属性基加密区块链的数据访问装置100可以包括:
接收单元11,用于接收第一节点发送的数据访问请求,所述数据访问请求携带第一属性基;
处理单元12,用于根据所述第一属性基判断所述第一节点是否具有访问第一区块的权限,所述第一属性基用于指示通过所述第一节点请求访问所述第一区块的用户的属性,若所述第一节点具有访问第一区块的权限,则利用所述第一属性基获取所述第一区块对应的解密数据;
发送单元13,用于向所述第一节点发送所述解密数据。
一种可行的设计中,所述处理单元12,用于若所述第一节点具有访问第一区块的权限,则利用所述第一属性基解密所述第一区块,以得到所述第一区块包含的密钥和索引地址,根据所述索引地址,从数据库中获取加密数据,利用所述密钥解密所述加密数据,以得到所述解密数据。
一种可行的设计中,所述接收单元11,在接收所述第一节点发送的数据访问请求之前,还用于接收第二节点发送的所述第一区块,所述第一区块是所述第二节点利用第二属性基对所述密钥和所述索引地址加密得到的,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性。
一种可行的设计中,所述第一节点和所述第二节点属于同一个局域网。
一种可行的设计中,所述接收单元11,在接收所述第一节点发送的数据访问请求之前,还接收第二节点发送的所述第一区块,所述第一区块是第三节点利用第二属性基对所述密钥和所述索引地址加密得到的,所述第三节点和所述第二节点属于同一个局域网,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性。
一种可行的设计中,所述第一节点和所述第二节点分别属于不同网段的局域网,所述第二节点与所述第三节点属于同一个局域网。
本申请实施例提供的图像加载装置,可以执行上述实施例中区块链服务器的动作,其实现原理和技术效果类似,在此不再赘述。
图8为本发明实施例提供的另一种基于属性基加密区块链的数据访问装置的结构示意图。本实施例所涉及的基于属性基加密区块链的数据访问装置可以为第一节点,也可以为应用于第一节点的芯片。该基于属性基加密区块链的数据访问装置可以用于执行上述实施例中第一节点的功能。如图8所示,该基于属性基加密区块链的数据访问装置200可以包括:
发送单元21,用于向区块链服务器发送数据访问请求,所述数据访问请求携带第一属性基;
接收单元22,用于接收所述区块链服务器在根据所述第一属性基确定出所述第一节点具有访问第一区块的权限时,发送的所述解密数据。
一种可行的设计中,所述第一区块是第二节点利用第二属性基对所述解密数据对应的加密数据的密钥和索引地址加密得到的,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性。
一种可行的设计中,所述第一节点和所述第二节点属于同一个局域网。
本申请实施例提供的图像加载装置,可以执行上述实施例中第一节点的动作,其实现原理和技术效果类似,在此不再赘述。
图9为本发明实施例提供的又一种基于属性基加密区块链的数据访问装置的结构示意图。本实施例所涉及的基于属性基加密区块链的数据访问装置可以为第二节点,也可以为应用于第二节点的芯片。该基于属性基加密区块链的数据访问装置可以用于执行上述实施例中第二节点的功能。如图9所示,该基于属性基加密区块链的数据访问装置300可以包括:
处理单元31,用于获取利用第二属性基加密的第一区块,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性;
发送单元32,用于向区块链服务器发送所述第一区块。
一种可行的设计中,所述处理单元31,用于利用密钥对数据加密,以得到加密数据,将所述加密数据存储至数据库,并根据存储所述加密数据的位置确定所述索引地址,利用所述第二属性基加密所述索引地址和所述密钥,以得到所述第一区块。
一种可行的设计中,所述第一节点和所述第二节点属于同一个局域网。
一种可行的设计中,所述处理单元31,用于利用所述接收单元接收第三节点发送的所述第一区块,所述第一区块是所述第三节点利用所述第二属性基对所述密钥和所述索引地址加密得到的。
一种可行的设计中,所述第一节点和所述第二节点分别属于不同网段的局域网,所述第二节点与所述第三节点属于同一个局域网。
本申请实施例提供的图像加载装置,可以执行上述实施例中第二节点的动作,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上接收单元实际实现时可以为接收器、发送单元实际实现时可以为发送器。而处理单元可以以软件通过处理元件调用的形式实现;也可以以硬件的形式实现。例如,处理单元可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integrated circuit, ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统 (system-on-a-chip,SOC)的形式实现。
图10为本发明实施例提供的又一种基于属性基加密区块链的数据访问装置的结构示意图。如图10所示,该基于属性基加密区块链的数据访问装置 400包括:
至少一个处理器41和存储器42;
所述存储器42存储计算机执行指令;
所述至少一个处理器41执行所述存储器42存储的计算机执行指令,使得所述至少一个处理器41执行如上服务器执行的基于属性基加密区块链的数据访问方法;或者,执行如上第一节点执行的基于属性基加密区块链的数据访问方法;或者,执行如上第二节点执行的基于属性基加密区块链的数据访问方法。
处理器41的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
可选地,该基于属性基加密区块链的数据访问装置400还包括通信部件 43。其中,处理器41、存储器42以及通信部件43可以通过总线44连接。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上服务器执行的基于属性基加密区块链的数据访问方法;或者,执行如上第一节点执行的基于属性基加密区块链的数据访问方法;或者,执行如上第二节点执行的基于属性基加密区块链的数据访问方法。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在区块链服务器上运行时,使得区块链服务器执行如上应用于区块链服务器的基于属性基加密区块链的数据访问方法;或者,当所述计算机程序产品在第一节点上运行时,使得第一节点执行如上应用于第一节点的基于属性基加密区块链的数据访问方法;或者,当所述计算机程序产品在第二节点上运行时,使得第二节点执行如上应用于第二节点的基于属性基加密区块链的数据访问方法。
在上述的实施例中,应该理解到,所描述的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component,PCI)总线或扩展工业标准体系结构 (extendedIndustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (17)

1.一种基于属性基加密区块链的数据访问方法,其特征在于,包括:
区块链服务器接收第一节点发送的数据访问请求,所述数据访问请求携带第一属性基;
所述区块链服务器根据所述第一属性基判断所述第一节点是否具有访问第一区块的权限,所述第一属性基用于指示通过所述第一节点请求访问所述第一区块的用户的属性;
若所述第一节点具有访问第一区块的权限,则所述区块链服务器利用所述第一属性基解密所述第一区块,获取所述第一区块对应的解密数据;所述第一区块是通过第二属性基加密得到的,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性;
所述区块链服务器向所述第一节点发送所述解密数据。
2.根据权利要求1所述的方法,其特征在于,所述区块链服务器利用所述第一属性基解密所述第一区块,获取所述第一区块对应的解密数据,包括:
所述区块链服务器利用所述第一属性基解密所述第一区块,得到所述第一区块包含的密钥和索引地址;
所述区块链服务器根据所述索引地址,从数据库中获取加密数据;
所述区块链服务器利用所述密钥解密所述加密数据,以得到所述解密数据。
3.根据权利要求1或2所述的方法,其特征在于,所述区块链服务器接收所述第一节点发送的数据访问请求之前,还包括:
所述区块链服务器接收第二节点发送的所述第一区块,所述第一区块是所述第二节点利用第二属性基对密钥和索引地址加密得到的。
4.根据权利要求3所述的方法,其特征在于,所述第一节点和所述第二节点属于同一个局域网。
5.根据权利要求1所述的方法,其特征在于,所述区块链服务器接收所述第一节点发送的数据访问请求之前,还包括:
所述区块链服务器接收第二节点发送的所述第一区块,所述第一区块是第三节点利用第二属性基对密钥和索引地址加密得到的,所述第三节点和所述第二节点属于同一个局域网。
6.根据权利要求5所述的方法,其特征在于,所述第一节点和所述第二节点分别属于不同网段的局域网,所述第二节点与所述第三节点属于同一个局域网。
7.一种基于属性基加密区块链的数据访问方法,其特征在于,包括:
第一节点向区块链服务器发送数据访问请求,所述数据访问请求携带第一属性基;所述第一属性基用于指示通过所述第一节点请求访问第一区块的用户的属性;
所述第一节点接收所述区块链服务器在根据所述第一属性基确定出所述第一节点具有访问第一区块的权限时发送的解密数据;所述解密数据是所述区块链服务器通过所述第一属性基对所述第一区块进行解密得到的,所述第一区块是通过第二属性基加密得到的,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性。
8.根据权利要求7所述的方法,其特征在于,
所述第一区块是第二节点利用第二属性基对所述解密数据对应的加密数据的密钥和索引地址加密得到的。
9.根据权利要求8所述的方法,其特征在于,所述第一节点和所述第二节点属于同一个局域网。
10.一种基于属性基加密区块链的数据访问方法,其特征在于,包括:
第二节点获取利用第二属性基加密的第一区块,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性;
所述第二节点向区块链服务器发送所述第一区块,以使所述区块链服务器在根据第一节点的数据访问请求中的第一属性基确定出所述第一节点具有访问所述第一区块的权限时,根据所述第一属性基解密所述第一区块,得到所述第一区块对应的解密数据,所述第一属性基用于指示通过所述第一节点请求访问所述第一区块的用户的属性。
11.根据权利要求10所述的方法,其特征在于,所述第二节点获取利用第二属性基加密的所述第一区块,包括:
所述第二节点利用密钥对数据加密,以得到加密数据;
所述第二节点将所述加密数据存储至数据库,并根据存储所述加密数据的位置确定索引地址;
所述第二节点利用所述第二属性基加密所述索引地址和所述密钥,以得到所述第一区块。
12.根据权利要求11所述的方法,其特征在于,所述第一节点和所述第二节点属于同一个局域网,所述第一节点是用于向区块链服务器发送数据访问请求的节点。
13.根据权利要求10所述的方法,其特征在于,所述第二节点获取所述第一区块,包括:
所述第二节点接收第三节点发送的所述第一区块,所述第一区块是所述第三节点利用所述第二属性基对密钥和索引地址加密得到的。
14.根据权利要求13所述的方法,其特征在于,所述第一节点和所述第二节点分别属于不同网段的局域网,所述第二节点与所述第三节点属于同一个局域网,所述第一节点是用于向区块链服务器发送数据访问请求的节点。
15.一种基于属性基加密区块链的数据访问装置,其特征在于,包括:
接收单元,用于接收第一节点发送的数据访问请求,所述数据访问请求携带第一属性基;
处理单元,用于根据所述第一属性基判断所述第一节点是否具有访问第一区块的权限,所述第一属性基用于指示请求访问所述第一区块的用户的属性,若所述第一节点具有访问第一区块的权限,则利用所述第一属性基解密所述第一区块,获取所述第一区块对应的解密数据;所述第一区块是通过第二属性基加密得到的,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性;
发送单元,用于向所述第一节点发送所述解密数据。
16.一种基于属性基加密区块链的数据访问装置,其特征在于,该装置设置在第一节点上,该装置包括:
发送单元,用于向区块链服务器发送数据访问请求,所述数据访问请求携带第一属性基;所述第一属性基用于指示通过所述第一节点请求访问第一区块的用户的属性;
接收单元,用于接收所述区块链服务器在根据所述第一属性基确定出所述第一节点具有访问第一区块的权限时发送的解密数据;所述解密数据是所述区块链服务器通过所述第一属性基对所述第一区块进行解密得到的,所述第一区块是通过第二属性基加密得到的,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性。
17.一种基于属性基加密区块链的数据访问装置,其特征在于,该装置设置在第二节点上,该装置包括:
处理单元,用于利用第二属性基加密的第一区块,所述第二属性基用于指示对所述第一区块具有访问权限的用户的属性;
发送单元,用于向区块链服务器发送所述第一区块,以使所述区块链服务器在根据第一节点的数据访问请求中的第一属性基确定出所述第一节点具有访问所述第一区块的权限时,根据所述第一属性基解密所述第一区块,得到所述第一区块对应的解密数据,所述第一属性基用于指示通过所述第一节点请求访问所述第一区块的用户的属性。
CN201910927661.1A 2019-09-27 2019-09-27 基于属性基加密区块链的数据访问方法及装置 Active CN111800373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910927661.1A CN111800373B (zh) 2019-09-27 2019-09-27 基于属性基加密区块链的数据访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910927661.1A CN111800373B (zh) 2019-09-27 2019-09-27 基于属性基加密区块链的数据访问方法及装置

Publications (2)

Publication Number Publication Date
CN111800373A CN111800373A (zh) 2020-10-20
CN111800373B true CN111800373B (zh) 2022-08-12

Family

ID=72805426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910927661.1A Active CN111800373B (zh) 2019-09-27 2019-09-27 基于属性基加密区块链的数据访问方法及装置

Country Status (1)

Country Link
CN (1) CN111800373B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113469692A (zh) * 2021-07-26 2021-10-01 永旗(北京)科技有限公司 一种基于区块链的物联网数据交易方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632268A (zh) * 2018-04-28 2018-10-09 腾讯科技(深圳)有限公司 区块链访问的鉴权方法和装置、存储介质、电子装置
CN109327314A (zh) * 2018-11-08 2019-02-12 阿里巴巴集团控股有限公司 业务数据的访问方法、装置、电子设备和系统
CN110060111A (zh) * 2018-12-12 2019-07-26 阿里巴巴集团控股有限公司 基于区块链的发票访问方法和装置、电子设备
CN110166411A (zh) * 2018-02-13 2019-08-23 华为技术有限公司 一种数据传输方法、装置和网络节点

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166411A (zh) * 2018-02-13 2019-08-23 华为技术有限公司 一种数据传输方法、装置和网络节点
CN108632268A (zh) * 2018-04-28 2018-10-09 腾讯科技(深圳)有限公司 区块链访问的鉴权方法和装置、存储介质、电子装置
CN109327314A (zh) * 2018-11-08 2019-02-12 阿里巴巴集团控股有限公司 业务数据的访问方法、装置、电子设备和系统
CN110060111A (zh) * 2018-12-12 2019-07-26 阿里巴巴集团控股有限公司 基于区块链的发票访问方法和装置、电子设备

Also Published As

Publication number Publication date
CN111800373A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
Sun Privacy protection and data security in cloud computing: a survey, challenges, and solutions
US11271910B2 (en) Techniques for shared private data objects in a trusted execution environment
EP3673608B1 (en) Data storage method, data query method and apparatuses
CN111709056B (zh) 基于区块链的数据共享方法及系统
US11153092B2 (en) Dynamic access control on blockchain
US11451392B2 (en) Token-based secure data management
US10348696B2 (en) Cloud key escrow system
US8625802B2 (en) Methods, devices, and media for secure key management in a non-secured, distributed, virtualized environment with applications to cloud-computing security and management
EP2890084B1 (en) A data securing system and method
RU2501081C2 (ru) Многофакторная защита контента
KR102008885B1 (ko) 데이터 관리 및 큐레이션 시스템
KR20210040078A (ko) 안전한 보관 서비스를 위한 시스템 및 방법
Gajmal et al. Blockchain-based access control and data sharing mechanism in cloud decentralized storage system
US20230421543A1 (en) Method, apparatus, and computer-readable medium for secured data transfer over a decentrlaized computer network
CN111800373B (zh) 基于属性基加密区块链的数据访问方法及装置
Wijesekara A Literature Review on Access Control in Networking Employing Blockchain
CN114239043A (zh) 一种基于区块链技术构建的共享加密存储系统
Li Data protection of accounting information based on big data and cloud computing
Ota et al. A Decentralized Super App
Abouali et al. Patient full control over secured medical records transfer framework based on blockchain
US20240070309A1 (en) System and method for efficient cryptographically-assured data access management for advanced data access policies
CN116527404B (zh) 基于区块链的数字藏品定向分享方法及系统
Alsubaih et al. Authorization as a service in cloud environments
Bagaeen et al. Storage as a service (staas) security challenges and solutions in cloud computing environment: An evaluation review
Edwin et al. Fragmentation and Dynamic Replication Model in Multicloud by Data Hosting with Secured Data Sharing

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