Outsourced data integrity auditing method, device, equipment and medium

By generating global parameters and hash values ​​from the data owner to determine a unique identifier, and using encryption and blockchain technologies to generate encrypted datasets, the problem of dataset insecurity in existing technologies is solved. This enables secure and efficient outsourced data integrity auditing, and improves the storage space utilization and data integrity verification reliability of cloud storage servers.

CN116938581BActive Publication Date: 2026-06-26SOUTH CHINA AGRICULTURAL UNIVERSITY
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SOUTH CHINA AGRICULTURAL UNIVERSITY
Filing Date
2023-08-15
Publication Date
2026-06-26

Smart Images

  • Figure CN116938581B_ABST
    Figure CN116938581B_ABST
Patent Text Reader

Abstract

The application relates to an outsourcing data integrity auditing method, device, equipment and medium. The method comprises the following steps: before a data owner uploads file data, encrypting plaintext data blocks of the file data to obtain ciphertext, calculating an authentication tag and a signature value of the file data according to a system global parameter, a hash value of the file data and the ciphertext of the file data, and sending a ciphertext data set, an authentication tag set and the signature value of the file data to a cloud server for storage; before storing the data, the cloud storage server verifies the relevance of the ciphertext data set and the authentication tag set of the file data, generates a challenge data set with the assistance of a smart contract, calculates a data integrity proof of the file data, and saves an auditing record of the file data; and the data owner determines a final auditing result according to the data integrity proof and the auditing record. The application can eliminate the problem of data security caused by the collusion of a third-party auditor and a cloud storage server administrator to cheat the data owner.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of information security, and in particular to a method, apparatus, electronic device and computer-readable storage medium for auditing the integrity of outsourced data. Background Technology

[0002] Data, as a valuable resource, is exploding in various forms every moment. For data owners, the storage space of computer devices such as IoT systems is limited. Storing large amounts of data locally is extremely space-consuming, and managing and maintaining such large amounts of data over a long period presents numerous challenges. Outsourcing data to cloud storage servers offers significant advantages in unified data storage, management, and sharing. As an excellent tool, it provides powerful and flexible storage and computing resources, serving as an intermediary for data exchange and sharing, and has become a common and effective solution. To alleviate the heavy burden of local data storage and achieve secure data sharing, more and more data owners are inclined to outsource their confidential data to cloud storage servers. However, while cloud storage servers bring significant convenience and benefits to data owners, they also raise concerns about data privacy and security.

[0003] On the one hand, cloud storage servers, as entities that hold management rights rather than ownership of data, may themselves be interested in understanding the content of the data. For example, a cloud storage server might illegally steal users' original data for profit, violating data confidentiality. On the other hand, the integrity of outsourced data is also crucial to the interests of the data owner. Considering that some anomalies are objectively possible, such as equipment failure leading to data loss in the cloud, and worse, the possibility that data stored in the cloud might be maliciously deleted by the cloud storage server to reduce storage space and maintenance costs, compromising data integrity and availability, it's worth noting that malicious parties could also be data owners who attempt to falsely accuse honest cloud storage servers. Based on this, many solutions rely on independent third-party auditors hired by the data owner to periodically check the integrity of outsourced data. However, in the real world, third-party auditors are often not entirely trustworthy. Audit schemes using third-party auditors are susceptible to malicious actions such as delaying audits and colluding with malicious cloud storage servers to deceive users, affecting the audit process. Therefore, supervising, restricting, or even removing third-party auditors is a developing trend in data integrity auditing research.

[0004] Currently, challenge datasets are generated by either the data owner or a third-party auditor. However, it is not advisable for the data owner to generate the challenge dataset and then transmit it to the cloud storage server. This is because it incurs transmission overhead and data authentication issues, and also adds computational costs. In fact, data owners should not incur additional costs for outsourcing data auditing. Having third-party auditors generate the challenge dataset is also problematic. Besides increasing the data owner's expenses, it also carries the potential security risk of malicious third-party auditors colluding with cloud storage server administrators to deceive the data owner for personal gain.

[0005] Therefore, in order to address the lack of more secure and reliable challenge datasets in existing technologies, the challenge datasets generated by the data owners and then transmitted to the cloud storage server involve transmission overhead and data authentication issues, as well as computational overhead and additional costs. Furthermore, there are issues such as malicious third-party auditors colluding with cloud storage server administrators for profit to deceive data owners, leading to data security risks. The applicant has made corresponding explorations to address these issues. Summary of the Invention

[0006] The purpose of this application is to provide an outsourced data integrity auditing method, corresponding apparatus, electronic equipment, and computer-readable storage medium to solve the above-mentioned problems.

[0007] To achieve the various objectives of this application, the following technical solution is adopted:

[0008] A method for auditing the integrity of outsourced data, proposed for one of the purposes of this application, includes the following steps:

[0009] The data owner initiates an outsourced data request to obtain system global parameters generated by the cloud server. Based on the system global parameters and the data owner's file data, the hash value corresponding to the file data is determined. Based on the hash value corresponding to the file data, the unique identifier of the file data is determined. Based on the unique identifier of the file data, the file upload instruction returned by the cloud server is determined.

[0010] The data owner determines the plaintext dataset corresponding to the file data based on the file upload instruction, determines the ciphertext dataset corresponding to the file data based on the plaintext dataset, determines the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, and uploads it to the cloud storage server for detection to determine the file data storage result.

[0011] The cloud storage server obtains the smart contract corresponding to the file data based on the file data storage result, records the target block height corresponding to the file data based on the smart contract, and determines the target block hash value corresponding to the file data based on the target block height, so as to determine the challenge dataset corresponding to the file data;

[0012] The cloud storage server determines the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and saves the audit record of the file data;

[0013] The data owner determines the final audit result based on the data integrity certificate and audit records to complete the audit of the file data.

[0014] Optionally, the step of determining the file upload instruction returned by the cloud server based on the unique identifier of the file data includes the following steps:

[0015] The cloud storage server responds to the file data detection command and obtains the unique identifier corresponding to the file data;

[0016] The cloud storage server checks whether it has a unique identifier corresponding to the file data. If the cloud storage server does not have a unique identifier corresponding to the file data, it returns a file data upload instruction to the data owner.

[0017] Optionally, the step of the data owner determining the plaintext dataset corresponding to the file data based on the file upload instruction, and determining the ciphertext dataset corresponding to the file data based on the plaintext dataset, includes the following steps:

[0018] The data owner responds to a file encryption command by dividing the file data into several file data blocks of the same size;

[0019] The data owner calculates the hash value corresponding to each file data block based on a secure hash algorithm, and determines the key corresponding to each file data block based on the hash value corresponding to each file data block;

[0020] The data owner encrypts the plaintext data corresponding to each file data block based on a symmetric encryption algorithm and the key corresponding to each file data block, in order to determine the ciphertext data corresponding to each file data block;

[0021] The ciphertext dataset corresponding to the file data is determined based on the ciphertext data corresponding to each file data block.

[0022] Optionally, the step of determining the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data includes the following steps:

[0023] The data owner further segments the ciphertext data corresponding to each file data block to determine the ciphertext data segmentation result of the ciphertext data corresponding to each file data block.

[0024] Based on a preset authentication tag function, the authentication tag corresponding to the file data is determined according to the encrypted data segmentation result, system global parameters, and the hash value corresponding to the file data, and the authentication tag set corresponding to the file data is determined according to the authentication tag.

[0025] The signature value is determined based on the system global parameters and the hash value corresponding to the file data.

[0026] Optionally, the step of determining the challenge dataset corresponding to the file data by recording the target block height corresponding to the file data according to the smart contract, and determining the target block hash value corresponding to the file data according to the target block height, includes the following steps:

[0027] The smart contract responds to the block height detection command, detects the current block height, increments it by one to obtain the target block height, saves the target block height on the blockchain, and returns it to the cloud storage server.

[0028] The cloud storage server determines the target block hash value based on the target block height, and determines the challenge dataset corresponding to the file data based on the target block hash value and the system global parameters.

[0029] Optionally, the step of the cloud storage server determining the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value includes the following steps:

[0030] The cloud storage server responds to the data integrity verification command and determines the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value corresponding to the file data.

[0031] The cloud storage server determines the integrity proof element corresponding to the file data based on the system global parameters, the signature value, the encrypted dataset, and the challenge dataset.

[0032] The cloud storage server determines the nonlinear combination corresponding to the file data based on the system global parameters, the integrity proof elements corresponding to the file data, the encrypted dataset, and the challenge dataset.

[0033] The cloud storage server determines the aggregated tag corresponding to the file data based on the authentication tag set and the challenge dataset.

[0034] The cloud storage server determines the data integrity proof corresponding to the file data based on the integrity proof elements, nonlinear combinations, and aggregation tags corresponding to the file data.

[0035] Optionally, the step by which the data owner determines the final audit result based on the data integrity certificate and audit records includes the following steps:

[0036] The challenge dataset corresponding to the file data is determined based on the block hash value corresponding to the file data, and the final audit result is determined based on the system global parameters, the unique identifier corresponding to the file data, the challenge dataset corresponding to the file data, and the data integrity proof.

[0037] If the data owner responds to the audit result detection command and detects that the number of audits corresponding to the file data is inconsistent with the number of audits in the audit log file of the cloud storage service server, then the data owner rejects the final audit result.

[0038] The data owner determines the hash value of the audit record and the transaction hash value based on the audit record, determines the input data field value under the transaction based on the transaction hash value, and rejects the final audit result if the hash value of the audit record is inconsistent with the input data field value under the transaction.

[0039] The data owner determines the corresponding block based on the block height of the file data. If the block is detected to have been generated before the time when the cloud storage server starts executing the audit task, the final audit result is rejected.

[0040] The data owner determines the block height and block hash value corresponding to the file data based on the audit records. If the block hash value corresponding to the file data is inconsistent with the block hash value corresponding to the block height, the final audit result is rejected.

[0041] The data owner determines the challenge dataset based on the block hash value corresponding to the file data, and determines the audit result based on the challenge dataset and the integrity proof.

[0042] An outsourced data integrity auditing apparatus provided for another purpose of this application includes:

[0043] The data upload determination module is configured to obtain system global parameters generated by the cloud server when the data owner initiates an outsourced data request, determine the hash value corresponding to the file data based on the system global parameters and the file data of the data owner, determine the unique identifier of the file data based on the hash value corresponding to the file data, and determine the file upload instruction returned by the cloud server based on the unique identifier of the file data.

[0044] The data storage result determination module is configured to have the data owner determine the plaintext dataset corresponding to the file data based on the file upload instruction, determine the ciphertext dataset corresponding to the file data based on the plaintext dataset, determine the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, and upload it to the cloud storage server for detection to determine the file data storage result.

[0045] The challenge dataset determination module is configured such that the cloud storage server obtains the smart contract corresponding to the file data based on the file data storage result, records the target block height corresponding to the file data based on the smart contract, and determines the target block hash value corresponding to the file data based on the target block height, thereby determining the challenge dataset corresponding to the file data;

[0046] The integrity proof determination module is configured to have the cloud storage server determine the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and save the audit record of the file data.

[0047] The data audit module is configured so that the data owner determines the final audit result based on the data integrity certificate and audit records, thereby completing the audit of the file data.

[0048] An electronic device provided for another purpose of this application includes a central processing unit and a memory, the central processing unit being configured to invoke and run a computer program stored in the memory to perform the steps of the outsourced data integrity auditing method described in this application.

[0049] A computer-readable storage medium is provided for another purpose of this application, which stores, in the form of computer-readable instructions, a computer program implemented according to the outsourced data integrity auditing method, which, when invoked by a computer, performs the steps included in the corresponding method.

[0050] Compared to existing technologies, this application addresses the lack of more secure and reliable challenge datasets in existing technologies. The current approach, where data owners generate challenge datasets and then transmit them to cloud storage servers, incurs transmission overhead and data authentication issues, incurs computational costs and additional expenses, and risks data security vulnerabilities due to malicious third-party auditors colluding with cloud storage servers for profit. This application's outsourced data integrity auditing method offers, but is not limited to, the following beneficial effects:

[0051] Firstly, when conducting outsourced data audits, the generation of challenge datasets does not require the participation of data owners or third-party auditors, making the source of challenge datasets more secure, trustworthy, and reliable. This satisfies the different security requirements of data owners and cloud storage servers, and the generated challenge datasets are verifiable by data owners and cloud storage servers. By adopting a design method without physical interaction, no third-party auditors are required throughout the entire outsourced data audit process, eliminating data security issues caused by malicious third-party auditors colluding with cloud storage server administrators to deceive data owners.

[0052] Secondly, this application has a secure and efficient data deduplication function. Based on symmetric encryption algorithm and blockchain technology, it allows cloud servers to calculate a unified integrity proof for the same user data, thereby improving the utilization rate of cloud server storage space, saving computing resources, and alleviating the key management burden of data owners.

[0053] Third, this application uses blockchain to record data audit results. Data on the blockchain is public, traceable, and tamper-proof. By verifying the data on the chain, it is possible to detect whether the cloud storage server has engaged in malicious behavior such as deceiving the data owner, thus avoiding delays in auditing by the cloud storage server and the generation of controversial audit results. The final audit results of outsourced data are credible and reliable. Attached Figure Description

[0054] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the following description of the embodiments taken in conjunction with the accompanying drawings, wherein:

[0055] Figure 1 An exemplary architecture used for the outsourced data integrity auditing method of this application;

[0056] Figure 2 This is a flowchart illustrating the outsourced data integrity auditing method in this application embodiment;

[0057] Figure 3 This is a schematic diagram illustrating the process of determining the file upload instruction returned by the cloud storage server based on the hash value corresponding to the file data in an embodiment of this application;

[0058] Figure 4 This is a schematic diagram illustrating the process by which the data owner determines the ciphertext dataset corresponding to the file data based on the plaintext dataset in an embodiment of this application.

[0059] Figure 5 This is a schematic diagram illustrating the process of determining the authentication tag set corresponding to the ciphertext dataset based on system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data in this embodiment of the application.

[0060] Figure 6 This is a flowchart illustrating the process of determining the challenge dataset corresponding to the file data in an embodiment of this application;

[0061] Figure 7 This is a schematic diagram illustrating the process of determining the data integrity proof corresponding to the file data based on system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value in an embodiment of this application.

[0062] Figure 8 This is a schematic diagram of the outsourced data integrity auditing device in the embodiments of this application;

[0063] Figure 9 This is a schematic diagram of the structure of the computer device in the embodiments of this application. Detailed Implementation

[0064] The embodiments of this application are described in detail below. Examples of these embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain this application, and should not be construed as limiting this application.

[0065] Those skilled in the art will understand that, unless specifically stated otherwise, the singular forms “a,” “an,” “the,” and “the” used herein may also include the plural forms. It should be further understood that the term “comprising” as used in this application means the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. It should be understood that when we say an element is “connected” or “coupled” to another element, it can be directly connected or coupled to the other element, or there may be intermediate elements. Furthermore, “connected” or “coupled” as used herein can include wireless connections or wireless coupling. The term “and / or” as used herein includes all or any units and all combinations of one or more associated listed items.

[0066] It will be understood by those skilled in the art that, unless otherwise defined, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. It should also be understood that terms such as those defined in general dictionaries should be understood to have the same meaning as in the context of the prior art, and should not be interpreted in an idealized or overly formal sense unless specifically defined as herein.

