CN112073467A - 基于区块链的数据传输方法、装置、存储介质及电子设备 - Google Patents

基于区块链的数据传输方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112073467A
CN112073467A CN202010802670.0A CN202010802670A CN112073467A CN 112073467 A CN112073467 A CN 112073467A CN 202010802670 A CN202010802670 A CN 202010802670A CN 112073467 A CN112073467 A CN 112073467A
Authority
CN
China
Prior art keywords
data
node
target data
blockchain
public key
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
CN202010802670.0A
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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN202010802670.0A priority Critical patent/CN112073467A/zh
Publication of CN112073467A publication Critical patent/CN112073467A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption

Abstract

本公开涉及一种基于区块链的数据传输方法、装置、存储介质及电子设备,以在实现提升区块链性能的同时确保数据安全可信传输的目的。区块链中的数据提供方节点的数据存储在数据提供方节点的本地,数据的摘要信息存储在区块链中,方法包括:数据提供方节点在接收到区块链中的数据需求方节点发送的数据获取请求的情况下,根据目标数据的标识确定目标数据,其中,数据需求方节点是根据所述区块链中存储的所述摘要信息获取所述目标数据的标识的;根据预定的加密方式对目标数据进行加密,得到加密后的目标数据;将加密后的目标数据发送给所述数据需求方节点,以由数据需求放节点根据与加密方式对应的解密方式对加密后的目标数据进行解密,得到目标数据。

Description

