CN110166411B - 一种数据传输方法、装置和网络节点 - Google Patents

一种数据传输方法、装置和网络节点 Download PDF

Info

Publication number
CN110166411B
CN110166411B CN201810151008.6A CN201810151008A CN110166411B CN 110166411 B CN110166411 B CN 110166411B CN 201810151008 A CN201810151008 A CN 201810151008A CN 110166411 B CN110166411 B CN 110166411B
Authority
CN
China
Prior art keywords
data
information
node
key
transaction
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
CN201810151008.6A
Other languages
English (en)
Other versions
CN110166411A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810151008.6A priority Critical patent/CN110166411B/zh
Publication of CN110166411A publication Critical patent/CN110166411A/zh
Application granted granted Critical
Publication of CN110166411B publication Critical patent/CN110166411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • 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
    • 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/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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • 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/40Network security protocols

Abstract

公开了一种数据传输方法、装置和网络节点,所述方法包括:第一节点获得数据信息和第一区块链上记录的数据的密钥信息;根据所述数据信息得到加密数据,以及根据所述数据的密钥信息获得密钥;利用所述密钥对所述加密数据进行解密得到数据。本方法利用区块链上数据共享的特性,使得请求方第一节点可以从区块链的任意一个区块链节点上直接获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟。

Description

