WO2022166556A1 - 在区块链网络中实现安全组播的方法及装置 - Google Patents

在区块链网络中实现安全组播的方法及装置 Download PDF

Info

Publication number
WO2022166556A1
WO2022166556A1 PCT/CN2022/071800 CN2022071800W WO2022166556A1 WO 2022166556 A1 WO2022166556 A1 WO 2022166556A1 CN 2022071800 W CN2022071800 W CN 2022071800W WO 2022166556 A1 WO2022166556 A1 WO 2022166556A1
Authority
WO
WIPO (PCT)
Prior art keywords
security group
multicast
blockchain node
group information
message
Prior art date
Application number
PCT/CN2022/071800
Other languages
English (en)
French (fr)
Inventor
曾柯
曾超
孔令涛
Original Assignee
支付宝(杭州)信息技术有限公司
蚂蚁区块链科技(上海)有限公司
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 支付宝(杭州)信息技术有限公司, 蚂蚁区块链科技(上海)有限公司 filed Critical 支付宝(杭州)信息技术有限公司
Priority to EP22748835.0A priority Critical patent/EP4290804A1/en
Priority to US18/275,665 priority patent/US20240129281A1/en
Publication of WO2022166556A1 publication Critical patent/WO2022166556A1/zh

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
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports

Definitions

  • One or more embodiments of this specification relate to the technical field of terminals, and in particular, to a method and apparatus for implementing secure multicast in a blockchain network.
  • the key server can distribute keys to each member that needs to implement multicast, so that these members can encrypt and transmit multicast messages through the distributed key, so as to implement secure multicast.
  • the introduction of the key server increases the complexity of the architecture and the difficulty of management, and the role of the key server as a centralized management conflicts with the decentralization of the blockchain technology and cannot be applied to the security group in the blockchain scenario. broadcast.
  • one or more embodiments of this specification provide a method and apparatus for implementing secure multicast in a blockchain network.
  • a method for implementing secure multicast in a blockchain network including: a first blockchain node generates and sends a security group creation message, the security The group creation message contains the security group information structure corresponding to each target blockchain node to be added to the multicast security group, and each security group information structure contains the public key of the corresponding target blockchain node and the public key obtained by the public key.
  • Ciphertext security group information obtained by encrypting plaintext security group information the plaintext security group information includes a security group session key, and the security group session key is used to encrypt multicast messages in the multicast security group transmission; after receiving the security group creation message, the second blockchain node searches for the security group information structure carrying its own public key from the security group creation message, and pairs the security group information found by its own private key The ciphertext security group information in the structure is decrypted to obtain the security group session key.
  • a method for implementing secure multicast in a blockchain network comprising: a first blockchain node generating a security group creation message, the security group creation The message contains the security group information structure corresponding to each target blockchain node to be added to the multicast security group.
  • Each security group information structure contains the public key of the corresponding target blockchain node and the plaintext paired by the public key.
  • the plaintext security group information includes a security group session key, and the security group session key is used to encrypt and transmit multicast messages in the multicast security group;
  • the first blockchain node sends the security group creation message, so that each target blockchain node searches for the security group information structure carrying its own public key from the security group creation message, and finds it through its own private key pair.
  • the ciphertext security group information in the security group information structure body is decrypted to obtain the security group session key.
  • a method for implementing secure multicast in a blockchain network including: a second blockchain node receiving a security group sent by a first blockchain node Create message, the security group creation message contains security group information structures corresponding to each target blockchain node to be added to the multicast security group, and each security group information structure contains the public information of the corresponding target blockchain node.
  • the plaintext security group information includes the security group session key
  • the security group session key is used to The second blockchain node searches for the security group information structure carrying its own public key from the security group creation message, and uses its own private key to pair the encrypted data in the found security group information structure.
  • the security group information is decrypted to obtain the security group session key.
  • an apparatus for implementing secure multicast in a blockchain network comprising: a message creation unit that enables a first blockchain node to generate a security group creation message,
  • the security group creation message includes the security group information structure corresponding to each target blockchain node to be added to the multicast security group, and each security group information structure includes the public key of the corresponding target blockchain node and the
  • the public key encrypts the ciphertext security group information obtained by encrypting the plaintext security group information, and the plaintext security group information includes the security group session key, and the security group session key is used for the multicast security group in the multicast security group.
  • the message is encrypted and transmitted; the message sending unit enables the first blockchain node to send the security group creation message, so that each target blockchain node searches for the security group information structure carrying its own public key from the security group creation message. and decrypt the ciphertext security group information in the found security group information structure through its own private key to obtain the security group session key.
  • an apparatus for implementing secure multicast in a blockchain network comprising: a message receiving unit that enables a second blockchain node to receive a first blockchain
  • the security group creation message sent by the node, the security group creation message contains the security group information structure corresponding to each target blockchain node to be added to the multicast security group, and each security group information structure contains the corresponding target area
  • the public key of the blockchain node and the ciphertext security group information obtained by encrypting the plaintext security group information with the public key, the plaintext security group information includes the security group session key, and the security group session key is used to
  • the multicast messages in the multicast security group are encrypted and transmitted; the message processing unit enables the second blockchain node to search for the security group information structure carrying its own public key from the security group creation message, and pair it with its own private key.
  • the ciphertext security group information in the found security group information structure is decrypted to obtain the security group session key.
  • an electronic device comprising: a processor; a memory for storing executable instructions of the processor; wherein, the processor executes the executable instructions by running the executable instructions to implement the method according to the second aspect or the third aspect.
  • a computer-readable storage medium having computer instructions stored thereon, the instructions implementing the second aspect or the third aspect when executed by a processor method.
  • each blockchain node in the blockchain network can obtain the public keys of other blockchain nodes, so that the security group creation message generated by the first blockchain node is can contain security group information structures corresponding to each target blockchain node, and since each security group information structure only contains the public key of the corresponding target blockchain node and the ciphertext encrypted based on the public key Security group information, so that on the one hand, the target blockchain node can query its corresponding security group information structure by matching the public key, and on the other hand, it can ensure that the ciphertext security group information can only be used by the target blockchain
  • the node decrypts with its own private key and cannot be decrypted by other blockchain nodes, thus realizing a safe and accurate key sharing operation without adding a centralized key server, and completing the creation of a multicast security group , so that the blockchain nodes in the multicast security group can implement secure multicast through the above-mentioned security group session key.
  • FIG. 1 is a flowchart of a method for implementing secure multicast in a blockchain network provided by an exemplary embodiment.
  • FIG. 2 is a flowchart of a method for implementing secure multicast in a blockchain network on the creator side provided by an exemplary embodiment.
  • FIG. 3 is a flowchart of a method for implementing secure multicast in a blockchain network on a participant side provided by an exemplary embodiment.
  • FIG. 4 is a schematic diagram of a multicast scenario provided by an exemplary embodiment.
  • FIG. 5 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • FIG. 6 is a block diagram of an apparatus for implementing secure multicast in a blockchain network on the creator side provided by an exemplary embodiment.
  • FIG. 7 is a block diagram of an apparatus for implementing secure multicast in a blockchain network on a participant side provided by an exemplary embodiment.
  • the steps of the corresponding methods are not necessarily performed in the order shown and described in this specification. In some other embodiments, the methods thereof may comprise more or fewer steps than those described in this specification. In addition, a single step described in this specification may be decomposed into multiple steps for description in other embodiments; and multiple steps described in this specification may also be combined into a single step in other embodiments. describe.
  • blockchain networks can be divided into public chains, private chains, and alliance chains. Among them, the openness of the public chain is the highest, the openness of the private chain is the lowest, and the alliance chain is in between.
  • the blockchain network includes several blockchain nodes, and communication operations such as consensus, transaction transmission, and block synchronization need to be implemented between blockchain nodes.
  • Each blockchain node can communicate through P2P (Peer to Peer, peer-to-peer) technology.
  • each blockchain node can rely on the relay node in the blockchain relay communication network.
  • the blockchain nodes that need to communicate are connected to the relay node respectively, so that the blockchain nodes can communicate with each other through the block chain. Chain relay communication network to achieve communication.
  • the blockchain relay communication network is a backbone relay communication network for real-time blockchain transmission, each relay node can communicate and interact through high-quality bandwidth guaranteed by high QoS.
  • the intermediate link of communication between blockchain nodes is taken over by the blockchain relay communication network, which can reduce communication delay and improve stability, thereby significantly improving the communication quality between blockchain nodes.
  • the blockchain relay communication network in related technologies may include: the blockchain relay communication network applied to the public chain mainly includes Falcon, Fast Bitcoin Relay Network (FBRN), Fast Internet Bitcoin Relay Engine (FIBRE), etc., and
  • the blockchain relay communication networks applied to the alliance chain mainly include BloXRoute, Blockchain Transmission Network (BTN), etc.
  • the technical solution establishes a multicast security group between the part of the blockchain nodes, so that the communication efficiency can be improved through multicasting, there is no need for one-to-one inefficient communication between each blockchain node, and the Other blockchain nodes learn the content of the communication.
  • FIG. 1 is a flowchart of a method for implementing secure multicast in a blockchain network provided by an exemplary embodiment.
  • the method may include: Step 102, the first blockchain node generates and sends a security group creation message, where the security group creation message includes each target blockchain corresponding to each target blockchain to be added to the multicast security group
  • the security group information structure of the node each security group information structure contains the public key of the corresponding target blockchain node and the ciphertext security group information obtained by encrypting the plaintext security group information with the public key.
  • the information includes a security group session key, and the security group session key is used for encrypted transmission of multicast messages within the multicast security group.
  • the first blockchain node can be any blockchain node in the blockchain network.
  • the first blockchain node creates a multicast security group through a security group creation message, which is equivalent to the creator of the multicast security group. .
  • certain restrictions can be imposed on the creators of multicast security groups.
  • only one or more blockchain nodes specified in the blockchain network are allowed to be creators.
  • the information of these blockchain nodes (such as public keys) can be recorded in the genesis block of the blockchain, and other blockchain nodes can verify whether the received security group creation message comes from these designated blockchains accordingly.
  • the node if so, normally processes the received security group creation message, if not, discards the received security group creation message.
  • the target blockchain node can be any one or more blockchain nodes in the blockchain network.
  • the first blockchain node can determine the above-mentioned target blockchain node from the blockchain network through off-chain negotiation, offline negotiation, etc.
  • the nodes form the above-mentioned multicast security group, so as to realize secure multicast among these blockchain nodes and prevent other blockchain nodes in the blockchain network from learning the content of the multicast message.
  • both the first blockchain node and the target blockchain node need to maintain the same session key, and ensure that the session key is only maintained by the first blockchain node and the target blockchain node, It is not known by other blockchain nodes in the blockchain network, so that the first blockchain node and the target blockchain node can encrypt the transmission of multicast messages through the session key, and ensure that only the first blockchain node and the target blockchain node can encrypt and transmit multicast messages.
  • the blockchain node and the target blockchain node are able to decrypt the received multicast message.
  • the session key described here can be, for example, the security group session key in this specification.
  • the first blockchain node can obtain the security group session key in any way, for example, the first blockchain node receives the user-configured security group session key, or the first blockchain node generates the security group session key through key generation rules.
  • the security group session key, or the security group session key obtained by the first blockchain node from a key server outside the chain, etc., is not limited in this specification.
  • the security group session key is obtained by the first blockchain node, and then distributed to the target blockchain node through the security group creation message, without the need to add a key server in related technologies in the blockchain network, which helps to simplify The network architecture, and this key distribution method can be applied to each blockchain node, in line with the decentralization characteristics of the blockchain network.
  • Each blockchain node can join multiple multicast security groups at the same time, as long as the blockchain node can obtain the security group session key distributed in the corresponding multicast security group.
  • Step 104 after receiving the security group creation message, the second blockchain node searches for the security group information structure carrying its own public key from the security group creation message, and uses its own private key to find the security group.
  • the ciphertext security group information in the information structure is decrypted to obtain the security group session key.
  • each blockchain node has a corresponding public-private key pair to represent its own identity.
  • the private key in the public-private key pair is maintained by each blockchain node to avoid leakage, while the public key can be disclosed to the public.
  • each blockchain node can obtain the public key of each blockchain node in the blockchain network, and the technical solution of this specification uses this feature to realize the security group session key. safe distribution.
  • the function of the public key is divided into two parts: the first part, when generating the security group information structure corresponding to each target blockchain node, by including the corresponding security group information structure in the security group information structure
  • the public key of the target blockchain node so that each blockchain node can use its own public key as an identifier to match after receiving the security group creation message, so as to accurately find the security group information structure corresponding to itself , of course, if it does not match, it means that it does not belong to the corresponding multicast security group, thus ensuring the accurate distribution of the security group session key
  • the second part in the generation of the security group corresponding to each target blockchain node
  • the public key of the corresponding target blockchain node is used to perform asymmetric encryption to generate the above-mentioned ciphertext security group information to ensure that only the target blockchain node corresponding to the security group information structure can access the security group.
  • the ciphertext security group information is decrypted to obtain the security group session key, because as mentioned above, only the target blockchain node holds its own private key, thus ensuring the secure distribution of the security group session key. Therefore, if a first blockchain node wishes to add a second blockchain node as a member of a multicast security group, the first blockchain node can include the security corresponding to the second blockchain node in the security group creation message Group information structure, the security group information structure contains the public key of the second blockchain node and the ciphertext security group information encrypted and generated by the public key, so that the second blockchain node can find the security group through its own public key Security group information structure, decrypt to obtain the security group session key.
  • all blockchain nodes in the blockchain network that obtain the security group session key form a multicast security group, and these blockchain nodes become members of the multicast security group .
  • the members of a multicast security group can implement secure multicast: the multicast messages sent between each member will be encrypted and transmitted using the above-mentioned security group session key, so that these multicast messages can only be decrypted by these members, even if these The multicast message cannot be decrypted even if it is received by other blockchain nodes in the blockchain network, thus ensuring that the message content of the multicast message can only be obtained by members of the multicast security group, thus realizing secure multicast.
  • the members of the multicast security group can pre-configure or negotiate the encryption algorithm adopted (for example, off-chain negotiation or offline negotiation, etc.).
  • the encryption algorithm also uses for decrypting multicast messages.
  • the plaintext security group information may include: encryption algorithm indication information, where the encryption algorithm indication information is used to represent the encryption algorithm used when the multicast message is encrypted and transmitted by using the security group session key, which is equivalent to the first blockchain node to specify the encryption algorithm to be used; of course, the encryption algorithm can also be pre-negotiated by the first blockchain node and the target blockchain node, and marked by the first blockchain node in the plaintext security group information .
  • the encryption algorithm used can be any symmetric encryption algorithm, such as AES128-GCM, AES128-CCM, AES256-GCM, AES256-CCM, AEAD_CHACHA20_POLY1305, SM4-GCM, SM4-CCM etc., this specification does not limit it.
  • the security group session key is an asymmetric key
  • the security group session key includes a public-private key pair, wherein the public key is used to encrypt the multicast message, and the private key is used to decrypt the multicast message.
  • the adopted encryption algorithm can be any asymmetric encryption algorithm, such as RSA, Elgamal, knapsack algorithm, Rabin, D-H, ECC (elliptic curve encryption algorithm), etc., which is not limited in this specification.
  • a blockchain node If a blockchain node only joins one multicast security group at the same time, the blockchain node will only send and receive multicast messages in this multicast security group, and only needs to use the security group session password distributed in this multicast security group. encryption and decryption using the key, without the confusion of multicast or security group session keys.
  • the same blockchain node can join multiple multicast security groups at the same time. At this time, the blockchain node needs to distinguish each multicast security group, such as the security group session used by each multicast security group. The key, the encryption algorithm used, etc., for example, which multicast security group the received multicast message belongs to, and whether it belongs to the multicast security group.
  • the plaintext security group information may further include a security group identifier, and the security group identifier corresponds to the multicast security group, for example, there is a one-to-one correspondence between the security group identifier and the multicast security group.
  • the security group identifier corresponding to the multicast security group may be included to indicate the multicast message.
  • the recipient of the decryption operation is performed through the security group session key in the plaintext security group information containing the security group identifier.
  • the receiver of a multicast message can determine the multicast security group to which the multicast message belongs based on the security group identifier contained in the multicast message, and if the receiver belongs to the multicast security group, the receiver maintains The plaintext security group information including the security group identifier obtained in the above steps 102-104, and then the multicast message is decrypted by using the security group session key contained in the plaintext security group information.
  • the blockchain node can determine which multicast security group to communicate in, and can determine the security group ID corresponding to the determined multicast security group. Therefore, the security group session key is obtained from the plaintext security group information including the security group identifier, and the multicast message is encrypted and sent by using the security group session key.
  • the above-mentioned security group creation message may also include a message signature generated by the private key of the first blockchain node. Then, after receiving the security group creation message, the second blockchain node can first verify the signature of the message through the public key of the first blockchain node, and determine if the signature is successful: the security group The creation message does come from the first blockchain node, and the security group creation message has not been tampered with during the transmission process. The first blockchain node can perform step 104 and other operations after confirming that the signature is successful, otherwise it can be discarded Or do not process the security group creation message.
  • the above message signature can be generated by signing the key information in the security group creation message with the private key of the first blockchain node, so that in the case of successful signature verification, it can be specifically proved that the key information has not been tampered with.
  • the key information may include: a security group information structure corresponding to each target blockchain node.
  • the key information may also include at least one of the following: an anti-replay random number, the public key or digital certificate of the first blockchain node, etc., which are not discussed in this specification. limit.
  • Different security group creation messages sent by the first blockchain node can respectively contain different anti-replay random numbers
  • the second blockchain node can create a security group between the current received security group creation message and the historically received security group creation message. If the message contains the same anti-replay random number, confirm that the currently received security group creation message is a replay message and needs to be discarded or not processed, and only the currently received security group creation message and the historically received security group creation message are confirmed. Only when the anti-replay random numbers contained in the group creation message are different, the received security group creation message will be processed normally.
  • the digital certificate of the first blockchain node is issued by the CA center, the digital certificate contains the public key of the first blockchain node, and the second blockchain node can determine that the digital certificate contains 's public key does belong to the first blockchain node.
  • a multicast security group can be a long-term effective security group, or a short-term or temporary one.
  • a short-term or temporary multicast security group it has certain timeliness; for example, such a multicast security group may have a validity period, so that the corresponding multicast security group can implement secure multicast only within the validity period.
  • the plaintext security group information in any of the above embodiments may further include: a session validity period, the session validity period is used to represent the validity period of the plaintext security group information, so that: when the plaintext security group information is within the validity period, the plaintext security group information has been added to the corresponding group Each blockchain node of the multicast security group stores; when it is not within the validity period, the plaintext security group information is discarded or marked as invalid by each blockchain node that has joined the corresponding multicast security group.
  • a session validity period is used to represent the validity period of the plaintext security group information, so that: when the plaintext security group information is within the validity period, the plaintext security group information has been added to the corresponding group
  • Each blockchain node of the multicast security group stores; when it is not within the validity period, the plaintext security group information is discarded or marked as invalid by each blockchain node that has joined the corresponding multicast security group.
  • the session validity period described here is used to manage the validity period of the plaintext security group information
  • the secure multicast in the multicast security group needs to use the security group session key, session group identifier and other information contained in the plaintext security group information
  • the The management of the plaintext security group information is actually the management of the multicast security group
  • the validity period of the plaintext security group information is the validity period of the multicast security group. Because the longer the use time of the same plaintext security group information, the greater the risk of leakage of the plaintext security group information. Therefore, by setting the above session validity period, the potential security risks caused by the long-term use of the same plaintext security group information can be avoided. Force members of the corresponding multicast security group to update the plaintext security group information to improve multicast security.
  • FIG. 2 is a flowchart of a method for implementing secure multicast in a blockchain network on the creator side provided by an exemplary embodiment.
  • the method may include: Step 202, the first blockchain node generates a security group creation message, and the security group creation message includes information corresponding to each target blockchain node to be added to the multicast security group.
  • Security group information structure each security group information structure contains the public key of the corresponding target blockchain node and the ciphertext security group information obtained by encrypting the plaintext security group information with the public key, and the plaintext security group information contains A security group session key, where the security group session key is used for encrypted transmission of multicast messages in the multicast security group.
  • the first blockchain node In the case where the first blockchain node is used to generate the security group creation message, it is equivalent to the creation of the corresponding multicast session group initiated by the first blockchain node, so the first blockchain node can be regarded as The creator of this multicast session group.
  • the first blockchain node can be regarded as The creator of this multicast session group.
  • the same blockchain node can belong to the role of creator in some multicast security groups, and can also belong to the role of participant in other multicast security groups.
  • Step 204 the first block chain node sends the security group creation message, so that each target block chain node searches for the security group information structure carrying its own public key from the security group creation message, and uses its own private key. Decrypt the ciphertext security group information in the found security group information structure to obtain the security group session key.
  • the plaintext security group information further includes encryption algorithm indication information, where the encryption algorithm indication information is used to represent the encryption algorithm used when the multicast message is encrypted and transmitted by using the security group session key.
  • the plaintext security group information also includes a session validity period, and the session validity period is used to represent the validity period of the plaintext security group information; wherein, when the plaintext security group information is within the validity period, the plaintext security group information has been added to Each block chain node of the multicast security group stores; when not within the validity period, the plaintext security group information is discarded or marked as invalid by each block chain node that has joined the multicast security group.
  • the plaintext security group information further includes a security group identifier, and the security group identifier corresponds to the multicast security group; wherein, the multicast message in the multicast security group includes the security group identifier , to instruct the receiver of the multicast message to perform the decryption operation by using the security group session key in the plaintext security group information containing the security group identifier.
  • the security group creation message further includes: a message signature generated by the private key of the first blockchain node.
  • the message signature is generated by signing the key information in the security group creation message with the private key of the first blockchain node; wherein the key information includes: corresponding to each target blockchain The node's security group information structure.
  • the key information further includes at least one of the following: an anti-replay random number; the public key or digital certificate of the first blockchain node.
  • FIG. 3 is a flowchart of a method for implementing secure multicast in a blockchain network on a participant side provided by an exemplary embodiment.
  • the method may include: Step 302, the second blockchain node receives a security group creation message sent by the first blockchain node, where the security group creation message contains messages corresponding to the multicast security groups to be added respectively.
  • the security group information structure of each target blockchain node, each security group information structure contains the public key of the corresponding target blockchain node and the ciphertext security group information obtained by encrypting the plaintext security group information with the public key , the plaintext security group information includes a security group session key, and the security group session key is used to encrypt and transmit multicast messages in the multicast security group.
  • Step 304 the second block chain node searches the security group information structure carrying its own public key from the security group creation message, and performs the ciphertext security group information in the found security group information structure through its own private key. Decrypt to get the security group session key.
  • the plaintext security group information further includes encryption algorithm indication information, where the encryption algorithm indication information is used to represent the encryption algorithm used when the multicast message is encrypted and transmitted by using the security group session key.
  • the plaintext security group information also includes a session validity period, and the session validity period is used to represent the validity period of the plaintext security group information; wherein, when the plaintext security group information is within the validity period, the plaintext security group information has been added to Each block chain node of the multicast security group stores; when not within the validity period, the plaintext security group information is discarded or marked as invalid by each block chain node that has joined the multicast security group.
  • the plaintext security group information further includes a security group identifier, and the security group identifier corresponds to the multicast security group; wherein, the multicast message in the multicast security group includes the security group identifier , to instruct the receiver of the multicast message to perform the decryption operation by using the security group session key in the plaintext security group information containing the security group identifier.
  • the security group creation message also includes a message signature generated by the private key of the first blockchain node; the method further includes: the second blockchain node passes the public key of the first blockchain node The message signature is verified.
  • the message signature is generated by signing the key information in the security group creation message with the private key of the first blockchain node; wherein the key information includes: corresponding to each target blockchain The node's security group information structure.
  • the key information further includes at least one of the following: an anti-replay random number; the public key or digital certificate of the first blockchain node.
  • FIG. 4 is a schematic diagram of a multicast scenario provided by an exemplary embodiment.
  • there are several blockchain nodes such as node A, node B, node C and node D in the blockchain network; among them, it is assumed that a multicast security group needs to be established between node A, node B and node C , so that some sensitive content can be transmitted between node A, node B, and node C, while avoiding other blockchain nodes such as node D from obtaining these sensitive content.
  • node A, node B, and node C can perform key negotiation through BSGGP (Blockchain Security Group Generate Protocol) based on the embodiments of this specification to establish a multicast security group, and then pass The BSGMP (Blockchain Security Group Multicast Protocol) of the embodiments of this specification implements secure multicast.
  • BSGGP Blockchain Security Group Generate Protocol
  • BSGMP Blockchain Security Group Multicast Protocol
  • BSGGP_GroupInfo Assuming that node A is the creator, node A needs to first generate a BSGGP-compliant security group creation message BSGGP_GroupInfo.
  • the message structure of the BSGGP_GroupInfo can be:
  • Encrypt_Session_chain is used to store the relevant information of the multicast security group, and the relevant information of the multicast security group may be the security group corresponding to each target blockchain node to be added to the multicast security group in the foregoing embodiment.
  • information structure The structure of the Encrypt_Session_chain can be:
  • BSG_Encrypt_Session is the above-mentioned security group information structure, and the security group information structures corresponding to each target blockchain node such as node B and node C can be linked together into a chain, which is added to the chain structure in a chain.
  • Encrypt_Session_chain When these security group information structures form a chain structure, they can be spliced in sequence according to a preset order (such as the size order of IP addresses, the size order of node public keys, etc., which are not limited in this manual); they can also be spliced out of order. , the splicing order does not affect the negotiation effect.
  • BSG_Encrypt_Session The structure of BSG_Encrypt_Session can be:
  • PublicKey key //The public key of the target blockchain node
  • Enc_Session sess //The ciphertext security group information generated after encrypting BSG_Session with the public key of the target blockchain node
  • each target blockchain node can always find its corresponding BSG_Encrypt_Session by matching its own public key, so the splicing order between these BSG_Encrypt_Sessions will not affect the negotiation effect.
  • Enc_Session is equivalent to the ciphertext security group information described above.
  • Enc_Session is obtained by encrypting the BSG_Session with the public key of the target blockchain node corresponding to the BSG_Encrypt_Session to which it belongs.
  • the BSG_Session is equivalent to the plaintext security group information described above.
  • the contained Enc_Session is obtained by encrypting the BSG_Session with the public key of node B, while the contained Enc_Session in the BSG_Encrypt_Session corresponding to node C is obtained by encrypting the BSG_Session with the public key of node C.
  • BSG_Encrypt_Session corresponding to each node
  • the BSG_Session corresponding to the Enc_Session is the same.
  • BSG_Session can contain any content that node A wishes to transmit to node B and node C. Of course, these content are usually related to the multicast session group that needs to be created.
  • the structure of BSG_Session can be:
  • each target blockchain node After each target blockchain node decrypts the BSG_Session, it will save the BSG_Session.
  • the session_lifetime_hint contained in each BSG_Session is used to indicate the validity period of the corresponding multicast session group or the validity period of the corresponding session.
  • the target blockchain node can delete the BSG_Session or add the The BSG_Session is marked as invalid, or if the session_lifetime_hint contained in the corresponding BSG_Session has expired before the multicast message needs to be sent, avoid using the Master_key in the BSG_Session for encryption; in other words, only when the session_lifetime_hint contained in the BSG_Session has not expired, the BSG_Session contains The Master_key will be used for encrypted transmission of multicast messages.
  • the BSG_ID is used to mark the multicast session group or the session corresponding to the multicast session group, so that the multicast messages transmitted between the members of the multicast session group will include the BSG_ID, so that when a blockchain node is receiving After reaching the multicast message, it can match the BSG_Session maintained by itself according to the BSG_ID contained in the multicast message, and decrypt the received multicast message through the Master_key in the BSG_Session containing the BSG_ID.
  • Master_key is used to encrypt and decrypt multicast messages.
  • the cipher_id is used to indicate the members of the multicast session group and the algorithm used when performing encryption and decryption processing.
  • node A, node B, and node C After node A, node B, and node C complete the negotiation in the above manner, node A, node B, and node C will maintain a BSG_Session locally, so that node A, node B, and node C form a multicast security group. These nodes can implement secure multicast based on the jointly maintained BSG_Session.
  • BSG_Plaintext Assuming that node B wants to send multicast messages to node A and node C, node B first generates a message structure BSG_Plaintext that conforms to BSGMP.
  • the structure of BSG_Plaintext can be:
  • BSG_Plaintext the content of the message to be transmitted by Node B is recorded in content in plaintext.
  • BSG_Plaintext may contain only content.
  • the block structure is used to organize the BSG_Plaintext, for example, the length of each block is 128 bits, then when the length of the content is exactly an integer multiple of 128 bits, the content can just fill several corresponding blocks, then the same is true for BSG_Plaintext
  • Zeros[length_of_padding-1] and length_of_padding may not be included; however, when the length of content is not exactly an integer multiple of 128bit, the 128bit of the last block cannot be filled, and these unfilled parts can be used in full 0 to fill, the above zeros[length_of_padding-1] corresponds to the part filled with 0 (ie padding), and length_of_padding is used to describe the length of padding.
  • Node B can construct the above-mentioned BSG_Plaintext, thereby generating a multicast message BSG_Message, whose message structure can be:
  • Node B When Node B generates BSG_Message, it needs to use the BSG_Session obtained in the preceding process. In fact, when Node B wishes to send a BSG_Message in a multicast session group, it should use the BSG_Session corresponding to the multicast session group, and generate the above-mentioned BSG_Message through the BSG_ID and Master_key contained in the BSG_Session.
  • BSG_Ciphertext is generated by Node B encrypting BSG_Plaintext with Master_key.
  • the encryption algorithm also requires the use of a random number iv to increase the security of symmetric encryption, so the structure of BSG_Message contains the above-mentioned seq_num.
  • node B can send seq_num to node A and node C separately, instead of integrating it in the structure of BSG_Message, so even if both Master_key and BSG_Message are exposed, BSG_Ciphertext may not be exposed because seq_num is not exposed. Decrypt correctly, which helps improve security.
  • seq_num in the structure of BSG_Message for sending, the increase in the number of interactions caused by sending seq_num alone is considered to be avoided, which helps to improve communication efficiency.
  • BSG_Ciphertext AES128-GCM-Encrypt(Master_key,seq_num,additional_data,BSG_Plaintext)
  • additional_data BSG_Message.length
  • node C can match all BSG_Sessions maintained by itself according to the BSG_ID contained in the BSG_Message to determine the BSG_Session containing the BSG_ID. Further, node C can read the cipher_id and Master_key according to the determined BSG_Session, and decrypt the BSG_Ciphertext in the received BSG_Message accordingly to obtain the plaintext BSG_Plaintext. Still taking AES128-GCM as an example, BSG_Plaintext can be obtained by decrypting BSG_Ciphertext in the following way:
  • BSG_Plaintext AES128-GCM-Decrypt(Master_key,seq_num,additional_data,BSG_Ciphertext)
  • the blockchain node as the sender can specify the information of the blockchain node as the receiver in the corresponding message message, such as adding the IP addresses of these blockchain nodes in the message header. address, so that multicast messages can be directed to these blockchain nodes designated as receivers, and will not be sent to other blockchain nodes to save network resources.
  • the blockchain nodes communicate through the blockchain relay communication network
  • the identification information corresponding to these blockchain nodes can be added to the message message, so that the The blockchain relay communication network can direct multicast messages to these blockchain nodes designated as recipients, but not to other blockchain nodes.
  • blockchain nodes that do not belong to the multicast session group may also receive multicast messages.
  • node D receives the above-mentioned BSG_Message sent by node B
  • node D can also match from all BSG_Sessions maintained by itself according to the BSG_ID contained in the BSG_Message, but node D cannot match the BSG_Session containing the BSG_ID, so it cannot Decrypt the BSG_Ciphertext in the received BSG_Message, then from the perspective of security, it is the same as the node D has not received the multicast message.
  • each blockchain node in the blockchain network can obtain the public keys of other blockchain nodes, so that the security group creation message generated by the first blockchain node is included in the It can contain the security group information structure corresponding to each target blockchain node, and because each security group information structure only contains the public key of the corresponding target blockchain node and the ciphertext security encrypted based on the public key.
  • the target blockchain node can query its corresponding security group information structure by matching the public key, and on the other hand, it can ensure that the ciphertext security group information can only be used by the target blockchain node Decrypted by its own private key, which cannot be decrypted by other blockchain nodes, it realizes a safe and accurate key sharing operation without adding a centralized key server, and completes the creation of a multicast security group.
  • This enables the blockchain nodes in the multicast security group to implement secure multicast through the above-mentioned security group session key.
  • Fig. 5 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • the device includes a processor 502 , an internal bus 504 , a network interface 506 , a memory 508 and a non-volatile memory 510 , and of course may also include hardware required for other services.
  • the processor 502 reads the corresponding computer program from the non-volatile memory 510 into the memory 508 and then executes it, forming a device for realizing secure multicast in the blockchain network at the logical level.
  • one or more embodiments of this specification do not exclude other implementations, such as logic devices or a combination of software and hardware, etc., that is to say, the execution subjects of the following processing procedures are not limited to each Logic unit, which can also be hardware or logic device.
  • the device for implementing secure multicast in the blockchain network on the creator side may include:
  • the message creation unit 61 enables the first blockchain node to generate a security group creation message, where the security group creation message includes the security group information structure corresponding to each target blockchain node to be added to the multicast security group, each The security group information structure includes the public key of the corresponding target blockchain node and the ciphertext security group information obtained by encrypting the plaintext security group information with the public key, and the plaintext security group information includes the security group session key, and the The security group session key is used for encrypted transmission of multicast messages in the multicast security group;
  • the message sending unit 62 enables the first blockchain node to send the security group creation message, so that each target blockchain node searches for the security group information structure carrying its own public key from the security group creation message, and passes the message through the security group creation message.
  • the own private key decrypts the ciphertext security group information in the found security group information structure to obtain the security group session key.
  • the plaintext security group information further includes encryption algorithm indication information, where the encryption algorithm indication information is used to represent the encryption algorithm used when the multicast message is encrypted and transmitted by using the security group session key.
  • the plaintext security group information further includes a session validity period, and the session validity period is used to represent the validity period of the plaintext security group information; wherein, when within the validity period, the plaintext security group information has been added to the Each block chain node of the multicast security group stores; when not within the validity period, the plaintext security group information is discarded or marked as invalid by each block chain node that has joined the multicast security group.
  • the plaintext security group information further includes a security group identifier, and the security group identifier corresponds to the multicast security group; wherein, the multicast message in the multicast security group includes the security group identifier, to instruct the receiver of the multicast message to perform a decryption operation by using the security group session key in the plaintext security group information containing the security group identifier.
  • the security group creation message further includes a message signature generated by the private key of the first blockchain node.
  • the message signature is generated by signing the key information in the security group creation message with the private key of the first blockchain node; wherein the key information includes: corresponding to each target blockchain node security group information structure.
  • the key information further includes at least one of the following: an anti-replay random number; the public key or digital certificate of the first blockchain node.
  • the device for implementing secure multicast in the blockchain network on the participant side may include: a message receiving unit 71 , which enables the second blockchain node to receive messages sent by the first blockchain node
  • the security group creation message contains the security group information structure corresponding to each target blockchain node to be added to the multicast security group, and each security group information structure contains the corresponding target blockchain
  • the multicast messages in the security group are encrypted and transmitted;
  • the message processing unit 72 enables the second blockchain node to search for the security group information structure carrying its own public key from the security group creation message, and to search through its own private key pair
  • the ciphertext security group information in the obtained security group information structure is decrypted to obtain the security group session key.
  • the plaintext security group information further includes encryption algorithm indication information, where the encryption algorithm indication information is used to represent the encryption algorithm used when the multicast message is encrypted and transmitted by using the security group session key.
  • the plaintext security group information further includes a session validity period, and the session validity period is used to represent the validity period of the plaintext security group information; wherein, when within the validity period, the plaintext security group information has been added to the Each block chain node of the multicast security group stores; when not within the validity period, the plaintext security group information is discarded or marked as invalid by each block chain node that has joined the multicast security group.
  • the plaintext security group information further includes a security group identifier, and the security group identifier corresponds to the multicast security group; wherein, the multicast message in the multicast security group includes the security group identifier, to instruct the receiver of the multicast message to perform a decryption operation by using the security group session key in the plaintext security group information containing the security group identifier.
  • the security group creation message further includes a message signature generated by the private key of the first blockchain node; the method further includes: the second blockchain node uses the public key pair of the first blockchain node to The message signature is verified.
  • the message signature is generated by signing the key information in the security group creation message with the private key of the first blockchain node; wherein the key information includes the key information corresponding to each target blockchain node.
  • Security group information structure
  • the key information further includes at least one of the following: an anti-replay random number; the public key or digital certificate of the first blockchain node.
  • a typical implementation device is a computer, which may be in the form of a personal computer, laptop computer, cellular phone, camera phone, smart phone, personal digital assistant, media player, navigation device, e-mail device, game control desktop, tablet, wearable device, or a combination of any of these devices.
  • a computer includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • Memory may include forms of non-persistent memory, random access memory (RAM) and/or non-volatile memory in computer readable media, such as read only memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
  • RAM random access memory
  • ROM read only memory
  • flash RAM flash memory
  • Computer-readable media includes both persistent and non-permanent, removable and non-removable media, and storage of information may be implemented by any method or technology.
  • Information may be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Flash Memory or other memory technology, Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disc (DVD) or other optical storage, Magnetic tape cartridges, disk storage, quantum memory, graphene-based storage media or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices.
  • computer-readable media does not include transitory computer-readable media, such as modulated data signals and carrier waves.
  • first, second, third, etc. may be used in this specification to describe various information, such information should not be limited by these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information without departing from the scope of one or more embodiments of the present specification.
  • word "if” as used herein can be interpreted as "at the time of" or "when” or "in response to determining.”

