Sensitive data possession proving method and device and electronic equipment
By generating public-private key pairs and encryption tags, aggregating the proof information of storage providers, solving the security problem of data holding verification in the decentralized storage environment in the prior art, achieving wider coverage and certainty Data holding verification.
Patent Information
- Application Number
- CN202411223880.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-03
- Publication Date
- 2025-01-07
AI Technical Summary
The existing data holding proof solution in the decentralized storage environment has defects in security, especially for the infrastructure departments with highly sensitive data. The existing solution may have vulnerabilities during data inspection and cannot be effectively guaranteed. Data security.
By generating public-private key pairs, processing sensitive data in segments and generating encryption tags for each data block, generating verification auxiliary parameters using hash tree and private key signatures, receiving challenge requests to generate response proof information, and for all storage providers Proof information is aggregated to verify the holding of sensitive data.
This method can check the data set composed of all sensitive data, with a wider coverage, avoid data omissions, and more representative and deterministic inspection results. It is suitable for infrastructure departments with highly sensitive data, improving data security.
Smart Images

Figure CN119276501A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data storage security technology, and in particular to a method, device and electronic equipment for proving possession of sensitive data. Background Art
[0002] With the continuous development of web3.0, more and more users are beginning to use decentralized storage to outsource data to save local storage space. However, after outsourcing the data, users lose control of the data and cannot guarantee the security of the outsourced data.
[0003] Therefore, a secure and efficient data possession proof scheme is needed to ensure the security of user data. Currently, most available data possession proof schemes in decentralized storage environments use random data blocks for selective (i.e., probabilistic) checks to verify data integrity, rather than checking the entire data set. Therefore, for infrastructure departments involving highly sensitive data, these schemes may have loopholes when performing data checks, which is unsafe for data storage.
[0004] There is currently no effective solution to the problem of low security in the existing data storage inspection process. Summary of the invention
[0005] The present invention provides a sensitive data possession proof method, device and electronic device to solve the defect of low security existing in the prior art.
[0006] In a first aspect, the present invention provides a method for proving sensitive data possession, comprising: Generate a public-private key pair for a target user; the public-private key pair includes a private key and a public key; Generate a data block label for the sensitive data, and determine a verification auxiliary parameter for the sensitive data based on the private key of the target user and the data block label of the sensitive data; Receiving a challenge request, and generating proof information corresponding to the challenge information according to the challenge request; the challenge request is generated according to the challenge information issued by the verifier; All the certification information is aggregated to obtain target certification information, and the target certification information is verified, and the possession of the sensitive data is determined based on the target certification information.
[0007] According to a sensitive data possession proof method provided by the present invention, a public-private key pair is generated for a target user, comprising: Randomly obtain a bilinear map and a secret value; A public-private key pair of the target user is determined based on the bilinear mapping and the secret value.
[0008] According to a sensitive data possession proof method provided by the present invention, a data block label for sensitive data is generated, including: Segmenting the sensitive data to obtain a number of data blocks; Allocating the data blocks to corresponding storage providers and generating a random label for each storage provider; For each of the storage providers, encrypt each data block that the storage provider needs to store to obtain an encrypted segment set; the encrypted segment set includes a plurality of encrypted elements; A data block tag of the sensitive data is determined based on the encryption element and the random tag.
[0009] According to a sensitive data possession proof method provided by the present invention, the data block label includes a verification label and an index label; determining the data block label of the sensitive data according to the encryption element and the random label includes: The encryption element and the random tag are connected to generate the verification tag; the verification tags of all data blocks to be stored by any of the storage providers constitute a verification tag subset, and the verification tag subsets corresponding to all the storage providers constitute a verification tag set; The index tag is determined according to the encrypted element; the index tags of all data blocks to be stored by any of the storage providers constitute an index tag subset, and the index tag subsets corresponding to all the storage providers constitute an index tag set.
[0010] According to a sensitive data possession proof method provided by the present invention, based on the private key of the target user and the data block label of the sensitive data, the verification auxiliary parameter of the sensitive data is determined, including: Generate a label tree using all the index labels according to the generation rule of the hash tree, and sign the root of the label tree using the private key of the target user to obtain a root signature; Determine, according to the random label of the storage provider, a corresponding computing auxiliary parameter of the storage provider; The cumulative value of the data block to be stored is obtained, and the verification auxiliary parameter is determined according to the cumulative value, the calculation auxiliary parameter and the verification tag set.
[0011] According to a sensitive data possession proof method provided by the present invention, the challenge information includes an authorization signature and a challenge index set, and the challenge index set includes challenge indexes corresponding to several storage providers; Generate proof information for the challenge information based on the challenge request, including: Verifying the authorized signature; The certification information is generated according to the challenge index and the calculation auxiliary parameter.
[0012] According to a sensitive data possession proof method provided by the present invention, the target proof information is verified, and the possession of the sensitive data is determined according to the target proof information, including: Generate a bilinear pairing based on the target proof information, and verify whether the bilinear pairing is established. If so, the possession verification of the sensitive data of all the storage providers is passed; If not, the certification information of each storage provider is verified until all storage providers that fail the verification are found.
[0013] According to a sensitive data possession proof method provided by the present invention, when the sensitive data is updated, the update evidence is verified to determine the correctness of the update action; the update evidence is generated by a storage provider that stores the sensitive data; the update action includes modification, insertion and deletion.
[0014] In a second aspect, the present invention further provides a sensitive data possession certification device, comprising: A key generation module, used to generate a public-private key pair for a target user; the public-private key pair includes a private key and a public key; A label generation module, used to generate a data block label for sensitive data, and determine the verification auxiliary parameter of the sensitive data based on the private key of the target user and the data block label of the sensitive data; A proof generating module, configured to receive a challenge request and generate proof information corresponding to the challenge information according to the challenge request; the challenge request is generated according to the challenge information issued by the verifier; The aggregation verification module is used to aggregate all the certification information to obtain target certification information, verify the target certification information, and determine the possession of the sensitive data based on the target certification information.
[0015] In a third aspect, the present invention further provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the method for proving the possession of sensitive data as described in the first aspect above is implemented.
[0016] In a fourth aspect, the present invention further provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the sensitive data possession proof method as described in the first aspect above.
[0017] In a fifth aspect, the present invention further provides a computer program product, comprising a computer program, which, when executed by a processor, implements the sensitive data possession proof method as described in the first aspect above.
[0018] The sensitive data possession proof method provided by the present invention aggregates the proof information received from all storage providers to obtain target proof information, and then verifies the target proof information to determine the possession of sensitive data. Since the target proof information aggregates the storage information of sensitive data from all storage providers, when performing possession verification, it is possible to check the data set composed of all sensitive data, the coverage of the inspection process is wider, data omissions can be avoided, and the inspection results are more representative and certain, which is more suitable for infrastructure departments with highly sensitive data, and solves the problem of low security in existing related technologies. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the technical solutions in the present invention or the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. 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 creative work.
[0020] Figure 1 is a flow chart of a sensitive data possession proof method provided by the present invention; Figure 2 It is a model diagram of the overall solution of the sensitive data possession proof method provided by the present invention; Figure 3 It is a schematic diagram of the structure for data processing of sensitive data; Figure 4 is a flow chart of data preprocessing of a client in an embodiment of the present invention; Figure 5 is a schematic diagram of the challenge and verification process in an embodiment of the present invention; Figure 6 is a flow chart of a storage provider generating a certificate in an embodiment of the present invention; Figure 7 It is a schematic diagram of the verification process in an embodiment of the present invention; Figure 8 It is a principle diagram of data updating in an embodiment of the present invention; Fig. 9 is a schematic diagram of the structure of a hash tree after a modification operation is performed in an embodiment of the present invention; Fig.10 is a schematic diagram of the structure of a hash tree after a data block insertion operation in an embodiment of the present invention; Fig.11is a schematic diagram of the structure of a hash tree after a data block deletion operation in an embodiment of the present invention; Fig.12 It is a structural block diagram of the sensitive data possession certification device provided by the present invention; Fig.13 It is a structural schematic diagram of the electronic device provided by the present invention. DETAILED DESCRIPTION
[0021] In order to make the purpose, technical solution and advantages of the present invention clearer, the technical solution of the present invention will be clearly and completely described below in conjunction with the drawings 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 creative work are within the scope of protection of the present invention.
[0022] The present invention provides a sensitive data possession proof method. Figure 1 is a flow chart of the sensitive data possession proof method provided by the present invention, such as Figure 1 As shown, the method comprises the following steps: Step S101, generating a public-private key pair for a target user; the public-private key pair includes a private key and a public key.
[0023] Step S102: Generate a data block label for the sensitive data, and determine the verification auxiliary parameter of the sensitive data based on the private key of the target user and the data block label of the sensitive data.
[0024] Step S103, receiving a challenge request, and generating proof information corresponding to the challenge information according to the challenge request; the challenge request is generated according to the challenge information issued by the verifier.
[0025] Step S104, aggregate all the proof information to obtain target proof information, verify the target proof information, and determine the possession of sensitive data based on the target proof information.
[0026] In this method, first, for the target user, the client generates a public-private key pair. Then, for the sensitive data that needs to be stored, the client generates the corresponding data block label, and processes the data block label, and generates the verification auxiliary parameters of the sensitive data in combination with the previously generated private key. The verifier issues a challenge message and generates a challenge request based on the challenge message. The challenge request is sent to the corresponding storage provider, and the decentralized storage provider (hereinafter referred to as the storage provider) generates proof information for responding to the challenge message based on the challenge request, and sends the proof information to the third-party verifier (TPA). The third-party verifier aggregates the proof information of all storage providers received to obtain the target proof information, and then verifies the target proof information to determine the possession of the sensitive data. Since the target proof information aggregates the storage information of all storage providers on sensitive data, when performing possession verification, it is possible to check the data set composed of all sensitive data, the coverage of the inspection process is wider, data omissions can be avoided, and the inspection results are more representative and certain, which is more suitable for infrastructure departments with highly sensitive data, and solves the problem of low security in existing related technologies.
[0027] like Figure 2 As shown, Figure 2 This is a model diagram of the overall solution of the sensitive data possession proof method provided by the present invention. In the actual implementation of this method, there are three roles: data owner, decentralized storage network, and third-party verifier. Decentralized storage provides network sharing f After uploading the data to the decentralized storage network, the data owner can submit a verification request to the third-party verifier, and the third-party verifier will challenge the storage provider. The storage provider that stores the user's files will generate corresponding proof information based on the challenge information and send it to the third-party verifier. The verifier will verify the proof information and send the verification result to the data owner.
[0028] In some of the embodiments, step S101, generating a public-private key pair for a target user, includes: randomly obtaining a bilinear mapping and a secret value; and determining the public-private key pair of the target user based on the bilinear mapping and the secret value.
[0029] For example, randomly select a bilinear map :
[0030] in G 1 and The average order is The cyclic group of The client generates a secret value as well as G Generator, calculation As the target user's public key, return the target user's private key and the public key .in, for G Generator of 1.
[0031] In some of the embodiments, Figure 3 As shown, Figure 3 The invention is a structural diagram of data processing for sensitive data, wherein step S102 generates a data block label for the sensitive data, including: segmenting the sensitive data to obtain a plurality of data blocks; allocating the data blocks to corresponding storage providers, and generating a random label for each storage provider; for each storage provider, encrypting each data block that the storage provider needs to store to obtain an encrypted segment set; the encrypted segment set includes a plurality of encrypted elements; and determining the data block label for the sensitive data according to the encrypted elements and the random label.
[0032] In this embodiment, the data block label includes a verification label and an index label. Determining the data block label of sensitive data according to the encryption element and the random label includes: connecting the encryption element and the random label to generate a verification label; the verification labels of all data blocks to be stored by any storage provider constitute a verification label subset, and the verification label subsets corresponding to all storage providers constitute a verification label set; determining the index label according to the encryption element; the index labels of all data blocks to be stored by any storage provider constitute an index label subset, and the index label subsets corresponding to all storage providers constitute an index label set.
[0033] For example, Figure 4 As shown, Figure 4 is a data preprocessing flow chart of the client in an embodiment of the present invention. The client divides the sensitive data F into n The length of each segment is bits, where F={ ,.., }. Assuming there are f storage providers, F will be split into f parts. k Storage providers need to store data blocks ={ ,…, }, , It is k The number of data blocks that the storage provider needs to store, R In cryptography, it means random extraction. In this embodiment, it means the k Storage providers store The data block is from the sensitive data F nThe client generates a random label for each storage provider. , , v It is a set of random numbers that need to be selected to verify sensitive data. The owner of sensitive data uses symmetric encryption technology to encrypt the data blocks that each storage provider needs to store, and obtains encryption elements, such as , all encryption elements corresponding to each storage provider constitute the encryption segment set .
[0034] The client randomly selects a bilinear map e:
[0035] in G 1. G 2 and The average order is The cyclic group of , is a safety parameter. for G The generator of 1, for G 2. The client from p -1 factorial cyclic group randomly generates s, s .
[0036] The client connects via and Generate a Length of the authentication tag in bits , = || , then the verification label subset is , verify that the tag set is . The client computes the index tag , , then the index label subset is , the index label set is .
[0037] Based on the above embodiment, step S102 determines the verification auxiliary parameters of the sensitive data based on the private key of the target user and the data block label of the sensitive data, including: generating a label tree for all index labels according to the generation rule of the hash tree, and signing the root of the label tree with the private key of the target user to obtain a root signature; determining the calculation auxiliary parameters of the corresponding storage provider according to the random label of the storage provider; obtaining the cumulative value of the data block to be stored, and determining the verification auxiliary parameters according to the cumulative value, the calculation auxiliary parameters and the verification label set.
[0038] For example, all index tags are generated into a tag tree according to the Merkle Hash Tree (MHT) generation rule, and the client signs the root of the tag tree with a private key to obtain the root signature. , R represents the hash value of the root node. The client is k Storage provider calculation parameters = ,s , and the computation tuple t = ( , ,… ), It is an auxiliary parameter required by the storage provider to generate proof. , s is a random value generated by the data owner and kept private by the user. Representation model p The integer multiplication cyclic group of , where p is a prime number, s Represents the random sampling from this multiplication cycle group to generate s. t is a tuple that contains a set of elements that are auxiliary parameters required by the storage provider to generate proofs, t∈ , It's a group G The generator of 2, Indicates s n The power of s n Second power, n is the total number of data blocks. The client will process the encrypted segment set and index tags And the generated calculation auxiliary parameters Send to the corresponding k storage provider and sign the root , tag trees and index tag collections The corresponding storage provider’s address table is updated on the blockchain. Finally, the client calculates the cumulative value of the stored sensitive data. = , It's a group G Generator of 1. Generate verification auxiliary parameters , and send the verification auxiliary parameters to the verifier.
[0039] In this embodiment, if Figure 5 As shown, Figure 5The schematic diagram of the challenge and verification process in the embodiment of the present invention is as follows. The challenge information includes an authorization signature and a challenge index set. The challenge index set includes challenge indexes corresponding to several storage providers. Step S103 generates proof information for responding to the challenge information according to the challenge request, including: verifying the authorization signature; generating proof information according to the challenge index and calculation auxiliary parameters.
[0040] For example, the verifier sends a challenge message ,in Indicates authorized signature, chall Indicates the set of challenge indexes that need to be selected to verify sensitive data. , Indicates that it is sent to k The challenge index of a storage provider corresponds to a data block stored by the storage provider. The validator generates a challenge request based on the challenge information and broadcasts it to all storage providers.
[0041] like Figure 6 As shown, Figure 6 This is a flowchart of a storage provider generating a certificate in an embodiment of the present invention. The storage provider first verifies the authorization signature. , then, by using the calculation auxiliary parameters To calculate the proof information. Specifically, the server connects to and Generate a Bit length label , = || , Storage providers from chall Get challenge information from , It is an index information corresponding to a data block stored by the storage provider , then according to = || You can find the corresponding verification tag The storage provider does not know the value of s and can only s as unknowns, and then evaluate the polynomial . Expand the polynomial ,Will Convert to In this way, we get the polynomial The coefficient of },in s represents an unknown number, { }yes s The coefficient of The proof information can be calculated by the following formula:
[0042]
[0043] in, Indicates proof information. Include and challenge information. Indicates that the kth storage provider receives the challenge message The certification information generated later. express s The coefficients of , specifically the polynomial This polynomial expands the brackets to each s The coefficients of The coefficient of is , that is The coefficient of . Indicates s i Power. It is k Auxiliary parameters required by storage providers to generate proofs. Pass the challenge The verification tag generated by the corresponding block. Indicates k The number of data blocks that the storage provider needs to store, Indicates that it is sent to k Storage Provider Challenge Index, No. k The server sends the proof information to the third-party verifier.
[0044] In some of the embodiments, step S104 verifies the target proof information and determines the possession of sensitive data based on the target proof information, including: generating a bilinear pairing based on the target proof information, and verifying whether the bilinear pairing holds. If so, the possession of sensitive data of all storage providers is verified; if not, the proof information of each storage provider is verified until all storage providers that fail the verification are found.
[0045] For example, Figure 7 As shown, Figure 7 This is a schematic diagram of the verification process in an embodiment of the present invention. After receiving the certification information sent by all storage providers, the third-party verifier generates a corresponding challenge tag set. , Represents the challenge information sent by the third-party verifier to the f-th storage provider. The decentralized storage network assumes that there are f storage providers, Expressing Challenge The verification tag information generated by the corresponding data block calculates the polynomial , and get the first derivative of the polynomial Then, perform an aggregation operation on all the proof information to calculate the aggregated target proof information , the specific calculation process is as follows:
[0046]
[0047]
[0048] in, Represents the aggregated proof generated by aggregating the proof information of all storage providers. Represents the proof information sent by the i-th storage provider to the verifier, That is The cth power, c is an intermediate parameter in the calculation process. Represents a verification tag. A third-party verifier verifies the bilinear pairing If true, it means the verification is successful. If not, the proof information of each storage provider is Verify as follows:
[0049] Until all storage providers that fail the verification are found and corresponding punishment measures are taken against these storage providers.
[0050] In some of the embodiments, Figure 8 As shown, Figure 8 It is a principle diagram of data update in an embodiment of the present invention. When sensitive data is updated, update evidence is verified to determine the correctness of the update action; the update evidence is generated by the storage provider that stores the sensitive data; the update action includes modification, insertion and deletion.
[0051] For example, to verify the update, the client first parses Indicates data block update request information The first element in , for example, if Indicates that this update is a modification operation, and the same applies to insertion and deletion. According to the semantics, the update actions involved in this update are parsed. For different update actions, the verification process is as follows: Modification of data blocks: Data block modification is the most frequently used operation by users, that is, users replace specific old data blocks with new data blocks. Compared with data block deletion and data block insertion, data block modification only modifies the content of the data block and does not change the data structure of the hash tree.i Data blocks Modified to First, the client will calculate the new data block Verification tag and index tags , and then generate a data block update request information , and send it to the storage provider that stores the corresponding data block, M Indicates the modification action of a data block. The user will need to modify the data block Verification tag Sent to a third-party verifier, i.e. update request .
[0052] The third-party verifier receives the update request After that, immediately execute the update verification parameter operation ExecUpdateVerify( ). The details are as follows: First, the third-party verifier uses the new verification tag Replace the old verification tag , and generate a new set of verification labels ; Then, the verification metadata is calculated using the new verification signature set = , , and then use the new verification auxiliary parameters Replace the old verification auxiliary parameters ; Then, recalculate the parameters for the kth storage provider = ; Finally, the updated calculation auxiliary parameters Send to the corresponding k storage provider.
[0053] After receiving the update request information, the storage provider will immediately execute the update action ExecUpdate(F,update, ), as follows: First, the storage provider uses the new data block Replace the old data block , and use the new calculation auxiliary parameters Replace the old calculation auxiliary parameters ; then use the new index signature Replace the old index signature , and generate a new set of index signatures ; Finally, use the new data block hash value Replace the old data block hash value .
[0054] The storage provider generates an update certificate After receiving the update proof, the client will use the unmodified hash tree and data block hash value on the blockchain to Generate a new root R , and update the certification information The client will then compare the data with the new root key to determine whether the storage provider has modified the data block as required. If they are the same, the output is TRUE. Otherwise, it proves that the storage provider has not updated the data block as required. Sign , and send it to the storage provider. After receiving the information, the storage provider will update the relevant information on the blockchain, including the updated hash tree and root signature. And the index tag collection Finally, the client will compare the root on the blockchain with the calculated new root to ensure the correctness of the information on the blockchain. The structure of the hash tree after the data block modification operation is as follows: Fig. 9 As shown, Fig. 9 It is a schematic diagram of the structure of the hash tree after the modification operation is performed in an embodiment of the present invention.
[0055] For data block insertion: Data block insertion refers to inserting a new data block at a specific location. Compared with the data block modification operation that does not modify the hash tree data structure, the data block insertion operation adds a new data block at a specific location in the hash tree. i Data blocks Then insert a new data block The update process is similar to the data block modification process. First, the user side calculates the new data block. Verification tag and index tags , and then generate a data block update request information , and send it to the storage provider that stores the corresponding data block, I Indicates the data block insertion action. The user will insert the data block to be Verification tag Sent to third-party verifiers, i.e. update requests .
[0056] The third-party verifier receives the update request After that, immediately execute the update verification parameter operation ExecUpdateVerify( ), as follows: First, the third-party verifier adds a new verification tag To the verification tag set And output a new set of verification labels ; Then calculate the verification metadata with the new set of verification tags = , ; Then use the new verification auxiliary parameters Replace the old verification auxiliary parameters ; then for the k Storage providers recalculate parameters = ; Finally, the updated calculation auxiliary parameters Send to the corresponding k storage provider.
[0057] After receiving the update request information, the storage provider will immediately execute the update operation ExecUpdate(F,update, ), as follows: First, the storage provider stores the new data block and uses the new calculation auxiliary parameters Replace the old calculation auxiliary parameters , add a new data block Index tags To the index tag collection And output a new set of index tags , and finally update the hash tree to get the new root .
[0058] The storage provider generates an update certificate After receiving the update proof, the client will use the unmodified hash tree and data block hash value on the blockchain to Generate a new root R , and update the certification information The client will then compare the data with the new root key to determine whether the storage provider has inserted the data block as required. If they are the same, the output is TRUE. Otherwise, it proves that the storage provider has not updated the data block as required. Sign , and send it to the storage provider. After receiving the information, the storage provider will update the relevant information on the blockchain, including the updated hash tree and root signature. And the index tag collection Finally, the client will compare the root on the blockchain with the calculated new root to see if they are equal, thus ensuring the correctness of the information on the blockchain. Fig.10 As shown, Fig.10 Schematic diagram of the structure of the hash tree after the data block insertion operation in the embodiment of the present invention. The user wants to insert a new data block after the second data block. , only nodes and an internal node C is added to the hash tree data structure. .
[0059] Deleting a data block: Deleting a data block means deleting a data block at a specific location. Similar to inserting a data block, it will also change the data structure of the hash tree. i Data blocks , the client generates an update request , and send it to the storage provider that stores the corresponding data block, D Represents a data block deletion operation. The user will delete the data block that needs to be deleted Verification tag Sent to a third-party verifier, i.e. update request .
[0060] The third-party verifier receives the update request After that, the update verification parameter operation ExecUpdateVerify( ), as follows: First, the third-party verifier deletes the new verification tag And generate a new set of verification labels ; Then calculate the verification metadata with the new set of verification tags = , ; Then use the new verification auxiliary parameters Replace the old verification auxiliary parameters ; then for the k Storage providers recalculate parameters = ; Finally, the updated calculation auxiliary parameters Send to the corresponding k storage provider.
[0061] After receiving the update request information, the storage provider will immediately execute the update operation ExecUpdate(F,update, ), as follows: First, the storage provider deletes the data block , and use the new calculation auxiliary parameters Replace the old calculation auxiliary parameters , delete the data block Index tags And output a new set of index tags , and finally update the hash tree to get the new root .
[0062] The storage provider generates an update certificate After receiving the update proof, the client will use the unmodified hash tree and data block hash value on the blockchain to Generate a new root R , and update the certification information The client will compare the two keys to determine whether the storage provider has deleted the data block as required. If they are the same, the output is TRUE. Otherwise, it proves that the storage provider has not updated the data block as required. After that, the client will use the private key to verify the new root key. Sign , and send it to the storage provider. After receiving the information, the storage provider will update the relevant information on the blockchain, including the updated hash tree and root signature. And the index tag collection Finally, the client will compare the root on the blockchain with the calculated new root to see if they are equal, thus ensuring the correctness of the information on the blockchain. Fig.11 As shown, Fig.11 Schematic diagram of the structure of the hash tree after the data block deletion operation in the embodiment of the present invention. The user wants to delete the second data block. Only the node and its parent node is deleted, the node The sibling node replaces its parent node.
[0063] The present invention also provides a sensitive data possession proof device. The sensitive data possession proof device provided by the present invention is described below. The sensitive data possession proof device described below and the sensitive data possession proof method described above can be referenced to each other. Fig.12 is a structural block diagram of the sensitive data possession proof device provided by the present invention, such as Fig.12 As shown, the device comprises: The key generation module 1201 is used to generate a public-private key pair for a target user; the public-private key pair includes a private key and a public key; The label generation module 1202 is used to generate a data block label for sensitive data, and determine the verification auxiliary parameter of the sensitive data based on the private key of the target user and the data block label of the sensitive data; The proof generating module 1203 is used to receive the challenge request and generate proof information corresponding to the challenge information according to the challenge request; the challenge request is generated according to the challenge information issued by the verifier; The aggregate verification module 1204 is used to aggregate all the proof information to obtain target proof information, verify the target proof information, and determine the possession of sensitive data based on the target proof information.
[0064] When the device is in use, first, for the target user, the key generation module 1201 generates a public-private key pair. Then, for the sensitive data that needs to be stored, the label generation module 1202 generates a corresponding data block label, and performs data processing on the data block label, and generates verification auxiliary parameters for the sensitive data in combination with the previously generated private key. The verifier issues a challenge message and generates a challenge request based on the challenge message. The challenge request is sent to the corresponding storage provider, and the proof generation module 1203 generates proof information for responding to the challenge message based on the challenge request, and sends the proof information to the third-party verifier (TPA). The third-party verifier aggregates the proof information of all storage providers received through the aggregate verification module 1204 to obtain the target proof information, and then verifies the target proof information to determine the possession of the sensitive data. Since the target proof information aggregates the storage information of all storage providers on sensitive data, when performing possession verification, it is possible to check the data set composed of all sensitive data, the coverage of the inspection process is wider, data omissions can be avoided, and the inspection results are more representative and certain, which is more suitable for infrastructure departments with highly sensitive data, and solves the problem of low security in existing related technologies.
[0065] In addition, the device is also provided with an update verification module, which is used to verify update evidence and determine the correctness of the update action when sensitive data is updated; the update evidence is generated by the storage provider that stores the sensitive data.
[0066] Fig.13 An example of a physical structure diagram of an electronic device is shown in FIG. Fig.13 As shown, the electronic device may include: a processor 1301, a communication interface 1302, a memory 1303 and a communication bus 1304, wherein the processor 1301, the communication interface 1302 and the memory 1303 communicate with each other through the communication bus 1304. The processor 1301 may call the logic instructions in the memory 1303 to execute the sensitive data possession proof method, which includes: Generate a public-private key pair for the target user; the public-private key pair includes a private key and a public key; Generate a data block label for sensitive data, and determine the verification auxiliary parameters of the sensitive data based on the private key of the target user and the data block label of the sensitive data; Receive challenge requests and generate proof information to respond to challenge information based on the challenge requests; challenge requests are generated based on challenge information issued by the verifier; All proof information is aggregated to obtain target proof information, which is then verified to determine the possession of sensitive data based on the target proof information.
[0067] In addition, the logic instructions in the above-mentioned memory 1303 can be implemented in the form of a software functional unit and can be stored in a computer-readable storage medium when it is sold or used as an independent product. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk, etc. Various media that can store program codes.
[0068] On the other hand, the present invention further provides a computer program product, the computer program product comprising a computer program, the computer program can be stored on a non-transitory computer-readable storage medium, when the computer program is executed by a processor, the computer can execute the sensitive data possession proof method provided by the above methods, the method comprising: Generate a public-private key pair for the target user; the public-private key pair includes a private key and a public key; Generate a data block label for sensitive data, and determine the verification auxiliary parameters of the sensitive data based on the private key of the target user and the data block label of the sensitive data; Receive challenge requests and generate proof information to respond to challenge information based on the challenge requests; challenge requests are generated based on challenge information issued by the verifier; All proof information is aggregated to obtain target proof information, which is then verified to determine the possession of sensitive data based on the target proof information.
[0069] In another aspect, the present invention further provides a non-transitory computer-readable storage medium having a computer program stored thereon, which is implemented when the computer program is executed by a processor to perform the sensitive data possession proof method provided by the above methods, the method comprising: Generate a public-private key pair for the target user; the public-private key pair includes a private key and a public key; Generate a data block label for sensitive data, and determine the verification auxiliary parameters of the sensitive data based on the private key of the target user and the data block label of the sensitive data; Receive challenge requests and generate proof information to respond to challenge information based on the challenge requests; challenge requests are generated based on challenge information issued by the verifier; All proof information is aggregated to obtain target proof information, which is then verified to determine the possession of sensitive data based on the target proof information.
[0070] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.
[0071] Through the description of the above implementation methods, those skilled in the art can clearly understand that each implementation method can be implemented by means of software plus a necessary general hardware platform, and of course, can also be implemented by hardware. Based on this understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, a disk, an optical disk, etc., including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.
[0072] 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 make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for proving possession of sensitive data, characterized in that: include: Generate a public-private key pair for a target user; the public-private key pair includes a private key and a public key; Generate a data block label for the sensitive data, and determine a verification auxiliary parameter for the sensitive data based on the private key of the target user and the data block label of the sensitive data; Receiving a challenge request and generating proof information corresponding to the challenge information according to the challenge request; The challenge request is generated according to the challenge information issued by the verifier; All the certification information is aggregated to obtain target certification information, and the target certification information is verified, and the possession of the sensitive data is determined based on the target certification information.
2. The sensitive data possession proof method according to claim 1, characterized in that: Generate a public-private key pair for the target user, including: Randomly obtain a bilinear map and a secret value; A public-private key pair of the target user is determined based on the bilinear mapping and the secret value.
3. The sensitive data possession proof method according to claim 1, characterized in that: Generate data block labels for sensitive data, including: Segmenting the sensitive data to obtain a number of data blocks; Allocating the data blocks to corresponding storage providers and generating a random label for each storage provider; For each of the storage providers, encrypt each data block that the storage provider needs to store to obtain an encrypted segment set; the encrypted segment set includes a plurality of encrypted elements; A data block tag of the sensitive data is determined based on the encryption element and the random tag.
4. The sensitive data possession proof method according to claim 3, characterized in that: The data block label includes a verification label and an index label; determining the data block label of the sensitive data according to the encryption element and the random label includes: The encryption element and the random tag are connected to generate the verification tag; the verification tags of all data blocks to be stored by any of the storage providers constitute a verification tag subset, and the verification tag subsets corresponding to all the storage providers constitute a verification tag set; The index tag is determined according to the encrypted element; the index tags of all data blocks to be stored by any of the storage providers constitute an index tag subset, and the index tag subsets corresponding to all the storage providers constitute an index tag set.
5. The sensitive data possession proof method according to claim 4, characterized in that: Determining verification auxiliary parameters of the sensitive data based on the private key of the target user and the data block tag of the sensitive data includes: Generate a label tree using all the index labels according to the generation rule of the hash tree, and sign the root of the label tree using the private key of the target user to obtain a root signature; Determine, according to the random label of the storage provider, a corresponding computing auxiliary parameter of the storage provider; The cumulative value of the data block to be stored is obtained, and the verification auxiliary parameter is determined according to the cumulative value, the calculation auxiliary parameter and the verification tag set.
6. The sensitive data possession proof method according to claim 5, characterized in that: The challenge information includes an authorization signature and a challenge index set, wherein the challenge index set includes challenge indexes corresponding to the plurality of storage providers; Generate proof information for the challenge information based on the challenge request, including: Verifying the authorized signature; The certification information is generated according to the challenge index and the calculation auxiliary parameter.
7. The sensitive data possession proof method according to claim 1, characterized in that: Verifying the target certification information and determining the possession of the sensitive data according to the target certification information includes: Generate a bilinear pairing based on the target proof information, and verify whether the bilinear pairing is established. If so, the possession verification of the sensitive data of all the storage providers is passed; If not, the certification information of each storage provider is verified until all storage providers that fail the verification are found.
8. The sensitive data possession proof method according to claim 1, characterized in that: When the sensitive data is updated, the update evidence is verified to determine the correctness of the update action; the update evidence is generated by the storage provider that stores the sensitive data; the update action includes modification, insertion and deletion.
9. A sensitive data possession proof device, characterized in that: include: A key generation module, used to generate a public-private key pair for a target user; the public-private key pair includes a private key and a public key; A label generation module, used to generate a data block label for sensitive data, and determine the verification auxiliary parameter of the sensitive data based on the private key of the target user and the data block label of the sensitive data; A proof generating module, configured to receive a challenge request and generate proof information corresponding to the challenge information according to the challenge request; the challenge request is generated according to the challenge information issued by the verifier; The aggregation verification module is used to aggregate all the certification information to obtain target certification information, verify the target certification information, and determine the possession of the sensitive data based on the target certification information.
10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the sensitive data possession proof method as described in any one of claims 1 to 8 is implemented.