CN113098696A - 一种区块链数据写入、访问方法及装置 - Google Patents

一种区块链数据写入、访问方法及装置 Download PDF

Info

Publication number
CN113098696A
CN113098696A CN202110634778.8A CN202110634778A CN113098696A CN 113098696 A CN113098696 A CN 113098696A CN 202110634778 A CN202110634778 A CN 202110634778A CN 113098696 A CN113098696 A CN 113098696A
Authority
CN
China
Prior art keywords
data
target
target ciphertext
key
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.)
Pending
Application number
CN202110634778.8A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202110634778.8A priority Critical patent/CN113098696A/zh
Publication of CN113098696A publication Critical patent/CN113098696A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3247Cryptographic 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 involving digital signatures
    • H04L9/3255Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例中提供一种区块链数据写入、访问方法及装置,用于提高区块链数据存储和访问的安全性,同时可节约系统带宽。所述方法包括:各个共识节点分别获得数据所有方发送的数据写入请求;各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;各个共识节点对所述目标密文数据进行共识处理;在确定对所述目标密文数据达成共识后,确定所述目标密文数据对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额。

Description

一种区块链数据写入、访问方法及装置
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链数据写入、访问方法及装置。
背景技术
区块链是一种利用密码学方法、计算机网络和分布式存储等技术综合实现的复合型技术,区块链提供一种分布式的数据共享模式,具有去中心化(点对点网络通信)、不可篡改、全程留痕、集体维护、公开透明等特点。基于区块链的这些特性,用户可以将数据存储在区块链上,以通过区块链实现对数据的共享。而用户数据一般涉及到用户自身隐私,所以有必要对区块链上存储的数据进行有效保护,以确保数据的安全。
为确保区块链上数据的安全,需要在数据存储、数据访问等过程中进行安全控制,所以,如何提高区块链上数据存储和访问的安全性是需要考虑的问题。
发明内容
本申请实施例中提供了一种区块链数据写入、访问方法及装置,主要用于提高区块链上数据存储和数据访问的安全性。
根据本申请实施例的第一方面,提供一种区块链数据写入方法,所述方法包括:
各个共识节点分别获得数据所有方发送的数据写入请求;其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;
所述各个共识节点对所述目标密文数据进行共识处理;
在确定对所述目标密文数据达成共识后,所述各个共识节点确定所述目标密文数据对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额。
在一种可能的实现方式中,各个数据写入请求中还包括密钥份额对应的密钥份额签名,所述各个共识节点分别保存获得的目标密文数据、数据认证信息和密钥份额,包括:
所述各个共识节点分别将获得的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名进行保存。
在一种可能的实现方式中,各个数据写入请求中还包括访问准入条件信息;在确定对所述目标密文数据达成共识后,所述各个共识节点对所述目标密文数据进行认证处理以得到对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额,包括:
在确定对所述目标密文数据和所述访问准入条件信息均达成共识后,所述各个共识节点对所述目标密文数据进行认证处理以得到对应的数据认证信息,并分别将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存;或者,
在确定对所述目标密文数据达成共识后,所述各个共识节点对所述目标密文数据进行认证处理以得到对应的数据认证信息,并分别将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存。
在一种可能的实现方式中,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
在一种可能的实现方式中,在所述各个共识节点分别保存获得的目标密文数据、数据认证信息和密钥份额之后,所述方法还包括:
所述各个共识节点分别向所述数据所有方发送成功写入指示信息;
所述数据所有方在接收到的成功写入指示信息超过预定数量时,确定所述目标密文数据成功写入。
在一种可能的实现方式中,所述各个共识节点分别将获得的密钥份额保存在所述各个共识节点的可信执行环境中。
根据本申请实施例的第二方面,提供了一种区块链数据访问方法,所述方法包括:
各个共识节点获得数据访问方发起的数据访问请求,其中,所述数据访问请求中包括用于指示目标密文数据的目标数据标识,所述各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,所述目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的,各数据认证信息是所述各个共识节点分别确定的所述目标密文数据对应的认证信息;
所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方,以用于所述数据访问方根据预定数量且不同的密钥份额确定所述目标密钥以及根据所述数据认证信息对所述目标密文数据进行认证,并在所述目标密文数据认证通过时根据所述目标密钥对所述目标密文数据解密。
在一种可能的实现方式中,所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方,包括:
所述目标共识节点将本地存储的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名发送给所述数据访问方,以及所述其余共识节点将本地存储的密钥份额和对应的密钥份额签名发送给所述数据访问方。
在一种可能的实现方式中,所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方,包括:
所述目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述其余共识节点将本地存储的数据认证信息和密钥份额发送给所述数据访问方。
在一种可能的实现方式中,所述数据访问请求中还包括所述数据访问方的待验证权限信息和权限签名,在所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方之前,所述方法还包括:
所述各个共识节点根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;其中,根据所述权限签名对所述待验证权限信息进行有效性验证,并在所述待验证权限信息的有效性验证通过时,根据所述待验证权限信息确定所述数据访问方的访问权限验证通过。
在一种可能的实现方式中,根据所述待验证权限信息确定所述数据访问方的访问权限验证通过,包括:
将所述待验证权限信息与访问准入条件信息进行匹配,其中,所述访问准入条件信息是由所述数据所有方确定的;
若匹配结果为设定匹配结果,则确定所述数据访问方的访问权限验证通过。
在一种可能的实现方式中,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
在一种可能的实现方式中,所述各个共识节点根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过,包括:
所述各个共识节点分别根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;或者,
所述各个共识节点联合对所述待验证权限信息和所述权限签名进行共识处理,并在达成共识后确定所述数据访问方的访问权限验证通过。
在一种可能的实现方式中,在所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方之后,所述方法还包括:
所述各个共识节点获得所述数据访问方发起的数据重传请求,其中,所述数据重传请求中包括所述目标数据标识,所述数据重传请求是所述数据访问方在确定对所述目标密文数据解密失败时重新发起的数据访问请求;
所述各个共识节点分别将本地存储的目标密文数据发送给所述数据访问方,或者,所述各个共识节点分别将本地存储的目标密文数据和数据认证信息发送给所述数据访问方,或者,所述各个共识节点分别将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方。
在一种可能的实现方式中,所述目标共识节点是所述各个共识节点中预先确定的共识节点;或者,所述目标共识节点是所述数据所有方指定的共识节点。
根据本申请实施例的第三方面,提供了一种区块链数据写入装置,所述装置配置于各个共识节点中,所述装置包括:
获得模块,用于获得数据所有方发送的数据写入请求;其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;
共识模块,用于对所述目标密文数据进行共识处理;
认证模块,用于在确定对所述目标密文数据达成共识后,确定所述目标密文数据对应的数据认证信息;
存储模块,用于保存获得的目标密文数据、数据认证信息和密钥份额。
在一种可能的实现方式中,各个数据写入请求中还包括密钥份额对应的密钥份额签名,所述存储模块用于:
将获得的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名进行保存。
在一种可能的实现方式中,各个数据写入请求中还包括访问准入条件信息,所述认证模块用于在确定对所述目标密文数据和所述访问准入条件信息均达成共识后,对所述目标密文数据进行认证处理以得到对应的数据认证信息;所述存储模块用于将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存;或者,
各个数据写入请求中还包括访问准入条件信息,所述认证模块用于在确定对所述目标密文数据达成共识后,对所述目标密文数据进行认证处理以得到对应的数据认证信息;所述存储模块用于将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存。
在一种可能的实现方式中,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
在一种可能的实现方式中,所述装置还包括发送模块,用于:
在存储模块保存获得的目标密文数据、数据认证信息和密钥份额之后,向所述数据所有方发送成功写入指示信息。
根据本申请实施例的第四方面,提供了一种区块链数据访问装置,所述装置配置于各个共识节点中,所述装置包括:
获得模块,用于获得数据访问方发起的数据访问请求,其中,所述数据访问请求中包括用于指示目标密文数据的目标数据标识,所述各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,所述目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的,各数据认证信息是所述各个共识节点分别确定的所述目标密文数据对应的认证信息;
发送模块,用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方或者将本地存储的密钥份额发送给所述数据访问方,以用于所述数据访问方根据预定数量且不同的密钥份额确定所述目标密钥以及根据所述数据认证信息对所述目标密文数据进行认证,并在所述目标密文数据认证通过时根据所述目标密钥对所述目标密文数据解密;
其中,所述各个共识节点中的目标共识节点中的发送模块用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,所述各个共识节点中的其余共识节点中的发送模块用于将本地存储的密钥份额发送给所述数据访问方。
在一种可能的实现方式中,所述各个共识节点中的目标共识节点中的发送模块用于:将本地存储的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名发送给所述数据访问方;
所述各个共识节点中的其余共识节点中的发送模块用于:将本地存储的密钥份额和对应的密钥份额签名发送给所述数据访问方。
在一种可能的实现方式中,所述各个共识节点中的其余共识节点中的发送模块用于:
将本地存储的数据认证信息和密钥份额发送给所述数据访问方。
在一种可能的实现方式中,所述数据访问请求中还包括所述数据访问方的待验证权限信息和权限签名,所述装置还包括权限验证模块,用于:
在所述发送模块将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方或者将本地存储的密钥份额发送给所述数据访问方之前,根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;其中,根据所述权限签名对所述待验证权限信息进行有效性验证,并在所述待验证权限信息的有效性验证通过时,根据所述待验证权限信息确定所述数据访问方的访问权限验证通过。
在一种可能的实现方式中,所述权限验证模块用于:
将所述待验证权限信息与访问准入条件信息进行匹配,其中,所述访问准入条件信息是由所述数据所有方写入的;
若匹配结果为设定匹配结果,则确定所述数据访问方的访问权限验证通过。
在一种可能的实现方式中,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
在一种可能的实现方式中,所述权限验证模块用于:
根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;或者,
对所述待验证权限信息和所述权限签名进行共识处理,并在达成共识后确定所述数据访问方的访问权限验证通过。
在一种可能的实现方式中,所述获得模块还用于:
在所述发送模块将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方或者将本地存储的密钥份额发送给所述数据访问方之后,获得所述数据访问方发起的数据重传请求,其中,所述数据重传请求中包括所述目标数据标识,所述数据重传请求是所述数据访问方在确定对所述目标密文数据解密失败时重新发起的数据访问请求;
所述发送模块还用于:
将本地存储的目标密文数据发送给所述数据访问方,或者,将本地存储的目标密文数据和数据认证信息发送给所述数据访问方,或者,将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方。
根据本申请实施例的第五方面,提供了一种区块链系统,包括至少两个共识节点,其中:
各个共识节点用于分别获得数据所有方发送的数据写入请求,其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;并对所述目标密文数据进行共识处理;以及在确定对所述目标密文数据达成共识后,确定所述目标密文数据对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额。
根据本申请实施例的第六方面,提供了一种区块链系统,包括至少两个共识节点,其中:
各个共识节点用于获得数据访问方发起的数据访问请求,其中,所述数据访问请求中包括用于指示目标密文数据的目标数据标识,所述各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,所述目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的,各数据认证信息是所述各个共识节点分别确定的所述目标密文数据对应的认证信息;
所述各个共识节点中的目标共识节点用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点用于将本地存储的密钥份额发送给所述数据访问方,以用于所述数据访问方根据预定数量且不同的密钥份额确定所述目标密钥以及根据所述数据认证信息对所述目标密文数据进行认证,并在所述目标密文数据认证通过时根据所述目标密钥对所述目标密文数据解密。
根据本申请实施例的第七方面,提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可读程序,所述计算机可读程序用于执行根据上述的第一方面中描述的方法。
根据本申请实施例的第八方面,提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可读程序,所述计算机可读程序用于执行根据上述的第二方面中描述的方法。
根据本申请实施例的第九方面,提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括上述的第一方面中描述的方法。
根据本申请实施例的第十方面,提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括上述的第二方面中描述的方法。
采用根据本申请实施例的区块链数据写入、访问方法及装置,数据所有方采用对称加密方式以目标密钥对明文数据进行加密以得到对应的目标密文数据,并采用秘密共享机制将目标密钥拆分成多个相互独立的密钥份额,再将目标密文数据和拆分得到的密钥份额一并上链存储到共识系统中的各个共识节点中,采用秘密共享的密码技术,即使个别密钥份额被恶意窃取或者篡改,也并不影响对目标密钥的准确恢复,提高了目标密钥在区块链系统中的安全性,从而也就提升了目标密文数据的安全性。各个共识节点在得到目标密文数据后,可再分别确定用于对该目标密文数据进行可靠性校验的数据认证信息,进而将该目标密文数据和数据认证信息对应关联存储在本地,以便于可通过数据认证信息对目标密文数据进行可靠性校验,以尽量确保目标密文数据的完整性和有效性,提高目标密文数据的安全。
进而,数据访问方在访问链上的目标密文数据时,在通过分散的多个密钥份额对目标密文数据进行有效保护的基础上,也可确保数据访问方能够通过一定数量的密钥份额能够恢复出正确的目标密钥,从而实现对目标密文数据的有效、安全的访问,提高了对区块链上存储数据访问的安全性,同时,由于各个共识节点中均保存有目标密文数据和其对应的数据认证信息,这样可仅由部分共识节点向数据访问方发送目标密文数据和数据认证信息,以减少目标密文数据和数据认证信息的重复传输,这样,数据访问方可通过数据认证信息对目标密文数据进行可靠性校验确保目标密文数据安全的基础上,还可降低整个区块链系统中的数据传输量,进而减少系统带宽的占用,提高系统带宽的利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例适用的一种应用场景的示意图;
图2为本申请实施例中的区块链数据写入方法的流程示意图;
图3为本申请实施例中的区块链数据访问方法的流程示意图;
图4为本申请实施例中的数据所有方向区块链系统请求写入数据的过程示意图;
图5为本申请实施例中的数据访问方向区块链系统请求读取数据的过程示意图;
图6为本申请实施例中的区块链数据写入装置的结构框图;
图7为本申请实施例中的区块链数据访问装置的结构框图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例的技术方案可应用于区块链系统中,通过该技术方案,在向区块链系统写入数据以及对区块链上的数据进行访问时可进行一定程度的安全控制,进而可提高区块链上数据的安全性。
为更好地理解本申请实施例提供的技术方案,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
请参见图1所示,图1为本申请实施例的技术方案适用的一种应用场景,其中包括数据所有方、区块链系统、数据访问方,数据所有方和数据访问方可以是客户端、终端设备,也可以是可信认证中心或共识协议上层程序等。数据所有方和数据访问方均可与区块链系统进行通信,数据所有方可将希望存储的数据发送给区块链系统以实现数据的上链存储,数据访问方可以向区块链系统请求读取期望的数据,例如希望读取前述的数据所有方上链存储的数据,或者希望读取该数据访问方自身之前上链存储的数据,从而实现分享数据的目的。
图1中的区块链系统可以理解为是区块链网络,该区块链网络是一个对等通信的网络,区块链系统中包括多个可互相通信的区块链节点,区块链节点可以是例如服务器等物理节点,或者可以是逻辑节点,本申请实施例不做限制。区块链系统中的多个区块链节点可以组成共识网络,而构成共识网络的各个区块链节点又可称作共识节点,共识网络可采用特定的共识算法对信息进行共识处理以达成共识。区块链系统具有去中心化、不可篡改、全程留痕、集体维护、公开透明等特点,随着区块链技术的发展,其在各种领域的应用越来越广泛。而在实际应用中,对于涉及一些业务场景的数据需要进行安全保护,以保证用户的利益。
图1中区块链系统中的各个节点可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例不做限制。
为便于理解,以下先结合图2对数据上链的过程进行说明,其中,数据上链的过程即为数据所有方将需要存储的数据写入到区块链系统进行存储的过程。图2为本申请实施例提供的区块链数据写入方法的流程示意图,图2中的区块链系统可包括多个区块链节点,这些区块链节点可组成共识网络,故可将这些区块链节点称作共识节点,为简化图示,在图2中只示出了共识节点1和共识节点n这两个共识节点,可理解的是,该区块链系统可包括更多的共识节点,例如包括n个共识节点,n为大于或等于2的整数。图2所示的流程描述如下。
S201:数据所有方以目标密钥对明文数据进行对称加密处理,得到对应的目标密文数据。
例如,数据所有方需要将某条交易数据上链存储,为了确保该交易数据的安全,在上链之前可对该交易数据进行加密处理,本申请实施例中可采用对称加密算法对该交易数据进行对称加密处理,可以将该交易数据理解为是上述的明文数据,将加密用的密钥理解为上述的目标密钥,以及将加密处理得到的加密数据理理解为上述的目标密文数据。
其中,数据所有方可以是任一经授权客户、可信认证中心或共识协议上层程序,本申请实施例不做限制。
S202:数据所有方通过秘密共享机制将目标密钥拆分为至少两个密钥份额。
也就是说,可以将目标密钥拆分为多个密钥份额,即将目标密钥按照特定的算法进行割裂处理,而拆分得到的各个密钥份额均是不同的。
在本申请实施例中,采用了秘密共享技术来实现对目标密钥的拆分,以下对秘密共享技术进行简单介绍。
秘密共享技术的思想是将秘密以适当的方式拆分,拆分后得到的每一个份额可由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密信息。更重要的是,当其中任何相应范围内参与者出现问题时,秘密仍可以完整恢复。秘密共享是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。秘密共享中有两个参数,例如以t,n表示这两个参数,则可以称作(t,n)秘密共享,其中的n表示将秘密拆分成的份额的数量,t表示至少要得到t个份额才可恢复出秘密,而任意少于t个份额是无法得到秘密的任何相关信息。具体理解如下:
假设将秘密secret拆分为n 个份额的秘密份额,那么通过任意t(2≤t≤n)个或更多个秘密份额就可以恢复得到秘密secret,而任意少于t个的一个或多个秘密份额是不能得到关于秘密secret的任何有用信息的。
在实际中,根据t和n的选择,可权衡安全性和可靠性。一般来说,t值越大,可提供高安全性和低可靠性;t值越低,可提供低安全性和高可靠性。
根据上面介绍的秘密共享技术,例如将目标密钥拆分为了对应的n(n为大于或等于2的整数)个密钥份额,拆分得到的n个密钥份额例如是:K1、K2、 K3、……、Kn。
本申请实施例中,数据所有方采用秘密共享机制将目标密钥拆成密钥份额的数量可以根据区块链系统中的共识网络中所包括的共识节点的数量来确定,例如,可确定密钥份额的数量与共识节点的数量相同,即有多少个共识节点即得到多少个密钥份额,又例如,可确定密钥份额的数量略多于共识节点的数量,这里所说的“略多于”是指多于共识节点数量的设定值,设定值例如是1或者2或者3等较小的整数,这里的设定值也与秘密共享技术中的t值有关,这样可确保各个共识节点均能获得一个密钥份额且获得的密钥份额彼此之间是不同的,但是又能确保从共识节点中获得足够数量且相互不同的密钥份额以准确地恢复出目标密钥。
举例来说,区块链系统中的共识网络包括20个共识节点,那么数据所有方可将目标密钥拆分成20个密钥份额,这样可以将这20个密钥份额分别对应发送给各个共识节点,后续可尽量从各个共识节点处获得这20个密钥份额,即使其中有个别共识节点失效,也可得到足够多的密钥份额而恢复出目标密钥,以实现对目标密文数据的准确解密。
又例如,区块链系统中的共识网络包括20个共识节点,那么数据所有方可将目标密钥拆分成21个密钥份额,这样可以将得到的密钥份额中的20个密钥分别发送给各个共识节点,后续可从各个共识节点处获得这20个密钥份额,即使未能获得全部密钥(全部密钥是21个),以及即使其中有个别共识节点失效而无法正确获得该共识节点所保管的密钥份额,也可得到足够多的密钥份额而恢复出目标密钥,以实现对目标密文数据的准确解密。
S203:数据所有方对每个密钥份额进行签名处理,得到每个密钥份额对应的密钥份额签名。
对密钥份额进行签名处理的方式可以采用一些通用的签名方式,例如可以先对密钥份额采用哈希算法计算数字摘要,然后采用非对称密钥中的私钥对该数字摘要进行加密,加密后的数字摘要就是该密钥份额的签名,称作密钥份额签名。例如,密钥份额K1、K2、K3、……、Kn对应的密钥份额签名分别以Sig1、Sig2、Sig3、……、Sign表示。
S204:数据所有方确定目标密文数据对应的访问准入条件信息。
其中,访问准入条件信息是用于对目标密文数据进行访问控制的筛选条件信息,在具体实施过程中,访问准入条件信息可以是访问控制列表(Access Control List,ACL),例如可以是数据所有方指定的允许或者不允许访问目标密文数据的用户标识、客户端标识、设备标识等黑名单或白名单,或者,访问准入条件信息也可以是特定的访问控制条件,可以理解为是数据所有方设定的允许或者不允许访问目标密文数据的限制条件,例如:允许35岁~50岁的女性访问目标密文数据,其中的“35岁~50岁的女性”即可理解为是访问控制条件,或者,不允许年龄小于20岁或者年龄大于65岁的人群访问目标密文数据,其中的“年龄小于20岁或者年龄大于65岁的人群”即可理解为是访问控制条件。
在实际中,用户可能会丢失自身加密获得的加密数据或者忘记自己加密数据的加密密钥,例如上述的目标密文数据,数据所有方在本地利用目标密钥对目标明文数据进行加密得到目标密文数据之后,可能会将目标密文数据丢失(例如误删或者被窃取)或者忘记了目标密钥,例如在丢失了目标密文数据后但又想要再获得对应的目标明文数据,此时使知晓目标密钥也无法执行解密操作,又例如在忘记了目标密钥却又想要获得目标明文数据或者希望为目标密文数据重置密钥时,由于没有加密用的目标密钥所以也就无法执行这些操作,可见,不便于用户对加密数据进行管理。鉴于此,本申请实施例中,数据所有方在设置针对目标密文数据的访问准入条件信息时可以允许数据所有方自身也能够访问,为此,可以在访问准入条件信息中设置允许该数据所有方访问目标密文数据的条件信息,例如可以将数据所有方的用户标识等身份信息添加到访问准入条件信息中,这样,在将目标密文数据上链存储到区块链系统后,数据所有方可作为访问者再向区块链系统请求读取目标密文数据以获得目标密文数据和对应的多个密钥份额,即可从区块链系统中重新获得目标密文数据和多个密钥份额,进而利用根据多个密钥份额恢复出的目标密钥对目标密文数据进行解密以得到对应的目标明文数据,或者可以根据恢复出的目标密钥对目标密文数据进行密钥重置处理,从而,可方便数据所有方自身对目标密文数据进行链上访问和二次管理等。
S205:数据所有方根据共识节点的数量生成数据写入请求。
具体来说,有多少个共识节点即可生成相同数量的数据写入请求,即数据写入请求的数量与共识节点的数量是相同的。如前介绍的,密钥份额的数量可能是等于或者大于共识节点的总数量的,考虑到实际情形,当密钥份额的数量与共识节点的总数量相同,例如都为20个,那么可使用全部的密钥份额来生成对应相同数量的数据写入请求,这样生成的20个数据写入请求中均包括一个密钥份额,且这20个数据写入请求中分别包括的密钥份额是彼此不同的;当密钥份额的数量大于共识节点的总数量,例如密钥份额是21个且共识节点的总数量是20个,那么可使用部分的密钥份额(即使用其中的随机的20个密钥份额)来对应生成20个数据写入请求,这样生成的20个数据写入请求中均包括一个密钥份额,且这20个数据写入请求中分别包括的密钥份额是彼此不同的。也就是说,数据所有方可生成与共识节点的总数量相同的数据写入请求,且各个数据写入请求中所携带的密钥份额是彼此不同的。
每个数据写入请求中除了上述提到的密钥份额,还包括目标密文数据,此外,还可包括访问准入条件信息和/或密钥份额签名,每个数据写入请求中所包括的密钥份额以及对应的密钥份额签名是不同的。也就是说,各个数据写入请求包括的相同部分为目标密文数据和访问准入条件信息,而包括的不同部分则是密钥份额和对应的密钥份额签名。
另外需要说明的是,上述S203和S204可以是可选的步骤,所以在图2中是以虚线表示的。也就是说,在具体实施过程中可能会执行S203和/或S204,也可能并不会执行S203和/或S204。那么对应的,若未执行S203,那么数据所有方生成的数据写入请求中也就并不包含密钥份额签名,以及,若未执行S204,那么数据所有方生成的数据写入请求中也就并不包含访问准入条件信息,在实施时可灵活选择S203和S204的实施,进而对数据写入请求中所包括的信息进行灵活配置,本申请实施例并不做限制。
S206:数据所有方将各个数据写入请求发送给各个共识节点,对应的,各个共识节点分别获得数据所有方发送的数据写入请求。
如前所述的,数据所有方生成的数据写入请求的数量与共识节点的总数量是相同的,这样,数据所有方可将每个数据写入请求发送给不同的共识节点,如此,每个共识节点获得的是不同的密钥份额,这样可以将目标密钥对应的各个密钥份额分布式地存储在区块链系统中的不同节点中,以实现对密钥份额的分布式存储,这样,即使有个别共识节点已经被敌手控制(例如被恶意者攻击),但是该共识节点由于无法获得足够多的(例如前述的t个)密钥份额也是无法恢复出目标密钥的,所以这样可以较大程度上确保目标密钥的安全性。
继续前述例子,由于有n个密钥份额K1、K2、 K3、……、Kn,如图2中所示的,例如生成的对应的数据写入请求为数据写入请求1、数据写入请求2、数据写入请求3、……、数据写入请求n,并将这n个数据写入请求分别发送给共识节点1、共识节点2、共识节点3、……、共识节点n。需要说明的是,为了简化图示,图2中仅示出了共识节点1和共识节点n,其它的共识节点以“……”替代表示。
继续参见图2所示,数据所有方将各个数据写入请求对应发送给各个共识节点的步骤具体可以包括S206a、S206n等步骤。其中,S206a是数据所有方将携带目标密文数据和密钥份额1的数据写入请求1发送给共识节点1,S206n是数据所有方将携带目标密文数据和密钥份额n的数据写入请求n发送给共识节点n。需要说明的是,为了简化图示,图2中仅仅是以共识节点1、共识节点n进行举例说明,所以图2中仅示出了共识节点1和共识节点n,其它的共识节点以“……”替代表示,在具体实施过程中,还可以包括其它更多的共识节点,对应的,数据所有方还可以向其它的共识节点发送携带目标密文数据和其它密钥份额的不同数据写入请求。
S207:各个共识节点对目标密文数据进行共识处理,并达成共识。
在区块链系统中的各个共识节点获得数据所有方发送的数据写入请求之后,各个共识节点均获得了相同的目标密文数据,基于区块链系统去中心化的特性,可先对目标密文数据进行共识处理,以确保各个共识节点最终存储的目标密文数据都是准确、唯一且有效的,即确保各个目标区块链节点最终存储的目标密文数据是一份相同的正确数据。
区块链系统中的各个共识节点可以组成一个共识网络,在具体实施过程中,该共识网络可采用预定共识算法对目标密文数据进行共识处理以达成对目标密文数据的共识,需要说明的是,共识网络对目标密文数据进行共识处理,即是各个共识节点联合对目标密文数据进行共识处理。其中的预定共识算法可以是目前通用的共识算法,例如工作量证明(Proof of Work,Pow)算法、股权证明(Proof of Stake,PoS)算法、委任权益证明(Delegated Proof of Stake,DPoS)、实用拜占庭容错(Practical Byzantine FaultTolerance,PBFT)算法等。
对目标密文数据达成共识,一方面可以包括对目标密文数据本身达成共识,另一方面还可以包括对目标密文数据的排序信息达成共识,其中的排序信息是用于指示目标密文数据在区块链系统中的排列顺序,例如可以是编号或者序号等信息。这样,共识系统中的各个共识节点可以达成对目标密文数据的数据本身以及排列顺序的共识,即确定目标密文数据和对应的排列顺序是唯一且准确的。
在一种可能的实施方式中,共识网络还可以对各个数据写入请求中的访问准入条件信息进行共识处理并达成共识,以确保各个共识节点最终所确定并存储的访问准入条件信息是准确且唯一的信息。
S208:各个共识节点分别确定目标密文数据对应的数据认证信息。
在各个共识节点对目标密文数据达成共识之后,可进一步获得目标密文数据对应的数据认证信息,该数据认证信息是用于对目标密文数据进行可靠性认证的信息,以便于后续可通过数据认证信息对目标密文数据进行完整性和有效性的校验,以提高目标密文数据的安全性。
例如,共识节点可用预定的哈希(hash)函数对目标密文数据进行hash运算,得到目标密文数据对应的hash值,该hash值可用于对目标密文数据的可靠性进行验证,所以本申请实施例中可将该hash值称作目标密文数据对应的数据认证信息。在其它实施方式中,例如还可以采用其它的一些散列算法(例如 MD2、MD4、MD5 和 SHA-1)计算得到目标密文数据的摘要信息,可将得到的摘要信息称作该目标密文数据对应的数据认证信息。也就是说,目标密文数据对应的数据认证信息是用来对目标密文数据的完整性进行认证的信息,所以,后续可通过数据认证信息来校验目标密文数据是否被篡改,以尽量保证数据的安全性。
在具体实施方式中,各个共识节点对目标密文数据采用的是相同的散列算法得到的数据认证信息,这样,各个共识节点得到的目标密文数据的数据认证信息是相同的。在其它实施方式中,各个共识节点也可采用不同的散列算法,这样可得到不同的数据认证信息,但是即使得到的数据认证信息不同,但是这些不同的数据认证信息都可用来对目标密文数据的可靠性进行校验。
S209:各个共识节点分别保存获得的目标密文数据、数据认证信息和密钥份额。
各个共识节点在得到目标密文数据对应的数据认证信息之后,可分别将各自从数据所有方接收到的同一份目标密文数据存储在本地,同时将各自得到的目标密文数据和数据认证信息存储在本地,以及,将各自从数据所有方接收到的不同的密钥份额也一并存储在本地,从而,实现目标密文数据和多个密钥份额的上链存储,并且由于各个密钥份额是份分别保存在不同的共识节点中的,以此可实现对若干密钥份额的分离存储。
此外,若数据写入请求中还包括有密钥份额签名和/或访问准入条件信息,各个共识节点也可以将接收到的密钥份额签名和/或访问准入条件信息一并存储在各个共识节点本地。
例如,若数据写入请求中还包括密钥份额签名,则各个共识节点在确定对目标加密数据达成共识之后,可确定目标密文数据对应的数据认证信息,再分别将获得的目标密文数据、数据认证信息、密钥份额、对应的密钥份额签名保存在各个共识节点本地,即将这些数据本地存储。
又例如,若数据写入请求中还包括访问准入条件信息,则各个共识节点在确定对目标密文数据达成共识之后,或者各个共识节点在确定对目标密文数据和访问准入条件信息均达成共识之后,可确定目标密文数据对应的数据认证信息,再分别将获得的目标密文数据、数据认证信息、密钥份额、访问准入条件信息保存在各个共识节点本地,即将这些数据本地存储。
再例如,若数据写入请求中还同时包括密钥份额签名和访问准入条件信息,则各个共识节点在确定对目标密文数据达成共识之后,或者各个共识节点在确定对目标密文数据和访问准入条件信息均达成共识之后,可确定目标密文数据对应的数据认证信息,再分别将获得的目标密文数据、数据认证信息、访问准入条件信息、密钥份额、对应的密钥份额签名保存在各个共识节点本地,即将这些数据本地存储。
S210:各个共识节点分别向数据所有方发送成功写入指示信息,对应的,数据所有方接收各个共识点发送的成功写入指示信息。
各个共识节点在将数据所有方发送的数据写入请求中的信息保存在本地之后,可以分别向数据所有方发送成功写入指示信息,成功写入指示信息用于指示数据写入请求中对应需写入的数据已经成功存入了各个共识节点。
在实施时,各个共识节点向数据所有方发送的成功写入指示信息可以是相同,即发送的格式和内容均可以是相同的,或者也可以是不同的,在图2中是以发送的相同的成功写入指示信息为例进行图示说明的。
S211:数据所有方确定成功写入指示信息超过预定数量时,则确定目标密文数据已成功写入。
在实际中,由于区块链系统中的个别共识节点可能已经被恶意攻击或者发生故障等,那么这些共识节点可能并不能成功地向数据所有方发送成功写入指示信息,但是一般来说,正常运行的共识节点是大多数,也就是说,数据所有方收到的成功写入指示信息的数量可能是等于或者少于共识节点的数量的。为此,数据所有方即使未能收到全部共识节点发送的写入成功指示信息,也可以通过预定数量(例如称作第一预定数量)的成功写入指示信息来确定目标密文数据已成功写入了区块链系统,即当接收到的成功写入指示信息超过第一预定数量时则可认为目标密文数据已成功存储到了区块链系统中,这里的第一预定数量与前面介绍的(t,n)秘密共享机制中的t的取值有关,第一预定数量可以是等于或者大于t且小于或等于n的任何整数,这样是确保已经被准确保存的密钥份额的数量是足够后续用来恢复目标密钥的。或者,例如整个共识系统中包括n个共识节点,而假设整个共识系统中已经被敌手控制的节点数最多为f个,那么t的取值可以是f+1≤t≤n-f,即,t的取值可根据共识系统中假定的失效节点的数量确定。
在具体实施过程中,各个共识节点在保存密钥份额时,可将密钥份额保存在各个共识节点的可信执行环境(Trusted Execution Environment,TEE)中,以尽量提高密钥份额的安全性。以及,各个共识节点还可将目标密文数据对应的数据认证信息和密钥份额均保存在各自的TEE中,以尽量提高存储安全性。
具体来说,为了尽量保证目标密文数据和密钥份额的安全,为此,各个共识节点在存储目标密文数据和密钥份额时可将其保存在该共识节点的可信执行环境中。以一个共识节点(例如是共识节点A)为例,共识节点A可以将目标密文数据、数据认证信息、密钥份额、对应的密钥份额签名保存在第一存储区域中,而将访问准入条件信息保存在第二存储区域中,其中的第二存储区域是常规的内存区域,而第一存储区域是位于TEE中的,这样可以更进一步地保证目标密文数据和密钥份额的安全性。在另一种可能实施方式中,由于可信执行环境是需要额外维护的,为了减少对TEE的存储占用,考虑到保证目标密文数据的安全前提是需要尽量维护数据认证信息和密钥份额的安全,为此可仅将数据认证信息和密钥份额保存在可信执行环境中,而将目标密文数据、访问准入条件信息、密钥份额签名保存在常规的存储区域中,或者可仅将数据认证信息、密钥份额和密钥份额签名保存在TEE中,而将目标密文数据和访问准入条件信息存在常规的存储区域中,以尽量首要保证密钥份额的安全。
其中,TEE是基于 CPU 硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。而伴随着互联网的高速发展,安全的需求越来越高,不仅限于移动设备,云端设备,数据中心都对TEE提出了更多的需求,TEE的概念为此也得到了高速的发展和扩充。现在所说的TEE相比与最初提出的概念已经是更加广义的TEE,例如,服务器芯片厂商Intel,AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性,在工业界得到了广泛的认可。
以Intel SGX技术为例,SGX提供了内存中一个加密的可信执行区域,由 CPU 保护数据不被窃取。以上述的共识节点A采用支持SGX的CPU为例,利用新增的处理器指令,在共识节点A的内存中可以分配一部分区域作为围圈页面缓存或飞地页面缓存(Enclave PageCache,EPC),通过 CPU 内的加密引擎 MEE(Memory Encryption Engine)对EPC的数据进行加密,EPC 中加密的内容只有进入 CPU 后才会被解密,所以,可以将密钥份额存储在该区域中。在SGX 中,用户可以不信任操作系统、虚拟机监控器(Virtual Machine Monitor,VMM)、甚至基本输入输出系统BIOS(Basic Input Output System,基本输入输出系统),只需要信任 CPU 便能确保隐私数据不会泄漏,所以,通过将密钥份额保存在EPC中的方式可确保密钥份额足够的安全性,密钥份额被泄露的可能性很小。
本申请实施例中的区块链数据写入方案中,由于采用了秘密共享机制将目标密钥进行了拆分处理并分布式存储在了区块链系统中的多个共识节点中,可以提高目标密钥的安全性,这样,即使某些区块链节点由于已经被恶意攻击或者出现硬件故障等原因失效或不安全时,攻击者也难以获得一定数量(例如前述介绍的t)的密钥份额来恢复目标密钥,进一步地保证了目标密文数据的安全性,从而提高了数据上链存储的安全性。同时,各个共识节点还可计算得到目标密文数据对应的数据认证信息,这样可通过得到的数据认证信息对目标密文数据进行完整性和有效性的可靠性校验,可进一步提高目标密文数据的安全性。并且,是各个共识节点在本地计算得到目标密文数据对应的数据认证信息,例如可在各个共识节点的TEE中进行数据认证信息的处理,这样本地认证的方式可避免由于数据认证信息传输而导致泄露会被篡改的可能,可有效保证其安全性。
上面通过图2介绍了数据所有方将目标密文数据和各个密钥份额上链存储到区块链系统的过程,基于该上链存储数据的过程,以下再通过图3对数据访问方向区块链系统请求访问目标密文数据的流程进行介绍,与图2类似的,图3还是仅以共识节点1、共识节点n这两个共识节点举例。图3为本申请实施例中的区块链数据访问方法的流程示意图,图3所示的流程描述如下。
S301:数据访问方向各个共识节点发起数据访问请求,对应的,各个共识节点获得数据访问方发起的数据访问请求。
当数据访问方希望读取区块链上的数据时,可以向区块链系统发送请求,例如,当数据访问方希望读取区块链上存储的目标密文数据时,可以向区块链系统发送包括有目标数据标识的数据访问请求,其中的目标数据标识是用于唯一标识目标密文数据的标识信息,例如可以是目标密文数据的编号或者序号等排序信息,或者可以是指示目标密文数据的数据所有方何时上链存储的相关指示信息等。
基于前述对区块链数据写入方法的介绍可知,区块链系统中的各个共识节点本地存储有相同的目标密文数据和彼此不同的密钥份额,还均存储有目标密文数据对应的数据认证信息,其中的目标密文数据是数据所有方通过对称加密算法以目标密钥对明文数据进行加密得到的密文数据,而各个共识节点中存储的密钥份额是数据所有方通过秘密共享机制将目标密钥进行拆分得到的,且各个共识节点中存储的密钥份额可以是相互彼此不同的。
各个共识节点本地存储的数据认证信息是对应的各个共识节点在接收到数据所有方发送的目标密文数据之后,通过特定的算法(例如散列算法)对获得的目标密文数据进行处理得到的用于对目标密文数据进行可靠性验证的信息,计算数据认证信息的具体过程可参见前述图2对应实施例中的说明,此处不再重复。所以,各个共识节点中存储的数据认证信息可用于对其本地存储的目标密文数据进行可靠性验证,所以,后续可通过数据认证信息来校验目标密文数据是否被篡改,可尽量确保目标密文数据的安全性。
为了获取到目标密文数据和足够多的密钥份额,数据访问方向区块链系统发起数据访问请求,可以是指向各个共识节点发起数据访问请求,在具体实施过程中,各个共识节点可以通过以下任一种方式获得数据访问方发起的数据访问请求。
方式1,数据访问方生成携带有目标数据标识的数据访问请求,并且将该数据访问请求分别发送给各个共识节点,这样,各个共识节点可直接从数据访问方处接收到数据访问请求。
方式2,数据访问方生成携带有目标数据标识的数据访问请求,并且将该数据访问请求发送给共识网络中的某个共识节点,再由该共识节点扩散(例如广播)至共识网络中的其它共识节点,这样,各个共识节点也可获得数据访问请求。其中,从数据访问方处直接接收数据访问方的共识节点可以是共识网络中的任一个共识节点,可以是预先指定的或者也可以是数据访问方随机选择的,例如对于采用POW、POS、DPOS等争夺记账权性质的共识算法的共识网络,数据访问方可随机选择其中的一个共识节点作为直接从数据访问方处接收数据访问请求的共识节点,而对于采用PBFT等非争夺记账权性质的共识算法的共识网络,数据访问方可将其中的记账节点(预先商定好的)确定为直接从数据访问方处接收数据访问请求的共识节点。
数据访问请求中携带有目标数据标识,此外,还可以携带数据访问方的待验证权限信息,或者还可以包括数据访问方的待验证权限信息和该待验证权限信息对应的权限签名。其中的待验证权限信息是用于对数据访问方是否具有读取目标密文数据的权限进行验证的信息,而权限签名是用于对待验证权限信息进行有效性验证的签名信息。
其中,数据访问方可以是任一经授权客户、可信认证中心或共识协议上层程序,本申请实施例不做限制。
S302:各个共识节点根据待验证权限信息和权限签名确定数据访问方的访问权限验证通过。
在具体实施过程中,各个共识节点可各自独立的根据待验证权限信息和权限签名对数据访问方的访问权限进行验证,以得到数据访问方的访问权限验证结果。具体地,各个共识节点先根据权限签名对待验证权限信息进行有效性验证,并在待验证权限信息的有效性验证通过时再根据待验证权限信息来验证数据访问方的访问权限,例如,可将待验证权限信息与数据所有方预先上链存储在区块链系统中的访问准入条件信息进行匹配比较,在匹配结果为设定匹配结果时则可确定数据访问方的访问权限验证通过。其中的访问准入条件信息,如前所述的,访问准入条件信息可以是数据所有方指定的允许或者不允许访问目标密文数据的用户标识、客户端标识、设备标识等黑名单或白名单,或者,访问准入条件信息也可以是允许或者不允许访问目标密文数据的限制条件。各个共识节点各自在本地独立地对数据访问方进行访问权限验证,各个共识节点对数据访问方的访问权限验证可并行进行,这样可以在一定程度上加快整个区块链系统对数据访问方的权限验证过程,并且各个共识节点独立验证的方式可尽量减少对链上公共资源的占用。
在另一种实施方式中,各个共识节点还可联合对待验证权限信息和权限签名进行共识处理,并在达成共识时确定数据访问方的访问权限验证通过。具体来说,共识网络通过运行共识算法可确定出具有记账权的共识节点,再由具有记账权的共识节点采用上述共识节点独立的根据根据待验证权限信息和权限签名对数据访问方的访问权限进行验证的方式确定数据访问方是否具有访问权限,再将确定结果扩散给其它共识节点。所有共识节点通过共识方式对访问权限进行验证的方式,充分利用了区块链网络的共识特性,这样可确保各个共识节点对最终验证结果认知的一致性,在具体实施过程中,可采用不同的共识算法进行至少两轮共识验证,以确保共识验证结果的准确性。
其中的访问准入条件信息,如前所述的,访问准入条件信息可以是数据所有方指定的允许或者不允许访问目标密文数据的用户标识、客户端标识、设备标识等黑名单或白名单,或者,访问准入条件信息也可以是允许或者不允许访问目标密文数据的限制条件。
本申请实施例中,通过权限签名和待验证权限信息对数据访问方的访问权限进行验证,可实现对访问者的访问控制,这样可以尽量提高数据访问的安全性和有效性,同时也保证链上数据的安全性。
在实际中,数据访问方可以是图2对应实施例中介绍的数据所有方,也就是说,数据访问方可以对自己之前上链存储到区块链系统中的加密数据请求访问,例如在数据访问方忘记了之前上链存储的加密数据的密钥时则可采用该方式再次获得目标密文数据和目标密钥,以此可重新获得加密数据对应的明文数据,进而可实现对数据的再次管理。在这种情形下,数据所有方(此时也为数据访问方)预先上链存储的访问准入条件信息中可包括允许数据访问方访问目标密文数据的相关信息,例如数据访问方的用户标识等,这样在进行匹配比较时则可确保数据访问方能够通过权限认证,进而从区块链上获得目标密文数据和多个密钥份额。
在具体实施时,S302是可选的步骤,所以在图3中是以虚线框表示的。
S303:从各个共识节点中确定目标共识节点。
本申请实施例中的目标共识节点是需要向数据访问方发送目标密文数据的共识节点,而除去目标共识节点之外的其余共识节点无需向数据所有方发送目标密文数据。其中的目标共识节点可以是共识系统中的一个共识节点,或者,目标共识节点也可以是共识系统中的多个共识节点,当目标共识节点是多个共识节点时,目标共识节点的数量是小于共识系统包括的所有共识节点的总数量的,也就是说,目标共识节点是共识系统中的一个或者部分共识节点。
一种实施方式中,目标共识节点是各个共识节点中预先确定的共识节点,例如各个共识节点可以预先约定一个共识节点(例如主节点)作为目标共识节点,或者用户可以预先从中选择一个共识节点作为目标共识节点。这样,当各个共识节点(包括目标共识节点)收到数据访问方的数据访问请求后,即可将预先确定的共识节点作为目标共识节点。这样,各个共识节点可快速确定出目标共识节点,效率较高。
另一种实施方式中,目标共识节点是数据所有方指定的共识节点,例如,数据所有方可以在数据访问请求中携带目标共识节点的节点标识(例如节点编号),当获得数据访问请求之后,各个共识节点可将其中携带的节点标识与自身的节点标识进行比较,进而确定出自身是否是数据访问方指定的目标共识节点,从而,可从所有共识节点中确定出目标共识节点。这样,数据访问方可根据实际需求灵活选择目标共识节点为自身发送目标密文数据,灵活性较好。
S304:目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方,以及,其余共识节点将本地存储的密钥份额发送给数据访问方。对应的,数据访问方接收目标共识节点发送的目标密文数据、数据认证信息和密钥份额,以及接收其余共识节点发送的密钥份额。
在前述的数据访问方的访问权限验证通过时,表明该数据访问方是具有权限访问链上存储的目标密文数据的,则区块链系统可将目标密文数据发送给数据访问方,并且同时为了数据访问方能够完成对目标密文数据的解密,也需要一并将解密钥匙发送给数据访问方,而由于加密用的目标密钥已经被拆分成了多个密钥份额,所以各个共识节点还分别将各自保管的密钥份额发送给数据访问方,以便于数据访问方能够根据接收到的多个密钥份额恢复出目标密钥,进而再采用目标密钥进行解密。
数据访问方请求目标密文数据的目的是获得其对应的明文数据,所以需要将目标密文数据和目标密钥告知数据访问方,根据前面介绍可知,目标密钥已被拆分成多个密钥份额分别保存在各个共识节点中,为确保数据访问方能够得到足够多正确的密钥份额来恢复出目标密钥,各个共识节点可以分别将各自保存的密钥份额发送给数据访问方。又由于各个共识节点中存储的目标密文数据是一样的,且目标密文数据的数据量一般不小,为了减少目标密文数据的重复传输,从而减少整个系统的数据传输量以节约区块链系统的带宽,本申请实施例中采用一个共识节点或部分共识节点(而非全部共识节点)向数据访问方返回目标密文数据的方式,这样由于无需所有共识节点均向数据访问方发送目标密文数据,所以可减少整个系统的数据传输量,从而节约系统带宽。并且,为了确保目标密文数据的有效性,可随着目标密文数据一并将对应的数据认证信息发送给数据访问方,这样,即使数据访问方只收到了一份目标密文数据,也可通过其对应的数据认证信息对目标密文数据进行可靠性验证,从而可判断目标密文数据是否有被篡改,进而可确保目标密文数据的完整性和有效性。
为此,本申请实施例中仅通过目标共识节点向数据访问方发送目标密文数据和数据认证信息,而其余共识节点均无需向数据访问方发送目标密文数据和数据认证信息,而由于各个共识节点中保存的是不同的密钥份额,所以目标共识节点和其余共识节点均将各自保存的密钥份额发送给数据访问方。
在本申请实施例中,其余共识节点可以是共识系统中除去目标共识节点外的全部共识节点,或者也可以是除去目标共识节点外的全部共识节点中的部分共识节点,目标共识节点和其余共识节点的总数量主要是确保数据访问方能够获得足够数量的密钥份额以恢复出目标密钥,也就是说,目标共识节点和其余共识节点的总数量与(t,n)秘密共享机制中的t值有关,例如整个共识系统中包括n个共识节点,而假设整个共识系统中已经被敌手控制的节点数最多为f个,那么t的取值可以是f+1≤t≤n-f,即,t的取值可根据共识系统中假定的失效节点的数量确定,那么,目标共识节点和其余共识节点的总数量可以是t或者大于t,但是不超过共识系统中共识节点的总数量。
假设确定出的目标共识节点是共识节点1,其余共识节点以共识节点n表示,请参见图3所示的,S304可以包括S304a和S304n等步骤,S304a是共识节点1(即目标共识节点)向数据访问方发送目标密文数据、数据认证信息和密钥份额1,其中的密钥份额1是共识节点1中保存的密钥份额;S304n是共识节点n(即其余共识节点)向数据访问方发送密钥份额n,其中的密钥份额n是共识节点n中保存的密钥份额。需要说明的是,图3中仅仅是以共识节点1、共识节点n进行举例说明,在具体实施过程中,还可以包括其它的目标共识节点和其余共识节点,对应的,其它的目标共识节点还可以向数据访问方发送目标密文数据、数据认证信息和其它的密钥份额,其它的其余共识节点还可以仅向数据访问方发送其它的密钥份额。
在另一种实施方式中,其余共识节点除了向数据访问方本地存储的密钥份额之外,还可将本地存储的数据认证信息一并发送给数据访问方,从而,数据访问方可获得来自目标共识节点和其余共识节点的数据认证信息,这样,数据访问方可获得较多数量的数据认证信息,可从获得的数据认证信息中选择超过一定数量(例如90%)的数据认证信息作为有效的数据认证信息,进而通过有效的数据认证信息对目标密文数据进行可靠性校验。也就是说,区块链系统可向数据访问方发送足够数量的数据认证信息,数据访问方可将各个数据认证信息进行对比,那么即使有个别的节点被敌手控制而篡改了数据认证信息,那么被篡改的数据认证信息与其它有效的数据认证信息必然是不一样的,所以通过这种相互比对的方式,数据访问方可剔除掉可能已被篡改的无效数据认证信息,从而确保数据认证信息有效,以实现对目标密文数据的安全保护。
S305:数据访问方根据预定数量且不同的密钥份额确定目标密钥。
在实际中,由于区块链系统中的某些共识节点可能已经被恶意攻击或者出现硬件故障等原因并不能向数据访问方返回密钥份额,或者并不能向数据访问方发送正确的密钥份额。为此,根据(t,n)秘密共享的原理,数据访问方最少只要收到预定数量(例如称作第二预定数量,为大于或等于t且小于或等于n的整数)且互不相同的密钥份额就可以恢复出目标密钥,进而根据目标密钥对密文数据的解密,以此实现链上数据的有效访问。
S306:数据访问方根据数据认证信息对目标密文数据进行可靠性校验,并在校验通过时采用目标密钥对目标密文数据进行解密。
如前介绍的,数据认证信息可用来对目标密文数据进行可靠性校验,所以可仅由部分共识节点(即目标共识节点)向数据访问方发送目标密文数据和数据认证信息,这样,数据访问方在接收到目标共识节点发送的目标密文数据和数据认证信息之后,可通过数据认证信息对目标密文数据进行可靠性校验,例如可采用共识节点认证处理时使用的hash函数对目标密文数据进行哈希计算,再将得到的hash值与数据认证信息比对,若两者一样即可确定目标密文数据未被篡改过,从而实现对目标密文数据的完整性和有效性的校验,以确保目标密文数据的安全性。
进一步地,在目标密文数据通过可靠性校验后,即可利用恢复出的目标密钥对目标密文数据进行解密处理,即可得到对应的明文数据,以实现链上数据的访问。
如前所述的,各个共识节点除了存储的目标密文数据、数据认证信息和各不相同的密钥份额之外,还可以包括密钥份额对应的密钥份额签名,基于此,目标共识节点向数据访问方发送目标密文数据、数据认证信息和密钥份额的同时,还可以一并发送密钥份额对应的密钥份额签名,以及其余共识节点向数据访问方发送密钥份额的同时,还可以一并发送密钥份额对应的密钥份额签名,以便于数据访问方可先根据密钥份额签名对密钥份额本身进行有效性验证,在密钥份额的有效性验证通过时,再将其作为一个有效的密钥份额,进一步地的再使用第二预定数量个各不相同的有效密钥份额来恢复得到目标密钥。
在具体实施过程中,数据访问方对目标密文数据的解密可能会失败,例如目标共识节点发送的目标密文数据可能已经被恶意篡改,或者在一定时间内数据访问方未能接收到目标共识节点发送的目标密文数据(例如由于目标共识节点的硬件故障未能成功发送或者由于网络故障未能成功传输至数据访问方),等等,在这些情形下,为了能够确保数据的有效访问,数据访问方可向区块链系统重新发起数据访问请求,本申请实施例中将数据访问方重新发起的数据访问请求例如称作数据重传请求,该数据重传请求中还是包括有用于指示目标密文数据的目标数据标识。数据访问方可将该数据重传请求分别发送给各个共识节点,各个共识节点在获得数据重传请求之后,可分别将各自本地存储的目标密文数据和数据认证信息再发送给数据访问方,通过全部共识节点均发送目标密文数据和数据认证信息的方式可避免由于其中个别共识节点被恶意控制而导致的个别目标密文数据失效的影响,数据访问方在收到足够相同的目标密文数据之后即可初步认为目标密文数据有效,进一步再利用数据认证信息对目标密文数据进行完整性验证,这样通过两重校验可提高目标密文数据验证的有效性,并且可一次性直接对目标密文数据达到最有效的验证,可提高验证效率。或者,各个共识节点可分别将各自本地存储的目标密文数据、数据认证信息和密钥份额一并发送给数据访问方,在前述方式的基础上又重复发送了一遍密钥份额,可用于数据访问方再次根据足够数量的有效密钥份额确定出目标密钥,进一步提高安全性。
在其它实施方式中,数据访问方也可仅向部分共识节点发送数据重传请求,而请求重传的这部分共识节点中可以不再包括前述的目标共识节点,这样也可重新获得目标密文数据,且由于无需所有共识节点全部传输目标密文数据,故可尽量降低系统的数据传输量,进而减少整个系统的带宽占用。
本申请实施例中,数据访问方将用于加密得到目标密文数据的目标密钥采用秘密共享机制拆分为若干个相互独立的密钥份额,再将目标密文数据的得到的密钥份额上链存储,且是将密钥份额分布式地存储在区块链系统中的各个节点中,这样,即使个别密钥份额被恶意窃取或者篡改,基于秘密共享的特性,也并不影响对目标密钥的准确恢复,提高了目标密钥在区块链系统中的安全性,从而也就提升了目标密文数据的安全性。各个共识节点在得到目标密文数据后,再确定用于对该目标密文数据进行完整性校验的数据认证信息,进而将该目标密文数据和数据认证信息对应关联存储在本地,以便于可通过数据认证信息对目标密文数据进行可靠性校验,以尽量确保目标密文数据的完整性和有效性,提高目标密文数据的安全。
进而,数据访问方在访问链上的目标密文数据时,在通过分散的多个密钥份额对目标密文数据进行有效保护的基础上,也可确保数据访问方能够通过一定数量的密钥份额恢复出正确的目标密钥,从而实现对目标密文数据的有效、安全的访问,提高了对区块链上存储数据访问的安全性,同时,由于各个共识节点中均保存有目标密文数据和其对应的数据认证信息,这样可仅由部分共识节点向数据访问方发送目标密文数据和数据认证信息,以减少目标密文数据和数据认证信息的重复传输,这样,数据访问方可通过数据认证信息对目标密文数据进行可靠性校验确保目标密文数据安全的基础上,还可降低整个区块链系统中的数据传输量,进而减少系统带宽的占用,提高系统带宽的利用率。
为便于理解,以下结合图4和图5对本申请实施例中的技术方案进行说明。
请参见图4,假设数据所有方需要上链存储的目标密文数据是C,数据所有方确定的能够访问目标密文数据的访问准入条件信息以ACL表示,用于采用对称加密方式进行加密得到目标密文数据C的目标密钥是K,数据所有方采用秘密共享机制将目标密钥K拆分为了K1、K2、K3、K4这四份密钥份额,而与K1、K2、K3、K4对应的密钥份额签名分别以Sig1、Sig2、Sig3、Sig4表示。在具体实施过程中,数据所有方将目标密钥K拆分成多少个密钥份额的数量可以是与区块链系统中的共识网络所包括的共识节点数相同的,例如图4中所示的都是4个。
进一步地,数据所有方根据密钥份额的不同,生成了4个数据写入请求,如图4中的Write1、Write2、Write3、Write4。其中,Write1、Write2、Write3、Write4中均携带了目标密文数据C、访问准入条件信息ACL,而这4个数据写入请求中携带的密钥份额和对应的密钥份额签名均是不同的,以图4所示,Write1、Write2、Write3、Write4分别携带了密钥份额K1和密钥份额签名Sig1、密钥份额K2和密钥份额签名Sig2、密钥份额K3和密钥份额签名Sig3、密钥份额K4和密钥份额签名Sig4。在各个共识节点接收到对应的数据写入请求后,如共识节点1接收到的是Write1、共识节点2接收到的是Write2、共识节点3接收到的是Write3、共识节4接收到的是Write4,各个共识节点联合对其中的目标密文数据C进行共识处理,在确定对目标密文数据达成共识之后,各个共识节点可分别计算目标密文数据C的数据认证信息,例如各个共识节点采用的是相同的hash函数对目标密文数据C进行hash运算以得到相同的hash值,则将该hash值理解为是目标密文数据C对应的数据认证信息,各个共识节点再将目标密文数据C与该hash值对应存储在本地,以及将数据写入请求中的其它信息分别保存在本地,如图4中的下图所示。然后,各个共识节点再向数据所有方发送成功写入指示信息,在图4中分别以Success1、Success2、Success3、Success4表示各个共识节点发送的成功写入指示信息,数据所有方可以根据足够数量的成功写入指示信息确定目标密文数据已经成功写入了区块链系统,实现了加密数据的上链存储。
再参见图5所示,当数据访问方希望从区块链系统读取目标密文数据时,可以向各个共识节点发送对应的读取指令,在图5中是以Read1、Read2、Read3、Read4分别表示数据访问方向各个共识节点发送的数据访问请求的,并且各个数据访问请求所携带的信息是相同的,假设其中的ts表示目标密文数据的编号(对应前述的目标数据标识),IDc表示的是数据访问方的身份标识(对应前述的待验证权限信息),Sigc是数据访问方的身份标识对应的身份签名(对应前述的权限签名)。图5中示出的是向各个共识节点均发送数据访问请求的方式,在另一种可能的实施方式中,数据访问方也可以仅向其中某一个共识节点发送数据访问请求,再由该节点将数据访问请求广播给其余各个节点。
进一步地,各个共识节点可以根据数据写入请求中的Sigc对数据访问方的身份标识IDc进行有效性验证,再根据IDc进行访问权限验证,待验证通过后可以从本地存储中确定出ts对应的目标密文数据、数据认证信息、密钥份额和密钥份额签名。进一步地,可从所有共识节点中确定出目标共识节点,即确定出需要向数据访问方发送目标密文数据和数据认证信息的共识节点,例如确定出的目标共识节点是共识节点1,那么其余的共识节点2、共识节点3、共识节点4可称作其余共识节点。进而,目标共识节点将存储的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名发送给数据访问方,其余共识节点分别将各自存储的密钥份额和对应的密钥份额签名发送给数据访问方,如图5中所示的,共识节点1将C、hash、K1、Sig1发送给了数据访问方、共识节点2将K2、Sig2发送给了数据访问方、共识节点3将K3、Sig3发送给了数据访问方、共识节点4将K4、Sig4发送给了数据访问方。在其它的实施方式中,部分或者全部的其余共识节点也可一并将本地存储的hash发送给数据访问方。数据访问方在收到各个节点返回的数据之后,可以根据秘密共享机制通过足够数量且互不相同的密钥份额来恢复得到目标密钥K,以及通过数据认证信息hash对目标密文数据C进行完可靠性校验,在对目标密文数据C的可靠性校验通过时,再利用目标密钥K对目标密文数据C进行解密,以完成对链上数据的有效访问。
本申请实施例中,数据所有方、数据访问方、区块链系统之间可以使用加密通道交换数据,这样可尽量确保数据安全传输。此外,数据所有方、数据访问方、区块链系统均可使用可信硬件、TEE、TPM(Trusted Platform Module,可信平台模块)、密码卡、密码机等,确保数据安全可靠地处理和保存。
基于同一发明构思,本申请实施例提供一种区块链系统,该区块链系统例如是图1中的区块链系统,该区块链系统包括至少两个共识节点,其中:
各个共识节点用于分别获得数据所有方发送的数据写入请求,其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,目标密文数据是数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是数据所有方通过秘密共享机制将目标密钥进行拆分得到的;并对目标密文数据进行共识处理;以及在确定对目标密文数据达成共识后,确定目标密文数据对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额。
基于本申请实施例中的区块链系统可以实现前述的图2和图4所描述的流程,基于秘密共享技术将目标密文数据对应的目标密钥拆分为多个密钥份额并将各个密钥份额分散保存在各个目标区块链节点中,通过分布式地存储密钥份额的方式可提高目标密钥的安全性,从而增强对密文数据的保护。同时,共识系统还可获得目标密文数据对应的数据认证信息,进而可通过数据认证信息对目标密文数据进行可靠性验证,这样可确保目标密文数据的完整性和有效性,进一步地增强了目标密文数据的安全性。
基于同一发明构思,本申请实施例提供一种区块链系统,该区块链系统例如是图1中的区块链系统,该区块链系统包括至少两个共识节点,其中:
各个共识节点用于获得数据访问方发起的数据访问请求,其中,数据访问请求中包括用于指示目标密文数据的目标数据标识,各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是数据所有方通过秘密共享机制将目标密钥进行拆分得到的,各数据认证信息是各个共识节点分别确定的目标密文数据对应的认证信息;
各个共识节点中的目标共识节点用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方,以及各个共识节点中的其余共识节点用于将本地存储的密钥份额发送给数据访问方,以用于数据访问方根据预定数量且不同的密钥份额确定目标密钥以及根据数据认证信息对目标密文数据进行认证,并在目标密文数据认证通过时根据目标密钥对目标密文数据解密。
基于本申请实施例中的区块链系统可以实现前述的图3和图5所描述的流程,在对区块链上数据进行访问时,即使区块链系统中的有些节点可能已经被恶意攻击而不安全时,例如已被篡改了该节点上存储的目标密文数据和密钥份额,由于采用的是秘密共享技术,数据访问方在收到一定数量的正确的密钥份额时才可恢复出正确的目标密钥,这其中即使有些密钥份额已不再可信,仍然可确保恢复出的目标密钥的有效性,从而提高了对数据访问的安全控制。同时,由于各个共识节点中还同时存储有目标密文数据对应的数据认证信息,这样可由部分共识节点(例如一个共识节点,称作目标共识节点)向数据访问方发送目标密文数据和数据认证信息,数据访问方在收到目标密文数据和数据认证信息之后可通过该数据认证信息对目标密文数据进行可靠性校验,这样不仅可确保目标密文数据的有效性,同时由于仅是通过部分的共识节点发送目标密文数据和数据认证信息,而不是又全部共识节点发送,这样可减少数据的重复传输,从而减少系统的数据传输量,进而减少系统的带宽占用,提高系统带宽利用率。
基于同一发明构思,本申请实施例提供一种区块链数据写入装置,该装置可以是硬件结构、软件模块、或硬件结构加软件模块,该装置可以配置在区块链系统中的各个共识节点中。请参见图6所示,本申请实施例中的区块链数据写入装置包括获得模块601、共识模块602、认证模块603和存储模块604,其中:
获得模块601,用于获得数据所有方发送的数据写入请求;其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,目标密文数据是数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是数据所有方通过秘密共享机制将目标密钥进行拆分得到的;
共识模块602,用于对目标密文数据进行共识处理;
认证模块603,用于在确定对目标密文数据达成共识后,确定目标密文数据对应的数据认证信息;
存储模块604,用于保存获得的目标密文数据、数据认证信息和密钥份额。
在一种可能的实现方式中,各个数据写入请求中还包括密钥份额对应的密钥份额签名,存储模块用于604:
将获得的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名进行保存。
在一种可能的实现方式中,各个数据写入请求中还包括访问准入条件信息,认证模块603用于在确定对目标密文数据和访问准入条件信息均达成共识后,对目标密文数据进行认证处理以得到对应的数据认证信息;存储模块604用于将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存;或者,
各个数据写入请求中还包括访问准入条件信息,认证模块603用于在确定对目标密文数据达成共识后,对目标密文数据进行认证处理以得到对应的数据认证信息;存储模块604用于将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存。
在一种可能的实现方式中,访问准入条件信息中包括允许数据所有方访问目标密文数据的条件信息。
在一种可能的实现方式中,本申请实施例中的区块链数据写入装置还包括发送模块,用于在存储模块604保存获得的目标密文数据、数据认证信息和密钥份额之后,向数据所有方发送成功写入指示信息。
前述的区块链数据写入方法的实施例中涉及的各步骤的所有相关内容均可以援引到本申请实施例中的区块链数据写入装置所对应的功能模块的功能描述,在此不再赘述。
基于同一发明构思,本申请实施例提供一种区块链数据访问装置,该装置可以是硬件结构、软件模块、或硬件结构加软件模块,该装置可以配置在区块链系统中的各个共识节点中。请参见图7所示,本申请实施例中的区块链数据访问装置包括获得模块701和发送模块702,其中:
获得模块701,用于获得数据访问方发起的数据访问请求,其中,数据访问请求中包括用于指示目标密文数据的目标数据标识,各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是数据所有方通过秘密共享机制将目标密钥进行拆分得到的,各数据认证信息是各个共识节点分别确定的目标密文数据对应的认证信息;
发送模块702,用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方或者将本地存储的密钥份额发送给数据访问方,以用于数据访问方根据预定数量且不同的密钥份额确定目标密钥以及根据数据认证信息对目标密文数据进行认证,并在目标密文数据认证通过时根据目标密钥对目标密文数据解密;
其中,各个共识节点中的目标共识节点中的发送模块702用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方,各个共识节点中的其余共识节点中的发送模块702用于将本地存储的密钥份额发送给数据访问方。
在一种可能的实现方式中,各个共识节点中的目标共识节点中的发送模块702用于:将本地存储的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名发送给数据访问方;
各个共识节点中的其余共识节点中的发送模块702用于:将本地存储的密钥份额和对应的密钥份额签名发送给数据访问方。
在一种可能的实现方式中,各个共识节点中的其余共识节点中的发送模块702用于将本地存储的数据认证信息和密钥份额发送给数据访问方。
在一种可能的实现方式中,数据访问请求中还包括数据访问方的待验证权限信息和权限签名,本申请实施例中的区块链数据访问装置还包括权限验证模块703,用于:
在发送模块702将本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方或者将本地存储的密钥份额发送给数据访问方之前,根据待验证权限信息和权限签名确定数据访问方的访问权限验证通过;其中,根据权限签名对待验证权限信息进行有效性验证,并在待验证权限信息的有效性验证通过时,根据待验证权限信息确定数据访问方的访问权限验证通过。
在一种可能的实现方式中,权限验证模块703用于:
将待验证权限信息与访问准入条件信息进行匹配,其中,访问准入条件信息是由数据所有方写入的;
若匹配结果为设定匹配结果,则确定数据访问方的访问权限验证通过。
在一种可能的实现方式中,访问准入条件信息中包括允许数据所有方访问目标密文数据的条件信息。
在一种可能的实现方式中,权限验证模块703用于:
根据待验证权限信息和权限签名确定数据访问方的访问权限验证通过;或者,
对待验证权限信息和权限签名进行共识处理,并在达成共识后确定数据访问方的访问权限验证通过。
在一种可能的实现方式中,获得模块701还用于:
在发送模块将702本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方或者将本地存储的密钥份额发送给数据访问方之后,获得数据访问方发起的数据重传请求,其中,数据重传请求中包括目标数据标识,数据重传请求是数据访问方在确定对目标密文数据解密失败时重新发起的数据访问请求;
发送模块702还用于:
将本地存储的目标密文数据发送给数据访问方,或者,将本地存储的目标密文数据和数据认证信息发送给数据访问方,或者,将本地存储的目标密文数据、数据认证信息和密钥份额发送给数据访问方。
在具体实施时,权限验证模块703是可选的模块,即权限验证模块703并不是必须的模块,所以在图7中是以虚线框表示的。
前述的区块链数据访问方法的实施例中涉及的各步骤的所有相关内容均可以援引到本申请实施例中的区块链数据访问装置所对应的功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于同一发明构思,本申请实施例还提供一种计算机存储介质,该计算机存储介质可以是计算机可读存储介质,该计算机存储介质中存储有计算机指令或计算机可读程序,当该计算机指令或计算机可读程序在计算机上运行时,使得计算机执行如前述的区块链数据写入方法的步骤。
基于同一发明构思,本申请实施例还提供一种计算机存储介质,该计算机存储介质可以是计算机可读存储介质,该计算机存储介质中存储有计算机指令或计算机可读程序,当该计算机指令或计算机可读程序在计算机上运行时,使得计算机执行如前述的区块链数据访问方法的步骤。
在一些可能的实施方式中,本申请实施例提供的区块链数据写入方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机上运行时,所述程序代码用于使所述计算机执行前文所描述的根据本申请各种示例性实施方式的区块链数据写入方法中的步骤。
在一些可能的实施方式中,本申请实施例提供的区块链数据访问方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机上运行时,所述程序代码用于使所述计算机执行前文所描述的根据本申请各种示例性实施方式的区块链数据访问方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (31)