基于区块链的数据传输方法、装置、存储介质及电子设备
技术领域
本公开涉及计算机技术领域,具体地,涉及一种基于区块链的数据传输方法、装置、存储介质及电子设备。
背景技术
目前,随着计算机技术及网络通信应用的日益广泛以及不同领域的业务种类的日益丰富,通过网络进行安全可信的数据传输变得越来越重要。区块链技术是一种分布式、去中心、去信任的网络数据共识存储技术,其基于独特的区块(Block)生成机制和P2P(Pointto Point,点对点)网络通信机制实现了分布式计算的同步性问题。
对传统的区块链而言,任一区块链节点都可以将其数据(例如交易数据)存储在区块链中,这样,位于同一区块链中的任一节点均可以获取到该区块链中存储的数据,即,实现不同节点之间数据的安全可信传输。然而,区块链中节点数量较多,且节点的数据相对较大,如果将数据存储在区块链中,会占用较多的存储空间,并且区块链中的任一节点都需要从区块链中获取数据,导致区块链网络拥堵,如此,使得区块链的性能较差。但是,如果不将数据存储在区块链中,又无法保证数据的安全可信传输。因此,如何在提升区块链性能的同时确保数据安全可信传输是一个待解决的问题。
发明内容
本公开的目的是提供一种基于区块链的数据传输方法、装置、存储介质及电子设备,以实现在提升区块链性能的同时确保数据安全可信传输的目的。
为了实现上述目的,本公开第一方面提供一种基于区块链的数据传输方法,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中,所述方法包括:
所述数据提供方节点在接收到所述区块链中的数据需求方节点发送的数据获取请求的情况下,根据所述数据获取请求包括的目标数据的标识确定所述目标数据,其中,所述数据需求方节点是根据所述区块链中存储的所述摘要信息获取所述目标数据的标识的;
根据预定的加密方式对所述目标数据进行加密,得到加密后的目标数据;
将所述加密后的目标数据发送给所述数据需求方节点,以由所述数据需求放节点根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述根据预定的加密方式对所述目标数据进行加密,包括:
根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
利用所述公钥实体对所述目标数据进行加密。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述根据预定的加密方式对所述目标数据进行加密,包括:
生成随机密码;
根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
利用所述公钥实体对所述随机密码进行加密,并将加密后的随机密码发送给所述数据需求方节点;
根据所述随机密码构造对称密钥,并利用所述对称密钥对所述目标数据进行加密;
其中,所述数据需求方节点利用与所述公钥实体对应的私钥实体对所述加密后的随机密码进行解密得到所述随机密码,根据所述随机密码得到所述对称密钥,并利用该对称密钥对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述数据获取请求还包括会话标识;所述公钥信息还包括密钥对标识,相应地,所述根据所述数据获取请求包括的目标数据的标识确定所述目标数据,包括:
对所述会话标识进行解码,得到会话标识原文和签名数据,其中,所述会话标识原文包括所述数据需求方节点的标识和所述密钥对标识;
根据所述数据需求方节点的标识和所述密钥对标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
利用所述公钥实体对所述会话标识原文和所述签名数据进行验证;
在验证通过的情况下,根据所述目标数据的标识确定所述目标数据。
可选地,所述会话标识原文还包括所述会话标识原文的生成时刻;在所述根据所述数据需求方节点的标识和所述密钥对标识,从所述区块链中获取所述数据需求方节点的公钥信息之前,还包括:
确定当前时刻与所述生成时刻的时间差小于或等于预设时间。
可选地,所述公钥信息还包括密钥类型、密钥编码格式、密钥状态和所述密钥所属节点的标识,其中,所述密钥状态包括启用或禁用;所述私钥信息包括所述公钥信息和私钥实体。
可选地,所述区块链中存储有所述目标数据的授权列表;在所述根据预定的加密方式对所述目标数据进行加密之前,所述方法还包括:
确定所述数据需求方节点的标识位于所述授权列表中。
本公开第二方面提供一种基于区块链的数据传输方法,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中;方法应用于所述区块链中的数据需求方节点,所述方法包括:
向所述区块链中的数据提供方节点发送数据获取请求,以由所述数据提供方节点根据本公开第一方面所提供的所述的方法将加密后的目标数据发送给所述数据需求方节点;
接收所述数据提供方节点发送的加密后的目标数据;
根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,在得到所述目标数据之后,所述方法还包括:
根据预定的数据摘要算法确定所述目标数据的摘要信息;
从所述区块链中获取所述目标数据的摘要信息;
在所确定的摘要信息与从所述区块链中获取的摘要信息一致的情况下,确定所述目标数据传输正常。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述公钥信息包括公钥实体和密钥对标识;所述数据获取请求还包括会话标识;所述会话标识通过以下方式获得:
根据所述数据需求方节点的标识、所述密钥对标识和所述会话标识原文的生成时刻生成会话标识原文;
利用所述私钥信息中包括的私钥实体对所述会话标识原文进行签名得到签名数据;
分别对所述会话标识原文和所述签名数据进行编码,并将编码后的会话标识原文和编码后的签名数据进行拼接,以得到所述会话标识。
本公开第三方面提供一种基于区块链的数据传输装置,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中,所述装置包括:
第一确定模块,用于所述数据提供方节点在接收到所述区块链中的数据需求方节点发送的数据获取请求的情况下,根据所述数据获取请求包括的目标数据的标识确定所述目标数据,其中,所述数据需求方节点是根据所述区块链中存储的所述摘要信息获取所述目标数据的标识的;
加密模块,用于根据预定的加密方式对所述目标数据进行加密,得到加密后的目标数据;
第一发送模块,用于将所述加密后的目标数据发送给所述数据需求方节点,以由所述数据需求放节点根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述加密模块包括:
第一获取子模块,用于根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
第一加密子模块,用于利用所述公钥实体对所述目标数据进行加密。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述加密模块包括:
生成子模块,用于生成随机密码;
第二获取子模块,用于根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
第二加密子模块,用于利用所述公钥实体对所述随机密码进行加密,并将加密后的随机密码发送给所述数据需求方节点;
第三加密子模块,用于根据所述随机密码构造对称密钥,并利用所述对称密钥对所述目标数据进行加密;
其中,所述数据需求方节点利用与所述公钥实体对应的私钥实体对所述加密后的随机密码进行解密得到所述随机密码,根据所述随机密码得到所述对称密钥,并利用该对称密钥对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述数据获取请求还包括会话标识;所述公钥信息还包括密钥对标识,相应地,所述第一确定模块包括:
解码子模块,用于对所述会话标识进行解码,得到会话标识原文和签名数据,其中,所述会话标识原文包括所述数据需求方节点的标识和所述密钥对标识;
第三获取子模块,用于根据所述数据需求方节点的标识和所述密钥对标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
验证子模块,用于利用所述公钥实体对所述会话标识原文和所述签名数据进行验证;
第一确定子模块,用于在验证通过的情况下,根据所述目标数据的标识确定所述目标数据。
可选地,所述会话标识原文还包括所述会话标识原文的生成时刻;所述第一确定模块还包括:
第二确定子模块,用于确定当前时刻与所述生成时刻的时间差小于或等于预设时间。
可选地,所述区块链中存储有所述目标数据的授权列表;所述装置还包括:
第二确定模块,用于确定所述数据需求方节点的标识位于所述授权列表中。
本公开第四方面提供一种基于区块链的数据传输装置,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中;装置应用于所述区块链中的数据需求方节点,所述装置包括:
第二发送模块,用于向所述区块链中的数据提供方节点发送数据获取请求,以由所述数据提供方节点根据本公开第一方面所提供的所述的方法将加密后的目标数据发送给所述数据需求方节点;
接收模块,用于接收所述数据提供方节点发送的加密后的目标数据;
解密模块,用于根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述装置还包括:
第三确定模块,用于根据预定的数据摘要算法确定所述目标数据的摘要信息;
获取模块,用于从所述区块链中获取所述目标数据的摘要信息;
第四确定模块,用于在所确定的摘要信息与从所述区块链中获取的摘要信息一致的情况下,确定所述目标数据传输正常。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述公钥信息包括公钥实体和密钥对标识;所述数据获取请求还包括会话标识;所述装置还包括:
生成模块,用于根据所述数据需求方节点的标识、所述密钥对标识和所述会话标识原文的生成时刻生成会话标识原文;
签名模块,用于利用所述私钥信息中包括的私钥实体对所述会话标识原文进行签名得到签名数据;
编码模块,用于分别对所述会话标识原文和所述签名数据进行编码,并将编码后的会话标识原文和编码后的签名数据进行拼接,以得到所述会话标识。
本公开第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所提供的所述方法的步骤。
本公开第六方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第二方面所提供的所述方法的步骤。
本公开第七方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所提供的所述方法的步骤。
本公开第八方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第二方面所提供的所述方法的步骤。
采用上述方式,数据需求方节点可以根据区块链中存储的摘要信息获取目标数据的标识,这样,数据需求方节点发送的数据获取请求就可以包括目标数据的标识,数据提供方节点即可根据该目标数据的标识确定出目标数据,并将加密后的目标数据直接发送给数据需求方节点。如此,在根据区块链中的摘要信息确定出目标数据的标识之后,利用点对点P2P的方式直接将加密后的目标数据发送给数据需求方节点,无需经过区块链网络,也无需将目标数据缓存在区块链中,有效地减少了区块链带宽和存储空间的消耗,提升了区块链性能。并且,是对目标数据进行加密后再发送的,实现了在提升区块链性能的同时确保数据安全可信传输的目的。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种基于区块链的数据传输方法的流程图。
图2是根据一示例性实施例示出的一种基于区块链的数据传输方法的流程图。
图3是根据一示例性实施例示出的一种身份验证方法中数据需求方节点和数据提供方节点之间的交互图。
图4是根据一示例性实施例示出的一种数据加密解密方法的流程图。
图5是根据另一示例性实施例示出的一种数据加密解密方法的流程图。
图6是根据一示例性实施例示出的一种基于区块链的数据传输装置的框图。
图7是根据一示例性实施例示出的一种基于区块链的数据传输装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
在详细描述本公开所提供的基于区块链的数据传输方法、装置、存储介质及电子设备之前,首先对区块链进行简单介绍。区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链(Blockchain)。下面对区块链的一些概念进行介绍。
区块链中的节点可以称为区块链节点,其中区块链网络基于P2P(Peer to Peer,对等网络)网络,每个参与交易和区块存储、验证、转发的P2P网络节点都是一个区块链中的节点。在本公开中,区块链中的任一节点均可以作为数据提供方节点用于提供待传输的目标数据,以及,除该数据提供方节点之外的任一节点均可以可以作为数据需求方节点,用于从数据提供方节点中获取目标数据。
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
下面对本公开提供的基于区块链的数据传输方法、装置、存储介质及电子设备进行详细说明。图1是根据一示例性实施例示出的一种基于区块链的数据传输方法的流程图,该方法可以应用于区块链中的数据提供方节点。如图1所示,该方法可以包括以下步骤。
在步骤101中,在接收到区块链中的数据需求方节点发送的数据获取请求的情况下,根据数据获取请求包括的目标数据的标识确定目标数据。
在本公开中,数据提供方节点所提供的数据存储在该数据提供方节点的本地,数据的摘要信息存储在区块链中。数据的摘要信息为对数据提取到的指纹信息(即,唯一信息),是由数据摘要算法计算得到的。数据摘要算法也被称为哈希算法或者散列算法。其中,哈希算法或者散列算法均属于较为成熟的技术,此处不再赘述。
值得说明的是,区块链中存储有多个节点的数据的摘要信息,为了使所存储的摘要信息与数据一一对应,在本公开中,节点不仅仅将摘要信息存储在区块链中,还需将数据标识存储在区块链中。例如,可以将数据标识与数据的摘要信息关联存储在区块链中。又例如,还可以将数据标识、数据摘要算法和摘要信息等多种信息关联存储,等等。其中,数据标识可以为数据在数据提供方节点中的代理地址、数据对象标识等等,本公开对此不作具体限定。
由于区块链中的节点对存储在该区块链中的任一数据均具有访问的权限,因此,在本公开中,数据需求方节点具有访问摘要信息的权限,并可以根据摘要信息与数据标识的关联关系,确定出需要获取的目标数据的标识。如此,数据需求方节点发送的数据获取请求中可以包括目标数据的标识,以使数据提供方节点根据该目标数据的标识确定目标数据。
在步骤102中,根据预定的加密方式对目标数据进行加密,得到加密后的目标数据。
如上所述,为了减少区块链的带宽和存储空间的占用,提升区块链性能,数据提供方节点将数据存储在本地。而存储在本地的数据由于无法得到区块链的背书,在传输时可能会遭到非法篡改或者拦截,即,无法保证数据的安全可信传输。为了解决这一问题,在该实施例中,数据提供方节点可以对待传输的目标数据进行加密,以得到加密后的目标数据。其中,预定的加密方式可以为对称式加密方式(例如,RC4、RC2、DES和AES系列加密算法等)或非对称密钥加密(例如,RSA加密算法等)、数字证书等等。本公开对此不作具体限定。
在步骤103中,将加密后的目标数据发送给数据需求方节点。
采用上述方式,数据需求方节点可以根据区块链中存储的摘要信息获取目标数据的标识,这样,数据需求方节点发送的数据获取请求就可以包括目标数据的标识,数据提供方节点即可根据该目标数据的标识确定出目标数据,并将加密后的目标数据直接发送给数据需求方节点。如此,在根据区块链中的摘要信息确定出目标数据的标识之后,利用点对点P2P的方式直接将加密后的目标数据发送给数据需求方节点,无需经过区块链网络,也无需将目标数据缓存在区块链中,有效地减少了区块链带宽和存储空间的消耗,提升了区块链性能。并且,是对目标数据进行加密后再发送的,实现了在提升区块链性能的同时确保数据安全可信传输的目的。
图2是根据一示例性实施例示出的一种基于区块链的数据传输方法的流程图,该方法可以应用于区块链中的数据需求方节点。如图2所示,该方法可以包括以下步骤。
在步骤201中,向区块链中的数据提供方节点发送数据获取请求,以由数据提供方节点根图1所示的方法将加密后的目标数据发送给数据需求方节点。
在该实施例中,区块链中的数据提供方节点的数据存储在数据提供方节点的本地,数据的摘要信息存储在所述区块链中。
在步骤202中,接收数据提供方节点发送的加密后的目标数据。
在步骤203中,根据与加密方式对应的解密方式对加密后的目标数据进行解密,得到目标数据。
数据提供方节点在得到加密后的目标数据之后,直接将该加密后的目标数据发送给数据需求方节点。数据需求方节点在接收到加密后的目标数据之后,根据与加密方式对应的解密方式对加密后的目标数据进行解密,得到目标数据。值得说明的是,加密方式可以预先存储在区块链中,这样,数据需求方节点可以从区块链中获取到该加密方式,进而可以确定出与该加密方式对应的解密方式。
采用上述方式,数据需求方节点可以根据区块链中存储的摘要信息获取目标数据的标识,这样,数据需求方节点发送的数据获取请求就可以包括目标数据的标识,数据提供方节点即可以根据该目标数据的标识确定出目标数据,并将加密后的目标数据直接发送给数据需求方节点。如此,在根据区块链中的摘要信息确定出目标数据的标识之后,利用点对点P2P的方式直接将加密后的目标数据发送给数据需求方节点,无需经过区块链网络,也无需将目标数据缓存在区块链中,有效地减少了区块链带宽和存储空间的消耗,提升了区块链性能。并且,是对目标数据进行加密后再发送的,实现了在提升区块链性能的同时确保数据安全可信传输的目的。
下面以一个完整的实施例对本公开所提供的基于区块链的数据传输方法进行说明。
非对称密钥包括公钥和私钥,私钥本身带有身份标识特性,而公钥天然的带有检测身份标识的特性。目前,通常以中心化并官方审批的CA(Certificate Authority)机构为权威证明,对公钥部分进行签名并颁发证书,进而可以通过签名和验签规则来识别身份问题。在本质上,CA机构提供的是一个信任机制和不可篡改、不可抵赖的特性,从而使得其签发的证书具备取证效果。而区块链本身也具有可信任、不可篡改的特性,存储在区块链中的信息都是可信任的。申请人基于上述考虑,将非对称密钥中的公钥信息存储在区块链中,可以得到与CA机构颁发的签名证书相似的效果。因此,在本公开中,可以将数据需求方节点的公钥信息存储在区块链中,以及将与公钥信息对应的私钥信息存储在数据需求方节点的本地。
示例地,区块链中的任一节点都可以通过智能合约对该节点的公钥信息进行编辑和查看,其中,编辑可以包括增加、删除、修改等操作。为了保证任一节点的公钥信息的安全,在本公开中,智能合约能够保证只有公钥信息对应的节点可以对该公钥信息进行编辑,其他节点仅能够查看该公钥信息。例如,节点1的公钥信息,只有节点1具有编辑的权限,其他节点仅能够查看节点1的公钥信息。任一节点的私钥信息存在节点的本地,例如,可以存储在节点的磁盘、数据库、密钥设备等等。这样,私钥信息只有本节点持有。
在本公开中,公钥信息可以包括但不限于:密钥对标识、密钥类型(例如,RSA、SM4、ECC等非对称密钥的密钥对或证书等)、密钥编码格式(例如,PEM、Base64等编码格式等)、公钥实体、密钥状态(例如,启用或禁用)和密钥所属节点的标识。私钥信息可以包括但不限于:上述公钥信息和私钥实体。其中,公钥实体是指根据密钥类型和编码格式,将公钥或公钥证书序列化之后的结果,可以用字符串表征。私钥实体为根据密钥类型和编码格式,将私钥序列化之后的结果,也可以用字符串表征。
值得说明的是,区块链中的各节点也可以通过智能合约向区块链注册自身的元数据信息,包括但不限于以下信息:节点名称,节点标识、节点代理地址。
采用上述技术方案,将公钥信息存储在区块链中,将私钥信息存储在本地,这样,节点均可以不受CA机构的限制根据实际需求实时生成密钥,使得生成密钥效率更高,成本更低。并且,在密钥丢失、泄漏时可以及时更换密钥,密钥的安全性更高。
为了进一步提高数据传输的安全可信性,在本公开中,在将目标数据发送给数据需求方节点之前,还可以对数据需求方节点进行身份验证。
在分布式系统中,或者是单点登录,统一认证等架构下,通常通过Token(令牌)模式对用户的身份和登录状态做校验。在这类中心化的系统中,出于对安全特性、效率和性能的考虑,Token通常在服务端校验用户账户密码后,由服务端生成并被缓存。例如,前端向服务端请求服务时,首先,前端使用用户名/密码向服务端请求认证,服务端认证成功,那么服务端就会生成Token,并将Token返回给前端,同时服务端也会缓存该Token。前端在每次发送的请求中携带有Token,服务端将请求中的Token与缓存中的Token比较。而通常情况下,与服务端会话的前端较多,服务端缓存的Token数量较多,导致服务端的缓存压力较大。
发明人基于上述考虑,提供一种无需服务端生成、缓存会话标识而实现身份验证的方案。示例地,请参考图3,图3是根据一示例性实施例示出的一种身份验证方法中数据需求方节点和数据提供方节点之间的交互图。如图3所示,该方法包括以下步骤:
在步骤301中,数据需求方节点根据数据需求方节点的标识、密钥对标识和会话标识原文的生成时刻生成会话标识原文。
如上所述,数据需求方节点的私钥信息存储在本地,且私钥信息中包括密钥对标识,如此,数据需求方节点可以根据数据需求方节点的标识、密钥对标识以及会话标识原文的生成时刻,生成会话标识原文。其中,该会话标识可以为上文中的Token。
示例地,所生成的会话标识原文的形式可以为:数据需求方节点的标识+分隔符+生成时刻+分隔符+密钥对标识。又示例地,会话标识原文的形式可以为:数据需求方节点的标识+分隔符+生成时刻+分隔符+密钥对标识+分隔符+随机字符串,该随机字符串可以是32位,也可以是64位等。值得说明的是,会话标识原文还可以仅包括数据需求方节点的标识和密钥对标识,以及,会话标识原文的形式还可以是其他形式,本公开对会话标识原文包括的信息和会话原文的形式均不作具体限定。
在步骤302中,数据需求方节点利用私钥信息中包括的私钥实体对会话标识原文进行签名得到签名数据。
在步骤303中,数据需求方节点分别对会话标识原文和签名数据进行编码,并将编码后的会话标识原文和编码后的签名数据进行拼接,以得到会话标识。
示例地,可以对会话标识原文和签名数据分别进行Base64编码,之后,拼接得到的会话标识的形式可以为:会话标识原文的Base64编码+分隔符+签名数据的Base64编码。值得说明的是,其他编码方式也适用于本公开,本公开实施例中,以编码方式为Base64进行说明。
在步骤304中,数据需求方节点将携带会话标识的数据获取请求发送给数据提供方节点。
在步骤305中,数据提供方节点对会话标识进行解码,得到会话标识原文和签名数据。
示例地,数据提供方节点根据会话标识中的分隔符对会话标识进行拆分,分别得到会话标识原文的Base64编码和签名数据的Base64编码,之后,利用Base64解码,分别得到会话标识原文和签名数据。其中,所得到的会话标识原文中包括数据需求方节点的标识、密钥对标识和生成时刻。
在步骤306中,数据提供方节点根据数据需求方节点的标识和密钥对标识,从区块链中获取数据需求方节点的公钥信息。其中,公钥信息至少包括公钥实体。
在步骤307中,利用公钥实体对会话标识原文和签名数据进行验证。
示例地,可以采用相关技术中的验证方式,利用公钥实体对会话标识原文和签名数据进行验证,此处不再赘述。
在步骤308中,在验证通过的情况下,根据目标数据的标识确定目标数据。
在验证通过的情况下,数据提供方节点根据数据需求方节点的数据获取请求确定出目标数据,并对目标数据加密,之后,将加密后的目标数据发送给数据需求方节点。在验证未通过的情况下,为了避免将目标数据发送给非法用户,数据提供方节点可以忽略该数据获取请求,拒绝将目标数据发送给数据需求方节点。
在该实施例中,在对用户身份验证通过之后再确定目标数据,避免了将目标数据发送给非法用户的弊端,进一步提高了数据传输的安全可信性。
此外,在一种实施例中,如图3所示,在步骤306之前,上述方法还可以包括步骤309。
在步骤309中,确定当前时刻与生成时刻的时间差小于或等于预设时间。
通常情况下,如果对步骤304中的数据获取请求进行非法破解,则需要花费一段时间,因此,在本公开中,可以根据当前时刻与生成时刻的时间差确定该数据获取请求是否被非法破解或篡改。示例地,若当前时刻与生成时刻的时间差大于预设时间,则认为会话标识原文的生成时刻与数据提供方节点接收到数据获取请求的时刻相差较大,数据获取请求可能遭到非法破解或篡改。若当前时刻与生成时刻的时间差小于或等于预设时间,则认为会话标识原文的生成时刻与数据提供方节点接收到数据获取请求的时刻同步,数据获取请求未遭到非法破解或篡改。因此,在该实施例中,在确定当前时刻与生成时刻的时间差小于或等于预设时间的情况下,才执行步骤306。即,在数据提供方节点确定数据获取请求未被非法破解或篡改之后,从区块链中获取数据需求方节点的公钥信息,进一步提高了对身份验证的准确性。
在按照上述方式,数据提供方节点对数据需求方节点的身份验证通过之后,根据数据获取请求中包括的目标数据的标识确定目标数据,并对目标数据进行加密。
在实际应用中,虽然数据需求方节点为合法节点,但是,其并不一定具有获取目标数据的权限。因此,在对目标数据进行加密之前,还可以确定数据需求方节点是否具有获取目标数据的权限。示例地,数据提供方节点可以将目标数据的授权列表存储在区块链中,其中,授权列表中存储有已被授权获取目标数据的节点的标识。如此,数据提供方节点可以通过区块链确定数据需求方节点的标识是否为位于该授权列表中,并在确定数据需求方节点的标识位于该授权列表中时,根据预定的加密方式对目标数据进行加密。
其中,对目标数据进行加密的具体实施方式可以包括但不限于以下三种。
在第一种实施方式中,数据提供方节点根据数据获取请求中包括的数据需求方节点的标识,从区块链中获取数据需求方节点的公钥信息,该公钥信息至少包括公钥实体;利用公钥实体对目标数据进行加密。
示例地,请参考图4,图4是根据一示例性实施例示出的一种数据加密解密方法的流程图。如图4所示,首先,数据提供方节点将目标数据转换成数据流。即,将目标数据转换成一组顺序、大量、快速、连续到达的数据序列。接着,数据提供方节点根据预设的加解密的子数据流大小,获取子数据流。通常数据流的大小相对较大,因此,在该实施例中,可以采用先对数据流分解、加密、传输、解密、之后再进行合并的方式来实现对目标数据的传输。因此,需要获取加解密的子数据流大小,该子数据流大小可以是预先设定的,并将数据流分解到多个子数据流。接着,利用公钥实体对每个子数据流进行加密,得到加密后的子数据流之后,将加密后的子数据流发送给数据需求方节点。
数据需求方节点在接收到加密后的子数据流时,利用与该公钥实体对应的私钥实体进行解密,并将解密后的子数据流拼接,以得到完整的数据流,最后,数据需求方节点将该完整的数据流转换成目标数据。如此,可以提高数据传输速率。
在第二种实施方式中,可以采用非对称加密和对称加密的方式进行加密。具体地,首先,数据提供方节点生成随机密码。其中,可以参照相关技术随机生成密码,本公开对此不作限制。接着,数据提供方根据数据获取请求包括的数据需求方节点的标识,从区块链中获取数据需求方节点的公钥信息,公钥信息至少包括公钥实体;接着,数据提供方利用公钥实体对随机密码进行加密,并将加密后的随机密码发送给数据需求方节点;再接着,数据提供方根据随机密码构造对称密钥,并利用该对称密钥对目标数据进行加密。
示例地,请参考图5,图5是根据另一示例性实施例示出的一种数据加密解密方法的流程图。如图5所示,首先,数据提供方节点生成随机密码;接着,数据提供方节点获取数据需求方节点的公钥信息,以及,利用公钥实体对随机密码进行加密,并将加密后的随机密码发送给数据需求方节点。再接着,数据提供方节点将目标数据转换成数据流,根据预设的加解密的子数据流大小,获取子数据流。之后,数据提供方节点根据随机密码构造对称密钥,以及,利用对称密钥对每一子数据流进行加密得到加密后的子数据流,并加密后的子数据流发送给数据需求方节点。
数据需求方节点首先对加密后的随机密码进行解密。例如,利用与公钥实体对应的私钥实体进行解密,得到随机密码。接着,根据该随机密码构造对称密钥,最后,利用该对称密钥对加密后的每一子数据流进行解密,以得到多个子数据流,并将多个子数据流拼接成完整的数据流,最后,将该完整的数据流转换成目标数据。
值得说明的是,在本公开中,可以采用上述两种实施方式中的任一种实施方式对目标数据进行加解密。考虑到数据加解密的灵活性,在第三种实施方式中,可以根据所采用的非对称密钥确定使用哪一种实施方式。示例地,预先设置第一非对称密钥列表和第二非对称密钥列表,其中,第一非对称密钥列表中存储有加解密效率相对较高的非对称密钥,第二非对称密钥列表中存储有加解密效率相对较低的非对称密钥,第一非对称密钥列表和第二非对称密钥列表均可以依据经验设定。在所采用的非对称密钥位于第一非对称密钥列表中时,数据提供方节点可以采用上述第一种实施方式进行加解密,以及,在所采用的非对称密钥位于第二非对称密钥列表中时,数据提供方节点可以采用上述第二种实施方式进行加解密。
按照上述任一实施方式,数据需求方节点可以从数据提供方节点获取到目标数据。
数据需求方节点在获取到目标数据之后,还可以对其所获取的目标数据进行验证,以确定目标数据在传输过程中是否出现异常。示例地,数据需求方节点在接收到目标数据之后,首先,根据预定的摘要算法确定目标数据的摘要信息。
如前文所述,数据提供方节点可以将数据标识、数据摘要算法和摘要信息关联存储在区块链中,如此,数据需求方节点在获取数据标识时,也可以获得数据摘要算法,进而可以根据该数据摘要算法对目标数据进行计算,以计算得到目标数据的摘要信息。
接着,从区块链中获取目标数据的摘要信息。其中,本公开对从区块链中获取摘要信息,以及利用数据摘要算法确定摘要信息的步骤的执行顺序不作限制。例如,可以先执行从区块链中获取摘要信息的步骤,再执行利用数据摘要算法确定摘要信息的步骤,也可以先执行利用数据摘要算法确定摘要信息的步骤,再执行从区块链中获取摘要信息的步骤,还可以同时执行上述两个步骤。
最后,在所确定的摘要信息与从区块链中获取到的摘要信息一致的情况下,确定目标数据传输正常。
值得说明的是,利用数据摘要算法对目标数据进行计算,可以得到目标数据的摘要信息,而根据摘要信息是无法计算得出目标数据的。因此,在该实施例中,数据需求方节点在获取到目标数据之后,可以进一步计算得到目标数据的摘要信息,进而将计算得到的摘要信息和从区块链中得到的摘要信息比较,在一致的情况下,确定目标数据在传输过程中未被篡改。如此,可确保可所获取的目标数据的准确性。
此外,由于目标数据未存储在区块链中,因此,无法保证目标数据的可追踪性。在本公开一种实施例中,数据需求方节点可以将其获取目标数据的日志存储在区块链中,该日志中可以包括数据需求方节点的标识、数据提供节点的标识、目标数据的标识、发送数据获取请求是时间、获取到目标数据的时间等等。数据提供节点也可以将其提供目标数据的日志存储在区块链中,该日志可以包括数据需求方节点的标识、数据提供节点的标识、目标数据的标识、接收到数据获取请求是时间、发送目标数据的时间等等。如此,实现目标数据的可追踪性。
基于同一发明构思,本公开还提供一种基于区块链的数据传输装置。图6是根据一示例性实施例示出的一种基于区块链的数据传输装置的框图。所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中,如图6所示,基于区块链的数据传输装置600包括:
第一确定模块601,用于所述数据提供方节点在接收到所述区块链中的数据需求方节点发送的数据获取请求的情况下,根据所述数据获取请求包括的目标数据的标识确定所述目标数据,其中,所述数据需求方节点是根据所述区块链中存储的所述摘要信息获取所述目标数据的标识的;
加密模块602,用于根据预定的加密方式对所述目标数据进行加密,得到加密后的目标数据;
第一发送模块603,用于将所述加密后的目标数据发送给所述数据需求方节点,以由所述数据需求放节点根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述加密模块602包括:
第一获取子模块,用于根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
第一加密子模块,用于利用所述公钥实体对所述目标数据进行加密。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述加密模块602包括:
生成子模块,用于生成随机密码;
第二获取子模块,用于根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
第二加密子模块,用于利用所述公钥实体对所述随机密码进行加密,并将加密后的随机密码发送给所述数据需求方节点;
第三加密子模块,用于根据所述随机密码构造对称密钥,并利用所述对称密钥对所述目标数据进行加密;
其中,所述数据需求方节点利用与所述公钥实体对应的私钥实体对所述加密后的随机密码进行解密得到所述随机密码,根据所述随机密码得到所述对称密钥,并利用该对称密钥对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述数据获取请求还包括会话标识;所述公钥信息还包括密钥对标识,相应地,所述第一确定模块601包括:
解码子模块,用于对所述会话标识进行解码,得到会话标识原文和签名数据,其中,所述会话标识原文包括所述数据需求方节点的标识和所述密钥对标识;
第三获取子模块,用于根据所述数据需求方节点的标识和所述密钥对标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
验证子模块,用于利用所述公钥实体对所述会话标识原文和所述签名数据进行验证;
第一确定子模块,用于在验证通过的情况下,根据所述目标数据的标识确定所述目标数据。
可选地,所述会话标识原文还包括所述会话标识原文的生成时刻;所述第一确定模块601还包括:
第二确定子模块,用于确定当前时刻与所述生成时刻的时间差小于或等于预设时间。
可选地,所述公钥信息还包括密钥类型、密钥编码格式、密钥状态和所述密钥所属节点的标识,其中,所述密钥状态包括启用或禁用;所述私钥信息包括所述公钥信息和私钥实体。
可选地,所述区块链中存储有所述目标数据的授权列表;所述装置还包括:
第二确定模块,用于确定所述数据需求方节点的标识位于所述授权列表中。
图7是根据一示例性实施例示出的一种基于区块链的数据传输装置的框图。其中,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中;装置应用于所述区块链中的数据需求方节点,所述基于区块链的数据传输装置包括:
第二发送模块701,用于向所述区块链中的数据提供方节点发送数据获取请求,以由所述数据提供方节点根据本公开第一方面所提供的所述的方法将加密后的目标数据发送给所述数据需求方节点;
接收模块702,用于接收所述数据提供方节点发送的加密后的目标数据;
解密模块703,用于根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
可选地,所述装置还包括:
第三确定模块,用于根据预定的数据摘要算法确定所述目标数据的摘要信息;
获取模块,用于从所述区块链中获取所述目标数据的摘要信息;
第四确定模块,用于在所确定的摘要信息与从所述区块链中获取的摘要信息一致的情况下,确定所述目标数据传输正常。
可选地,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述公钥信息包括公钥实体和密钥对标识;所述数据获取请求还包括会话标识;所述装置还包括:
生成模块,用于根据所述数据需求方节点的标识、所述密钥对标识和所述会话标识原文的生成时刻生成会话标识原文;
签名模块,用于利用所述私钥信息中包括的私钥实体对所述会话标识原文进行签名得到签名数据;
编码模块,用于分别对所述会话标识原文和所述签名数据进行编码,并将编码后的会话标识原文和编码后的签名数据进行拼接,以得到所述会话标识。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备的框图。如图8所示,该电子设备800可以包括:处理器801,存储器802。该电子设备800还可以包括多媒体组件803,输入/输出(I/O)接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该电子设备800的整体操作,以完成上述的应用于数据提供方节点的基于区块链的数据传输方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的应用于数据提供方节点的基于区块链的数据传输方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的应用于数据提供方节点的基于区块链的数据传输方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的应用于数据提供方节点的基于区块链的数据传输方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的应用于数据提供方节点的基于区块链的数据传输方法的代码部分。
图9是根据一示例性实施例示出的一种电子设备的框图。如图9所示,该电子设备900可以包括:处理器901,存储器902。该电子设备900还可以包括多媒体组件903,输入/输出(I/O)接口904,以及通信组件905中的一者或多者。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的应用于数据需求方节点的基于区块链的数据传输方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的应用于数据需求方节点的基于区块链的数据传输方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的应用于数据需求方节点的基于区块链的数据传输方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的应用于数据需求方节点的基于区块链的数据传输方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的应用于数据需求方节点的基于区块链的数据传输方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (10)

