A blockchain-enabled industrial Internet of Things authentication and key negotiation method
By using non-interactive zero-knowledge proof and blockchain technology in IIoT, D2D communication security issues in IIoT are solved, cross-domain authentication and key negotiation are realized, and device privacy and data sharing are guaranteed.
Patent Information
- Application Number
- CN202211325364.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-27
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2042-10-27
AI Technical Summary
The wireless transmission of device-to-device (D2D) communications in the Industrial Internet of Things (IIoT) leads to security problems, especially in the environment of limited device resources and cross-domain trust, making it difficult to achieve efficient and secure authentication and data sharing.
Using non-interactive zero-knowledge proof (NIZKP) technology combined with distributed blockchain, cross-domain authentication and key negotiation, guarantee device identity privacy, and identity keys are performed through attribute management center, domain management nodes and blockchain networks Management and access control.
It realizes efficient and secure cross-domain data sharing and key negotiation in the IIoT environment, protects device privacy, solves trust problems, and improves communication security.
Smart Images

Figure CN116015706B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of information security technology, and specifically relates to a blockchain-enabled industrial Internet of Things authentication and key negotiation method. Background Art
[0002] Industrial Internet of Things (IIoT) is becoming a universal paradigm due to the ubiquitous application of high-performance computers, smart embedded devices, and 5G communications. IIoT is the product of the convergence of various technologies, among which device-to-device (D2D) communication is the core technology that drives industrial progress. Unlike server-to-device communication, which usually transmits big data, D2D communication focuses on the transmission of small data. Unfortunately, such small, frequent, and wireless-dependent communications may cause serious security issues. In addition, compared with other IoT systems, IIoT not only needs to connect multiple subnets for communication to complete efficient production, but more importantly, the leakage of its sensitive data and improper data use may cause life-threatening consequences in addition to possible economic losses. Therefore, effective authentication and access control (AKA) is crucial to IIoT systems.
[0003] Non-interactive zero-knowledge proof (NIZKP) or zero-knowledge proof (ZKP) can achieve privacy-preserving identity authentication. Some schemes that use ZKP to complete authentication between devices and management nodes do not take into account limited device resources and cross-domain trust issues. There are still some difficulties in using ZKP to implement D2D authentication.
[0004] Compared with traditional industrial networks that rely on reliable wired networks, the large number of embedded devices in IIoT makes wireless communication increasingly important, which brings more security risks and threats. For example, plaintext transmission on wireless channels may be eavesdropped by malicious users, resulting in sensitive data leakage. On the other hand, IIoT contains devices from different resources in different trust domains, such as servers, gateways, sensors, etc., which leads to various communication types in IIoT. Different kinds of protocols are used for different communication types.
[0005] There are many feasible solutions for D2S authentication, and we consider a more complex case, namely cross-domain authentication. Considering the particularity of IIoT, designing a practical and efficient authentication scheme to ensure communication security faces the following difficulties. First, device resources are limited. Since most underlying IoT devices do not have sufficient computing and storage resources, even with high security, complex authentication protocols cannot be directly applied to feasible authentication. Second, devices are in different trust domains, and inter-domain communication cannot rely on a centralized trust server. Finally, device privacy is an important prerequisite for defending against attacks and achieving secure data sharing.
[0006] Blockchain is designed as a distributed, traceable, and tamper-proof technology that is used to achieve trustless authentication between different domains. In addition, authentication is only part of the preparation for secure communication and data exchange, and more functions such as access control and key agreement issues also need to be considered.
[0007] In summary, the present invention takes into account that the terminal devices (smart sensors) in the IIoT scenario are equipped with security elements (SE) and the management nodes (registration servers or attribute servers) in the domain are equipped with trusted platform modules (TPM), and designs a blockchain-enabled industrial Internet of Things authentication and key negotiation method; it is challenging and of practical value to design an efficient, cross-domain, and secure data sharing solution that can protect privacy for device-to-device communication (D2D) of the Industrial Internet of Things (IIoT). Summary of the invention
[0008] To solve the above problems, the present invention discloses that the method uses non-interactive zero-knowledge proof (NIZKP) technology to protect the identity privacy of the device. In addition, with the assistance of distributed blockchain, this method solves the distrust problem of cross-domain authentication. The method provides a data sharing method that supports privacy authentication, key agreement and access control. The method uses non-interactive zero-knowledge proof (NIZKP) technology to protect the identity privacy of the device. In addition, with the assistance of distributed blockchain, this method solves the distrust problem of cross-domain authentication.
[0009] The present invention first initializes the attribute management center to generate the system public key and the system attribute key; the domain management node is registered to obtain the identity key pair; the device is registered to obtain the identity key pair, the user attribute key and the authentication key; the prover (device) generates a zero-knowledge proof and sends it to the blockchain to verify the validity; the prover generates an attribute token and sends it to the verifier to implement access control; the verifier verifies the validity of the attribute token; the prover and the verifier negotiate the key to generate the session key.
[0010] In order to achieve the above purpose, the technical solution adopted by the present invention is: a blockchain-enabled industrial Internet of Things authentication and key negotiation method, comprising the following steps:
[0011] S1, system initialization: the attribute management center initializes and generates the system public key and system attribute key, publishes the system public key, and keeps the system attribute key confidential; the expressions of the system public key MPK and the system attribute key ASK are as follows:
[0012]
[0013]
[0014] Among them, G and G T is a multiplicative group whose order is a large prime number p, and g is a generator of G; e:G×G→GT is a symmetric bilinear map; H1, H2 are collision-resistant hash functions; U A is the complete set of N attributes; KDF is a key derivation function; α,{t i} is from the group a random value chosen randomly from the group of integers modulo p;
[0015] S2, domain management node registration: The domain management node and the attribute management center interact to generate a pair of identity keys. Then a group of domain management nodes form a blockchain network and publish the identity public key in the blockchain, while keeping the identity private key secret. The identity key pair (IPK y ,ISK y ) is:
[0016] IPK y =(g β ) γ ,
[0017] Among them, β and γ are two A randomly selected element in
[0018] S3, device registration: The device interacts with the attribute management center and the domain management node to generate an identity key pair, a user attribute key and an authentication key, wherein the identity public key is stored in the blockchain, and the identity private key, attribute key and authentication key are kept confidential by the device; the identity key pair (IPK x ,ISK x ), attribute key UAK=(UAK1,UAK2) and authentication key AK are expressed as:
[0019] IPK x =(g β ) γ ',ISK x =β'=H2(GID||psw);
[0020] AK=g γ ';
[0021] UAK2=g δ ;;
[0022] Among them, GID is the global device identifier; psw is the device login password; γ ‘ and δ is from A randomly selected element in
[0023] S4, the prover generates zero-knowledge proof: Device 1, as the prover in the authentication phase, generates zero-knowledge proof based on its own identity key pair (IPK s ,ISK s=β) and the authentication key AK s Generate a zero-knowledge proof Sent to blockchain; said proof The expression is:
[0024] Z=h β ,p1=h r ,p2=AK s r ,y=r+cβ(mod p);
[0025] Among them, h = H1 (TS, msg, R), TS is a timestamp; msg is a message string; R is a randomly selected element from G; r is A randomly selected element in; c = H2(AK s ,h,IPK s ,Z,p1,p2);
[0026] S5, blockchain verification of validity: the smart contract is triggered; first through the formula Verify the timestamp validity, where is the current time, and ΔT is the predefined maximum time interval; then, the contract calculates the values of h and c, and brings them into the verification formula to verify the validity of the proof. If valid, the confirmation value Ack is returned to the prover and the verifier; the expression of the verification formula is:
[0027] h y =p1·Z c ,AK s y =p2·IPK s c ;
[0028] Where h = H1(TS,msg,R), c = H2(AK s ,h,IPK s ,Z,p1,p2);
[0029] S6, access request: After receiving the confirmation value Ack returned by the blockchain, the prover generates an attribute token based on its own user attribute key (UAK1, UAK2) and sends it to the verifier; the expression of the attribute token ATok = (σ1, σ2, σ3, σ4) is:
[0030]
[0031] Among them, θ,s,y A is from A randomly selected element in T i It is part of the system public key; Ack is the confirmation value returned by the blockchain;
[0032] S7, access verification: After receiving the access token, the verifier determines whether the access is passed according to the access formula; the expression of the access formula is:
[0033]
[0034] S8, key negotiation: The verifier calls the key derivation function KDF to generate a session key based on the attribute token; the session key formula is:
[0035]
[0036] Among them, y B Yes, from A randomly selected element in , TS′ is the new timestamp, and l is the output length predefined by KDF;
[0037] The validator then constructs The zero-knowledge proof is sent to the prover; the prover Generate a session key; the session key formula is:
[0038]
[0039] Wherein, the step S2 of domain management node registration further comprises:
[0040] S21, partial identity key generation: the domain management node generates a partial identity key by itself; the partial identity key pair expression is as follows:
[0041] ISK=β,IPK′=g β ;
[0042] Among them, β is the A random value randomly selected from ;
[0043] S22, zero-knowledge proof construction: The domain management node constructs a zero-knowledge proof message based on the identity private key ISK and sends it to the attribute management center; the zero-knowledge proof message The expression is:
[0044] u=g μ ,c=H2(g,IPK′,u),
[0045] Among them, μ is the A random value randomly selected from ;
[0046] S23, zero-knowledge proof verification: the attribute management center verifies the validity of the zero-knowledge proof according to the verification formula, and outputs 1 if it is valid, otherwise it outputs 0; the expression of the verification formula is: Where, c = H2(g, IPK′, u);
[0047] S24, generation of complete identity public key and initialization of blockchain network: If the result of S23 is 1, the attribute management center generates a complete identity public key for the domain management node and returns it to the domain management node. Subsequently, a group of domain management nodes are constructed into a blockchain network to jointly maintain a ledger; the expression of the complete identity public key IPK is: IPK = (g β ) γ ; where γ is the A random value randomly selected from .
[0048] Wherein, the step S3 device registration further includes:
[0049] S31, partial identity key generation: the device automatically generates a partial identity key; the partial identity key pair expression is as follows:
[0050] ISK=β=H2(GID||psw), IPK′=g β ;
[0051] Among them, GID is the global device identifier; psw is the device login password;
[0052] S32, zero-knowledge proof construction: the device constructs a zero-knowledge proof message based on the identity private key ISK and sends it to the corresponding domain management node; the zero-knowledge proof message The expression is:
[0053] u=g μ ,c=H2(g,IPK′,u),
[0054] Among them, μ is the A random value randomly selected from ;
[0055] S33, zero-knowledge proof verification: The domain management node verifies the validity of the zero-knowledge proof according to the verification formula, and outputs 1 if it is valid, otherwise it outputs 0; the expression of the verification formula is: Where, c = H2(g, IPK′, u);
[0056] S34, generation of a complete identity public key: If the result of S33 is 1, the domain management node generates a complete identity public key for the device and publishes it in the blockchain; the expression of the complete identity public key IPK is: IPK = (g β ) γ ; where γ is the A random value randomly selected from ;
[0057] S35, generation of some user attribute keys: the domain management node sends the device identity public key to the attribute management center for key request; the attribute management center generates a key based on the device attribute set A U ={a i} i∈[n] The system attribute key ASK is used to generate a partial user attribute key for the device and return it to the device; the expression of the partial user attribute key UAK' is:
[0058]
[0059] Among them, δ is the A random value randomly selected from ;
[0060] S36, generation of complete user attribute key and authentication key: after receiving the partial user attribute key UAK', the device calculates the complete user attribute key and authentication key; the expressions of the complete user attribute key UAK and authentication key AK are:
[0061]
[0062] In order to achieve the above-mentioned purpose, the present invention also adopts the following technical solution: a blockchain-enabled industrial Internet of Things privacy cross-domain authentication and key negotiation product with access control, including a computer program, which, when executed by a processor, implements the steps of any of the methods described above.
[0063] Compared with the prior art, the technical advantages of the present invention are:
[0064] (1) The present invention solves the trust problem of cross-domain authentication of industrial Internet of Things based on blockchain. Benefiting from the traceability, distribution and immutability of blockchain, devices from different trust domains can achieve authentication and build a secure communication channel.
[0065] (2) The invented blockchain-enabled industrial Internet of Things authentication and key agreement method utilizes zero-knowledge proof technology to protect the authentication privacy of industrial Internet of Things devices. Compared with other privacy protection technologies, zero-knowledge proof has incomparable advantages in security and efficiency.
[0066] (3) The present invention uses attribute-based access control to achieve secure one-to-many and efficient data sharing.
[0067] (4) The present invention includes generating session keys and completing a key agreement process based on symmetric key encrypted data exchange, which fully considers the transmission efficiency of batch data in the industrial Internet of Things. BRIEF DESCRIPTION OF THE DRAWINGS
[0068] Figure 1 It is a system framework diagram of the method of the present invention;
[0069] Figure 2 It is a flow chart of the process steps of the method of the present invention. DETAILED DESCRIPTION
[0070] The present invention is further explained below in conjunction with the accompanying drawings and specific embodiments. It should be understood that the following specific embodiments are only used to illustrate the present invention and are not used to limit the scope of the present invention. It should be noted that the words "front", "rear", "left", "right", "upper" and "lower" used in the following description refer to directions in the accompanying drawings, and the words "inner" and "outer" refer to directions toward or away from the geometric center of a specific component, respectively.
[0071] The symbols and their definitions in this scheme are shown in Table 1:
[0072] Table 1
[0073]
[0074]
[0075] like Figure 1 As shown, the blockchain-enabled industrial Internet of Things authentication and key agreement method proposed in the present invention includes four participants:
[0076] (1) Attribute Management Center (AS): Usually composed of several servers with sufficient resources, it is used to generate attribute keys for access requests for devices. Similarly, AS is also equipped with a security component TPM.
[0077] (2) Domain Management Node (RS): A trust domain (subnet) has a domain management node, which is responsible for device registration. It is assumed that each RS is equipped with a security component TPM.
[0078] (3) Blockchain (BC): A group of domain management nodes constitute a peer-to-peer blockchain network, which is responsible for publishing the public key information of system keys, domain management nodes, and devices.
[0079] (4) IIoT terminal devices: They have limited storage and computing resources and are equipped with SE. For the sake of clarity, we refer to the two devices involved in an authentication as the prover (DU) and the verifier (DUP), which belong to two trust domains.
[0080] Figure 2 The data interaction process of the entire solution is demonstrated, and the blockchain-enabled industrial IoT authentication and key negotiation method is described as follows:
[0081] Step S1: System initialization. The input is a security parameter κ, and the attribute management center performs the following steps:
[0082] (1.1) Choose two multiplicative cyclic groups G, G of order p T and a bilinear pairing e:G×G→G T . g is a generator of the group G.
[0083] (1.2) Choose two collision-resistant hash functions:
[0084] (1.3) Select a key derivation function KDF.
[0085] (1.4) Randomly select an element α to calculate g α .
[0086] (1.5) Construct a complete attribute set U containing N attributes A . A For each attribute in , select a random element t i ,calculate
[0087] (1.6) Public system public key and confidential system attribute key. The expressions of the system public key MPK and system attribute key ASK are as follows:
[0088]
[0089]
[0090] Step S2: Domain management node registration. The domain management node and the attribute management center interact to generate a pair of identity keys for the domain management node, including the following steps:
[0091] (2.1) Domain management node from the group Randomly select a random value β and calculate IPK′=g β .
[0092] (2.2) Domain management node builds zero-knowledge proof From the group Randomly select a random value μ to calculate:
[0093] u=g μ ,c=H2(g,IPK′,u),
[0094] δ PoK Sent to the property management center.
[0095] (2.3) The attribute management center verifies the validity of the zero-knowledge proof. Calculate c = H2(g, IPK′, u) and substitute it into the formula Check if it is true. If it is true, output 1, otherwise output 0.
[0096] (2.4) Attribute Management Center from Group Randomly select a random value γ and calculate the complete identity public key IPK for the domain management node = (g β ) γ .
[0097] (2.5) Then a group of domain management nodes form a blockchain network and publish the identity public key in the blockchain, while the identity private key is kept secret.
[0098] Step S3: Device registration. The device interacts with the attribute management center and the domain management node to generate an identity key pair, a user attribute key, and an authentication key. This includes the following steps:
[0099] (3.1) The device calculates a partial identity key pair based on the device global identifier GID and the device login password psw:
[0100] ISK=β=H2(GID||psw), IPK′=g β .
[0101] (3.2) Device construction of zero-knowledge proof From the group Randomly select a random value μ to calculate:
[0102] u=g μ ,c=H2(g,IPK′,u),
[0103] δ PoK Sent to the corresponding domain management node.
[0104] (3.3) The domain management node verifies the validity of the zero-knowledge proof. Calculate c = H2(g, IPK′, u) and substitute it into the formula Check if it is true. If it is true, output 1, otherwise output 0.
[0105] (3.4) Attribute Management Center from Group Randomly select a random value γ and calculate the complete identity public key IPK for the domain management node = (g β ) γ The domain management node sends the device identity public key to the attribute management center to request the attribute key. At the same time, the identity public key is stored in the blockchain.
[0106] (3.5) The attribute management center is based on the device attribute set A U ={a i} i∈[n] The attribute management center generates a partial user attribute key for the device using the system attribute key ASK and returns it to the device. Randomly select a random value δ to calculate the partial user attribute key UAK':
[0107]
[0108] (3.6) After receiving the partial user attribute key UAK', the device calculates the complete user attribute key:
[0109]
[0110] Calculate the authentication key AK = g γ ′.
[0111] Step S4: The prover generates a zero-knowledge proof. Assume that device 1 in trust domain 1 is the prover in the authentication phase and generates a zero-knowledge proof Send to the blockchain. It includes the following steps:
[0112] (4.1) Obtain the timestamp TS and the verification message string msg to be sent, randomly select an element R from G, and calculate the hash value h = H1 (TS, msg, R). Based on the identity private key ISK s =βCalculate Z = h β .
[0113] (4.2) From The randomly selected element r in is based on the authentication key AK s Calculate p1 = h r ,p2=AK s r .
[0114] (4.3) Based on the authentication key AK of device 1 s and identity public key IPK s Calculate c = H2(AK s ,h,IPK s ,Z,p1,p2). Calculate y=r+cβ(mod p).
[0115] Step S5: Blockchain verifies validity. After receiving the authentication verification request, the corresponding smart contract is triggered. The verification within the contract includes the following steps:
[0116] (5.1) Through the formula Verify the timestamp validity, where is the current time, and ΔT is the predefined maximum time interval.
[0117] (5.2) Calculate h = H1(TS,msg,R) and c = H2(AK s ,h,IPK s ,Z,p1,p2). Substitute into the formula to determine whether the equation is true: h y=p1·Z c ,AK s y =p2·IPK s c If both equations hold, the authentication confirmation value Ack is returned. After receiving Ack, the verifier accepts the subsequent request from the prover.
[0118] Step S6: Access request. After receiving the confirmation value Ack returned by the blockchain, the prover generates an attribute token ATok = (σ1, σ2, σ3, σ4) based on his own user attribute key (UAK1, UAK2). Randomly select three elements θ, s, y A .calculate:
[0119]
[0120] Send the attribute token ATok to the verifier.
[0121] Step S7: Access verification. Assume that device 2 in trust domain 2 is the verifier in the access control phase. After receiving the access token ATok, the verifier calculates the access formula to determine whether the equation is true:
[0122]
[0123] If passed, the access request from this prover is accepted.
[0124] Step S8: Key negotiation. This stage includes the following steps:
[0125] (8.1) The verifier Randomly select an element y from B , obtain the new timestamp TS′, and call the key derivation function KDF to generate the session key according to σ4 in the attribute token
[0126] (8.2) The verifier builds about The zero-knowledge proof of is sent to the prover.
[0127] (8.3) The prover verifies the validity of this zero-knowledge proof and accepts it if it is valid.
[0128] (8.4) The prover based on Generate Session Key
[0129] Finally, the two communicating parties, the prover (device 1) and the verifier (device 2), use the session key to encrypt the message and achieve secure information sharing.
[0130] The present invention considers the mutual authentication and efficient communication between terminal devices belonging to different trust domains in the IIoT scenario, and designs a blockchain-enabled industrial Internet of Things authentication and key agreement method. As far as we know, this is the first data sharing method that supports privacy authentication, key agreement, and access control. The method uses non-interactive zero-knowledge proof (NIZKP) technology to protect the identity privacy of the device. In addition, with the assistance of distributed blockchain, this method solves the distrust problem of cross-domain authentication.
[0131] The technical means disclosed in the scheme of the present invention are not limited to the technical means disclosed in the above-mentioned implementation mode, but also include technical schemes composed of any combination of the above technical features.
Claims
1. A blockchain-enabled industrial Internet of Things authentication and key agreement method, characterized in that: The steps include: S1, system initialization: the attribute management center initializes and generates the system public key and system attribute key, publishes the system public key, and keeps the system attribute key confidential; the expressions of the system public key MPK and the system attribute key ASK are as follows: Among them, G and G T is a multiplicative group whose order is a large prime number p, and g is a generator of G; e:G×G→G T is a symmetric bilinear map; H1, H2 are collision-resistant hash functions; U A is the complete set of N attributes; KDF is a key derivation function; α,{t i } is from the group A random value randomly selected from is the group of integers modulo p; S2, domain management node registration: The domain management node and the attribute management center interact to generate a pair of identity keys. Then a group of domain management nodes form a blockchain network and publish the identity public key in the blockchain, while the identity private key is kept secret. The identity private key pair (IPK y ,ISK y ) is: Among them, β and γ are two A randomly selected element in S3, device registration: The device interacts with the attribute management center and the domain management node to generate an identity key pair, a user attribute key and an authentication key, wherein the identity public key is stored in the blockchain, and the identity private key, attribute key and authentication key are kept confidential by the device; the identity key pair (IPK x ,ISK x ), attribute key UAK=(UAK1,UAK2) and authentication key AK are expressed as: <h2 style=";text-align:left;direction:ltr">IPK<h2 style=";text-align:left;direction:ltr"> x <h2 style=";text-align:left;direction:ltr"> (g)<h2 style=";text-align:left;direction:ltr"> β <h2 style=";text-align:left;direction:ltr"> )<h2 style=";text-align:left;direction:ltr"> γ <h2 style=";text-align:left;direction:ltr"> ',ISK<h2 style=";text-align:left;direction:ltr"> x <h2 style=";text-align:left;direction:ltr"> (β') = H2(GID||psw) AK=g γ '; Among them, GID is the global device identifier; psw is the device login password; γ' and δ are from A randomly selected element in S4, the prover generates zero-knowledge proof: Device 1, as the prover in the authentication phase, generates zero-knowledge proof based on its own identity key pair (IPK s ,ISK s =β) and the authentication key AK s Generate a zero-knowledge proof Sent to blockchain; said proof The expression is: Z=h β ,p1=h r ,p2=AK s r ,y=r+cβ(mod p); Among them, h = H1 (TS, msg, R), TS is a timestamp; msg is a message string; R is a randomly selected element from G; r is A randomly selected element in; c = H2(AK s ,h,IPK s ,Z,p1,p2); S5, blockchain verification of validity: the smart contract is triggered; first through the formula Verify the timestamp validity, where is the current time, and ΔT is the predefined maximum time interval; then, the contract calculates the values of h and c, and brings them into the verification formula to verify the validity of the proof. If valid, the confirmation value Ack is returned to the prover and the verifier; the expression of the verification formula is: h y =p1·Z c ,IF s y =p2·IPK s c ; Where h = H1(TS,msg,R), c = H2(AK s ,h,IPK s ,Z,p1,p2); S6, access request: After receiving the confirmation value Ack returned by the blockchain, the prover generates an attribute token based on its own user attribute key (UAK1, UAK2) and sends it to the verifier; the expression of the attribute token ATok = (σ1, σ2, σ3, σ4) is: Among them, θ,s,y A is from A randomly selected element in T i It is part of the system public key; Ack is the confirmation value returned by the blockchain; S7, access verification: After receiving the access token, the verifier determines whether the access is passed according to the access formula; the expression of the access formula is: S8, key negotiation: The verifier calls the key derivation function KDF to generate a session key based on the attribute token; the session key formula is: Among them, y B is from A randomly selected element in , TS′ is the new timestamp, and l is the output length predefined by KDF; The validator then constructs The zero-knowledge proof is sent to the prover; the prover Generate a session key; the session key formula is: Finally, the two communicating parties, the prover and the verifier, use the session key to encrypt the message and achieve secure information sharing.
2. The blockchain-enabled industrial Internet of Things authentication and key agreement method according to claim 1, characterized in that: The step S2 of domain management node registration further comprises: S21, partial identity key generation: The domain management node generates a partial identity key by itself; the expression of the partial identity key is as follows: Among them, β is the A random value randomly selected from ; S22, zero-knowledge proof construction: The domain management node constructs a zero-knowledge proof message based on the identity private key ISK and sends it to the attribute management center; the zero-knowledge proof message The expression is: u=g μ ,c=H2(g,IPK′,u), Among them, μ is the A random value randomly selected from ; S23, zero-knowledge proof verification: the attribute management center verifies the validity of the zero-knowledge proof according to the verification formula, and outputs 1 if it is valid, otherwise it outputs 0; the expression of the verification formula is: Where, c = H2(g, IPK′, u); S24, generation of complete identity public key and initialization of blockchain network: If the result of S23 is 1, the attribute management center generates a complete identity public key for the domain management node and returns it to the domain management node. Subsequently, a group of domain management nodes are constructed into a blockchain network to jointly maintain a ledger; the expression of the complete identity public key IPK is: IPK = (g β ) γ ; where γ is the A random value randomly selected from .
3. The blockchain-enabled industrial Internet of Things authentication and key agreement method according to claim 1, characterized in that: The step S3 device registration further includes: S31, partial identity key generation: the device generates a partial identity key by itself; the expression of the partial identity key is as follows: <h2 style=";text-align:left;direction:ltr">ISK = β = H2(GID||psw), IPK′ = g<h2 style=";text-align:left;direction:ltr"> β <h2 style=";text-align:left;direction:ltr"> ; Among them, GID is the global device identifier; psw is the device login password; S32, zero-knowledge proof construction: the device constructs a zero-knowledge proof message based on the identity private key ISK and sends it to the corresponding domain management node; the zero-knowledge proof message The expression is: Among them, μ is the A random value randomly selected from ; S33, zero-knowledge proof verification: The domain management node verifies the validity of the zero-knowledge proof according to the verification formula, and outputs 1 if it is valid, otherwise it outputs 0; the expression of the verification formula is: Where, c = H2(g, IPK′, u); S34, generation of a complete identity public key: If the result of S33 is 1, the domain management node generates a complete identity public key for the device and publishes it in the blockchain; the expression of the complete identity public key IPK is: IPK = (g β ) γ ; where γ is the A random value randomly selected from ; S35, generation of some user attribute keys: the domain management node sends the device identity public key to the attribute management center for key request; the attribute management center generates a key based on the device attribute set A U ={a i } i∈[n] The system attribute key ASK is used to generate a partial user attribute key for the device and return it to the device; the expression of the partial user attribute key UAK' is: Among them, δ is the A random value randomly selected from ; S36, generation of complete user attribute key and authentication key: after receiving the partial user attribute key UAK', the device calculates the complete user attribute key and authentication key; the expressions of the complete user attribute key UAK and authentication key AK are:
4. A blockchain-enabled industrial IoT authentication and key agreement product, including a computer program, characterized by: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 3 are implemented.