[0067] Those skilled in the art will understand that the terms "client," "terminal," and "terminal device" as used herein include both devices that receive wireless signals, devices that only possess wireless signal receiver capabilities without transmission capabilities, and devices with receiving and transmitting hardware, devices that have receiving and transmitting hardware capable of bidirectional communication over a bidirectional communication link. Such devices may include: cellular or other communication devices such as personal computers or tablets, having single-line displays, multi-line displays, or cellular or other communication devices without multi-line displays; PCS (Personal Communications Service) that can combine voice, data processing, fax, and / or data communication capabilities; PDA (Personal Digital Assistant) that may include a radio frequency receiver, pager, internet / intranet access, web browser, notepad, calendar, and / or GPS (Global Positioning System) receiver; and conventional laptops and / or handheld computers or other devices that have and / or include radio frequency receivers. As used herein, "client," "terminal," and "terminal device" can be portable, transportable, installed in a means of transportation (air, sea, and / or land), or suitable and / or configured to operate locally and / or in a distributed manner, operating in any other location on Earth and / or in space. "Client," "terminal," and "terminal device" as used herein can also be a communication terminal, an internet access terminal, or a music / video playback terminal, such as a PDA, a MID (Mobile Internet Device), and / or a mobile phone with music / video playback capabilities, or a smart TV, set-top box, etc.

[0068] The hardware referred to by the names "server," "client," and "service node" in this application is essentially an electronic device with the equivalent capabilities of a personal computer. It is a hardware device with the necessary components revealed by the von Neumann architecture, such as a central processing unit (including an arithmetic logic unit and a control unit), memory, input devices, and output devices. The computer program is stored in its memory, and the central processing unit loads the program stored in the secondary storage into the main memory to run it, execute the instructions in the program, and interact with the input and output devices to complete specific functions.

[0069] It should be noted that the concept of "server" used in this application can also be extended to the case of server clusters. Based on the network deployment principles understood by those skilled in the art, the servers should be logically divided. Physically, these servers can be independent of each other but accessible through interfaces, or they can be integrated into a single physical computer or a computer cluster. Those skilled in the art should understand this flexibility and should not use it to constrain the implementation of the network deployment method in this application.

[0070] One or more of the technical features of this application, unless explicitly specified herein, can be deployed on a server and accessed by a client remotely calling the online service interface provided by the server, or can be directly deployed and run on a client for access.

[0071] Unless otherwise specified, the neural network models referenced or potentially referenced in this application may be deployed on a remote server and invoked remotely on the client, or deployed on a client with the capability to invoke directly. In some embodiments, when running on the client, the corresponding intelligence may be acquired through transfer learning in order to reduce the requirements on the client's hardware resources and avoid excessive consumption of the client's hardware resources.

[0072] Unless otherwise specified, all data involved in this application may be stored remotely on a server or on a local terminal device, as long as it is suitable for use by the technical solution of this application.

[0073] Those skilled in the art will understand that although the various methods in this application are described based on the same concept and thus present commonality among them, they can be performed independently unless otherwise specified. Similarly, the various embodiments disclosed in this application are all based on the same inventive concept; therefore, concepts expressed in the same way, as well as concepts that are appropriately changed for convenience but are expressed differently, should be understood equivalently.

[0074] Unless otherwise expressly stated, the various embodiments disclosed in this application can be combined in a cross-cutting manner to flexibly construct new embodiments, as long as such combination does not depart from the inventive spirit of this application and can meet the needs of the prior art or solve a certain deficiency in the prior art. Those skilled in the art should be aware of such modifications.

[0075] In the wave of economic globalization and with the rapid development of computer technology, cross-border data exchange and sharing has become one of the important means of modern international communication. Especially in the agricultural sector, data is characterized by its large volume, wide dimensions, and significant differences between individual data points. The application of cross-border data exchange and sharing among data owners can effectively improve agricultural production efficiency and quality, trace the origin and flow of agricultural products, ensure food safety, and promote sustainable agricultural development. It also helps to promote agricultural cooperation and exchange between different countries. However, the data collected by agricultural IoT systems involves sensitive data such as farmers' personal information and agricultural production data. Furthermore, cross-border data exchange and sharing involves issues such as network environments and data privacy protection between different countries. Therefore, cross-border data exchange and sharing still faces many challenges.

[0076] Data, as a precious resource, is exploding in various forms every moment. For data owners, the storage space of computer devices such as IoT systems is limited. Storing large amounts of data directly on local machines is extremely space-consuming, and managing and maintaining such large amounts of data over a long period presents numerous challenges. Outsourcing data to cloud storage servers offers significant advantages in unified data storage, management, and sharing. As an excellent tool, it provides powerful and flexible storage and computing resources, serving as an intermediary for data exchange and sharing, and has become a common and effective solution. To alleviate the heavy burden of local data storage and achieve secure data sharing, more and more data owners are inclined to outsource their confidential data to cloud storage servers. However, while cloud storage servers bring enormous convenience and benefits to data owners, they also raise concerns about data privacy and security.

[0077] On the one hand, cloud storage servers, as entities holding management rights rather than ownership of data, may themselves be interested in understanding the content of the data. For example, a cloud storage server might illegally steal users' raw data for profit, violating data confidentiality. On the other hand, the integrity of outsourced data is also crucial to the interests of the data owner. Considering that some anomalies are objectively possible, such as equipment failure leading to data loss in the cloud, and worse, the data stored in the cloud might be maliciously deleted by the cloud storage server to reduce storage space and maintenance costs, compromising data integrity and availability. Furthermore, the malicious party could also be the data owner, attempting to falsely accuse the cloud storage server that honestly stores the data. To effectively monitor data on cloud storage servers and prevent malicious data owners from falsely accusing them, an effective solution is to use outsourced data integrity auditing. This allows cloud storage servers to prove the data's integrity through probabilistic auditing. Building on this, many solutions involve independent third-party auditors hired by the data owner regularly checking the integrity of outsourced data. However, in the real world, third-party auditors are often not entirely trustworthy. Audit schemes using third-party auditors are susceptible to malicious behaviors such as delaying audits and colluding with malicious cloud storage servers to deceive users, which can affect the audit process. Supervising, restricting, or even removing third-party auditors is a research and development trend in data integrity auditing.

[0078] To combat potential malicious activities during outsourced data implementation, outsourced data integrity auditing technology has emerged, helping data owners verify the integrity of outsourced data. Specifically, each data audit requires a dataset to illustrate the target data blocks and their corresponding challenge coefficients. This dataset, called the challenge dataset, directly impacts the accuracy and reliability of the audit results. In most existing data auditing technologies, the challenge dataset is generated by the data owner or a third-party auditor. However, having the data owner generate the challenge dataset and then transmit it to the cloud storage server is impractical, as it incurs transmission overhead, data authentication issues, and computational costs. In reality, data owners should not incur additional costs for outsourced data auditing. Having a third-party auditor generate the challenge dataset is also problematic, increasing costs for the data owner and posing a security risk of malicious third-party auditors colluding with cloud storage servers to deceive the data owner. Therefore, existing data auditing solutions lack more secure and reliable challenge datasets. Furthermore, the increasing popularity of outsourced data has led to a year-on-year increase in the amount of data stored in the cloud. This applicant has explored solutions to address this issue.

