Hybrid remote attestation method supporting batch addition and deletion of equipment

Through the new Merkle tree and non-interactive zero-knowledge proof protocol, it supports batch addition and deletion of devices, solves the limitations of adding and deleting devices in existing technologies, and ensures the authenticity and security of device identities.

CN120658409AActive Publication Date: 2025-09-16WUHAN UNIV
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202511141120.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-15
Publication Date
2025-09-16
Estimated Expiration
2045-08-15

AI Technical Summary

Technical Problem

Existing remote attestation solutions based on non-interactive zero-knowledge proof do not support the addition of new remote attestation devices, cannot delete devices, and attackers can forge device identities.

Method used

A new Merkle tree is designed to support the dynamic addition of new nodes, use a non-interactive zero-knowledge proof protocol to generate proof information, verify the integrity of the device through a proxy verifier smart contract, and combine the HMAC authentication method to independently and interactively verify the device status.

Benefits of technology

It realizes batch addition and deletion of devices, reduces the computational burden, ensures the authenticity of device identities, prevents forgery of device identities, and improves the flexibility and security of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120658409A_ABST
    Figure CN120658409A_ABST
Patent Text Reader

Abstract

The invention discloses a hybrid remote attestation method supporting batch addition and deletion of equipment, which comprises the following steps: designing static batch insertion for a novel Merkel tree which supports dynamic addition of new nodes and has a root node in each layer; in the insertion stage, dynamic batch insertion is performed on the novel Merkel tree design; wherein the static batch insertion and the dynamic batch insertion both add timestamps and validity periods in the process of calculating the novel Merkel leaf sub-nodes; the equipment generates certification information by using a non-interactive zero-knowledge certification protocol and submits the certification information to a proxy verifier smart contract, and the proxy verifier smart contract enables all verifiers to confirm the integrity of the measurement attribute value of the equipment under the condition that the measurement attribute value of the equipment is not obtained; and when the proxy verifier does not receive the certification of the equipment or the certification of the equipment is expired, the verifier independently interacts with the remote certification equipment by using an authentication mode based on HMAC to verify the integrity of the measurement attribute value of the equipment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of information security technology, and in particular relates to a hybrid remote certification method that supports batch addition and deletion of devices. Background Art

[0002] Current remote attestation schemes based on non-interactive zero-knowledge proofs enable multiple verifiers to verify the integrity of a device's state without possessing the device's measurement attribute values. This scheme requires the device owner to calculate the measurement attribute values ​​of all devices with information such as the device's public key during the initialization phase, and use the calculation results as the leaf nodes of a Merkle tree. The integrity of the device's measurement attribute values ​​can only be proven by proving through a non-interactive zero-knowledge proof protocol that the device's measurement attribute values ​​are leaf nodes of the Merkle tree after calculation and that the Merkle path to that node is possessed, ensuring that the root node calculated through the Merkle tree path to that node is consistent with the root node publicly disclosed by the device owner.

[0003] The above solution has the following drawbacks:

[0004] (1) This solution does not support adding new remote attestation devices during operation. If a new remote attestation device is needed during operation, the device owner needs to re-initialize the device and reconstruct the Merkle tree for all devices. Frequent addition of new devices will increase the computational burden on the device owner.

[0005] (2) Once a device is added successfully, the existing device cannot be deleted.

[0006] (3) If the attacker obtains the challenge initiated by the verifier or the measurement attribute value of the device in advance, he can forge the identity of the device. Summary of the Invention

[0007] To overcome the shortcomings of the aforementioned prior art, the present invention provides a hybrid remote attestation method that supports batch addition and removal of devices. This method addresses the limitation of remote attestation solutions based on non-interactive zero-knowledge proofs, which do not support the addition of new remote attestation devices. Furthermore, it indirectly addresses the limitation of remote attestation solutions based on non-interactive zero-knowledge proofs, which do not support the removal of devices. Finally, it addresses the vulnerability of attackers obtaining a verifier's challenge in advance or obtaining a device's metric attribute values ​​in order to falsify the integrity of the device's metric attribute values.

