Identity verification method based on block chain technology and entity

By using the entity's identity and public key for authentication in the blockchain system, the burden of nodes in storing and transmitting digital certificates is solved, and efficient authentication on limited storage and communication devices is achieved.

CN120017296APending Publication Date: 2025-05-16HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410489781.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-11-14
Filing Date
2024-04-18
Publication Date
2025-05-16

AI Technical Summary

Technical Problem

Nodes in blockchain systems need to store and transmit a large number of digital certificates, resulting in an increase in storage burden and data transmission, especially in devices with limited storage resources and limited communication resources such as IoT devices.

Method used

By obtaining the entity's verification request, the entity's identity, the organization's identity, authentication information and public key are used for authentication, avoiding the transmission and storage of digital certificates, thereby reducing the burden of storage and transmission.

Benefits of technology

It realizes authentication without storing and transmitting digital certificates, reducing the storage and communication burden of nodes, and is suitable for devices with limited storage resources and limited communication resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120017296A_ABST
    Figure CN120017296A_ABST
Patent Text Reader

Abstract

The invention provides an identity verification method and an entity in a block chain system. The method comprises the following steps: acquiring a verification request of a second entity, wherein the verification request comprises an identifier of the second entity, an identifier of an organization to which the second entity belongs, authentication information and a public key; public parameters of a first key generation center are determined according to the identifier of the organization to which the second entity belongs, the first key generation center is used for generating authentication information of the second entity, and the public parameters are used for generating a public key of the second entity; and verifying the public key of the second entity according to the identifier of the second entity, the authentication information of the second entity and the public parameter of the first key generation center to obtain a verification result of the second entity.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of blockchain technology, and in particular to an identity authentication method and entity based on blockchain technology. Background Art

[0002] With the development of blockchain technology, the application scenarios of blockchain systems are becoming more and more extensive. In order to improve the legitimacy and security of blockchain system transactions, nodes in the blockchain system need to authenticate the client or other nodes after receiving transactions from the client or other nodes. In related technologies, the client and node in the blockchain system each correspond to a digital certificate. The blockchain system can authenticate the client or node through the digital certificate to determine the legitimacy of the client or node.

[0003] Related technologies use digital certificates to identify and verify the identities of clients and nodes. Although this can improve the security of the blockchain system, the solution relies on digital certificates for identity authentication. Nodes need to store digital certificates, which will take up more storage space on the nodes and increase the storage burden on the nodes. Moreover, digital certificates need to be carried in transactions, and the amount of data transmitted between clients and nodes is large. Summary of the invention

[0004] The present application provides an identity authentication method and entity based on blockchain technology, which can reduce storage burden and data transmission volume.

[0005] In the first aspect, the present application provides an identity authentication method. The method is applied to a first entity, and the method includes: obtaining a verification request from a second entity, the verification request includes an identifier of the second entity, an identifier of an organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity; determining a public parameter of a first key generation center according to the identifier of the organization to which the second entity belongs, the first key generation center is used to generate authentication information of the second entity, and the public parameter is used to generate the public key of the second entity; verifying the public key of the second entity according to the identifier of the second entity, the authentication information of the second entity, and the public parameter of the first key generation center, and obtaining a verification result of the second entity.

[0006] The first entity may include a node of the blockchain system, and the second entity may include a client or node of the blockchain system. It should be noted that in some specific blockchain system architectures, the first entity may also include a client of the blockchain system.

[0007] In the above scheme, during identity authentication, the first entity verifies the public key of the second entity to determine its verification result, and the entities do not need to transmit digital certificates, which can reduce the amount of data transmission. In addition, the entities do not need to store their digital certificates, thereby saving storage space.

[0008] In a possible implementation of the first aspect, the public parameters of the first key generation center include an identifier and a public key of the first key generation center, and the public key of the second entity is verified according to the identifier of the second entity, the authentication information of the second entity, and the public parameters of the first key generation center to obtain a verification result of the second entity, including: generating a first public key according to the identifier of the second entity, the identifier of the first key generation center, the public key of the first key generation center, and the authentication information of the second entity; and comparing the first public key with the public key of the second entity to obtain a verification result of the second entity.

[0009] In a possible implementation of the first aspect, the method further includes: when the verification result of the second entity indicates a pass, writing an identifier of the organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity into a ledger of the blockchain system.

[0010] In the above scheme, the identifier of the organization to which the entity belongs, the authentication information of the entity and the public key of the entity are written into the blockchain system as its identity information, and the identity of the entity can be authenticated in subsequent communication processes.

[0011] In a possible implementation of the first aspect, the method further includes: obtaining a transaction request, the transaction request including the client's identifier, transaction information and transaction signature; obtaining the identifier of the organization to which the client belongs, the authentication information of the client and the public key of the client from the ledger of the blockchain system according to the identifier of the client; determining the public parameters of the second key generation center according to the identifier of the organization to which the client belongs, the second key generation center is used to generate the authentication information of the client, and the public parameters of the second key generation center are used to generate the public key of the client; verifying the public key of the client according to the identifier of the client, the authentication information of the client and the public parameters of the second key generation center to obtain the verification result of the client; in the case where the verification result of the client indicates passing, verifying the transaction information according to the public key of the client and the transaction signature. Wherein, in the case where the first entity is an endorsement node, after the transaction information is verified, the endorsement node can simulate the execution of the transaction, generate an endorsement signature, and send the endorsement signature to the client.

[0012] In the above scheme, after the client successfully registers in the blockchain system, the client's identity information is stored in the blockchain system's ledger. Therefore, the client does not need to carry its identity information in the transaction request sent to the entity. After the entity receives the transaction, it obtains the client's identity information from the blockchain system's ledger and verifies it based on the client's identification. Compared with the scheme that requires carrying a digital certificate in the transaction, this scheme can reduce the amount of data transmission in the transaction.

[0013] In a possible implementation of the first aspect, the transaction request also includes an identifier of an endorsement node and an endorsement signature of the endorsement node, and the method also includes: obtaining, from the ledger of the blockchain system, an identifier of an organization to which the endorsement node belongs, authentication information of the endorsement node, and a public key of the endorsement node according to the identifier of the endorsement node; determining a public parameter of a third key generation center according to the identifier of the organization to which the endorsement node belongs, the third key generation center being used to generate the authentication information of the endorsement node, and the public parameter of the third key generation center being used to generate the public key of the endorsement node; and verifying the public key of the endorsement node according to the identifier of the endorsement node, the authentication information of the endorsement node, and the public parameter of the third key generation center to obtain a verification result of the endorsement node.

[0014] In the above scheme, when the first entity is an execution node, after the client's transaction is endorsed, the execution node can also obtain the identity information of the endorsement node from the ledger and verify the identity of the endorsement node based on the identifier of the endorsement node in the transaction. The client does not need to send the digital certificate of the endorsement node to the execution node, which can reduce the client's transmission volume and storage burden.

[0015] In a possible implementation of the first aspect, the first entity and / or the second entity includes an Internet of Things (IoT) device.

[0016] In the above scheme, for IoT devices with limited storage resources, the above method can effectively solve the problem that a large amount of storage resources of IoT devices are occupied due to storing digital certificates.

[0017] In the second aspect, the present application provides a key generation method. The method is applied to an entity, comprising: sending the entity's identifier, symmetric key, second random number and first random number key to a key generation center; obtaining the entity's authentication information from the key generation center, the key generation center is used to generate first identity authentication information based on the entity's identifier, the symmetric key, and the second random number, determine the entity's identity authentication result based on the first identity authentication information and the entity's second identity authentication information, and in the case where the identity authentication result indicates that the identity authentication is passed, generate the authentication information based on the first random number key; generate the entity's public key based on the entity's identifier, the authentication information, and the public parameters of the key generation center.

[0018] In a possible implementation of the second aspect, the first random number key is generated based on a first random number, the key generation center is further used to generate an identity credential of the entity based on the authentication information, and the method further includes: generating a private key of the entity based on the identity credential and the first random number.