Landscapes

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

Abstract

本说明书一个或多个实施例提供一种在区块链网络中实现安全组播的方法及装置,包括:第一区块链节点生成并发送安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;第二区块链节点收到所述安全组创建消息后,从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。

Description

在区块链网络中实现安全组播的方法及装置 技术领域
本说明书一个或多个实施例涉及终端技术领域,尤其涉及在区块链网络中实现安全组播的方法及装置。
背景技术
在传统的IP组播中,中心站点如果要将同一份数据包传送到两个分支站点(例如分支站点A和分支站点B),就需要分别与分支站点A和分支站点B建立安全关联(Security Association,简称SA),此时中心站点发送数据到分支站点A的流量不能被中心站点B所解密,反之亦然。可见,传统IP组播场景下如果涉及一对多传输或多对多传输的情况,往往需要建立很多个安全关联,这大大增加了网络的复杂度和维护难度。
针对上述问题,相关技术中提出了一些解决方案。在这些解决方案中,可以由密钥服务器向需要实现组播的各个成员分发密钥,使得这些成员可以通过分发的密钥对组播消息进行加密传输,以实现安全组播。但是,密钥服务器的引入增加了架构复杂度和管理难度,而且密钥服务器作为中心化管理的角色,与区块链技术的去中心化存在冲突,无法适用于区块链场景下的安全组播。
发明内容
有鉴于此,本说明书一个或多个实施例提供在区块链网络中实现安全组播的方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种在区块链网络中实现安全组播的方法,包括:第一区块链节点生成并发送安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;第二区块链节点收到所述安全组创建消息后,从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
根据本说明书一个或多个实施例的第二方面,提出了一种在区块链网络中实现安全组播的方法,包括:第一区块链节点生成安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信 息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;第一区块链节点发送所述安全组创建消息,使各个目标区块链节点分别从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
根据本说明书一个或多个实施例的第三方面,提出了一种在区块链网络中实现安全组播的方法,包括:第二区块链节点接收第一区块链节点发送的安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;第二区块链节点从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
根据本说明书一个或多个实施例的第四方面,提出了一种在区块链网络中实现安全组播的装置,包括:消息创建单元,使第一区块链节点生成安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;消息发送单元,使第一区块链节点发送所述安全组创建消息,使各个目标区块链节点分别从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
根据本说明书一个或多个实施例的第五方面,提出了一种在区块链网络中实现安全组播的装置,包括:消息接收单元,使第二区块链节点接收第一区块链节点发送的安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;消息处理单元,使第二区块链节点从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
根据本说明书一个或多个实施例的第六方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如第二方面或第三方面所述的方法。
根据本说明书一个或多个实施例的第七方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面或第三方面所述的方法。
由上述技术方案可知,本说明书利用了区块链网络中的每个区块链节点均可获得其他区块链节点的公钥这一特性,使得第一区块链节点生成的安全组创建消息中可以包含分别对应于各个目标区块链节点的安全组信息结构体,并且由于每一安全组信息结构体仅包含相应的目标区块链节点的公钥和基于该公钥加密后的密文安全组信息,使得一方面该目标区块链节点可以通过匹配公钥的方式查询到自身对应的安全组信息结构体,另一方面可以确保该密文安全组信息只能由该目标区块链节点通过自身私钥解密、无法被其他区块链节点解密,从而在无需增加中心化的密钥服务器的情况下,实现了安全且精准的密钥分享操作,完成了对组播安全组的创建,使得组播安全组内的区块链节点之间可以通过上述的安全组会话密钥实现安全组播。
附图说明
图1是一示例性实施例提供的一种在区块链网络中实现安全组播的方法的流程图。
图2是一示例性实施例提供的一种创建方侧的在区块链网络中实现安全组播的方法的流程图。
图3是一示例性实施例提供的一种参与方侧的在区块链网络中实现安全组播的方法的流程图。
图4是一示例性实施例提供的一种组播场景的示意图。
图5是一示例性实施例提供的一种设备的结构示意图。
图6是一示例性实施例提供的一种创建方侧的在区块链网络中实现安全组播的装置的框图。
图7是一示例性实施例提供的一种参与方侧的在区块链网络中实现安全组播的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更 多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
基于开放程度的不同,区块链网络可以分为公有链、私有链和联盟链等。其中,公有链的开放程度最高、私有链的开放程度最低,而联盟链则介于这两者之间。区块链网络中包含若干区块链节点,区块链节点之间的需要实现诸如共识、交易传输、区块同步等通信操作。各个区块链节点之间可以通过P2P(Peer to Peer,点对点)技术进行通信。或者,各个区块链节点可以借助于区块链中继通信网络中的中继节点,譬如需要通信的区块链节点分别接入中继节点,这样区块链节点之间就可以通过区块链中继通信网络来实现通信。相比于采用P2P技术进行通信,由于区块链中继通信网络是面向区块链实时传输的骨干中继通信网络,各个中继节点之间能够通过高QoS保障的优质带宽进行通信交互,因而由区块链中继通信网络接管区块链节点之间通信的中间链路,能够降低通信时延、提高稳定性,从而显著提升区块链节点之间的通信质量。相关技术中的区块链中继通信网络譬如可以包括:应用于公有链的区块链中继通信网络主要包括Falcon、Fast Bitcoin Relay Network(FBRN)、Fast Internet Bitcoin Relay Engine(FIBRE)等,而应用于联盟链的区块链中继通信网络主要包括BloXRoute、Blockchain Transmission Network(BTN)等。
无论是基于P2P技术或者通过区块链中继通信网络,区块链节点之间均可能存在组播需求。比如,区块链网络中的部分区块链节点可能基于业务需求或其他需求而需要实现安全通信,并且不希望区块链网络中的其他区块链节点获知通信内容,那么可以通过本说明书的技术方案在该部分区块链节点之间建立组播安全组,从而既可以通过组播来提升通讯效率、无需在各个区块链节点之间进行一对一形式的低效通信,又可以避免其他区块链节点获知通信内容。
图1是一示例性实施例提供的一种在区块链网络中实现安全组播的方法的流程图。如图1所示,该方法可以包括:步骤102,第一区块链节点生成并发送安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输。
第一区块链节点可以为区块链网络中的任意一个区块链节点,该第一区块链节点通过安全组创建消息来创建组播安全组,相当于该组播安全组的创建方。当然,在一些管理较为严格的区块链网络中,可以对组播安全组的创建方进行一定限制,比如仅允许区块链网络中指定的一个或多个区块链节点成为创建方,例如在区块链的创世块中可以记录有这些区块链节点的信息(如公钥),而其他区块链节点可以据此验证接收到的安全组创建消息是否来自这些指定的区块链节点,如果是则正常处理收到的安全组创建消息, 如果不是则丢弃收到的安全组创建消息。
目标区块链节点可以为区块链网络中的任意一个或多个区块链节点。第一区块链节点可以通过链下协商、线下协商等方式,从区块链网络中确定出上述的目标区块链节点,并由第一区块链节点与确定出的目标区块链节点组成上述的组播安全组,从而在这些区块链节点之间实现安全组播,避免区块链网络中的其他区块链节点获知组播消息的内容。
为了实现安全组播,第一区块链节点与目标区块链节点均需维护相同的会话密钥,并且确保该会话密钥仅由第一区块链节点和目标区块链节点所维护、不被区块链网络中的其他区块链节点获知,这样第一区块链节点与目标区块链节点之间才能够通过该会话密钥对组播消息进行加密传输,并且确保只有第一区块链节点和目标区块链节点能够对收到的组播消息进行解密。这里所描述的会话密钥,譬如可以为本说明书中的安全组会话密钥。
第一区块链节点可以通过任意方式获得安全组会话密钥,譬如由第一区块链节点接收用户配置的安全组会话密钥,或者由第一区块链节点通过密钥生成规则生成该安全组会话密钥,或者由第一区块链节点从链外的密钥服务器处获得该安全组会话密钥等,本说明书并不对此进行限制。由第一区块链节点获得安全组会话密钥,并进而通过安全组创建消息分发至目标区块链节点,而无需在区块链网络内添加相关技术中的密钥服务器,有助于简化网络架构,并且这种密钥分发方式能够适用于各个区块链节点、符合区块链网络的去中心化特性。
每个区块链节点可以同时加入多个组播安全组,只要该区块链节点能够获得相应组播安全组内分发的安全组会话密钥即可。
步骤104,第二区块链节点收到所述安全组创建消息后,从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
在区块链网络中,每个区块链节点均存在相应的公私钥对,以代表自身的身份。其中,公私钥对中的私钥由各个区块链节点自行维护、避免泄露,而公钥则可以对外公开。鉴于区块链技术的特点,每个区块链节点都可以获得区块链网络中的各个区块链节点的公钥,而本说明书的技术方案利用这一特点实现了对安全组会话密钥的安全分发。
在密钥分发的过程中,公钥起到的作用分为两部分:第一部分,在生成分别对应于各个目标区块链节点的安全组信息结构体时,通过在安全组信息结构体内包含相应的目标区块链节点的公钥,使得各个区块链节点在收到安全组创建消息后,均可以将自身的公钥作为标识进行匹配,以准确查找到对应于自身的安全组信息结构体,当然如果未匹配到则表明自身并不属于相应的组播安全组,从而确保了对安全组会话密钥的精准分发;第二部分,在生成分别对应于各个目标区块链节点的安全组信息结构体时,采用相应的目标区块链节点的公钥进行非对称加密、以生成上述的密文安全组信息,确保只有该安 全组信息结构体对应的目标区块链节点才能够对该密文安全组信息进行解密以得到安全组会话密钥,因为正如前文所述,只有该目标区块链节点持有自身的私钥,从而确保了对安全组会话密钥的安全分发。因此,如果第一区块链节点希望将第二区块链节点添加为组播安全组的成员,第一区块链节点可以在安全组创建消息中包含对应于第二区块链节点的安全组信息结构体,该安全组信息结构体包含第二区块链节点的公钥以及由该公钥加密生成的密文安全组信息,使得第二区块链节点能够通过自身公钥查找到该安全组信息结构体、解密得到安全组会话密钥。
对安全组会话密钥分发完毕后,相当于区块链网络中获得该安全组会话密钥的所有区块链节点组成了组播安全组,这些区块链节点成为该组播安全组的成员。组播安全组的成员之间可以实现安全组播:各个成员之间发送的组播消息都会采用上述的安全组会话密钥进行加密传输,使得这些组播消息只能够被这些成员解密,即便这些组播消息被区块链网络中的其他区块链节点接收也无法被解密,从而确保组播消息的消息内容必然仅能够被组播安全组的成员获得,故而实现了安全组播。
在通过安全组会话密钥对组播消息进行加密时,组播安全组的成员之间可以预先配置或协商(例如链下协商或线下协商等)所采用的加密算法,该加密算法还用于对组播消息进行解密操作。或者,明文安全组信息可以包含:加密算法指示信息,该加密算法指示信息用于表征采用上述安全组会话密钥对组播消息进行加密传输时使用的加密算法,相当于由第一区块链节点来指定所采用的加密算法;当然,该加密算法也可以是由第一区块链节点与目标区块链节点预先协商确定的,并由第一区块链节点标记在明文安全组信息中。
当安全组会话密钥为对称密钥时,所采用的加密算法可以为任意对称加密算法,譬如AES128-GCM、AES128-CCM、AES256-GCM、AES256-CCM、AEAD_CHACHA20_POLY1305、SM4-GCM、SM4-CCM等,本说明书并不对此进行限制。当安全组会话密钥为非对称密钥时,该安全组会话密钥包括公私钥对,其中公钥用于对组播消息进行加密、私钥用于对组播消息进行解密。相应地,所采用的加密算法可以为任意非对称加密算法,譬如RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等,本说明书并不对此进行限制。
如果一个区块链节点仅同时加入一个组播安全组,那么该区块链节点只会在这个组播安全组内收发组播消息,只需要采用这个组播安全组内分发的安全组会话密钥进行加解密,不会产生组播或安全组会话密钥的混淆。而如前所述,同一区块链节点可以同时加入多个组播安全组,此时该区块链节点需要对各个组播安全组进行区分,比如各个组播安全组分别使用的安全组会话密钥、所采用的加密算法等,再比如收到的组播消息属于哪个组播安全组、自己是否属于该组播安全组等。因此,明文安全组信息还可以包含安全组标识,该安全组标识对应于组播安全组,譬如安全组标识与组播安全组之间一一对应。相应的,对于组播安全组内的组播消息(即组播安全组的成员之间传输的组播消 息),可以包含该组播安全组对应的安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。组播消息的接收方可以通过该组播消息所含的安全组标识,确定该组播消息所属的组播安全组,而如果该接收方属于该组播安全组,该接收方就维护有通过如上述步骤102-104获得的、包含该安全组标识的明文安全组信息,并进而通过该明文安全组信息所含的安全组会话密钥对该组播消息进行解密。类似地,当某一区块链节点希望发送组播消息时,该区块链节点可以确定在哪个组播安全组内进行通信,就可以根据确定出的组播安全组对应的安全组标识,从而包含该安全组标识的明文安全组信息中获得安全组会话密钥,并通过该安全组会话密钥对组播消息进行加密发送。
上述的安全组创建消息还可以包含由第一区块链节点的私钥生成的消息签名。那么,第二区块链节点在收到安全组创建消息后,还可以首先通过第一区块链节点的公钥对该消息签名进行验签,并在验签成功的情况下确定:安全组创建消息确实来自第一区块链节点,并且该安全组创建消息在传输过程中并未发生篡改,第一区块链节点可以在确认验签成功后才执行步骤104和其他操作,否则可以丢弃或不处理该安全组创建消息。
上述的消息签名可以由第一区块链节点的私钥对安全组创建消息中的关键信息进行签名而生成,使得验签成功的情况下具体可以证明该关键信息没有被篡改。例如,关键信息可以包括:对应于各个目标区块链节点的安全组信息结构体。再例如,关键信息除了上述的安全组信息结构体之外,还可以包含以下至少之一:防重放随机数,第一区块链节点的公钥或数字证书等,本说明书并不对此进行限制。第一区块链节点发送的不同安全组创建消息可以分别包含不同的防重放随机数,那么第二区块链节点可以在当前接收到的安全组创建消息与历史上接收到的安全组创建消息包含相同的防重放随机数的情况下,确认当前接收到的安全组创建消息为重放消息、需要丢弃或不处理,而只有当前接收到的安全组创建消息与历史上接收到的安全组创建消息包含的防重放随机数均不同的情况下,才会正常处理收到的安全组创建消息。第一区块链节点的数字证书由CA中心发放,该数字证书中包含第一区块链节点的公钥,第二区块链节点可以在数字证书通过验证的情况下,确定该数字证书包含的公钥确实属于第一区块链节点。
组播安全组可以是长期有效的安全组,也可以是短期或临时性的。对于短期或临时性的组播安全组,具有一定的时效性;比如,这类组播安全组可以存在一有效期,使得相应的组播安全组仅在有效期内能够实现安全组播。例如,上述任一实施例的明文安全组信息还可以包含:会话有效期,该会话有效期用于表征明文安全组信息的有效期,使得:当处于有效期内时,明文安全组信息被已加入相应的组播安全组的各个区块链节点存储;当未处于有效期内时,明文安全组信息被已加入相应的组播安全组的各个区块链节点丢弃或标记为无效。虽然这里描述的会话有效期用于管理明文安全组信息的有效期,但是由于组播安全组内的安全组播需要利用明文安全组信息所含的安全组会话密钥、会话组标识等信息,因而对明文安全组信息的管理实际上就是对组播安全组的管理,而明 文安全组信息的有效期即为组播安全组的有效期。由于同一明文安全组信息的使用时间越长,该明文安全组信息发生泄露的风险就越大,因而通过设置上述的会话有效期可以避免长期使用同一明文安全组信息所带来的潜在安全性风险,迫使相应组播安全组的成员对明文安全组信息进行更新,以提升组播安全性。
图2是一示例性实施例提供的一种创建方侧的在区块链网络中实现安全组播的方法的流程图。如图2所示,该方法可以包括:步骤202,第一区块链节点生成安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输。
在第一区块链节点用于生成安全组创建消息的情况下,相当于由第一区块链节点发起了对相应的组播会话组的创建,因而可以将第一区块链节点视为该组播会话组的创建方。相应地,对于其他从第一区块链节点处接收该安全组创建消息、获得安全组会话密钥等的区块链节点,相当于参与了相应的组播会话组,因而可以将这些区块链节点视为该组播会话组的参与方。同一区块链节点在一些组播安全组内可以属于创建方这一角色,同时在另一些组播安全组内也可以属于参与方这一角色。
步骤204,第一区块链节点发送所述安全组创建消息,使各个目标区块链节点分别从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
如前所述,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
如前所述,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
如前所述,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
如前所述,所述安全组创建消息还包含:由第一区块链节点的私钥生成的消息签名。
如前所述,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;其中,所述关键信息包括:对应于各个目标区块链节点的安全组信息结构体。
如前所述,所述关键信息还包含以下至少之一:防重放随机数;第一区块链节点的公钥或数字证书。
图3是一示例性实施例提供的一种参与方侧的在区块链网络中实现安全组播的方法的流程图。如图3所示,该方法可以包括:步骤302,第二区块链节点接收第一区块链节点发送的安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输。
步骤304,第二区块链节点从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
如前所述,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
如前所述,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
如前所述,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
如前所述,所述安全组创建消息还包含由第一区块链节点的私钥生成的消息签名;所述方法还包括:第二区块链节点通过第一区块链节点的公钥对所述消息签名进行验签。
如前所述,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;其中,所述关键信息包括:对应于各个目标区块链节点的安全组信息结构体。
如前所述,所述关键信息还包含以下至少之一:防重放随机数;第一区块链节点的公钥或数字证书。
在上述图1所示的实施例中,已经结合第一区块链节点、第二区块链节点分别执行的处理操作,对组播安全组的创建方、参与方侧的技术方案予以描述,因而上述图2和图3所示的实施例中,相关特征或方案的描述可以参考图1所示的实施例,此处不再赘述。
图4是一示例性实施例提供的一种组播场景的示意图。如图4所示,区块链网络中存在节点A、节点B、节点C和节点D等若干区块链节点;其中,假定节点A、节点B和节点C之间需要建立一组播安全组,使得在节点A、节点B和节点C之间可以对一些敏感内容进行传输,而避免节点D等其他区块链节点获得这些敏感内容。那么,节点A、节点B和节点C可以通过基于本说明书实施例的BSGGP(Blockchain Security Group Generate Protocol,区块链安全组生成协议)进行密钥协商,以建立组播安全组,并进而通过基于本说明书实施例的BSGMP(Blockchain Security Group Multicast Protocol,区块链安全组组播协议)实现安全组播。
假定由节点A作为创建方,则节点A需要首先生成符合BSGGP的安全组创建消息BSGGP_GroupInfo,该BSGGP_GroupInfo的消息结构可以为:
Figure PCTCN2022071800-appb-000001
在上述BSGGP_GroupInfo的消息结构中,Encrypt_Session_chain用于保存组播安全组相关信息,该组播安全组相关信息可以为前述实施例中对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体。该Encrypt_Session_chain的结构可以为:
Struct{
BSG_Encrypt_Session sess[Group_member_num-1];
}Encrypt_Session_chain
其中,BSG_Encrypt_Session即为上述的安全组信息结构体,且对应于节点B、节点C等各个目标区块链节点的安全组信息结构体之间可以串成一条链后,以链式结构被添加于上述的Encrypt_Session_chain中。这些安全组信息结构体在构成链式结构时,可以按照预设顺序(如IP地址的大小顺序、节点公钥的大小顺序等,本说明书并不对此进行限制)依次拼接;也可以无序拼接,拼接顺序并不会影响协商效果。
BSG_Encrypt_Session的结构可以为:
Struct{
PublicKey key;//目标区块链节点的公钥
Enc_Session sess;//使用目标区块链节点的公钥对BSG_Session进行加密后生成的密文安全组信息
}BSG_Encrypt_Session
由上述BSG_Encrypt_Session的结构可见:由于需要针对各个目标区块链节点分别生成相应的BSG_Encrypt_Session,且每个BSG_Encrypt_Session均会包含相应目标区块链节点的公钥,使得不论这些BSG_Encrypt_Session之间采用何种顺序进行拼接,每个目标区块链节点总是能够通过匹配自身的公钥来找到自身对应的BSG_Encrypt_Session,故而这些BSG_Encrypt_Session之间的拼接顺序不会影响协商效果。
Enc_Session相当于前文所述的密文安全组信息,Enc_Session由所属BSG_Encrypt_Session对应的目标区块链节点的公钥对BSG_Session进行加密得到,该BSG_Session相当于前文所述的明文安全组信息。比如节点B对应的BSG_Encrypt_Session中,所含的Enc_Session由节点B的公钥对BSG_Session进行加密得到,而节点C对应的BSG_Encrypt_Session中,所含的Enc_Session由节点C的公钥对BSG_Session进行加密得到。可见,只有BSG_Encrypt_Session对应的目标区块链节点能够通过自身维护的私钥对该Enc_Session进行解密以得到BSG_Session,而其他区块链节点即便可以获得该BSG_Encrypt_Session,也由于无法获得私钥而不能够完成解密,从而实现了对BSG_Session的安全传递,确保了协商过程的安全性。
各个节点对应的BSG_Encrypt_Session中,Enc_Session对应的BSG_Session均相同。BSG_Session可以包含节点A希望传递给节点B、节点C的任何内容,当然这些内容通常与需要创建的组播会话组相关。例如,BSG_Session的结构可以为:
Struct{
uint32 session_lifetime_hint;//会话有效期
String BSG_ID;//安全组标识
uint32 cipher_id;//用于使用的加密算法
String Master_key;//安全组会话密钥
}BSG_Session
每个目标区块链节点解密得到BSG_Session后,会对该BSG_Session进行保存。而每个BSG_Session中包含的session_lifetime_hint,用于表明相应的组播会话组的有效期或者相应会话的有效期,那么目标区块链节点可以在确定某个BSG_Session所含的session_lifetime_hint超期时,删除该BSG_Session或者将该BSG_Session标记为无效,或者在需要发送组播消息之前查看到相应BSG_Session所含的session_lifetime_hint超期时避免使用该BSG_Session中的Master_key进行加密;换言之,只有当BSG_Session所含的session_lifetime_hint未超期时,该BSG_Session中的Master_key才会被用于对组 播消息进行加密传输。
BSG_ID用于标记组播会话组或该组播会话组所对应的会话,使得该组播会话组的成员之间传输的组播消息均会包含该BSG_ID,这样当某一区块链节点在收到组播消息后,能够根据该组播消息所含的BSG_ID来匹配自身维护的BSG_Session,并通过包含该BSG_ID的BSG_Session中的Master_key来解密收到的组播消息。Master_key用于对组播消息进行加解密处理。而cipher_id用于指示组播会话组的成员,在执行加解密处理时所采用的算法。
在节点A、节点B和节点C之间通过上述方式完成协商后,节点A、节点B和节点C在本地均会维护有BSG_Session,使得节点A、节点B和节点C组成一组播安全组,这些节点之间可以基于共同维护的BSG_Session实现安全组播。
假定节点B希望向节点A和节点C发送组播消息,节点B首先生成符合BSGMP的消息结构体BSG_Plaintext,该BSG_Plaintext的结构可以为:
Struct{
String content;//明文消息内容
uint8 zeros[length_of_padding-1];//明文消息内容的最后分块不足128bit时,以全0填充
uint8 length_of_padding;//用于描述padding的长度
}BSG_Plaintext
在上述的消息结构体BSG_Plaintext中,节点B需要传输的消息内容以明文形式记录于content中。在一些情况下,BSG_Plaintext可以仅包含content。而在上述实施例中,由于采用块结构来组织BSG_Plaintext,譬如每个块的长度为128bit,那么当content的长度恰好为128bit的整数倍时,content恰好可以填充相应的若干个块,那么BSG_Plaintext同样可以不包含zeros[length_of_padding-1]和length_of_padding;但是,当content的长度并非恰好为128bit的整数倍时,就会造成最后一个分块的128bit无法被填满,这些未填满的部分可以全部采用0来填充,上述的zeros[length_of_padding-1]即对应于这些填充为0的部分(即padding),而length_of_padding则用于描述padding的长度。
进一步地,节点B可以对上述的BSG_Plaintext进行构造,从而生成组播消息BSG_Message,其消息结构可以为:
Struct{
Int BSG_Message.length;//消息长度
String BSG_ID;//安全组标识
64bit seq_num;//对称加密的iv,每条应用层消息自增
String.BSG_Ciphertext;//用BSG_key加密的BSG_Plaintext消息
}BSG_Message
节点B在生成BSG_Message时,需要使用前述过程获得的BSG_Session。实际上,当节点B希望在哪个组播会话组发送BSG_Message时,就应当使用该组播会话组对应的BSG_Session,并通过该BSG_Session所含的BSG_ID和Master_key生成上述的BSG_Message。
BSG_Ciphertext由节点B采用Master_key对BSG_Plaintext进行加密而生成。当采用诸如AES128-GCM等加密算法时,该加密算法还要求使用随机数iv以增加对称加密的安全性,因而BSG_Message的结构中包含上述的seq_num。当然,节点B可以单独将节点A和节点C发送seq_num,而非将其集成在BSG_Message的结构中进行发送,这样即便Master_key和BSG_Message都暴露的情况下,也可能由于seq_num未暴露而使得BSG_Ciphertext无法被正确解密,从而有助于提升安全性。而上述实施例中,通过将seq_num集成在BSG_Message的结构中进行发送,则考虑到避免单独发送seq_num而造成的交互次数增加,有助于提升通讯效率。
以AES128-GCM为例,则可以通过下述方式对BSG_Plaintext加密生成BSG_Ciphertext:
BSG_Ciphertext=AES128-GCM-Encrypt(Master_key,seq_num,additional_data,BSG_Plaintext)
其中,additional_data=BSG_Message.length||BSG_Message
那么,如果譬如节点C收到节点B发送的上述BSG_Message,节点C可以根据该BSG_Message所含的BSG_ID,从自身维护的所有BSG_Session中进行匹配,以确定包含该BSG_ID的BSG_Session。进而,节点C可以根据确定出的BSG_Session中读取cipher_id和Master_key,并据此对收到的BSG_Message中的BSG_Ciphertext进行解密,以得到明文的BSG_Plaintext。仍以AES128-GCM为例,则可以通过下述方式对BSG_Ciphertext解密得到BSG_Plaintext:
BSG_Plaintext=AES128-GCM-Decrypt(Master_key,seq_num,additional_data,BSG_Ciphertext)
在针对组播消息进行传输时,作为发送方的区块链节点可以在相应的消息报文中指定作为接收方的区块链节点的信息,譬如在报文头添加这些区块链节点的IP地址,以使得组播消息可以定向发送至被指定为接收方的这些区块链节点,而不会发送给其他的区块链节点,以节省网络资源。当然,实现定向发送的方式还有很多,比如当区块链节点之间通过区块链中继通信网络进行通信时,可以通过在消息报文中添加这些区块链节 点对应的标识信息,使得区块链中继通信网络可以将组播消息定向发送至被指定为接收方的这些区块链节点,而不会发送给其他的区块链节点。
当然,不属于组播会话组的区块链节点也可能收到组播消息。例如,如果节点D收到节点B发送的上述BSG_Message,节点D也可以根据该BSG_Message所含的BSG_ID,从自身维护的所有BSG_Session中进行匹配,但节点D无法匹配到包含该BSG_ID的BSG_Session,因而无法对收到的BSG_Message中的BSG_Ciphertext进行解密,那么从安全性的角度而言,无异于节点D未收到组播消息。
综上所述,本说明书利用了区块链网络中的每个区块链节点均可获得其他区块链节点的公钥这一特性,使得第一区块链节点生成的安全组创建消息中可以包含分别对应于各个目标区块链节点的安全组信息结构体,并且由于每一安全组信息结构体仅包含相应的目标区块链节点的公钥和基于该公钥加密后的密文安全组信息,使得一方面该目标区块链节点可以通过匹配公钥的方式查询到自身对应的安全组信息结构体,另一方面可以确保该密文安全组信息只能由该目标区块链节点通过自身私钥解密、无法被其他区块链节点解密,从而在无需增加中心化的密钥服务器的情况下,实现了安全且精准的密钥分享操作,完成了对组播安全组的创建,使得组播安全组内的区块链节点之间可以通过上述的安全组会话密钥实现安全组播。
图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成在区块链网络中实现安全组播的装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图6,在软件实施方式中,创建方侧的在区块链网络中实现安全组播的装置可以包括:
消息创建单元61,使第一区块链节点生成安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;
消息发送单元62,使第一区块链节点发送所述安全组创建消息,使各个目标区块链节点分别从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
可选的,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
可选的,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
可选的,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
可选的,所述安全组创建消息还包含由第一区块链节点的私钥生成的消息签名。
可选的,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;其中,所述关键信息包括:对应于各个目标区块链节点的安全组信息结构体。
可选的,所述关键信息还包含以下至少之一:防重放随机数;第一区块链节点的公钥或数字证书。
请参考图7,在软件实施方式中,参与方侧的在区块链网络中实现安全组播的装置可以包括:消息接收单元71,使第二区块链节点接收第一区块链节点发送的安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;消息处理单元72,使第二区块链节点从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
可选的,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
可选的,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
可选的,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消 息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
可选的,所述安全组创建消息还包含由第一区块链节点的私钥生成的消息签名;所述方法还包括:第二区块链节点通过第一区块链节点的公钥对所述消息签名进行验签。
可选的,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;其中,所述关键信息包括对应于各个目标区块链节点的安全组信息结构体。
可选的,所述关键信息还包含以下至少之一:防重放随机数;第一区块链节点的公钥或数字证书。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (25)

  1. 一种在区块链网络中实现安全组播的方法,包括:
    第一区块链节点生成并发送安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;
    第二区块链节点收到所述安全组创建消息后,从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
  2. 根据权利要求1所述的方法,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
  3. 根据权利要求1所述的方法,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;
    其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
  4. 根据权利要求1所述的方法,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;
    其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
  5. 根据权利要求1所述的方法,所述安全组创建消息还包含:由第一区块链节点的私钥生成的消息签名;第二区块链节点还通过第一区块链节点的公钥对所述消息签名进行验签。
  6. 根据权利要求5所述的方法,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;
    其中,所述关键信息包括:对应于各个目标区块链节点的安全组信息结构体。
  7. 根据权利要求6所述的方法,所述关键信息还包含以下至少之一:
    防重放随机数;
    第一区块链节点的公钥或数字证书。
  8. 一种在区块链网络中实现安全组播的方法,包括:
    第一区块链节点生成安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组 内的组播消息进行加密传输;
    第一区块链节点发送所述安全组创建消息,使各个目标区块链节点分别从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
  9. 根据权利要求8所述的方法,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
  10. 根据权利要求8所述的方法,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;
    其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
  11. 根据权利要求8所述的方法,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;
    其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
  12. 根据权利要求8所述的方法,所述安全组创建消息还包含:由第一区块链节点的私钥生成的消息签名。
  13. 根据权利要求12所述的方法,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;
    其中,所述关键信息包括:对应于各个目标区块链节点的安全组信息结构体。
  14. 根据权利要求13所述的方法,所述关键信息还包含以下至少之一:
    防重放随机数;
    第一区块链节点的公钥或数字证书。
  15. 一种在区块链网络中实现安全组播的方法,包括:
    第二区块链节点接收第一区块链节点发送的安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;
    第二区块链节点从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
  16. 根据权利要求15所述的方法,所述明文安全组信息还包含加密算法指示信息,所述加密算法指示信息用于表征采用所述安全组会话密钥对所述组播消息进行加密传输时使用的加密算法。
  17. 根据权利要求15所述的方法,所述明文安全组信息还包含会话有效期,所述会话有效期用于表征所述明文安全组信息的有效期;
    其中,当处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点存储;当未处于有效期内时,所述明文安全组信息被已加入所述组播安全组的各个区块链节点丢弃或标记为无效。
  18. 根据权利要求15所述的方法,所述明文安全组信息还包含安全组标识,所述安全组标识对应于所述组播安全组;
    其中,所述组播安全组内的组播消息包含所述安全组标识,以指示所述组播消息的接收方通过包含所述安全组标识的明文安全组信息中的安全组会话密钥进行解密操作。
  19. 根据权利要求15所述的方法,所述安全组创建消息还包含:由第一区块链节点的私钥生成的消息签名;所述方法还包括:
    第二区块链节点通过第一区块链节点的公钥对所述消息签名进行验签。
  20. 根据权利要求19所述的方法,所述消息签名由第一区块链节点的私钥对所述安全组创建消息中的关键信息进行签名而生成;
    其中,所述关键信息包括:对应于各个目标区块链节点的安全组信息结构体。
  21. 根据权利要求20所述的方法,所述关键信息还包含以下至少之一:
    防重放随机数;
    第一区块链节点的公钥或数字证书。
  22. 一种在区块链网络中实现安全组播的装置,包括:
    消息创建单元,使第一区块链节点生成安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;
    消息发送单元,使第一区块链节点发送所述安全组创建消息,使各个目标区块链节点分别从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进行解密以得到所述安全组会话密钥。
  23. 一种在区块链网络中实现安全组播的装置,包括:
    消息接收单元,使第二区块链节点接收第一区块链节点发送的安全组创建消息,所述安全组创建消息包含分别对应于待加入组播安全组的各个目标区块链节点的安全组信息结构体,每一安全组信息结构体包含相应的目标区块链节点的公钥和由该公钥对明文安全组信息加密得到的密文安全组信息,所述明文安全组信息包含安全组会话密钥,所述安全组会话密钥用于对所述组播安全组内的组播消息进行加密传输;
    消息处理单元,使第二区块链节点从所述安全组创建消息中查找携带自身公钥的安全组信息结构体,并通过自身私钥对查找到的安全组信息结构体内的密文安全组信息进 行解密以得到所述安全组会话密钥。
  24. 一种电子设备,包括:
    处理器;
    用于存储处理器可执行指令的存储器;
    其中,所述处理器通过运行所述可执行指令以实现如权利要求8至21中任一项所述的方法。
  25. 一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求8至21中任一项所述的方法。