1.一种基于区块链的数据传输方法,其特征在于,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中,所述方法包括:
所述数据提供方节点在接收到所述区块链中的数据需求方节点发送的数据获取请求的情况下,根据所述数据获取请求包括的目标数据的标识确定所述目标数据,其中,所述数据需求方节点是根据所述区块链中存储的所述摘要信息获取所述目标数据的标识的;
根据预定的加密方式对所述目标数据进行加密,得到加密后的目标数据;
将所述加密后的目标数据发送给所述数据需求方节点,以由所述数据需求放节点根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述根据预定的加密方式对所述目标数据进行加密,包括:
根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
利用所述公钥实体对所述目标数据进行加密。
3.根据权利要求1所述的方法,其特征在于,所述数据需求方节点的公钥信息存储在所述区块链中,以及与所述公钥信息对应的私钥信息存储在所述数据需求方节点的本地,所述根据预定的加密方式对所述目标数据进行加密,包括:
生成随机密码;
根据所述数据获取请求包括的所述数据需求方节点的标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
利用所述公钥实体对所述随机密码进行加密,并将加密后的随机密码发送给所述数据需求方节点;
根据所述随机密码构造对称密钥,并利用所述对称密钥对所述目标数据进行加密;
其中,所述数据需求方节点利用与所述公钥实体对应的私钥实体对所述加密后的随机密码进行解密得到所述随机密码,根据所述随机密码得到所述对称密钥,并利用该对称密钥对所述加密后的目标数据进行解密,得到所述目标数据。
4.根据权利要求2或3所述的方法,其特征在于,所述数据获取请求还包括会话标识;所述公钥信息还包括密钥对标识,相应地,所述根据所述数据获取请求包括的目标数据的标识确定所述目标数据,包括:
对所述会话标识进行解码,得到会话标识原文和签名数据,其中,所述会话标识原文包括所述数据需求方节点的标识和所述密钥对标识;
根据所述数据需求方节点的标识和所述密钥对标识,从所述区块链中获取所述数据需求方节点的公钥信息,所述公钥信息至少包括公钥实体;
利用所述公钥实体对所述会话标识原文和所述签名数据进行验证;
在验证通过的情况下,根据所述目标数据的标识确定所述目标数据。
5.一种基于区块链的数据传输方法,其特征在于,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中;方法应用于所述区块链中的数据需求方节点,所述方法包括:
向所述区块链中的数据提供方节点发送数据获取请求,以由所述数据提供方节点根据如权利要求1-4中任一项所述的方法将加密后的目标数据发送给所述数据需求方节点;
接收所述数据提供方节点发送的加密后的目标数据;
根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
6.一种基于区块链的数据传输装置,其特征在于,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中,所述装置包括:
第一确定模块,用于所述数据提供方节点在接收到所述区块链中的数据需求方节点发送的数据获取请求的情况下,根据所述数据获取请求包括的目标数据的标识确定所述目标数据,其中,所述数据需求方节点是根据所述区块链中存储的所述摘要信息获取所述目标数据的标识的;
加密模块,用于根据预定的加密方式对所述目标数据进行加密,得到加密后的目标数据;
第一发送模块,用于将所述加密后的目标数据发送给所述数据需求方节点,以由所述数据需求放节点根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
7.一种基于区块链的数据传输装置,其特征在于,所述区块链中的数据提供方节点的数据存储在所述数据提供方节点的本地,所述数据的摘要信息存储在所述区块链中;装置应用于所述区块链中的数据需求方节点,所述装置包括:
第二发送模块,用于向所述区块链中的数据提供方节点发送数据获取请求,以由所述数据提供方节点根据如权利要求1-4中任一项所述的方法将加密后的目标数据发送给所述数据需求方节点;
接收模块,用于接收所述数据提供方节点发送的加密后的目标数据;
第一解密模块,用于根据与所述加密方式对应的解密方式对所述加密后的目标数据进行解密,得到所述目标数据。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-4中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求5所述方法的步骤。
CN202010802670.0A 2020-08-11 2020-08-11 基于区块链的数据传输方法、装置、存储介质及电子设备 Pending CN112073467A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010802670.0A CN112073467A (zh) 2020-08-11 2020-08-11 基于区块链的数据传输方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010802670.0A CN112073467A (zh) 2020-08-11 2020-08-11 基于区块链的数据传输方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN112073467A true CN112073467A (zh) 2020-12-11