[0019] In a possible implementation of the second aspect, before sending the entity's identifier, the symmetric key, the second random number and the first random number key to the key generation center, the method also includes: generating the second identity authentication information based on the entity's identifier, the symmetric key, and the second random number; sending the second identity authentication information to the key generation center, and the key generation center is used to store the second identity authentication information.

[0020] In a possible implementation of the second aspect, the public parameters of the key generation center include an identifier of the key generation center and a second public key. Before sending the identifier of the entity, the symmetric key, the second random number and the first random number key to the key generation center, the method also includes: sending a third random number to the key generation center; obtaining a first signature from the key generation center, the first signature being generated by the key generation center based on the third random number; and obtaining the second public key based on the first signature.

[0021] In a third aspect, the present application provides a key generation method. The method is applied to a key generation center, and includes: receiving an entity's identifier, a symmetric key, a second random number, and a first random number key sent by the entity; generating first identity authentication information based on the entity's identifier, the symmetric key, and the second random number; determining the entity's identity authentication result based on the first identity authentication information and the second identity authentication information; in the case where the identity authentication result indicates that the identity authentication is passed, generating authentication information based on the first random number key; sending first information to the entity, the first information including the authentication information, and the entity is used to generate the entity's public key based on the authentication information, the entity's identifier, and the public parameters of the key generation center.

[0022] In a possible implementation of the third aspect, the public parameters of the key generation center include an identifier of the key generation center and a second public key, and the method further includes: receiving a third random number sent by the entity; generating a first signature based on the third random number, and the first signature includes the second public key.

[0023] In a possible implementation of the third aspect, before the receiving entity sends the entity's identifier, symmetric key, second random number and first random number key, the method also includes: receiving the second identity authentication information sent by the entity, the second identity authentication information being generated by the entity based on the entity's identifier, the symmetric key, and the second random number; and storing the second identity authentication information.

[0024] In a possible implementation of the third aspect, the first information also includes an identity credential of the entity, the first random number key is generated based on a first random number, and the method further includes: generating an identity credential of the entity based on the authentication information, and the entity is used to generate a private key of the entity based on the identity credential and the first random number.

[0025] In a fourth aspect, the present application provides an identity authentication device, which includes: a determination module and a verification module.

[0026] The determination module is used to obtain a verification request from the second entity, wherein the verification request includes an identifier of the second entity, an identifier of an organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity.

[0027] Among them, the verification module is used to determine the public parameters of the first key generation center according to the identifier of the organization to which the second entity belongs, the first key generation center is used to generate the authentication information of the second entity, and the public parameters are used to generate the public key of the second entity; the public key of the second entity is verified according to the identifier of the second entity, the authentication information of the second entity and the public parameters of the first key generation center to obtain the verification result of the second entity.

[0028] In a possible implementation of the fourth aspect, the public parameters of the first key generation center include an identifier and a public key of the first key generation center. The verification module is specifically used to: generate a first public key according to the identifier of the second entity, the identifier of the first key generation center, the public key of the first key generation center, and the authentication information of the second entity; and compare the first public key with the public key of the second entity to obtain a verification result of the second entity.

[0029] In a possible implementation of the fourth aspect, the verification module is further used to write an identifier of the organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity into a ledger of the blockchain system when the verification result of the second entity indicates a pass.

[0030] In a possible implementation of the fourth aspect, the determination module is also used to obtain a transaction request, which includes the client's identification, transaction information and transaction signature. The verification module is also used to obtain the identification of the organization to which the client belongs, the authentication information of the client and the public key of the client from the ledger of the blockchain system according to the identification of the client; determine the public parameters of the second key generation center according to the identification of the organization to which the client belongs, the second key generation center is used to generate the authentication information of the client, and the public parameters of the second key generation center are used to generate the public key of the client; verify the public key of the client according to the identification of the client, the authentication information of the client and the public parameters of the second key generation center to obtain the verification result of the client; in the case where the verification result of the client indicates passing, verify the transaction information according to the public key of the client and the transaction signature.

[0031] In a possible implementation of the fourth aspect, the transaction request also includes an identification of the endorsement node and an endorsement signature of the endorsement node. The verification module is also used to obtain the identification of the organization to which the endorsement node belongs, the authentication information of the endorsement node, and the public key of the endorsement node from the ledger of the blockchain system according to the identification of the endorsement node; determine the public parameters of the third key generation center according to the identification of the organization to which the endorsement node belongs, the third key generation center is used to generate the authentication information of the endorsement node, and the public parameters of the third key generation center are used to generate the public key of the endorsement node; verify the public key of the endorsement node according to the identification of the endorsement node, the authentication information of the endorsement node, and the public parameters of the third key generation center to obtain the verification result of the endorsement node.

[0032] In a possible implementation of the fourth aspect, the first entity and / or the second entity includes an Internet of Things (IoT) device.

[0033] In a fifth aspect, the present application also provides a key generation device, which includes: a determination module and a generation module.

[0034] The determination module is used to send the entity's identifier, the symmetric key, the second random number and the first random number key to the key generation center.

[0035] Among them, the generation module is used to obtain the authentication information of the entity from the key generation center, the key generation center is used to generate first identity authentication information based on the entity's identification, the symmetric key, and the second random number, determine the entity's identity authentication result based on the first identity authentication information and the entity's second identity authentication information, and in the case where the identity authentication result indicates that the identity authentication is passed, generate the authentication information based on the first random number key; generate the entity's public key based on the entity's identification, the authentication information, and the public parameters of the key generation center.

[0036] In a possible implementation of the fifth aspect, the first random number key is generated based on a first random number, the key generation center is further used to generate an identity credential of the entity based on the authentication information, and the generation module is further used to generate a private key of the entity based on the identity credential and the first random number.

[0037] In a possible implementation of the fifth aspect, before sending the entity's identifier, the symmetric key, the second random number and the first random number key to the key generation center, the generation module is also used to: generate the second identity authentication information based on the entity's identifier, the symmetric key, and the second random number; send the second identity authentication information to the key generation center, and the key generation center is used to store the second identity authentication information.

[0038] In a possible implementation of the fifth aspect, the public parameters of the key generation center include the identifier of the key generation center and the second public key, and before sending the identifier of the entity, the symmetric key, the second random number and the first random number key to the key generation center, the determination module is further used to: send a third random number to the key generation center. The generation module is also used to obtain a first signature from the key generation center, the first signature is generated by the key generation center based on the third random number; and obtain the second public key based on the first signature.

[0039] In a sixth aspect, the present application also provides a key generation device, which includes: a determination module and a generation module.

[0040] The determination module is used for receiving the entity's identifier, the symmetric key, the second random number and the first random number key sent by the entity.

[0041] Among them, the generation module is used to generate first identity authentication information based on the identifier of the entity, the symmetric key, and a second random number; determine the identity authentication result of the entity based on the first identity authentication information and the second identity authentication information; when the identity authentication result indicates that the identity authentication is passed, generate authentication information based on the first random number key; send first information to the entity, the first information includes the authentication information, and the entity is used to generate the public key of the entity based on the authentication information, the identifier of the entity and the public parameters of the key generation center.

[0042] In a possible implementation of the sixth aspect, the public parameters of the key generation center include an identifier of the key generation center and a second public key, and the determination module is further configured to: receive a third random number sent by the entity. The generation module is further configured to generate a first signature based on the third random number, wherein the first signature includes the second public key.

[0043] In a possible implementation of the sixth aspect, before the receiving entity sends the entity's identifier, symmetric key, second random number and first random number key, the determination module is also used to: receive the second identity authentication information sent by the entity, the second identity authentication information is generated by the entity based on the entity's identifier, the symmetric key, and the second random number; and store the second identity authentication information.

[0044] In a possible implementation of the sixth aspect, the first information also includes an identity credential of the entity, the first random number key is generated based on a first random number, and the generation module is further used to: generate the identity credential of the entity based on the authentication information, and the entity is used to generate a private key of the entity based on the identity credential and the first random number.