[0079] Data owners outsource their data to cloud servers. Before outsourcing, encryption and decryption keys are generated, encrypting plaintext data blocks to obtain ciphertext. Authentication tags and signature values ​​are then calculated, and the encryption and decryption keys are stored on the blockchain. The ciphertext dataset, authentication tag set, and signature value are sent to the cloud server for storage. If the data already exists, the user interacts with the cloud server to prove ownership and obtain the right to use the data in the cloud. Finally, users can verify data integrity through audit logs. The cloud storage server generates system-wide parameters, stores user data, and periodically provides data integrity proofs. Before storing data, the cloud server verifies the correlation between the ciphertext dataset and authentication tag set, generates a challenge dataset with the assistance of smart contracts, further calculates data integrity proofs, and saves audit logs through log files and the blockchain for data owners to verify.

[0080] Based on the above exemplary scenarios, please refer to Figure 1 as well as Figure 2 The outsourced data integrity auditing method of this application, in one embodiment, includes the following steps:

[0081] Step S10: The data owner initiates an outsourced data request to obtain system global parameters generated by the cloud server. Based on the system global parameters and the data owner's file data, the hash value corresponding to the file data is determined. Based on the hash value corresponding to the file data, the unique identifier of the file data is determined. Based on the unique identifier of the file data, the file upload instruction returned by the cloud server is determined.

[0082] In response to a data integrity audit event, the system global parameters generated by the cloud storage server and the file data of the data owner are obtained. The generated system global parameters include... make These are two distinct p-order multiplicative cyclic groups, where g is The generator, u is random element on, e: It is a bilinear mapping. The hash value corresponding to the file data is determined based on the system global parameters and the file data using a hash function, which includes: H(·): H1(·): H2(·): H3(·): And two pseudo-random functions: f(·):{0,1} * →[1,n],h(·): The file upload instruction returned by the cloud storage server is determined based on the hash value corresponding to the file data.

[0083] In some embodiments, the cloud storage server and the data owner can obtain the system global parameters, and the cloud storage server and the data owner generate corresponding public and private key parameters based on the system global parameters. The public and private key parameters include: the public and private key pair (PK) of the cloud storage server. CSP SK CSP ), the private key α of the cloud storage server, and the public key g of the cloud storage server. α Public-private key pair (PK) of the data owner DO SK DO The data owner's private key x and public key g x etc.

[0084] In some embodiments, before determining the file upload instruction returned by the cloud storage server, a hash value corresponding to the file data is determined based on system global parameters and the file data of the data owner, to further calculate and determine the unique identifier corresponding to the file data. This unique identifier is then sent to the cloud storage server so that the cloud storage server can detect whether the file data already exists on the cloud storage server. The cloud storage server returns the detection result to the data owner, who responds to the cloud storage server based on the received detection result. Specifically, the cloud storage server's detection of whether the file data already exists on the cloud storage server includes:

[0085] When a data owner wants to upload file data to a cloud storage server, the data owner first calculates the hash value SK corresponding to the file data. FID As shown in the following formula:

[0086] SK FID =H1(F)

[0087] Where F represents the file data owned by the data owner;

[0088] The data owner further calculates the unique identifier (FID) of the file data, as follows:

[0089]

[0090] The data owner sends the FID to the cloud storage server, which then uses the FID already stored in the cloud to... *The system checks if the FID already exists. If it doesn't, the cloud storage server returns FRESH to the data owner, indicating that the data owner can encrypt and upload file data F; otherwise, the cloud storage server returns EXISTED to the data owner, indicating that the data owner can further calculate proof of ownership of file data F, thereby obtaining the right to use the corresponding encrypted file data in the cloud. The data owner uses the public key PK of the cloud storage server. CSP The private key SK of the data owner DO The hash value SK corresponding to the file data FID Calculate the ownership proof PF of file data F as follows:

[0091]

[0092] Wherein, PF represents proof of ownership of file data F, and PK... CSP The SK represents the public key of the cloud storage server. DO The SK represents the private key of the data owner. FID This represents the hash value corresponding to the file data.

[0093] The data owner sends the ownership certificate PF of file data F to the cloud storage server. The cloud storage server then uses the received ownership certificate PF and the private key SK of the cloud storage server to... CSP Public key PK of the data owner DO And the matching check is performed on the FID in the cloud, and the formula is expressed as follows:

[0094]

[0095] A correct match is indicated as follows:

[0096]

[0097] If a match is found, the data owner gains the right to use the encrypted data of the corresponding file in the cloud.

[0098] Step S20: The data owner determines the plaintext dataset corresponding to the file data based on the file upload instruction, determines the ciphertext dataset corresponding to the file data based on the plaintext dataset, determines the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, and uploads it to the cloud storage server for detection to determine the file data storage result.

[0099] The data owner determines the plaintext dataset corresponding to the file data based on the file upload instruction, determines the ciphertext dataset corresponding to the file data based on the plaintext dataset, determines the encryption key and decryption key for each plaintext data block based on the plaintext data corresponding to the data owner's file data, and then determines the ciphertext dataset corresponding to the file data by encrypting the plaintext data block corresponding to the file data. After encrypting the relevant keys corresponding to the file data, the data is saved on the blockchain.