PCT/CN2022/071800 2021-02-03 2022-01-13 在区块链网络中实现安全组播的方法及装置 WO2022166556A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22748835.0A EP4290804A1 (en) 2021-02-03 2022-01-13 Method and apparatus for realizing secure multicast in blockchain network
US18/275,665 US20240129281A1 (en) 2021-02-03 2022-01-13 Method and apparatus for implementing secure multicast in blockchain network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110152304.X 2021-02-03
CN202110152304.XA CN114866267B (zh) 2021-02-03 2021-02-03 在区块链网络中实现安全组播的方法及装置

Publications (1)

Publication Number Publication Date
WO2022166556A1 true WO2022166556A1 (zh) 2022-08-11

Family

ID=82623388

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/071800 WO2022166556A1 (zh) 2021-02-03 2022-01-13 在区块链网络中实现安全组播的方法及装置

Country Status (4)

Country Link
US (1) US20240129281A1 (zh)
EP (1) EP4290804A1 (zh)
CN (1) CN114866267B (zh)
WO (1) WO2022166556A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014234B (zh) * 2023-10-07 2023-12-08 成都创一博通科技有限公司 基于区块链的信息加密传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044356A1 (en) * 1999-12-22 2005-02-24 Sunil Srivastava Method and apparatus for distributing and updating private keys of multicast group managers using directory replication
CN1668000A (zh) * 2004-03-11 2005-09-14 陈屹戎 用于无线网络的鉴别与保密方法
CN102684875A (zh) * 2012-01-07 2012-09-19 河南科技大学 组播安全代理组件及组播加密管理方法
CN112217645A (zh) * 2020-09-28 2021-01-12 电子科技大学 一种基于区块链技术的匿名通信系统路由选择方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107171806B (zh) * 2017-05-18 2020-04-10 北京航空航天大学 基于区块链的移动终端网络密钥协商方法
EP3707925A1 (en) * 2017-11-09 2020-09-16 Electric Society SA An ad-hoc network
CN108566375A (zh) * 2018-03-12 2018-09-21 深圳壹账通智能科技有限公司 基于区块链的多端间消息通信的方法、终端及存储介质
KR102020898B1 (ko) * 2018-10-31 2019-09-11 상명대학교 천안산학협력단 신뢰 실행 환경 기반 세션키 수립 방법
CN110046521B (zh) * 2019-04-24 2023-04-18 成都派沃特科技股份有限公司 去中心化隐私保护方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044356A1 (en) * 1999-12-22 2005-02-24 Sunil Srivastava Method and apparatus for distributing and updating private keys of multicast group managers using directory replication
CN1668000A (zh) * 2004-03-11 2005-09-14 陈屹戎 用于无线网络的鉴别与保密方法
CN102684875A (zh) * 2012-01-07 2012-09-19 河南科技大学 组播安全代理组件及组播加密管理方法
CN112217645A (zh) * 2020-09-28 2021-01-12 电子科技大学 一种基于区块链技术的匿名通信系统路由选择方法