[0045] In a seventh aspect, the present application provides an entity based on blockchain technology. The entity includes: a processor and a memory, wherein the processor is used to execute a computer program stored in the memory to implement the method of the first aspect and / or any one of the optional implementations of the first aspect, or the method of the second aspect and / or any one of the optional implementations of the second aspect, or the method of the third aspect and / or any one of the optional implementations of the third aspect.

[0046] In an eighth aspect, the present application provides a blockchain system. The blockchain system includes: a plurality of entities as described in the seventh aspect.

[0047] In a ninth aspect, the present application provides a computer-readable storage medium. The computer-readable storage medium includes instructions, and when the instructions are executed on a computer, the computer implements the method of the first aspect and / or any optional implementation of the first aspect, or implements the method of the second aspect and / or any optional implementation of the second aspect, or implements the method of the third aspect and / or any optional implementation of the third aspect.

[0048] In the tenth aspect, the present application also provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to implement the method of the first aspect and / or any one of the optional implementations of the first aspect, or the method of the second aspect and / or any one of the optional implementations of the second aspect, or the method of the third aspect and / or any one of the optional implementations of the third aspect.

[0049] Any of the above-mentioned devices, computer storage media or computer program products are used to execute the method provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects of the corresponding schemes in the corresponding methods provided above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] Figure 1 It is a flow chart of a transaction verification method of a blockchain system in the related art;

[0051] Figure 2 This is a flow chart of an identity authentication method for a consortium chain system provided in an embodiment of the present application;

[0052] Figure 3a It is a schematic diagram of a node joining chain scenario in a consortium chain system provided in an embodiment of the present application;

[0053] Figure 3b It is a schematic diagram of a client registration scenario in a consortium chain system provided in an embodiment of the present application;

[0054] Figure 4 This embodiment of the present application provides a method based on Figure 2 A flow chart of a transaction verification method of the identity verification method shown;

[0055] Figure 5 is a flow chart of a key generation method provided in an embodiment of the present application;

[0056] Figure 6a This is a schematic diagram of key generation in a consortium chain system that uses organizations as granular management entities, provided in an embodiment of the present application;

[0057] Figure 6b This is a schematic diagram of key generation in a consortium chain system that does not manage entities at the organization granularity, provided in an embodiment of the present application;

[0058] Figure 7 This embodiment of the present application provides a method based on Figure 2 and Figure 4 A schematic diagram of the structure of the identity verification device of the method shown;

[0059] Figure 8 This embodiment of the present application provides a method based on Figure 5 A schematic structural diagram of a key generation device of the method shown;

[0060] Fig. 9 This embodiment of the present application provides a method based on Figure 7 and Figure 8 A schematic diagram of the structure of the alliance chain system of the device shown;

[0061] Fig.10 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0062] Fig.11 It is a structural diagram of a computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0063] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings.

[0064] In the description of the embodiments of the present application, words such as "exemplary", "for example" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary", "for example" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary", "for example" or "for example" is intended to present related concepts in a concrete way.

[0065] In the description of the embodiments of the present application, the term "and / or" is merely a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent: A exists alone, B exists alone, and A and B exist at the same time. In addition, unless otherwise specified, the term "multiple" means two or more. For example, multiple systems refers to two or more systems, and multiple screen terminals refers to two or more screen terminals.

[0066] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. The terms "include", "comprises", "has" and their variations all mean "including but not limited to", unless otherwise specifically emphasized.

[0067] Before introducing the embodiments of the present application, the nouns appearing in the embodiments of the present application are introduced below.

[0068] The blockchain system includes multiple clients and multiple nodes. The blockchain system can be divided into public chain, private chain and alliance chain according to the scope of the network. In some blockchain systems, multiple nodes can be divided into Figure 1 The endorsement node, sorting node, and submission node shown. When the client of the blockchain system needs to execute a transaction, it needs to submit the transaction to the endorsement node to obtain the endorsement signature of the endorsement node. The endorsement node is used to simulate the execution of the transaction submitted by the client, sign the execution result, and generate the endorsement signature; the sorting node is used to sort the received transactions and generate the transaction block based on the sorting result; the submission node is used to update the ledger of the blockchain system based on the transaction block to complete the transaction.

[0069] A consortium chain is a blockchain system maintained by multiple organizations. A consortium chain is a closed, restricted network. Entities of various organizations in the consortium chain can only join the consortium chain system and conduct transactions after being authorized and verified.

[0070] The consensus program is a program code used to implement the consensus mechanism in a blockchain system.

[0071] A key pair includes a public key (PK) and a secret key (SK). In encrypted communications, the private key is used to encrypt plaintext and generate ciphertext. The public key is used to decrypt ciphertext and obtain plaintext. For example, in a blockchain system, the client uses the client's private key to encrypt transaction information and generate a transaction signature; the endorsing node uses the client's public key to decrypt the transaction signature to verify the transaction signature. Similarly, the endorsing node uses the endorsing node's private key to encrypt the execution result and generate an endorsement signature; the sorting node uses the endorsing node's public key to decrypt the endorsement signature to verify the endorsement signature.

[0072] A pseudorandom function (PRF) is a function used to generate pseudorandom numbers. In cryptography, a PRF function can usually be used to generate a pseudorandom sequence. Specifically, a PRF function can accept a key K as input and use the key to generate a pseudorandom sequence, which can be used as a key for an encryption algorithm. The pseudorandom sequence is not a random number, and any computer can calculate the pseudorandom sequence based on the PRF function and the same input (including the key K).

[0073] Asymmetric encryption refers to encrypting plaintext based on an encoding (ENC) function and a private key to generate ciphertext. Correspondingly, the ciphertext needs to be decrypted based on a decoding (DEC) function corresponding to the ENC function and a public key corresponding to the private key to obtain the plaintext.

[0074] Symmetric encryption refers to encrypting plaintext based on a key (i.e., a symmetric key) to generate plaintext, and decrypting ciphertext based on the same key to obtain plaintext. Symmetric encryption algorithms based on advanced encryption standard--cipher-based message authentication code (AES-CMAC) and AES algorithms based on Galois / Counter Mode (GCM) can usually be used.

[0075] A digital certificate is an electronic document generated by a trusted third party based on the entity's identity information and used to verify the entity's identity. A trusted third party can generate an entity's digital certificate based on the entity's user identity information, public key, and the trusted third party's digital signature. After receiving the entity's user identity information and public key, the trusted third party will review the user identity information. After the review is passed, the trusted third party will use its own private key to sign the entity's user identity information and public key to obtain the digital signature.

[0076] The key generation center (KGC) is a trusted third-party service running on a computing device. Entities in the blockchain system can interact with the KGC to generate key pairs for the entity or assist the entity in generating key pairs. Each KGC can include two key pairs, which can be represented as public key PK1-private key SK1, and public key PK2-private key SK2. Among them, the public key PK1 and the private key SK1 can be used to encrypt and decrypt plaintext, and the public key PK2 and the private key SK2 can be used to generate the entity's key pair.

[0077] The key generator g is a public parameter of the key generation center. The key generator g can be a randomly selected reference point in the elliptic curve, which is used to generate the key. For example, a random number x can be randomly generated, and x can be multiplied by g as a multiple of g to obtain the corresponding key X. In this way, based on the security of the elliptic curve, it can be ensured that x cannot be derived when X is known, thereby ensuring the security of x.

[0078] In related technologies, the alliance chain system needs to authenticate the entity through the entity's digital certificate to ensure that the entity's identity is authentic and reliable to prevent identity forgery or impersonation.

[0079] by Figure 1 Taking the endorsement phase shown as an example, the transaction submitted by the client may include the client's identification, transaction information, the client's transaction signature, and the client's digital certificate.

[0080] After receiving the transaction, the endorsing node verifies the legitimacy of the client's digital certificate to determine whether the digital certificate is valid and whether it has been tampered with; if the client's digital certificate is legitimate, it indicates that the client's public key is legitimate. When the endorsing node determines that the digital certificate is legitimate, it extracts the client's public key from the digital certificate and verifies the transaction signature based on the public key.