[0008] According to one aspect of the present invention, a hybrid remote attestation method supporting batch addition and deletion of devices is provided, comprising:

[0009] Designing static batch insertion for a new Merkle tree that supports dynamic addition of new nodes and has a root node at each level;

[0010] During the insertion phase, dynamic batch insertion is designed for the new Merkle tree; wherein, both the static batch insertion and the dynamic batch insertion add timestamps and validity periods during the calculation of the new Merkle tree child nodes;

[0011] The device uses a non-interactive zero-knowledge proof protocol to generate proof information and submit it to the proxy verifier smart contract. The proxy verifier smart contract ensures that all verifiers are convinced of the integrity of the device's measurement attribute values ​​without obtaining the device's measurement attribute values.

[0012] When the proxy verifier does not receive the device's attestation or the device's attestation has expired, the verifier uses an HMAC-based authentication method to independently interact with the remote attestation device to verify the integrity of the device's measurement attribute values.

[0013] As a further technical solution, static batch insertion is designed for the new Merkle tree, including:

[0014] Input root node array , leaf node array and variables , the variable Indicates the number of root nodes that have been updated;

[0015] If the array If the length of is equal to 0, a one-dimensional array is returned. and variables ;

[0016] Initialize a dynamic array ;

[0017] Perform a loop operation as follows:

[0018] if or ,but , ;if , then Add to dynamic array within; among them, Represents a one-dimensional array Length, variable The value range is , the step size is 2;

[0019] Output updated one-dimensional array and variables .

[0020] As a further technical solution, before performing the static batch insertion, the following steps are also included:

[0021] Initialization parameters: Generate a static array to store the leaf nodes and authorization signatures of the new Merkle tree that need to be inserted in batches, the Merkle tree paths of the devices to be inserted in batches and the labels corresponding to the paths, and the root node of the new Merkle tree. Generate a dynamic array to store all the leaf nodes that have been successfully added to the new Merkle tree in batches.

[0022] Initialize the new Merkle tree: Randomly select a value to initialize the leaf node of the new Merkle tree, and then use the collision-resistant hash function to perform a loop operation to complete the initialization of the new Merkle tree.

[0023] As a further technical solution, after performing the static batch insertion, the following steps are further included:

[0024] For the newly inserted node, the Merkle path of the device and the label value corresponding to the path, the hash value of the device authorization validity period, and the device owner's authorization signature for the device are generated.

[0025] As a further technical solution, during the insertion phase, a dynamic batch insertion method is designed for the new Merkle tree, including:

[0026] Input root node array , leaf node array ,variable ,variable , one-dimensional array and variables , the variable Indicates the number of root nodes that have been updated, the one-dimensional array The exponential vector representing the calculated length of the dynamic array with base 2 as the base;

[0027] if and , then returns and ;

[0028] if and , then returns and ;

[0029] Initialize a dynamic array and a variable of type Boolean , the value is ;

[0030] Perform a loop operation as follows:

[0031] if or ,but , ;

[0032] if , then Inserting into a dynamic array In; if , , and If both are satisfied, Inserting into a dynamic array middle, , ;

[0033] Output updated one-dimensional array and variables .

[0034] As a further technical solution, before dynamically batch inserting the new Merkle tree, the following is also included:

[0035] Initialization parameters: Generate a static array to store the leaf nodes and authorization signatures of the new Merkle tree that need to be inserted in batches, the Merkle tree paths of the batch inserted devices, and the labels corresponding to the paths.

[0036] As a further technical solution, after dynamically batch inserting the new Merkle tree, the following is also included:

[0037] Generate the Merkle path of the device and the label value corresponding to the path, the hash value of the device authorization validity period, and the device owner's authorization signature for the device for the newly inserted node;

[0038] Update the Merkle tree path and the label value corresponding to the path for the new node that has been inserted.

[0039] As a further technical solution, a recommended method is provided for the number of newly added devices to reduce the update of the Merkle tree paths and labels corresponding to the paths of all devices before the newly added device during dynamic batch insertion.

[0040] As a further technical solution, the device uses a non-interactive zero-knowledge proof protocol to generate proof information, including designing the following non-interactive zero-knowledge proof circuit:

[0041] Input one-dimensional array , one-dimensional array ,parameter ,parameter ,parameter ,parameter , public key , private key , one-dimensional array and parameters ;

[0042] Calculation parameters ;

[0043] Calculation parameters ;

[0044] Perform the following loop operations:

[0045] if , then calculate ;

[0046] if , then calculate ; Among them, the variable The value range is ;

[0047] Initializing variables , the value is 0, and then the following loop operation is performed: , then the variable The value of is set to 1; the variable The value range is ;

[0048] Calculation parameters ;

[0049] assertion Is it true?

[0050] As a further technical solution, the method further includes:

[0051] The device periodically uses non-interactive zero-knowledge proof to calculate the corresponding proof information for the device's measurement attribute value and submits this information to the proxy verifier smart contract;

[0052] The proxy verifier smart contract verifies the authenticity and validity of this proof information. If both are not met, the device authentication fails and the device's measurement attribute value is at risk of being tampered with.

[0053] The verifier inputs the device's public key and requests the device's status from the proxy verifier smart contract. If the response is that the proof is expired or empty, the verifier will select a random number as a challenge based on the HMAC authentication method;

[0054] The authenticator issues a challenge to the device and accepts the device's response.

[0055] This invention provides a hybrid remote attestation method that supports batch addition and deletion of devices, addressing the limitation of remote attestation solutions based on non-interactive zero-knowledge proof that do not support the addition of new remote attestation devices. Compared with the existing technology, the present invention has the following advantages:

[0056] (1) First, a static batch insertion technology is designed for the new Merkle tree to support the rapid initialization of the system. During the insertion phase, a dynamic batch insertion technology is designed for the new Merkle tree to enable the system to support the addition of new remote attestation devices during operation.

[0057] (2) Secondly, a recommended method is provided for the number of newly added remote attestation devices, which can reduce the number of updates to the Merkle tree paths and labels corresponding to the paths of all devices before the newly added devices.

[0058] (3) Subsequently, a timestamp and validity period are added to the process of calculating the new Merkle tree leaf nodes, which ensures that the remote attestation device that is not within the authorized validity period cannot prove the integrity of the device's measurement attribute value. Therefore, it indirectly solves the problem that the remote attestation scheme based on non-interactive zero-knowledge proof does not support the device deletion operation.

[0059] (4) In addition, trusted hardware is used to ensure the secure storage of the private key of the remote attestation device. Even if the measurement attribute value of the device is obtained by an attacker, the attacker cannot forge the real identity information of the device and cannot prove the integrity of the measurement attribute value of the device.

[0060] (5) Finally, a hybrid remote attestation method is provided. The device generates attestation information using a non-interactive zero-knowledge proof protocol and submits it to a proxy verifier smart contract. The proxy verifier smart contract can ensure the integrity of the device's measurement attribute values ​​without obtaining the device's measurement attribute values. When the proxy verifier does not receive the device's attestation or the device's attestation expires, the verifier can use an HMAC-based authentication method to independently interact with the remote attestation device to verify the integrity of the device's measurement attribute values. BRIEF DESCRIPTION OF THE DRAWINGS

[0061] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, a brief introduction will be given below to the drawings used in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0062] Figure 1 An architectural diagram of a hybrid remote attestation method that supports batch addition and deletion of devices, provided in an embodiment of the present invention.

[0063] Figure 2 A module diagram of a hybrid remote attestation method supporting batch addition and deletion of devices provided in an embodiment of the present invention.

[0064] Figure 3Schematic diagram of a new Merkle tree provided in an embodiment of the present invention, where the root of the left figure is [3, X, Z, W] and the root of the right figure is [7, U, Z, W].

[0065] Figure 4 A non-interactive zero-knowledge proof circuit design diagram provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0066] In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present invention. In addition, the technical features in the various embodiments or single embodiments provided by the present invention are arbitrarily combined with each other to form a new technical solution. This combination is not restricted by the sequence of steps and / or structural composition mode, but must be based on the ability of ordinary technicians in this field to implement it. When the combination of technical solutions is contradictory or cannot be implemented, it should be deemed that this combination of technical solutions does not exist and is not within the scope of protection required by the present invention.

