Cloud data auditing method, system and equipment based on block chain
Through the blockchain-based cloud data audit method, the collaborative work of the key generation center, proxy server, cloud service provider, third-party auditing agency and blockchain structure is solved, and the problems of high computing power consumption, third-party untrustworthy, user privacy leakage and data cannot be dynamically updated in traditional cloud data audit solutions are achieved, and efficient and secure data audit and dynamic updates are achieved.
Patent Information
- Application Number
- CN202510114335.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-24
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2045-01-24
AI Technical Summary
Traditional cloud data auditing solutions rely on third-party audit institutions, and have problems such as high computing power consumption, untrustworthy third-party, user privacy leakage and data cannot be updated dynamically.
The blockchain-based cloud data audit method is adopted, and the data is blocked blinding, signature, Merkel hash tree construction and dynamic update through the collaborative work of the key generation center, proxy server, cloud service provider, third-party auditing agency and blockchain structure.
It improves the efficiency and security of data audits, reduces dependence on third-party audit institutions, supports dynamic data updates, and ensures data integrity and privacy protection through the immutable characteristics of blockchain.
Smart Images

Figure CN119835081A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of cloud data security technology, and in particular to a cloud data auditing method, system and device based on blockchain. Background Art
[0002] Cloud computing is increasingly used in daily life. Based on robust scalability and various application requirements, cloud computing can provide users with more powerful computing resources and data storage experience. Cloud storage technology is different from traditional storage methods, providing users with a large amount of storage capacity and the convenience of data access regardless of geographical location. However, when storing data in the cloud, users also lose control of the integrity of the data. Whether it is malicious damage and tampering of data by cloud service providers, or hardware failure and human error, the data stored in the cloud will be destroyed. Based on this problem, cloud data auditing solutions came into being.
[0003] Traditional cloud data auditing solutions mostly rely on third-party auditing agencies. Users entrust their auditing needs to an unreliable third-party agency, which will prove the integrity of the data stored in the cloud service provider. However, there are still many problems: 1. It takes a lot of computing power for users to sign data locally, and lightweight users cannot undertake the signing task of large data sets. 2. Third-party auditing agencies are untrustworthy entities and are prone to colluding with cloud service providers to deceive users. 3. Cloud service providers and users need to interact directly during the data storage and auditing process, and user privacy is at risk of being leaked. 4. Users cannot perform efficient dynamic operations on data stored in the cloud. Summary of the invention
[0004] The present application provides a cloud data audit method, system and device based on blockchain to solve the problems in the above-mentioned background technology.
[0005] In a first aspect, the present application provides a cloud data audit method based on blockchain, comprising:
[0006] S1: The key generation center generates system parameters and generates a partial private key based on the user identity. The user generates an authorization private key based on the partial private key and sends an authorization request to the proxy server. The proxy server verifies the request and generates an encryption key pair.
[0007] S2: The user blinds the original data block locally, the proxy server signs the data block and generates a Merkle hash tree based on the bucket structure, the cloud service provider performs integrity verification on the received user file and saves the data, and uploads the Merkle hash tree root value to the blockchain;
[0008] S3: After receiving the audit request from the user, the third-party audit agency generates a challenge request and sends it to the cloud service provider. The cloud service provider generates a challenge response based on the parameters in the challenge set. The third-party audit agency determines whether the data stored in the cloud is complete based on bilinear mapping, returns the audit result to the user, and generates a transaction record on the blockchain.
[0009] Furthermore, step S1 specifically includes:
[0010] The key generation center generates the multiplication cycle group and the group generator, hash function, public key pair and related system parameters according to the given system security parameters, and uploads them to the blockchain;
[0011] The key generation center calculates the user's partial private key based on the identity information sent by the user and sends it back to the user. After receiving the partial private key, the user verifies it according to the hash function on the chain to ensure that the private key is correct. The user calculates the authorization private key and public key based on the partial private key and random number;
[0012] The user generates an authorization certificate and sends it to the proxy server. The proxy server verifies the legitimacy of the certificate based on the user's authorization private key, then accepts the authorization request and generates a data encryption private key and public key.
[0013] Furthermore, step S2 specifically includes:
[0014] The user divides and blinds the original data block locally, and sends the blinded data block to the proxy server through the off-chain secure channel;
[0015] The proxy server signs the data block with the encryption key and generates a Merkle hash tree based on the bucket structure according to the data partition information sent by the user. Finally, the data block, data signature and Merkle hash tree are sent to the cloud service provider.
[0016] The cloud service provider verifies the correctness and integrity of the received data block based on the bilinear mapping formula, and uploads the root value of the Merkle hash tree to the blockchain.
[0017] Furthermore, step S3 specifically includes:
[0018] After receiving the audit request from the user, the third-party audit agency generates random values and random weights to construct a challenge set, and sends the challenge request to the cloud service provider;
[0019] The cloud service provider sends a challenge response to the third-party audit structure, which includes the aggregate signature and aggregate data generated according to the challenge parameters, as well as the root value of the Merkle hash tree stored in the cloud to the third-party audit organization;
[0020] The third-party auditing agency extracts the Merkle hash tree root value saved in the latest block and compares it with the received challenge response, and uses bilinear mapping to determine the integrity of the data stored in the cloud. Finally, the audit results are returned to the user and recorded in the blockchain as a transaction.
[0021] Furthermore, it also includes:
[0022] S4: The bucket-based Merkle hash tree structure supports users' dynamic update operations on data. Users send dynamic update requests to cloud service providers to update, delete or add cloud data.
[0023] Furthermore, step S4 specifically includes:
[0024] The user generates a dynamic insertion request and sends it to the proxy server. After receiving the request, the proxy server first verifies the legitimacy of the delegation information, then calculates the signature for the data block and sends it to the cloud service provider;
[0025] The cloud service provider verifies the aggregate signature to ensure the integrity of the data, then modifies, inserts, or deletes the data value of the corresponding bucket element through the location tag, updates the hash value on the relevant path, records the updated root value to the latest block on the blockchain, and returns the update response information to the user.
[0026] Furthermore, it also includes:
[0027] S5: When the data integrity proof provided by the cloud service provider fails the audit, the third-party audit agency broadcasts the specific location of the erroneous data block and related auxiliary information through the blockchain, and returns an audit failure message to the user.
[0028] In the second aspect, the present application provides a blockchain-based cloud data audit system, including a key generation center, a proxy server, a cloud service provider, a third-party auditing agency and a blockchain structure; the blockchain-based cloud data audit system is used to implement the blockchain-based cloud data audit method as described above.
[0029] In a third aspect, the present application 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 computer program, the blockchain-based cloud data auditing method as described above is implemented.
[0030] In a fourth aspect, the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the blockchain-based cloud data audit method as described above.
[0031] The above technical solution of the present application has the following advantages:
[0032] The first aspect of this application provides a blockchain-based cloud data audit method that utilizes the tamper-proof nature of blockchain technology to store user data information on the chain in the form of a bucket-structured Merkle tree and provide relevant auxiliary information to achieve rapid positioning during the data audit process; using the relevant knowledge of bilinear pair mapping and hash collision, the integrity positioning of outsourced data is safely and efficiently achieved. By introducing blockchain technology, authorization mechanism, data encryption, and random audit verification, user data security is protected, non-interactive audit work between cloud service providers and users is achieved, audit efficiency is improved, and malicious behaviors such as replay attacks, collusion attacks, and forgery attacks that occur during the audit process can be prevented.
[0033] It can be understood that the beneficial effects of the second, third and fourth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] In order to more clearly illustrate the specific implementation methods of the present application or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0035] Figure 1 A schematic diagram of a blockchain-based cloud data audit system provided for this application;
[0036] Figure 2 A flowchart of the blockchain-based cloud data audit method provided for this application;
[0037] Figure 3 A schematic diagram of a bucket-structured Merkle tree provided for this application;
[0038] Figure 4 A schematic diagram of the structure of the electronic device provided in this application. DETAILED DESCRIPTION
[0039] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.
[0040] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or combinations thereof.
[0041] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.
[0042] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways. "Multiple" means "two or more".
[0043] The specific implementation methods of the present application are further described in detail below in conjunction with the accompanying drawings and examples. The following examples are used to illustrate the present application but are not intended to limit the scope of the present application.
[0044] The embodiment of the present application provides a cloud data audit method based on blockchain, which specifically includes the following steps: S1: a key generation center generates system parameters and generates a partial private key of the user based on the user identity, the user generates an authorization private key based on the partial private key and sends an authorization request to the proxy server, and the proxy server generates an encryption key pair after verifying the request; S2: the user blinds the original data block locally, the proxy server signs the data block and generates a Merkle hash tree based on a bucket structure, the cloud service provider performs integrity verification on the received user file and saves the data, and uploads the Merkle hash tree root value to the blockchain; S3: after receiving the user's audit request, the third-party audit agency generates a challenge request and sends it to the cloud service provider, the cloud service provider generates a challenge response based on the parameters in the challenge set, and the third-party audit agency determines whether the data stored in the cloud is complete based on bilinear mapping, returns the audit result to the user and generates a transaction record on the blockchain.
[0045] like Figure 1As shown, this application mainly involves a key generation center (KGC), a user (U), a proxy server (PS), a cloud service provider (CSP), a third-party auditing organization (TPA) and a blockchain structure. The key generation center is responsible for generating system parameters and managing some keys of system participants. Users with limited computing power need to store local data in the cloud. Users authorize the proxy server locally and send the encrypted block-based original files to the proxy server for signing. In addition, users can make integrity audit requests or dynamic update requests at any time. The proxy server signs the encrypted data and builds a Merkle tree based on a bucket structure. After verifying the correctness of the data sent by the proxy server, the cloud service provider correctly stores the user's files and returns a response proof of the challenge block during the audit phase. The third-party auditing organization generates a random challenge block and initiates an audit challenge, and verifies the response returned by the cloud service provider. The blockchain structure participates in the preservation and auditing of data as an unalterable proof, records the interaction between entities and stores the H (Root) value.
[0046] like Figure 2 As shown in the figure, the key generation center generates a partial private key of the user based on the user identity and publishes the relevant system parameters on the blockchain; the user generates a signature pair; the user partitions and blinds the data and authorizes the proxy server with a partial private key; the proxy server calculates the data block signature and constructs a Merkle hash tree based on a bucket structure and sends it to the cloud service provider; the cloud service provider verifies the correctness of the data signature, saves the data in the cloud, and saves the Merkle hash tree root value to the blockchain; after receiving the user's audit request, the third-party audit agency conducts a random audit challenge on the data block stored in the cloud service provider and requires the cloud service provider to return a challenge response; the third-party audit agency performs integrity verification on the parameters returned by the cloud service provider. When the audit fails, the third-party audit agency returns the wrong data location information to the user, and the user sends a data dynamic update request.
[0047] Blockchain is a decentralized, tamper-proof, traceable, trustworthy, and multi-party shared distributed database. These features make it possible to build a decentralized storage network in the audit. Cloud service providers can join the network as on-chain nodes to contribute their computing power, and users can also encrypt local data and store it on the chain. In the blockchain-based cloud data audit solution, after the user uploads the data to the cloud service provider, a Merkle hash tree will be generated to store the hash value of the data, and the root value H (Root) of the tree will be uploaded to the blockchain as a proof of integrity. During the audit process, the changes in H (Root) can be verified to determine whether the cloud storage data has been tampered with.
[0048] In the blockchain data audit based on Merkle tree, the aggregate hash value H (Root) of the data block will be stored on the blockchain as a proof of integrity. Since the Merkle tree is a binary tree structure, each verification needs to traverse the path from the root node to the leaf node. If the depth of the tree is uneven, some leaf nodes are located deep in the tree, resulting in a long retrieval path during the audit, which will bring performance bottlenecks, especially when processing large-scale data, this bottleneck will be more obvious.
[0049] In addition, by comparing the Merkle tree root value, it can only detect whether the data block has been tampered with or lost, but it is impossible to accurately locate the specific erroneous data block. Because the Merkle tree verification mechanism only cares about the integrity of the data as a whole, it cannot provide fine-grained error location. This means that when the data is found to be damaged, the system needs to re-upload or rebuild the entire data structure, which increases the cost and complexity of data repair. In addition, the traditional Merkle hash tree cannot support users' dynamic operations on data.
[0050] The bucket-structured Merkle hash tree defined in the present application embodiment is described in detail in Figure 3 The structure of each bucket element is (H(m ij ),σ ij, tag ij ,ts ij ), containing the hash value H(m) corresponding to the data block ij ), data block signature σ ij , location tag ij and timestamp ts ij . Among them, H(m ij ) is data block b ij The blinded hash value is used to ensure the integrity of the data block; the data block signature σ ij Obtained after calculation by the user's signature, it is used to prove the integrity of the data block during the audit process; location tag ij Record the specific location where the data block is stored; timestamp ts ijRecord the generation time of the bucket element for the user. The leaf node generates the key value of the parent node by aggregating the hash values of the data blocks in the bucket, and the key value of the non-leaf node is obtained by recursively merging its child nodes. Except for the root node, the node structure is (H(x), count(x)), H(x) represents the data hash value corresponding to the node after aggregation from bottom to top, and count(x) is the accumulator count value, which indicates the total number of data blocks accessible through the node. Taking leaf node A as an example, H(m1) stored in the node is the hash value of data partition m1, defined as H(m1) = H(m(11)||H(m12)||H(m13)H(m13)); count(m1) = 4, indicating that the bucket structure maintained by this partition contains a total of four data blocks. For non-leaf node N A , the H(A) stored in the node is the leaf node N C and N D The result of hash value aggregation, and count(N A ) represents the total number of data blocks that can be accessed through this non-leaf node, that is, count(N A )=count(N C )+count(N D ).
[0051] The bucket-structured Merkle hash tree structure proposed in the embodiment of the present application is used to store user data. Different from the traditional Merkle tree in which each leaf node stores only one key value, the leaf node of the improved tree structure of the present application maintains a bucket structure, and each bucket contains multiple metadata. The design goal of the bucket-structured Merkle hash tree is to optimize the efficiency of insertion and deletion operations by reducing frequent global reconstruction and maintenance. The frequent splitting of the tree is reduced during dynamic operations, avoiding triggering the adjustment of the global structure when updating data, while also retaining the advantages of the Merkle hash tree in blockchain data auditing.
[0052] This application example reduces the computing burden of users by introducing a proxy server and supports batch verification of multiple challenge blocks, which is suitable for scenarios with large amounts of data. The audit interaction behaviors and results described are broadcasted through the blockchain, which can effectively prevent deception between entities and reduce reliance on untrusted third-party audit institutions, ensuring that the audit process is credible and fair, and solving the problems of single point failure, computing power consumption, data not being able to be dynamically updated, and user privacy leakage in existing cloud audit solutions.
[0053] In some embodiments, step S1 specifically includes: the key generation center generates a multiplication cycle group and group generators, hash functions, public key pairs and related system parameters according to given system security parameters, and uploads them to the blockchain; the key generation center calculates the user's partial private key according to the identity information sent by the user, and sends it back to the user. After receiving the partial private key, the user verifies it according to the hash function on the chain to ensure that the private key is correct. The user calculates the authorization private key and public key based on the partial private key and the random number; the user generates an authorization certificate and sends it to the proxy server. The proxy server verifies the legitimacy of the certificate based on the user's authorization private key and accepts the authorization request, and generates a data encryption private key and public key.
[0054] In some embodiments, step S2 specifically includes: the user locally divides and blinds the original data block, and sends the blinded data block to the proxy server through an off-chain secure channel; the proxy server signs the data block with an encryption key, and generates a Merkle hash tree based on a bucket structure according to the data partition information sent by the user, and finally sends the data block, data signature and Merkle hash tree to the cloud service provider; the cloud service provider verifies the correctness and integrity of the received data block based on the bilinear mapping formula, and uploads the root value of the Merkle hash tree to the blockchain.
[0055] In some embodiments, step S3 specifically includes: after receiving the audit request from the user, the third-party audit agency generates random values and random weights to construct a challenge set, and sends the challenge request to the cloud service provider; the cloud service provider sends a challenge response to the third-party audit structure, including an aggregate signature and aggregate data generated according to the challenge parameters, and the root value of the Merkle hash tree stored in the cloud to the third-party audit agency; the third-party audit agency extracts the Merkle hash tree root value saved in the latest block and compares it with the received challenge response, and judges the integrity of the data stored in the cloud through bilinear mapping, and finally returns the audit results to the user and records them in the blockchain as transactions.
[0056] In some embodiments, it also includes: S4: The Merkle hash tree structure based on the bucket structure supports the user's dynamic update operation on the data. The user sends a responsive dynamic update request to the cloud service provider to implement the update, deletion or addition operation on the cloud data.
[0057] In some embodiments, step S4 specifically includes: the user generates a dynamic insertion request and sends it to the proxy server. After receiving the request, the proxy server first verifies the legitimacy of the delegation information, then calculates the signature for the data block and sends it to the cloud service provider; the cloud service provider verifies the aggregate signature to ensure the integrity of the data, and then modifies, inserts or deletes the data value of the corresponding bucket element through the location tag, and updates the hash value on the relevant path, records the updated root value to the latest block on the blockchain, and returns the update response information to the user.
[0058] In some embodiments, it also includes: S5: When the data integrity proof provided by the cloud service provider fails to pass the audit, the third-party audit agency broadcasts the specific location of the erroneous data block and related auxiliary information through the blockchain, and returns an audit failure message to the user.
[0059] like Figure 2 As shown, the cloud data audit method based on blockchain provided in the embodiment of the present application includes the following stages:
[0060] Step 1: In the initialization phase, the key generation center generates system parameters and calculates the partial private key of the relevant party based on the identity ID. The user generates an authorization private key based on the partial private key and sends an authorization request to the proxy server. The proxy server verifies the request and generates an encryption key pair.
[0061] See also Figure 2 , the specific implementation of step 1 includes the following stages:
[0062] Setup phase (1 k )→(SysPara,msk): The key generation center selects two cyclic multiplication groups G1 and G2 with large prime numbers q as the order according to the given system security parameter k, defines the generator g∈G1 of G1 and the bilinear map e:G1×G1=G2. Then, KGC randomly selects α∈Z and calculates the system master private key msk=α and the master public key mpk=g msk , and randomly generate a set of random parameters μ0 and μ from G1 k . In order to ensure security and anti-collision capabilities, KGC further defines four anti-collision hash functions H1, H2, H3, H4 and mapping function Map. Finally, the system parameters SysPara = {G1, G2, e, q, g, H1, H2, H3, H4, Map, mpk} are obtained, which will be published on the blockchain for all users to use. The key generation center keeps the master private key msk confidential.
[0063] Key generation phase (SysPara, msk, ID name )→(sk name ,pk name ): The key generation center generates the ID based on the identity information sent by the user. U Calculate the user's partial private key
[0064] sk U,1 =(H1(ID nUame ) msk ) and returns it to the user. After receiving the partial private key, the user verifies it according to the hash function on the chain to ensure that the private key is correct. U,1After that, the user selects a random number γ∈Z locally, so that ε=Map(IDU)=(ε1,ε2,…,ε l ). And based on the received sk U,1 calculate: Finally, the user generates a complete private key and public key pku, and discloses it to PS as U's identity authentication information to participate in the authorization work.
[0065] Proxy authorization phase (ProxyReq) → (ProxyRes): U is calculated based on part of the private key y=g γ , and generates a two-tuple authorization certificate ω={(x,y)}. Then, U sends an authorization request ProxyReq={(ID U ,sk U,1 ,ID PS ,ts,ω)} to PS. After receiving the delegation proof information from U, PS first verifies the legitimacy of IDname and timestamp ts, and then uses the formula: Whether the equality holds, if the above checks are all passed, the PS can assume that it has received the correct user agent delegation.
[0066] Step 2: In the data outsourcing stage, the user blinds the original data file locally, the proxy server signs the data block and generates a Merkle hash tree based on the bucket structure, the cloud service provider performs integrity verification on the received user file and saves the data, and uploads the H (Root) value to the blockchain.
[0067] See also Figure 2 , the specific implementation of step 2 includes the following stages:
[0068] Data blinding phase (SysPara, F) → (B): U first partitions the data file F into {m1, m2, m3, …, m s}, and further process the data into fine-grained
[0069] F(m s )={m s1 ,m s2 ,m s3 ,…,m sn}. After that, U performs blind processing on the segmented data blocks. ij =m ij +H2(sk U,2 ||i||j||CS), where sk u,2 is the partial private key generated by U locally, i and j are used to identify the block location of the data block, and CS is the service provider information of the file stored in the cloud. Finally, U will process the data block set Sent to PS through a secure channel off-chain.
[0070] Label generation phase (SysPara, ID PS ,pk PS ,B)→(StoreReq): PS is each data block b in the received file B ij Calculate a metadata information DataInfo(b ij )={H3(b ij ),σ ij ,tag ij ,ts ij}, which includes the data hash value H3(b ij ), location tag ij , timestamp ts ij , data block signature σ ij The generation formula is:
[0071]
[0072] Afterwards, PS will construct a complete B-MHT in sequence according to the data block structure provided by U. First, PS stores the metadata DataInfo(bij) as the weight of the bucket element in the corresponding position of the data block. Then, according to the data sharding information, H(bi)=H(H(bi1)||H(bi2)…||H(bis) is calculated as the hash value of the leaf node bi, and the number of elements in the bucket count(bi) is recorded. Then recursively upward, aggregate the weights of each layer of non-leaf nodes (H(x), count(x)). The number of B-MHT leaf nodes corresponds to the value of n*s. Finally, the H(root) value is calculated as the root of the B-MHT tree, and the root hash value is recorded on the chain. Finally, PS sends a formal data storage request StoreReq={(DataInfo(B), B, B-MHT)} to CSP.
[0073] Data storage phase DataStore (Syspara, StoreReq) → (StoreRes): After the CSP receives StoreReq, it needs to calculate the data aggregation signature to verify the correctness of the data and ensure the integrity of the data stored in the cloud:
[0074]
[0075] If the formulas are not equal, the CSP refuses to accept the data storage request and returns a storage failure storage response StoreRes=0 to the PS, and terminates the service process; otherwise, the U storage data will be correctly saved and StoreRes=1.
[0076] Step 3: During the audit phase, after receiving the audit request from the user, the third-party audit agency generates a challenge request and sends it to the cloud service provider. The cloud service provider generates a challenge response based on the parameters in the challenge set. The third-party audit agency determines whether the data stored in the cloud is complete based on bilinear mapping, returns the audit result to the user, and generates a transaction record on the blockchain.
[0077] See also Figure 2 , the specific implementation of step 3 includes the following stages:
[0078] Challenge generation phase (M, DataInfo) → chal: After receiving the audit request from the user, the third-party audit agency will generate three new random values r1, r2, r3∈Z*q as pseudo-random function seeds. Use the pseudo-random permutation function γ to generate the index of the challenge block: m β =γ1(r1,β),n β =γ2(r2,β),w β =γ3(m β ,n β ,β). Among them, (m β ,n β ) is the index of the βth selected challenge data block, w β It is the random weight value of the corresponding challenge block, which is used to prove the data integrity in the audit process. TPA can also adjust the contribution of different blocks in the aggregate signature through the weight value. Finally, the third-party audit agency aggregates the challenge block set C = {(m β ,n β ,w β )|β∈[1,|C|]}, and generate a challenge request ChalReq=(C,File,ID U ,ts) is sent to the cloud service provider.
[0079] Proof generation phase (ChalReq, Syspara) → AuditProof: After receiving the challenge information, the cloud service provider checks the local storage information and generates an aggregate signature based on the parameters in C
[0080]
[0081] and aggregate data
[0082]
[0083] At the same time, the cloud service provider needs to recalculate the B-MHT root node hash value H (Root * ), and the calculated challenge block proof set AuditProof = {(σ chal ,M chal , H(Root* )}Sent to a third-party audit agency.
[0084] Batch verification phase: TPA verifies data integrity based on the AuditProof sent by CSP. First, the H(Root) value stored in the latest block on the query chain is compared with the received H(Root*); if the verification is successful, then the formula
[0085]
[0086] Verify the correctness of the challenge block aggregate signature to ensure that the data stored in the cloud server has not been tampered with. After the audit is completed, the third-party audit agency returns a challenge-verification result AuditRes to the user and uploads it to the blockchain for record. When the audit is successful, AuditRes is marked as 1; otherwise, AuditRes is 0.
[0087] like Figure 2 As shown, the method also includes:
[0088] Step 4: During the data update phase, users send data update requests to the cloud service provider to modify, add, or delete data stored in the cloud.
[0089] Specifically, the user generates a dynamic insertion request ProxyReq = {(Update / Insert / Delete, ID U ,ID PS ,ts,B*,locate)} to PS. After receiving the ProxyReq request, PS first verifies the legitimacy of the delegation information, and the proxy server calculates the signature for the data block B* and sends it to the cloud service provider. The cloud service provider verifies the aggregate signature to ensure the integrity of the data, and then modifies, inserts or deletes the data value of the corresponding bucket element through the location tag locate, and updates the hash value H(x) on the relevant path, records the updated Merkle hash tree root value H(Root) based on the bucket structure to the latest block on the blockchain, and returns the update response information to the user.
[0090] The cloud data audit method based on blockchain provided in the embodiment of the present application can achieve the following beneficial effects:
[0091] 1. Public audit: A third-party auditing agency verifies the integrity of outsourced data through auditing without accessing the user’s private data. Users can safely entrust their data to cloud service providers while retaining the right to verify the integrity of the data, ensuring the security and transparency of outsourced data.
[0092] 2. Efficient verification and proxy authorization: The user proxy server performs auditing work to reduce the user's computing burden and supports batch verification of multiple challenge blocks, which greatly reduces audit overhead while ensuring the efficiency and reliability of data verification.
[0093] 3. Data location and dynamic update: In the event of data corruption or anomalies, the location of the problem can be accurately located through data tags, thereby ensuring data integrity and recoverability in a dynamic data environment. At the same time, users can perform dynamic operations on data stored in the cloud, including inserting, deleting, and modifying data blocks.
[0094] 4. Privacy protection: User data is stored in the cloud only in encrypted form, and only the user has the ability to decrypt and obtain the original data. At the same time, throughout the process, the user's identity information and related keys are protected to avoid malicious attacks.
[0095] The present application also provides a blockchain-based cloud data audit system. Figure 1 As shown, the blockchain-based cloud data audit system includes a key generation center, a proxy server, a cloud service provider, a third-party auditing agency and a blockchain structure; the blockchain-based cloud data audit system is used to implement the blockchain-based cloud data audit method as described above.
[0096] The key generation center is responsible for generating system parameters and partial keys for system participants. Users are data owners who have a large amount of data but are subject to limited computing power. They will upload their local data to the cloud for storage. The proxy server is a trusted proxy server authorized by the user. It is responsible for processing the user's data block signature and Merkle tree construction, sharing the user's computing overhead. The third-party auditing agency is responsible for generating the challenge set and verifying the correctness of the challenge response returned by the cloud service provider. The cloud service provider is responsible for providing data storage space for users and needs to respond to challenge requests from third-party auditing agencies in a timely manner. The blockchain structure participates in the preservation and auditing of data as an unalterable proof, records the interaction between entities and stores the H (Root) value.
[0097] It should be noted that the information interaction, execution process, etc. between the above-mentioned modules / units are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.
[0098] Those skilled in the art can clearly understand that, for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the system can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.
[0099] The present application also provides an electronic device, such as Figure 4 As shown, it includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the blockchain-based cloud data audit method provided in the first aspect are implemented.
[0100] In applications, the electronic device may include, but is not limited to, a processor and a memory. Figure 4 This is only an example of an electronic device and does not constitute a limitation on the electronic device. It may include more or fewer components than shown in the figure, or combine certain components, or different components, such as input and output devices, network access devices, etc. Input and output devices may include cameras, audio acquisition / playback devices, display screens, etc. Network access devices may include a network module for wirelessly communicating with external devices.
[0101] In applications, the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or the processor may be any conventional processor, etc.
[0102] In applications, the memory may be an internal storage unit of an electronic device in some embodiments, such as a hard disk or memory of the electronic device. The memory may also be an external storage device of the electronic device in other embodiments, such as a plug-in hard disk, a smart memory card (Smart Media Card, SMC), a secure digital (SD) card, a flash card (Flash Card), etc. equipped on the electronic device. The memory may also include both an internal storage unit of the electronic device and an external storage device. The memory is used to store operating systems, applications, boot loaders (BootLoader), data, and other programs, such as program codes of computer programs, etc. The memory may also be used to temporarily store data that has been output or is to be output.
[0103] The embodiment of the present application further provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.
[0104] The present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of each of the above-mentioned method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to an electronic device, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a disk or an optical disk.
[0105] Those of ordinary skill in the art will appreciate that the devices and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0106] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interface, indirect coupling or communication connection of devices, which can be electrical, mechanical or other forms.
[0107] The embodiments described above are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such 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 application, and should all be included in the protection scope of the present application.
Claims
1. A cloud data audit method based on blockchain, characterized in that: include: S1: The key generation center generates system parameters and generates a partial private key based on the user identity. The user generates an authorization private key based on the partial private key and sends an authorization request to the proxy server. The proxy server verifies the request and generates an encryption key pair. S2: The user blinds the original data block locally, the proxy server signs the data block and generates a Merkle hash tree based on the bucket structure, the cloud service provider performs integrity verification on the received user file and saves the data, and uploads the Merkle hash tree root value to the blockchain; S3: After receiving the audit request from the user, the third-party audit agency generates a challenge request and sends it to the cloud service provider. The cloud service provider generates a challenge response based on the parameters in the challenge set. The third-party audit agency determines whether the data stored in the cloud is complete based on bilinear mapping, returns the audit result to the user, and generates a transaction record on the blockchain.
2. The cloud data auditing method based on blockchain as claimed in claim 1, characterized in that: Step S1 specifically includes: The key generation center generates the multiplication cycle group and the group generator, hash function, public key pair and related system parameters according to the given system security parameters, and uploads them to the blockchain; The key generation center calculates the user's partial private key based on the identity information sent by the user and sends it back to the user. After receiving the partial private key, the user verifies it according to the hash function on the chain to ensure that the private key is correct. The user calculates the authorization private key and public key based on the partial private key and random number; The user generates an authorization certificate and sends it to the proxy server. The proxy server verifies the legitimacy of the certificate based on the user's authorization private key, then accepts the authorization request and generates a data encryption private key and public key.
3. The cloud data auditing method based on blockchain as claimed in claim 1, characterized in that: Step S2 specifically includes: The user divides and blinds the original data block locally, and sends the blinded data block to the proxy server through the off-chain secure channel; The proxy server signs the data block with the encryption key and generates a Merkle hash tree based on the bucket structure according to the data partition information sent by the user. Finally, the data block, data signature and Merkle hash tree are sent to the cloud service provider. The cloud service provider verifies the correctness and integrity of the received data block based on the bilinear mapping formula, and uploads the root value of the Merkle hash tree to the blockchain.
4. The cloud data auditing method based on blockchain as claimed in claim 1, characterized in that: Step S3 specifically includes: After receiving the audit request from the user, the third-party audit agency generates random values and random weights to construct a challenge set, and sends the challenge request to the cloud service provider; The cloud service provider sends a challenge response to the third-party audit structure, which includes the aggregate signature and aggregate data generated according to the challenge parameters, as well as the root value of the Merkle hash tree stored in the cloud to the third-party audit organization; The third-party auditing agency extracts the Merkle hash tree root value saved in the latest block and compares it with the received challenge response, and uses bilinear mapping to determine the integrity of the data stored in the cloud. Finally, the audit results are returned to the user and recorded in the blockchain as a transaction.
5. The cloud data auditing method based on blockchain as claimed in claim 1, characterized in that: Also includes: S4: The bucket-based Merkle hash tree structure supports users' dynamic update operations on data. Users send dynamic update requests to cloud service providers to update, delete or add cloud data.
6. The cloud data auditing method based on blockchain as claimed in claim 5, characterized in that: Step S4 specifically includes: The user generates a dynamic insertion request and sends it to the proxy server. After receiving the request, the proxy server first verifies the legitimacy of the delegation information, then calculates the signature for the data block and sends it to the cloud service provider; The cloud service provider verifies the aggregate signature to ensure the integrity of the data, then modifies, inserts, or deletes the data value of the corresponding bucket element through the location tag, updates the hash value on the relevant path, records the updated root value to the latest block on the blockchain, and returns the update response information to the user.
7. The cloud data auditing method based on blockchain as claimed in claim 1, characterized in that: Also includes: S5: When the data integrity proof provided by the cloud service provider fails the audit, the third-party audit agency broadcasts the specific location of the erroneous data block and related auxiliary information through the blockchain, and returns an audit failure message to the user.
8. A cloud data audit system based on blockchain, characterized in that: It includes a key generation center, a proxy server, a cloud service provider, a third-party auditing organization and a blockchain structure; the blockchain-based cloud data auditing system is used to implement the blockchain-based cloud data auditing method as described in any one of claims 1 to 7.
9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the blockchain-based cloud data audit method as described in any one of claims 1 to 7 is implemented.
10. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the blockchain-based cloud data audit method as described in any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
Cloud storage data common auditing method possessing secret key leakage resistance characteristic
CN105791321A
Identity-based dynamic data integrity auditing method
CN110912706A
Privacy protection cloud auditing method based on block chain
CN112364370A
Method of secure public auditing using self-certified signature in cloud storage and system of the same
KR1020170026765A
Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption
US20220368545A1
Cited By
Data use audit processing method and system based on trusted data space
CN121211511A
Oiling machine remote data management method and system based on cloud communication
CN121301365A
Data auditing method and device based on Merkel tree and block chain
CN121585378A
Data auditing method and device based on merkle tree and blockchain
CN121585378B