[0081] by Figure 1 Taking the submission stage shown as an example, the transaction submitted by the client may include transaction information, the client's identification, the client's digital certificate, the client's transaction signature, as well as the endorsing node's identification, the endorsing node's digital certificate, and the endorsing node's endorsement signature.

[0082] After receiving the transaction, the sorting node needs to verify the legitimacy of the client's digital certificate and the endorsing node's digital certificate. If the verification is successful, the sorting node extracts the client's public key from the client's digital certificate, extracts the endorsing node's public key from the endorsing node's digital certificate, and then verifies the transaction signature based on the client's public key, and verifies the endorsement signature based on the endorsing node's public key.

[0083] From the above introduction, it can be seen that in the relevant technology, the entity needs to store digital certificates and carry digital certificates in transactions, and digital certificates will take up more storage space and communication bandwidth. Therefore, this solution is suitable for devices with abundant storage resources and communication resources, and cannot be applied to devices with limited storage resources and limited communication resources, such as Internet of Things (IoT) devices. IoT devices have different applications in different scenarios. Taking the agricultural scenario as an example, IoT devices can include environmental monitoring equipment, which can be used to monitor and collect environmental information. Taking the energy scenario as an example, IoT devices can include charging piles, which can be used to collect charging information.

[0084] To this end, an embodiment of the present application provides an identity authentication method that can solve the above problems.

[0085] In the identity authentication method provided in the embodiment of the present application, after receiving the verification request of the second entity, the first entity verifies the second entity public key according to the identifier of the second entity, the identifier of the organization to which the second entity belongs, and the authentication information of the second entity. In this way, during identity authentication, there is no need to transmit digital certificates between entities, which can save the communication resources of the entities. In addition, the entities do not need to store digital certificates, thereby saving the storage resources of the entities. Therefore, the application scenarios of the embodiments of the present application are more extensive, and can be applied to devices with limited storage resources and limited communication resources.

[0086] The first entity and the second entity mentioned above may include a client and / or a node. In the alliance chain system, the identity authentication method provided in the embodiment of the present application can be applied to the node entry scenario, the client registration scenario and / or the client transaction scenario, and is used to authenticate the node and / or the client. The identity authentication method provided in the embodiment of the present application is introduced below in conjunction with the accompanying drawings.

[0087] Figure 2 This is a flowchart of an identity authentication method provided in an embodiment of the present application. Figure 2 The method shown can be applied to the alliance chain system. Figure 2 As shown, the method may include S201-S204, and the method is executed by the first node in the alliance chain system.

[0088] In S201, the first node receives a verification request from a second entity in the alliance chain system. The verification request includes an identifier and identity information of the second entity. The identity information may include an identifier of an organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity.

[0089] The second entity can interact with the key generation center KGC corresponding to the organization to which it belongs to generate a key pair. The specific process can refer to the following Figure 5 The key generation method shown is not described here in detail. The authentication information B of the second entity is generated by the key generation center KGC during the process of the second entity interacting with the key generation center KGC corresponding to the organization to which it belongs to generate a key pair.

[0090] Specifically, the second entity may include a second node or a client.

[0091] In the case where the second entity is a second node, the verification request may include an inlink request. Taking the second node as node N as an example, Figure 3a As shown, node N interacts with the key generation center KGC corresponding to its organization to generate a key pair of node N, and then sends a link-in request to the first node in the alliance chain system. After receiving the link-in request, the first node executes S202 to authenticate node N.

[0092] In the case where the second entity is a client, the authentication request may include a registration request. Figure 3b As shown, after the client interacts with the key generation center KGC corresponding to the organization to which it belongs and generates the key pair of the client, it can send a registration request to the first node in the alliance chain system. After receiving the registration request, the first node executes S202 to authenticate the client.

[0093] In S202, the first node determines a public parameter of a first key generation center according to an identifier of an organization to which the second entity belongs.

[0094] The ledger of the alliance chain system can store the identification of different organizations and the public parameters of the key generation center KGC corresponding to them. The first node can obtain the public parameters of the first key generation center KGC corresponding to the identification of the organization to which the second entity belongs from the ledger of the alliance chain system according to the identification of the organization to which the second entity belongs.

[0095] The public parameters of the first key generation center include the identifier ID_KGC and the public key PK2 of the first key generation center.

[0096] In other embodiments, the verification request may also include the identification ID_KGC and public key PK2 of the key generation center KGC corresponding to the organization. In this case, the first node may obtain the public parameters of the key generation center corresponding to the organization to which the entity belongs by parsing the request. The mapping relationship between the public parameters of the organization to which each entity belongs and the key generation center KGC may not be stored in the account book of the alliance chain system, thereby reducing the occupancy of storage resources.

[0097] In S203, the first node verifies the public key of the second entity according to the identifier of the second entity, the authentication information of the second entity, and the public parameters of the first key generation center to obtain a verification result. The verification process may specifically include the following S2031-S2033.

[0098] S2031. The first node generates a first sequence T according to formula (1) based on the identification ID of the second entity, the authentication information B of the second entity, and the public parameters of the first key generation center.

[0099] T=Hash(ID||ID_KGC||B)·PK2 (1)

[0100] S2032. The first node generates a first public key based on the authentication information B and the first sequence T according to formula (2).

[0101] PK=B+T (2)

[0102] S2033. The first node performs identity authentication on the second entity by comparing the first public key with the public key of the second entity to obtain a verification result.

[0103] If the first public key is the same as the public key of the entity, the verification result indicates that the identity authentication of the second entity is passed; otherwise, the verification result indicates that the identity authentication of the second entity is not passed.

[0104] In the case where the verification result of node N indicates that the verification is passed, the first node can write the identity information of node N into the account book of the alliance chain system, and node N can join the alliance chain system. In the case where the verification result of the client indicates that the verification is passed, the first node can write the identity information of the client into the account book of the alliance chain system, and the client can complete the registration in the alliance chain system.

[0105] The above nodes and / or clients may include IoT devices in different application scenarios, such as charging piles in energy scenarios and / or environmental monitoring devices in agricultural scenarios. Figure 2When the method shown is applied to an IoT device, the IoT device does not need to transmit a digital certificate during identity authentication, thereby reducing the occupation of its communication resources. In addition, the IoT device does not need to store a digital certificate, thereby reducing the occupation of its storage resources.

[0106] Figure 4 This is a flow chart of a transaction verification method provided by an embodiment of the present application. The method can be applied to a consortium chain system and executed by a client, an endorsement node, a sorting node, and a submission node in the consortium chain system to verify transactions in the consortium chain system.

[0107] like Figure 4 As shown, the method may include S401-S406.

[0108] In S401, when a client needs to execute a transaction, it sends a transaction request T1 to one or more endorsement nodes in the alliance chain system for endorsement. The transaction request T1 includes the client's ID, transaction information, and transaction signature. The transaction signature is generated by the client using the client's private key to sign the transaction information.

[0109] Taking the energy scenario as an example, the client may include a charging pile. The charging pile may use the charging information within a period of time as transaction information and generate a transaction request T1. The charging information may include one or more information such as the charging time, charging power, and charging power of each car.

[0110] Taking the agricultural scenario as an example, the client may include an environmental monitoring device. The environmental monitoring device may use the monitored environmental information as transaction information and generate a transaction request T1. The environmental information may include indoor temperature, indoor humidity, soil temperature, soil humidity, and / or soil nutrient value.

[0111] In S402, the endorsement node receives the transaction request T1, parses the transaction request T1 to obtain the transaction information, the client's identification ID, and the client's transaction signature, and obtains the client's identity information from the account book of the alliance chain system according to the client's identification ID, and verifies the client based on the client's identity information. The verification process may specifically include the following S4021 to S4023. Among them, the client's identity information includes the identification of the organization to which the client belongs, and the client's authentication information B and public key.