[0100] Specifically, before uploading file data F, the data owner divides file data F into n fixed-size data blocks M1, M2, ..., Mn of the same size. n Next, the encryption and decryption keys corresponding to each file data block are calculated, and the SHA256 algorithm is used to calculate the encryption and decryption keys for file data block M. i Hash value K i =SHA256(M i ) is used as its encryption and decryption key; the file data block M is used. i Hash value K i As the key for the AES256 symmetric encryption algorithm, to encrypt the file data block M i The corresponding plaintext data is then used to obtain the file data block M. i The corresponding encrypted data C i =AES256(K i M i Similarly, the ciphertext data corresponding to each other file data block is determined in the same way, which will not be elaborated here. In this way, the ciphertext data corresponding to each file data block is determined, thereby determining the ciphertext dataset corresponding to the file data.

[0101] To reduce the burden of key management, the data owner encrypts the key-related data. First, the key K = SHA256(x) is calculated, then the encrypted result of the key-related data, Keys = AES256(K, SK), is calculated. FID ||K1||K2||...||K n The encryption results (Keys) are saved on the blockchain. The data owner only needs to save the private key x to recover the corresponding key for the complete file data.

[0102] Based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, the authentication tag set corresponding to the ciphertext dataset is determined. A signature value is determined based on the system global parameters and the hash value corresponding to the file data, and uploaded to the cloud storage server for verification to determine the file data storage result. The data owner uploads the ciphertext dataset, authentication tag set, and signature value corresponding to the file data to the cloud storage server so that the cloud storage server can verify the correctness of the uploaded file data. The cloud storage server performs data deduplication by comparing it with the already saved ciphertext, so that the cloud storage server stores the new ciphertext dataset and authentication tag set in the database. The system administrator can deploy a smart contract, initialize the file object, send the smart contract address to the data owner and the cloud storage server, and then go offline.

[0103] The data owner further segments the ciphertext data corresponding to each file data block to determine the ciphertext data segmentation result for each file data block; based on a preset authentication tag function, the authentication tag corresponding to the file data is determined according to the ciphertext data segmentation result, system global parameters, and the hash value corresponding to the file data, and the authentication tag set corresponding to the file data is determined according to the authentication tag.

[0104] Specifically, the data owner first stores the file data block M i The corresponding encrypted data C i Further segmentation, dividing the file data block M i The corresponding encrypted data C i Divide into s blocks to determine the ciphertext data segmentation result {C i,j} 1≤i≤n,1≤j≤s Then, based on the preset authentication tag function, the authentication tag σ corresponding to the file data is calculated according to the system global parameters, the encrypted data segmentation result, and the hash value corresponding to the file data. i The preset authentication tag function is represented as follows:

[0105]

[0106] The signature value v is calculated as follows:

[0107]

[0108] The data owner assembles the encrypted data corresponding to each file data block into an encrypted dataset C, and the authentication tags corresponding to each file data block into an authentication tag set Φ. Then, the encrypted dataset C, the authentication tag set Φ, and the signature value v are uploaded to the cloud storage server. After receiving the data, the cloud storage server can check the correctness of the file data using the following formula:

[0109]

[0110] By checking whether the above formula is true, if the equation is not true, it means that the encrypted dataset and authentication tag set corresponding to the file data do not match. In this case, the cloud storage server refuses to provide file data storage services.

[0111] If the equation holds true, the cloud storage server then performs a duplicate check on the ciphertext corresponding to the file data. The cloud storage server checks whether the ciphertext corresponding to the newly uploaded file data has been saved by comparing it with the existing ciphertext. If there is a part in the ciphertext corresponding to the file data that has already been stored by the cloud storage server, then the ciphertext will not be saved again. Only the non-duplicate ciphertext in the ciphertext corresponding to the file data and its corresponding authentication tag are saved to determine the file data storage result.

[0112] Step S30: The cloud storage server obtains the smart contract corresponding to the file data based on the file data storage result, records the target block height corresponding to the file data based on the smart contract, and determines the target block hash value corresponding to the file data based on the target block height, so as to determine the challenge dataset corresponding to the file data;

[0113] After the cloud storage server saves new file data based on the file data storage results, the system administrator deploys the smart contract SC. FID The file object is initialized through the FileSetUp function in the contract, where the FileSetUp algorithm and the File structure are as follows:

[0114]

[0115]

[0116] Wherein, AddrCSP is the address of the MetaMask wallet of the cloud storage server; BlockHeight records the block height of the block hash used by the cloud storage server to generate the challenge dataset during each data audit; Times records the number of data audits; and the system administrator will use the smart contract SC... FIDThe address is sent to the data owner and cloud storage server before going offline.

[0117] The cloud storage server can access a smart contract to record the target block height, obtain the target block hash value based on the recorded target block height, and then calculate the challenge dataset required for this data audit, specifically including:

[0118] When the time comes for outsourced data auditing, the cloud storage server will use the smart contract SC. FID The GetBlockHeight function records the height of the target block. The GetBlockHeight function is represented as follows:

[0119]

[0120] When the block height corresponding to the file data is file.BlockHeight = 0, the cloud storage server can record and obtain the next block height of the file data through a smart contract. Accessing the smart contract at this time will record the next block height η of the latest block height, i.e., file.BlockHeight = block.number + 1. When the block height corresponding to the file data is file.BlockHeight ≠ 0, the cloud storage server cannot access this function again to change this block height. It must obtain the block hash value τ based on the previously recorded block height η, and then calculate the challenge dataset based on the block hash value τ.

[0121] The cloud storage server determines the target block hash value τ based on the target block height η recorded in the smart contract, so that the cloud storage server can calculate the challenge dataset required for this data audit as follows:

[0122] i ξ =f(τ||ξ),

[0123] Where 1≤ξ≤c, and c is the ciphertext block C that needs to be checked during data auditing. i The number of elements, 1 ≤ c ≤ n, and the challenge dataset corresponding to the file data is:

[0124] Step S40: The cloud storage server determines the data integrity certificate corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and saves the audit record of the file data;

[0125] The cloud storage server calculates and determines the data integrity certificate corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and saves and publishes data audit records so that the data owner can check the integrity of the outsourced data. In response to the data integrity certificate instruction, the cloud storage server determines the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value corresponding to the file data; the cloud storage server determines the integrity certificate element corresponding to the file data based on the system global parameters, signature value, encrypted dataset, and challenge dataset; the cloud storage server determines the nonlinear combination corresponding to the file data based on the system global parameters, the integrity certificate element corresponding to the file data, encrypted dataset, and challenge dataset; the cloud storage server determines the aggregation tag corresponding to the file data based on the authentication tag set and challenge dataset; and the cloud storage server determines the data integrity certificate corresponding to the file data based on the integrity certificate element, nonlinear combination, and aggregation tag.

[0126] Specifically, after the cloud storage server determines the challenge dataset corresponding to the file data, the cloud storage server randomly selects an integer r. Calculate the integrity proof element R = v corresponding to the file data. r The cloud storage server determines the nonlinear combination corresponding to the file data based on the system global parameters, the integrity proof elements corresponding to the file data, the encrypted dataset, and the challenge dataset. The cloud storage server calculates the aggregated tag corresponding to the file data based on the authentication tag set and challenge dataset corresponding to the file data. The cloud storage server calculates the integrity proof elements corresponding to the file data. The cloud storage server determines the data integrity proof corresponding to the file data as Proof={R,μ,σ,ρ} based on the integrity proof elements, nonlinear combinations, and aggregation tags corresponding to the file data.

[0127] Step S50: The data owner determines the final audit result based on the data integrity certificate and audit records to complete the audit of the file data.

[0128] The data owner determines the final audit result based on the data integrity certificate and audit records to complete the audit of the file data. The data owner recalculates the challenge dataset. i ξ =f(τ||ξ), And calculate the following formula:

[0129]

[0130] If the above formula is true, it means that the file data is intact; otherwise, the audit results are rejected.

[0131] The correctness of the file data is indicated as follows:

[0132]

[0133] To enable data owners to verify data integrity, cloud storage servers store and publicly disclose data audit logs via smart contracts. FID The LogGen function records the completion of this data audit task. The LogGen function is as follows:

[0134]

[0135] When the block height `blockHeight` submitted by the cloud storage server equals the block height `file.BlockHeight` recorded in the smart contract, it is then determined whether the block hash value `blockHash` submitted by the cloud storage server equals the block hash value `BlockHash` corresponding to `file.BlockHeight`. If they match, the audit count is incremented by one, and the `AuditLog` event is triggered to save the audit evidence to the smart contract's log. If they do not match, the `Warning` event is triggered to save the audit evidence to the smart contract's log. The purpose of the `LogGen` algorithm is to save audit evidence, ensuring that the cloud storage server accurately uses the target block height `η` to obtain the target block hash value `τ` to calculate the challenge dataset, and preparing for the next audit task.

[0136] The cloud storage server calculates the hash value h of the data related to this audit. t =H(t||c||η||τ||R||μ||σ||ρ), where t represents the time when the cloud storage server starts executing the audit task. The cloud storage server initiates a transaction through the MetaMask wallet, with the transaction's Input Data field set to h. t After a transaction is successfully saved to the blockchain, the cloud storage server obtains the transaction hash value TH. The cloud storage server generates an audit record {t,c,η,τ,R,μ,σ,ρ} for each audit task and saves the audit record and the transaction hash value TH together in the audit log file LogFile, as shown below:

[0137]

[0138] The steps by which the data owner determines the final audit result based on the data integrity certificate and audit records include the following steps:

[0139] The challenge dataset corresponding to the file data is determined based on the block hash value corresponding to the file data, and the final audit result is determined based on the system global parameters, the unique identifier corresponding to the file data, the challenge dataset corresponding to the file data, and the data integrity proof.

[0140] If the data owner responds to the audit result detection command and detects that the number of audits corresponding to the file data is inconsistent with the number of audits in the audit log file of the cloud storage service server, then the data owner rejects the final audit result.

[0141] In some embodiments, the data owner accesses the smart contract SC FID The system obtains the number of times the data was audited (Times). If the number of times the data was audited is inconsistent with the number of times the data was audited in the audit log file (LogFile) of the cloud server, the audit result is rejected.

[0142] The data owner determines the hash value of the audit record and the transaction hash value based on the audit record, determines the input data field value under the transaction based on the transaction hash value, and rejects the final audit result if the hash value of the audit record is inconsistent with the input data field value under the transaction.

[0143] In some embodiments, the data owner obtains the Input Data field value h under the transaction based on the transaction hash value TH. t And recalculate the hash value based on the corresponding record in the audit log file. if They then refused to accept the audit results.

[0144] The data owner determines the corresponding block based on the block height of the file data. If the block is detected to have been generated before the time when the cloud storage server starts executing the audit task, the final audit result is rejected.

[0145] In some embodiments, the data owner finds the corresponding block based on the block height η and obtains the block generation time t. * If the block is generated at time t * Audit results will be rejected if the cloud server starts executing the audit task before time t.

[0146] The data owner determines the block height and block hash value corresponding to the file data based on the audit records. If the block hash value corresponding to the file data is inconsistent with the block hash value corresponding to the block height, the final audit result is rejected.

[0147] In some embodiments, the data owner locates the corresponding block based on the block height η and obtains the block hash value τ. * If the block hash value τ * If the result is inconsistent with τ in the log file, the block hash value τ' submitted to the smart contract by the cloud server is retrieved from the smart contract log. If τ' ≠ τ, the audit result is rejected.

[0148] As can be seen from the above embodiments, compared with the prior art, this application addresses the lack of more secure and reliable challenge datasets in the prior art. The existing technology involves data owners generating challenge datasets and then transmitting them to cloud storage servers, which incurs transmission overhead and data authentication issues, and also brings computational overhead and additional costs. Furthermore, it addresses the problem of malicious third-party auditors colluding with cloud storage servers for profit to deceive data owners, leading to data security risks. The outsourced data integrity auditing method of this application includes, but is not limited to, the following beneficial effects:

[0149] Firstly, when conducting outsourced data audits, the generation of challenge datasets does not require the participation of data owners or third-party auditors, making the source of challenge datasets more secure, trustworthy, and reliable. This satisfies the different security requirements of data owners and cloud storage servers, and the generated challenge datasets are verifiable by data owners and cloud storage servers. By adopting a design method without physical interaction, no third-party auditors are required throughout the entire outsourced data audit process, eliminating the risk of malicious third-party auditors colluding with cloud storage server administrators to deceive data owners and causing data security issues.

[0150] Secondly, this application has a secure and efficient data deduplication function. Based on symmetric encryption algorithm and blockchain technology, it allows cloud servers to calculate a unified integrity proof for the same user data, thereby improving the utilization rate of cloud server storage space, saving computing resources, and alleviating the key management burden of data owners.

[0151] Third, this application uses blockchain to record data audit results. Data on the blockchain is public, traceable, and tamper-proof. By verifying the data on the chain, it is possible to detect whether the cloud storage server has engaged in malicious behavior such as deceiving the data owner, thus avoiding delays in auditing by the cloud storage server and the generation of controversial audit results. The final audit results of outsourced data are credible and reliable.

[0152] Based on any embodiment of this application, please refer to Figure 3 The steps for determining the file upload instruction returned by the cloud storage server based on the hash value corresponding to the file data include the following steps:

[0153] Step S101: The cloud storage server responds to the file data detection command and obtains the unique identifier corresponding to the file data;

[0154] Before determining the file upload instruction returned by the cloud storage server, the hash value corresponding to the file data is determined based on the system global parameters and the file data of the data owner, so as to further calculate and determine the unique identifier corresponding to the file data.

[0155] Step S103: The cloud storage server checks whether it has a unique identifier corresponding to the file data. If the cloud storage server does not have a unique identifier corresponding to the file data, it returns a file data upload instruction to the data owner.

[0156] The unique identifier corresponding to the file data is sent to the cloud storage server so that the cloud storage server can detect whether the file data already exists on the cloud storage server. The cloud storage server checks whether it has a unique identifier corresponding to the file data. If the cloud storage server does not have a unique identifier corresponding to the file data, it returns a file data upload instruction to the data owner.

[0157] The cloud storage server returns the detection result to the data owner. The data owner responds to the cloud storage server based on the received detection result. The cloud storage server checks whether the file data already exists on the cloud storage server, specifically including:

[0158] When a data owner wants to upload file data to a cloud storage server, the data owner first calculates the hash value SK corresponding to the file data. FID As shown in the following formula:

[0159] SK FID =H1(F)

[0160] Where F represents the file data owned by the data owner;

[0161] The data owner further calculates the unique identifier (FID) of the file data, as follows:

[0162]

[0163] The data owner sends the FID to the cloud storage server, which then uses the FID already stored in the cloud to... *The system checks if the FID already exists. If it does not exist, a file data upload instruction is returned to the data owner, indicating that the data owner can encrypt and upload file data F; otherwise, the cloud storage server returns a file existence instruction EXISTED to the data owner, indicating that the data owner can further calculate proof of ownership of file data F, thereby obtaining the right to use the corresponding encrypted file data in the cloud.

[0164] Based on any embodiment of this application, please refer to Figure 4 The steps of determining the plaintext dataset corresponding to the file data based on the file upload instruction, and determining the ciphertext dataset corresponding to the file data based on the plaintext dataset, include the following steps:

[0165] Step S201: The data owner responds to the file encryption command by dividing the file data into several file data blocks of the same size;

[0166] Before uploading file data F, the data owner divides file data F into n fixed-size data blocks M1, M2, ..., Mn. n .

[0167] Step S203: The data owner calculates the hash value corresponding to each file data block based on a secure hash algorithm, and determines the key corresponding to each file data block based on the hash value corresponding to each file data block.

[0168] Calculate the encryption and decryption keys corresponding to each file data block. The secure hash algorithm can be SHA256, etc. The SHA256 algorithm is used to calculate the encryption and decryption keys for file data block M. i Hash value K i =SHA256(M i ) as its encryption and decryption keys;

[0169] Step S205: The data owner encrypts the plaintext data corresponding to each file data block based on a symmetric encryption algorithm and the key corresponding to each file data block, so as to determine the ciphertext data corresponding to each file data block.

[0170] Using the file data block M i Hash value K i As the key for the AES256 symmetric encryption algorithm, to encrypt the file data block M i The corresponding plaintext data is then used to obtain the file data block M. i The corresponding encrypted data C i =AES256(K i M iSimilarly, the ciphertext data corresponding to each other file data block is determined in the same way, which will not be elaborated here.

[0171] Step S207: Determine the ciphertext dataset corresponding to the file data based on the ciphertext data corresponding to each file data block.

[0172] It is easy to understand that after determining the ciphertext data corresponding to each file data block, the ciphertext dataset corresponding to the file data is determined based on the ciphertext data corresponding to each file data block.

[0173] Based on any embodiment of this application, please refer to Figure 5 The steps of determining the authentication tag set corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, and determining the signature value based on the system global parameters and the hash value corresponding to the file data, include the following steps:

[0174] Step S2001: The data owner further segments the ciphertext data corresponding to each file data block to determine the ciphertext data segmentation result of the ciphertext data corresponding to each file data block;

[0175] The data owner first places the file data block M i The corresponding encrypted data C i Further segmentation, dividing the file data block M i The corresponding encrypted data C i Divide into s blocks to determine the ciphertext data segmentation result {C i,j} 1≤i≤n,1≤j≤s .

[0176] Step S2003: Based on the preset authentication tag function, determine the authentication tag corresponding to the file data according to the encrypted data segmentation result, system global parameters and the hash value corresponding to the file data, determine the authentication tag set corresponding to the file data according to the authentication tag, and determine the signature value according to the system global parameters and the hash value corresponding to the file data.

[0177] Based on a preset authentication tag function, the authentication tag σ corresponding to the file data is calculated according to system global parameters, encrypted data segmentation results, and the hash value corresponding to the file data. i The preset authentication tag function is represented as follows:

[0178]

[0179] The signature value v is calculated as follows:

[0180]

[0181] The data owner will assemble the encrypted data corresponding to each file data block into an encrypted dataset C corresponding to the file data, and the authentication tags corresponding to each file data block will assemble the file data authentication tag set Φ.

[0182] Based on any embodiment of this application, please refer to Figure 6 The steps for determining the challenge dataset corresponding to the file data, based on the target block height recorded by the smart contract and the target block height, to determine the target block hash value corresponding to the file data, include the following steps:

[0183] Step S301: The smart contract responds to the block height detection command, detects the current block height and increments it by one to obtain the target block height, stores the target block height on the blockchain and returns it to the cloud server, and the cloud server determines the target block hash value based on the target block height.

[0184] When the block height corresponding to the file data is file.BlockHeight = 0, the cloud storage server can record and obtain the next block height of the file data through a smart contract. Accessing the smart contract at this time will record the next block height η of the latest block height, i.e., file.BlockHeight = block.number + 1. When the block height corresponding to the file data is file.BlockHeight ≠ 0, the cloud storage server cannot access this function again to change this block height. It must obtain the block hash value τ based on the previously recorded block height η, and then calculate the challenge dataset based on the block hash value τ.

[0185] Step S303: The cloud storage server determines the target block hash value based on the target block height, and determines the challenge dataset corresponding to the file data based on the target block hash value and the system global parameters.

[0186] After determining the target block hash value corresponding to the file data block, the cloud storage server determines the challenge dataset corresponding to the file data based on the target block hash value corresponding to the file data block.

[0187] Based on any embodiment of this application, please refer to Figure 7 The steps by which the cloud storage server determines the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value include the following steps:

[0188] Step S401: The cloud storage server responds to the data integrity verification command and determines the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value corresponding to the file data;

[0189] Step S403: The cloud storage server determines the integrity proof element corresponding to the file data based on the system global parameters, signature value, encrypted dataset, and challenge dataset;

[0190] Step S405: The cloud storage server determines the nonlinear combination corresponding to the file data based on the system global parameters, the integrity proof elements corresponding to the file data, the encrypted dataset, and the challenge dataset;

[0191] Step S407: The cloud storage server determines the aggregate tag corresponding to the file data based on the authentication tag set and the challenge dataset;

[0192] Step S409: The cloud storage server determines the data integrity certificate corresponding to the file data based on the integrity certificate elements, nonlinear combinations, and aggregation tags corresponding to the file data.

[0193] Once the cloud storage server determines the challenge dataset corresponding to the file data, the cloud storage server randomly selects an integer r. Calculate the integrity proof element R = v corresponding to the file data. r The cloud storage server determines the nonlinear combination corresponding to the file data based on the system global parameters, the integrity proof elements corresponding to the file data, the encrypted dataset, and the challenge dataset. The cloud storage server calculates the aggregated tag corresponding to the file data based on the authentication tag set and challenge dataset corresponding to the file data. The cloud storage server calculates the integrity proof elements corresponding to the file data. The cloud storage server determines the data integrity proof corresponding to the file data as Proof = {R, μ, σ, ρ} based on the signature value, nonlinear combination, aggregation tag, and integrity proof element corresponding to the file data.

[0194] Please see Figure 8This application provides an outsourced data integrity auditing device, comprising a data upload determination module 1100, a data storage result determination module 1200, a challenge dataset determination module 1300, an integrity proof determination module 1400, and a data auditing module 1500. The data upload determination module 1100 is configured to: obtain system global parameters generated by a cloud server by the data owner initiating an outsourced data request; determine the hash value corresponding to the file data based on the system global parameters and the data owner's file data; determine the unique identifier of the file data based on the hash value; and determine the file upload instruction returned by the cloud server based on the unique identifier. The data storage result determination module 1200 is configured to: determine the plaintext dataset corresponding to the file data based on the file upload instruction; determine the ciphertext dataset corresponding to the file data based on the plaintext dataset; determine the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data; and upload the ciphertext dataset to the cloud storage service. The cloud storage server performs detection to determine the file data storage result; the challenge dataset determination module 1300 is configured to obtain the smart contract corresponding to the file data based on the file data storage result, record the target block height corresponding to the file data based on the smart contract, and determine the target block hash value corresponding to the file data based on the target block height to determine the challenge dataset corresponding to the file data; the integrity proof determination module 1400 is configured to determine the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and save the audit record of the file data; the data audit module 1500 is configured to determine the final audit result based on the data integrity proof and audit record to complete the audit of the file data.

[0195] Based on any embodiment of this application, please refer to Figure 9 Another embodiment of this application also provides an electronic device, which can be implemented by a computer device, such as... Figure 9The diagram shows the internal structure of a computer device. The computer device includes a processor, a computer-readable storage medium, a memory, and a network interface connected via a system bus. The computer-readable storage medium stores an operating system, a database, and computer-readable instructions. The database may store control information sequences. When the computer-readable instructions are executed by the processor, they enable the processor to implement an outsourced data integrity auditing method. The processor of the computer device provides computing and control capabilities to support the operation of the entire computer device. The memory of the computer device may store computer-readable instructions, which, when executed by the processor, enable the processor to execute the outsourced data integrity auditing method of this application. The network interface of the computer device is used for communication with a terminal. Those skilled in the art will understand that… Figure 9 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0196] In this embodiment, the processor is used to execute... Figure 8 The system contains the specific functions of each module and its sub-modules. The memory stores the program code and various data required to execute these modules or sub-modules. The network interface is used for data transmission between the user terminal and the server. In this embodiment, the memory stores the program code and data required to execute all modules / sub-modules in the outsourced data integrity auditing device of this application. The server can call the server's program code and data to execute the functions of all sub-modules.

[0197] This application also provides a storage medium storing computer-readable instructions, which, when executed by one or more processors, cause the one or more processors to perform the steps of the outsourced data integrity auditing method described in any embodiment of this application.

[0198] This application also provides a computer program product, including a computer program / instructions that, when executed by one or more processors, implement the steps of the outsourced data integrity auditing method described in any embodiment of this application.

[0199] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments of this application can be implemented by a computer program instructing related hardware. This computer program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments of the methods described above. The aforementioned storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc.

[0200] The above description is only a partial embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.

[0201] In summary, when conducting outsourced data audits, the generation of challenge datasets does not require the participation of data owners or third-party auditors, making the source of the challenge datasets more secure, trustworthy, and reliable. This satisfies the different security requirements of data owners and cloud storage servers, among other parties. Furthermore, the generated challenge datasets are verifiable by data owners and cloud storage servers. By adopting a non-physical interaction design approach, no third-party auditors are required throughout the entire outsourced data audit process, eliminating data security issues caused by malicious third-party auditors colluding with cloud storage server administrators to deceive data owners.

Claims

1. A method for auditing the integrity of outsourced data, characterized in that, Includes the following steps: The data owner initiates an outsourced data request to obtain system global parameters generated by the cloud server. Based on the system global parameters and the data owner's file data, the hash value corresponding to the file data is determined. Based on the hash value corresponding to the file data, the unique identifier of the file data is determined. Based on the unique identifier of the file data, the file upload instruction returned by the cloud server is determined. The data owner determines the plaintext dataset corresponding to the file data based on the file upload instruction, determines the ciphertext dataset corresponding to the file data based on the plaintext dataset, determines the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, and uploads it to the cloud server for detection to determine the file data storage result. The cloud server obtains the smart contract corresponding to the file data based on the file data storage result, and records the target block height corresponding to the file data according to the smart contract. According to the height of the target block Determine the target block hash value corresponding to the file data. To determine the challenge dataset corresponding to the file data. ,in, , , , , , Represents a pseudo-random function. For checking encrypted blocks during data auditing Quantity, This indicates the number of data blocks of the same fixed size that the file data is divided into; The cloud server determines the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and saves the audit record of the file data, which includes: The cloud server responds to the data integrity verification command, determining the system global parameters and encrypted dataset corresponding to the file data. Authentication Tag Set Challenge Dataset and signature value ; When the cloud server determines the challenge dataset corresponding to the file data Then, the cloud server randomly selects an integer. Calculate the integrity proof elements corresponding to the file data. ,in, ; The cloud server uses the system global parameters and the integrity proof elements corresponding to the file data. The encrypted dataset and challenge datasets Determine the nonlinear combination corresponding to the file data. ,in, , Indicates each ciphertext block The number of sub-blocks after further division. Represents a hash function; The cloud server uses the authentication tag set and challenge datasets Determine the aggregation tags corresponding to the file data. ,in, ; The cloud server calculates the integrity proof elements corresponding to the file data. ,in, , Represents a hash function; The cloud server uses the integrity proof element corresponding to the file data. Nonlinear combination Aggregation tags Integrity proof elements 1. Determine the data integrity certificate corresponding to the file data. ,in, ; The data owner provides proof of data integrity. The audit log determines the final audit results to complete the audit of the document data.

2. The outsourced data integrity auditing method according to claim 1, characterized in that, The steps for determining the file upload instruction returned by the cloud server based on the unique identifier of the file data include the following steps: The cloud server responds to the file data detection command and obtains the unique identifier corresponding to the file data; The cloud server checks whether it has a unique identifier corresponding to the file data. If the cloud server does not have a unique identifier corresponding to the file data, it returns a file data upload instruction to the data owner.

3. The method for auditing the integrity of outsourced data according to claim 1, characterized in that, The steps of determining the plaintext dataset corresponding to the file data based on the file upload instruction, and determining the ciphertext dataset corresponding to the file data based on the plaintext dataset, include the following steps: The data owner responds to a file encryption command by dividing the file data into several file data blocks of the same size; The data owner calculates the hash corresponding to each file data block based on a secure hash algorithm. The key corresponding to each file data block is determined based on the hash value corresponding to each file data block. The data owner encrypts the plaintext data corresponding to each file data block based on a symmetric encryption algorithm and the key corresponding to each file data block, in order to determine the ciphertext data corresponding to each file data block; The ciphertext dataset corresponding to the file data is determined based on the ciphertext data corresponding to each file data block.

4. The outsourced data integrity auditing method according to claim 3, characterized in that, The steps for determining the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data include the following steps: The data owner further segments the ciphertext data corresponding to each file data block to determine the ciphertext data segmentation result of the ciphertext data corresponding to each file data block. Based on a preset authentication tag function, the authentication tag corresponding to the file data is determined according to the encrypted data segmentation result, the system global parameters, and the hash value corresponding to the file data, and the authentication tag set corresponding to the file data is determined according to the authentication tag. The signature value is determined based on the system global parameters and the hash value corresponding to the file data.

5. The method for auditing the integrity of outsourced data according to claim 3, characterized in that, The steps for determining the challenge dataset corresponding to the file data, based on the target block height recorded by the smart contract and the target block height, to determine the target block hash value corresponding to the file data, include the following steps: The smart contract responds to the block height detection command, detects the current block height, increments it by one to obtain the target block height, stores the target block height on the blockchain, and returns it to the cloud server. The cloud server determines the target block hash value based on the target block height, and determines the challenge dataset corresponding to the file data based on the target block hash value and the system global parameters.

6. The method for auditing the integrity of outsourced data according to any one of claims 1 to 5, characterized in that, The steps by which the data owner determines the final audit result based on the data integrity certificate and audit records include the following steps: The challenge dataset corresponding to the file data is determined based on the block hash value corresponding to the file data, and the final audit result is determined based on the system global parameters, the unique identifier corresponding to the file data, the challenge dataset corresponding to the file data, and the data integrity proof. If the data owner responds to the audit result detection command and detects that the number of audits corresponding to the file data is inconsistent with the number of audits in the audit log file of the cloud server, then the final audit result is rejected. The data owner determines the hash value of the audit record and the transaction hash value based on the audit record, determines the input data field value under the transaction based on the transaction hash value, and rejects the final audit result if the hash value of the audit record is inconsistent with the input data field value under the transaction. The data owner determines the corresponding block based on the block height of the file data. If the block is detected to have been generated before the time when the cloud server starts executing the audit task, the final audit result is rejected. The data owner determines the block height and block hash value corresponding to the file data based on the audit record. The data owner then determines the block hash value corresponding to the block height based on the block height. If the block hash value corresponding to the file data is found to be inconsistent with the block hash value corresponding to the block height, the data owner rejects the final audit result. The data owner determines the challenge dataset based on the block hash value corresponding to the file data, and determines the audit result based on the challenge dataset and the integrity proof.

7. A device for auditing the integrity of outsourced data, characterized in that, include: The data upload determination module is configured to obtain system global parameters generated by the cloud server when the data owner initiates an outsourced data request, determine the hash value corresponding to the file data based on the system global parameters and the file data of the data owner, determine the unique identifier of the file data based on the hash value corresponding to the file data, and determine the file upload instruction returned by the cloud server based on the unique identifier of the file data. The data storage result determination module is configured to have the data owner determine the plaintext dataset corresponding to the file data based on the file upload instruction, determine the ciphertext dataset corresponding to the file data based on the plaintext dataset, determine the authentication tag set and signature value corresponding to the ciphertext dataset based on the system global parameters, the ciphertext dataset corresponding to the file data, and the hash value corresponding to the file data, and upload it to the cloud server for detection to determine the file data storage result. The challenge dataset determination module is configured such that the cloud server obtains the smart contract corresponding to the file data based on the file data storage result, and records the target block height corresponding to the file data according to the smart contract. According to the height of the target block Determine the target block hash value corresponding to the file data. To determine the challenge dataset corresponding to the file data. ,in, , , , , , Represents a pseudo-random function. For checking encrypted blocks during data auditing Quantity, This indicates the number of data blocks of the same fixed size that the file data is divided into; The integrity proof determination module is configured so that the cloud server determines the data integrity proof corresponding to the file data based on the system global parameters, encrypted dataset, authentication tag set, challenge dataset, and signature value, and saves the audit record of the file data, which includes: The cloud server responds to the data integrity verification command, determining the system global parameters and encrypted dataset corresponding to the file data. Authentication Tag Set Challenge Dataset and signature value ; When the cloud server determines the challenge dataset corresponding to the file data Then, the cloud server randomly selects an integer. Calculate the integrity proof elements corresponding to the file data. ,in, ; The cloud server uses the system global parameters and the integrity proof elements corresponding to the file data. The encrypted dataset and challenge datasets Determine the nonlinear combination corresponding to the file data. ,in, , Indicates each ciphertext block The number of sub-blocks after further division. Represents a hash function; The cloud server uses the authentication tag set and challenge datasets Determine the aggregation tags corresponding to the file data. ,in, ; The cloud server calculates the integrity proof elements corresponding to the file data. ,in, , Represents a hash function; The cloud server uses the integrity proof element corresponding to the file data. Nonlinear combination Aggregation tags Integrity proof elements 1. Determine the data integrity certificate corresponding to the file data. ,in, ; The data audit module is configured to allow the data owner to provide proof of data integrity. The audit log determines the final audit results to complete the audit of the document data.

8. An electronic device comprising a central processing unit and a memory, characterized in that, The central processing unit is used to invoke and run a computer program stored in the memory to perform the steps of the method as described in any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, It stores, in the form of computer-readable instructions, a computer program implemented according to any one of claims 1 to 6, which, when invoked by a computer, executes the steps included in the corresponding method.

Citation Information

Patent Citations

  • Outsourcing data deduplication cloud storage method supporting privacy and integrity protection

    CN110677487A

  • Data auditing and security deduplication cloud storage system and method based on block chain

    CN111355705A