一种数据传输方法、装置和网络节点
技术领域
本申请涉及通信领域,尤其涉及一种数据传输方法、装置和网络节点。
背景技术
在目前通信系统中,为了降低用户获取服务的延迟,提出了移动边缘计算的方法。即在靠近用户的地方(例如基站或路由器上)存储数据为用户提供服务,但是服务或数据的提供仍然受制于垄断的第三方。
另外,内容分发网络(Content Delivery Network,CDN)其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
但无论是边缘计算还是内容分发网络,在目前通信系统中,大部分的服务或数据都被集中在一定的中心平台为用户提供服务。在这种模式下,存在两个主要的问题:一方面数据和业务的提供方,受制于垄断平台,数据或业务的提供方的利益不能真正被保护。另一个方面是数据存储在云中心或服务器,用户在获取服务或数据的时候,需要集中从中心获得,从网络传输的角度,相当于同样的数据要重复在网络中发送。
因此,在提供方所提供的服务和数据直接提供给用户的过程中,如何保证业务或者所提供的数据或服务的安全性、且同时降低网络传输负载是本领域技术人员需要解决的问题。
发明内容
本申请提供了一种数据传输方法、装置和网络节点,所述方法可以应用于物联网场景,目的是实现网络节点间资源的访问和共享。
第一方面,本申请提供了一种数据传输方法,该方法可以应用于数据请求一方,例如第一节点,所述方法包括:第一节点获取数据信息和来自第一区块链节点的数据的密钥信息,根据所述数据信息得到加密数据,以及根据所述数据的密钥信息得到密钥,以及利用所述密钥对所述加密数据进行解密得到数据。
其中,所述数据信息包括:加密数据或加密数据的地址信息,所述加密数据的地址信息用于指示所述加密数据的位置。
其中,所述数据的密钥信息包括,所述被加密数据的密钥信息或者所述存储被加密的数据的地址信息。需要特别说明的是,所述数据的密钥信息可以由第一节点的公钥加密后生成。
本方面提供的方法,利用区块链上数据共享的特性,使得请求方例如第一节点可以从区块链的任意一个区块链节点上直接获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟。
此外,第一节点通过第一区块链节点获得数据的密钥信息,由于该数据的密钥信息经第一节点的公钥加密,所以被授权的第一节点能够解密和读取该数据,其它节点不能解密和访问所述数据,从而提高了数据传输的安全性。
在一种可能的实现方式中,所述根据所述数据的密钥信息获得密钥,包括:在所述数据的密钥信息为被加密的数据密钥时,所述第一节点利用自己的私钥对所述被加密的数据密钥进行解密得到所述密钥。或者,
在另一种可能的实现方式中,所述数据的密钥信息为存储被加密的数据密钥的地址信息时,所述第一节点根据所述地址信息查找到被加密的数据密钥,以及利用自己的私钥对所述被加密的数据密钥进行解密得到所述密钥。
当数据的密钥信息为被加密的数据密钥或者数据密钥的地址信息时,避免了数据密钥在网络中被明文发送,进而防止中间网络节点在转发过程中得到直接得到数据密钥,进一步提高了数据传输的安全性和可靠性。
在另一种可能的实现方式中,所述第一节点获得来自第一区块链节点的数据的密钥信息,包括:第一节点获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;根据所述交易索引信息确定所述第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,根据所述第一区块链交易获得所述数据的密钥信息;或者,所述第一节点向中继节点发送所述交易索引信息,接收所述中继节点根据所述交易索引信息反馈的所述数据的密钥信息。
本实现方式中,第一节点根据交易索引信息中的内容,例如区块号或交易索引等能够快速查找到与这些信息相匹配的第一区块链交易,进而通过交易中记录的信息快速获得所述数据的密钥信息,实现了在区块链上共享信息的快速获取,相比于从数据源节点或数据提供方获取数据的密钥信息,缩短了耗时。
在另一种可能的实现方式中,第一节点获得数据信息包括:第一节点接收来自第一区块链的任一区块链节点,或第二区块链的任一区块链节点,或数据源节点的所述数据信息;或者,第一节点接收来自中继节点的所述数据信息,所述中继节点为预先保存所述数据信息的节点;或者,第一节点从区块链中提取并得到所述数据信息。
本实现方式中,第一节点可以从任意一个存储有数据信息的区块链节点中获得所述数据信息,还可以从距离第一节点最近的中继节点中获得,从而实现了快速获取数据信息,缩短传输耗时,提高传输和访问的效率。
在另一种可能的实现方式中,所述数据信息包括:加密数据或加密数据的地址信息;第一节点根据所述数据信息得到加密数据,包括;当数据信息为加密数据时,第一节点可以直接从数据信息中获得所述加密数据;当数据信息为加密数据的地址信息,第一节点通过所述数据的地址信息查找所述加密数据的位置,并得到所述加密数据。本实现方式中,将数据或数据地址以加密的方式在区块链中传输,提高了传输信息的安全性
在另一种可能的实现方式中,所述方法还包括:第一节点将获得来自所述第一区块链节点的所述数据的密钥信息,和/或获得所述数据信息作的事件为第一交易,记录在第三区块链上。
示例性的,所述第一交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash等。
在另一种可能的实现方式中,所述方法还包括:第一节点接收来自第二节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第二节点标识、第二节点公钥或交易索引信息中的一项或多项;所述第一节点根据所述数据标识、第二节点标识、第二节点公钥或交易索引信息中的一项或者多项获取数据信息和/或数据的密钥信息;将所述数据信息和/或数据的密钥信息发送给所述第二节点。
在另一种可能的实现方式中,所述方法还包括:第一节点根据物理不可克隆函数PUF技术产生的激励响应来获得第一节点的私钥或者公钥产生源。
在另一种可能的实现方式中,所述方法还包括:第一节点根据物理不可克隆函数PUF技术产生激励响应,将激励和激励响应的hash中的至少一项作为第一节点的标识信息,以便于所述第一节点的标识信息被记录在区块链上;所述区块链上记录的交易包括以下一项或多项:激励,激励响应的hash,节点标识,产生响应的时间,节点的公钥。
在另一种可能的实现方式中,所述方法还包括:第一节点从区块链中获得数据的hash,利用解密得到的数据和hash算法获得解密数据的hash,判断所述数据的hash和所述解密数据的hash是否相同,如果两个值相同,则第一节点获得的数据是可信数据,如果不相同,则第一节点获得的数据是被篡改的数据。
第二方面,本申请还提供了一种数据传输方法,应用于区块链上的一个节点,例如第一区块链节点,所述方法包括:第一区块链节点通过第一信息获得第一节点请求的数据信息和/或数据的密钥信息,其中,所述第一信息包括:数据标识、第一节点标识、第一节点的公钥和交易索引信息中的一项或多项;第一区块链节点将所述数据信息和/或数据的密钥信息发送给第一节点,以使所述第一节点根据所述数据信息得到加密数据,和根据所述数据的密钥信息获得密钥,进而实现使用密钥对加密数据的解密和读取。
其中,需要说明的是,所述数据的密钥信息可以由第一区块链上的一个区块链节点提供,所述数据信息可以由第二区块链上的一个区块链节点提供,还可以所述数据的密钥信息和数据信息都由同一个区块链节点提供,本申请对提供给第一节点这些信息的区块链节点不具体限制。
结合第二方面,在第二方面的一种可能的实现方式中,第一区块链节点通过所述第一信息获得所述数据的密钥信息,包括:第一区块链节点接收来自第一节点或经中继节点转发的请求消息,所述请求消息中包括所述第一信息;根据所述第一信息中的数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项查找与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;以及从所述交易中获得所述数据的密钥信息,进而利用区块链共识机制能够快速地获得数据的密钥信息,提高了数据传输和访问效率。
在一种可能的实现方式中,所述查找与所述第一信息相关的交易,还包括:第一区块链节点获得第一标识,根据所述第一信息和所述第一标识确定所述交易,其中,所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识等;所述跨链标识用于连接第一区块链和第二区块链,如果所述第一区块和第二区块链是相同的区块链,则所述跨链标识为连接标识。所述第一标识可以预先存储在第一区块链中,或者通过其它节点获取。
本实现方式中,在第一信息的基础上增加第一标识来查找相关交易,可以准确和快速地确定请求方第一节点需要的数据信息和/或数据的密钥信息,提高了查找的准确性。
在另一种可能的实现方式中,第一区块链节点通过第一信息获得第一节点请求的数据信息,包括:第一区块链节点获得所述第一信息;根据所述第一信息从第二区块链上或中继节点或数据源节点中获得所述数据信息,或者,第一区块链节点根据所述第一信息确定所述第一区块链节点上保存有所述数据信息,则查找并获得与所述第一信息相关的所述数据信息。
本实现方式中,在第一区块链节点如果保存有第一节点所需要的数据信息,则直接将该数据信息提供给第一节点,从而节省从其它节点获取的时间,提高传输效率。
结合第二方面,在第二方面的又一种可能的实现方式中,所述第一区块链节点获得所述数据信息和/或数据的密钥信息之前,所述方法还包括:第一区块链节点生成交易索引信息,所述交易索引信息用于确定记录有所述数据的密钥信息的第一区块链交易,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;将所述交易索引信息发送给所述第一节点;或者,第一区块链节点将第一节点请求访问的加密数据的地址信息发送给所述第一节点或中继节点。
第三方面,本申请还提供了一种数据传输方法,应用于中继节点,例如基站,所述方法包括:中继节点获得来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识、第一节点公钥和或交易索引信息中的一项或多项;根据所述第一信息获得所述数据信息和/或数据的密钥信息;将所述数据信息和/或数据的密钥信息发送给所述第一节点。
在一种可能的实现方式中,所述中继节点根据所述第一信息获得所述数据信息,包括:判断所述第一节点是否有访问权限;如果是,则获得所述数据信息;如果否,则拒绝第一节点的访问请求,例如向第一节点反馈指示拒绝访问的消息。
其中,中继节点获得所述数据信息,具体包括:中继节点在已经存储有所述数据信息的情况下,从本地的中继节点上获得所述数据信息;或者,在未存储所述数据信息的情况下,从第一区块链、第二区块链或数据源节点上获得所述数据信息,然后将该数据信息转发给第一节点。
在另一种可能的实现方式中,中继节点根据所述第一信息获得所述数据的密钥信息,包括:中继节点根据所述第一信息查找是否有与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;如果是,则表示第一节点具有访问权限,中继节点从所述交易中获得所述数据的密钥信息;如果否,则表示不具备访问权限,拒绝访问。中继节点向第一节点回复消息,用于通知拒绝为所述第一节点提供所述数据的密钥信息或者所述数据信息。
在另一种可能的实现方式中,所述中继节点从所述交易中获得所述数据的密钥信息,包括:中继节点向所述第一区块链节点发送所述请求消息;接收所述第一区块链节点根据所述请求消息反馈的数据的密钥信息,所述数据的密钥信息由第一节点的公钥加密后生成。
在另一种可能的实现方式中,所述中继节点根据所述第一信息获得所述数据信息和/或数据的密钥信息,包括;中继节点获得第一标识,所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识;中继节点根据所述第一信息和所述第一标识获得所述数据信息和/或数据的密钥信息。
在另一种可能的实现方式中,所述方法还包括:中继节点将给第一节点发送所述数据信息和/或数据的密钥信息作为第二交易,记录在第三区块链上。
示例性的,所述第二交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、交易索引信息、第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash等。
第四方面,本申请还提供了一种数据传输方法,该方法可应用于数据源节点,该数据源节点用于为第一节点提供数据信息和数据的密钥信息;
具体地,所述方法包括:数据源节点生成数据的密钥信息;将所述数据的密钥信息记录在第一区块链上,以使第一区块链上的任意一个区块链节点存储所述数据的密钥信息,并将其快速地提供给请求方的第一节点,缩短传输延迟,提高传输效率。
在另一种可能的实现方式中,所述数据源节点生成数据的密钥信息,包括:数据源节点接收来自第一节点或者经过中继节点转发的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识或交易索引信息中的一项或多项,所述数据源节点根据所述第一信息确定第一节点的公钥,并利用所述第一节点的公钥对数据的密钥进行加密,生成所述数据的密钥信息。
在另一种可能的实现方式中,数据源节将所述数据的密钥信息记录在第一区块链上,包括:数据源节点将所述数据的密钥信息发送给第一区块链节点,以通过所述第一区块链节点将所述数据的密钥信息记录在第一区块链上;或者,数据源节点将所述数据的密钥信息广播和存储到所述第一区块链上。
在另一种可能的实现方式中,所述方法还包括:数据源节点将第一节点请求访问的加密数据记录在第二区块链上;或者,将所述加密数据广播和存储到所述第二区块链上,所述数据信息包括加密数据或加密数据的地址信息。
在另一种可能的实现方式中,数据源节点获得第一节点的公钥,根据第一节点的公钥生成数据的密钥信息,具体包括:
所述数据源节点利用第一节点的公钥对所述数据的密钥进行加密,生成所述数据的密钥信息;或者,所述数据源节点利用第一节点的公钥对所述数据的密钥进行加密,并存储被加密的数据的密钥,将所述存储被加密的数据的密钥的地址作为所述数据的密钥信息。
其中,所述数据的密钥信息包括:被加密的数据密钥或存储被加密的数据密钥的地址信息。
第五方面,本申请还提供了一种数据传输方法,应用于第二区块链上的一个节点,例如第二区块链节点,该节点用于为第一节点提供数据信息,具体地,所述方法包括:
第二区块链节点获取来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识或交易索引信息中的一项或多项,第二区块链节点在检测第一节点具备访问权限的情况下,确定第一节点所需的数据信息,并将该数据信息发送给第一节点,所述数据信息包括加密数据或加密数据的地址信息。
其中,所述第二区块链节点与中继节点可以是同一个节点,或者与前述第一区块链节点相同,还可以不同,本申请对此不进行限制。
第六方面,本申请还提供了一种数据传输装置,该装置包括接收模块、处理模块和发送模块,还可以包括存储模块等,所述装置中的各个模块用于执行上述第一方面至第五方面,及各个方面中的各种实现方式的数据传输方法。
在一个可能的设计中,本申请实施例还提供了另一种数据传输装置,所述装置用于实现上述方法中第一节点的行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件,例如收发模块对应的硬件可以是收发器,处理模块对应的硬件可以是处理器。进一步,还可以包括存储器。
第七方面,本申请提供了一种网络节点,该网络节点可以是请求访问数据的节点,例如第一节点,所述网络节点包括:收发器,用于获得数据信息和来自第一区块链节点的数据的密钥信息;处理器,用于根据所述数据信息得到加密数据,以及根据所述数据的密钥信息获得密钥,利用所述密钥对所述加密数据进行解密得到数据。
在一种可能的实现方式中,所述数据的密钥信息包括:被加密的数据密钥或存储被加密的数据密钥的地址信息;所述处理器,具体用于在所述数据的密钥信息为所述被加密的数据密钥时,利用私钥对所述被加密的数据密钥进行解密得到所述密钥;或者,在所述数据的密钥信息为所述存储被加密的数据密钥的地址信息时,根据所述地址信息获得被加密的数据密钥,以及利用私钥对所述被加密的数据密钥进行解密得到所述密钥。
在另一种可能的实现方式中,所述收发器具体用于获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;所述处理器,具体用于根据所述交易索引信息确定所述第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,根据所述第一区块链交易获得所述数据的密钥信息;或者,通过所述收发器向中继节点发送所述交易索引信息,接收所述中继节点根据所述交易索引信息反馈的所述数据的密钥信息。
在另一种可能的实现方式中,所述收发器具体用于接收来自第一区块链的任一区块链节点,或第二区块链的任一区块链节点,或数据源节点的所述数据信息;或者,接收来自中继节点的所述数据信息,所述中继节点为预先保存所述数据信息的节点;或者,从区块链中提取并得到所述数据信息。
在另一种可能的实现方式中,所述数据信息包括:加密数据或加密数据的地址信息;所述处理器,具体用于在所述数据信息为所述加密数据时,从所述数据信息中获得所述加密数据;或者,在所述数据信息为所述加密数据的地址信息时,通过所述数据的地址信息查找并得到所述加密数据。
在另一种可能的实现方式中,所述处理器,还用于将获得来自所述第一区块链节点的所述数据的密钥信息,和/或获得所述数据信息作为第一交易,记录在第三区块链上。
在另一种可能的实现方式中,所述第一交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash。
第八方面,本申请还提供了一种网络节点,该网络节点可以是区块链上的任意一节点,例如第一区块链节点,所述网络节点包括:处理器,用于通过第一信息获得第一节点请求的数据信息和/或数据的密钥信息,其中,所述第一信息包括:数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项;收发器,用于将所述数据信息和/或数据的密钥信息发送给所述第一节点。
在另一种可能的实现方式中,所述处理器,具体用于利用所述收发器接收来自第一节点或经中继节点转发的请求消息,所述请求消息中包括所述第一信息;根据所述第一信息中的数据标识、第一节点标识、第一节点的公钥和交易索引信息中的一项或多项查找与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;以及从所述交易中获得所述数据的密钥信息。
在另一种可能的实现方式中,所述处理器,具体用于获得第一标识,根据所述第一信息和所述第一标识确定所述交易所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识。
在另一种可能的实现方式中,所述处理器,具体用于获得所述第一信息,根据所述第一信息从第二区块链上或中继节点或数据源节点中获得所述数据信息,或者,根据所述第一信息确定所述第一区块链节点上保存有所述数据信息,则查找并获得与所述第一信息相关的所述数据信息。
在另一种可能的实现方式中,所述处理器,还用于在获得所述数据信息和/或数据的密钥信息之前,生成交易索引信息,所述交易索引信息用于确定记录有所述数据的密钥信息的第一区块链交易,所述交易索引信息包括区块号、区块高度、交易索引号、区块链标识中的一项或多项;利用所述收发器将所述交易索引信息发送给所述第一节点;或者,利用所述收发器将第一节点请求访问的加密数据的地址信息发送给所述第一节点或中继节点。
第九方面,本申请还提供了一种网络节点,该网络节点可以是中继节点,具体地,所述网络节点包括:收发器,用于获得来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识、第一节点的公钥和交易索引信息中的一项或多项;处理器,用于根据所述第一信息获得所述数据信息和/或数据的密钥信息;所述收发器,还用于将所述数据信息和/或数据的密钥信息发送给所述第一节点。
在一种可能的实现方式中,所述处理器,具体用于根据所述第一信息判断所述第一节点是否有访问权限;如果是,则获得数据信息;如果否,则拒绝第一节点的访问请求;
在另一种可能的实现方式中,所述处理器,具体用于根据所述第一信息查找是否有与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;如果是,则从所述交易中获得所述数据的密钥信息;如果否,则拒绝访问。
在另一种可能的实现方式中,所述处理器,具体用于利用收发器向所述第一区块链节点发送所述请求消息;接收所述第一区块链节点根据所述请求消息反馈的数据的密钥信息,所述数据的密钥信息由第一节点的公钥加密后生成。
在另一种可能的实现方式中,所述处理器,具体用于获得第一标识,根据所述第一信息和所述第一标识获得所述数据信息和/或数据的密钥信息,所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识。
在另一种可能的实现方式中,所述处理器,还用于将给所述第一节点发送所述数据信息和/或数据的密钥信息作为第二交易,记录在第三区块链上。
示例性的,所述第二交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、交易索引信息、第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash等。
第十方面,本申请还提供了一种网络节点,例如数据源节点,用于为第一节点提供数据信息和数据的密钥信息;
具体地,所述网络节点包括:处理器,用于生成数据的密钥信息;将所述数据的密钥信息记录在第一区块链上,以使第一区块链上的任意一个区块链节点存储所述数据的密钥信息,并将其快速地提供给请求方的第一节点,缩短传输延迟,提高传输效率。
在一种可能的实现方式中,还包括:收发器,用于接收来自第一节点或者经过中继节点转发的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识或交易索引信息中的一项或多项,所述处理器,具体用于根据所述第一信息确定第一节点的公钥,并利用所述第一节点的公钥对数据的密钥进行加密,生成所述数据的密钥信息。
在另一种可能的实现方式中,所述处理器,具体用于利用所述收发器将所述数据的密钥信息发送给第一区块链节点,以通过所述第一区块链节点将所述数据的密钥信息记录在第一区块链上;或者,将所述数据的密钥信息广播和存储到所述第一区块链上。
在另一种可能的实现方式中,所述处理器,还用于将第一节点请求访问的加密数据记录在第二区块链上;或者,将所述加密数据广播和存储到所述第二区块链上,所述数据信息包括加密数据或加密数据的地址信息。
在另一种可能的实现方式中,所述处理器,还用于利用第一节点的公钥对所述数据的密钥进行加密生成所述数据的密钥信息;或者,利用第一节点的公钥对所述数据的密钥进行加密,并存储被加密的数据的密钥,将所述存储被加密的数据的密钥的地址作为所述数据的密钥信息。
第十一方面,在本申请还提供了一种计算机存储介质,该计算机存储介质可存储有指令,该指令执行时可实现本申请提供的数据传输方法各实现方式或实施例中的部分或全部步骤。
示例性的,所述计算机存储介质可以存储在上述网络节点的存储器中。
第十二方面,在本申请还提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得所述计算机执行上述各方面所述的数据传输方法。
第十三方面,本申请还提供了一种数据传输系统,该系统包括:第一节点、第一区块链节点、中继节点,另外,还可以包括数据源节点、第二区块链节点、第二节点等。
所述第一节点用于执行上述第一方面及第一方面各实现中的方法步骤;所述第一区块链节点用于执行上述第二方面及第二方面各实现中的方法步骤;所述中继节点用于执行上述第三方面及第三方面各实现中的方法步骤;另外,所述数据源节点用于执行上述第四方面及第四方面各实现中的方法步骤;所述第二区块链节点用于执行上述第五方面及第五方面各实现中的方法步骤。
需要说明的是,本申请提供的数据传输系统中的各个节点可以统称为网络节点,所述网络节点可以表示各种网元设备、站点、基站、用户设备UE和终端等。另外,本申请各个实施例中的设备和节点这两个概念等同,即所述设备可以指代节点、站点、UE、网元设备、传感器等。
本申请所公开的技术方案,将移动边缘计算和区块链技术相结合,在实现以低延迟,低负载为用户提供服务的同时,还保证了数据传输的安全性,以及数据业务提供方的利益。
本申请提供的数据传输方法、装置和网络节点,利用区块链上数据共享的特性,使得请求方例如第一节点可以从区块链的任意一个区块链节点上直接获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟,提高传输效率。
并且,第一节点通过第一区块链节点获得数据的密钥信息,由于该数据的密钥信息经第一节点的公钥加密,所以被授权的第一节点能够解密和读取该数据,其它节点不能解密和访问所述数据,从而提高了数据传输的安全性。
另外,区块链节点或中继节点根据来自第一节点的请求消息,验证第一节点是否具备访问权限,并根据验证结果下发与该请求消息相关的交易,例如数据的密钥信息,并对不具备权限的节点拒绝其访问请求,进而在提高传输效率的同时还保证了数据提供方的权益。
此外,本申请中,第一节点在解密并访问数据后,通过将获取的区块链上的数据hash与解密后的数据生成的hash进行比较,来验证解密的数据真实和完整性,使得第一节点能够判断出获取的数据是否被篡改。
需要说明的是,在本申请上述各个方面或实现方式中,还包括一种区块链技术,所述方法包括:第一区块链用于记录数据的密钥信息;所述第二区块链用于记录数据的信息:所述第三区块链用于记录第一节点将数据的密钥信息提供给第二节点:
本申请还提供了一种方法用于:在存在多链的场景下,不同的区块链用于处理不同的事物,记录不同的信息。每个区块链中以交易为记录信息单位,一个区块中包括多个交易,多个区块连接成一个区块链。有点时候不同的区块链彼此相关联,因此交易也是彼此相关联,如何实现多链场景下把多个相关的交易关联起来是非常必要的。如本发明中,在数据共享场景下,针对节点X把加密的数据被共享给第Y节点这个时间,该加密数据的密钥信息是记录在第一区块链,该加密的数据信息例如数据的hash被记录第二区块链,所述第三区块链可以用于记录将节点X将密钥信息提供给节点Y这件事情,因此这三个区块链的交易是相关联的,因此需要标识来将他们关联起来,方便多链协作和跨链调用,同时实现了相关多样信息的可追溯。
具体地,第十二方面,提供了一种应用于区块链技术的方法,所述方法包括:
所述第一区块链和第二区块链是同一个区块链;或者,
所述第三区块链和第二区块链是同一个区块链;或者,
所述第一区块链和第三区块链是同一个区块链;或者,
所述第一区块链、第二区块链和第三区块链是同一个区块链;
在另一种可能的实现方式中,所述方法还包括:
第一区块链的交易,第二区块链的第B交易,所述第A交易和第B交易是相关交易,由此两个区块链利用跨链标识将两个交易关联起来;或者,
第一区块链的第A交易,第三区块链的第C交易,所述第A交易和第C交易是相关交易,由此两个区块链利用跨链标识将两个交易关联起来;或者,
第二区块链的第B交易,第三区块链的第C交易,所述第B交易和第C交易是相关交易,由此两个区块链利用跨链标识将两个交易关联起来;或者
第一区块链的第A交易,第二区块链的第B交易和第三区块链的第C交易是相关交易,由此3个区块链利用跨链标识将两个交易关联起来;
在另一种可能的实现方式中,所述方法还包括:
当所述第一区块链、第二区块链是同一个区块链时,第A交易,第B交易是相关交易,利用连接标识将上述相关交易关联起来;
当所述第一区块链、第三区块链是同一个区块链时,第A交易,第C交易是相关交易,利用连接标识将上述相关交易关联起来;
当所述第二区块链、第三区块链是同一个区块链时,第B交易,第C交易是相关交易,利用连接标识将上述相关交易关联起来;
当所述第一区块链、第二区块链和第三区块链是同一个区块链时,第A交易,第B交易和第C交易是相关交易,利用连接标识将上述相关交易关联起来;
在另一种可能的实现方式中,所述连接标识和跨链标识是同一个标识。
在另一种可能的实现方式中,所述第一区块链用于记录数据的密钥信息,所述第一区块链的第A交易包含以下至少一项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的设备标识、第一节点的公钥、数据的密钥信息、交易索引信息、访问数据的时间、第一区块链节点标识、第一区块链节点的交易标识信息、数据的哈希hash、数据的密钥信息hash等。
或者,所述第二区块链用于记录数据的信息,所述第二区块链的第B交易包括至少一项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的设备标识、第一节点的公钥、交易索引信息、第二区块链节点标识、第二区块链节点的交易标识信息、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash、激励、激励响应的hash、产生响应的时间等。
或者,所述第三区块链用于记录将节点X将密钥信息和或数据信息提供给节点Y,所述第三区块链的第C交易包括以下至少一项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash、数据的密钥信息hash、第一节点获取数据信息和数据的密钥信息的交易,第一区块链为第一节点提供数据的密钥信息、第二区块链为第一节点提供数据的密钥信息等。
本方面所述的方法可以通过一种硬件实现,例如该硬件可以包括处理器和收发器,其中处理器执行上述方法中的记录功能,收发器执行上述方法通知功能;或者该方法也可以通过软件执行相应的指令去实现。该硬件可以独立使用,也可以做为一个集成模块与其他硬件设备组合使用。这个实施例也可以本发明的其他实施例组合起来使用。对此,本发明实施例不做具体的限定。只要能解决本发明的技术问题即如何实现多链场景下把多个相关的交易关联起来,达到多链场景下方便多链协作和跨链调用,同时实现了多种相关信息的可追溯效果,都属于本发明要保护的范围。
附图说明
图1为本申请提供的一种网络中数据传输的示意图;
图2为本申请实施例提供的一种数据传输方法的流程示意图;
图3为本申请实施例提供的一种数据传输方法的信令流程图;
图4为本申请实施例提供的另一种数据传输方法的信令流程图;
图5为本申请实施例提供的又一种数据传输方法的信令流程图;
图6为本申请实施例提供的又一种数据传输方法的信令流程图;
图7为本申请实施例提供的一种数据传输装置的结构示意图;
图8为本申请实施例提供的一种网络节点的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中的技术方案作进一步详细的说明。
本申请所提供的技术方案为解决数据提供方向用户直接提供服务或数据的安全性问题。具体地,参见图1,示出了一种网络中数据流转的示意图,该网络中包括提供数据方的数据源节点(source D)、可转发数据或服务的中继节点(relay),例如中继节点B和中继节点C,用于接收并转发用户的请求消息,以及反馈数据给请求方用户,还包括至少一个用户。
当请求方用户A向数据源节点D发请求消息,以请求访问数据时,该请求消息要经过至少一个中继节点(例如中继节点B和中继节点C)依次转发后,最后达到数据源节点D,该数据源节点D接收到请求消息之后再将对应的数据反馈给用户A,供用户A进行访问。此时,当用户E向数据源节点D发请求消息,要求访问所述数据时,来自用户E的请求消息也会经过中继节点转发达到数据源节点D,数据源节点D接收到该请求消息之后再反馈结果给用户E。
在这一数据流转的过程中,无论是请求消息还是数据都要经过多个中继节点转发,因此会产生一定延迟,并且对于距离数据源节点较远的用户而言,获得反馈结果耗时较长,另外,在中继节点需要大量的转发和反馈数据的业务还增加了传输负担。另一方面,数据源节点为保证传输安全性和请求一方的利益,当数据源节点将数据提供给用户A时,即允许用户A的访问权限时,就会拒绝用户E再访问该数据,进而无法实现数据在不同用户之间的访问和共享。
本申请以下实施例所提供的技术方案,将移动边缘计算和区块链技术相结合,在实现以低延迟,低负载为用户提供服务和数据的同时,还保证了数据传输的安全性,以及业务和数据提供方的利益。
首先,对本申请涉及到区块链技术的基本概念进行简单的介绍和说明。
本申请的技术方案涉及区块链,所述区块链(英文:blockchain)是一种分布式数据库,起源自比特币,是比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
区块链主要用于解决的交易的信任和安全问题,因此利用区块链可以提出以下方面的技术创新:
第一、分布式账本
所谓分布式账本是指交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证,从而避免了单一记账人被控制或者被贿赂而导致记假账情况的可能。另一方面,由于区块链上的节点足够多,即记账的节点数量多,理论上除非所有的节点都被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
第二、对称加密和授权技术
所谓对称加密和授权技术可以认为存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问数据,从而进一步保证了数据的安全性和用户的个人隐私。
第三、共识机制
所谓做共识机制是指所有记账节点之间是如何达成共识的,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。以比特币为例,采用工作量证明(Proof ofWork,PoW)算法,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这种控制伪造记录的可能性会非常低,从而能够有效防止造假。
第四、智能合约
所述智能合约是基于区块链上可信的且不可篡改的数据,可以自动化执行的一些预先定义好的规则和条款。
在比特币作为加密数字货币网络中,不存在中心化的节点,服务器和数据库。系统的运行维护也不依赖于管理人员。网络节点严格地通过工作量证明数学算法,将特定的时间交易的数字指纹封装为区块(block),并快速向全网广播,使用散列技术在区块之间形成紧密的链状结构,组成安全性极高的公开账本,即区块链。通过区块链技术,加密数字货币系统巧妙地解决了“双花”问题,如实地记录了所有交易数据,保障各项记录的正式性和可追溯性,同时所有交易的痕迹也极难被销毁。
区块链是由包含交易的区块从后向前有序链接起来的数据结构。它可以被存储为一种包含非相对关系记录的文件,或者是存储在一个简单数据库中。
区块是一个被包含在区块链里的聚合了交易的容器数据结构,它由一个包含元数据的区块头和紧跟其后的构成区块主体的一长串交易组成。
进一步地,区块结构具体包括:区块大小、区块头、交易计数器和交易(Transaction)。其中,所述交易计数器用于记录交易数量;交易用于记录交易详情,且字节长度可变。对每个区块头进行SHA256加密哈希,可生成一个哈希值,并且通过这个哈希值可以识别区块链中的对应区块。
所述区块头由三组元数据组成,第一组元数据是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据包括:难度,时间戳和Nonce。第三组元数据是Merkle树根,用于有效地总结区块中所有交易的数据结构。
所述交易(Transaction)用于区块链记录各类信息。例如针对比特币网络,交易用于记录A给B多少比特币;例如对于设备共享网络,交易用于记录用户A为用户B共享了设备X,交易中包含了A的标识,B的标识,设备X的标识,甚至可以包括共享该设备的时间,地点,设备的地址信息,共享该设备的有效时间等等。这里仅仅举例什么是区块链中的交易,但本发明不仅限于上述两个举例。
进一步地,所述区块链包括以下特征:
特征1:去中心化
整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作,因此可以认为区块链系统具有极好的健壮性。
特征2:去信任
参与整个系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的,因此在系统指定的规则范围和时间范围内,节点之间是不能也无法欺骗其它节点。
特征3:集体维护
系统中的数据块由整个系统中所有具有维护功能的节点来共同维护,而这些具有维护功能的节点是任何人都可以参与的。
特征4:可靠数据库
整个系统将通过分数据库的形式,让每个参与节点都能获得一份完整数据库的拷贝。除非能够同时控制整个系统中超过51%的节点,否则对单个节点上数据库的修改是无效的,也无法影响其他节点上的数据内容,因此参与系统中的节点越多和计算能力越强,该系统中的数据安全性越高。
特征5:匿名性
由于节点和节点之间是无需互相信任的,因此节点和节点之间无需公开身份,在系统中的每个参与的节点都是匿名的。
本申请所述的区块链和区块链系统可以应用于各种网络中(例如物联网中),所述区块或者区块链节点可以部署在各种网络设备(例如物联网设备)上。所述网络设备包括工业物联网设备,例如各类工业传感器、控制模块等等;还可以是可穿戴设备、家用电器、家居传感器、家居控制模块等,或者是基站、增强型基站、或具有调度功能的中继、或具有基站功能的设备等。其中,基站可以是LTE系统中的演进型基站(evolved Node B,eNB),也可以其他系统中的基站,本申请实施例并不限定。
另外,上述各类设备可以是用户设备(user equipment,UE),例如手机、智能终端、多媒体设备、流媒体设备等。所述UE还可以是其它无线网络设备,例如基站(Node B),具体地该无线网络设备的形式和类型本申请不予限制。
UE可以经无线接入网(radio access network,RAN)与一个或多个核心网进行通信,UE还可以通过其它方式接入无线网络进行通信,UE也可以与其它UE直接进行无线通信,本申请实施例对此不作限定。
在本申请的以下各个实施例中,各个网络设备统称为网络节点,所述网络节点可以是发送请求消息的第一节点、第二节点,还可以是区块链上的某一个区块链节点、转发的中继节点,还可以是数据源节点。进一步地,所述网络节点包括但不限于站点、基站、UE和终端。另外,本申请各个实施例中的设备和节点这两个概念等同,即所述设备可以指代节点、站点、UE、网元设备、传感器等。
本申请的各个技术方案可以应用于物联网系统,通过以智能共享设备为载体,实现系统中大数据的共享和访问,但以下各个实施例包括但不限于上述技术场景。
为了降低数据传输延迟和负载,并且在保证数据安全性的同时,保护数据提供方的利益,本申请各个实施例的技术方案中,将移动边缘计算与区块链技术相结合,使得请求方可以从距离其位置较近的区块链节点获得与待访问数据相关的信息,例如,数据信息和数据的密钥信息等。
具体地,如图2所示,本申请提供的一种数据传输方法包括以下步骤:
步骤201:第一节点获得数据信息和第一区块链上记录的数据的密钥信息。
其中,所述数据信息用于确定第一节点所要访问的加密数据,其中,所述数据信息包括加密数据或加密数据的地址信息。所述数据的密钥信息用于得到密钥,该密钥用于对所述加密数据进行解密得到待访问的数据,所述数据的密钥信息包括:被加密的数据密钥或存储被加密的数据密钥的地址信息。
所述数据信息可以从区块链上获得,或者通过边缘设备获得,还可以直接从数据源节点获得,本申请对此不做具体限制。所述数据的密钥信息可以从区块链上获得,或者根据指示信息,例如交易索引信息来获得,还可以通过其它方式获得,例如从边缘设备获得等等,本申请对此不予限制。
步骤202:根据所述数据信息得到加密数据,以及根据所述数据的密钥信息获得密钥。
如果数据信息为加密数据,则第一节点可以直接从数据信息中获得加密数据;如果数据信息为加密数据的地址信息,则第一节点根据该地址信息确定加密数据的地址,再通过该地址获得所述加密数据。
同理地,利用所述数据的密钥信息获得密钥的过程具体包括:一种可能的方式是,第一节点利用第一节点的私钥对所述数据的密钥信息进行解密得到密钥。
步骤203:利用所述密钥对所述加密数据进行解密得到数据。
本实施例提供的方法,利用区块链上数据共享的特性,使得请求方例如第一节点可以从区块链的任意一个区块链节点上直接获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟。
此外,第一节点通过第一区块链节点获得数据的密钥信息,由于该数据的密钥信息经第一节点的公钥加密,所以被授权的第一节点能够解密和读取该数据,其它节点不能解密和访问所述数据,从而提高了数据传输的安全性。
进一步地,第一节点获得数据后,具体地,例如第一节点接收到其他节点(例如第二节点)的请求消息,用于请求所述相同的数据,第一节点可以为其他节点提供所述数据的数据信息或者密钥信息。
针对本申请所述的方法涉及的非对称加密算法和PUF技术,下面对其进行详细地说明。
本申请各个实施例中,所述数据的密钥信息是由第一节点的私钥或者公钥通过PUF技术中的激励响应来生成,进而保证数据相关信息在区块链网络中传输的安全性。
非对称加密算法:非对称加密算法的密钥分为公钥和私钥,用户或系统产生一对密钥,将其中的一个公开,就是公钥,另一个自己保留,就是私钥。一般情况下,通信时,发送方利用公钥对信息进行加密,接收方利用私钥对信息进行解密完成通信。当然,也可用私钥加密,公钥解密。因为加密与解密用的是两个不同的密钥,所以这种算法也叫作非对称加密算法。
常见的算法有例如是椭圆曲线密码算法,但本申请不仅限于椭圆曲线密码算法。
哈希算法:是一种只能加密,不能解密的密码学算法,可以将任意长度的信息转换成一段固定长度的字符串。这段字符串有两个特点:
1.就算输入值只改变一点,输出的哈希值也会天差地别。
2.只有完全一样的输入值才能得到完全一样的输出值。
3.输入值与输出值之间没有规律,所以不能通过输出值算出输入值。要想找到指定的输出值,只能采用枚举法:不断更换输入值,寻找满足条件的输出值。
哈希算法保证了不能逆向推导出结果。例如,SHA256属于SHA(Secure HashAlgorithm,安全哈希算法)家族一员。
PUF技术:物理不可克隆函数(Physical Unclonable Functions,PUF),其本质是一个函数,给这个函数一定输入,会得到相应的输出。利用芯片制造工艺上的不可避免的差异(随机物理特性)产生特有的激励-响应对,体现在电路结构上即对称的结构由于制造工艺产生不对称的结果。目前PUF技术的主要实现方法可以包括:
非电子PUF:光学PUF、纸PUF、CD PUF。
模拟电路PUF:基于涂层的PUF、基于阈值电压的PUF、基于电阻的PUF。
数字电路PUF:仲裁器PUF、环形振荡器PUF、SRAM-PUF、锁存器PUF、蝶形PUF。
所述第一节点的私钥可以是基于PUF技术产生。进一步地,根据非对称安全算法,第一节点的私钥可产生公钥。也就是说,可以是第一节点利用PUF技术获得了设备指纹信息,利用设备指纹信息生成第一节点的私钥。进一步地,利用非对称密钥算法,通过私钥能够产生公钥。
“第一节点的私钥可以是基于PUF技术产生”:具体地,根据“所述PUF技术”,针对任何一个设备/节点,给其输入一个激励,就会产生一个激励响应。对于不同的设备/节点,产生的激励响应各不相同,由此【激励,激励响应】组合会成为一个设备/节点的指纹信息。
可选地,将所述激励响应的哈希值作为非对称密钥算法的公钥产生源或者私钥,即第一节点私钥可以表示为【激励,响应的hash】,或者为【响应的hash】,或者利用激励响应的哈希值产生一个私钥。当第一节点的私钥确定之后,再根据非对称密钥算法就会生成对应的公钥。所述第一节点的公钥可以作为是第一节点的节点标识或第一节点的地址。
其中,所述第一节点/设备的公钥用于对加密数据的密钥(key)进行加密,生成数据的密钥信息;对应的私钥用于解密所述数据的密钥信息,得到所述密钥。区别在于,第一节点/设备的公钥是公开的信息,即各个区块链节点都能获得,而私钥不是公开的,仅第一节点/设备本身享有。
下面结合具体的实施例对本申请提供的数据传输方法进行详细的介绍和说明。
实施例一
本实施例以智能共享设备和/或共享大数据为技术场景来举例说明本申请的技术方案,这种应用场景仅是为了理解本发明的技术方案所举的例子,本发明包括并不限于此。
如图3所示,该应用场景可以包括以下设备:节点U1(表示UE1)、节点N1(表示Node1)、节点D(表示数据源节点Data source)、一个或多个区块链,每个区块链有若干个区块链节点组成,本实施例以上述场景为例来说明发明内容,但是本实施例所提供的方法包括但不限于上述场景。
本实施例提供了一种数据访问方法,具体包括以下步骤:
步骤301:第一节点(例如节点U1)发送第一请求消息,所述第一请求消息用于请求数据信息和/或数据的密钥信息。
其中,所述数据信息包括加密数据或加密数据的地址信息,所述数据的密钥信息包括:被加密的数据密钥或存储被加密的数据密钥的地址信息,所述数据的密钥信息用于获得密钥。
其中,所述第一请求消息中包括第一信息,例如,所述第一信息包括数据标识(data ID)、第一节点标识或交易索引信息一项或多项组合。
其中,所述第一节点标识可以是第一节点的设备标识、第一节点的IP地址、是第一节点的公钥或者是其他类型的标识,本申请不做限制,只要能够标识第一节点都属于本发明所保护的范围。
需要特别说明的是,所述数据标识可以与第一节点标识相同,也可以不相同。
所述交易索引信息(transaction index information)用于确定第一区块链交易,所述第一区块链交易内记录有数据的密钥信息,进一步地,所述交易索引信息包括:区块号、区块高度、交易索引号(transaction index number)或区块链标识中的一项或多项。
例如,所述交易索引号以交易索引号X为例,用于表示该交易在该区块中的序号,例如第X个交易。
又例如,所述区块号以区块号Y为例,用于表示该区块是该区块链中的第Y个区块。
再例如,所述区块高度用于表示该区块在该区块链中的位置,即也用于指示区块在该区块链中是第几号区块。
示例性的,第一节点可以将第一请求消息直接发送给数据源节点。
示例性的,第一节点可以将第一请求消息发给中继节点或者某一个区块链节点,例如可以是将第一请求消息发送给第一区块链节点,并通过该中继节点或第一区块链节点获得相关的数据信息和数据的密钥信息,其中,所述中继节点和所述第一区块链节点可以是同一个节点,也可以是不同的节点。
步骤302:第一区块链节点或中继节点接收所述第一切点发送的第一请求消息之后,根据所述第一请求消息的内容向数据源节点发送消息,该消息包括所述第一信息,用于请求第一节点需要的数据信息和/或数据的密钥信息。
其中,所述第一区块链节点发送的消息可以与所述第一请求消息相同。
步骤303a:所述数据源节点将数据或数据的地址信息记录在第二区块链或第二区块链节点上。所述数据包括第一节点请求访问的加密数据。
步骤303b:数据源节点获得并利用所述第一节点的公钥对第一节点请求访问的加密数据的密钥(key)进行加密,生成数据的密钥信息。
具体地,数据源节点接收第一节点或者中继节点或者区块链节点发送的请求消息,所述请求消息用于请求访问数据。
数据源节点根据所述消息获得第一节点的公钥,利用所述第一节点的公钥对第一节点请求访问的加密数据的密钥(key)进行加密,生成数据的密钥信息。
具体地,数据源节点将数据加密,然后把加密后的数据放到区块链上,或者把加密后的数据的存储地址放到区块链上。所述区块链可以是第二区块链,也可以是第一区块链。
步骤304:所述数据源节点将所述数据的密钥信息记录在第一区块链上。
具体地步骤304包括:第一种实现方式,第一区块链节点将所述数据的密钥信息的事件作为第一交易,记录和保存在第一区块链上;根据区块链的共识机制第一区块链上的各个区块链节点都存储该数据的密钥信息,当其中的一个区块链节点,例如第一区块链节点接收到来自第一节点或中继节点发送第一请求消息时,将所述数据的密钥信息发送给第一节点。
第二种实现方式,数据源节点将所述数据的密钥信息作为第一区块链的第一交易,广播到第一区块链节点,以使得所述交易被保存在第一区块链的区块中。
步骤305:所述第一区块链节点获得所述数据的密钥信息,并将所述数据的密钥信息发送给第一节点。
具体地,第一区块链节点可以通过交易索引信息来确定第一区块链交易,并从该第一区块链交易中获取所述数据的密钥信息。其中,所述交易索引信息可由数据源节点生成并发送给所述第一区块链节点或者中继节点。
或者,第一区块链节点或者数据源节点直接将所述数据的密钥信息发送给第一节点。
或者,第一区块链节点或者数据源节点先将所述数据的密钥信息发送给中继节点,再由中继节点将所述数据的密钥信息发送给第一节点。
需要特别说明的是,本是实施例中对步骤304和步骤304的顺序不做限定,即方法可以先执行步骤304,数据源节点可以先将所述数据的密钥信息或交易索引信息记录在第一区块链上,然后在执行步骤301,当第一区块链节点或中继节点接收到来自第一节点的第一请求消息时,将区块链中的数据的密钥信息或交易索引信息发送给第一节点。
步骤306:所述第一节点获得第一区块链上记录的所述数据的密钥信息,并利用所述第一节点的私钥对所述数据的密钥信息进行解密得到密钥(key)。
示例性的,第一节点接收第一节点发送的交易索引信息,根据所述交易索引信息确定第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,所述第一节点从所述第一区块链交易获得所述数据的密钥信息。
其中,所述交易索引信息中可以包括:区块号、区块高度、交易索引号或区块链标识中的至少一项或多项组合,需要特别说明的是,所述交易索引信息可以由第一区块链节点生成,还可以由数据源节点生成并发送给第一区块链节点。
示例性的,第一节点可以直接获得第一区块链节点发送的所述数据的密钥信息,或者,还可以是第一节点从第一区块链上获取所述数据的密钥信息。
步骤307:所述第一节点从第二区块链节点获得数据信息,其中,所述数据信息包括:加密数据或者加密数据的地址信息,还可以是与所述加密数据的地址具有映射关系的信息等。
另外,所述第一节点可以通过以下任一不同的方式获取所述数据信息,具体可以是:
所述第一节点可以从第一区块链或者第二区块链中获得数据信息;或者,
所述第一节点接收第一区块链节点发送的数据信息,其中,所述第一区块链节点可以是第一区块链中的任一节点;或者,
所述第一节点接收中继节点或者数据源节点发送的数据信息。
其中,上述获取所述数据信息方式中,所述第一区块链与第二区块链可以相同,也可以不同。从所述区块链、区块链节点或者中继节点中获得的所述数据信息可以由所述数据源节点提供,包括:所述数据源节点将生成的数据信息存储在第二区块链上,或所述第二区块链上的一个节点,然后所述第二区块链节点再将该所述数据信息发送给所述第一节点。
具体地,所述第一节点获得所述数据信息包括:
所述第一节点获得交易索引信息,根据所述交易索引信息确定区块链交易,其中,所述区块链交易被记录在第一区块链或第二区块链上,且所述区块链交易中记录有所述数据信息;所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项。
示例性的,所述第一节点向中继节点发送交易索引信息,接收中继节点根据所述交易索引信息发送的数据信息。
此外,所述第一节点还可以通过其它方式获得所述数据信息,本申请实施例对此不做限定。
本实施例中,所述第一节点根据交易索引信息获取数据信息,可以避免加密数据或加密数据的地址信息直接在网络中传输,容易被盗取,利用交易索引信息得到数据信息进一步提高了数据传输的安全性。
步骤308:所述第一节点根据所述数据信息得到加密数据,并利用密钥对所述加密数据进行解密得到数据。
例如,所述数据信息可以是待访问的加密数据,或者所述加密数据对应的地址信息,进一步地,如果所述数据信息是加密数据,则所述第一节点接收到所述数据信息时即获得所述加密数据;如果所述数据信息是加密数据的地址信息,则可以通过所述地址信息的确定加密数据存放的地址,然后再利用该地址获取所述加密数据。
所述第一节点利用步骤306中解密得到的密钥key对所述获得的加密数据进行解密,得到待访问数据。
本实施例提供的方法,利用区块链上数据共识机制,使得请求方即第一节点可以从区块链,或区块链上任一节点上获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟,提高传输效率。
并且,所述第一节点从区块链上获得数据的密钥信息,由于所述数据的密钥信息经第一节点的公钥加密,所以被授权的所述第一节点能够解密和读取该数据,其它节点不能解密和访问所述数据,从而提高了数据传输的安全性。
示例性的,所述方法还可以包括:
步骤309:所述第一节点将获得数据信息和从区块链上获得数据的密钥信息作为一个交易事件,记录在第三区块链上。所述交易事件可以被称为第一交易事件或第一交易。进一步地,所述第一节点可以将所述第一交易事件广播到第三区块链的任一节点上,来将所述第一交易事件记录在第三区块链上。
其中,第三区块链上记录的第一交易事件可以包括以下一项或多项:数据标识、访问所述数据的设备标识、访问所述数据的时间、交易索引信息、第一区块链标识、第二区块链标识、第一区块链的交易标识信息、第二区块链的交易标识信息、第三区块链标识或第三区块链的交易标识信息等。其中,所述区块链的交易标识信息包括:该交易所在的区块号和/或交易的索引等。
同理地,在所述数据源节点确定了第一节点请求的待访问的加密数据后,还可以将所述加密数据或者加密数据的数据信息作为一个交易,记录和存储在第二区块链上。
根据本申请实施例所述的在第一区块链、第二区块链和第三区块链上的3中交易(transaction),可以做如下区分:
第一区块链:记录数据的密钥信息的交易。
第二区块链:记录数据信息的交易。
第三区块链:记录事件交易,例如记录第一区块链节点为第一节点提供数据的密钥信息,第二区块链节点为第一节点提供数据信息。
所述第一区块链记录的交易中包括以下一项或多项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的设备标识、第一节点的公钥、数据的密钥信息、交易索引信息、访问数据的时间、第一区块链节点标识、第一区块链节点的交易标识信息、数据的哈希hash、数据的密钥信息hash等。
所述第二区块链记录的交易中包括以下一项或多项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的设备标识、第一节点的公钥、交易索引信息、第二区块链节点标识、第二区块链节点的交易标识信息、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash、激励、激励响应的hash、产生响应的时间等。
所述第三区块链记录的交易中包括以下一项或多项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash、数据的密钥信息hash、第一节点获取数据信息和数据的密钥信息的交易,第一区块链为第一节点提供数据的密钥信息、第二区块链为第一节点提供数据的密钥信息等。
其中,区块链交易中记录数据的哈希hash用于验证数据传输的真实性和完整性,具体的,例如,第一节点在解密获得数据后,根据hash算法获得该解密数据的hash。第一节点还从区块链(例如第二区块链)上获取与该数据hash。进一步地,第一节点对比所述数据的hash和所述解密数据的hash,如果两个值不一致,则第一节点获得的数据是被篡改的数据;或者,如果两个值一致,则表明第一节点获得的数据是可信数据。
其中,所述第一区块链、第二区块链和第三区块链可以是同一个区块链,当这3种交易都记录在同一个区块链上时,可以通过标识,例如连接标识来连接。
当所述第一区块链、第二区块链和第三区块链是三个各不同的区块链时,可以通过跨链标识来连接这3个相关联的交易,即通过跨链标识建立关联。
还有一种可能情况是,记录事件交易的所述第三区块链可能与所述第一区块链,或者与所述第二区块链相同,例如,所述第一区块链交易上记录有:所述数据的密钥信息的交易和所述第一区块链节点为所述第一节点提供数据的密钥信息的事件交易;所述二区块链交易上记录有:所述数据信息的交易和所述第二区块链节点为所述第一节点提供数据信息的事件交易,则针对所述第一节点在所述第一区块链中的两个交易可以通过连接标识建立关联,针对所述第一节点在所述第二区块链中的两个交易也可以通过连接标识建立关联,针对所述第一节点第一区块链和所述第二区块链的这两个区块链中的交易可以通过跨链标识来建立关联。
概括地说,同一个区块链中有相关联交易的用连接标识建立关联,不同区块链中有相关联的交易用跨链标识建立关联。其中,所述连接标识和所述跨链标识可以是两个不同的标识,或者,连接标识和跨链标识也可以是同一个标识,由此可以在同一个区块链和不同的区块链中对有关联的交易建立连接关系。
另外,需要说明的是,本实施例中,所述中继节点可以是一个区块链节点,例如第一区块链节点,进而执行第一区块链节点的方法步骤。所述中继节点还可以是一个边缘设备节点,例如基站Node1(简称N1),用于接收和转发第一节点的相关信息,并将区块链网络中的各种反馈信息发送给第一节点。
另外,示例性的,所述第二区块链上的某个节点,例如第二区块链节点,用于存储或记录所述数据信息的节点可以与所述数据源节点是同一个节点,也可以是不同的节点。此外,在所述第一区块链和所述第二区块链是同一个区块链时,所述第一区块链节点和所述第二区块链节点可能是相同节点,也可能是不同的节点。同理地,所述第一区块链节点与所述数据源节点可能是同一个节点,也可能是不同的节点,本申请对此不予限制。
示例性的,本申请的方法还包括:
第一节点对解密后的数据进行验证,具体包括:
所述第一节点获取数据hash,其中,所述第一节点可以从数据信息的提供方第二区块链或第二区块链节点上获得,还可以从数据源节点或其他节点获得。
所述数据hash包括:请求访问的数据的哈希hash、数据信息hash、加密数据的地址信息hash、数据的密钥信息hash等。
所述第一节点根据所述数据hash判断访问的数据是否被篡改。
具体包括:将步骤308中第一节点利用解密得到的数据,根据hash算法获得解密数据的hash;第一节点对比所述数据的hash和所述解密数据的hash,如果两个值一致,则第一节点获得的数据是可信数据,如果两个值不一致,第一节点获得的数据是被篡改的数据。
下面对本实施例中的步骤305:所述第一区块链节点将所述数据的密钥信息发送给第一节点之前,所述第一节点获得所述数据的密钥信息做详细地说明。具体过程包括:
所述第一区块链节点接收来自所述第一节点或中继节点发送的请求消息,所述请求消息中包括第一信息;所述第一信息包括数据标识、第一节点标识或交易索引信息中的任意一项。
所述第一区块链节点根据所述第一信息中的数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项查找与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息。
具体包括以下任一方式查找所述交易:
第一种方式,根据数据标识查找与所述数据标识相关的交易;或
第二种方式,根据第一节点标识查找与所述第一节点标识相关的交易;或
第三种方式,根据第一节点的公钥查找与所述第一节点标识相关的交易;或
第四种方式,根据交易索引信息查找与所述交易索引信息相关的交易,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;或
第五种方式,根据数据标识、第一节点标识、第一节点的公钥和交易索引信息中的两项或两项以上查找与所述第一节点标识相关的交易;或
第六种方式,在前述五种方式的基础上,增加第一标识的条件,以提高查找的准确性。具体包括:第一区块链节点获得第一标识,所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息、连接标识或跨链标识等,根据所述第一信息和所述第一标识确定所述交易。所述第一标识可以预先存储在区块链上,也可以是第一区块链节点从数据源节点获得。
另外,还可以通过其它方式或增加新的信息来查找相关的交易,进而为第一节点提供数据的密钥信息,具体地,所述其它方式本申请不予限制。
本实施例中,第一区块链节点通过第一信息中所包含的数据标识或第一节点标识或交易索引信息,以及第一标识能够快速查找到与这些信息相匹配的第一区块链交易,进而通过交易中记录的信息快速获得所述数据的密钥信息,实现了在区块链上共享信息的快速获取,相比于从数据源节点或数据提供方获取数据的密钥信息,缩短了耗时。
同理地,第一区块链节点或其它节点,例如第二区块链节点或数据源节点查找第一节点所需的数据信息的过程也可以参考前述第一至第六种任一方式查找所述交易,本实施例对此不再赘述。
实施例二
本实施例提供的一种数据传输方法,该方法可以用于非首次申请访问数据的节点,例如第一节点向区块链网络发起数据访问的过程。该方法也可以在实施例一的基础上执行,即第一节点首次申请访问数据后,本实施例中的第一节点发起对相同数据的访问请求。此外,本方法还可以单独执行,由第一节点向区块链节点发起数据访问请求。
本实施例以实施例一中的第一节点首次请求访问数据的方法步骤为基础,对第一节点请求访问相同数据进行详细地说明。
首先,根据实施例一的描述,第一区块链用于记录数据的密钥信息。具体地,所述数据的密钥信息已经作为第一区块链的交易,记录在第一区块链中。例如针对第一节点需要访问的数据,其对应的数据的密钥信息已经被作为通过交易记录在第一区块链中。
第三区块链可以用于记录节点X为节点Y提供数据信息和/或数据的密钥信息。具体地,将“节点X为节点Y提供数据信息和/或数据的密钥信息”事件作为第三区块链的交易,为了方便理解和区分,所述第三区块链的交易(可称为事件交易),具体地,可以包括以下内容:“节点X为节点Y提供数据信息”,或者,可以是“节点X为节点Y提供密钥信息”,“节点X为节点Y提供数据信息和密钥信息”)。例如针对本实施例,第一节点需要访问的数据,中继节点为第一节点提供数据信息和/或数据的密钥信息作为第三区块链的交易(又称事件交易)记录在该区块链中。
针对本实施例,例如第一节点需要访问某个数据,所述数据是已经被加密的数据。由此第一节点需要获得所述数据,以及所述数据的密钥。在本实施例中,第一节点通过获得所述数据的数据信息和所述数据的密钥信息,由此根据两个信息最终解密所述加密数据,最终获得所述数据。
具体地,如图4所示,该方法包括以下步骤:
步骤401a:将数据的密钥信息作为第一区块链的一个交易,记录在所述第一区块链中。例如,数据源节点将数据的密钥信息记录在第一区块链上。
其中,特别地,针对第一节点需要访问的数据,所述数据的密钥信息为第一节点需要访问的数据的密钥信息,被记录在所述第一区块链中。且所述数据的密钥信息可以是数据源节点利用第一节点的公钥对所述数据密钥(key)进行加密后生成。
进一步地,所述数据的密钥信息包括被加密后的数据密钥(key),或者是所述加密后的数据密钥的地址信息。
步骤401b:将数据信息(包括数据或数据的地址信息)以及数据哈希hash记录在第二区块链上,例如,数据源节点将数据或数据相关的地址信息作为一个交易,记录在第二区块链节点上。
所述数据信息为第一节点请求访问的加密数据,或者是记录该加密数据的地址信息。
所述第二区块链中记录的信息还可以包括以下一项或多项:数据标识、第一节点标识、第一节点的设备标识、第一节点的公钥、交易索引信息、第二区块链节点标识、第二区块链节点的交易标识信息、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash、激励、激励响应的hash、产生响应的时间等。
或者,所述第二区块链的交易可以包含以下一项或多项:连接标识,跨链标识,第一节点的标识信息,数据标识、第一节点标识、第一节点的设备标识、第一节点的公钥、交易索引信息、第二区块链节点标识、第二区块链节点的交易标识信息、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash、激励、激励响应的hash、产生响应的时间等。即第二区块链的交易的内容可以包含上述一项或者多项信息
数据的hash,数据哈希hash,数据hash,在本发明中是同一个意思。可以将三个词统一称为数据的hash。
步骤402:所述第一节点向中继节点发送请求消息。所述请求消息可以用于请求获得某个数据或者该数据信息和/或者请求该数据的密钥信息。
所述数据信息可以是加密数据或加密数据的地址信息。
所述数据的密钥信息可以是被加密的数据密钥或存储被加密的数据密钥的地址信息。
所述请求消息中包括第一信息,所述第一信息包括:第一节点请求访问的数据标识、第一节点标识、第一节点公钥或交易索引信息中的一项或多项。
示例性的,所述第二请求消息中还可以包括所述第一标识,所述第一标识中包括区块链节点的交易标识信息、区块链节点标识、连接标识或跨链标识等。
示例性的,所述中继节点可以是距离所述第一节点最近的节点,并且所述中继节点可以是区块链上的一个节点。
步骤403a:所述中继节点接收所述请求消息,并根据所述请求消息中携带的所述第一信息查找与所述第一信息相关的交易,并从所述交易中获得对应的数据的密钥信息。
具体地,所述中继节点查找相关交易和获取数据的密钥信息的过程可以参考实施例一中步骤305的具体描述。
示例性的,所述中继节点根据所述第一信息查找是否有与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;如果有,则从所述交易中获得所述数据的密钥信息;如果没有,则拒绝访问。
进一步地,所述中继节点从所述交易中获得所述数据的密钥信息,包括:所述中继节点向所述第一区块链节点发送所述请求消息,所述第一区块链节点接收根据所述请求消息反馈的所述数据的密钥信息。
示例性的,所述中继节点还可以根所述据第一标识和所述第一信息共同查找获得所述数据信息和数据的密钥信息,所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识等。
步骤403b:中继节点判断第一节点是否具有访问权限。
具体地,判断第一节点是否具有访问数据的权限,包括:判断在区块链上是否有与第一节点请求的第一信息相关的交易,即判断所述第一节点是否获取到对应的数据的密钥信息,如果有相关交易,或获取到数据的密钥信息,则表示第一节点具有访问权限;否则,不具备访问权限。
还包括:所述中继节点在判断第一节点不具备访问权限的情形下,向第一节点反馈消息,所述消息用于通知第一节点获取数据失败,或者所述消息中包括第一节点没有权限访问该数据的内容。
此外,还可以通过其它方式判断,例如通过数据源节点给出第一节点是否具有访问权限。
步骤404a:如果具有访问权限,则所述中继节点可以为第一节点提供数据信息,具体地,提供所述数据信息时判断在第一节点本地是否存储有所述数据信息。
步骤405a:如果存储,则直接将所述数据信息发送给第一节点。
步骤405b:如果所述第一节点未存储有所述数据信息,则所述中继节点可以从其它节点处获取所述数据信息。
示例性的,所述中继节点向所述第二区块链节点发送所述请求消息,所述第二区块链节点根据所述请求消息中携带的第一信息确定与第一信息相关的数据信息,并将所述数据信息发送给中继节点。
示例性的,步骤405b中,所述第一节点还可以从所述数据源节点或所述第一区块链或邻近的其它中继节点中获得所述数据信息。
示例性的,所述中继节点向所述数据源节点发送所述请求消息,所述数据源节点根据所述请求消息中携带的第一信息确定所述相关的数据信息,并将所述数据信息发送给所述中继节点。
步骤406:中继节点向所述第一节点发送的数据信息和数据的密钥信息。
步骤407:第一节点根据所述数据信息获得加密数据,并利用第一节点的私钥对所述获取的数据的密钥信息进行解密得到密钥(key),再利用该密钥对所述加密数据进行解密得到访问数据。
其中,所述第一节点利用数据信息得到加密数据,和利用所述数据的密钥信息得到密钥,以及解密得到数据的过程与实施例一相同,可参考实施例一的步骤306和步骤308,本实施例不再赘述。
本实施例提供的方法,利用区块链的数据共识机制,对于非首次访问的节点,例如第一节点可以从距离较近的边缘设备,例如中继节点直接获得数据信息和数据的密钥信息,从而可以避免第一节点从距离较远的数据源节点获取这些信息,导致传输时延较长,同时也可以避免数据在核心网或中继节点之间的重复发送。
此外,所述中继节点根据来自所述第一节点的请求消息,验证所述第一节点是否具备访问权限,并根据验证结果下发与该请求消息相关的交易,例如数据的密钥信息,并对不具备权限的节点拒绝其访问请求,进而在提高传输效率的同时还保证了数据提供方的权益。
另外,需要说明的是,所述中继节点可以与所述第一区块链节点相同,也可以不相同,所述中继节点可以是某一边缘设备,例如基站。
示例性的,本实施例所述的方法还包括:
步骤408:第一节点将“中继节点为第一节点提供数据信息和所述数据的密钥信息”作为区块链的交易(可称为事件交易),记录在区块链上。具体地,“记录在区块链上”,所述区块链可以第一区块链或者第三区块链,或者一个新的区块链。
所述事件交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、交易索引信息、第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash等。
根据上面所述,对于涉及本实施例中的3个交易以及与各区块链之间的关系进行说明和区分,具体如下:
第一区块链:记录数据的密钥信息的交易;
第二区块链:记录数据信息的交易;
第三区块链:记录事件交易,包括:记录第一区块链节点为第一节点提供数据的密钥信息,第二区块链节点为第一节点提供数据信息(实施例一),以及,本实施例中的中继节点为第一节点提供数据信息和所述数据的密钥信息。
其中,各个区块链和记录的交易之间的关系是:
如果第一区块链、第二区块链和第三区块链是同一个区块链,即这3种交易都记录在同一个区块链上时,则这些区块链上的各种交易可以通过连接标识来连接。如果这三个区块链是各个不同的区块链时,则可以通过跨链标识来连接这3个相关联的交易。
进一步地,所述第一区块链的交易用于记录数据的密钥信息,以保证数据的安全和接入权限。第一区块链的交易中记录了包括:数据标识,设备标识,数据密钥信息,数据hash等信息。
第二区块链用于记录数信息,保证数据交易可追溯;第二区块链的交易中记录了包括:数据标识,设备标识,第一区块链的交易等信息。
第三区块链用于为第一节点和第一节点提供数据信息和/或数据的密钥信息。第三区块链的交易中记录了包括:数据标识,设备标识,数据地址,数据hash,第一区块链的交易标识信息,第二区块链的交易标识信息等。
此外,还可以将“中继节点为第一节点提供数据信息和所述数据的密钥信息”的事件交易分别记录在第一区块链和第二区块链上,例如,将中继节点为第一节点提供数据的密钥信息的事件交易记录在第一区块链上,将中继节点为第一节点提供数据信息的事件交易记录在所述第二区块链上。
本实施例中,中继节点根据来自第一节点的请求消息获得数据信息和/或数据的密钥信息的过程,具体可以通过下面的方式实现:
方式一:中继节点根据所述第一信息,到第一区块链中读取是否有所述数据的密钥信息,所述数据的密钥信息是所述第一节点需要访问的数据的数据密钥信息;
如果中继节点获得所述数据密钥信息,则第一节点具有访问所述数据的权限,由此中继节点将所述数据信息和所述数据的密钥信息发送给第一节点。
如果中继节点未能够从第一区块链中获得所述数据的密钥信息,则确定第一节点不具有访问权限,中继节点不会为第一节点提供所述数据。进一步地,当中继节点未能够从第一区块链中获得所述数据密钥信息时,方法还包括:中继节点可以向第一节点发送消息通知第一节点请求数据失败,或者通知第一节点没有访问所述数据的权限,或者通知拒绝为第一节点提供数据。
方式二:中继节点根据所述第一信息向第一区块链节点发送请求消息,用于请求所述数据密钥信息,所述数据密钥信息是所述第一节点需要访问的数据所对应的密钥信息。
如果第一区块链节点向中继节点反馈的消息中包含了所述数据的密钥信息,则表明出第一节点具有访问数据的权限,然后,中继节点为第一节点提供数据信息和所述数据的密钥信息,例如中继节点向第一节点发送数据信息和数据的密钥信息。
如果第一区块链节点向中继站反馈的消息中未包含所述数据的密钥信息,或者,反馈查找失败、无访问权限等内容的消息时,则表示第一节点不具有访问权限,不能获取数据信息。然后,所述方法还包括:中继节点向第一节点发送反馈消息,所述反馈消息用于通知第一节点数据请求失败,或者没有访问所述数据的权限,或者拒绝访问等信息。
需要说明的是,本申请各个实施例中的“第一节点”与实施例一中“第一节点”可以是相同的节点,也可以是不同的节点,为了对应本申请的各个可能的技术方案,此处以“第一节点”为例,可以理解地,还可以以“第二节点”或“第三节点”等命名,本申请对此不进行限制。
实施例三
本实施例还提供一种数据传输方法,参见图5,该方法包括三部分流程,分别是A部分、B部分和C部分,其中,A部分方法描述第一节点(U1)请求访问数据的过程、B部分方法描述第二节点(U2)请求访问数据的过程、C部分方法描述第三节点(U3)请求访问数据的过程。
其中,这三部分方法流程之间可以各自独立执行,或者两两组合,例如A部分与B部分组合、B部分与C部分组合,还可以是A部分、B部分和C部分组合,本申请对此不予限制。
下面对本实施例中的各个部分流程的方法步骤进行说明和介绍。
A部分流程
A部分的方法流程描述了第一节点U1请求访问数据的过程。
具体地,如图5所示,包括:
步骤A1:数据源节点(例如数据提供方)将数据的信息作为一个交易(Transaction)记录在第一区块链上。
所述数据的密钥信息可以是加密后的数据密钥(key),或者数据密钥存放的地址信息等;具体地,所述数据的密钥信息是加密后的数据密钥(key):例如利用访问所述数据的设备的公钥(例如节点U1的公钥)加密所述数据的密钥(key)生成数据的密钥信息,并且将该数据的密钥信息作为一个交易记录在第一区块链上。
步骤A2:节点U1发送请求消息给节点N1,所述请求消息用于请求访问数据。
所述请求消息中包含以下至少一项:数据标识(Data ID),节点U1标识(或称第一节点的设备标识),节点U1的公钥或交易索引信息,另外,还可以包括第一区块链的标识等。
步骤A3:节点N1(例如站点Node1)收到节点U1发送请求消息,并根据所述请求消息,中携带的内容,获得节点U1请求访问的数据所对应的数据的密钥信息。
一种可能实现方式是,节点N1根据所述请求消息中的数据标识和节点U1标识,在第一区块链中查找有关所述数据标识与所述节点U1标识的交易(transaction),如果有对应的交易记录,则从第一区块链中获得所述对应的数据的密钥信息。
其中,还包括:节点N1判断区块链中是否记录有节点U1请求访问数据所对应的数据的密钥信息,如果存在有交易记录所述数据的密钥信息,则表明节点U1具有访问权限;否则,不具有访问数据的权限。
另外,还可以根据请求消息中的其他信息,例如交易索引信息查找节点U1的数据的密钥信息,具体过程可参见实施例一和实施例二中的描述,此处不再详细赘述。
步骤A4:节点N1获得来自第一区块链的所述数据的密钥信息。
步骤A5:节点N1接收到节点U1发送请求消息后,发送该数据请求消息给第二区块链或第二区块链节点。
其中,所述数据请求消息例如可以包括:数据标识,节点U1标识,节点U1的公钥、交易索引信息或第一区块链标识中的一项或多项。
具体可以参考其他实施例的请求消息。
步骤A6:第二区块链节点接收来自节点N1的请求消息之后,对节点U1的访问权限进行验证,并将节点U1请求访问的数据发送给节点N1。
示例性的,一种访问权限的验证方法是:判断节点N1或第一区块链是否有交易,记录了与所述节点U1的数据标识或设备标识相关,即判断区块链上是否存在节点U1所需的数据的密钥信息。如果存在交易,或者节点N1获取数据的密钥信息,则表明所述节点U1具有访问权限;否则,不具备访问权限。
其中,所述数据为数据信息,所述数据信息包括加密数据或存储该加密数据的地址信息。
步骤A7:节点N1将所述数据信息和所述数据的密钥信息发送给节点U1。
步骤A8:节点U1接收来自节点N1的数据信息和数据的密钥信息,通过所述数据的密钥信息获得访问所述数据的密钥(key),再利用该密钥解密被加密的数据,访问所述数据。
B部分流程
在B部分流程中描述节点U2向区块链请求访问数据的过程,该过程中向节点U2提供数据信息和数据的密钥信息可以来自于同一个节点。
具体地,流程包括:
步骤B1:数据源节点将数据的密钥信息记录在第一区块链上,所述数据的密钥信息为利用节点U2的公钥对节点U2请求访问的数据密钥进行加密后生成。
步骤B2:节点U2向节点N1发送请求消息,所述请求消息中包括:数据标识、节点U2的公钥、节点U2标识(节点U2ID)或交易索引信息中的一项或多项。
步骤B3:节点N1收到请求消息后,根据请求消息中携带的数据标识判断在节点N1上存储有节点U2请求访问的数据。
具体地,节点N1接收来自节点U2的请求消息之后,判断节点U2是否具备数据访问权限,具体地,一种实现方式是:节点N1判断是否能够够获取到节点U2所需的数据的密钥信息,如果是,则节点U2具备访问权限;否则,不具备访问权限。
在判断出所述节点U2具有访问权限时,节点N1进一步判断本地是否存储有节点U2所需的数据信息;如果存储有所述数据信息,则可以直接将该数据信息提供给节点U2;如果未存储,则可以先从其它节点获取数据信息,再将该数据信息发送给节点U2。
另外,节点N1根据所述请求消息,查询相关交易,并获得所述数据的加密后的数据的密钥信息。具体地,节点N1根据所述请求消息中的内容,在第一区块链中查找有关交易,所述交易中记录有所述数据的密钥信息。
步骤B4:节点N1从第一区块链中获得所述数据的密钥信息。
步骤B5和B6:节点N1将所述数据信息和所述数据的密钥信息发送给节点U2。
步骤B7:节点U2通过所述数据的密钥信息获得访问所述数据的数据密钥(key),并根据数据密钥key解密被加密的数据得到访问数据。
步骤B8:节点N1将为节点U2提供数据信息和数据密钥信息作为一个交易,记录在第三区块链上。
C部分流程
在C部分流程中描述节点U3向区块链请求访问数据的过程,该过程中向节点U3提供数据信息和数据的密钥信息可以来自于不同的节点。
具体地,流程包括:
步骤C1:数据源节点将数据的密钥信息记录在第一区块链上,所述数据的密钥信息为利用节点U3的公钥对节点U3请求访问的数据密钥进行加密后生成。
步骤B2:节点U2向节点U2发送请求消息,所述请求消息中包括:数据标识、节点U3的公钥、节点U3标识(节点U3ID)或交易索引信息中的一项或多项。
示例性的,所述节点U2是距离节点U3较近的一个节点。
步骤C2:节点U2接收节点U3发送的请求消息,并向节点U3提供对应的数据信息。
具体地,节点U2向节点U3提供数据信息的过程与B部分流程中的步骤B2至步骤B5相同,可以参考B部分流程中的具体步骤,不详细赘述。
步骤C3:节点U3从节点N1获得数据密钥信息。
具体地,一种可能的实现方式是,节点U3发送请求消息给节点N1,所述请求消息用于请求数据的密钥信息。节点N1根据所述请求消息,在第一区块链中查找有关数据标识和节点U3设备标识的交易,并从交易的记录中获得所述数据的密钥信息,节点N1将所述数据的密钥信息发送给节点U3。
示例性的,具体地过程还可以参考B部分流程的步骤2至步骤5。
步骤C4:节点U3接收来自节点U2的数据信息,和来自节点N1的数据的密钥信息,并通过所述数据的密钥信息获得访问所述数据的数据密钥(key),并根据数据密钥key解密被加密的数据得到访问数据。
步骤C5:节点U2将为节点U3提供数据信息作为一个交易,记录在第三区块链上。
步骤C6:节点N1将为节点U3提供数据的密钥信息作为一个交易,记录在第三区块链上。
其中,所述第三区块链的交易中记录了包括:第三节点请求访问的数据标识,第三节点标识,第三节点的公钥,第三节点请求访问数据的数据地址/地址信息,数据/地址信息hash,交易索引信息,第一区块链的交易标识信息,连接标识或跨链标识等。
本实施例提供的方法,网络中的一个节点例如节点U2访问并存储了数据信息后,当与其相邻的其它节点,例如节点U3再次请求访问相同的数据时,节点U2可以直接向节点U3提供数据或数据信息,从而避免节点U3从距离较远的数据源节点请求数据,以及节省了数据在核心网或多个网络设备之间的重复传输时间和负载,提高了传输效率。
此外,利用请求节点的设备公钥对数据密钥进行加密,可以避免其他节点访问和读取传输中的数据,进一步地保证了数据传输的安全性,并且仅在数据源节点或区块链中记录有交易的情况下,才下发允许访问权限,因此在提高传输效率的同时还保证了数据源节点的权益。
概况以上A至C三个部分方法流程,其中,A部分流程中U1首次向区块链网络发起数据访问请求,第一区块链节点根据节点U1发送的请求消息为其查找并提供对应的数据的密钥信息,同样,第二区块链节点为第一节点提供与数据相关的数据信息,并且将所述数据信息发送给节点U1,其中,与第一节点距离较近的中继节点N1保存该数据信息。
B部分流程中,节点U2向区块链网络发起数据访问请求,如果在中继节点N1上存储有相关的数据信息,且该节点U2具有数据访问权限时,中继节点可以将存储的数据信息和通过第一区块链交易获得的数据的密钥信息一起提供给节点U2,即节点U2请求的数据信息和数据的密钥信息均来自同一个节点N1,进而提高了传输的效率、减小延迟。
其中,在中继节点N1向节点U2提供数据信息之前,还根据区块链上记录的数据的密钥信息对节点U2的身份进行了验证,对于不具备访问权限的节点,拒绝其访问请求,进而在减小传输延迟的同时还保证了数据源提供方的利益。
C部分流程中,节点U3向区块链网络发起数据访问请求,该请求的消息由距离位置较近的节点U2接收,由于节点U2记录并存储了数据信息,所以可以在验证节点U3具有访问权限的情况下,下发对应的数据信息,以及通知第一区块链节点为节点U3提供对应的数据的密钥信息。
其中,C部分流程中,节点U3获得的数据信息来自节点U2,数据的密钥信息来自第一区块链或第一区块链节点,实现了不同节点的信息提供。
另外,需要说明的是,本申请的各个实施例中仅涉及了三个区块链,分别是第一区块链:用于记录数据的密钥信息的交易;第二区块链:用于记录数据信息的交易,和第三区块链:用于记录事件交易,可以理解地,还可以包括更多或更少的区块链,以记录网络中的各个交易,并通过连接标识或跨链标识关联各个交易,本申请对区块链的数量,以及各个区块链记录的交易内容不做具体限定。
另外,需要说明的是本申请根据上述A至C三个部分不同组合,还可以包括更多的实施例,例如,A部分流程与B部分流程组合成一个实施例,或者A部分流程与C部分流程的组合,或者B部分流程与C部分流程的组合,本申请在此不逐一举例。
实施例四
在一个具体的实施例中,如图6所示,在一个传输系统中包括:终端设备,接入节点,所述接入节点可以是中继节点、接入设备或移动边缘计算(Mobile Edge Computing,MEC)设备,至少一个区块链,进而数据源节点,例如节点D。
本实施例提供一种数据访问权限控制方法,所述方法包括:
步骤601:数据源节点将需要提供的加密数据存储在接入节点中。
步骤602:终端设备在需要获取业务或数据时,发起与数据提供方交互流程以获得数据访问的权限。数据提供方和终端设备交互,使得终端设备获得该数据的访问权限。
步骤603A:数据提供方将所述终端设备的访问控制权限记录在第一区块链上。所述访问控制权限可以表现为密钥信息。
具体地,由于在步骤602数据提供方和终端设备交互,使得终端设备获得该数据的访问权限。由此数据提供方利用终端设备的公钥将加密数据的密钥(key)进行加密,被加密的key作为密钥信息第一区块链的信息被记录在第一区块链上。
所述密钥信息包括:被加密的key,被加密的key的hash,密钥
步骤603B:数据提供将所述终端设备的数据信息在第二区块链上。
所述数据信息包括以下至少一项:数据的hash,加密的数据hash,加密数据,加密数据的地址。具体地,所述数据信息包括以下至少一项:第一节点需要访问的加密数据,所述加密数据的地址信息,或者所述加密数据的hash,所述数据hash;
所述数据的密钥信息包括一下至少一项:被加密的数据密钥,存储被加密的数据密钥的地址信息,被加密的数据密钥的hash,所述密钥地址的hash。
步骤604:用户设备获得它要访问的数据相关的区块链交易索引信息。
所述区块链交易索引信息包括:区块高度,区块号,区块链标识和交易索引号等信息,还可以包括终端设备请求访问的数据标识、终端设备标识或区块链节点标识等。
步骤605:用户设备向接入设备发送请求消息,所述请求消息用于请求所述数据的密钥信息。
所述第一信息包括数据标识、第一节点标识、第一节点公钥或交易索引信息中的一项或多项。
具体地,终端设备以直接或间接的方式选择一个接入节点,示例性的,所述接入节点为距离所述终端设备位置最近的设备,然后将所述请求消息发送给该接入节点。
步骤606:接入节点在收到所述请求消息后,通过访问控制区块链(例如第一区块链),根据请求消息中携带的交易索引信息核实终端设备是否具有访问权限。
具体地,接入节点可通过访问控制区块链节点获得该区块链中是否保存了所述数据的密钥信息。
根据所述交易索引信息,如果在第一区块链找到对应的交易,所述交易用于记录终端设备需要访问的数据的数据密钥信息,则表示所述终端设备具有访问权限;否则,表示所述终端设备没有访问所述数据的权限。
步骤607:如果接入节点确认终端设备具有访问权限,则接入节点将密钥信息和/或加密数据提供给终端设备。
具体地,本步骤以提供密钥信息和加密数据为例来说明发明内容:如果接入节点确认终端设备具有访问权限后,接入节点判断本接入节点是否保存了所述加密数据,如果保存了接入节点将从第一区块链中获得的密钥信息和加密数据提供给终端设备。
关于接入节点如何判断本接入节点是偶保存了所述加密数据,例如接入节点可以根据请求消息中提供的第一信息来确定是否保存了所述加密数据。
步骤609:终端设备获取加密数据和数据的密钥信息,利用终端设备的私钥对所述数据的密钥信息进行解密得到密钥,再利用所述解密得到的密钥对所述加密数据进行解密,获取的访问的数据。
步骤610:终端设备从第二区块链中获得数据的hash。其中,所述第二区块链用于记录数据信息。
所述数据信息包括以下至少一项:数据的hash,数据的地址,加密数据的hash,加密数据,数据的存储地址等。
步骤611:所述终端设备利用解密得到的数据和hash算法获得解密数据的hash,判断所述数据的hash和所述解密数据的hash是否相同,如果两个值相同,则终端设备获得的数据是可靠的数据,如果不相同,则终端设备获得的数据是被篡改的数据。
步骤612:所述终端设备将接入节点向所述终端设备提供数据作为一个交易,记录在所述第三区块链上。
具体地,在检测所述数据未被篡改的情况下,所述终端设备将接入节点向所述终端设备提供数据作为一个交易,记录在所述第三区块链上
所述第三区块链的交易中包括以下至少一项:连接标识、跨链标识、终端设备标识、数据标识、终端设备的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、数据的哈希hash、数据信息hash、加密数据的地址信息hash、数据的密钥信息hash,接入节点标识,接入节点信息等。
本实施例中,终端设备在解密并访问数据后,通过将获取的区块链上的数据hash与解密后的数据生成的hash进行比较,来验证解密的数据真实和完整性,使得第一节点能够判断出获取的数据的可靠性。
本实施例中,数据源节点将数据存储在接入设备,使得请求终端设备可以从距离最近的接入设备或区块链上获得数据,降低了数据在核心网或者多个路由间重复传输的负担,较少了传输延迟,提高传输效率。
同时,接入设备利用访问控制权限查询信息核实终端设备的访问权限,在所述终端设备具备访问权限之后再下发业务和数据,进而保证了数据源节点的权益。
本实施例中涉及第一区块链和第三区块链中所记录的交易包括:第一区块链,用于记录数据的密钥信息的交易,第二区块链用于记录数据的信息,第三区块链用于记录某节点(例如接入节点)为终端设备提供数据信息的交易。
本申请还提供了一种数据传输装置,用于实现实施例如图3至图6所述的方法,如图7所示,装置包括:收发模块701、处理模块702和存储模块703,此外还可以包括其它模块或单元。
收发模块701,用于获得数据信息和第一区块链上记录的数据的密钥信息;
处理模块702,用于根据所述收发模块701接收的所述数据信息得到加密数据,根据所述收发模块接收的所述数据的密钥信息获得密钥,以及利用所述密钥对所述加密数据进行解密得到数据。
在一种可能的实现方式中,所述处理模块702,具体用于在所述收发模块接收所述数据的密钥信息为所述被加密的数据密钥时,利用私钥对所述被加密的数据密钥进行解密得到所述密钥;或者,在所述收发模块701接收所述数据的密钥信息为所述存储被加密的数据密钥的地址信息时,根据所述地址信息获得被加密的数据密钥,以及利用私钥对所述被加密的数据密钥进行解密得到所述密钥。
在一种可能的实现方式中,所述收发模块701,具体用于获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;
所述处理模块702,具体用于根据所述收发模块701获取的交易索引信息确定所述第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,根据所述第一区块链交易获得所述数据的密钥信息;或者,
所述收发模块701,用于向中继节点发送所述交易索引信息,以及接收所述中继节点根据所述交易索引信息反馈的所述数据的密钥信息。
在一种可能的实现方式中,所述收发模块701,具体用于从第一区块链或者第二区块链中获得所述数据信息;或者,接收第一区块链的任一区块链节点或者第二区块链的任一区块链节点发送的所述数据信息;或者,接收中继节点或者数据源节点发送的所述数据信息。
在一种可能的实现方式中,所述收发模块701,具体用于获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;
所述处理模块702,具体用于根据所述收发模块获得的所述交易索引信息确定区块链交易,其中,所述区块链交易被记录在第一区块链或第二区块链上,且所述区块链交易中记录有所述数据信息;
或者,所述收发模块701,具体用于向中继节点发送所述交易索引信息,接收所述中继节点根据所述交易索引信息发送的数据信息。
在一种可能的实现方式中,,所述处理模块701,具体用于在所述数据信息为所述加密数据时,从所述数据信息中获得所述加密数据;或者,在所述数据信息为所述加密数据的地址信息时,通过所述数据的地址信息查找并得到所述加密数据。
在一种可能的实现方式中,所述处理模块702,还用于将获得数据信息和所述数据的密钥信息的事件作为第一交易,记录在一条区块链上;
其中,所述第一交易中包括:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash中的一项或多项。
在一种可能的实现方式中,所述收发模块701,还用于接收来自第二节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第二节点标识、第二节点公钥或交易索引信息中的一项或多项;所述处理模块702,还用于根据所述数据标识、第二节点标识、第二节点公钥或交易索引信息中的一项或者多项获取数据信息和/或数据的密钥信息;
所述收发模块701,还用于将所述数据信息和/或数据的密钥信息发送给所述第二节点。
在一种可能的实现方式中,所述处理模块702,还用于根据物理不可克隆函数PUF技术产生的激励响应来获得第一节点的私钥或者公钥产生源。
在一种可能的实现方式中,所述处理模块702,还用于根据物理不可克隆函数PUF技术产生激励响应,将激励和激励响应的hash中的至少一项作为第一节点的标识信息,以便于所述第一节点的标识信息被记录在区块链上;所述区块链上记录的交易包括以下一项或多项:激励、激励响应的hash、节点标识、产生响应的时间或节点的公钥。
其中,所述处理模块对应的实体设备可以为处理器,所述接收模块对应的实体设备为接收器,发送模块对应的实体设备为发射器,或者还可以是收发器。
此外,所述数据传输装置,还可以应用于任意区块链上的一个区块链节点,包括:
处理模块702,用于通过第一信息获得第一节点请求的数据信息和/或数据的密钥信息,其中,所述第一信息包括:数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项;
收发模块701,用于将所述处理模块获取的所述数据信息和/或数据的密钥信息发送给所述第一节点或者中继节点。
在一种可能的实现方式中,所述收发模块701,还用于接收第一节点或中继节点发送的请求消息,所述请求消息中包括所述第一信息;
所述处理模块702,具体用于根据所述收发模块接收的所述第一信息中的数据标识、第一节点标识、第一节点公钥或交易索引信息中的一项或多项查找与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;
所述收发模块701,还用于从所述交易的记录中获得所述数据的密钥信息。
在一种可能的实现方式中,所述处理模块702,具体用于根据所述第一信息和第一标识确定所述交易,所述第一标识包括至少一个区块链节点标识、至少一个区块链节点的交易标识信息或跨链标识中的一项或多项。
在一种可能的实现方式中,所述收发模块701,具体用于接收第二区块链,或中继节点,或数据源节点根据所述数据标识、第一节点标识或交易索引信息中的一项或多项反馈的所述数据信息;或者用于在根据所述第一信息确定本地存储有所述数据信息的情况下,获取所述存储的数据信息;所述数据信息包括加密数据或加密数据的地址信息。
在一种可能的实现方式中,所述处理模块702,还用于生成交易索引信息,所述交易索引信息用于确定第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项。
其中,所述处理模块对应的实体设备可以为处理器,所述接收模块对应的实体设备为接收器,发送模块对应的实体设备为发射器,或者还可以是收发器。
另外,本实施例中提供的数据传输装置可以实现前述方法的中继节点的步骤和功能,以中继节点N1为例,所述装置具体用于:
收发模块701,用于获得来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识或交易索引信息;
处理模块702,用于根据所述收发模块701获得的第一信息得到所述数据信息和/或数据的密钥信息;
所述收发模块701,还用于将所述数据信息和/或数据的密钥信息发送给所述第一节点。
在本实施例的一种实现方式中,处理模块702,具体用于确认所述第一节点是否有访问权限;如果是,则获得数据信息;如果否,则拒绝第一节点的访问请求;
其中,获得所述数据信息,具体包括:所述装置在已经存储有所述数据信息的情况下,从本地的存储模块中获得所述数据信息;或者,在未存储所述数据信息的情况下,从第一区块链、第二区块链或数据源节点上获得所述数据信息。
在本实施例的另一种实现方式中,处理模块702,具体用于所述中继节点根据所述第一信息查找是否有与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;如果是,则从所述交易中获得所述数据的密钥信息;如果否,则拒绝访问。
在本实施例的另一种实现方式中,收发模块701,还用于向所述第一区块链节点发送所述请求消息;收发模块701,还用于接收所述第一区块链节点根据所述请求消息反馈的数据的密钥信息,所述数据的密钥信息由第一节点的公钥加密后生成。
在本实施例的另一种实现方式中,处理模块702,具体用于根据所述第一信息和所述第一标识获得所述数据信息和/或数据的密钥信息。所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识等。
在本实施例的另一种实现方式中,处理模块702,还用于将给所述第一节点发送所述数据信息和/或数据的密钥信息作为第二交易,记录在第三区块链上。
其中,所述第二交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、交易索引信息、第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash等。
其中,所述处理模块对应的实体设备可以为处理器,所述接收模块对应的实体设备为接收器,发送模块对应的实体设备为发射器,或者还可以是收发器。
另外,本实施例中提供的数据传输装置可以实现前述方法的数据源节点的步骤和功能,以节点D为例,所述装置具体用于:
处理模块702,用于生成数据的密钥信息,将所述数据的密钥信息记录在第一区块链上,以使第一区块链上的任意一个区块链节点存储所述数据的密钥信息,并将其快速地提供给请求方的第一节点,缩短传输延迟,提高传输效率。
在本实施例的一种实现方式中,处理模块702,具体用于利用收发模块701接收来自第一节点或者经过中继节点转发的请求消息,所述请求消息中包括第一信息,根据所述第一信息确定第一节点的公钥,并利用所述第一节点的公钥对数据的密钥进行加密,生成所述数据的密钥信息,所述第一信息包括数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项。
在本实施例的另一种实现方式中,处理模块702,具体用于利用收发模块701将所述数据的密钥信息发送给第一区块链节点,以通过第一区块链节点将所述数据的密钥信息记录在第一区块链上;或者,将所述数据的密钥信息广播和存储到所述第一区块链上。
在本实施例的另一种实现方式中,处理模块702,还用于将第一节点请求访问的加密数据记录在第二区块链上;或者,将所述加密数据广播和存储到所述第二区块链上,所述数据信息包括加密数据或加密数据的地址信息。
本实施例提供的数据传输装置,利用区块链上数据共识特性,使得请求方例如第一节点可以从区块链的任意一个区块链节点上直接获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟,提高传输效率。
并且,第一节点通过第一区块链节点获得数据的密钥信息,由于该数据的密钥信息经第一节点的公钥加密,所以被授权的第一节点能够解密和读取该数据,其它节点不能解密和访问所述数据,从而提高了数据传输的安全性。
另外,区块链节点或中继节点根据来自第一节点的请求消息,验证第一节点是否具备访问权限,并根据验证结果下发与该请求消息相关的交易,例如数据的密钥信息,并对不具备权限的节点拒绝其访问请求,进而在提高传输效率的同时还保证了数据提供方的权益。
其中,所述处理模块对应的实体设备可以为处理器,所述接收模块对应的实体设备为接收器,发送模块对应的实体设备为发射器,或者还可以是收发器。
与本申请装置实施例相对应,本申请还提供了一种网络节点。所述网络节点可以是前述实施例中的网元设备、站点、区块链节点、数据源节点、基站、UE、MEC设备和终端等。用于实现上面各个实施例中各个节点所述的数据传输方法。
具体地,如图8所示,该网络节点包括收发器801(发射器/接收器)、处理器/控制器802和存储器803,此外,还可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置,本申请对此不进行限定。
其中,所述收发器801可以包括接收模块和发送模块,用于实现传输系统中各个网元或节点之间的通信传输,例如收发数据、信令、请求消息等。
进一步地,收发器801可以包括无线局域网(wireless local area network,WLAN)模块、蓝牙模块、基带(base band)模块等通信模块,以及所述通信模块对应的射频(radio frequency,RF)电路,用于进行无线网络通信、蓝牙通信、红外线通信及/或蜂窝式通信系统通信,例如宽带码分多重接入(wideband code division multiple access,WCDMA)及/或高速下行封包存取(high speed downlink packet access,HSDPA)。
所述处理器802为网络节点的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器803内的软件程序和/或模块,以及调用存储在存储器803内的指令,以执行图2至图6的各个实施例的方法步骤。
进一步地,处理器802可以由集成电路(integrated circuit,IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器802可以仅包括CPU,也可以是GPU、数字信号处理器(digital signalprocessor,DSP)、及收发模块中的控制芯片(例如基带芯片)的组合。在本申请的各种实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
所述存储器803可以包括易失性存储器(volatile memory),例如随机存取内存(random access memory,RAM);还可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-statedrive,SSD);所述存储器还可以包括上述种类的存储器的组合。所述存储器中可以存储有程序或代码,所述处理器通过执行所述程序或代码可以实现所述网络节点的功能。
在各个实施例中,图7所示的收发模块的所有功能可以由网络节点的收发器801来实现,或者由处理器802控制的收发器801来实现;图7所示处理模块所要实现的功能可以由所述处理器802实现。
所述存储器803用于存储指令或各种信息,例如请求消息、第一标识、第一信息、第一交易、第二交易、第三交易等。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的数据传输方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、ROM或RAM等。
本申请所述的终端用于物联网或比特别等技术场景,即适用于设备到设备(device to device,D2D)、网元到设备、网元到网元之间的数据传输,所述区块链节点可以是一种网元或者一个设备。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本发明实施例涉及的终端设备,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(Radio Access Network,RAN)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(PCS,Personal Communication Service)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(WLL,Wireless Local Loop)站、个人数字助理(PDA,Personal Digital Assistant)等设备。无线终端也可以称为系统、订户单元(Subscriber Unit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、接入点(Access Point)、远程终端(RemoteTerminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(UserAgent)、用户设备(User Device)、或用户装备(User Equipment)。
本发明实施例所涉及的网络设备,可以是基站,或者接入点,或者可以是指接入网中在空中接口上通过一个或多个扇区与无线终端通信的设备。基站可用于将收到的空中帧与IP分组进行相互转换,作为无线终端与接入网的其余部分之间的路由器,其中接入网的其余部分可包括网际协议(IP)网络。基站还可协调对空中接口的属性管理。例如,基站可以是GSM或CDMA中的基站(BTS,Base Transceiver Station),也可以是WCDMA中的基站(NodeB),还可以是LTE中的演进型基站(eNB或e-NodeB,evolutional Node B),本申请并不限定。
此外,本申请还提供了一种传输系统,用于实现网络节点间数据的共享和访问权限的控制,该系统包括第一节点、至少一条区块链,所述区块链上包括多个区块链节点,还可以包括中继节点和数据源节点,其中,所述中继节点和所述数据源节点可以是某一区块链节点。
具体地,该传输系统中的各个节点用于执行如图2至图6所示的方法步骤:
第1步:数据源节点将生成数据的密钥信息,将所述数据的密钥信息记录在第一区块链上;
第2步:第一节点生成请求消息,所述请求消息中包括:数据标识或第一节点标识或交易索引信息中的一项或多项;
第3步:第一节点发送所述请求消息,具体地,所述第一节点可以将请求消息发送给中继节点,例如MEC设备,或者发送给第一区块链节点,示例性的,所述中继节点与所述第一区块链节点是同一个节点。所述请求消息用于为第一节点请求访问数据和数据的密钥信息。
第4步:中继节点获得来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项;根据所述第一信息获得所述数据信息和/或数据的密钥信息。
示例性的,一种具体的实现方式是,中继节点在判断所述第一节点具有访问权限的情况下,从本地的数据库中得到所述数据信息,或者从第一区块链节点或其它节点获得所述数据信息。
另外,中继节点在获得所述数据的密钥信息的过程,具体可以包括:中继节点向第一区块链节点发送所述请求消息;第一区块链节点接收该请求消息,根据该请求消息中携带的数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项查找与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;从所述交易中获得所述数据的密钥信息。
示例性的,第一区块链节点还可以根据第一标识和所述第一信息查找并获得所述数据的密钥信息,所述第一标识包括:第一区块链节点标识、第一区块链节点的交易标识信息、第二区块链节点标识、第二区块链节点的交易标识信息或跨链标识等。
第一区块链节点将查找到的数据的密钥信息发送给中继节点,所述中继节点接收来自第一区块链节点的数据的密钥信息。
第5步:中继节点将所述数据信息和所述数据的密钥信息发送给第一节点。
其中,所述数据信息包括:第一节点请求访问的加密数据或加密数据的地址信息;所述数据的密钥信息包括:被加密的数据密钥或存储被加密的数据密钥的地址信息。
第6步:第一节点接收来自中继节点的数据信息和所述数据的密钥信息,根据所述数据信息得到加密数据,以及根据所述数据的密钥信息获得密钥。
具体地,第一节点从所述数据信息中获得所述加密数据,或者,第一节点通过所述数据的地址信息查找并得到所述加密数据。
示例性的,第一节点获得所述数据的密钥信息具体包括:第一节点获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号、区块链标识中的一项或多项;根据所述交易索引信息确定所述第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,根据所述第一区块链交易获得所述数据的密钥信息。
第一节点利用第一节点的私钥对所述被加密的数据密钥进行解密得到所述密钥。
第7步:第一节点利用所述密钥对所述加密数据进行解密得到数据。
其中,所述数据信息和所述数据的密钥信息可以由同一区块链节点提供,例如第一区块链节点,还可以由不同的节点提供,例如所述数据的密钥信息由第一区块链节点提供,所述数据信息由第二区块链节点提供,或者由数据源节点提供。
第8步,第一节点将获得的所述数据的密钥信息和所述数据信息作为第一交易,记录在区块链上。
其中,所述第一交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash。
示例性的,还可以由中继节点将给所述第一节点发送所述数据信息和/或数据的密钥信息作为第二交易,记录在所述第三区块链上。
所述方法还包括:
第9步:第二节点向距离其最近的中继节点发送第二请求消息,所述第二请求消息中包括第二节点标识、请求访问的数据标识或交易索引信息中的一项或多项。
所述中继节点可以是一区块链节点,或者是接入的MEC设备,例如为第二节点提供服务的基站等。
第10步:中继节点接收来自第二节点的第二请求消息,根据所述第二请求消息中携带的标识信息验证第二节点是否具备访问权限。
第11步:如果是,则在本地或区块链节点上获得第二节点请求访问的数据信息和数据的密钥信息,并将这些信息发送给所述第二节点。
具体地,获得所述数据信息和数据的密钥信息的过程参考前述第4步至第6步的过程,或者参见前述实施例一和实例二的方法流程,不再赘述。
第12步:第二节点接收来自中继节点的数据信息和数据的密钥信息,根据所述数据信息得到加密数据,以及根据所述数据的密钥信息获得密钥;利用所述密钥对所述加密数据进行解密得到数据。
其中,所述第一节点和第二节点请求访问的数据可以相同,也可以不同。
此外,所述方法还包括:第二节点或中继节点或第一区块链节点生成一个交易,并记录在第三区块链上。
其中,所述交易包括以下一项或多项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash或数据的密钥信息hash。
本实施例提供的系统,利用区块链上数据共享的特性,使得请求方例如第一节点可以从区块链的任意一个区块链节点上直接获取数据信息,进而降低了数据信息在核心网或者多个路由间重复传输的负担,较少了传输延迟,提高传输效率。
并且,第一节点通过第一区块链节点获得数据的密钥信息,由于该数据的密钥信息经第一节点的公钥加密,所以被授权的第一节点能够解密和读取该数据,其它节点不能解密和访问所述数据,从而提高了数据传输的安全性。
当第二节点请求访问的数据被存储在距离最近的边缘设备时,可以直接从该边缘设备获得加密数据,进一步节约了传输时延。
另外,区块链节点或中继节点根据来自第一节点或第二节点的请求消息,验证发请求的节点是否具备访问权限,并根据验证结果下发与该请求消息相关的交易,例如数据的密钥信息,并对不具备权限的节点拒绝其访问请求,进而在提高传输效率的同时还保证了数据提供方的权益。
对于本系统提供的方法中的各种实现方式的详细说明可参见前述实施例的方法描述,此处不再赘述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请上述各个所述的“一项或多项”包括一项,还包括两项或两项以上。
所述各个实施例的方法和步骤之间可以互相参考和借鉴,其中,可以理解地,本申请的“所述实施例”或“本实施例”的文字表述包括但不限于其中所在的某一个实施例,还可以指其它的实施例。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于本申请上述各个实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。

Claims (32)

1.一种数据传输方法,其特征在于,所述方法包括:
第一节点获得数据信息和第一区块链上记录的数据的密钥信息;
所述第一节点根据所述数据信息得到加密数据,以及根据所述数据的密钥信息获得密钥;
所述第一节点利用所述密钥对所述加密数据进行解密得到数据;
其中,所述第一节点获得数据信息,包括:
所述第一节点从第二区块链或第二区块链的任一区块链节点获取所述数据信息;
或者,所述第一节点接收中继节点发送的所述数据信息,且所述中继节点发送的所述数据信息通过以下任一方式获取:
方式一:从区块链上获取所述数据信息;
方式二:基于区块链共享的方式接收来自区块链节点的所述数据信息,所述数据信息由所述数据源节点生成并存储在任一区块链上。
2.根据权利要求1所述的方法,其特征在于,所述第一节点根据所述数据的密钥信息获得密钥,包括:
在所述数据的密钥信息为被加密的数据密钥时,所述第一节点利用私钥对所述被加密的数据密钥进行解密得到所述密钥;或者,
在所述数据的密钥信息为存储被加密的数据密钥的地址信息时,所述第一节点根据所述地址信息获得被加密的数据密钥,以及利用私钥对所述被加密的数据密钥进行解密得到所述密钥。
3.根据权利要求1所述的方法,其特征在于,所述第一节点获得所述第一区块链上记录的数据的密钥信息,包括:
所述第一节点获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;
根据所述交易索引信息确定第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,根据所述第一区块链交易获得所述数据的密钥信息;或者,
所述第一节点向中继节点发送交易索引信息,接收所述中继节点根据所述交易索引信息反馈的数据的密钥信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一节点获得数据信息包括:
所述第一节点获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项,根据所述交易索引信息确定区块链交易,其中,所述区块链交易被记录在第一区块链或第二区块链上,且所述区块链交易中记录有所述数据信息;
或者,
所述第一节点向中继节点发送交易索引信息,接收所述中继节点根据所述交易索引信息发送的数据信息。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述第一节点根据所述数据信息得到加密数据包括;
在所述数据信息为所述加密数据时,所述第一节点从所述数据信息中获得所述加密数据;
或者,
在所述数据信息为所述加密数据的地址信息时,所述第一节点通过所述数据的地址信息查找并得到所述加密数据。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点将获得数据信息和所述数据的密钥信息的事件作为第一交易,记录在一条区块链上;
其中,所述第一交易中包括以下至少一项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash和数据的密钥信息hash。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点接收来自第二节点的请求消息;
所述第一节点将所述数据信息、所述数据的密钥信息、或所述数据信息和所述数据的密钥信息发送给所述第二节点。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
第一节点根据物理不可克隆函数PUF技术产生的激励响应来获得第一节点的私钥或者公钥产生源。
9.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
第一节点根据物理不可克隆函数PUF技术产生激励响应,将激励和激励响应的hash中的至少一项作为第一节点的标识信息,以便于所述第一节点的标识信息被记录在区块链上;所述区块链上记录的交易包括以下至少一项:激励、激励响应的hash、节点标识、产生响应的时间和节点的公钥。
10.根据权利要求1-3任一项所述的方法,其特征在于,所述数据信息还通过方式三获取:
方式三:在所述中继节点存储有所述数据信息的情况下,从所述中继节点本地中获取所述数据信息。
11.一种数据传输方法,其特征在于,所述方法包括:
中继节点接收来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括:数据标识、第一节点标识、第一节点公钥和交易索引信息中的一项或多项;
所述中继节点根据所述数据标识、第一节点公钥、第一节点标识或交易索引信息中的一项或者多项获取数据信息;
所述中继节点将所述数据信息发送给所述第一节点;
其中,在所述中继节点未存储所述数据信息的情况下,所述数据信息通过如下任一方式获取:
方式一:从区块链上获取所述数据信息;
方式二:基于区块链共享的方式接收来自区块链节点的所述数据信息,所述数据信息由所述数据源节点生成并存储在区块链上。
12.根据权利要求11所述的方法,其特征在于,所述数据信息还通过方式三获取:
方式三:在所述中继节点存储有所述数据信息的情况下,从所述中继节点本地中获取所述数据信息。
13.根据权利要求12所述的方法,其特征在于,所述中继节点获取所述数据信息之前,还包括:
所述中继节点检测所述第一节点是否有访问所述数据信息的权限。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述方法还包括:
所述中继节点根据所述数据标识、第一节点标识、第一节点公钥和交易索引信息中的至少一项在区块链上查找与所述第一信息相关的交易,所述与第一信息相关的交易中记录有数据的密钥信息;
所述中继节点将所述数据的密钥信息发送给所述第一节点。
15.根据权利要求14所述的方法,其特征在于,所述中继节点在区块链上查找与所述第一信息相关的交易,包括:
所述中继节点向第一区块链节点发送所述请求消息;
所述中继节点接收所述第一区块链节点根据所述请求消息反馈的所述数据的密钥信息。
16.根据权利要求15所述的方法,其特征在于,所述中继节点将所述数据的密钥信息发送给所述第一节点之后,还包括:
所述中继节点将发送所述数据信息和/或数据的密钥信息给所述第一节点的事件所为第二交易,记录在区块链上,
其中,所述第二交易中包括以下至少一项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash和数据的密钥信息hash。
17.一种数据传输装置,其特征在于,包括:
收发模块,用于获得数据信息和第一区块链上记录的数据的密钥信息;
处理模块,用于根据所述收发模块接收的所述数据信息得到加密数据,根据所述收发模块接收的所述数据的密钥信息获得密钥,以及利用所述密钥对所述加密数据进行解密得到数据;
所述收发模块,具体用于从第二区块链或者第二区块链的任一区块链节点获取所述数据信息;或者,接收中继节点发送的所述数据信息,且所述中继节点发送的所述数据信息通过以下任一方式获取:
方式一:从区块链上获取所述数据信息;
方式二:基于区块链共享的方式接收来自区块链节点的所述数据信息,所述数据信息由所述数据源节点生成并存储在任一区块链上。
18.根据权利要求17所述的装置,其特征在于,
所述处理模块,具体用于在所述收发模块接收所述数据的密钥信息为被加密的数据密钥时,利用私钥对所述被加密的数据密钥进行解密得到所述密钥;或者,在所述收发模块接收所述数据的密钥信息为存储被加密的数据密钥的地址信息时,根据所述地址信息获得被加密的数据密钥,以及利用私钥对所述被加密的数据密钥进行解密得到所述密钥。
19.根据权利要求17所述的装置,其特征在于,
所述收发模块,具体用于获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;
所述处理模块,具体用于根据所述收发模块获取的交易索引信息确定第一区块链交易,所述第一区块链交易中记录所述数据的密钥信息,根据所述第一区块链交易获得所述数据的密钥信息;或者,
所述收发模块,用于向中继节点发送所述交易索引信息,以及接收所述中继节点根据所述交易索引信息反馈的所述数据的密钥信息。
20.根据权利要求17-19任一项所述的装置,其特征在于,
所述收发模块,具体用于获得交易索引信息,所述交易索引信息包括区块号、区块高度、交易索引号或区块链标识中的一项或多项;
所述处理模块,具体用于根据所述收发模块获得的所述交易索引信息确定区块链交易,其中,所述区块链交易被记录在第一区块链或第二区块链上,且所述区块链交易中记录有所述数据信息;
或者,
所述收发模块,具体用于向中继节点发送所述交易索引信息,接收所述中继节点根据所述交易索引信息发送的数据信息。
21.根据权利要求17-19任一项所述的装置,其特征在于,
所述处理模块,具体用于在所述数据信息为所述加密数据时,从所述数据信息中获得所述加密数据;或者,在所述数据信息为所述加密数据的地址信息时,通过所述数据的地址信息查找并得到所述加密数据。
22.根据权利要求17-19任一项所述的装置,其特征在于,
所述处理模块,还用于将获得数据信息和所述数据的密钥信息的事件作为第一交易,记录在一条区块链上;
其中,所述第一交易中包括以下至少一项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash和数据的密钥信息hash。
23.根据权利要求17-19任一项所述的装置,其特征在于,
所述收发模块,还用于接收来自第二节点的请求消息;
所述收发模块,还用于将所述数据信息、所述数据的密钥信息、或所述数据信息和所述发送给所述第二节点。
24.根据权利要求17-19任一项所述的装置,其特征在于,
所述处理模块,还用于根据物理不可克隆函数PUF技术产生的激励响应来获得第一节点的私钥或者公钥产生源。
25.根据权利要求17-19任一项所述的装置,其特征在于,
所述处理模块,还用于根据物理不可克隆函数PUF技术产生激励响应,将激励和激励响应的hash中的至少一项作为第一节点的标识信息,以便于所述第一节点的标识信息被记录在区块链上;所述区块链上记录的交易包括以下至少一项:激励、激励响应的hash、节点标识、产生响应的时间和节点的公钥。
26.根据权利要求17-19任一项所述的装置,其特征在于,
所述收发模块,还用于通过方式三获取所述数据信息,
方式三:在本地存储有所述数据信息的情况下,从本地中获取所述数据信息。
27.一种数据传输装置,其特征在于,包括:
收发模块,用于接收来自第一节点的请求消息,所述请求消息中包括第一信息,所述第一信息包括数据标识、第一节点标识、第一节点公钥或交易索引信息中的一项或多项;
处理模块,用于根据收发模块获得的所述数据标识、第一节点标识、第一节点公钥或交易索引信息中的一项或多项;以及,根据所述数据标识、第一节点公钥、第一节点标识或交易索引信息中的一项或者多项获取数据信息;
所述收发模块,还用于将所述数据信息发送给所述第一节点;
其中,所述收发模块在所述装置未存储所述数据信息的情况下,通过如下任一方式获取所述数据信息;
方式一:从区块链上获取所述数据信息;
方式二:基于区块链共享的方式接收来自区块链节点的所述数据信息,所述数据信息由所述数据源节点生成并存储在区块链上。
28.根据权利要求27所述的装置,其特征在于,
所述收发模块,还用于通过方式三获取所述数据信息;
方式三:在所述处理模块检测出本地存储有所述数据信息时,从本地获取所述数据信息。
29.根据权利要求27所述的装置,其特征在于,
所述处理模块,还用于检测所述第一节点是否有访问所述数据信息的权限。
30.根据权利要求27-29任一项所述的装置,其特征在于,
所述处理模块,还用于根据所述数据标识、第一节点标识、第一节点的公钥或交易索引信息中的一项或多项查找与所述第一信息相关的交易,所述交易中记录有所述数据的密钥信息;
所述收发模块,还用于将所述数据的密钥信息发送给所述第一节点。
31.根据权利要求30所述的装置,其特征在于,
所述收发模块,还用于向第一区块链节点发送所述请求消息,以及接收所述第一区块链节点根据所述请求消息反馈的所述数据的密钥信息。
32.根据权利要求31所述的装置,其特征在于,
所述处理模块,还用于将发送所述数据信息和/或数据的密钥信息给所述第一节点的事件所为第二交易,记录在区块链上,
其中,所述第二交易中包括以下至少一项:数据标识、第一节点标识、第一节点的公钥、访问数据的时间、区块链节点标识、区块链节点的交易标识信息、交易索引信息、跨链标识、数据的哈希hash、数据信息hash、加密数据的地址信息hash和数据的密钥信息hash。
CN201810151008.6A 2018-02-13 2018-02-13 一种数据传输方法、装置和网络节点 Active CN110166411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810151008.6A CN110166411B (zh) 2018-02-13 2018-02-13 一种数据传输方法、装置和网络节点

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810151008.6A CN110166411B (zh) 2018-02-13 2018-02-13 一种数据传输方法、装置和网络节点
PCT/CN2018/103046 WO2019157810A1 (zh) 2018-02-13 2018-08-29 一种数据传输方法、装置和网络节点

Publications (2)

Publication Number Publication Date
CN110166411A CN110166411A (zh) 2019-08-23
CN110166411B true CN110166411B (zh) 2022-05-06

Family

ID=67618499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810151008.6A Active CN110166411B (zh) 2018-02-13 2018-02-13 一种数据传输方法、装置和网络节点

Country Status (2)

Country Link
CN (1) CN110166411B (zh)
WO (1) WO2019157810A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021034264A1 (en) * 2019-08-22 2021-02-25 Quantumciel Pte. Ltd. Device, system and method for providing information security
CN110572460B (zh) * 2019-09-11 2021-05-14 腾讯科技(深圳)有限公司 基于区块链系统的数据传输方法、装置及计算机设备
CN111800373A (zh) * 2019-09-27 2020-10-20 北京京东尚科信息技术有限公司 基于属性基加密区块链的数据访问方法及装置
CN110868292B (zh) * 2019-12-03 2021-12-14 湖南国奥电力设备有限公司 基于区块链的地下电缆数据传输方法和装置
CN111131254B (zh) * 2019-12-25 2022-04-15 中国联合网络通信集团有限公司 文件处理方法、区块链节点、区块链和存储介质
CN111327591A (zh) * 2020-01-19 2020-06-23 广州得众信息技术有限公司 基于区块链的数据传输方法、系统及存储介质
CN111552215B (zh) * 2020-05-22 2022-02-11 中国联合网络通信集团有限公司 物联网设备安全防护方法和系统
SG10202006451QA (en) * 2020-07-03 2021-02-25 Alipay Labs Singapore Pte Ltd Managing transactions in multiple blockchain networks
CN112702337A (zh) * 2020-12-22 2021-04-23 平安科技(深圳)有限公司 一种区块节点数据的授权处理方法、装置和计算机设备
CN112995211B (zh) * 2021-04-21 2021-07-23 腾讯科技(深圳)有限公司 基于区块链网络的数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340267A (zh) * 2007-07-03 2009-01-07 财团法人工业技术研究院 通讯系统的传输控制方法与装置
CN102118869A (zh) * 2010-01-05 2011-07-06 财团法人工业技术研究院 用于数据中继传输的系统及方法
CN106992990A (zh) * 2017-05-19 2017-07-28 北京牛链科技有限公司 数据共享方法和系统以及区块链系统和计算设备
CN107332658A (zh) * 2017-08-11 2017-11-07 浙江赛佳控股有限公司 基于链式区块链技术的接口实现方法及装置
CN107579951A (zh) * 2017-07-14 2018-01-12 阿里巴巴集团控股有限公司 一种业务数据处理方法、业务处理方法及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9853819B2 (en) * 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
CN107679369A (zh) * 2016-08-02 2018-02-09 华为技术有限公司 一种共享数字内容的许可证的方法、装置及系统
CN106789920A (zh) * 2016-11-25 2017-05-31 深圳前海微众银行股份有限公司 区块链的节点连接方法及装置
CN107248994B (zh) * 2017-06-26 2020-08-14 联动优势科技有限公司 一种信息发送方法、处理方法及装置
CN107493162A (zh) * 2017-07-25 2017-12-19 中国联合网络通信集团有限公司 区块链节点的实现方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340267A (zh) * 2007-07-03 2009-01-07 财团法人工业技术研究院 通讯系统的传输控制方法与装置
CN102118869A (zh) * 2010-01-05 2011-07-06 财团法人工业技术研究院 用于数据中继传输的系统及方法
CN106992990A (zh) * 2017-05-19 2017-07-28 北京牛链科技有限公司 数据共享方法和系统以及区块链系统和计算设备
CN107579951A (zh) * 2017-07-14 2018-01-12 阿里巴巴集团控股有限公司 一种业务数据处理方法、业务处理方法及设备
CN107332658A (zh) * 2017-08-11 2017-11-07 浙江赛佳控股有限公司 基于链式区块链技术的接口实现方法及装置

Also Published As

Publication number Publication date
CN110166411A (zh) 2019-08-23
WO2019157810A1 (zh) 2019-08-22

Similar Documents

Publication Publication Date Title
CN110166411B (zh) 一种数据传输方法、装置和网络节点
US11240212B2 (en) Content security at service layer
Sidorov et al. Ultralightweight mutual authentication RFID protocol for blockchain enabled supply chains
JP2021516917A (ja) データアクセス権限を制御するための方法および装置
CN102685749B (zh) 面向移动终端的无线安全身份验证方法
US20150208238A1 (en) Terminal identity verification and service authentication method, system and terminal
Kaur et al. A lightweight and privacy-preserving authentication protocol for mobile edge computing
US11303431B2 (en) Method and system for performing SSL handshake
US20200260278A1 (en) Method and apparatus for authenticating network access of terminal
EP3479540A1 (en) Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms
US20200382957A1 (en) Device and method for authenticating transport layer security communications
Ma NFC Communications-based Mutual Authentication Scheme for the Internet of Things.
Li et al. Trustroam: A novel blockchain-based cross-domain authentication scheme for Wi-Fi access
CN110620776B (zh) 一种数据转移信息传输方法及其装置
Raniyal et al. Passphrase protected device‐to‐device mutual authentication schemes for smart homes
Vemulapalli et al. Security frameworks in mobile cloud computing
Wei et al. A provably secure anonymous two-factor authenticated key exchange protocol for cloud computing
Tao et al. Anonymous identity authentication mechanism for hybrid architecture in mobile crowd sensing networks
Omori et al. Extended inter-device digital rights sharing and transfer based on device-owner equality verification using homomorphic encryption
Yan et al. Power blockchain guarantee mechanism based on trusted computing
Lu et al. A Novel Smart Card Based User Authentication and Key Agreement Scheme for Heterogeneous Wireless Sensor Networks
Wu et al. Efficient Authentication for Internet of Things Devices in Information Management Systems
Kammoun et al. Ensuring Data Integrity Using Digital Signature in an IoT Environment
Divya et al. An Efficient Data Storage and Forwarding Mechanism Using Fragmentation-Replication and DADR Protocol for Enhancing the Security in Cloud
KR102271201B1 (ko) 블록체인을 이용한 개인정보 관리 방법 및 그 방법이 적용된 블록체인 네트워크 관리자

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