Family

ID=73661126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010802670.0A Pending CN112073467A (zh) 2020-08-11 2020-08-11 基于区块链的数据传输方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112073467A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297625A (zh) * 2021-07-23 2021-08-24 北京笔新互联网科技有限公司 基于区块链的数据共享系统、方法和电子设备
CN113468600A (zh) * 2021-06-30 2021-10-01 建信金融科技有限责任公司 一种数据授权方法、装置和设备
CN113821811A (zh) * 2021-08-26 2021-12-21 上海赢科信息技术有限公司 基于区块链的数据获取方法及系统、电子设备及存储介质
CN113852469A (zh) * 2021-09-24 2021-12-28 成都质数斯达克科技有限公司 区块链节点间数据传输方法、装置、设备及可读存储介质
CN114285632A (zh) * 2021-12-23 2022-04-05 成都质数斯达克科技有限公司 一种区块链数据传输方法、装置和设备及可读存储介质
CN114697077A (zh) * 2022-02-24 2022-07-01 国网江西省电力有限公司供电服务管理中心 电能数据的传输方法、装置、存储介质及计算机设备
CN114900324A (zh) * 2022-02-11 2022-08-12 北京中电飞华通信有限公司 基于odin的数据交互方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503995A (zh) * 2016-11-17 2017-03-15 中国银行股份有限公司 一种数据分享方法、源节点、目标节点及系统
CN109033855A (zh) * 2018-07-18 2018-12-18 腾讯科技(深圳)有限公司 一种基于区块链的数据传输方法、装置及存储介质
CN109101841A (zh) * 2018-08-27 2018-12-28 深圳前海益链网络科技有限公司 一种数据处理方法、装置、系统、计算机设备和存储介质
WO2019127531A1 (zh) * 2017-12-29 2019-07-04 深圳前海达闼云端智能科技有限公司 基于区块链的数据处理方法、装置、存储介质及电子设备
CN110781509A (zh) * 2019-10-28 2020-02-11 腾讯科技(深圳)有限公司 数据验证方法、装置、存储介质和计算机设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503995A (zh) * 2016-11-17 2017-03-15 中国银行股份有限公司 一种数据分享方法、源节点、目标节点及系统
WO2019127531A1 (zh) * 2017-12-29 2019-07-04 深圳前海达闼云端智能科技有限公司 基于区块链的数据处理方法、装置、存储介质及电子设备
CN109033855A (zh) * 2018-07-18 2018-12-18 腾讯科技(深圳)有限公司 一种基于区块链的数据传输方法、装置及存储介质
CN109101841A (zh) * 2018-08-27 2018-12-28 深圳前海益链网络科技有限公司 一种数据处理方法、装置、系统、计算机设备和存储介质
CN110781509A (zh) * 2019-10-28 2020-02-11 腾讯科技(深圳)有限公司 数据验证方法、装置、存储介质和计算机设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468600A (zh) * 2021-06-30 2021-10-01 建信金融科技有限责任公司 一种数据授权方法、装置和设备
CN113468600B (zh) * 2021-06-30 2023-04-28 建信金融科技有限责任公司 一种数据授权方法、装置和设备
CN113297625A (zh) * 2021-07-23 2021-08-24 北京笔新互联网科技有限公司 基于区块链的数据共享系统、方法和电子设备
CN113297625B (zh) * 2021-07-23 2021-11-02 北京笔新互联网科技有限公司 基于区块链的数据共享系统、方法和电子设备
CN113821811A (zh) * 2021-08-26 2021-12-21 上海赢科信息技术有限公司 基于区块链的数据获取方法及系统、电子设备及存储介质
CN113821811B (zh) * 2021-08-26 2023-08-29 上海赢科信息技术有限公司 基于区块链的数据获取方法及系统、电子设备及存储介质
CN113852469A (zh) * 2021-09-24 2021-12-28 成都质数斯达克科技有限公司 区块链节点间数据传输方法、装置、设备及可读存储介质
CN113852469B (zh) * 2021-09-24 2024-03-22 成都质数斯达克科技有限公司 区块链节点间数据传输方法、装置、设备及可读存储介质
CN114285632A (zh) * 2021-12-23 2022-04-05 成都质数斯达克科技有限公司 一种区块链数据传输方法、装置和设备及可读存储介质
CN114900324A (zh) * 2022-02-11 2022-08-12 北京中电飞华通信有限公司 基于odin的数据交互方法及相关设备
CN114697077A (zh) * 2022-02-24 2022-07-01 国网江西省电力有限公司供电服务管理中心 电能数据的传输方法、装置、存储介质及计算机设备

