Decentralized storage method and system supporting data dynamics and public integrity audit
By introducing protocols and blockchain technologies that support data dynamic and public integrity audits in decentralized storage, the problem that existing technologies cannot effectively combine data dynamic and public integrity audits is solved, and efficient and secure data storage is achieved and verification, improving the reliability and scalability of the system.
Patent Information
- Application Number
- CN202210178994.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-02-25
- Publication Date
- 2024-12-06
- Estimated Expiration
- 2042-02-25
AI Technical Summary
The existing decentralized storage technology cannot effectively combine data dynamics and open integrity audits, resulting in the inability to meet the needs of availability, efficiency and reliability in decentralized cloud storage. At the same time, there is a large computing overhead and a lack of protection against malicious auditors. Problems of measures.
Adopt a decentralized storage method that supports data dynamics and open integrity audits, and through Setup, Put, Get, Challenge, Verify and Dynamics protocols, blockchain and Merkle Tree, etc., to realize block-level dynamic operation of data by clients. and integrity audits to ensure randomness and security of the verification process.
It realizes efficient public integrity audit and data dynamics in decentralized storage, reduces the computing overhead of clients and servers, prevents malicious behavior, improves download rate and system scalability, saves server maintenance costs, and provides Higher security and reliability.
Smart Images

Figure CN114499865B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of decentralized storage security technology, and in particular, relates to a decentralized storage method and system that supports dynamic and public integrity auditing of data. Background Art
[0002] At present, with the continuous innovation and breakthrough of Internet information technology, especially the emergence and development of artificial intelligence and cloud computing technology, the amount of data has exploded, and data outsourcing has gradually become a trend in information storage. Data outsourcing can provide clients with cheap and convenient services such as data storage, access and seamless synchronization on different devices, and has become an indispensable part of people's daily life. Decentralized storage has attracted widespread attention from academia and industry due to its advantages such as fast download speed, high security and low cost. In recent years, researchers have invested a lot of energy in the design of encrypted storage solutions such as data disclosure integrity audit and dynamic update of data. A survey shows that 43% of respondents have lost outsourced data, and it is necessary to audit the integrity of client data regularly.
[0003] At present, the commonly used existing technologies in the industry are as follows: In order to ensure that the client data is stored completely on the server side, in terms of maintaining data integrity, researchers have designed many storage solutions to verify the availability and reliability of data in remote storage, such as Provable Data Possession (PDP) [Giuseppe Ateniese, Randal C. Burns, Reza Curtmola, Joseph Herring, Lea Kissner, Zachary N. J. Peterson, and Dawn Xiaodong Song. 2007. Provable data possession at untrusted stores. In Proceedings of the 2007 ACM Conference on Computer and Communications Security, CCS 2007, Alexandria, Virginia, USA, October 28-31, 2007, Peng Ning, Sabrina De Capitani di Vimercati, and Paul F. Syverson (Eds.). ACM, 598–609.],Since the client verifies the proof by maintaining a fixed amount of metadata, the number of updates and challenges that the client can perform is limited.Afterwards, researchers improved some new schemes based on provable data possession, such as multi-copy [A.Abo-Alian, N.L.Badr, and M.F.Tolba, “Integrity as a service for replicated data on the cloud,” Concurr.Comput.Pract.Exp.,vol.29,no.4,2017.], [A.F.Barsoumand M.A.Hasan, “Provable multicopy dynamic data possession in cloud computingsystems,”IEEE Trans.Inf.Forensics Secur.,vol.10,no.3,pp.485–497,2015.], [M.Yi, J.Wei, and L.Song, “Efficient integrity verification ofreplicated data in cloudcomputingsystem,” Comput.Secur.,vol.65,pp.202–212,2017.] and data dynamics [C.C.Erway, A. C. Papamanthou, and R. Tamassia, “Dynamic provable data possession,” IACR Cryptol. ePrint Arch., p. 432, 2008.], [J. Shen, J. Shen, X. Chen, X. Huang, and W. Susilo, “An efficient public auditing protocol with novel dynamic structure for cloud data,” IEEE Trans. Inf. Forensics Secur., vol. 12, no. 10, pp. 2402–2415, 2017.], [J. Zhang, B. Wang, M. R. Ogiela, X. A. Wang, and A. K. Sangaiah, “New public auditing protocol based on homomorphic tags for secure cloud storage,” Concurr. Comput. Pract. Exp., vol. 32, no. 18, 2020.], [K. Brindha and N. Jeyanthi, “A novel approach to secure cloud data storage and dynamic data auditing in a cloud,” in Proceedings of the Second International Conference on Internet of things and Cloud Computing, ICC 2017, Cambridge, United Kingdom, March 22 - 23, 2017, H. Hamdan, D. E. Boubiche, H. Toral - Cruz, S. Akleylek, and H. Mcheick, Eds. ACM, 2017, pp. 13:1–13:5.] public verification [L. Huang, G. Zhang, and A. Fu, “Privacy - preserving public auditing for non - manager group shared data,” Wirel. Pers. Commun., vol. 100, no. 4, pp. 1277–1294, 2018.], [Y. Xu, R. Ding, J. Cui, and H.Zhong, “Intrusion-resilient public auditing protocol for data storage in cloud computing,” inInformation Security and Privacy-23rd Australasian Conference, ACISP 2018, Wollongong, NSW, Australia, July 11-13, 2018, Proceedings, ser. Lecture Notes in Computer Science, W. Susilo and G.Yang, Eds., vol.10946.Springer, 2018, pp.399–416.], [R.Ding, Y.Xu, J.Cui, and H.Zhong, “A public auditing protocol for cloudstorage system with intrusion-resilience,” IEEE Syst.J., vol.14, no.1, pp.633–644, 2020.], [H.Wang, H.Qin, M.Zhao, X.Wei, H.Shen, and W.Susilo, "Blockchain-based fairpayment smart contract for public cloud storage auditing," Inf.Sci., vol.519, pp.348–362, 2020.] These schemes do not combine public integrity auditing with data dynamics and efficiency. In decentralized storage, researchers have also designed some schemes to protect the security of client data [R.Doku, DB Rawat, and C.Liu, "On the blockchain-based decentralized data sharing for event based encryption to combat adversarial attacks," IEEE Trans. Netw. Sci. Eng., vol.8, no.2, pp.1033–1043, 2021.], [Y.Chen, L.Wang, and S.Wang, "Stochastic blockchain for iot data integrity," IEEE Trans. Netw. Sci. Eng., vol.7, no.1, pp.373–384, 2020.], [S. Dziembowski, S. Faust, V. Kolmogorov, and K. Pietrzak, "Proofs of space," in Advances in Cryptology-CRYPTO 2015-35th Annual Cryptology Conference, Santa Barbara, CA, USA, August 16-20, 2015, Proceedings, Part II, ser. Lecture Notes in Computer Science, R. Gennaro and M. Robshaw, Eds., vol. 9216. Springer, 2015, pp. 585–605.]. Some of these schemes mainly check the similarity of data rather than the security and integrity of data, and some have high verification overhead and are not suitable for big data scenarios. Moreover, there is no efficient scheme in decentralized storage that supports public integrity auditing and data dynamics. .
[0004] Availability, efficiency, and reliability are all very important features in decentralized cloud storage. However, most of these solutions set independent goals, such as public data integrity audits, proof of data copies, etc., and only guarantee one or two of these features.
[0005] Through the above analysis, the problems and defects of the existing technology are as follows: the technology that integrates the advantages of availability, efficiency and reliability in the same decentralized storage solution does not exist at present; the existing solutions cannot meet these requirements, and the existing solutions cannot be directly combined to meet the current needs of decentralized cloud storage services.
[0006] Some existing decentralized storage solutions support integrity auditing and data dynamics, but limit the number of challenges and updates, which is inconvenient for users to maintain data. There are also solutions that do not check the security and integrity of data, but check the similarity of data. Computational overhead is also one of the issues that should be considered. Some solutions perform integrity detection by comparing decrypted plaintext, which has a large computational overhead and is not suitable for big data scenarios. At the same time, existing decentralized storage solutions have not yet designed a solution for malicious verification against malicious auditors, which poses a great threat to the security of user data.
[0007] The difficulty of solving the above problems and defects is: designing a solution to support public integrity audit in decentralized cloud storage, designing a solution to support data dynamics in decentralized storage, and coordinating availability, efficiency and reliability functions to form a framework that includes these two solutions.
[0008] The significance of solving the above problems and defects is that the solution of the present invention is the first solution that allows the client to implement public integrity auditing and data dynamics in decentralized storage, and can use blockchain to examine whether the client and the server have malicious behavior. Decentralized storage adopts a multi-point download mode, which greatly improves the download rate. The client data is pre-processed with erasure codes and stored in multiple decentralized servers. A single point failure will not cause the entire file to be unavailable. At the same time, decentralized storage eliminates the high cost of centralized servers to maintain data, which is particularly important for achieving economies of scale in cloud storage. The present invention adopts a storage proof scheme with a new type of publicly verifiable properties, which reduces the computing overhead of the client and server. At the same time, the present invention can ensure the randomness of the challenges generated during the verification process, avoiding the situation where dishonest service providers collude with third parties. Summary of the invention
[0009] In response to the problems existing in the prior art, the present invention provides a decentralized storage method and system that supports dynamic and public integrity auditing of data.
[0010] The present invention is implemented as follows: a decentralized storage method supporting dynamic data and public integrity audit, the decentralized storage method supporting dynamic data and public integrity audit comprising:
[0011] The first step is to initialize public and private parameters according to the Setup protocol and assist the client in completing data preprocessing;
[0012] The second step is to process the data and generate verification tags according to the Put protocol client, and upload the data and verification tags to multiple decentralized servers;
[0013] Step 3: The Get protocol is triggered when the client downloads data;
[0014] Step 4: The Challenge protocol and the Verify protocol enable the client or a third party to verify whether the file in the server is complete.
[0015] In the fifth step, the client modifies the file at the block level to trigger the Dynamics protocol.
[0016] Furthermore, the Setup protocol in the first step is used to initialize the public and private parameters of the client and is a non-interactive protocol executed by all parties in the system:
[0017] If the client outsources file F to a decentralized storage server, the client pre-processes file F; the client runs the key generation algorithm and calculates and stores the public and private keys locally; during the setup phase, the decentralized server initializes and maintains the public and private parameters used to build a secure channel; the corresponding database of the data stored in the server completes the initialization setup.
[0018] Furthermore, the Put protocol of the second step includes: the Put protocol is executed between the client and the decentralized server, the client runs the label generation algorithm, and calculates n labels Constitute a signature set Φ; generate a tree according to the Merkle Tree generation rule, and the leaf nodes represent the hash value H(m i )(i=1,…,n), and sign the root sig sk (H(R)); Both parties generate a file identifier idF which serves as the unique handle of F; {F, Φ, sig sk (H(R))} will be uploaded to the decentralized server; and sig sk (H(R)), Merkle Tree, signature set Φ is updated to the blockchain.
[0019] Furthermore, the third step Get protocol performs the download function, allowing the client to download the file stored in the client from the server. When the client downloads data, it first initializes this protocol and sends the file identifier idF to the server. After receiving the message, the server first checks whether the database contains the entry id F , if it exists, then pass id F Download from the server and decrypt using the private key to obtain file F.
[0020] Furthermore, the fourth step, the Challenge protocol, is an interactive protocol running between the verifier and the prover. The Challenge protocol has two functions: (1) it allows the server to convince the verifier that the stored F is complete. The verifier sends a challenge chal to the server to check the integrity of F. The server calculates and returns a proof for further proof of the Verify protocol. (2) The Challenge protocol calls the event-source-dependent pseudo-random number generator in the blockchain, which can be formally expressed as:
[0021] chal←Challenge(i,v i ).
[0022] Furthermore, the Verify protocol in the fourth step checks the proof generated by the Challenge protocol. The verifier executes the Verify protocol to check the proof generated by the Challenge protocol to ensure the integrity of the client outsourced data. The Verify protocol outputs acceptance True or rejection false to indicate whether the proof has passed the verification. The formal expression is:
[0023] TRUE, FALSE←Verify(pk, chal, P);
[0024] In the Setup phase, the key server selects a p-order cyclic group and a bilinear pairing map The key server executes the key generation algorithm KeyGen(·) to select the private key and the corresponding public key v←g α ; The client file is preprocessed F = (m1, ..., m n ), before uploading the file to the server, the client selects a random element u←G for each file block and calculates the signature The signature set is denoted as Φ = {σ i}, 1≤i≤n, the client generates the root Root according to the Merkle Tree generation rule, and the leaf node represents the hash value H(m i )(i=1,…,n);
[0025] Sign the root sig sk (H(R))←(H(R)) α , the file block, signature set Φ and root signature {F, Φ, sig sk (H(R))} upload to the decentralized server and delete the local file, and maintain a table to record the address of each file block storage service client, and the root signature sig sk (H(R)), Merkle Tree and signature set Φ are updated to the blockchain.
[0026] Furthermore, the fifth step Dynamics protocol is an interactive protocol running between the verifier and the prover. The Dynamics protocol has three functions: supporting the client to perform block-level dynamic operations on outsourced data, including block modification, block insertion and block deletion; the client sends an update request to the server that stores the corresponding block, and the server performs the update operation ExecUpdate(F, Φ, update), which is formally expressed as:
[0027] (F′, Φ′, P update )←Dynamics(F, Φ, update).
[0028] Furthermore, the decentralized storage method supporting dynamic and public integrity audit of data supports the client to perform integrity audit on outsourced data and also supports the client to perform dynamic operations on outsourced data at the block level; it includes a set of algorithms: KeyGen, SigGen, Challenge, Verify, Dynamics;
[0029] KeyGen(1 k): By calling this function, the client generates a random signature public and private key pair, and the client selects
[0030] And calculate v←g α , then the private key is sk = (α) and the public key is pk = (v);
[0031] SigGen(sk, F): Given F = (m1, ..., m n ), signed under the private key, the client calculates the signature tag Φ={σ i}, 1≤i≤n, where
[0032] Challenge (chal, TPA / Client): The client or a third party calls a pseudo-random number generator that depends on a time source to generate a set of d elements I = {s1, ..., s d}, for each i∈I, TPA selects a random element Let the set {(i, v i )} as the challenge information chal, broadcast the challenge chal to the f decentralized servers storing the client data;
[0033] The server stores the corresponding data block and calculates:
[0034] and
[0035] And prove the information Send to the validator;
[0036] Verify(pk, chal, P): The verifier receives all the verification information from the server and performs an aggregation operation on it:
[0037] and
[0038] Client Authentication:
[0039]
[0040] If it is true, it proves that the file block is stored completely on the server. Otherwise, it means that a file block on a certain server is damaged. The client verifies the proof information sent by each server to find out which server's data block is damaged and take corresponding measures.
[0041] Dynamics(Client, Server): User generates a new signature Send the update request to the corresponding server. After receiving the update request, the server updates the file F, the signature set Φ and calculates the new root R′. update =(H(m′ i ), R′) is sent back to the user, and the user uses H(m′ i ) Calculate R new And compare it with R′. If it is correct, it means that the server has performed the update operation as required and outputs TRUE. Otherwise, it outputs FALSE. Finally, the server updates the new root signature sig sk (H(R)), signature set Φ, and new Merkle Tree to the blockchain. The user or third party compares the new root with the root on the blockchain to determine whether the server has updated the tree on the blockchain when the verification is passed.
[0042] Another object of the present invention is to provide a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor executes the steps of the decentralized storage method that supports dynamic and public integrity auditing of data.
[0043] Another object of the present invention is to provide a decentralized storage system supporting dynamic data and public integrity auditing that implements the decentralized storage method supporting dynamic data and public integrity auditing, and the decentralized storage system supporting dynamic data and public integrity auditing includes:
[0044] Clients, who use cloud storage services to store data, are used to segment file data, generate encryption keys, encrypt file blocks, construct file uploads, downloads, and delete data, check whether the files stored in the cloud server are complete, and perform dynamic operations on files at the block level;
[0045] Decentralized server, used to store file blocks uploaded by clients, while ensuring the integrity and reliability of files, ensuring the data availability of all data owners, and performing dynamic operations on data at the block level by clients;
[0046] A third party is used to trigger the Challenge and Verify protocols to help the client perform data integrity audits periodically.
[0047] Combining all the above technical solutions, the advantages and positive effects of the present invention are as follows: In response to the current problems of centralized storage, such as slow data download speed, easy privacy leakage, and high storage cost, our solution adopts a decentralized model. The multi-point download mode has greatly improved the data download speed compared to centralized storage. The files are pre-processed with erasure codes and distributedly stored on multiple decentralized server terminals, which provides a certain degree of fault tolerance and saves the maintenance costs of decentralized storage for servers, which is very important for achieving economies of scale in cloud storage.
[0048] The present invention utilizes blockchain in the implementation process, making full use of the publicity and traceability of blockchain. The operations of users and servers will be recorded on the blockchain, and both parties can review whether the other party's behavior is legal through the blockchain.
[0049] In order to reduce user expenses, the present invention introduces a third party to assist users in periodically auditing the integrity of user data. In addition, the present invention calls the pseudo-random number generator in the blockchain that depends on the time source during the data integrity audit process to ensure the randomness of the generated challenge and effectively prevent malicious servers from colluding with third parties to generate false proofs. In addition, the present invention does not limit the number of times a user can initiate a challenge.
[0050] Compared with the traditional integrity audit scheme, the present invention also supports users to perform block-level dynamic operations on user data, in particular, not only supports users to perform block modification and block deletion on data, but also supports users to perform block-level insertion operations on data. Similarly, the present invention does not limit the number of times users can update data.
[0051] The present invention proposes a storage method that supports data dynamics and public integrity audit in decentralized storage, supported by the security guarantee that decentralized storage supports data dynamics and public integrity audit. The present invention is the first solution that allows the client to simultaneously realize public integrity audit, data dynamics, and especially support block insertion in decentralized storage, and is a new type of comprehensive and secure decentralized storage framework. Decentralized storage adopts a multi-point download mode, and the speed of downloading data has been greatly improved. The client can make full use of the local idle storage space to store the data of other clients, thereby obtaining rewards, and making full use of the user's idle storage space. The file is distributed and stored in multiple decentralized servers after erasure code preprocessing. A single point failure will not affect the entire file of the client. At the same time, the erasure code also provides a certain fault tolerance for the client data; it saves the high cost of centralized servers to maintain data, which is very important for realizing the scale economy of cloud storage. The present invention provides a reliable and efficient decentralized storage model. Under the premise of not affecting data confidentiality and system performance, the application of blockchain is added, and the pseudo-random number generator that depends on the time source in the blockchain is applied to the data integrity verification stage, which effectively prevents malicious third parties from colluding with malicious servers to generate false proofs. Theoretical analysis shows that for decentralized cloud storage, the present invention is highly efficient in terms of storage, bandwidth, and computing. The present invention has good scalability to the number of clients and files in the system, and the overall time overhead of the system is acceptable.
[0052] The decentralized storage of the present invention adopts a multi-point download mode, which greatly improves the download rate. The client data is pre-processed with erasure codes and distributedly stored in multiple decentralized servers. Single point failure will not cause the entire file to be unavailable. At the same time, it makes full use of the idle local storage space of the client and saves the high cost of centralized server maintenance data, which is very important for realizing the scale economy of cloud storage. The present invention initializes the client's public and private parameters according to the Setup protocol, pre-processes the client data according to the erasure code; the client processes the data and generates verification tags according to the Put protocol, and uploads the data and verification tags to multiple decentralized servers; when the client wants to download data, the Get protocol is triggered; when the client wants to verify the integrity of the outsourced data, the Challenge and Verify protocols are triggered; when the client wants to update the outsourced data, the Dynamics protocol is triggered. The present invention supports the client or a third party to perform integrity audits on the client data. In the verification stage, the blockchain is used to effectively prevent the third party from performing malicious verification with the server. The data integrity verification scheme of the present invention only needs one round to complete the verification compared with the existing scheme, which greatly improves the verification efficiency. In addition, the present invention also supports the client to perform block-level dynamic update operations on the data. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] Figure 1 It is a flow chart of a decentralized storage method supporting dynamic and public integrity audit of data provided by an embodiment of the present invention.
[0054] Figure 2 It is a structural diagram of a decentralized storage system supporting dynamic and public integrity auditing of data provided by an embodiment of the present invention.
[0055] Figure 3 This is a blockchain block content diagram provided by an embodiment of the present invention.
[0056] Figure 4 It is an algorithm diagram of public integrity audit provided by an embodiment of the present invention.
[0057] Figure 5 It is an algorithm diagram of data dynamics provided by an embodiment of the present invention.
[0058] Figure 6 This is a flow chart of a public integrity audit provided by an embodiment of the present invention.
[0059] Figure 7 It is a flow chart of data dynamics provided by an embodiment of the present invention.
[0060] In the figure: 1. Client: client (data owner); 2. DSS: decentralized storage service; 3. TPA: third party (any party can act as a third party). DETAILED DESCRIPTION
[0061] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0062] In view of the problems existing in the prior art, the present invention provides a decentralized storage method and system that supports dynamic and public integrity audit of data. The present invention is described in detail below in conjunction with the accompanying drawings.
[0063] like Figure 1 As shown, the decentralized storage method supporting dynamic data and public integrity audit provided by the present invention includes the following steps:
[0064] S101: Initialize public and private parameters according to the Setup protocol and assist the client in completing data preprocessing;
[0065] S102: The client processes data and generates verification tags according to the Put protocol, and uploads the data and verification tags to multiple decentralized servers;
[0066] S103: The Get protocol is triggered when the client downloads data;
[0067] S104: Challenge and Verify protocols enable the client or a third party to verify whether the file in the server is complete;
[0068] S105: The client modifies the file at the block level to trigger the Dynamics protocol.
[0069] The decentralized storage method for supporting dynamic data and public integrity audit provided by the present invention can also be implemented by other steps by ordinary technicians in the industry. Figure 1 The decentralized storage method that supports dynamic data and public integrity auditing provided by the present invention is only a specific embodiment.
[0070] like Figure 2 As shown, the decentralized storage system supporting dynamic data and public integrity audit provided by the present invention includes:
[0071] Client 1, who uses cloud storage services to store data, is used to segment file data, generate encryption keys, encrypt file blocks, construct file uploads, downloads, and delete data, check whether the files stored in the cloud server are complete, and perform dynamic operations on files at the block level;
[0072] Decentralized server 2 is used to store the file blocks uploaded by the client, while ensuring the integrity and reliability of the files, ensuring the data availability of all data owners, and performing dynamic operations on the data at the block level by the client;
[0073] The third-party TPA3 is used to trigger the Challenge and Verify protocols to help clients perform data integrity audits periodically.
[0074] The technical solution of the present invention is further described below in conjunction with the accompanying drawings.
[0075] The present invention includes a client 1, a decentralized server 2, and a third-party TPA 3. The work performed by each end of the system is as follows: Figure 2 As shown, the client 1 first pre-processes the file through the Setup protocol and divides it into n data blocks F = (m1, ..., m n ), and then sign the file block according to the Put protocol, {F, Φ, sig sk (H(R))} upload to the decentralized server according to the Put protocol, delete the local file, and add the root signature sig sk (H(R)), the Merkle Tree and signature set Φ are updated to the blockchain, and the block content is as follows Figure 3As shown. Client 1 can also download its stored files through the Get protocol. Since the audit is public, Client 1 or TPA 3 can also interact with the server through the Challenge and Verify protocols to question whether the files they store are complete, available, secure and reliable. Decentralized server 2 proves to TPA that its data is complete and available through the Verify protocol. The verifier periodically challenges the cloud storage server for Client 1 through the Challenge protocol, requiring it to prove that the stored data is complete and available. At this time, the decentralized cloud storage server proves it through the Verify protocol.
[0076] The present invention includes Setup, Put, Get, Challenge, Verify, and Dynamics protocols. Through the above operations and protocols, decentralized storage that supports dynamic and public integrity audits of data can be completed, so that the decentralized server can effectively prove the integrity of the data stored thereon. The present invention also introduces a pseudo-random number generator that depends on the time source in the blockchain, which can effectively prevent malicious third parties from colluding with malicious servers to generate false proofs.
[0077] like Figure 6 As shown, the decentralized storage process that supports public integrity auditing is as follows:
[0078] (1) Setup protocol: By calling KeyGen(1 k ) function, the client generates a random signature public and private key pair, and the client selects And calculate v←g α , then the private key is sk = (α), and the public key is pk = (v). The file is preprocessed and divided into n data blocks, F = (m1, ..., m n ).
[0079] (2) Put protocol: Sign under the private key, the client calculates the signature tag Φ = {σ i}, 1≤i≤n, where The client generates a tree based on the Merkle Tree generation rules. The leaf nodes represent the file tags of each data block. Then the client signs the root Root. sk (H(R))←(H(R)) α , and {F, Φ, sig sk (H(R))} is uploaded to the decentralized server and the root signature sig sk (H(R)), Merkle Tree and signature set Φ are updated to the blockchain. After the Put protocol is executed between the client and the decentralized server, both parties generate a file identifier id FActs as the only handle of F; {F, Φ, sig sk (H(R))} will be uploaded to the decentralized server; and sig sk (H(R)), MerkleTree, signature set Φ is updated to the blockchain.
[0080] (3) Get protocol: The Get protocol performs the download function, which allows the client to download files stored on the client from the server. When the client wants to download data, it first initializes this protocol and sends the file identifier id to the server. F After receiving the message, the server first checks whether the database contains the entry id F , if it exists, it can be downloaded from the server through idF and decrypted using the private key to obtain file F.
[0081] (4) Challenge (chal, TPA / Client): The Challenge protocol is as follows: Figure 4 As shown, the client or a third party calls a pseudo-random number generator that depends on the time source to generate a set of d elements I = {s1, ..., s d}, for each i∈I, TPA selects a random element Let the set {(i, v i )} as the challenge information chal, broadcast the challenge chal to the f decentralized servers storing the client data; assuming that the server stores the corresponding data block, calculate:
[0082] and
[0083] And prove the information Sent to the validator.
[0084] (5) Verify (pk, chal, P): The Verify protocol is as follows Figure 4 As shown, the verifier receives all the verification information from the server and performs an aggregation operation on it:
[0085] and
[0086] Client Authentication:
[0087]
[0088] If true, it proves that the file block is completely stored in the decentralized server. Otherwise, it means that the file block of a certain server is damaged. The client then verifies the proof information sent by each server separately to find out which server's data block is damaged and take corresponding measures.
[0089] like Figure 7 As shown, the decentralized storage process that supports data dynamics is as follows:
[0090] (6) Dynamics (Client, Server): User generates a new signature Send the update request to the corresponding server. After receiving the update request, the server updates the file F, the signature set Φ and calculates the new root R′. update =(H(m′ i ), R′) is sent back to the user, and the user uses H(m′ i ) Calculate R new And compare it with R′. If it is correct, it means that the server has performed the update operation as required and outputs TRUE. Otherwise, it outputs FALSE. Finally, the server updates the new root signature sig sk (H(R)), signature set Φ, and new Merkle Tree to the blockchain. The user or third party compares the new root with the root on the blockchain to determine whether the server has updated the tree on the blockchain when the verification is passed.
[0091] It should be noted that the embodiments of the present invention can be implemented by hardware, software, or a combination of software and hardware. The hardware part can be implemented using dedicated logic; the software part can be stored in a memory and executed by an appropriate instruction execution system, such as a microprocessor or dedicated design hardware. It can be understood by a person of ordinary skill in the art that the above-mentioned devices and methods can be implemented using computer executable instructions and / or contained in a processor control code, such as a carrier medium such as a disk, CD or DVD-ROM, a programmable memory such as a read-only memory (firmware), or a data carrier such as an optical or electronic signal carrier. Such code is provided on the carrier medium. The device and its modules of the present invention can be implemented by hardware circuits such as very large-scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, etc., or programmable hardware devices such as field programmable gate arrays, programmable logic devices, etc., can also be implemented by software executed by various types of processors, and can also be implemented by a combination of the above-mentioned hardware circuits and software, such as firmware.
[0092] The above description is only a specific implementation mode of the present invention, but the protection scope of the present invention is not limited thereto. Any modifications, equivalent substitutions and improvements made by any technician familiar with the technical field within the technical scope disclosed by the present invention and within the spirit and principle of the present invention should be covered by the protection scope of the present invention.
Claims
1. A decentralized storage method that supports dynamic data and public integrity audit, characterized in that: The decentralized storage method supporting data dynamics and public integrity audit is supported by decentralized storage supporting data dynamics and public integrity audit; the client realizes public integrity audit and data dynamics in decentralized storage at the same time, which is a comprehensive security decentralized storage framework; Decentralized storage adopts a multi-point download model. The client uses the idle local storage space to store the client's data and obtains compensation. The files are pre-processed with erasure codes and distributedly stored on multiple decentralized servers. A single point of failure will not affect the entire file of the client. At the same time, erasure codes provide fault tolerance for client data. The decentralized storage method supporting dynamic data and public integrity auditing includes the following steps: The first step is to initialize public and private parameters according to the Setup protocol and assist the client in completing data preprocessing; The second step is to process the data and generate verification tags according to the Put protocol client, and upload the data and verification tags to multiple decentralized servers; Step 3: The Get protocol is triggered when the client downloads data; Step 4: The Challenge protocol and the Verify protocol enable the client or a third party to verify whether the file in the server is complete. Step 5: The client modifies the file at the block level to trigger the Dynamics protocol; The Setup protocol in the first step is used to initialize the public and private parameters of the client. It is a non-interactive protocol executed by all parties in the system: If the client outsources file F to a decentralized storage server, the client preprocesses file F; the client runs the key generation algorithm and calculates and stores the public and private keys locally; during the setup phase, the decentralized server initializes and maintains the public and private parameters used to build a secure channel; the corresponding database of the data stored in the server completes the initialization setup; The Put protocol of the second step includes: the Put protocol is executed between the client and the decentralized server, the client runs the label generation algorithm, and calculates n labels Constitute a signature set Φ; generate a tree according to the Merkle Tree generation rule, and the leaf nodes represent the hash value H(m i )(i=1,…,n), and sign the root sig sk (H(R)); Both parties generate a file identifier id F Acts as the only handle of F; {F,Φ,sig sk (H(R))} will be uploaded to the decentralized server; and sig sk (H(R)), Merkle Tree, signature set Φ is updated to the blockchain; The third step Get protocol executes the download function, allowing the client to download the file stored on the client from the server. When the client downloads data, it first initializes this protocol and sends the file identification id to the server. F ,After receiving the message, the server first checks whether the database contains the entry id F , if it exists, then pass id F Download from the server and decrypt using the private key to obtain file F; The fourth step, the Challenge protocol, is an interactive protocol running between the verifier and the prover. The Challenge protocol has two functions: (1) it allows the server to convince the verifier that the stored F is complete. The verifier sends a challenge chal to the server to check the integrity of F. The server calculates and returns a proof for further proof of the Verify protocol. (2) The Challenge protocol calls the event-source-dependent pseudo-random number generator in the blockchain, which can be formally expressed as: chal←Challenge(i,v i ); The Verify protocol in the fourth step checks the proof generated by the Challenge protocol. The verifier executes the Verify protocol to check the proof generated by the Challenge protocol to ensure the integrity of the client's outsourced data. The Verify protocol outputs acceptance True or rejection false to indicate whether the proof has passed the verification. The formal representation is: TRUE,FALSE←Verify(pk,chal,P); In the Setup phase, the key server selects a p-order cyclic group and a bilinear pairing map The key server executes the key generation algorithm KeyGen(·) to select the private key and the corresponding public key v←g α ; The client file is preprocessed F = (m1,…,m n ), before uploading the file to the server, the client selects a random element u←G for each file block and calculates the signature The signature set is denoted as Φ = {σ i },1≤i≤n, the client generates the root Root according to the Merkle Tree generation rule, and the leaf node represents the hash value H(m i )(i=1,…,n); Sign the root sig sk (H(R))←(H(R)) α , the file block, signature set Φ and root signature {F,Φ,sig sk (H(R))} upload to the decentralized server and delete the local file, and maintain a table to record the address of each file block storage service client, and the root signature sig sk (H(R)), MerkleTree and signature set Φ are updated to the blockchain; The fifth step, the Dynamics protocol, is an interactive protocol running between the verifier and the prover. The Dynamics protocol has three functions: it supports the client to perform block-level dynamic operations on outsourced data, including block modification, block insertion, and block deletion; the client sends an update request to the server that stores the corresponding block, and the server performs the update operation ExecUpdate(F,Φ,update), which is formally expressed as: (F′,Φ′,P update )←Dynamics(F,Φ,update).
2. The decentralized storage method supporting dynamic and public integrity audit of data as claimed in claim 1, characterized in that: The decentralized storage method supporting dynamic data and public integrity audit applies the pseudo-random number generator dependent on the time source in the blockchain to the data integrity verification stage.
3. The decentralized storage method supporting dynamic and public integrity audit of data as claimed in claim 1, characterized in that: The decentralized storage method supporting dynamic and public integrity audit of data supports the client to perform integrity audit on outsourced data and also supports the client to perform dynamic operations on outsourced data at the block level; it includes a set of algorithms: KeyGen, SigGen, Challenge, Verify, Dynamics; KeyGen(1 k ): By calling this function, the client generates a random signature public and private key pair, and the client selects And calculate v←g α , then the private key is sk = (α) and the public key is pk = (v); SigGen(sk,F): Given F=(m1,…,m n ), signed under the private key, the client calculates the signature tag Φ={σ i },1≤i≤n, where Challenge (chal, TPA / Client): The client or a third party calls a pseudo-random number generator that depends on a time source to generate a set of d elements I = {s1,…,s d }, for each i∈I, TPA selects a random element Let the set {(i,v i )} as the challenge information chal, broadcast the challenge chal to the f decentralized servers storing the client data; The server stores the corresponding data block and calculates: and And prove the information Send to the validator; Verify(pk,chal,P): The verifier receives all the verification information from the server and performs an aggregation operation on it: and Client Authentication: If it is true, it proves that the file block is stored completely on the server. Otherwise, it means that a file block on a certain server is damaged. The client verifies the proof information sent by each server to find out which server's data block is damaged and take corresponding measures. Dynamics (Client, Server): The client generates a data block update request, including block modification, block insertion, and block deletion; and sends it to the corresponding server, which performs the update operation and sends the proof information P update Sent to the verifier, who verifies and determines whether the server has performed the corresponding block update operation.
4. A computer device, characterized in that: The computer device includes a memory and a processor, the memory stores a computer program, and when the computer program is executed by the processor, the processor executes the steps of the decentralized storage method supporting dynamic and public integrity audit of data as described in any one of claims 1 to 3.
5. A decentralized storage system supporting dynamic data and public integrity auditing, which implements the decentralized storage method supporting dynamic data and public integrity auditing as described in any one of claims 1 to 3, characterized in that: The decentralized storage system supporting dynamic data and public integrity auditing includes: Clients, who use cloud storage services to store data, are used to segment file data, generate encryption keys, encrypt file blocks, construct file uploads, downloads, and delete data, check whether the files stored in the cloud server are complete, and perform dynamic operations on files at the block level; Decentralized server, used to store file blocks uploaded by clients, while ensuring the integrity and reliability of files, ensuring the data availability of all data owners, and performing dynamic operations on data at the block level by clients; A third party is used to trigger the Challenge and Verify protocols to help the client perform data integrity audits periodically.