1.一种区块链数据写入方法,其特征在于,所述方法包括:
各个共识节点分别获得数据所有方发送的数据写入请求;其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;
所述各个共识节点对所述目标密文数据进行共识处理;
在确定对所述目标密文数据达成共识后,所述各个共识节点确定所述目标密文数据对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额。
2.根据权利要求1所述的方法,其特征在于,各个数据写入请求中还包括密钥份额对应的密钥份额签名,所述各个共识节点分别保存获得的目标密文数据、数据认证信息和密钥份额,包括:
所述各个共识节点分别将获得的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名进行保存。
3.根据权利要求1所述的方法,其特征在于,各个数据写入请求中还包括访问准入条件信息;在确定对所述目标密文数据达成共识后,所述各个共识节点对所述目标密文数据进行认证处理以得到对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额,包括:
在确定对所述目标密文数据和所述访问准入条件信息均达成共识后,所述各个共识节点对所述目标密文数据进行认证处理以得到对应的数据认证信息,并分别将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存;或者,
在确定对所述目标密文数据达成共识后,所述各个共识节点对所述目标密文数据进行认证处理以得到对应的数据认证信息,并分别将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存。
4.根据权利要求3所述的方法,其特征在于,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
5.根据权利要求1所述的方法,其特征在于,在所述各个共识节点分别保存获得的目标密文数据、数据认证信息和密钥份额之后,所述方法还包括:
所述各个共识节点分别向所述数据所有方发送成功写入指示信息;
所述数据所有方在接收到的成功写入指示信息超过预定数量时,确定所述目标密文数据成功写入。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述各个共识节点分别将获得的密钥份额保存在所述各个共识节点的可信执行环境中。
7.一种区块链数据访问方法,其特征在于,所述方法包括:
各个共识节点获得数据访问方发起的数据访问请求,其中,所述数据访问请求中包括用于指示目标密文数据的目标数据标识,所述各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,所述目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的,各数据认证信息是所述各个共识节点分别确定的所述目标密文数据对应的认证信息;
所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方,以用于所述数据访问方根据预定数量且不同的密钥份额确定所述目标密钥以及根据所述数据认证信息对所述目标密文数据进行认证,并在所述目标密文数据认证通过时根据所述目标密钥对所述目标密文数据解密。
8.根据权利要求7所述的方法,其特征在于,所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方,包括:
所述目标共识节点将本地存储的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名发送给所述数据访问方,以及所述其余共识节点将本地存储的密钥份额和对应的密钥份额签名发送给所述数据访问方。
9.根据权利要求7所述的方法,其特征在于,所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方,包括:
所述目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述其余共识节点将本地存储的数据认证信息和密钥份额发送给所述数据访问方。
10.根据权利要求7所述的方法,其特征在于,所述数据访问请求中还包括所述数据访问方的待验证权限信息和权限签名,在所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方之前,所述方法还包括:
所述各个共识节点根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;其中,根据所述权限签名对所述待验证权限信息进行有效性验证,并在所述待验证权限信息的有效性验证通过时,根据所述待验证权限信息确定所述数据访问方的访问权限验证通过。
11.根据权利要求10所述的方法,其特征在于,根据所述待验证权限信息确定所述数据访问方的访问权限验证通过,包括:
将所述待验证权限信息与访问准入条件信息进行匹配,其中,所述访问准入条件信息是由所述数据所有方确定的;
若匹配结果为设定匹配结果,则确定所述数据访问方的访问权限验证通过。
12.根据权利要求11所述的方法,其特征在于,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
13.根据权利要求10所述的方法,其特征在于,所述各个共识节点根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过,包括:
所述各个共识节点分别根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;或者,
所述各个共识节点联合对所述待验证权限信息和所述权限签名进行共识处理,并在达成共识后确定所述数据访问方的访问权限验证通过。
14.根据权利要求7所述的方法,其特征在于,在所述各个共识节点中的目标共识节点将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点将本地存储的密钥份额发送给所述数据访问方之后,所述方法还包括:
所述各个共识节点获得所述数据访问方发起的数据重传请求,其中,所述数据重传请求中包括所述目标数据标识,所述数据重传请求是所述数据访问方在确定对所述目标密文数据解密失败时重新发起的数据访问请求;
所述各个共识节点分别将本地存储的目标密文数据发送给所述数据访问方,或者,所述各个共识节点分别将本地存储的目标密文数据和数据认证信息发送给所述数据访问方,或者,所述各个共识节点分别将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方。
15.根据权利要求7-14中任一项所述的方法,其特征在于,所述目标共识节点是所述各个共识节点中预先确定的共识节点;或者,所述目标共识节点是所述数据所有方指定的共识节点。
16.一种区块链数据写入装置,其特征在于,配置于各个共识节点中,所述装置包括:
获得模块,用于获得数据所有方发送的数据写入请求;其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;
共识模块,用于对所述目标密文数据进行共识处理;
认证模块,用于在确定对所述目标密文数据达成共识后,确定所述目标密文数据对应的数据认证信息;
存储模块,用于保存获得的目标密文数据、数据认证信息和密钥份额。
17.根据权利要求16所述的装置,其特征在于,各个数据写入请求中还包括密钥份额对应的密钥份额签名,所述存储模块用于:
将获得的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名进行保存。
18.根据权利要求16所述的装置,其特征在于,各个数据写入请求中还包括访问准入条件信息,所述认证模块用于在确定对所述目标密文数据和所述访问准入条件信息均达成共识后,对所述目标密文数据进行认证处理以得到对应的数据认证信息;所述存储模块用于将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存;或者,
各个数据写入请求中还包括访问准入条件信息,所述认证模块用于在确定对所述目标密文数据达成共识后,对所述目标密文数据进行认证处理以得到对应的数据认证信息;所述存储模块用于将获得的目标密文数据、数据认证信息、密钥份额和访问准入条件信息进行保存。
19.根据权利要求18所述的装置,其特征在于,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
20.根据权利要求16所述的装置,其特征在于,所述装置还包括发送模块,用于:
在存储模块保存获得的目标密文数据、数据认证信息和密钥份额之后,向所述数据所有方发送成功写入指示信息。
21.一种区块链数据访问装置,其特征在于,配置于各个共识节点中,所述装置包括:
获得模块,用于获得数据访问方发起的数据访问请求,其中,所述数据访问请求中包括用于指示目标密文数据的目标数据标识,所述各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,所述目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的,各数据认证信息是所述各个共识节点分别确定的所述目标密文数据对应的认证信息;
发送模块,用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方或者将本地存储的密钥份额发送给所述数据访问方,以用于所述数据访问方根据预定数量且不同的密钥份额确定所述目标密钥以及根据所述数据认证信息对所述目标密文数据进行认证,并在所述目标密文数据认证通过时根据所述目标密钥对所述目标密文数据解密;
其中,所述各个共识节点中的目标共识节点中的发送模块用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,所述各个共识节点中的其余共识节点中的发送模块用于将本地存储的密钥份额发送给所述数据访问方。
22.根据权利要求21所述的装置,其特征在于,所述各个共识节点中的目标共识节点中的发送模块用于:将本地存储的目标密文数据、数据认证信息、密钥份额和对应的密钥份额签名发送给所述数据访问方;
所述各个共识节点中的其余共识节点中的发送模块用于:将本地存储的密钥份额和对应的密钥份额签名发送给所述数据访问方。
23.根据权利要求21所述的装置,其特征在于,所述各个共识节点中的其余共识节点中的发送模块用于:
将本地存储的数据认证信息和密钥份额发送给所述数据访问方。
24.根据权利要求21所述的装置,其特征在于,所述数据访问请求中还包括所述数据访问方的待验证权限信息和权限签名,所述装置还包括权限验证模块,用于:
在所述发送模块将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方或者将本地存储的密钥份额发送给所述数据访问方之前,根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;其中,根据所述权限签名对所述待验证权限信息进行有效性验证,并在所述待验证权限信息的有效性验证通过时,根据所述待验证权限信息确定所述数据访问方的访问权限验证通过。
25.根据权利要求24所述的装置,其特征在于,所述权限验证模块用于:
将所述待验证权限信息与访问准入条件信息进行匹配,其中,所述访问准入条件信息是由所述数据所有方写入的;
若匹配结果为设定匹配结果,则确定所述数据访问方的访问权限验证通过。
26.根据权利要求25所述的装置,其特征在于,所述访问准入条件信息中包括允许所述数据所有方访问所述目标密文数据的条件信息。
27.根据权利要求24所述的装置,其特征在于,所述权限验证模块用于:
根据所述待验证权限信息和所述权限签名确定所述数据访问方的访问权限验证通过;或者,
对所述待验证权限信息和所述权限签名进行共识处理,并在达成共识后确定所述数据访问方的访问权限验证通过。
28.根据权利要求21所述的装置,其特征在于,所述获得模块还用于:
在所述发送模块将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方或者将本地存储的密钥份额发送给所述数据访问方之后,获得所述数据访问方发起的数据重传请求,其中,所述数据重传请求中包括所述目标数据标识,所述数据重传请求是所述数据访问方在确定对所述目标密文数据解密失败时重新发起的数据访问请求;
所述发送模块还用于:
将本地存储的目标密文数据发送给所述数据访问方,或者,将本地存储的目标密文数据和数据认证信息发送给所述数据访问方,或者,将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方。
29.一种区块链系统,其特征在于,包括至少两个共识节点,其中:
各个共识节点用于分别获得数据所有方发送的数据写入请求,其中,各数据写入请求中包括相同的目标密文数据和彼此不同的密钥份额,所述目标密文数据是所述数据所有方以目标密钥对明文数据进行对称加密处理得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的;并对所述目标密文数据进行共识处理;以及在确定对所述目标密文数据达成共识后,确定所述目标密文数据对应的数据认证信息,并分别保存获得的目标密文数据、数据认证信息和密钥份额。
30.一种区块链系统,其特征在于,包括至少两个共识节点,其中:
各个共识节点用于获得数据访问方发起的数据访问请求,其中,所述数据访问请求中包括用于指示目标密文数据的目标数据标识,所述各个共识节点本地存储有相同的目标密文数据、数据认证信息和彼此不同的密钥份额,所述目标密文数据是数据所有方以目标密钥对明文数据进行对称加密得到的,各密钥份额是所述数据所有方通过秘密共享机制将所述目标密钥进行拆分得到的,各数据认证信息是所述各个共识节点分别确定的所述目标密文数据对应的认证信息;
所述各个共识节点中的目标共识节点用于将本地存储的目标密文数据、数据认证信息和密钥份额发送给所述数据访问方,以及所述各个共识节点中的其余共识节点用于将本地存储的密钥份额发送给所述数据访问方,以用于所述数据访问方根据预定数量且不同的密钥份额确定所述目标密钥以及根据所述数据认证信息对所述目标密文数据进行认证,并在所述目标密文数据认证通过时根据所述目标密钥对所述目标密文数据解密。
31.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可读程序,所述计算机可读程序用于执行根据权利要求1-6中任一项所述的方法,或者用于执行根据权利要求7-15中任一项所述的方法。
CN202110634778.8A 2021-06-08 2021-06-08 一种区块链数据写入、访问方法及装置 Pending CN113098696A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110634778.8A CN113098696A (zh) 2021-06-08 2021-06-08 一种区块链数据写入、访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110634778.8A CN113098696A (zh) 2021-06-08 2021-06-08 一种区块链数据写入、访问方法及装置

