A blockchain-based cloud data auditing method, system and device
By using a blockchain-based cloud data auditing method, which utilizes a key generation center, proxy servers, and third-party auditing institutions, the problems of high user computing power consumption, privacy leakage, and difficulty in dynamic operation in traditional cloud data auditing solutions are solved, achieving efficient and secure data integrity verification and dynamic updates.
Patent Information
- Application Number
- CN202510114335.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-24
- Publication Date
- 2025-11-04
- Estimated Expiration
- 2045-01-24
AI Technical Summary
Traditional cloud data auditing solutions rely on third-party organizations that are not entirely trustworthy, resulting in high consumption of user computing power, high risk of privacy leaks, and inefficiency in dynamic operations.
A blockchain-based cloud data auditing method is adopted, which utilizes a key generation center, proxy server and third-party auditing institution, and achieves data integrity verification and dynamic updates through block blinding, Merkle hash tree and bilinear mapping.
It reduces the computational burden on users, improves auditing efficiency, prevents malicious behavior, supports dynamic data manipulation, and ensures user data security and privacy protection.
Smart Images

Figure CN119835081B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of cloud data security, and particularly relates to a cloud data auditing method, system and device based on a blockchain. BACKGROUND
[0002] Cloud computing is increasingly widely 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, different from traditional storage methods, provides users with a large amount of storage capacity and the convenience of data access without geographical limitations. However, when data is stored in the cloud, users lose control over the integrity of the data. Whether it is malicious damage and tampering of data by cloud service providers, or hardware failure and human error, will result in the destruction of data stored in the cloud. Based on this problem, cloud data auditing solutions have emerged.
[0003] Traditional cloud data auditing solutions mostly rely on third-party auditing agencies. Users entrust the auditing needs to an unreliable third-party agency, which proves the integrity of the data stored in the cloud service provider. However, there are still many problems: 1. Users need to consume a large amount of computing power to perform data signing locally, and lightweight users cannot afford the task of signing large data sets. 2. The third-party auditing agency is an untrusted entity, which is easy to collude with the cloud service provider to cheat users. 3. The cloud service provider and the user need to interact directly in the data storage and auditing process, which has the risk of user privacy leakage. 4. Users cannot perform efficient dynamic operations on data stored in the cloud. SUMMARY
[0004] The present application provides a cloud data auditing method, system and device based on a blockchain to solve the problems in the background art.
[0005] In a first aspect, the present application provides a cloud data auditing method based on a blockchain, comprising:
[0006] S1: A key generation center generates system parameters and generates a user partial private key based on a user identity. The user generates an authorized private key based on the partial private key and sends an authorization request to a proxy server. The proxy server generates an encryption key pair after verifying the request.
[0007] S2: The user locally blocks and blindfolds the original data block. 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. The Merkle hash tree root value is uploaded to the blockchain.
[0008] S3: After receiving the audit request of the user, the third-party audit institution generates a challenge request and sends it to the cloud service provider. The cloud service provider generates a challenge response according to the parameters in the challenge set. The third-party audit institution judges whether the data saved in the cloud is complete based on the bilinear mapping, returns the audit result to the user, and generates a transaction record on the blockchain.
[0009] Further, step S1 specifically comprises:
[0010] The key generation center generates a multiplicative cyclic group and a generator of the group, a hash function, a public key pair and related system parameters according to given system security parameters, and uploads them to the blockchain;
[0011] The key generation center calculates the user's partial private key according to the identity information sent by the user, 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. The user calculates the authorized private key and public key according to the partial private key and the random number;
[0012] The user generates an authorization proof and sends it to the proxy server. The proxy server verifies the legality of the proof based on the user's authorized private key, accepts the authorization request, and generates a data encryption private key and public key.
[0013] Further, step S2 specifically comprises:
[0014] The user divides and blinds the original data block locally, and sends the blinded data block to the proxy server through an off-chain secure channel;
[0015] The proxy server signs the data block through 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] Further, step S3 specifically comprises:
[0018] After receiving the audit request of the user, the third-party audit institution generates a random value and a random weight to construct a challenge set, and sends a challenge request to the cloud service provider;
[0019] The cloud service provider sends a challenge response to the third-party audit structure, which includes an aggregated signature and aggregated 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 institution;
[0020] The third-party auditing institution compares the latest block saved Merkle hash tree root value with the received challenge response, judges the data integrity stored in the cloud through a bilinear mapping, and finally returns the auditing result to the user and records the auditing result as a transaction record to the blockchain.
[0021] Further, it also includes:
[0022] S4: The Merkle hash tree structure based on the bucket structure supports the dynamic update operation of the user to the data. The user sends a dynamic update request to the cloud service provider, and realizes the update, deletion or addition operation to the data in the cloud.
[0023] Further, 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 legality 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 aggregated 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 related path. The updated tree root value is recorded to the latest block on the blockchain, and the update response information is returned to the user.
[0026] Further, it also includes:
[0027] S5: When the data integrity proof provided by the cloud service provider fails to pass the audit, the third-party auditing institution broadcasts the specific position of the error data block and the related auxiliary information through the blockchain, and returns the audit failure message to the user.
[0028] In a second aspect, the present application provides a blockchain-based cloud data auditing system, comprising a key generation center, a proxy server, a cloud service provider, a third-party auditing institution and a blockchain structure; the blockchain-based cloud data auditing system is used to realize the blockchain-based cloud data auditing 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, and the processor executes the computer program to realize the blockchain-based cloud data auditing method as described above.
[0030] In a fourth aspect, the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to realize the blockchain-based cloud data auditing method as described above.
[0031] The above technical solutions of the present application have the following advantages:
[0032] The first aspect of the application provides a cloud data auditing method based on a blockchain. The data information of a user is stored in a form of a Merkel tree based on a bucket structure on a chain and related auxiliary information is provided by using the non-tamperable characteristics of the blockchain technology, so that fast positioning in the data auditing process is achieved. By using the related knowledge of bilinear pair mapping and hash collision, the integrity positioning of outsourced data is safely and efficiently achieved. By introducing the blockchain technology, the authorization mechanism, data encryption and random auditing verification, the security of the user data is protected, the non-interactive auditing work of the cloud service provider and the user is achieved, the auditing efficiency is improved, and malicious behaviors such as replay attacks, collusion attacks and forgery attacks in the auditing process are prevented.
[0033] It can be understood that the beneficial effects of the second aspect, the third aspect and the fourth aspect can be referred to the related description in the first aspect, which will not be repeated here. BRIEF DESCRIPTION OF DRAWINGS
[0034] In order to more clearly illustrate the technical solutions of the specific embodiments or prior art in the application, the drawings needed in the description of the specific embodiments or prior art will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the application, and other drawings can be obtained by those skilled in the art without creative labor.
[0035] Figure 1 A schematic diagram of a cloud data auditing system based on a blockchain provided by the application;
[0036] Figure 2 A flowchart of a cloud data auditing method based on a blockchain provided by the application;
[0037] Figure 3 A schematic diagram of a Merkel tree based on a bucket structure provided by the application;
[0038] Figure 4 A structural schematic diagram of an electronic device provided by the application. DETAILED DESCRIPTION
[0039] In the following description, specific details such as specific system structures, techniques, etc. are presented in order to thoroughly understand the embodiments of the application, but it should be clear to those skilled in the art that the application can 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 avoid unnecessary details that hinder the description of the application.
[0040] It should be understood that the word "comprise" or "comprising" or "include" or "including" or "contain" or "containing" or "encompass" or "encompassing" when used in the specification and / or claims of this application shall not be construed as indicating an exclusive inclusion of the features, integers, steps, operations, elements, and / or components thereof but rather shall be construed as specifying the presence of the stated features, integers, steps, operations, elements, and / or components thereof and shall not be construed as excluding the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0041] In addition, in the description of the present application and the appended claims, the terms "first", "second", "third", etc. are used only to distinguish descriptions, and cannot be understood as indicating or implying relative importance.
[0042] In the present application, the reference "one embodiment" or "some embodiments" and the like means that the specific features, structures or characteristics described in connection with the embodiment are included in one or more embodiments of the present application. Therefore, the statements "in one embodiment", "in some embodiments", "in other some embodiments", "in further some embodiments" and the like appearing in different places in the specification are not necessarily all referring to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized. The terms "include", "contain", "have" and their variants mean "include but not limited to", unless otherwise specifically emphasized. "Multiple" means "two or more".
[0043] The specific embodiments of the present application are 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 used to limit the scope of the present application.
[0044] The embodiments of the present application provide a cloud data auditing method based on a blockchain, specifically comprising the following steps: S1: a key generation center generates system parameters and generates a user partial private key based on a user identity, a user generates an authorized private key based on the partial private key and sends an authorization request to a proxy server, and the proxy server generates an encryption key pair after verifying the request; S2: the user locally blocks and blinds the original data block, the proxy server signs the data block and generates a Merkle hash tree based on a bucket structure, a cloud service provider performs integrity check on the received user file and saves the data, and uploads the Merkle hash tree root value to the blockchain; S3: a third-party auditing agency generates a challenge request and sends it to the cloud service provider after receiving the user's auditing request, the cloud service provider generates a challenge response according to the parameters in the challenge set, and the third-party auditing agency judges whether the data saved in the cloud is complete based on a bilinear mapping, returns the auditing result to the user and generates a transaction record on the blockchain.
[0045] As Figure 1As shown, this application mainly involves a Key Generation Center (KGC), users (U), proxy servers (PS), cloud service providers (CSP), third-party auditing (TPA), and a blockchain structure. The Key Generation Center is responsible for generating system parameters and managing some keys for system participants. Users with limited computing power need to store their local data in the cloud. Users authorize the proxy server locally and send the encrypted, segmented original file to the proxy server for signing. Furthermore, users can submit integrity audit requests or dynamic update requests at any time. The proxy server signs the encrypted data and constructs 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 file and returns a response proof of the challenge block during the audit phase. The third-party auditing institution generates random challenge blocks and initiates audit challenges, verifying the response returned by the cloud service provider. The blockchain structure, as proof of immutability, participates in data storage and auditing, recording interactions between entities and storing the H (Root) value.
[0046] like Figure 2 As shown, the key generation center generates a partial private key for the user based on their 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 using the 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 root value of the Merkle hash tree to the blockchain; after receiving the user's audit request, the third-party auditing institution conducts a random audit challenge on the data block stored on the cloud service provider and requests the cloud service provider to return a challenge response; the third-party auditing institution performs integrity verification on the parameters returned by the cloud service provider. If the audit fails, the third-party auditing institution sends the location information of the erroneous data back to the user, and the user sends a dynamic data update request.
[0047] Blockchain is a decentralized, immutable, traceable, trustworthy, and multi-party shared distributed database. These characteristics enable the construction of a decentralized storage network for auditing. Cloud service providers can join this network as on-chain nodes, contributing their computing power, while users can encrypt their local data and store it on the blockchain. In a blockchain-based cloud data auditing solution, after users upload data to the cloud service provider, a Merkle hash tree is generated to store the hash values of the data. The root value H (Root) of the tree is uploaded to the blockchain as proof of integrity. During the auditing process, changes in H (Root) can be verified to determine whether the cloud-stored data has been tampered with.
[0048] In the blockchain data auditing based on the Merkel tree, the aggregated hash value H(Root) of the data block is stored as an integrity proof on the blockchain. Since the Merkel tree is a binary tree structure, it is necessary to traverse the path from the root node to the leaf node each time verification is performed. If the depth of the tree is unbalanced, some leaf nodes are located in the deep layer of the tree, resulting in a long retrieval path during auditing, thereby causing a performance bottleneck, which will be more obvious when dealing with large-scale data.
[0049] In addition, by comparing the Merkel tree root value, it can only be detected whether the data block is tampered with or lost, but it cannot accurately locate the specific error data block. Because the Merkel tree verification mechanism only cares about the integrity of the data as a whole, it cannot provide fine-grained error positioning. This means that when the data is found to be damaged, the system needs to re-upload or rebuild the entire data structure, increasing the cost and complexity of data repair. In addition, the traditional Merkel hash tree cannot support dynamic operations of users on data.
[0050] The Merkel hash tree based on the bucket structure defined in the embodiments of the present application is described in detail in Figure 3 . The structure of each element in the bucket is (H(m ij ),σ ij, tag ij ,ts ij ), which includes the hash value H(m ij ) of the data block, the data block signature σ ij , the position tag tag ij and the timestamp ts ij . Among them, H(m ij ) is the hash value of the blinded data block b ij , which is used to ensure the integrity of the data block; the data block signature σ ij is calculated by the user signature, which is used to prove the integrity of the data block during auditing; the position tag tag ij records the specific position of the data block; the timestamp ts ijThe generation time of the bucket element is recorded 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 combining 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 represents 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, which is defined as H(m1) = H(m(11) || H(m12) || H(m13) H(m13)); count(m1) = 4, indicating that the bucket structure maintained in this partition contains four data blocks in total. For non-leaf node N A , the H(A) stored in the node is the result of aggregating the hash values of leaf nodes N C and N D , and count(N A ) represents the total number of data blocks accessible through the non-leaf node, i.e. count(N A ) = count(N C ) + count(N D ).
[0051] The Merkle Hash tree structure based on the bucket structure proposed in the embodiments of the present application is used to store user data. Unlike the traditional Merkle tree, in which each leaf node only stores one key value, the improved tree structure in the present application maintains a bucket structure in the leaf node, and each bucket contains multiple metadata. The design goal of the Merkle Hash tree based on the bucket structure is to reduce frequent global reconstruction and maintenance, and optimize the efficiency of insertion and deletion operations. In dynamic operation, the frequent splitting of the tree is reduced, avoiding the triggering of global structure adjustment when updating data, while also retaining the advantages of the Merkle Hash tree in data auditing for blockchains.
[0052] The examples of the present application reduce the user's computing burden by introducing a proxy server and support batch verification of multiple challenge blocks, which is suitable for scenarios with large amounts of data. The audit interaction behavior and results described are broadcasted through the blockchain, which can effectively prevent cheating behavior between entities and reduce dependence on untrusted third-party auditing agencies, ensuring that the audit process is credible and fair, and solving the problems of single point of failure, computing power consumption, data cannot be dynamically updated, user privacy leakage, etc. in existing cloud auditing solutions.
[0053] In some embodiments, step S1 specifically comprises: the key generation center generates a multiplicative cyclic group and a generator of the group, a hash function, a public key pair and related system parameters according to given system security parameters, and uploads them to the blockchain; the key generation center calculates a user partial private key according to the identity information sent by the user, and returns it to the user, the user verifies the partial private key according to the hash function on the chain to ensure that the private key is correct, and the user calculates an authorized private key and a public key according to the partial private key and a random number; the user generates an authorization proof and sends it to the proxy server, and the proxy server verifies the legality of the proof based on the authorized private key of the user to accept the authorization request, and generates a data encryption private key and a public key.
[0054] In some embodiments, step S2 specifically comprises: the user locally blocks 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 through 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, the data signature and the Merkle hash tree to the cloud service provider; the cloud service provider verifies the correctness and integrity of the received data block based on a bilinear mapping formula, and uploads the tree root value of the Merkle hash tree to the blockchain.
[0055] In some embodiments, step S3 specifically comprises: after receiving the audit request of the user, the third-party audit institution generates a random value and a random weight to construct a challenge set, and sends a challenge request to the cloud service provider; the cloud service provider sends a challenge response to the third-party audit institution, which includes an aggregated signature and aggregated data generated according to the challenge parameters, and the tree root value of the Merkle hash tree stored in the cloud; the third-party audit institution compares the Merkle hash tree root value saved in the latest block with the received challenge response, and judges the integrity of the data stored in the cloud through a bilinear mapping, and finally returns the audit result to the user and records it as a transaction record to the blockchain.
[0056] In some embodiments, it further comprises: S4: the Merkle hash tree structure based on the bucket structure supports dynamic update operation of the user on the data, the user sends a dynamic update request to the cloud service provider, and realizes the update, deletion or addition operation on the data in the cloud.
[0057] In some embodiments, step S4 specifically comprises: the user generates a dynamic insertion request and sends it to the proxy server, the proxy server verifies the legality of the delegation information after receiving the request, calculates a signature for the data block and sends it to the cloud service provider; the cloud service provider verifies the aggregated 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 related path, records the updated tree root value to the latest block on the blockchain, and returns the update response information to the user.
[0058] In some embodiments, further comprising: S5: when the data integrity proof provided by the cloud service fails to pass the audit, the third-party audit institution broadcasts the specific location of the error data block and the related auxiliary information through the block chain, and returns a message of audit failure to the user.
[0059] As Figure 2 shown, the cloud data auditing method based on the block chain provided by the embodiments of the application includes the following stages:
[0060] Step 1: initialization stage, the key generation center generates system parameters, calculates the private key of the related party based on the identity ID, the user generates the authorized private key based on the partial private key and sends the authorization request to the proxy server, and the proxy server generates the encryption key pair after verifying the request.
[0061] Referring to Figure 2 , the specific implementation of step 1 includes the following stages:
[0062] Setting stage (1 k )→(SysPara,msk): the key generation center selects two cyclic multiplicative groups G1 and G2 with a large prime number q as the order according to the given system security parameter k, defines the generator g of G1 and the bilinear mapping e:G1×G1=G2. Then, the KGC randomly selects α∈Z, calculates the system master private key msk=α and the master public key mpk=g msk , and randomly generates a group of random parameters μ0 and μ k from G1. In order to ensure security and anti-collision ability, the KGC further defines four anti-collision hash functions H1, H2, H3 and H4 and a mapping function Map. Finally, the system parameters SysPara={G1, G2, e, q, g, H1, H2, H3, H4, Map, mpk} are obtained, which are published to the block chain for use by all users. The key generation center keeps the master private key msk secret.
[0063] Key generation stage (SysPara,msk,ID name )→(sk name ,pk name ): the key generation center calculates the user's partial private key U according to the identity information ID
[0064] sk U,1 =(H1(ID nUame ) msk ) is returned to the user, and the user verifies the partial private key according to the hash function on the chain to ensure that the private key is correct. After receiving sk U,1After that, the user selects a random number γ∈Z locally, makes ε = Map(IDU) = (ε1, ε2, …, ε l ) and calculates based on the received sk U,1 : Finally, the user generates the complete private key and public key pku and publishes it as the identity authentication information of U to the PS to participate in the authorization work.
[0065] Proxy authorization stage (ProxyReq) → (ProxyRes): U calculates y = g γ based on the partial private key and generates an authorization proof ω = {(x, y)} of a two-tuple. Then, U sends the authorization request ProxyReq = {(ID U , sk U,1 , ID PS , ts, ω)} to the PS. After receiving the delegation proof information from U, the PS first verifies the legality of IDname and the timestamp ts, and then checks whether the following equation holds: If the above checks pass, the PS can consider that the correct user proxy delegation has been received.
[0066] Step 2: Data outsourcing stage, the user locally blocks the original data file and the proxy server signs the data block and generates a Merkle hash tree based on the bucket structure. The cloud service provider checks the integrity of the received user file and saves the data, and uploads the H(Root) value to the blockchain.
[0067] Referring to Figure 2 , the specific implementation of step 2 includes the following stages:
[0068] Data blinding stage (SysPara, F) → (B): U first partitions the data file F into {m1, m2, m3, …, m s} and further processes the data in a fine-grained manner to
[0069] F(m s ) = {m s1 , m s2 , m s3 , …, m sn}. After that, U blurs the segmented data block b 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 position of the data block, and CS is the service provider information stored in the cloud for this file. Finally, U sends the processed data block set Send it to PS via an off-chain secure channel.
[0070] Tag generation stage (SysPara, ID) PS ,pk PS ,B)→(StoreReq): PS represents 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}, including the data hash value H3(b ij ), location tag ij timestamp ts ij Data block signature σ ij The formula for generating it is:
[0071]
[0072] Next, PS constructs the complete B-MHT sequentially 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, based on the data sharding information, it calculates H(bi) = H(H(bi1)||H(bi2)…||H(bis)) as the hash value of the leaf node bi, and records the number of elements in the bucket count(bi). Then, it recursively aggregates the weights (H(x), count(x)) of each non-leaf node at each level. The number of leaf nodes in the B-MHT corresponds to the value of n*s. Finally, the value of H(root) is calculated as the root of the B-MHT tree, and the root hash value is recorded on the chain. Finally, PS sends the formal data storage request StoreReq = {(DataInfo(B), B, B-MHT)} to CSP.
[0073] Data storage phase DataStore(Syspara,StoreReq) → (StoreRes): After receiving StoreReq, the CSP 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 will refuse to accept the current data storage request, return a storage failure response StoreRes=0 to the PS, and terminate the current service process; otherwise, the current U storage data will be saved correctly, and StoreRes=1 will be set.
[0076] Step 3: Audit phase, after receiving the audit request from the user, the third-party audit institution 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 institution determines whether the data stored in the cloud is complete based on the bilinear mapping and returns the audit result to the user and generates a transaction record on the blockchain.
[0077] Referring to 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 institution generates three new random values r1, r2, r3∈Z*q as the seed of the pseudo-random function. Use the pseudo-random permutation function γ to generate the index of the challenge block: m β = γ1(r1, β), n β = γ2(r2, β), w β = γ3(m β , n β , β). Where (m β , n β ) is the index of the βth selected challenge data block, w β is the random weight value corresponding to the challenge block, which is used to participate in the data integrity proof of 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 institution aggregates the challenge block set C = {(m β , n β , w β ) | β ∈ [1, |C|]} and generates a challenge request ChalReq = (C, File, ID U , ts) to send 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 the aggregate signature
[0080]
[0081] and the aggregate data
[0082]
[0083] At the same time, the cloud service provider needs to recalculate the B-MHT root node hash value H(Root * ) corresponding to the data stored in the cloud, and the calculated challenge block proof set AuditProof = {(σ chal , M chal , H(Root* AuditProof sent to the third-party auditing institution.
[0084] Batch verification phase: TPA verifies the data integrity according to the proof AuditProof sent by CSP. First, the H(Root) value stored in the latest block on the chain is compared with the received H(Root*); if the verification is passed, the formula
[0085]
[0086] The correctness of the challenge block aggregate signature is verified to ensure that the data stored by the cloud server has not been tampered with. After the audit, the third-party auditing institution returns a challenge-verification result AuditRes to the user and uploads it to the blockchain for record. When the audit is successful, AuditRes is identified as 1; otherwise, AuditRes is 0.
[0087] As shown in the method further comprises: Figure 2
[0088] Step 4: Data update phase, the user sends a data update request to the cloud service provider, and can modify, add or delete the 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) and sends it to PS. After receiving the ProxyReq request, PS first verifies the legality of the delegation information, 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, updates the hash value H(x) on the relevant path, records the updated root value H(Root) of the bucket structure-based Merkle hash tree to the latest block on the blockchain, and returns the update response information to the user.
[0090] The blockchain-based cloud data auditing method provided by the embodiments of the present application can achieve the following beneficial effects:
[0091] 1. Public auditing: The third-party auditing institution verifies the integrity of the outsourced data through the audit proof without accessing the user's private data. The user can safely host the data to the cloud service provider while retaining the right to verify the integrity of the data, ensuring the security and transparency of the outsourced data.
[0092] 2. High-efficiency verification and proxy authorization: The user proxy server performs audit work to reduce the user's computing burden and supports batch verification of multiple challenge blocks, greatly reducing audit overhead while ensuring the efficiency and reliability of data verification.
[0093] 3. Data positioning and dynamic updating: In the event of data damage or abnormalities, the location of the problem fault can be accurately located through the data tag, ensuring data integrity and recoverability in a dynamic data environment. At the same time, users can dynamically operate data stored in the cloud, including inserting, deleting and modifying data blocks.
[0094] 4. Privacy protection: User data is stored in ciphertext form in the cloud, and only the user himself has the ability to decrypt and obtain the original data. At the same time, the user's identity information and related keys are protected throughout the process to avoid malicious attacks.
[0095] The embodiments of the present application also provide a blockchain-based cloud data auditing system, as shown in Figure 1 The blockchain-based cloud data auditing 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 auditing system is used to implement the blockchain-based cloud data auditing method as described above.
[0096] The key generation center is responsible for generating system parameters and managing part of the keys of system participants. The user, i.e. the data owner, has a large amount of data but is subject to limited computing power, and will upload his local data to the cloud for storage. The proxy server is a trusted proxy server authorized by the user, responsible for processing the user's data block signature and the construction of the Merkle tree, sharing the user's computing overhead. The third-party auditing agency is responsible for generating a 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 the third-party auditing agency in a timely manner. The blockchain structure, as an unalterable proof of participation in data storage and auditing, 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, since based on the same concept as the method embodiments of the present application, the specific functions and the technical effects brought about can be referred to the method embodiment part, and will not be repeated here.
[0098] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the division of the above functional units and modules is exemplified, and in actual application, the above functions can be completed by different functional units and modules according to needs, that is, the internal structure of the system is divided into different functional units or modules to complete all or part of the functions described above. Each functional unit or module in the embodiment can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of software functional unit. In addition, the specific names of each functional unit or module are only for the convenience of mutual distinction, and do not limit the protection scope of the present application. The specific working process of the unit or module in the system can refer to the corresponding process in the foregoing method embodiment, which will not be repeated here.
[0099] The embodiment of the present application also provides an electronic device, as shown in the figure, comprising a memory, a processor and a computer program stored in the memory and executable on the processor, and the processor executes the computer program to realize the steps of the cloud data auditing method based on the blockchain provided in the first aspect. Figure 4
[0100] In application, the electronic device can include, but is not limited to, a processor and a memory, Figure 4 It is only an example of the electronic device and does not constitute a limitation on the electronic device, and can include more or fewer components than the illustration, or combine certain components, or different components, for example, input / output devices, network access devices, etc. The input / output device can include a camera, an audio acquisition / player device, a display screen, etc. The network access device can include a network module for wireless network with external devices.
[0101] In application, the processor can be a central processing unit (CPU), and the processor can also be 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. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
[0102] In applications, the storage can be an internal storage unit of the electronic device, such as a hard disk or a memory of the electronic device, in some embodiments. The storage can also be an external storage device of the electronic device, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, and the like, in other embodiments. The storage can include both the internal storage unit and the external storage device of the electronic device. The storage is used to store an operating system, an application program, a boot loader, data, and other programs, such as program codes of computer programs, and the like. The storage can also be used to temporarily store data that has been output or will be output.
[0103] The embodiments of the present application further provide a computer readable storage medium, which stores a computer program. The computer program is executed by a processor to implement the steps in the above-mentioned various method embodiments.
[0104] The embodiments of the present application implement all or part of the processes in the above-mentioned method embodiments, which can be completed by a computer program instructing related hardware. The computer program can be stored in a computer readable storage medium, and when executed by a processor, the computer program can implement the steps in the above-mentioned various method embodiments. The computer program includes computer program codes, which can be in the form of source code, object code, executable files, or some intermediate forms, etc. The computer readable medium at least includes any entity or device capable of carrying 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 U disk, a mobile hard disk, a magnetic disk or an optical disk, etc.
[0105] Those skilled in the art can realize that the devices and algorithm steps of the examples described in combination with the embodiments disclosed herein can be realized by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0106] In the embodiments provided by the present application, it should be understood that the disclosed devices and methods can be implemented in other manners. For example, the embodiments of the device described above are merely schematic, and the mutual coupling or direct coupling or communication connection between the shown or discussed elements can be indirect coupling or communication connection through some interfaces; the indirect coupling or communication connection between the elements can be in electrical, mechanical or other forms.
[0107] The above embodiments are merely used for describing the technical solutions of the present application, rather than limiting them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that the technical solutions recorded in the foregoing embodiments can be modified or equivalent replacements can be made to some of the technical features; and the modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application, and should be included in the protection scope of the present application.
Claims
1. A cloud data auditing method based on blockchain, characterized in that, include: S1: The key generation center generates system parameters and generates a partial private key for the user based on the user's 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 encrypted key pair. S2: The user performs block blinding on 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 root value of the Merkle hash tree to the blockchain. S3: After receiving the user's audit request, the third-party auditing firm 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 auditing firm determines whether the data stored in the cloud is complete based on a bilinear mapping, returns the audit results to the user, and generates a transaction record on the blockchain.
2. The cloud data auditing method based on blockchain as described in claim 1, characterized in that, Step S1 specifically includes: The key generation center generates a multiplicative cyclic group and its generator, hash function, public key pair and related system parameters based on the given system security parameters, and uploads them to the blockchain. The key generation center calculates a partial private key for the user 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 then calculates the authorized private key and public key based on the partial private key and a random number. The user generates an authorization certificate and sends it to the proxy server. The proxy server verifies the validity of the certificate based on the user's authorization private key, accepts the authorization request, and generates a data encryption private key and public key.
3. The cloud data auditing method based on blockchain as described in claim 1, characterized in that, Step S2 specifically includes: Users locally divide and blind the original data block, and then send the blinded data block to the proxy server through an off-chain secure channel. The proxy server signs the data block using an encryption key, generates a bucket-based Merkle hash tree based on 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 blocks 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 described in claim 1, characterized in that, Step S3 specifically includes: After receiving an audit request from a user, the third-party auditing firm 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 auditing organization, which includes the aggregated signature and aggregated data generated based on the challenge parameters, as well as the root value of the Merkle hash tree stored in the cloud. A third-party auditing firm extracts the Merkel hash tree root value stored in the latest block and compares it with the received challenge response. It then uses a bilinear mapping to determine the integrity of the data stored in the cloud and finally returns the audit results to the user and records them as transactions on the blockchain.
5. The cloud data auditing method based on blockchain as described in claim 1, characterized in that, Also includes: S4: The Merkle hash tree structure based on buckets supports dynamic update operations for data by users. Users send dynamic update requests to the cloud service provider to update, delete or add data in the cloud.
6. The cloud data auditing method based on blockchain as described 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 legality of the delegation information, then calculates a signature for the data block and sends it to the cloud service provider. The cloud service provider verifies the aggregated signature to ensure data integrity. Then, it 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 described in claim 1, characterized in that, Also includes: S5: When the data integrity certificate provided by the cloud service provider fails the audit, the third-party auditing agency will broadcast the specific location of the erroneous data block and related auxiliary information through the blockchain and return an audit failure message to the user.
8. A cloud data auditing system based on blockchain, characterized in that, It includes a key generation center, a proxy server, a cloud service provider, a third-party auditing institution, 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, it implements the blockchain-based cloud data auditing method as described in any one of claims 1 to 7.
10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the blockchain-based cloud data auditing method as described in any one of claims 1 to 7.
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