[0112] S4021. The endorsement node determines the public parameters of the second key generation center based on the organization's identity in the identity information. The second key generation center is used to generate the client's authentication information. The public parameters of the second key generation center are used to generate the client's public key. The specific process of this step can refer to the above Figure 2 The introduction of S202 in will not be repeated here.

[0113] S4022. The endorsement node verifies the public key of the client according to the identification ID of the client, the authentication information B of the client, and the public parameters of the second key generation center. If the verification is successful, execute S4023. The verification process of this step can refer to the above-mentioned verification process. Figure 2 The detailed introduction of S203 is omitted here.

[0114] S4023. The endorsement node verifies the transaction information according to the public key and transaction signature of the client to determine the integrity and security of the transaction information. Specifically, the endorsement node decrypts the transaction signature using the first public key to obtain the first hash value in the transaction signature, and then calculates the second hash value based on the transaction information, and determines whether the transaction information has been tampered with by comparing the first hash value and the second hash value. If the first hash value and the second hash value are the same, it means that the transaction information verification has passed and the transaction information has not been tampered with; otherwise, it means that the transaction information verification has not passed and the transaction information has been tampered with. In the case of determining that the transaction signature verification has passed, the endorsement node executes S403. Among them, the first hash value is generated by the client according to the transaction information.

[0115] In S403, the endorsement node simulates the execution of the transaction request T1, and signs the execution result of the transaction request T1 using the private key of the endorsement node to generate an endorsement signature, and sends the endorsement signature to the client.

[0116] Taking the energy scenario as an example, the smart contract SC1 can be pre-set in the alliance chain system. Transaction request T1 can be used to call the smart contract SC1 to request fee settlement. After receiving the transaction request T1 from the charging pile, the endorsement node calls the smart contract SC1 to simulate the execution of the transaction request T1, generates fee information (i.e., the execution result of T1) based on the charging information and the fee rules in the smart contract SC1, and then generates an endorsement signature based on the fee information.

[0117] Taking the agricultural scenario as an example, the smart contract SC2 can be pre-set in the alliance chain system. The transaction request T1 is used to call the smart contract SC2 to request irrigation operations. After the endorsement node receives the transaction request T1 from the environmental monitoring device, it calls the smart contract SC2 to simulate the execution of the transaction request T1, generates irrigation information (i.e., the execution result of T1) based on the environmental information and the irrigation conditions in the smart contract SC2, and then generates an endorsement signature based on the irrigation information. Among them, the irrigation information may include water volume, nutrient content, irrigation duration, etc.

[0118] In S404, the client receives the endorsement signature of the endorsement node, generates a transaction request T2 after receiving a certain number of endorsement signatures, and then sends the transaction request T2 to the sorting node. The transaction request T2 includes the client's ID, transaction information, transaction signature, the endorsement node's ID and its endorsement signature.

[0119] In S405, the sorting node receives a transaction request T2 from one or more clients, parses the transaction request T2 to obtain the client's identification ID, transaction information, transaction signature, the identification of the endorsing node and its endorsement signature, obtains the identity information of the client and the identity information of the endorsing node from the ledger of the alliance chain system according to the identification ID of the client and the identification of the endorsing node, and verifies the public key of the client and the public key of the endorsing node based on the identity information of the client and the identity information of the endorsing node, respectively.

[0120] When the public key verification of the client and the endorsement node is successful, the transaction information is verified based on the client's public key and transaction signature. When the transaction information of each client is verified, the transaction requests T2 of each client are sorted, and a transaction block is generated based on the sorting result, and the transaction block and the signature corresponding to the transaction block are sent to the submission node. Among them, the signature corresponding to the transaction block is generated by the sorting node using its own private key to sign the transaction block.

[0121] The process of the sorting node verifying the public keys of the client and the endorsing node is the same as the process of the endorsing node verifying the client, and can be performed with reference to S4021 and S4022 above, which will not be repeated here.

[0122] In S406, the submitting node receives the transaction block and verifies the transaction block. After the transaction block is verified, the ledger of the alliance chain system is updated based on the transaction block. Specifically, the verification of the transaction block includes authenticating the client and verifying the transaction information, authenticating the endorsement node based on the identity information of the endorsement node, and verifying the sorting node based on the identity information of the sorting node. The specific process can refer to the above S4021 and S4022, which will not be repeated here.

[0123] The following introduces a key generation method for generating key pairs for entities in a consortium chain system.

[0124] Figure 5 : is a flowchart of a key generation method provided in an embodiment of the present application. Figure 5 As shown, the method may include the following S501-S507. Each step is introduced below.

[0125] In S501, the entity generates a random number r through a random number generator (RNG), and sends the random number r to a key generation center KGC.

[0126] In this embodiment, after generating the random number r, the entity can determine the KGC corresponding to the organization based on the organization to which the entity corresponds, and then send the random number r to the KGC corresponding to the organization. In a consortium chain system that manages entity identities at the organization granularity, one organization can correspond to one KGC, and one KGC can be responsible for key generation for entities in one or more organizations.

[0127] In some embodiments, if the alliance chain system manages entity identification at the organization level, such as Figure 6a As shown, before S501, the entity can send an identity request to the organization administrator in the organization to which it belongs. The organization administrator signs the identity request using the private key, generates an identity signature S3, and sends it to the entity. After receiving the identity signature S3 of the organization administrator, the entity sends the signature S3 and the random number r to the key generation center KGC.

[0128] In some embodiments, if the alliance chain system does not manage entity identification at the organization level, such as Figure 6b As shown, before S501, the entity can send an identity request to the global administrator of the alliance chain system. The global administrator uses the private key to sign according to the identity request, generates an identity signature S3 and sends it to the entity. After the entity receives the identity signature S3 of the global administrator, it sends the signature S3 and the random number r to the key generation center KGC.

[0129] In the above two cases, after receiving the signature S3, the key generation center verifies the signature S3 according to the public key of the global administrator or the private key of the organization administrator, and executes S502 if the verification passes.

[0130] The above-mentioned identity request may include an entity identification ID, and the entity identification ID may include a user's mobile phone number, or an email address, a communication address, or a service identification corresponding to the entity.

[0131] In S502, after receiving the random number r, KGC uses SK1 to sign the random number r, public key PK1, and public key PK2, thereby generating a first signature S1. The first signature S1 can be specifically generated according to formula (3).

[0132] S1=sign(SK1,r||PK1||PK2) (3)

[0133] In formula (3), the sign function can be used to generate a digital signature, "||" represents a concatenation symbol, and r||PK1||PK2 represents a string obtained by concatenating r, PK1, and PK2.

[0134] In S503, the KGC sends the first signature S1, the public key PK1, and the public key PK2 to the entity.

[0135] In S504, the entity receives the first signature S1, the public key PK1, and the public key PK2, and verifies the public key PK1 and the public key PK2 based on the first signature S1.

[0136] In S505, after the PK1 and PK2 are verified, the entity encrypts the initial identity information of the entity based on PK1, generates a first ciphertext C1, and sends the ciphertext C1 to the KGC. The initial identity information may include the entity's identification ID, a random number R, a symmetric key n, and a first random number key A. The ciphertext C1 may be specifically generated according to formula (4).

[0137] C1=Enc(PK1,ID||R||n||A) (4)

[0138] In formula (4), Enc is an asymmetric encryption function, and ID||R||n||A represents a string obtained by concatenating the entity's identification ID, random number R, symmetric key n, and first random number key A. The entity can encrypt the random number R based on a fixed key K in advance to generate a symmetric key n. The symmetric key n can be specifically generated according to formula (5). The first random number key A can be generated based on the first random number a and the key generator g of KGC, that is, A=a·g.

[0139] n=PRF(K,R) (5)

[0140] In formula (5), PRF is a pseudo-random sequence generation function.

[0141] It should be noted that the plain text used to generate the ciphertext C1 and the symmetric key n is not limited to the information shown in this embodiment. In other embodiments, other information may be added based on the information shown in this embodiment, such as adding a fixed string or a message verification code, to increase the security of communication.