Publications (1)

Publication Number Publication Date
CN113098696A true CN113098696A (zh) 2021-07-09

Family

ID=76664458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110634778.8A Pending CN113098696A (zh) 2021-06-08 2021-06-08 一种区块链数据写入、访问方法及装置

Country Status (1)

Country Link
CN (1) CN113098696A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN110009346A (zh) * 2019-03-11 2019-07-12 巍乾全球技术有限责任公司 用于拆分和恢复密钥的方法、程序产品、存储介质和系统
CN111565109A (zh) * 2020-07-16 2020-08-21 百度在线网络技术(北京)有限公司 一种区块链的密钥处理方法、装置、设备和介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN110009346A (zh) * 2019-03-11 2019-07-12 巍乾全球技术有限责任公司 用于拆分和恢复密钥的方法、程序产品、存储介质和系统
CN111565109A (zh) * 2020-07-16 2020-08-21 百度在线网络技术(北京)有限公司 一种区块链的密钥处理方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN111066286B (zh) 使用高可用性的可信执行环境检索区块链网络的公共数据
CN110875821B (zh) 密码学区块链互操作
Kaaniche et al. A blockchain-based data usage auditing architecture with enhanced privacy and availability
CN112311735B (zh) 可信认证方法,网络设备、系统及存储介质
US8989390B2 (en) Certify and split system and method for replacing cryptographic keys
CN110914851A (zh) 提高区块链网络与外部数据源之间的通信的完整性
CN113259123B (zh) 一种区块链数据写入、访问方法及装置
CN113098697B (zh) 一种区块链数据写入、访问方法及装置
CN116112184A (zh) 采用可信硬件的安全动态阈值签名方案
WO2022199290A1 (zh) 多方安全计算
KR102179497B1 (ko) 멀티 클라우드 기반의 데이터 저장 및 관리 시스템 및 그 구동방법
CN112651037A (zh) 区块链系统的链外数据访问方法和系统
CN111131336B (zh) 多方授权场景下的资源访问方法、装置、设备及存储介质
CN111932261A (zh) 一种基于可验证声明的资产数据管理方法和装置
JP2002529778A (ja) 共有無作為性の分散暗号化への組み込み
CN113259124A (zh) 一种区块链数据写入、访问方法及装置
CN109302442B (zh) 一种数据存储证明方法及相关设备
Said et al. A multi-factor authentication-based framework for identity management in cloud applications
CN111651740B (zh) 一种面向分布式智能嵌入式系统的可信平台共享系统
CN114117471A (zh) 机密数据管理方法、电子设备、存储介质及程序产品
CN113098696A (zh) 一种区块链数据写入、访问方法及装置
Akshay et al. Dynamic list based data integrity verification in cloud environment
CN113556365B (zh) 认证结果数据传输系统、方法及装置
CN117395000B (zh) 多方授权方法、多方授权设备以及可读存储介质
CN114117553B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210709