CN111565186A - 一种消息发布方法及装置 - Google Patents

一种消息发布方法及装置 Download PDF

Info

Publication number
CN111565186A
CN111565186A CN202010358190.XA CN202010358190A CN111565186A CN 111565186 A CN111565186 A CN 111565186A CN 202010358190 A CN202010358190 A CN 202010358190A CN 111565186 A CN111565186 A CN 111565186A
Authority
CN
China
Prior art keywords
message
directional
node
publishing
encrypted
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.)
Granted
Application number
CN202010358190.XA
Other languages
English (en)
Other versions
CN111565186B (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.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202010358190.XA priority Critical patent/CN111565186B/zh
Publication of CN111565186A publication Critical patent/CN111565186A/zh
Application granted granted Critical
Publication of CN111565186B publication Critical patent/CN111565186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • 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
    • 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/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种消息发布方法及装置,属于通信技术领域。该消息发布方法包括:发布节点获取待发布的发布消息,并将发布消息拆分为第一消息和第二消息;生成公共密钥;使用公共密钥对第一消息进行加密,获得第一加密消息;生成定向节点对应的随机消息;基于随机消息和第二消息,生成定向区分消息;基于定向区分消息和公共密钥,生成定向保密消息;使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息;在区块链网络广播第一加密消息和第二加密消息,以供定向节点基于第一加密消息和第二加密消息获得发布消息和随机消息,可以避免密钥在传输过程中被泄露,同时还可降低加密消息对区块链网络的存储压力。

Description

一种消息发布方法及装置
技术领域
本发明涉及通信技术领域,具体涉及一种消息发布方法及装置。
背景技术
在区块链网络中,当前节点向其它节点定向发送消息的方式有多种。比如,当前节点生成密钥,使用密钥对保密信息进行加密,获得加密消息,并把密钥和加密消息发送至定向节点;定向节点收到密钥和加密消息后,使用密钥对加密消息解密,从而获得保密信息。又如,当前节点使用定向节点的密钥(如定向节点的公钥)加密保密信息,获得加密消息,并将加密消息发送至定向节点;定向节点接收保密消息后,使用定向节点的密钥对加密消息进行解密,获得保密信息。在前一种方法中,密钥在发送过程中一旦被泄漏,则失去定向发送加密消息的意义;在第二种方法,如果定向节点数量较多,则需要对发送至每个定向节点的保密信息进行加密,还需把加密后生成的加密消息发布在区块链上,从而导致加密次数较多,而且还会占用较大的区块空间。
因此,如何避免密钥在传输过程中被泄露,同时降低加密消息对区块链网络的存储压力,成为本领域亟待解决的问题。
发明内容
为此,本发明提供一种消息发布方法及装置,以解决密钥容易在传输过程中泄露,且由于定向节点数量较多导致加密消息数量较大,从而对区块链网络造成存储压力过大的问题。
为了实现上述目的,本发明第一方面提供一种消息发布方法,应用于发布节点,包括:
获取待发布的发布消息,并将所述发布消息拆分为第一消息和第二消息;
生成公共密钥;
使用所述公共密钥对所述第一消息进行加密,获得第一加密消息;
生成定向节点对应的随机消息;
基于所述随机消息和所述第二消息,生成定向区分消息;
基于所述定向区分消息和所述公共密钥,生成定向保密消息;
使用所述定向节点的公钥对所述定向保密消息进行加密,获得第二加密消息;
在区块链网络广播所述第一加密消息和所述第二加密消息,以供所述定向节点基于所述第一加密消息和所述第二加密消息获得所述发布消息和所述随机消息。
进一步地,所述将所述发布消息拆分为第一消息和第二消息,包括:
按照预设规则将所述发布消息拆分为所述第一消息和所述第二消息。
进一步地,获得所述第一加密消息和获得所述第二加密消息之后,所述在区块链网络广播所述第一加密消息和所述第二加密消息之前,还包括:
使用所述发布节点的私钥对所述第一加密消息和所述第二加密消息进行签名。
为了实现上述目的,本发明第二方面提供一种消息发布方法,应用于定向节点,包括:
接收发布节点在区块链网络广播的第一加密消息和第二加密消息;其中,所述第一加密消息为使用公共密钥对第一消息进行加密后获得的消息,所述公共密钥为发布节点生成的密钥,所述第二加密消息为使用所述定向节点的公钥对定向保密消息进行加密后获得的消息,所述定向保密消息包括定向区分消息和所述公共密钥,所述定向区分消息包括第二消息和随机消息,所述第一消息和所述第二消息为将发布消息拆分后获得的消息,所述发布消息为所述发布节点待发布的消息,所述随机消息为所述发布节点随机生成的消息;
使用所述定向节点的私钥对所述第二加密消息进行解密,获得所述定向保密消息;
从所述定向保密消息获得所述公共密钥和所述定向区分消息;
使用所述公共密钥对所述第一加密消息进行解密,获得所述第一消息;
将所述第一消息和所述定向区分消息合并,获得定向发布消息。
进一步地,所述接收发布节点在区块链网络广播的第一加密消息和第二加密消息之后,所述使用所述定向节点的私钥对所述第二加密消息进行解密之前,还包括:
对所述第一加密消息和所述第二加密消息进行签名验证。
进一步地,所述将所述第一消息和所述定向区分消息合并,获得定向发布消息,包括:
按照预设规则将所述第一消息和所述定向区分消息合并,获得所述定向发布消息。
为了实现上述目的,本发明第三方面提供一种消息发布装置,应用于发布节点,包括:
发布节点获取模块,用于获取待发布的发布消息;
拆分模块,用于将所述发布消息拆分为第一消息和第二消息;
第一生成模块,用于生成公共密钥;
第二生成模块,用于生成定向节点对应的随机消息;
第三生成模块,用于基于所述随机消息和所述第二消息,生成定向区分消息,以及基于所述定向区分消息和所述公共密钥生成定向保密消息;
加密模块,用于使用所述公共密钥对所述第一消息进行加密,获得第一加密消息,以及使用所述定向节点的公钥对所述定向保密消息进行加密,获得第二加密消息;
发布节点广播模块,用于在区块链网络广播所述第一加密消息和所述第二加密消息,以供所述定向节点基于所述第一加密消息和所述第二加密消息获得所述发布消息和所述随机消息。
进一步地,所述消息发布装置,还包括:
发布节点签名模块,用于使用所述发布节点的私钥对所述第一加密消息和所述第二加密消息进行签名。
为了实现上述目的,本发明第四方面提供一种消息发布装置,应用于定向节点,包括:
定向节点接收模块,用于接收发布节点在区块链网络广播的第一加密消息和第二加密消息;其中,所述第一加密消息为使用公共密钥对第一消息进行加密后获得的消息,所述公共密钥为发布节点生成的密钥,所述第二加密消息为使用所述定向节点的公钥对定向保密消息进行加密后获得的消息,所述定向保密消息包括定向区分消息和所述公共密钥,所述定向区分消息包括第二消息和随机消息,所述第一消息和所述第二消息为将发布消息拆分后获得的消息,所述发布消息为所述发布节点待发布的消息,所述随机消息为所述发布节点随机生成的消息;
解密模块,用于使用所述定向节点的私钥对所述第二加密消息进行解密,获得所述定向保密消息,以及使用所述公共密钥对所述第一加密消息进行解密,获得所述第一消息;
定向节点获取模块,用于从所述定向保密消息获得所述公共密钥和所述定向区分消息;
合并模块,用于将所述第一消息和所述定向区分消息合并,获得定向发布消息。
进一步地,所述消息发布装置,还包括:
定向节点验证模块,用于对所述第一加密消息和所述第二加密消息进行签名验证。
本发明具有如下优点:
本发明提供的消息发布方法,发布节点获取待发布的发布消息,并将发布消息拆分为第一消息和第二消息;生成公共密钥;使用公共密钥对第一消息进行加密,获得第一加密消息;生成定向节点对应的随机消息;基于随机消息和第二消息,生成定向区分消息;基于定向区分消息和公共密钥,生成定向保密消息;使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息;在区块链网络广播第一加密消息和第二加密消息,以供定向节点基于第一加密消息和第二加密消息获得发布消息和随机消息,可以避免密钥在传输过程中被泄露,同时还可降低加密消息对区块链网络的存储压力。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
图1为本发明第一实施例提供的一种消息发布方法的流程图;
图2为本发明第二实施例提供的一种消息发布方法的流程图;
图3为本发明第三实施例提供的一种消息发布装置的原理框图;
图4为本发明第四实施例提供的一种消息发布装置的原理框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
常用的消息发布方法中,当前节点向定向节点发送消息时,为防止消息泄露,通常先使用密钥对待发布的消息进行加密获得加密消息,再在区块链网络中广播加密消息,以供定向节点接收加密消息,并对加密消息解密获得发布消息。如果当前节点使用自己的密钥对消息加密,并将密钥和加密消息发送至定向节点时,密钥容易被黑客截获,从而造成发布消息的泄露;如果当前节点使用定向节点提供的密钥进行加密,虽然不需要向定向节点发送密钥,不会导致密钥泄露,但是当定向节点数量较多时,发布节点需要为每个定向节点加密一份加密消息,并将这些加密消息上传至区块链网络,这会导致发布节点加密次数过多,还会导致过多加密消息对区块链网络造成存储压力。有鉴于此,本发明提供一种消息发布方法及装置,一方面可以避免密钥在传输过程中被泄露,另一方面可以降低加密消息对区块链网络的存储压力。
图1是本发明第一实施例提供的一种消息发布方法的流程图,应用于发布节点。如图1所示,该消息发布方法可包括如下步骤:
步骤S101,获取待发布的发布消息,并将发布消息拆分为第一消息和第二消息。
其中,发布消息为发布节点计划向定向节点发送的消息。发布消息的发送方式包括多种,在实际应用中可以根据业务需求或技术要求确定发送方式。如,在区块链网络中,发布节点可以通过广播的形式向定向节点发送发布消息。
需要说明的是,定向节点将发布消息拆分为第一消息和第二消息时需要遵循预设规则。预设规则可以由发布节点根据业务需要或其它需求设置。如,发布节点预先设置拆分发布消息的规则为从发布消息中的每十个字节中抽取一个字节作为第二消息,剩余部分作为第一消息。
在一个实施方式中,发布节点从区块链网络管理员的服务器获取待发布的发布消息,并按照预设规则将发布消息拆分为第一消息和第二消息。
可以理解的是,发布节点在发布消息之前,需要先确定或获取接收发布消息的定向节点。
步骤S102,生成公共密钥。
其中,公共密钥包括固定密钥、随机密钥和其他类型的密钥。不同类型的密钥具有不同解密难度和适用场景,发布节点可以根据发布消息所需的保密程度和应用场景生成具有相应保密级别和适用性的公共密钥。
一般情况下,如果发布消息所需的保密程度较低,则发布节点生成一个固定密钥作为公共密钥即可;如果发布消息所需的保密程度较高,则发布节点生成一个随机密钥作为公共密钥,可以增加解密的难度,从而在一定程度上增加信息的安全性;如果发布消息所需的保密程度特别高,则发布节点生成一个具有时效性的随机密钥作为公共密钥,只有在有效期内正确解密发布消息才可获得正确的结果,当解密时间超过有效期后,即便解密的方法是正确的,仍然无法获得正确的解密结果,这样可以进一步增强信息的安全性。
在一个实施方式中,发布节点生成一个随机数,并将该随机数作为公共密钥。
步骤S103,使用公共密钥对第一消息进行加密,获得第一加密消息。
在一个实施方式中,假设公共密钥为K,第一消息为M1。发布节点使用公共密钥对第一消息进行加密,获得CK(M1)。其中,CK(M1)为第一加密消息。
需要说明的是,关于使用公共密钥对第一消息进行加密的方法包括现在的和将来出现的任何加密方法。
步骤S104,生成定向节点对应的随机消息。
其中,随机消息与定向节点一一对应,因此,随机消息可以用来区分定向节点。
在一个实施方式中,发布节点获取或确定接收发布消息的定向节点,并分别为每个定向节点生成对应的、定制化的随机消息。
如,区块链网络管理员确定接收发布消息的定向节点,并生成定向节点列表,该定向节点列表中包括三个定向节点,分别是P1、P2和P3。发布节点获取该定向节点列表,并分别为P1、P2和P3生成对应的R1、R2和R3。其中,R1为与P1对应的随机消息,R2为与P2对应的随机消息,R3为与P3对应的随机消息。
步骤S105,基于随机消息和第二消息,生成定向区分消息。
在一个实施方式中,发布节点将随机消息并入到第二消息中,生成定向区分消息。
如,定向节点对应的随机消息为R,第二消息为M2。发布节点将随机消息并入第二消息,获得MR2。其中,MR2即为发布节点的定向区分消息,且MR2={M2,R}。
步骤S106,基于定向区分消息和公共密钥,生成定向保密消息。
在一个实施方式中,假设公共密钥为K,定向节点对应的定向区分消息为MR2,且MR2=(M2,R);其中,M2为第二消息,R为定向节点对应的随机消息。发布节点基于定向区分消息和公共密钥,生成MBR2;其中,MBR2为定向保密消息,且MBR2={MR2,K}={(M2,R),K}。
步骤S107,使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息。
在一个实施方式中,假设定向节点的公钥为PK,定向保密消息为MBR2,且MBR2={MR2,K}={(M2,R),K};其中,MR2为定向区分消息,且MR2=(M2,R),M2为第二消息,R为定向节点对应的随机消息,K为公共密钥。发布节点使用定向节点的公钥对定向保密消息进行加密,获得
Figure BDA0002474201150000081
其中,
Figure BDA0002474201150000082
为第二加密消息,且
Figure BDA0002474201150000083
需要说明的是,发布节点使用定向节点的公钥对定向保密消息进行加密,因此,发布节点不需要向定向节点发送密钥(即定向节点的公钥),从而可以避免黑客截获密钥(即定向节点的公钥),从而防止黑客破解第二加密消息获取公共密钥,进而防止黑客基于公共密钥破解第一加密消息获得第一消息,达到防止发布消息泄露的目的。
还需要说明的是,关于使用定向节点的公钥对定向保密消息进行加密的方法包括现在的和将来出现的任何加密方法。
步骤S108,在区块链网络广播第一加密消息和第二加密消息,以供定向节点基于第一加密消息和第二加密消息获得发布消息和随机消息。
发布节点获取第一加密消息和第二加密消息后,在区块链网络中广播第一加密消息和第二加密消息,以供定向节点从区块链网络获取第一加密消息和第二加密消息,并基于第一加密消息和第二加密消息获得发布消息和随机消息。
在一个实施方式中,发布节点在区块链网络中广播第一加密消息和第二加密消息。定向节点从区块链网络获取第一加密消息和第二加密消息,并使用定向节点的公钥对第二加密消息进行解密,获得定向保密消息,然后从定向保密消息中获取定向区分消息和公共密钥,并使用公共密钥对第一加密消息进行解密,获得第一消息,再将第一消息和定向区分消息合并,从而获得定向发布消息。其中,定向发布消息包括第一消息、第二消息和随机消息。换言之,定向发布消息包括发布消息和随机消息。
需要说明的是,为进一步保障信息的安全性,发布节点在区块链网络广播第一加密消息和第二加密消息之前,可以先使用发布节点的私钥对第一加密消息和第二加密消息进行签名,然后将签名后的第一加密消息和第二加密消息在区块链网络中广播。
还需要说明的是,第一实施例提供的消息发布方法可以减少需要上传至区块链网络的加密消息所需占用的内存。假设发布消息占用内存为M,定向节点的数量为N。如果采用传统的不拆分消息的消息发布方式,发布节点需要为每个定向节点加密一份发布消息,并将所有的加密发布消息上传至区块链网络,因此需要占用区块链网络的内存大小为M*N(忽略加密对内存造成的影响)。如果采用第一实施例中的消息发布方法,发布节点先将发布消息拆分为第一消息和第二消息之后再进行加密和上传操作,所需占用区块链网络内存的计算过程为:假设第一消息占用内存为M1,第二消息占用内存为M2,若忽略拆分发布消息对内存造成的影响,则M=M1+M2。对于第一消息来说,发布节点只需要上传区块链网络一份第一加密消息即可,因此占用内存为M1(忽略加密对内存造成的影响);对于第二消息来说,发布节点需要为每个定向节点加密并上传一份第二加密消息,因此占用内存为M2*N(忽略加密对内存造成的影响)。所以,第一实施例的消息发布方法所需占用区块链网络的总内存为M1+M2*N。由于M=M1+M2,所以(M1+M2*N)<M*N,因此,第一实施例提供的消息发布方法可以减少需要上传至区块链网络的加密消息所占用的内存,从而可以有效降低区块链网络的存储压力。
可以理解的是,M1越大,M2越小,则所需上传至区块链网络的加密消息内存总量就越小。因此,一般情况下,发布节点将发布消息拆分为一份内存较大的消息和一份内存较小的消息,并将内存较大的消息作为第一消息,将内存较小的消息作为第二消息。
还需要说明的是,发布节点将公共密钥与定向区分消息使用定向节点的公钥加密后在区块链网络广播,而不是直接在区块链网络中广播公共密钥,可以防止公共密钥被泄露,从而避免发布消息被非法破解。
图2是本发明第二实施例提供的一种消息发布方法的流程图,应用于定向节点。如图2所示,该消息发布方法可包括如下步骤:
步骤S201,接收发布节点在区块链网络广播的第一加密消息和第二加密消息。
其中,第一加密消息为使用公共密钥对第一消息进行加密后获得的消息,公共密钥为发布节点生成的密钥,第二加密消息为使用定向节点的公钥对定向保密消息进行加密后获得的消息,定向保密消息包括定向区分消息和公共密钥,定向区分消息包括第二消息和随机消息,第一消息和第二消息为将发布消息拆分后获得的消息,发布消息为发布节点待发布的消息,随机消息为发布节点随机生成的消息。
在一个实施方式中,发布节点按照预设规则将发布消息拆分为第一消息和第二消息,使用生成的公共密钥对第一消息进行加密获得第一加密消息;基于第二消息和生成的与定向节点对应的随机消息生成定向区分消息,并基于定向区分消息和公共密钥生成定向保密消息,使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息;然后使用发布节点的私钥对第一加密消息和第二加密消息进行签名后,在区块链网络中广播第一加密消息和第二加密消息。定向节点接收发布节点在区块链网络广播的第一加密消息和第二加密消息。
可以理解的是,如果第一加密消息和第二加密消息是被发布节点使用其私钥签名后的消息,定向节点接收第一加密消息和第二加密消息以后,可以查找区块链账本获得发布节点的公钥,并使用发布节点的公钥对第一加密消息和第二加密消息进行签名验证。当第一加密消息和第二加密消息通过签名验证时,执行后续的解密操作;当第一加密消息和/或第二加密消息未通过签名验证时,终止所有操作。
步骤S202,使用定向节点的私钥对第二加密消息进行解密,获得定向保密消息。
第二加密消息为发布节点使用定向节点的公钥对定向保密消息加密获得的消息,因此,定向节点使用定向节点的私钥对第二加密消息解密,可以获得定向保密消息。其中,定向保密消息包括定向区分消息和公共密钥。
在一个实施方式中,假设定向节点的私钥为PSK,第二加密消息为
Figure BDA0002474201150000111
Figure BDA0002474201150000112
其中,MBR2为定向保密消息,MR2为定向区分消息,K为公共密钥。定向节点使用定向节点的私钥对第二加密消息进行解密,获得定向保密消息MBR2,即
Figure BDA0002474201150000113
其中,F为关于PSK解密函数。
步骤S203,从定向保密消息获得公共密钥和定向区分消息。
定向保密消息为发布节点基于公共密钥和定向区分消息生成的消息,因此,定向节点使用正确的获取方法可以从定向保密消息中获取公共密钥和定向区分消息。
在一个实施方式中,假设定向保密消息为MBR2。定向节点通过获取函数从MBR2获取MR2和K,即(MR2,K)=H(MBR2)。其中,H为获取函数,MR2为定向区分消息,K为公共密钥。
步骤S204,使用公共密钥对第一加密消息进行解密,获得第一消息。
其中,第一加密消息为发布节点使用公共密钥对第一消息进行加密获得的消息,因此,定向节点使用公共密钥对第一加密消息进行解密可以获得第一消息。
在一个实施方式中,假设公共密钥为K,第一加密消息为CK(M1)。定向节点使用K对CK(M1)进行解密,获得M1,即M1=TK(CK(M1))。其中,T为关于K的解密函数,M1为第一消息。
需要说明的是,关于使用公共密钥对第一加密消息进行解密的方法包括现在的和将来出现的任何解密方法。
步骤S205,将第一消息和定向区分消息合并,获得定向发布消息。
其中,定向区分消息包括第二消息和随机消息,且随机消息与定向节点一一对应。
需要说明的是,定向节点将第一消息和定向区分消息合并需要遵循预设的规则。
在一个实施方式中,定向节点将第一消息和定向区分消息合并,获得定向发布消息,包括:
首先,定向节点从定向区分消息中获取第二消息和随机消息;
其次,定向节点按照预设的第一合并规则将第一消息和第二消息合并,获得发布消息;
再次,定向节点按照预设的第二合并规则将发布消息和随机消息合并,获得定向发布消息。
如,假设第一消息为M1,定向区分消息为MR2。
首先,定向节点从MR2中获取M2和R,即(M2,R)=H(MR2)。其中,M2为第二消息,R为定向节点对应的随机消息,H为第一获取函数(用于从定向区分消息中获取第二消息和随机消息)。
其次,定向节点按照预设的第一合并规则将M1和M2合并,获得M,即M=Q1(M1,M2)。其中,M为发布消息,Q1为基于第一合并规则设置的第一合并函数。
最后,定向节点按照预设的第二合并规则将M和R合并,获得M′,即M′=Q2(M,R)。其中,M′为定向发布消息,Q2为基于第二合并规则设置的第二合并函数。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
图3是本发明第三实施例提供的一种消息发布装置的原理框图,应用于发布节点。如图3所示,该消息发布装置包括:发布节点获取模块301、拆分模块302、第一生成模块303、第二生成模块304、第三生成模块305、加密模块306和发布节点广播模块307。
发布节点获取模块301,用于获取待发布的发布消息。
其中,发布消息为发布节点计划向定向节点发送的消息。在实际应用中,发布消息的发送方式包括多种,发布节点可以根据业务需求或技术要求确定发送方式。
在一个实施方式中,发布节点通过发布节点获取模块301从区块链网络管理员的服务器获取待发布的发布消息。
拆分模块302,用于将发布消息拆分为第一消息和第二消息。
拆分模块302将发布消息拆分为第一消息和第二消息时需要遵循预设规则。预设规则可以由发布节点根据业务需要或其它需求设置。
如,发布节点预先设置拆分发布消息的规则为从发布消息中的每十个字节中抽取一个字节作为第二消息,剩余部分作为第一消息。发布节点通过拆分模块302按照预设规则内容将发布消息拆分为第一消息和第二消息。
第一生成模块303,用于生成公共密钥。
其中,公共密钥包括固定密钥、随机密钥和其他类型的密钥。不同类型的密钥具有不同解密难度和适用场景,发布节点可以根据发布消息所需的保密程度和应用场景生成具有相应保密级别和适用性的公共密钥。
在一个实施方式中,发布节点通过第一生成模块303生成一个随机数,并将该随机数作为公共密钥。
第二生成模块304,用于生成定向节点对应的随机消息。
其中,随机消息与定向节点一一对应,因此,随机消息可以用来区分定向节点。
在一个实施方式中,发布节点获取或确定接收发布消息的定向节点,并通过第二生成模块304分别为每个定向节点生成对应的、定制化的随机消息。
第三生成模块305,用于基于随机消息和第二消息,生成定向区分消息,以及基于定向区分消息和公共密钥生成定向保密消息。
在一个实施方式中,第三生成模块305基于随机消息和第二消息,生成定向区分消息,包括:
将随机消息并入到第二消息中,生成定向区分消息。如,定向节点对应的随机消息为R,第二消息为M2。定向节点通过第三生成模块305将随机消息并入第二消息,获得MR2。其中,MR2即为定向节点的定向区分消息,且MR2={M2,R}。
在另一个实施方式中,第三生成模块305基于定向区分消息和公共密钥生成定向保密消息,包括:
假设公共密钥为K,定向节点对应的定向区分消息为MR2,且MR2=(M2,R);其中,M2为第二消息,R为定向节点对应的随机消息。发布节点通过第三生成模块305,基于定向区分消息和公共密钥,生成MBR2;其中,MBR2为定向保密消息,且MBR2={MR2,K}={(M2,R),K}。
加密模块306,用于使用公共密钥对第一消息进行加密,获得第一加密消息,以及使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息。
在一个实施方式中,加密模块306使用公共密钥对第一消息进行加密,获得第一加密消息,包括:
假设公共密钥为K,第一消息为M1。发布节点通过加密模块306使用公共密钥对第一消息进行加密,获得CK(M1)。其中,CK(M1)为第一加密消息。
在另一个实施方式中,加密模块306使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息,包括:
假设定向节点的公钥为PK,定向保密消息为MBR2,且MBR2={MR2,K}={(M2,R),K};其中,MR2为定向区分消息,且MR2=(M2,R),M2为第二消息,R为定向节点对应的随机消息,K为公共密钥。发布节点通过加密模块306使用定向节点的公钥对定向保密消息进行加密,获得
Figure BDA0002474201150000141
其中,
Figure BDA0002474201150000142
为第二加密消息,且
Figure BDA0002474201150000143
需要说明的是,加密模块306使用定向节点的公钥对定向保密消息进行加密,因此,发布节点不需要向定向节点发送密钥(即定向节点的公钥),从而可以避免黑客截获密钥(即定向节点的公钥),从而防止黑客破解第二加密消息获取公共密钥,进而防止黑客基于公共密钥破解第一加密消息获得第一消息,达到防止发布消息泄露的目的。
还需要说明的是,关于加密模块306使用公共密钥对第一消息进行加密的方法以及使用定向节点的公钥对定向保密消息进行加密的方法包括现在的和将来出现的任何加密方法。
发布节点广播模块307,用于在区块链网络广播第一加密消息和第二加密消息,以供定向节点基于第一加密消息和第二加密消息获得发布消息和随机消息。
发布节点获取第一加密消息和第二加密消息后,通过发布节点广播模块307在区块链网络中广播第一加密消息和第二加密消息,以供定向节点从区块链网络获取第一加密消息和第二加密消息,并基于第一加密消息和第二加密消息获得发布消息和随机消息。
在一个实施方式中,发布节点通过发布节点广播模块307在区块链网络中广播第一加密消息和第二加密消息。定向节点从区块链网络获取第一加密消息和第二加密消息,并使用定向节点的公钥对第二加密消息进行解密,获得定向保密消息,然后从定向保密消息中获取定向区分消息和公共密钥,并使用公共密钥对第一加密消息进行解密,获得第一消息,再将第一消息和定向区分消息合并,从而获得定向发布消息。其中,定向发布消息包括第一消息、第二消息和随机消息。换言之,定向发布消息包括发布消息和随机消息。
需要说明的是,为进一步保障信息的安全性,发布节点广播模块307在区块链网络广播第一加密消息和第二加密消息之前,可以先使用发布节点的私钥对第一加密消息和第二加密消息进行签名,然后将签名后的第一加密消息和第二加密消息在区块链网络中广播。
还需要说明的是,第三实施例提供的消息发布装置可以减少需要上传至区块链网络的加密消息所需占用的内存;同时,发布节点将公共密钥与定向区分消息使用定向节点的公钥加密后在区块链网络广播,而不是直接在区块链网络中广播公共密钥,可以防止公共密钥被泄露,从而避免发布消息被非法破解。
图4是本发明第四实施例提供的一种消息发布装置的原理框图,应用于定向。如图4所示,该消息发布装置包括:定向节点接收模块401、解密模块402、定向节点获取模块403和合并模块404。
定向节点接收模块401,用于接收发布节点在区块链网络广播的第一加密消息和第二加密消息。
其中,第一加密消息为使用公共密钥对第一消息进行加密后获得的消息,公共密钥为发布节点生成的密钥,第二加密消息为使用定向节点的公钥对定向保密消息进行加密后获得的消息,定向保密消息包括定向区分消息和公共密钥,定向区分消息包括第二消息和随机消息,第一消息和第二消息为将发布消息拆分后获得的消息,发布消息为发布节点待发布的消息,随机消息为发布节点随机生成的消息。
在一个实施方式中,发布节点按照预设规则将发布消息拆分为第一消息和第二消息,使用生成的公共密钥对第一消息进行加密获得第一加密消息;基于第二消息和生成的与定向节点对应的随机消息生成定向区分消息,并基于定向区分消息和公共密钥生成定向保密消息,使用定向节点的公钥对定向保密消息进行加密,获得第二加密消息;然后使用发布节点的私钥对第一加密消息和第二加密消息进行签名后,在区块链网络中广播第一加密消息和第二加密消息。定向节点通过定向节点接收模块401接收发布节点在区块链网络广播的第一加密消息和第二加密消息。
可以理解的是,如果第一加密消息和第二加密消息是被发布节点使用其私钥签名后的消息,定向节点接收第一加密消息和第二加密消息以后,可以查找区块链账本获得发布节点的公钥,并使用发布节点的公钥对第一加密消息和第二加密消息进行签名验证。当第一加密消息和第二加密消息通过签名验证时,执行后续的解密操作;当第一加密消息和/或第二加密消息未通过签名验证时,终止所有操作。
解密模块402,用于使用定向节点的私钥对第二加密消息进行解密,获得定向保密消息,以及使用公共密钥对第一加密消息进行解密,获得第一消息。
第二加密消息为发布节点使用定向节点的公钥对定向保密消息加密获得的消息,因此,定向节点使用定向节点的私钥对第二加密消息解密,可以获得定向保密消息。其中,定向保密消息包括定向区分消息和公共密钥。
同理,第一加密消息为发布节点使用公共密钥对第一消息进行加密获得的消息,因此,定向节点使用公共密钥对第一加密消息进行解密可以获得第一消息。
在一个实施方式中,解密模块402使用定向节点的私钥对第二加密消息进行解密,获得定向保密消息,包括:
假设定向节点的私钥为PSK,第二加密消息为
Figure BDA0002474201150000171
Figure BDA0002474201150000172
其中,MBR2为定向保密消息,MR2为定向区分消息,K为公共密钥。定向节点通过解密模块402使用定向节点的私钥对第二加密消息进行解密,获得定向保密消息MBR2,即
Figure BDA0002474201150000173
其中,F为关于PSK解密函数。
在另一个实施方式中,解密模块402使用公共密钥对第一加密消息进行解密,获得第一消息,包括:
假设公共密钥为K,第一加密消息为CK(M1)。定向节点通过解密模块402使用K对CK(M1)进行解密,获得M1,即M1=TK(CK(M1))。其中,T为关于K的解密函数,M1为第一消息。
需要说明的是,关于解密模块402使用定向节点的私钥对第二加密消息进行解密的方法以及使用公共密钥对第一加密消息进行解密的方法包括现在的和将来出现的任何解密方法。
定向节点获取模块403,用于从定向保密消息获得公共密钥和定向区分消息。
定向保密消息为发布节点基于公共密钥和定向区分消息生成的消息,因此,定向节点使用正确的获取方法可以从定向保密消息中获取公共密钥和定向区分消息。
在一个实施方式中,定向节点获取模块403从定向保密消息获得公共密钥和定向区分消息,包括:
假设定向保密消息为MBR2。定向节点通过定向节点获取模块403使用获取函数从MBR2获取MR2和K,即(MR2,K)=H(MBR2)。其中,H为获取函数,MR2为定向区分消息,K为公共密钥。
合并模块404,用于将第一消息和定向区分消息合并,获得定向发布消息。
其中,定向区分消息包括第二消息和随机消息,且随机消息与定向节点一一对应。
需要说明的是,定向节点将第一消息和定向区分消息合并需要遵循预设的规则。
在一个实施方式中,合并模块404将第一消息和定向区分消息合并,获得定向发布消息,包括:
首先,定向节点从定向区分消息中获取第二消息和随机消息;
其次,定向节点按照预设的第一合并规则将第一消息和第二消息合并,获得发布消息;
再次,定向节点按照预设的第二合并规则将发布消息和随机消息合并,获得定向发布消息。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (10)

1.一种消息发布方法,应用于发布节点,其特征在于,包括:
获取待发布的发布消息,并将所述发布消息拆分为第一消息和第二消息;
生成公共密钥;
使用所述公共密钥对所述第一消息进行加密,获得第一加密消息;
生成定向节点对应的随机消息;
基于所述随机消息和所述第二消息,生成定向区分消息;
基于所述定向区分消息和所述公共密钥,生成定向保密消息;
使用所述定向节点的公钥对所述定向保密消息进行加密,获得第二加密消息;
在区块链网络广播所述第一加密消息和所述第二加密消息,以供所述定向节点基于所述第一加密消息和所述第二加密消息获得所述发布消息和所述随机消息。
2.根据权利要求1所述的消息发布方法,其特征在于,所述将所述发布消息拆分为第一消息和第二消息,包括:
按照预设规则将所述发布消息拆分为所述第一消息和所述第二消息。
3.根据权利要求1所述的消息发布方法,其特征在于,获得所述第一加密消息和获得所述第二加密消息之后,所述在区块链网络广播所述第一加密消息和所述第二加密消息之前,还包括:
使用所述发布节点的私钥对所述第一加密消息和所述第二加密消息进行签名。
4.一种消息发布方法,应用于定向节点,其特征在于,包括:
接收发布节点在区块链网络广播的第一加密消息和第二加密消息;其中,所述第一加密消息为使用公共密钥对第一消息进行加密后获得的消息,所述公共密钥为发布节点生成的密钥,所述第二加密消息为使用所述定向节点的公钥对定向保密消息进行加密后获得的消息,所述定向保密消息包括定向区分消息和所述公共密钥,所述定向区分消息包括第二消息和随机消息,所述第一消息和所述第二消息为将发布消息拆分后获得的消息,所述发布消息为所述发布节点待发布的消息,所述随机消息为所述发布节点随机生成的消息;
使用所述定向节点的私钥对所述第二加密消息进行解密,获得所述定向保密消息;
从所述定向保密消息获得所述公共密钥和所述定向区分消息;
使用所述公共密钥对所述第一加密消息进行解密,获得所述第一消息;
将所述第一消息和所述定向区分消息合并,获得定向发布消息。
5.根据权利要求4所述的消息发布方法,其特征在于,所述接收发布节点在区块链网络广播的第一加密消息和第二加密消息之后,所述使用所述定向节点的私钥对所述第二加密消息进行解密之前,还包括:
对所述第一加密消息和所述第二加密消息进行签名验证。
6.根据权利要求4所述的消息发布方法,其特征在于,所述将所述第一消息和所述定向区分消息合并,获得定向发布消息,包括:
按照预设规则将所述第一消息和所述定向区分消息合并,获得所述定向发布消息。
7.一种消息发布装置,应用于发布节点,其特征在于,包括:
发布节点获取模块,用于获取待发布的发布消息;
拆分模块,用于将所述发布消息拆分为第一消息和第二消息;
第一生成模块,用于生成公共密钥;
第二生成模块,用于生成定向节点对应的随机消息;
第三生成模块,用于基于所述随机消息和所述第二消息,生成定向区分消息,以及基于所述定向区分消息和所述公共密钥生成定向保密消息;
加密模块,用于使用所述公共密钥对所述第一消息进行加密,获得第一加密消息,以及使用所述定向节点的公钥对所述定向保密消息进行加密,获得第二加密消息;
发布节点广播模块,用于在区块链网络广播所述第一加密消息和所述第二加密消息,以供所述定向节点基于所述第一加密消息和所述第二加密消息获得所述发布消息和所述随机消息。
8.根据权利要求7所述的消息发布装置,其特征在于,所述消息发布装置,还包括:
发布节点签名模块,用于使用所述发布节点的私钥对所述第一加密消息和所述第二加密消息进行签名。
9.一种消息发布装置,应用于定向节点,其特征在于,包括:
定向节点接收模块,用于接收发布节点在区块链网络广播的第一加密消息和第二加密消息;其中,所述第一加密消息为使用公共密钥对第一消息进行加密后获得的消息,所述公共密钥为发布节点生成的密钥,所述第二加密消息为使用所述定向节点的公钥对定向保密消息进行加密后获得的消息,所述定向保密消息包括定向区分消息和所述公共密钥,所述定向区分消息包括第二消息和随机消息,所述第一消息和所述第二消息为将发布消息拆分后获得的消息,所述发布消息为所述发布节点待发布的消息,所述随机消息为所述发布节点随机生成的消息;
解密模块,用于使用所述定向节点的私钥对所述第二加密消息进行解密,获得所述定向保密消息,以及使用所述公共密钥对所述第一加密消息进行解密,获得所述第一消息;
定向节点获取模块,用于从所述定向保密消息获得所述公共密钥和所述定向区分消息;
合并模块,用于将所述第一消息和所述定向区分消息合并,获得定向发布消息。
10.根据权利要求9所述的消息发布装置,其特征在于,所述消息发布装置,还包括:
定向节点验证模块,用于对所述第一加密消息和所述第二加密消息进行签名验证。
CN202010358190.XA 2020-04-29 2020-04-29 一种消息发布方法及装置 Active CN111565186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010358190.XA CN111565186B (zh) 2020-04-29 2020-04-29 一种消息发布方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010358190.XA CN111565186B (zh) 2020-04-29 2020-04-29 一种消息发布方法及装置

Publications (2)

Publication Number Publication Date
CN111565186A true CN111565186A (zh) 2020-08-21
CN111565186B CN111565186B (zh) 2022-04-29

Family

ID=72070721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010358190.XA Active CN111565186B (zh) 2020-04-29 2020-04-29 一种消息发布方法及装置

Country Status (1)

Country Link
CN (1) CN111565186B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416578A (zh) * 2018-03-14 2018-08-17 郑杰骞 一种区块链系统及数据处理方法
CN108615155A (zh) * 2018-05-02 2018-10-02 飞天诚信科技股份有限公司 一种鉴别交易信息完整性的方法
US20190026146A1 (en) * 2017-07-21 2019-01-24 Intel Corporation Apparatuses, methods, and systems for blockchain transaction acceleration
CN109889522A (zh) * 2019-02-25 2019-06-14 重庆邮电大学 一种基于区块链的物联网信息安全保护方法
CN110166220A (zh) * 2019-05-06 2019-08-23 山东公链信息科技有限公司 一种根据分区键的散列值进行切分的分片方法
CN110166255A (zh) * 2019-05-30 2019-08-23 全链通有限公司 基于联盟区块链的身份验证方法、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190026146A1 (en) * 2017-07-21 2019-01-24 Intel Corporation Apparatuses, methods, and systems for blockchain transaction acceleration
CN108416578A (zh) * 2018-03-14 2018-08-17 郑杰骞 一种区块链系统及数据处理方法
CN108615155A (zh) * 2018-05-02 2018-10-02 飞天诚信科技股份有限公司 一种鉴别交易信息完整性的方法
CN109889522A (zh) * 2019-02-25 2019-06-14 重庆邮电大学 一种基于区块链的物联网信息安全保护方法
CN110166220A (zh) * 2019-05-06 2019-08-23 山东公链信息科技有限公司 一种根据分区键的散列值进行切分的分片方法
CN110166255A (zh) * 2019-05-30 2019-08-23 全链通有限公司 基于联盟区块链的身份验证方法、设备及存储介质

Also Published As

Publication number Publication date
CN111565186B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
KR100939430B1 (ko) 브로드캐스트/멀티캐스트 서비스에서 디지털 저작권관리방법
US8396218B2 (en) Cryptographic module distribution system, apparatus, and program
CN108683501B (zh) 基于量子通信网络的以时间戳为随机数的多次身份认证系统和方法
US8694783B2 (en) Lightweight secure authentication channel
CN101094062B (zh) 利用存储卡实现数字内容安全分发和使用的方法
US11914754B2 (en) Cryptographic method for verifying data
CN111970114B (zh) 文件加密方法、系统、服务器和存储介质
CN111934884B (zh) 一种证书管理方法及装置
US11956367B2 (en) Cryptographic method for verifying data
KR101568871B1 (ko) 멀티캐스트 통신방식을 적용한 바이탈 제어 시스템의 암호화 방법
US11308242B2 (en) Method for protecting encrypted control word, hardware security module, main chip and terminal
CN111181944B (zh) 通信系统及信息发布方法、装置、介质、设备
CN101562520B (zh) 业务密钥分发方法及系统、密钥分发方法
JPH10107832A (ja) 暗号同報メールシステム
JP2020507243A (ja) ネットワークデバイス及び信頼できるサードパーティデバイス
CN105191332A (zh) 用于在未压缩的视频数据中嵌入水印的方法和设备
CN101118579A (zh) 一种验证许可的方法及系统
CN101204037A (zh) 用于有效加密与解密drm权利对象的系统和方法
CN111585754A (zh) 一种信息共享方法及装置
CN106487761B (zh) 一种消息传输方法和网络设备
CN111565186B (zh) 一种消息发布方法及装置
KR20130096575A (ko) 공개키 기반 그룹 키 분배 장치 및 방법
WO2000038392A2 (en) Apparatus and method for distributing authentication keys to network devices in a multicast
KR20010064766A (ko) 무선통신시스템에서의 인증 및 키 설정 방법
KR101609095B1 (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