[0142] In S506, KGC receives the first ciphertext C1, decrypts the ciphertext C1 using the private key PK1, generates a second ciphertext C2 based on the entity identification ID, random number R, symmetric key n, and first random number key A in the ciphertext C1, and then sends the second ciphertext C2 to the entity. The ciphertext C2 can be generated specifically through the following four steps S5061-S5064.

[0143] S5061. Encrypt the entity's identification ID and random number R based on the symmetric key n to generate the entity's first registration information AuthValue1, and then perform identity authentication based on the first registration information AuthValue1 and the pre-stored second registration information AuthValue2. Before S506, the entity pre-encrypts the entity's identification ID and random number R based on the symmetric key n to generate the second registration information AuthValue2, and uses the public key PK1 of KGC to encrypt the second registration information AuthValue2 to generate a third ciphertext, and sends the third ciphertext to KGC. After receiving the third ciphertext, KGC uses the private key SK1 to decrypt the third ciphertext to obtain the second registration information AuthValue2, and stores the second registration information AuthValue2. In other words, AuthValue1 and AuthValue2 are generated in the same way, but the difference lies in the different executors. AuthValue1 and AuthValue2 can be specifically generated according to formula (6).

[0144] AuthenValue=AES-CMAC(n,ID||R"MAC") (6)

[0145] In formula (6), AES-CMAC is a symmetric encryption function, and MAC represents a message authentication code.

[0146] S5062. If the verification is successful, the KGC generates the entity's authentication information B based on the first random number key A and the key generator g of the KGC. The authentication information B can be specifically generated according to formula (7).

[0147] B=b·g+A (7)

[0148] In formula (7), b represents a random number, and g represents a key generator of KGC.

[0149] S5063. KGC generates the entity's identity certificate S2 based on the private key SK2, the authentication information B, the random number b, the entity's identification ID, and the KGC's identification ID_KGC. The identity certificate S2 can be specifically generated according to formula (8).

[0150] S2=F2(SK1, b, B, ID, ID_KGC)

[0151] =b+Hash(ID|| ID_KGC||B)·SK2 (8)

[0152] In formula (8), F2 represents a function for generating identity credentials, Hash represents a hash function, and ID||ID_KGC||B represents a string obtained by concatenating the entity's identifier ID, the KGC's identifier ID_KGC, and the authentication information B.

[0153] S5064. KGC encrypts the entity ID based on the symmetric key n, the KGC ID_KGC, the first random key A, the authentication information B, and the identity certificate S2 to generate a second ciphertext C2. The ciphertext C2 can be specifically generated according to formula (9).

[0154] C2=AES-GCM(n,ID||ID_KGC||A||B||S2) (9)

[0155] In S507, the entity receives the second ciphertext C2, uses the symmetric key n to parse the ciphertext C2, obtains the entity's identification ID, the KGC's identification ID_KGC, the first random number key A, the authentication information B, and the identity certificate S2, and then generates the entity's public key PK and private key SK based on the authentication information B and the identity certificate S2. The entity's public key PK and private key SK can be specifically generated according to the following three steps S5071-S5073.

[0156] S5071. The entity generates a first sequence based on the entity's identification ID, the KGC's identification ID_KGC, the authentication information B and the KGC's public key PK2. The sequence T can be specifically generated according to formula (10).

[0157] T=Hash(ID||ID_KGC||B)·PK2 (10)

[0158] S5072. The entity calculates the second sequence M based on the identity credential S2 and the key generator g, and calculates the third sequence N based on the first sequence T, the authentication information B and the first random number key A, and compares the second sequence M with the third sequence. If the second sequence M and the third sequence N are consistent, S5073 is executed, otherwise the key generation process ends. The second sequence M and the third sequence N can be specifically generated according to formula (11).

[0159] M = S2·g, N = T + BA (11)

[0160] S5073. The entity generates a public key PK of the entity based on the authentication information B and the first sequence T, and generates a private key SK based on the first random number a and the identity certificate S2. The public key PK and private key SK of the entity can be specifically generated according to formula (12).

[0161] PK=B+T,SK=a+S2 (12)

[0162] In the embodiment of the present application, the clients and nodes in the alliance chain system can all follow the above Figure 5 The method steps in the illustrated embodiment generate respective key pairs.

[0163] based on Figure 2 and Figure 4 The method shown, the embodiment of the present application provides an identity authentication device. The identity authentication device can be applied to the nodes of the alliance chain system to authenticate other nodes or clients. For example, it can be applied to the endorsement node, sorting node, and submission node in the alliance chain system. In the scenario where identity authentication is required between clients, the identity authentication device can also be applied to the client to authenticate other clients.

[0164] Figure 7 Schematic diagram of the structure of an identity verification device provided by an embodiment of the present application. Figure 7 As shown, the identity authentication device 700 may include a determination module 701 and a verification module 702 .

[0165] The determination module 701 is used to obtain a verification request from the second entity, the verification request includes the identifier of the second entity, the identifier of the organization to which the second entity belongs, the authentication information of the second entity, and the public key of the second entity. The verification module 702 is used to determine the public parameters of the first key generation center according to the identifier of the organization to which the second entity belongs, the first key generation center is used to generate the authentication information of the second entity, and the public parameters are used to generate the public key of the second entity; the public key of the second entity is verified according to the identifier of the second entity, the authentication information of the second entity, and the public parameters of the first key generation center to obtain the verification result of the second entity.

[0166] Among them, the determination module 701 is also used to obtain a transaction request, which includes the client's identification, transaction information and transaction signature. The verification module 702 is also used to obtain the identification of the organization to which the client belongs, the authentication information of the client and the public key of the client from the account book of the blockchain system according to the identification of the client; determine the public parameters of the second key generation center according to the identification of the organization to which the client belongs; verify the public key of the client according to the identification of the client, the authentication information of the client and the public parameters of the second key generation center to obtain the verification result of the client; in the case where the verification result of the client indicates passing, verify the transaction information according to the public key of the client and the transaction signature.

[0167] Among them, the verification module 702 is also used to obtain the identifier of the organization to which the endorsement node belongs, the authentication information of the endorsement node and the public key of the endorsement node from the ledger of the blockchain system according to the identifier of the endorsement node in the transaction request; determine the public parameters of the third key generation center according to the identifier of the organization to which the endorsement node belongs; verify the public key of the endorsement node according to the identifier of the endorsement node, the authentication information of the endorsement node and the public parameters of the third key generation center to obtain the verification result of the endorsement node.

[0168] It should be noted that Figure 7 The identity authentication device 700 provided in the illustrated embodiment only uses the division of the above-mentioned functional modules as an example when executing the identity authentication method. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Figure 2 and Figure 4 The method embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.

[0169] based on Figure 5 The method shown, an embodiment of the present application provides a key generation device.

[0170] Figure 8 A schematic diagram of the structure of a key generation device 810 and a key generation device 820 provided in an embodiment of the present application.

[0171] like Figure 8 As shown, the key generation device 810 can be applied to entities in the alliance chain system. The key generation device 810 includes: a determination module 811 and a generation module 812.

[0172] The determination module 811 is used to send the entity's identifier, the symmetric key, the second random number and the first random number key to the key generation center.

[0173] Among them, the generation module 812 is used to obtain the authentication information of the entity from the key generation center, the key generation center is used to generate first identity authentication information based on the entity's identification, the symmetric key, and the second random number, determine the entity's identity authentication result based on the first identity authentication information and the entity's second identity authentication information, and when the identity authentication result indicates that the identity authentication is passed, generate the authentication information based on the first random number key; generate the entity's public key based on the entity's identification, the authentication information, and the public parameters of the key generation center.

[0174] like Figure 8As shown, the key generation device 820 can be applied to a key generation center. The key generation device 820 includes: a determination module 821 and a generation module 822.

[0175] The determination module 821 is used for receiving the entity's identifier, the symmetric key, the second random number and the first random number key sent by the entity.