Also Published As

Publication number Publication date
EP4290804A1 (en) 2023-12-13
US20240129281A1 (en) 2024-04-18
CN114866267A (zh) 2022-08-05
CN114866267B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN108600227B (zh) 一种基于区块链的医疗数据共享方法及装置
TWI683566B (zh) 量子密鑰輸出方法、儲存一致性驗證方法、裝置及系統
TWI721122B (zh) 資料安全傳輸方法、客戶端及服務端方法、裝置及系統
US9338150B2 (en) Content-centric networking
TWI744532B (zh) 用以於區塊鏈網路節點間建立受信賴點對點通訊之方法與系統
US8553887B2 (en) Method for generating dynamic group key
CN111404950B (zh) 一种基于区块链网络的信息共享方法、装置和相关设备
WO2019178942A1 (zh) 一种进行ssl握手的方法和系统
JP2014514860A (ja) セキュリティアソシエーションの発見法
US20230188325A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
WO2024001035A1 (zh) 基于区块链中继通信网络系统的消息传输方法及装置
WO2023078123A1 (zh) 区块链中继通信网络的中立性验证
Liu et al. A communication model in multilevel security network using quantum key
WO2022166556A1 (zh) 在区块链网络中实现安全组播的方法及装置
CN114142995A (zh) 面向区块链中继通信网络的密钥安全分发方法及装置
Harn et al. General logic-operation-based lightweight group-key distribution schemes for Internet of Vehicles
CN116684093A (zh) 身份认证与密钥交换方法及系统
CN117353932A (zh) 一种基于p2p的跨平台剪贴数据共享方法
WO2024001037A1 (zh) 一种消息传输方法、装置、电子设备和存储介质
US20220407689A1 (en) Key sharing for media frames using blockchain
CN113918971A (zh) 基于区块链的消息传输方法、装置、设备及可读存储介质
CN111279655B (zh) 数据共享方法、系统及服务器、通信终端、记录介质
Papotti et al. Quantum Key Distribution in OpenSSL
Hjelm Security and Privacy for Modern and Emerging Mobile Systems
Al-Amin et al. Secure Data Management in P2P Social Networks Using Access Tokens

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22748835

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18275665

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022748835

Country of ref document: EP

Effective date: 20230904

WWE Wipo information: entry into national phase

Ref document number: 11202305861Q

Country of ref document: SG