[0067] The present invention provides a hybrid remote attestation method that supports batch addition and deletion of devices, and is used to solve the limitation that remote attestation solutions based on non-interactive zero-knowledge proof do not support the addition of new remote attestation devices.

[0068] The solution of the present invention includes five roles: device, device owner, device owner, smart contract verifier, and proxy verifier smart contract. The solution architecture is as follows Figure 1 The solution of the present invention includes 4 core modules, such as Figure 2 shown.

[0069] (1) Initialization module

[0070] 1.1 Parameter Initialization

[0071] (a) The device owner enters the number of devices that need to be inserted in batches at this stage , generating two One-dimensional static array of and The lengths of the two arrays are . Stores leaf nodes of Shrubs, a new type of Merkle tree that needs to be inserted in batches. What is stored is the device owner's authorization signature for batch insertion of devices.

[0072] (b) The device owner enters the number of devices to be inserted in batches and the number of layers of the new Merkle tree - Shrubs , generate two two-dimensional static arrays and The column sizes of the two arrays are , the row size is . and What is stored is the Merkle tree path of batch insertion devices and the label corresponding to the path.

[0073] (c) The device owner generates a one-dimensional static array , the length is The array stores the root node of the new Merkle tree - Shrubs. The device owner then generates a one-dimensional dynamic array This dynamic array stores all leaf nodes that are successfully added to the new Merkle tree - Shrubs.

[0074] 1.2 Initializing the new Merkle tree - Shrubs

[0075] (a) The device owner randomly selects a value , as the leaf node for constructing a new Merkle tree - Shrubs, And set it to The device owner then performs a loop as follows:

[0076]

[0077] Among them, the variable The value range is , Hash() is a secure and collision-resistant hash function. The new Merkle tree - Shrubs is inserted as follows Figure 3 As shown in the figure, the number of layers of the tree is 4. When node 4 is inserted, the root node of the new Merkle tree-Shrubs is [3, X, Z, W]. When information node 7 is inserted, the root node of the new Merkle tree-Shrubs is [7, U, Z, W].

[0078] After the traditional Merkle tree is constructed, it does not support the addition of new nodes and has only one root node. The new Merkle tree described in the present invention supports the dynamic addition of new nodes after construction, and each layer has a root node. The practical complexity of adding a new node is O(1). The root node of each layer is selected as follows: if the number of nodes in the layer is odd, the root node is the last node. If the number of nodes in the layer is even, the root node is the second-to-last node.

[0079] 1.3 Batch Insertion of Devices

[0080] (a) The device owner performs a loop as follows:

[0081]

[0082]

[0083] Among them, the variable The value range is , It is a device The measurement attribute value of and They are the devices that are inserted in batches The private and public keys of It is the leaf node of the new Merkle tree - Shrubs, and also the device Identity on the new Merkle tree - Shrubs. Note that the measured attribute values ​​here include information such as memory state integrity or user-mode processes, kernel modules, and kernel code segments, but are not limited to these.

[0084] (b) The device owner generates a variable , the corresponding value is 0. The number of root nodes that have been updated in the current new Merkle tree. Subsequently, the device owner uses the static batch insertion technology ,enter 、 and , output the updated and . Updated and The information will be submitted by the device owner to the device owner smart contract, and all devices, all validators and proxy validator smart contracts in the blockchain can view this information through the device owner smart contract.

[0085] Static batch insertion technology The algorithm description is as follows:

[0086] Input internal parameters: one-dimensional array , one-dimensional array and variables .

[0087] The process is described as:

[0088] (1) If the array If the length of is equal to 0, a one-dimensional array is returned. and variables .

[0089] (2) Initialize a dynamic array .

[0090] (3) Perform a loop operation as follows:

[0091] if or ,but , .

[0092] if , then Add to dynamic array Among them, Represents a one-dimensional array The length of the variable The value range is , with a step size of 2.

[0093] (4) Input a one-dimensional array , one-dimensional array and variables , calling the algorithm , output the updated one-dimensional array variable .

