Cloud storage method and system based on secret sharing
By introducing collaboration between the designated party and the verifier, the secret sharing and update process of the cloud storage system is optimized, solving the service quality and verification pressure problems when there are many participants in the cloud storage system, and realizing efficient and secure secret sharing and updates.
Patent Information
- Application Number
- CN202210908828.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-29
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2042-07-29
AI Technical Summary
In existing cloud storage systems, when there are many participants during the confidential sharing process, the refresh operation puts pressure on service quality, and the verification process is computationally demanding, affecting security and efficiency.
By introducing designated parties and multiple verifiers, identity verification and secret recovery are performed by generating update sequences and digital signatures, reducing communication interactions between cloud storage providers and optimizing the update and verification process.
It improves the service quality and security of cloud storage systems, reduces system overhead, and enhances the efficiency and accuracy of the verification process.
Smart Images

Figure CN116192367B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of cloud storage, and particularly relates to a cloud storage method and system based on secret sharing. BACKGROUND
[0002] In the present era, more and more people choose to store data on a cloud server, which is generally a third-party hosted virtual server rather than a privately owned server. People who need data storage hosting services can purchase or lease storage space from a third-party platform to meet their data storage needs. However, as more and more service providers join the cloud storage industry, the accompanying information security problems such as data confidentiality, data isolation, application security, user privacy, copyright risk, and the like also cannot be ignored. Among these security problems, the most concerned is the data confidentiality problem.
[0003] For individual users, they hope to store photos, files, address books and the like securely and completely on a cloud server, and can download from the cloud server at any time when needed, and hope that these data are not stolen and tampered with in the cloud when not needed; for enterprise users, they may entrust a third-party platform server with a large amount of important industry data, which may involve important industry secrets, and the consequences are unpredictable once the data are leaked. Therefore, ensuring the confidentiality and integrity of the data in the third-party platform server is the key to the development of the cloud storage industry, and is also a research hotspot in the industry and academia in recent years.
[0004] Secret sharing technique is one of the important branches of modern cryptography. It is used to solve the problem of high risk and poor intrusion tolerance caused by the concentration of secret, and is an important means to protect information security and secret data. Secret sharing scheme, i.e. (k, n) threshold scheme, was first proposed by Shamir and Blakley in 1979 independently in different occasions. N is the total number of participants participating in secret sharing, and k is the minimum number of participants who can recover the original secret. The secret share held by the participant is called shadow secret. Any less than k shadow secret can recover the original secret, and less than k shadow secret cannot get any information of the original secret. In the development of secret sharing, another typical case is the long-term security threat: because some confidential data are stored in the server for decades or even a hundred years, the long-term system operation may give attackers enough time to attack more than the threshold number of servers one by one, so as to obtain or destroy the shadow share of these servers, and finally endanger the protected confidential data. The concept of proactive security was first proposed by Ostrovsky and Yung in 1991. Subsequently, Herzberg et al. proposed the first proactive secret sharing scheme in 1995. In this scheme, the existence time of the secret is divided into periods, and all participants refresh the shadow secret they hold every time period, so that the attacker cannot obtain any information about the original secret unless he attacks more than the threshold number of servers within a period. However, in the process of refreshing, the participants holding the shadow secret need to interact with each other to verify the identity of both parties, and when the number of participants is large, the refreshing operation will bring the participants the processing pressure of interactive data, affecting the service quality provided by the participants. SUMMARY
[0005] In view of the above problems, the present application provides a cloud storage method and system based on secret sharing, and the main purpose is to provide a technical scheme for cloud storage service providers participating in secret sharing to consider the service business processing performance in the process of updating sub-secret.
[0006] In order to achieve the above purpose, the present application mainly provides the following technical scheme:
[0007] In the first aspect, the present application provides a cloud storage method based on secret sharing, which specifically comprises:
[0008] According to the secret update period, the designated party generates corresponding sub-secret update shares for all cloud storage parties participating in the target secret sharing by using preset data;
[0009] The cloud storage party generates a verification message and its digital signature by using a random number locally, and sends the verification message and its digital signature to the designated party;
[0010] The designator forwards the verification message and its digital signature to other cloud storage parties for identity verification;
[0011] After all the cloud storage parties are verified, each cloud storage party generates an update sequence common to the cloud storage parties according to the local random number and the random number obtained through verification;
[0012] The multiple verification parties verify and recover the secret according to the update sequence and the public secret share in the cloud storage party to determine that the update sequence and the sub-secret update share are correct, and the public secret share is a public sub-secret added after the secret data is divided into multiple sub-secrets;
[0013] The cloud storage party updates the locally stored sub-secret share according to the sub-secret update share.
[0014] In a second aspect, the present application provides a cloud storage system based on secret sharing, which comprises a designator, multiple cloud storage parties and verification parties, wherein when an update operation is performed on a target secret corresponding to the sub-secret share stored in each cloud storage party, the following operations are specifically performed:
[0015] According to the secret update period, the designator generates a corresponding sub-secret update share for all cloud storage parties participating in the target secret sharing by using preset data;
[0016] The cloud storage party generates a verification message and its digital signature by using a random number locally, and sends the verification message and its digital signature to the designator;
[0017] The designator forwards the verification message and its digital signature to other cloud storage parties for identity verification;
[0018] After all the cloud storage parties are verified, each cloud storage party generates an update sequence common to the cloud storage parties according to the local random number and the random number obtained through verification;
[0019] The multiple verification parties verify and recover the secret according to the update sequence and the public secret share in the cloud storage party to determine that the update sequence and the sub-secret update share are correct, and the public secret share is a public sub-secret added after the secret data is divided into multiple sub-secrets;
[0020] The cloud storage party updates the locally stored sub-secret share according to the sub-secret update share.
[0021] In another aspect, the present application provides a processor for running a program, wherein the program performs the cloud storage method based on secret sharing when running.
[0022] In another aspect, the present application provides a computer readable storage medium for storing a computer program, wherein the computer program controls a device where the computer readable storage medium is located to perform the secret sharing based cloud storage method described above when executed.
[0023] By the above technical solution, the secret sharing based cloud storage method and system provided by the present application is realized by a designated third party and multiple verification parties when the secret of the cloud storage is periodically updated. The designated party generates corresponding self-secret update shares for each cloud storage party, and forwards the verification messages sent by each cloud storage party to other cloud storage parties as a transit party, thereby avoiding the problem of heavy computing pressure caused by sending verification messages to other cloud storage parties in the update verification stage, and reducing the impact on the quality of service provided by the cloud storage party due to communication interaction between the cloud storage parties. In the present application, when the cloud storage party performs identity verification, multiple verification parties update and restore the data of the stored public secret share based on the update sequence, thereby ensuring the security of other secret shares while reducing the system overhead required for verification, improving the efficiency, accuracy and security of the verification process.
[0024] The above description is only a summary of the technical solutions of the present application. In order to enable a clearer understanding of the technical means of the present application, the present application can be implemented according to the content of the specification, and in order to enable the above and other purposes, features and advantages of the present application to be more apparent and easy to understand, the specific embodiments of the present application are described below. BRIEF DESCRIPTION OF DRAWINGS
[0025] Various other advantages and benefits will become apparent to those of ordinary skill in the art, upon reading the following detailed description of the preferred embodiments. The accompanying drawings are included to provide a description of the preferred embodiments, and are not meant to limit the present application. Moreover, the same reference numerals are used throughout the various drawings to designate identical elements. In the drawings:
[0026] Figure 1 A framework diagram of a secret sharing based cloud storage system according to an embodiment of the present application is shown;
[0027] Figure 2 A flowchart of a secret data sharing and recovery process of a cloud storage method according to an embodiment of the present application is shown;
[0028] Figure 3 A flowchart of a secret sharing based cloud storage method according to an embodiment of the present application is shown;
[0029] Figure 4 A flowchart of a periodic verification secret data integrity process of a cloud storage method according to an embodiment of the present application is shown. DETAILED DESCRIPTION
[0030] Exemplary embodiments of the present application will be described in greater detail below with reference to the accompanying drawings. While exemplary embodiments of the present application are shown in the drawings, it is understood that the present application can be embodied in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the application to those skilled in the art.
[0031] In a cloud storage system based on secret sharing proposed in the present application, it includes a secret distributor, a designator, a plurality of cloud storage providers and a verification party, as shown in Figure 1
[0032] Among them, the secret distributor is mainly used to split the secret data in the process of storing the secret data to the cloud storage provider, and store the split sub-secret in the plurality of cloud storage providers through secret sharing technology.
[0033] The cloud storage provider refers to the provider of cloud storage service, which can be a device or device cluster with storage service. In the embodiment of the present application, the cloud storage provider is multiple, and different cloud storage providers correspond to the sub-secret corresponding to the split secret data. The sub-secret share held by the cloud storage provider is also called shadow secret.
[0034] The designator is a trusted third-party device introduced in the process of periodic updating of the sub-secret share in the cloud storage provider. The designator is used to interact with each cloud storage provider to reduce the interaction communication cost between each cloud storage provider.
[0035] The verification party is used to verify the identity and state of each cloud storage provider in the periodic updating process, to determine whether the sub-secret update share generated by the designator and the update sequence generated by the cloud storage provider are correct and available.
[0036] Based on the data interaction between the above parties, the cloud storage system in the embodiment of the present application can realize the shared storage of the secret data in the plurality of cloud storage providers and the secret recovery, the periodic update of the sub-secret share stored in each cloud storage provider and the periodic integrity verification of the secret data.
[0037] According to the cloud storage system in the above embodiment, the secret sharing and secret recovery are mainly realized by the secret distributor and the cloud storage provider of the system, and the specific process is as shown in Figure 2
[0038] Step 201, the target secret is split into a plurality of sub-secrets by the secret distributor, and a public sub-secret is set in the plurality of sub-secrets.
[0039] Specifically, when the target secret is confidential data with a large amount of data, this step divides the target secret into specified sizes to obtain multiple sub-secrets. For example, the secret distributor D divides the target secret data S into x bits per block and divides it into multiple data blocks s t (1≤t≤m), each data block is a sub-secret, and the sub-secret s is less than x bits m Pad with 0 bits until x bits are satisfied, that is, the size of each sub-secret is the same.
[0040] After the split is completed, the secret distributor will also set a public sub-secret s among the multiple sub-secrets. 0 , the public sub-secret is open to all cloud storage parties, that is, each cloud storage party only knows the sub-secret stored locally and the public sub-secrets stored by other cloud storage parties. Among them, the public sub-secrets stored by each cloud storage party are 0 The public sub-secret can be the same or different. This public sub-secret will be used for verification during the periodic update of the sub-secret share, thereby improving the system's update efficiency.
[0041] Step 202: Share multiple sub-secrets containing the public sub-secret with multiple cloud storage parties.
[0042] This step is to perform Shamir secret sharing on the multiple sub-secrets obtained in the previous step. The specific steps are as follows:
[0043] 1. The secret distributor D selects a large prime number p. The value of this prime number p is greater than the total number n of cloud storage parties storing sub-secrets in the Shamir secret sharing technique, and the minimum number k of cloud storage parties that can recover the target secret, that is, p>n>k. In addition, the value of the prime number p is also greater than the value of any sub-secret, that is,
[0044] 2. The secret distributor D randomly selects n different non-zero elements x1, x2, ..., x from the finite field GF(p) n , used to identify each cloud storage U r ={U1, U2, ..., U n}, where the cloud storage method U r and its corresponding identifier x r Mutually disclosed between cloud storage parties.
[0045] 3. Secret distributor D uses sub-secret s t (0≤t≤m) is used as the secret data to be distributed, and (k-1) elements a are randomly selected in the finite field GF(p) i (i=1,2,…,k-1) forms a (k-1) order polynomial
[0046] 4. The secret distribution party D uses the polynomial f(x) and the cloud storage party U r corresponding x r , for U r to generate its corresponding sub-secret share
[0047] 5. The secret distribution party D sends the generated to the corresponding U r in a secure manner, and destroys all the coefficients a i generated in the process to avoid attackers cracking the target secret by obtaining the coefficients a i .
[0048] 6. Repeat the secret distribution process of 3-5 above for each sub-secret s t (0≤t≤m), that is, after the above steps are completed, any cloud storage party U r (r∈n) has a sub-secret share
[0049] Step 203, select a preset number of cloud storage parties to recover the target secret.
[0050] This step recovers the target secret data by any k cloud storage parties through their own sub-secret shares. The main process is as follows:
[0051] 1. Arbitrarily select k normally operating cloud storage parties {U1, U2, …, U k}.
[0052] 2. According to the sub-secret share and the identifier x r stored by each cloud storage party, use the Lagrange interpolation formula to calculate to recover the sub-secret s t , and then obtain the target secret data.
[0053] Based on the above Figure 2 illustrated cloud storage system for sharing and secret recovery process of secret data, the main difference between the method and the existing Shamir secret sharing process is that, when the secret data is divided, a public sub-secret is added to the divided sub-secret data, so that when updating the sub-secret shares in each cloud storage party, the update verification of the public sub-secret can be used to determine whether the generated update share and the update sequence are correct, thereby improving the execution efficiency of the update process.
[0054] Based on the above Figure 2The secret sharing and recovery process shown, the embodiment of the present application also proposes a secret sharing based cloud storage method for the cloud storage system, which is a process of periodically updating the cloud storage party which has stored the secret data, in which the cloud storage system is mainly executed by the designated party, multiple cloud storage parties and the verification party, and the specific steps are as follows Figure 3 As shown, comprising:
[0055] Step 301, according to the secret update period, the designated party generates corresponding sub-secret update shares for all cloud storage parties participating in the target secret sharing by using the preset data.
[0056] Among them, the preset data is a data preset by the designated party.
[0057] The specific process of generating sub-secret update shares is as follows: the preset data is 0.
[0058] 1, the designated party A performs Shamir secret sharing with 0 as the secret data, randomly selects (k-1) elements a i (i=1, 2, …, k-1) to form a (k-1) order polynomial
[0059] 2, the designated party A generates the corresponding sub-secret update shares for the cloud storage party U r (1≤r≤n)
[0060] 3, repeat the above two steps x times, and after completion, any cloud storage party U r owns the update share of the preset data 0
[0061] 4, the designated party A sends g r to the corresponding U r safely, and deletes all random coefficients a i and g r generated in the process. To avoid attackers from cracking the target secret by obtaining the random coefficients a i and g r .
[0062] Step 302, the cloud storage party generates a verification message and its digital signature by using a random number locally, and sends the verification message and its digital signature to the designated party.
[0063] In the embodiment of the present application, each cloud storage party U r owns two pairs of public and private keys, one of which is used to encrypt the secret data, and the other is used to digitally sign the data. The public keys in the two pairs of public and private keys are public in all cloud storage parties, and the private keys in the two pairs of public and private keys are owned by each cloud storage party Ur Secret holding. At the same time, set the symbol ENC j (x) indicates the use of cloud storage method U j The encryption public key encrypts data x, SIG j (x) represents the cloud storage U j Use the signature public key to digitally sign data x, and Hash(x) represents the hash value of data x.
[0064] Specifically in this step, each cloud storage unit U r A random number k of x bits with the same size as the sub-secret will be generated locally r , and use the key pair to encrypt the data to generate the verification message VSS r ={ENC1(k r ),ENC2(k r ),…,ENC n (k r ),time,Hash(k r )}, where time represents the current time. At the same time, another key pair is used to generate the digital signature SIG of the verification message r (VSS r ) and verify the message VSS r With digital signature SIG r (VSS r ) are sent together to the designated party A.
[0065] Step 303: The designated party forwards the verification message and its digital signature to other cloud storage parties for identity verification.
[0066] In this step, designated party A mainly acts as a transfer party for the verification message and its digital signature, and sends the verification message VSS r With digital signature SIG r (VSS r ) to the cloud storage side U r Other cloud storage parties can send it to other cloud storage parties based on VSS r With SIG r (VSS r ) for authentication.
[0067] Specifically, for other cloud storage methods j After receiving the cloud storage r VSS r With SIG r (VSS r ) first use the signature key pair to SIG r (VSS r ) to verify the signature. After the signature verification is correct, use Uj Local private key decrypts VSS r ENC in j (k r ), to get k r , and use the hash calculation and Hash (k r ) verification, if the corresponding two, indicating that the cloud storage U r is in normal state; If not, by U j to the designated party A to initiate a signature against U r , report the state of abnormal.
[0068] Step 304, after all the cloud storage verification, each cloud storage according to the local random number and the random number generated by the verification of the cloud storage common update sequence.
[0069] Specifically, when the designated party A receives the signature of U r , then tell U r re-execute the above steps 302 and 303, at the same time, send alarm information to inform the system administrator. While in all the cloud storage verification, namely other cloud storage U j did not issue a signature against U r , at this time, the cloud storage U r will be calculated in the local update sequence, and the specific generation method of the update sequence is: the cloud storage U r will be added to the local random number k r and the random number k j obtained by verifying the verification message of other cloud storage, to get the common random number K 1 , that is Where n is the total number of cloud storage participating in secret sharing. After that, based on the common random number K 1 use the stream key generation algorithm to generate the update sequence {K 1 , K 2 , K 3 , …, K m}, m is the number of sub secret.
[0070] Step 305, according to the update sequence, the multiple verification party updates the public secret share in the cloud storage and the secret recovery, to determine the update sequence and the sub secret update share is correct.
[0071] Where the public secret share is a public sub secret added after the secret data is divided into multiple sub secrets, that is Figure 2 The public sub secret set in step 201.
[0072] The specific verification process of this step is as follows:
[0073] 1. The verification direction each cloud storage sends an update share verification request, that is, multiple verification parties B1, B2, …, B l Send an update share verification request to n cloud storage.
[0074] 2. The cloud storage updates the locally stored public secret share according to the update share verification request, and sends the updated public secret share and its digital signature to the verification party.
[0075] For the cloud storage U r , specifically, a set G is established locally, the elements in G are composed of the subscript bit of all bits of the common random number K 1 (For example, the common random number is 0110, and the elements stored in the set G are 2 and 3); U r The update share corresponding to each element j in G is summed up, and the public secret share r held by U is updated: After the update is completed, U r holds the new public secret share and the old public secret share , and the old public secret share is retained in order to recover the data after the verification fails, so as to perform secondary verification. Then, the updated public secret share and its data signature are sent to each verification party B1, B2, …, B l .
[0076] 3. After the verification party verifies the public secret share and its digital signature, a predetermined number of public secret shares are randomly selected from the multiple verification parties for secret recovery, and it is judged whether the recovered secret data is the public secret or not.
[0077] Each verification party B1, B2, …, B l first verifies whether the key and are consistent, if the verification is consistent, then a predetermined number k of the n public secret shares are randomly selected for secret recovery, and the combination is performed multiple times to verify whether the public secret s 0 can be recovered.
[0078] 4. Determine that the update sequence and the sub-secret update share are correct.
[0079] If the l verification parties can successfully recover the public secret s 0, the verifier declares that the update process is correct and informs all cloud storage groups to delete the set G and the old shadow share If there is a verifier that cannot recover the public sub-secret s 0 If the error occurs, the system will re-execute steps 301-304 and inform the system administrator of the error message.
[0080] Step 306: The cloud storage party updates the locally stored sub-secret share according to the sub-secret update share.
[0081] In this step, if the verification in step 305 is passed and the update sequence and sub-secret update share are confirmed to be correct, each cloud storage party will update the sub-secret share it holds. The specific process is as follows:
[0082] 1. Cloud Storage r Secret share for anyons Create a set G, the elements of G are updated by the random number K in the sequence t The subscript positions where all bits are 1 in (1≤t≤m) are composed.
[0083] 2. Cloud Storage r The sub-secret shares held To update:
[0084] 3. Cloud Storage r Delete old subsecret shares and the corresponding G and K t .
[0085] 4. Repeat the above process until all m sub-secret shares are updated.
[0086] Based on Figure 3 In the described embodiment, the cloud storage method implements periodic updates for each cloud storage party through a designated third party and multiple verification parties. The designated party generates a corresponding self-secret update share for each cloud storage party and acts as an intermediary to forward verification messages sent by each cloud storage party to other cloud storage parties. This avoids the computational burden incurred by a cloud storage party sending verification messages to other cloud storage parties during the update verification phase, and reduces the impact on the service quality provided by the cloud storage party due to communication interactions between cloud storage parties. Furthermore, when a cloud storage party authenticates its identity, multiple verification parties perform data updates and recovery verification on the stored public secret shares based on the update sequence. This ensures the security of other secret shares while reducing the system overhead required for verification, thereby improving the efficiency, accuracy, and security of the verification process.
[0087] Furthermore, in the aboveFigure 3 Based on the cloud storage method embodiment shown, the cloud storage system in the embodiment of the application can also periodically verify the integrity of the secret shared data, wherein the integrity verification is mainly completed through the interaction of the multiple verification parties and the cloud storage party, and is performed by the verification parties according to the verification period through the generated random verification sequence to verify the integrity of the data, and the specific steps are as follows Figure 4 As shown, comprising:
[0088] Step 401, according to the verification period, the verification party sends a share verification notification to the cloud storage party storing the target secret.
[0089] The share verification notification contains a verification sequence randomly generated based on the length of the target secret.
[0090] Specifically, the multiple verification parties B1, B2, …, B l A verification sequence V is randomly selected in the target secret data S, wherein, The selection of the length of the verification sequence V needs to ensure that the verification error rate of the target secret data S is within the preset index on the basis of probability statistics, for example, below 1%.
[0091] Step 402, the cloud storage party accumulates the local stored sub-secret shares corresponding to the verification sequence, and sends the obtained to-be-verified data and its digital signature to the verification party.
[0092] Specifically, the cloud storage party U r According to the verification sequence in the share verification notification, the local stored sub-secret shares corresponding to the verification sequence are accumulated, and the obtained to-be-verified data Further, the M r and SIG r (M r ) are sent to each verification party B1, B2, …, B l .
[0093] Step 403, the verification party performs signature verification on the received to-be-verified data of each cloud storage party, and after the verification is passed, a preset number of to-be-verified data are randomly selected multiple times for secret recovery.
[0094] Specifically, the verification party B1, B2, …, B l receives the to-be-verified data sent by each cloud storage party, obtains a data set {M1, M2, …, M n} and the corresponding signature information, performs signature verification on the signature information by using the signature key, after passing the signature verification, a preset number k of to-be-verified data are randomly selected from the data set for secret recovery, and the secret recovery is performed multiple times, and the number of times can be self-defined.
[0095] Step 404, if the data results of multiple secret recoveries are the same, it is determined that the target secret storage is complete.
[0096] On the contrary, if the data results of multiple secret recoveries are different, it indicates that the secret data is partially damaged, at this time, the verifier needs to report the verification result to the system administrator.
[0097] Further, before performing the above steps, in order to prevent the verifiers B1, B2, …, B l After a long time of sufficient number of combinations, the target secret data S can be recovered, some random sub-segments (not containing secret information, similar to the disclosed sub-secret s 0 ) can be inserted in the target secret data S, and B1, B2, …, B l The verification sequence V generated each time must contain at least one random sub-segment, and each random sub-segment can only be used once.
[0098] In addition, the embodiment of the present application also provides a processor, which is used to run a program, wherein the program performs the cloud storage method based on secret sharing provided by any one of the above-mentioned embodiments when running. Figures 2-4 In addition, the embodiment of the present application also provides a processor, which is used to run a program, wherein the program performs the cloud storage method based on secret sharing provided by any one of the above-mentioned embodiments when running.
[0099] In addition, the embodiment of the present application also provides a computer readable storage medium, which is used to store a computer program, wherein the computer program controls the device where the computer readable storage medium is located to perform the cloud storage method based on secret sharing provided by any one of the above-mentioned embodiments when running. Figures 2-4 In addition, the embodiment of the present application also provides a computer readable storage medium, which is used to store a computer program, wherein the computer program controls the device where the computer readable storage medium is located to perform the cloud storage method based on secret sharing provided by any one of the above-mentioned embodiments when running.
[0100] In the above-mentioned embodiments, the description of each embodiment has its own focus, and the parts not described in detail in a certain embodiment can be referred to the relevant description of other embodiments.
[0101] It can be understood that the related features in the above-mentioned method and system can be mutually referred. In addition, “first”, “second” and the like in the above-mentioned embodiments are used to distinguish each embodiment, and do not represent the advantages and disadvantages of each embodiment.
[0102] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the above-mentioned system, device and unit can refer to the corresponding process in the foregoing method embodiment, which will not be described here.
[0103] The algorithms and displays presented herein are not inherently related to any particular computer, virtual system, or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct more specialized computing systems to perform the methods of the present application. The structure for a variety of these systems will be apparent to those of skill in the art, based on the description contained herein. In addition, the present application is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the application as described herein, and any references below to specific languages are provided for disclosure of enablement only.
[0104] In addition, the storage can include non-transitory storage such as a system memory, including read-only memory (ROM) and / or flash memory (flash RAM), or other types that are embodied in computer program product(s), of the computing device.
[0105] As will be appreciated by one skilled in the art, embodiments of the present application can be provided as a method, system, or computer program product. Accordingly, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application can take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROMs, optical storage devices, and the like) embodying computer program code thereon for use by or in connection with an instruction execution system. For the purposes of this description, a "computer-usable or computer readable storage medium" can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable storage medium can be a computer- readable storage medium that can be any media that can be accessed by the computer. By way of example, and not limitation, such computer- readable media can include RAM, ROM, EEPROM, CD-ROM or other optical storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of computer-usable program code means
[0106] The computer program instructions can also be loaded onto a computer, other programmable based secret sharing cloud storage device, or other device to cause a series of operational steps to be performed on the computer, other programmable based secret sharing cloud storage device or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable based secret sharing cloud storage device implement the functions specified in the flowchart or flow diagram block or blocks. Figure 1 The flowchart and / or block diagram in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each flowchart and / or block diagram can represent a method, module, segment, or portion of code, which comprises one or more executable Figure 1 The flowchart and / or block diagram in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each flowchart and / or block diagram can represent a method, module, segment, or portion of code, which comprises one or more executable The flowchart and / or block diagram in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each flowchart and / or block diagram can represent a method, module, segment, or portion of code, which comprises one or more executable
[0107] The computer program instructions can also be loaded onto a computer, other programmable based secret sharing cloud storage device, or other device to cause a series of operational steps to be performed on the computer, other programmable based secret sharing cloud storage device or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable based secret sharing cloud storage device implement the functions specified in the flowchart or flow diagram block or blocks. Figure 1 The flowchart and / or block diagram in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each flowchart and / or block diagram can represent a method, module, segment, or portion of code, which comprises one or more executable Figure 1 The flowchart and / or block diagram in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each flowchart and / or block diagram can represent a method, module, segment, or portion of code, which comprises one or more executable The flowchart and / or block diagram in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each flowchart and / or block diagram can represent a method, module, segment, or portion of code, which comprises one or more executable
[0108] These computer program instructions can also be loaded onto a computer or other programmable cloud storage device to cause a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process such that the instructions which execute on the computer or other programmable device provide steps for implementing the functions specified in the flowchart block or blocks. Figure 1 Figure 1
[0109] In one typical configuration, the computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.
[0110] The memory can include non-persistent memory and / or volatile memory, such as random access memory (RAM) about which the processor can execute instructions. The memory can also include non-volatile memory, such as read only memory (ROM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), flash memory, or other memory technologies, CD-ROM, digital versatile disc (DVD), or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to store information for access by a computing device. In no case does the medium include a transitory signal.
[0111] Computer readable media includes permanent and non-permanent, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), electrically programmable read only memory (EEPROM), flash memory or other memory technologies, compact disc read only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to store information that can be accessed by a computing device. According to the definition herein, computer readable media does not include transitory media such as modulated data signals and carrier waves.
[0112] It should also be noted that the terms "comprising," "including," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article or apparatus that comprises a list of elements does not include only those elements recited, but can also include other elements not expressly listed or inherent to such process, method, article or apparatus. Without limitation, an element preceded by "comprises a" does not, without more constraints, foreclose the existence of additional identical elements in the process, method, article or apparatus that includes the element.
[0113] Those skilled in the art will appreciate that embodiments of the present application can be devised for a method, a system, or a computer program product. Accordingly, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application can take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROMs, optical storage devices, etc.) embodying computer-readable program code thereon for use by or in connection with an instruction execution system. For the purposes of this description, a computer-usable or computer readable storage medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The computer-usable or computer readable program code can be downloaded from an Internet website, server, or other remote source via a network or a data stream communication path. From the Internet website, server, or other remote source, the code can be downloaded into the instruction execution system, apparatus, or device where execution of the same can take place. The present application is directed to any number and type of computer-usable storage media, apparatuses, and devices self-evidently known to one of ordinary skill in the art.
[0114] The foregoing is merely illustrative of the principles of the application, and various modifications can be made by those skilled in the art. The present application is intended to embrace all such modifications and changes and aspects falling within the spirit and scope of the application. Accordingly, the above description is not intended as limiting, but merely as exemplification of the principles of the application.
Claims
1. A cloud storage method based on secret sharing, the method comprising: generating, by a designated party, corresponding sub-secret update shares for all participating cloud storage parties of a target secret sharing according to a secret update period using preset data; generating, by the cloud storage parties, verification messages and digital signatures thereof using random numbers locally, and sending the verification messages and digital signatures thereof to the designated party; forwarding, by the designated party, the verification messages and digital signatures thereof to other cloud storage parties for identity verification; after all cloud storage parties pass the identity verification, generating, by each cloud storage party, an update sequence common to the cloud storage parties according to a local random number and a random number obtained through the verification; updating and verifying, by a plurality of verification parties, a public secret share in the cloud storage parties according to the update sequence to determine whether the update sequence and the sub-secret update shares are correct, the public secret share being a public sub-secret added after the secret data is divided into a plurality of sub-secrets; updating, by the cloud storage parties, locally stored sub-secret shares according to the sub-secret update shares; updating and verifying, by the plurality of verification parties, the public secret share in the cloud storage parties according to the update sequence, comprising: sending, by the verification parties, update share verification requests to the cloud storage parties; updating, by the cloud storage parties, locally stored public secret shares according to the update share verification requests, and sending the updated public secret shares and digital signatures thereof to the verification parties; after the verification parties pass the verification of the public secret shares and the digital signatures thereof, randomly selecting a preset number of public secret shares from the plurality of verification parties for secret recovery, and determining whether the recovered secret data is the public sub-secret; if yes, determining that the update sequence and the sub-secret update shares are correct.
2. The method of claim 1, wherein, Before generating, by the designated party, corresponding sub-secret update shares for all participating cloud storage parties of a target secret sharing according to a secret update period using preset data, the method further comprises: dividing, by a secret distribution party, a target secret into a plurality of sub-secrets, and setting a public sub-secret in the plurality of sub-secrets; secret sharing the plurality of sub-secrets containing the public sub-secret to a plurality of cloud storage parties.
3. The method of claim 1, wherein, After generating, by the designated party, corresponding sub-secret update shares for all participating cloud storage parties of a target secret sharing using preset data, the method further comprises: deleting, by the designated party, the sub-secret update shares and random parameters generated in the process after sending the sub-secret update shares to the corresponding cloud storage parties.
4. The method of claim 1, wherein, Generating, by each cloud storage party, an update sequence common to the cloud storage parties according to a local random number and a random number obtained through the verification, comprising: accumulating, by the cloud storage party, the local random number and the random number obtained through the verification of the verification messages of other cloud storage parties to obtain a common random number; generating an update sequence based on the common random number using a stream key generation algorithm.
5. The method of claim 1, wherein, The method further comprises: periodically verifying, by the plurality of verification parties, the integrity of the secret shared data through a random verification sequence.
6. The method of claim 5, wherein, Periodically verifying, by the plurality of verification parties, the integrity of the secret shared data through a random verification sequence, comprising: According to a verification period, a verification party stores a cloud storage party sending a share verification notification containing a verification sequence randomly generated based on a target secret length; The cloud storage party accumulates a locally stored sub-secret share corresponding to the verification sequence, and sends the obtained to-be-verified data and its digital signature to the verification party; The verification party performs signature verification on the to-be-verified data received from each cloud storage party, and after verification, randomly selects a preset number of to-be-verified data for secret recovery multiple times; If the data results of multiple secret recoveries are the same, it is determined that the target secret is stored completely.
7. A secret sharing based cloud storage system, the system comprising: The designated party, the multiple cloud storage parties, and the verification party, wherein when performing an update operation on the target secret corresponding to the sub-secret shares stored in each cloud storage party, the following operations are performed: According to a secret update period, the designated party generates a corresponding sub-secret update share for all cloud storage parties participating in the target secret sharing by using preset data; The cloud storage party locally generates a verification message and its digital signature by using a random number, and sends the verification message and its digital signature to the designated party; The designated party forwards the verification message and its digital signature to other cloud storage parties for identity verification; After all cloud storage parties pass the verification, each cloud storage party generates a common update sequence of the cloud storage parties according to the local random number and the random number obtained through verification; The multiple verification parties perform update verification and secret recovery on the public secret share in the cloud storage party according to the update sequence to determine that the update sequence and the sub-secret update share are correct, the public secret share being an added public sub-secret after the secret data is divided into multiple sub-secrets; The cloud storage party updates the locally stored sub-secret share according to the sub-secret update share; The multiple verification parties perform update verification and secret recovery on the public secret share in the cloud storage party according to the update sequence, including: The verification party sends an update share verification request to each cloud storage party; The cloud storage party updates the locally stored public secret share according to the update share verification request, and sends the updated public secret share and its digital signature to the verification party; After the verification party passes the verification on the public secret share and its digital signature, a preset number of public secret shares are randomly selected from the multiple verification parties for secret recovery, and it is determined whether the recovered secret data is the public sub-secret; If yes, it is determined that the update sequence and the sub-secret update share are correct.
8. A processor, comprising: The processor is configured to run a program, wherein the program performs the secret sharing based cloud storage method of any one of claims 1-6 when running.
9. A computer-readable storage medium, characterized in that, The computer readable storage medium is configured to store a computer program, wherein the computer program controls the device where the computer readable storage medium is located to perform the secret sharing based cloud storage method of any one of claims 1-6 when running.
Citation Information
Patent Citations
Share updating method and device based on threshold secret sharing
CN105450394A