[0176] Among them, the generation module 822 is used to generate first identity authentication information based on the identifier of the entity, the symmetric key, and a second random number; determine the identity authentication result of the entity based on the first identity authentication information and the second identity authentication information; when the identity authentication result indicates that the identity authentication is passed, generate authentication information based on the first random number key; send first information to the entity, the first information includes the authentication information, and the entity is used to generate the public key of the entity based on the authentication information, the identifier of the entity and the public parameters of the key generation center.

[0177] It should be noted that Figure 8 The key generation device 810 and the key generation device 820 provided in the illustrated embodiment only use the division of the above-mentioned functional modules as an example when executing the key generation method. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the computing device provided in the above embodiment and Figure 5 The method embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.

[0178] based on Figure 7 and Figure 8 The device shown, an embodiment of the present application provides a consortium chain system.

[0179] Fig. 9 is a schematic diagram of the structure of a consortium chain system 900 provided in an embodiment of the present application. The consortium chain system 900 includes multiple entities, such as Fig. 9 As shown, the multiple entities may include an endorsement node 901, an ordering node 902, a submission node 903, and a client 904. The above-mentioned Figure 7 The authentication device shown and / or Figure 8 It should be noted that the number of nodes and clients of various types can be multiple. For convenience of representation, Fig. 9 Only one endorsement node, one ordering node, one commit node, and one client are shown.

[0180] Fig.10It is a schematic diagram of the hardware structure of a computing device 1000 provided in an embodiment of the present application.

[0181] The computing device 1000 may include the client, endorsement node, ordering node, submission node or key generation center device in the above embodiments. Fig.10 The computing device 1000 includes a processor 1001, a memory 1002, a communication interface 1003, and a bus 1004. The processor 1001, the memory 1002, and the communication interface 1003 are connected to each other via the bus 1004. The processor 1001, the memory 1002, and the communication interface 1003 may also be connected in other connection modes besides the bus 1004.

[0182] The processor 1001 may be a general-purpose processor, which may be a processor that performs specific steps and / or operations by reading and executing the contents stored in a memory (e.g., the memory 1002). For example, the general-purpose processor may be a central processing unit (CPU). The processor 1001 may include at least one circuit to perform Figure 2 , Figure 4 , and / or Figure 5 All or part of the steps of the method shown. The processor 1001 may include one or more cores.

[0183] The memory 1002 may be various types of storage media, such as random access memory (RAM), read-only memory (ROM), non-volatile RAM (NVRAM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, optical storage, hard disk, etc. Fig. 9 As shown, when the computing device is an endorsement node, a sorting node, or a submission node, the memory 1002 can be specifically used to store the program corresponding to the above-mentioned identity authentication device and / or the program corresponding to the key generation device to implement the above-mentioned Figure 2 , Figure 4 , and / or Figure 5 All or part of the steps of the method shown.

[0184] The communication interface 1003 includes an input / output (I / O) interface, a physical interface, and a logical interface, etc., which are used to interconnect devices within the computing device 1000, and an interface for interconnecting the computing device 1000 with other devices (such as other computing devices or user devices). The physical interface can be an Ethernet interface, a fiber optic interface, an ATM interface, etc.

[0185] The bus 1004 may be any type of communication bus for interconnecting the processor 1001 , the memory 1002 , and the communication interface 1003 , such as a system bus.

[0186] The above devices may be arranged on independent chips, or at least partially or completely on the same chip. Whether to arrange each device independently on different chips or to integrate them on one or more chips often depends on the needs of product design. The embodiments of the present application do not limit the specific implementation form of the above devices. Fig.10 The computing device 1000 shown is merely exemplary. During implementation, the computing device 1000 may also include other components, which are not listed one by one in this article.

[0187] The present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server, such as a central server, an edge server, or a local server in a local data center. Fig.11 As shown, the computing device cluster includes at least one Fig.10 Computing device 1000 is shown.

[0188] In some possible implementations, the memory 1002 of one or more computing devices 1000 in the computing device cluster may also store the memory 1002 for executing the above Figure 2 , Figure 4 , and / or Figure 5 In other words, a combination of one or more computing devices 1000 can jointly execute instructions for performing the above-mentioned Figure 2 , Figure 4 , and / or Figure 5 The method shown.

[0189] It should be noted that the memory 1002 in different computing devices 1000 in the computing device cluster may store different instructions, which are respectively used to execute part of the functions of the identity authentication device and / or the key generation device. That is, the instructions stored in the memory 1002 in different computing devices 1000 may implement the functions of one or more modules in the identity authentication device and / or the key generation device.

[0190] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network, etc. Specifically, the network is connected via a communication interface in each computing device.

[0191] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.

[0192] It is understood that the various numerical numbers involved in the embodiments of the present application are only for the convenience of description and are not used to limit the scope of the embodiments of the present application. It should be understood that in the embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0193] The specific implementation methods described above further illustrate the purpose, technical solutions and beneficial effects of the present application in detail. It should be understood that the above description is only a specific implementation method of the present invention and is not intended to limit the scope of protection of the present application. Any modifications, equivalent substitutions, improvements, etc. made on the basis of the technical solutions of the present application should be included in the scope of protection of the present application.

Claims

1. An identity authentication method based on blockchain technology, characterized in that: The method is applied to a first entity, and the method comprises: Obtaining a verification request from a second entity, the verification request including an identifier of the second entity, an identifier of an organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity; Determining, according to the identifier of the organization to which the second entity belongs, a public parameter of a first key generation center, the first key generation center being used to generate authentication information of the second entity, and the public parameter of the first key generation center being used to generate a public key of the second entity; The public key of the second entity is verified according to the identifier of the second entity, the authentication information of the second entity and the public parameters of the first key generation center to obtain a verification result of the second entity.

2. The method according to claim 1, characterized in that The public parameters of the first key generation center include an identifier and a public key of the first key generation center, and the public key of the second entity is verified according to the identifier of the second entity, the authentication information of the second entity, and the public parameters of the first key generation center to obtain a verification result of the second entity, including: generating a first public key according to the identifier of the second entity, the identifier of the first key generation center, the public key of the first key generation center, and the authentication information of the second entity; The first public key is compared with the public key of the second entity to obtain a verification result of the second entity.

3. The method according to claim 1 or 2, characterized in that: The method further comprises: In the case where the verification result of the second entity indicates pass, the identifier of the organization to which the second entity belongs, the authentication information of the second entity, and the public key of the second entity are written into the ledger of the blockchain system.

4. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: Obtaining a transaction request, wherein the transaction request includes a client identifier, transaction information, and a transaction signature; According to the identifier of the client, obtain the identifier of the organization to which the client belongs, the authentication information of the client, and the public key of the client from the ledger of the blockchain system; Determining a public parameter of a second key generation center according to an identifier of the organization to which the client belongs, the second key generation center being used to generate authentication information of the client, and the public parameter of the second key generation center being used to generate a public key of the client; Verifying the public key of the client according to the identifier of the client, the authentication information of the client and the public parameters of the second key generation center to obtain a verification result of the client; In the case where the verification result of the client indicates pass, the transaction information is verified according to the public key of the client and the transaction signature.

5. The method according to claim 4, characterized in that The transaction request also includes an identifier of the endorsing node and an endorsement signature of the endorsing node. The method further includes: According to the identifier of the endorsement node, obtain the identifier of the organization to which the endorsement node belongs, the authentication information of the endorsement node, and the public key of the endorsement node from the ledger of the blockchain system; Determining a public parameter of a third key generation center according to an identifier of the organization to which the endorsement node belongs, the third key generation center is used to generate authentication information of the endorsement node, and the public parameter of the third key generation center is used to generate a public key of the endorsement node; The public key of the endorsement node is verified according to the identifier of the endorsement node, the authentication information of the endorsement node and the public parameters of the third key generation center to obtain a verification result of the endorsement node.

6. The method according to any one of claims 1 to 5, characterized in that: The first entity and / or the second entity comprises an Internet of Things (IoT) device.