[0094] (5) Return the updated one-dimensional array variable .

[0095] (c) The device owner performs a loop as follows:

[0096]

[0097]

[0098]

[0099] Among them, the variable The value range is , is the private key of the device owner, is the timestamp when using static batch insert technology, Get the device Merkel's path The label value corresponding to the path , The value of is 0 or 1, representing the left node or right node on the Merkle path, respectively. and The length is , It is the validity period of the devices inserted in this static batch. is a digital signature algorithm, What is stored is the device owner's Authorized signature.

[0100] (d) The device owner adds the identities of all devices successfully inserted in batches to the dynamic array on the new Merkle tree - Shrubs .

[0101] (2) Dynamic batch insertion module

[0102] 2.1 Parameter Initialization

[0103] (a) The device owner enters the number of devices that need to be inserted in batches at this stage , generating two One-dimensional static array of and The lengths of the two arrays are . Stores leaf nodes of Shrubs, a new type of Merkle tree that needs to be inserted in batches. What is stored is the device owner's authorization signature for batch insertion of devices.

[0104] (b) The device owner enters the number of devices to be inserted in batches and the number of layers of the new Merkle tree - Shrubs , generate two two-dimensional static arrays and The row sizes of the two arrays are , the column size is . and What is stored is the Merkle tree path of batch insertion devices and the label corresponding to the path.

[0105] 2.3 Batch Insertion of Devices

[0106] (a) The device owner performs a loop as follows:

[0107]

[0108]

[0109] Among them, the variable The value range is , It is a device for dynamic batch insertion The measurement attribute value of and They are the devices that are dynamically inserted in batches The private and public keys of It is the leaf node of the new Merkle tree - Shrubs.

[0110] (b) The device owner calculates a one-dimensional array ,in, , Represents a dynamic array length, Indicates getting the exponential vector of a number with base 2. For example, ,enter Returns an array .

[0111] (c) The device owner initializes two variables and , the default value is 0.

[0112] (d) Judgment by the equipment owner Is it equal to 0. If it is equal, then perform the following calculation:

[0113] (1) Initialize a dynamic array .

[0114] (2) and arrays Add the value to the dynamic array middle.

[0115] (3) Input array , array ,variable ,variable , array and variables , call the dynamic batch insertion algorithm Output updated and .

[0116] if If not equal to 0, then input array , array ,variable ,variable , array and variables , call the dynamic batch insertion algorithm Output updated and . Updated and The information will be submitted by the device owner to the device owner smart contract, and all devices, all validators and proxy validator smart contracts in the blockchain can view this information through the device owner smart contract.

[0117] Dynamic batch insertion technology The algorithm description is as follows:

[0118] Input internal parameters: one-dimensional array , one-dimensional array ,variable ,variable , one-dimensional array and variables .

[0119] The process is described as:

[0120] (1) If and , then returns and .

[0121] (2) If and , then returns and .

[0122] (3) Initialize a dynamic array and a variable of type Boolean , the value is .

[0123] (4) Perform a loop operation as follows:

[0124] (4.1) If or ,but , .

[0125] (4.2) If , then Inserting into a dynamic array If , , and If both are satisfied, then Inserting into a dynamic array middle, , .

[0126] (5) Input a one-dimensional array , one-dimensional array and variables ,variable , one-dimensional array and variables , calling dynamic batch insert technology , output the updated one-dimensional array variable .

[0127] (6) Return and .

[0128] (e) The device owner performs a loop as follows:

[0129]

[0130]

[0131]

[0132] Among them, the variable The value range is , It is the timestamp when using dynamic batch insertion technology. Is the device that gets dynamic batch inserts Merkle tree path The label value corresponding to the path , The value of is 0 or 1, representing the left node or right node on the Merkle tree path, respectively. and The length is , This is the validity period of the devices that are dynamically inserted in batches. What is stored is the device owner's dynamic batch insertion of devices Authorized signature.

[0133] (f) The device owner performs a loop as follows:

[0134]