Similar Documents

Publication Publication Date Title
CN108235806B (zh) 安全访问区块链的方法、装置、系统、存储介质及电子设备
CN112073467A (zh) 基于区块链的数据传输方法、装置、存储介质及电子设备
US10657293B1 (en) Field-programmable gate array based trusted execution environment for use in a blockchain network
US10142107B2 (en) Token binding using trust module protected keys
US9800416B2 (en) Distributed validation of digitally signed electronic documents
US11930103B2 (en) Method, user device, management device, storage medium and computer program product for key management
CN101212293B (zh) 一种身份认证方法及系统
US10880100B2 (en) Apparatus and method for certificate enrollment
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
US20230254129A1 (en) Key management for multi-party computation
CN106941404B (zh) 密钥保护方法及装置
KR20080004165A (ko) 브로드캐스트 암호화를 이용한 디바이스 인증 방법
CN110611657A (zh) 一种基于区块链的文件流处理的方法、装置及系统
CN111683090A (zh) 一种基于分布式存储的区块链数字签名方法及装置
CN114697040A (zh) 一种基于对称密钥的电子签章方法和系统
CN110999202A (zh) 用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法
KR20210063378A (ko) 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법
CN113868684A (zh) 一种签名方法、装置、服务端、介质以及签名系统
TW202232913A (zh) 共享金鑰產生技術
CN111049738B (zh) 基于混合加密的电子邮件数据安全保护方法
CN113259722B (zh) 一种安全视频物联网密钥管理方法、装置和系统
CN114338648A (zh) 一种基于国密算法的sftp多端文件安全传输的方法及系统
CN116318784B (zh) 身份认证方法、装置、计算机设备和存储介质
CN110048852B (zh) 基于非对称密钥池的量子通信服务站数字签密方法和系统
CN111382451A (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