7. A key generation method, characterized in that: Applied to an entity, the method comprises: Sending the entity's identifier, the symmetric key, the second random number, and the first random number key to a key generation center; Acquire authentication information of the entity from the key generation center, the key generation center being used to generate first identity authentication information based on the identifier of the entity, the symmetric key, and the second random number, determine an identity authentication result of the entity based on the first identity authentication information and the second identity authentication information of the entity, and generate the authentication information based on the first random number key when the identity authentication result indicates that the identity authentication is passed; A public key of the entity is generated based on the identifier of the entity, the authentication information, and a public parameter of the key generation center.

8. The method according to claim 7, characterized in that The first random number key is generated based on a first random number, the key generation center is further used to generate an identity credential of the entity based on the authentication information, and the method further includes: A private key of the entity is generated based on the identity credential and the first random number.

9. The method according to claim 7 or 8, characterized in that: Before sending the entity identifier, the symmetric key, the second random number and the first random number key to the key generation center, the method further includes: Generate the second identity authentication information based on the identifier of the entity, the symmetric key, and the second random number; The second identity authentication information is sent to the key generation center, and the key generation center is used to store the second identity authentication information.

10. The method according to any one of claims 7 to 9, characterized in that: The public parameters of the key generation center include the identifier of the key generation center and the second public key. Before sending the identifier of the entity, the symmetric key, the second random number and the first random number key to the key generation center, the method further includes: Sending a third random number to the key generation center; Obtain a first signature from the key generation center, where the first signature is generated by the key generation center based on the third random number; The second public key is obtained based on the first signature.

11. A key generation method, characterized in that: Applied to a key generation center, the method comprises: Receiving the entity's identifier, the symmetric key, the second random number, and the first random number key sent by the entity; Generate first identity authentication information based on the identifier of the entity, the symmetric key, and a second random number; Determining an identity authentication result of the entity based on the first identity authentication information and the second identity authentication information; In a case where the identity authentication result indicates that the identity authentication is passed, generating authentication information based on the first random number key; First information is sent to the entity, where the first information includes the authentication information, and the entity is used to generate a public key of the entity based on the authentication information, an identifier of the entity, and a public parameter of the key generation center.

12. The method according to claim 11, characterized in that The public parameters of the key generation center include the identifier of the key generation center and the second public key, and the method further includes: receiving a third random number sent by the entity; A first signature is generated based on the third random number, where the first signature includes the second public key.

13. The method according to claim 11 or 12, characterized in that: Before the receiving entity sends the identifier of the entity, the symmetric key, the second random number and the first random number key, the method further includes: receiving the second identity authentication information sent by the entity, where the second identity authentication information is generated by the entity based on the identifier of the entity, the symmetric key, and the second random number; The second identity authentication information is stored.

14. The method according to any one of claims 11 to 13, characterized in that: The first information also includes an identity credential of the entity, the first random number key is generated based on a first random number, and the method further includes: An identity credential of the entity is generated based on the authentication information, and the entity is used to generate a private key of the entity based on the identity credential and the first random number.

15. An identity verification device based on blockchain technology, characterized in that: The identity verification device comprises: a determination module, configured to obtain a verification request from a second entity, wherein the verification request includes an identifier of the second entity, an identifier of an organization to which the second entity belongs, authentication information of the second entity, and a public key of the second entity; A verification module is used to determine the public parameters of a first key generation center based on the identifier of the organization to which the second entity belongs, the first key generation center is used to generate authentication information of the second entity, the public parameters of the first key generation center are used to generate a public key of the second entity, and verify the public key of the second entity based on the identifier of the second entity, the authentication information of the second entity and the public parameters of the first key generation center to obtain a verification result of the second entity.

16. The device according to claim 15, characterized in that The public parameters of the first key generation center include an identifier and a public key of the first key generation center, and the public key of the second entity is verified according to the identifier of the second entity, the authentication information of the second entity, and the public parameters of the first key generation center to obtain a verification result of the second entity, including: generating a first public key according to the identifier of the second entity, the identifier of the first key generation center, the public key of the first key generation center, and the authentication information of the second entity; The first public key is compared with the public key of the second entity to obtain a verification result of the second entity.

17. The device according to claim 15 or 16, characterized in that The verification module is also used for: In the case where the verification result of the second entity indicates pass, the identifier of the organization to which the second entity belongs, the authentication information of the second entity, and the public key of the second entity are written into the ledger of the blockchain system.

18. The device according to any one of claims 15 to 17, characterized in that: The determination module is further used to: obtain a transaction request, wherein the transaction request includes a client identifier, transaction information, and a transaction signature; The verification module is also used to obtain the identification of the organization to which the client belongs, the authentication information of the client and the public key of the client from the ledger of the blockchain system according to the identification of the client, determine the public parameters of the second key generation center according to the identification of the organization to which the client belongs, the second key generation center is used to generate the authentication information of the client, the public parameters of the second key generation center are used to generate the public key of the client, verify the public key of the client according to the identification of the client, the authentication information of the client and the public parameters of the second key generation center to obtain the verification result of the client, and when the verification result of the client indicates pass, verify the transaction information according to the public key of the client and the transaction signature.

19. The device according to claim 18, characterized in that The transaction request also includes an identifier of the endorsement node and an endorsement signature of the endorsement node. The verification module is further used to: obtain, from the ledger of the blockchain system, the identifier of the organization to which the endorsement node belongs, the authentication information of the endorsement node, and the public key of the endorsement node according to the identifier of the endorsement node; determine the public parameters of a third key generation center according to the identifier of the organization to which the endorsement node belongs, the third key generation center is used to generate the authentication information of the endorsement node, the public parameters of the third key generation center are used to generate the public key of the endorsement node, and verify the public key of the endorsement node according to the identifier of the endorsement node, the authentication information of the endorsement node, and the public parameters of the third key generation center to obtain a verification result of the endorsement node.

20. The device according to any one of claims 15 to 19, characterized in that The first entity and / or the second entity comprises an Internet of Things (IoT) device.

21. A key generation device, characterized in that: The key generating device comprises: A determination module, configured to send the entity's identifier, the symmetric key, the second random number and the first random number key to a key generation center; A generation module is used to obtain the authentication information of the entity from the key generation center, and generate the public key of the entity based on the identifier of the entity, the authentication information, and the public parameters of the key generation center, wherein the key generation center is used to generate first identity authentication information based on the identifier of the entity, the symmetric key, and a second random number, determine the identity authentication result of the entity based on the first identity authentication information and the second identity authentication information of the entity, and in the case where the identity authentication result indicates that the identity authentication is passed, generate the authentication information based on the first random number key.

22. A key generation device, characterized in that: The key generating device comprises: A determination module, configured to receive an identifier of the entity, a symmetric key, a second random number, and a first random number key sent by the entity; A generation module is used to generate first identity authentication information based on the entity's identifier, the symmetric key, and a second random number, determine the entity's identity authentication result based on the first identity authentication information and the second identity authentication information, and in the case where the identity authentication result indicates that the identity authentication is passed, generate authentication information based on the first random number key, send first information to the entity, the first information including the authentication information, and the entity is used to generate the entity's public key based on the authentication information, the entity's identifier and the public parameters of the key generation center.

23. An entity based on blockchain technology, characterized in that: include: A processor and a memory, wherein the processor is configured to execute a computer program stored in the memory to implement the method described in any one of claims 1 to 6, or to implement the method described in any one of claims 7 to 10, or to implement the method described in any one of claims 11 to 14.

24. A computer-readable storage medium, characterized in that: The method comprises instructions, which, when executed on a computer, enable the computer to execute the method according to any one of claims 1 to 6, or implement the method according to any one of claims 7 to 10, or implement the method according to any one of claims 11 to 14.

25. A computer program product comprising instructions, characterized in that When the instructions are executed on a computer, the computer is enabled to execute the method according to any one of claims 1 to 6, or implement the method according to any one of claims 7 to 10, or implement the method according to any one of claims 11 to 14.