[0135] Among them, the variable The value range is , Update the function for the Merkle tree path and the label value corresponding to the path. The updated Merkle tree path is stored in .equipment The label value corresponding to the updated Merkle tree path is stored in If the system inserts new nodes in batches, this function will be called to update the paths and label values ​​corresponding to all nodes before the nodes inserted in this batch.

[0136] (g) Finally, the device owner will calculate the array Inserting into a dynamic array middle.

[0137] (h) We will provide a recommended method for the number of newly added devices to reduce the number of Merkle tree paths and labels corresponding to the paths for all devices before the newly added device during dynamic batch insertion, as shown below:

[0138] Enter internal parameters: and .in, is the number of dynamic batch insertions, Is a positive integer.

[0139] Output: .

[0140] (1) Initialize variables , the value is . Initialize dynamic array , with a length of 0.

[0141] (2) The number of devices to be inserted into the static batch Set as ,Will The length of .

[0142] (3) Execute a while loop. , then perform the following operations:

[0143] when , and If both conditions are met, the following operations are performed:

[0144]

[0145]

[0146]

[0147] Otherwise, do the following:

[0148]

[0149] .

[0150] (4) .

[0151] (3) Proof Module

[0152] This phase uses two remote proof authentication methods, namely non-interactive zero-knowledge proof authentication and HMAC-based authentication. It is necessary to periodically use non-interactive zero-knowledge proof to calculate the corresponding proof information for the device's measurement attribute value and submit this information to the proxy verifier smart contract. The proxy verifier smart contract verifies the authenticity and validity of this proof information. If both are not met, the device If the authentication fails, the device's measurement attribute value may be tampered with. There are five status tags: trusted, untrusted, empty, expired, and authorized (i.e., the device If the validity period of the device owner's authorization has expired, it is considered that the device owner has deleted the device D). The verifier enters the device The public key of the device is requested from the proxy verifier smart contract If the feedback is that the certificate is expired (i.e., the device The submitted certification information is legal. However, the certification information exceeds the device The validity period of the authorization) or null (i.e., the proxy validator smart contract has never received the device Submitted proof information), the verifier will select a random number as a challenge based on the HMAC authentication method The verifier then sends the Create a challenge and accept a device Response. Note: and Built into the device by the device owner middle, For device owners Authorized signature.

[0153] (a) Authentication method based on non-interactive zero-knowledge proof

[0154] (1) Equipment Using Functions Accept the latest Merkle tree path The label value corresponding to the path .

[0155] (2) Equipment calculate , where is the device The measurement attribute value of It is a device The public key of

[0156] (3) Equipment Computing zero-knowledge proofs .in, Is a non-interactive zero-knowledge proof generation function for the device The corresponding proof is generated based on the measurement attribute value of .

[0157] (4) Equipment Calculate the signature ,in, is the private key of the device, is a signature function, Is the signing device The selected timestamp, This is the validity period of the generated certification information.

[0158] (5) Equipment Will automatically send proof information To the proxy validator smart contract.

[0159] (b) HMAC-based authentication

[0160] (1) Verifier and device Execute the key negotiation protocol to obtain a one-time key The execution process is as follows:

[0161] (1.1) The verifier randomly selects secret parameters ,calculate and .in, is the public key of the verifier, It is an encryption algorithm with homomorphic properties. Then, the verifier will and Send to device .

[0162] (1.2) Equipment Received parameters and Then, randomly select the secret parameter , and calculate the parameters and . Subsequently, the device The parameters Sent to the validator.

[0163] (1.3) Equipment Calculate one-time key .in, is the decryption function, .

[0164] (1.4) The verifier calculates the one-time key .in, Is the private key of the validator.

[0165] (2) Based on the challenge initiated by the verifier ,equipment Calculate the response ,in is the key derivation function (KDF), Hash-based Message Authentication Code.

[0166] (3) Equipment Calculate the signature .

[0167] (4) Equipment The response information Sent to the validator.

[0168] (c) Non-interactive zero-knowledge proof circuit design

[0169] Detailed design of non-interactive zero-knowledge proof circuit, such as Figure 4 shown.

[0170] Input internal parameters: one-dimensional array , one-dimensional array ,parameter ,parameter ,parameter ,parameter , public key , private key , one-dimensional array and parameters .

[0171] The process is described as:

[0172] (1) Calculation parameters .

[0173] (2) Calculation parameters .

[0174] (3) Perform a loop operation as follows:

[0175] if , then calculate .

[0176] if , then calculate .

[0177] Among them, the variable The value range is .

[0178] (4) Initialize variables , with a value of 0. Subsequently, a loop operation is performed as follows:

[0179] if , then the variable The value of is set to 1. The value range is .

[0180] (5) Calculation parameters .

[0181] (6) Assertion Is it true?

[0182] (IV) Verification Module

[0183] (a) Verification method based on non-interactive zero-knowledge proof

[0184] The proxy validator smart contract receives the device Proof of information After that, the proxy validator will do the following:

[0185] (1) Calibration equipment Authenticity of signature: .

[0186] (2) Verify the authenticity of the signature of the device owner: .

[0187] (3) Validity of the verification information: .

[0188] (4) Calculation .

[0189] (5) If or , the device status is marked as untrustworthy. If none of the conditions are met, check or If the conditions are met, the device status is marked as untrustworthy. If none of the conditions are met, the device is checked. The certification information exceeds the device owner or device The validity period of the authorization. or If the condition is met, the device status is marked as untrustworthy. Otherwise, the device is marked as trustworthy. Insert into array middle.

[0190] Note: is the signature verification function, Is a non-interactive zero-knowledge proof verification function, array Stores the hash values ​​of the zero-knowledge proofs and signatures submitted by all devices whose status is marked as trusted. It is the timestamp of the current verification device certification information.

[0191] (6) The proxy verifier smart contract constantly monitors the attestation information of the trusted device. If the device exceeds the validity period of the device owner's authorization, it is marked as authorization expired. If the attestation information exceeds the validity period of the device authorization, it is marked as attestation expired.

[0192] (b) HMAC-based authentication

[0193] The verifier receives the device Response information After that, the following operations will be performed:

[0194] (1) Verifier input device Public key and the challenge value initiated , request the device from the device owner smart contract The key derivation function value of .

[0195] (2) After receiving the verifier’s request, the device owner smart contract will check the device Is it within the authorization period? If it is within the authorization period, the device owner will calculate the device The key derivation function value of , and Send it to the verifier in a secret way. Otherwise, the verifier will be fed back to the device. The authorization has expired.

[0196] (3) Verifier verification equipment Validity of signature: .

[0197] (4) Verifier Check or If it is established, the device The status is marked as untrustworthy. If none of the above are true, check or If neither is true, then the device The status is marked as trusted.

[0198] Note: For the verifier to the device The timestamp when the challenge was initiated, When the verifier initiates a challenge, the device is required to The response time period.

[0199] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the technical solutions of the embodiments of the present invention.

Claims

1. A hybrid remote attestation method that supports batch addition and deletion of devices, characterized by: include: Designing static batch insertion for a new Merkle tree that supports dynamic addition of new nodes and has a root node at each level; During the insertion phase, dynamic batch insertion is designed for the new Merkle tree; wherein, both the static batch insertion and the dynamic batch insertion add timestamps and validity periods during the calculation of the new Merkle tree child nodes; The device uses a non-interactive zero-knowledge proof protocol to generate proof information and submit it to the proxy verifier smart contract. The proxy verifier smart contract ensures that all verifiers are convinced of the integrity of the device's measurement attribute values ​​without obtaining the device's measurement attribute values. When the proxy verifier does not receive the device's attestation or the device's attestation has expired, the verifier uses an HMAC-based authentication method to independently interact with the remote attestation device to verify the integrity of the device's measurement attribute values.

2. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 1, characterized in that: Design static batch insertion for the new Merkle tree, including: Input root node array , leaf node array and variables , the variable Indicates the number of root nodes that have been updated; If the array If the length of is equal to 0, a one-dimensional array is returned. and variables ; Initialize a dynamic array ; Perform the following loop operations: if or ,but , ; if , then Add to dynamic array within; among them, Represents a one-dimensional array Length, variable The value range is , the step size is 2; Output updated one-dimensional array and variables .

3. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 2, characterized in that: Before performing the static batch insertion, the following steps are also included: Initialization parameters: Generate a static array to store the leaf nodes and authorization signatures of the new Merkle tree that need to be inserted in batches, the Merkle tree paths of the devices to be inserted in batches and the labels corresponding to the paths, and the root node of the new Merkle tree. Generate a dynamic array to store all the leaf nodes that have been successfully added to the new Merkle tree in batches. Initialize the new Merkle tree: Randomly select a value to initialize the leaf node of the new Merkle tree, and then use the collision-resistant hash function to perform a loop operation to complete the initialization of the new Merkle tree.

4. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 2, characterized in that: After the static batch insertion is performed, the following steps are also included: For the newly inserted node, the Merkle path of the device and the label value corresponding to the path, the hash value of the device authorization validity period, and the device owner's authorization signature for the device are generated.

5. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 1, characterized in that: During the insertion phase, dynamic batch insertion is designed for the new Merkle tree, including: Input root node array , leaf node array ,variable ,variable , one-dimensional array and variables , the variable Indicates the number of root nodes that have been updated, the one-dimensional array The exponential vector representing the calculated length of the dynamic array with base 2 as the base; if and , then returns and ; if and , then returns and ; Initialize a dynamic array and a variable of type Boolean , the value is ; Perform the following loop operations: if or ,but , ; if , then Inserting into a dynamic array In; if , , and If both are satisfied, Inserting into a dynamic array middle, , ; Output updated one-dimensional array and variables .

6. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 5, characterized in that: Before dynamic batch insertion of the new Merkle tree, it also includes: Initialization parameters: Generate a static array to store the leaf nodes and authorization signatures of the new Merkle tree that need to be inserted in batches, the Merkle tree paths of the batch inserted devices, and the labels corresponding to the paths.

7. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 5, characterized in that: After dynamic batch inserts into the new Merkle tree, it also includes: Generate the Merkle path of the device and the label value corresponding to the path, the hash value of the device authorization validity period, and the device owner's authorization signature for the device for the newly inserted node; Update the Merkle tree path and the label value corresponding to the path for the new node that has been inserted.

8. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 1, characterized in that: A recommended method is provided for the number of newly added devices to reduce the update of the Merkle tree paths and labels corresponding to the paths of all devices before the newly added device during dynamic batch insertion.

9. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 1, characterized in that: The device uses a non-interactive zero-knowledge proof protocol to generate proof information, including designing the following non-interactive zero-knowledge proof circuit: Input one-dimensional array , one-dimensional array ,parameter ,parameter ,parameter ,parameter , public key , private key , one-dimensional array and parameters ; Calculation parameters ; Calculation parameters ; Perform the following loop operations: if , then calculate ; if , then calculate ; Among them, the variable The value range is ; Initializing variables , the value is 0, and then the following loop operation is performed: , then the variable The value of is set to 1; the variable The value range is ; Calculation parameters ; assertion Is it true? 10. The hybrid remote attestation method supporting batch addition and deletion of devices according to claim 1, characterized in that: The method further comprises: The device periodically uses non-interactive zero-knowledge proof to calculate the corresponding proof information for the device's measurement attribute value and submits this information to the proxy verifier smart contract; The proxy verifier smart contract verifies the authenticity and validity of this proof information. If both are not met, the device authentication fails and the device's measurement attribute value is at risk of being tampered with. The verifier inputs the device's public key and requests the device's status from the proxy verifier smart contract. If the response is that the proof is expired or empty, the verifier will select a random number as a challenge based on the HMAC authentication method; The authenticator issues a challenge to the device and accepts the device's response.

Citation Information

Patent Citations

  • Data ownership verification method, system and device and computer readable storage medium

    CN112311548A

  • Method for controlling validity of an attribute

    EP3809626A1

  • System for predicting falldown using dosage drug and the line of follow for patient

    KR1020210025177A

  • Apparatus and method for performing remote attestation by taking into account mobility

    US20230292129A1