Cross-application cloud storage data sharing method
By using public key searchable encryption technology and application groups in the cloud storage system to jointly generate keyword reinforcement factors, the security threats of cloud storage data in the public network and cross-application data sharing problems are solved, and efficient cloud storage data access and secure sharing are achieved.
Patent Information
- Application Number
- CN202211658452.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-22
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2042-12-22
AI Technical Summary
In cloud storage systems, users' data faces severe security threats when transmitted and stored in public networks, and trustworthy sharing of cloud storage data across applications is difficult to achieve. Traditional methods lead to a large amount of unrelated data download and local decryption, increasing communication and computing overhead.
Public key searchable encryption technology is used to generate keyword reinforcement factors through application groups, realize keyword search for ciphertext data, and ensure the security and stability of application groups through dynamic update mechanisms.
It reduces the computing and storage overhead of the user side, reduces the communication overhead between users and cloud servers, realizes efficient cross-application cloud storage data access, and resists keyword guessing attacks without introducing third parties.
Smart Images

Figure CN115996118B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of cloud storage, and in particular relates to a cross-application cloud storage data sharing method. Background Art
[0002] Cloud storage services provide users with an efficient, convenient and flexible way to manage data. The user-centric, multi-application-participated data-intensive system based on cloud storage provides users with efficient and convenient data services on the one hand, and facilitates data flow between applications that share the same cloud server on the other hand, breaking down data silos.
[0003] However, in cloud storage systems, user data is transmitted and stored in public networks. Due to the complexity of the system, the diversity of data, and the frequency of attacks in public networks, outsourced data and user privacy face severe security threats. This means that the data generated by users when using applications is often outsourced and stored in cloud servers in the form of ciphertext. Moreover, due to the lack of mutual trust between applications, cross-application trusted sharing of cloud storage data is difficult to achieve. That is, when a user accesses a certain data across applications, the application that generates the data must first download all the ciphertexts of the data generated by the user under the application to the local computer and decrypt them. The user then selects the data to be accessed from the decrypted plaintext data and accesses it through the currently used application. However, this method downloads a large amount of irrelevant data, and the user performs keyword search on the data plaintext locally, which brings a lot of communication costs and user computing overhead.
[0004] The most effective way to solve the above problems is to use public key searchable encryption technology. Public key searchable encryption technology enables keyword search for confidential data. That is, when users store the data generated when using the application in the form of ciphertext on the cloud server, they also encrypt the keywords related to the data and outsource them to the cloud server. When users use other applications and need to request data access from the cloud server, they request keyword search from the cloud server, and the cloud server returns the results to the user. The user only needs to download the data related to the keyword and decrypt it.
[0005] However, in public key searchable encryption, the small keyword plaintext space makes it difficult to resist keyword guessing attacks from internal cloud servers. In view of this, the present invention proposes that the application group sharing the same cloud server acts as a group of keyword enhancement servers to collaboratively participate in keyword enhancement, but this requires that the application group share a keyword enhancement private key for a long time. However, as the threshold for application development is lowered and homogeneous competition becomes increasingly serious, the application service cycle in the saturated application market is short and the replacement speed is fast, resulting in frequent replacement of application groups. Therefore, how to ensure that dynamically updated application groups share a keyword enhancement private key safely, stably, and for a long time, and collaboratively complete keyword enhancement has become a problem that needs to be solved urgently. Summary of the invention
[0006] The purpose of the present invention is to overcome the deficiencies of the prior art and provide a cross-application cloud storage data sharing method.
[0007] The object of the present invention is achieved through the following technical solution: a cross-application cloud storage data sharing method, comprising a data sharing step, wherein the data sharing step comprises:
[0008] Step S100. Determine the public parameters and the public and private keys of the user according to the security parameters, and the applications in the application group sharing the same cloud server determine their distributedly produced public and private keys;
[0009] Step S200. The user will use the application APP S When the application data generated in the process is stored in the cloud server, the keyword w of the application data is selected, the keyword w is blinded, and the blinded keyword w′ is sent to the application group {APP i} i={1,2,…,n} ; Application Group {APP i} i={1,2,…,n} All applications in the same group jointly generate the keyword reinforcement factor σ w , and the keyword enhancement factor σ w Return to the user; user verification keyword reinforcement factor σ w The effectiveness of the keyword reinforcement factor σ is used after verification. w The key of the pseudo-random function and the keyword w are used as the input value of the pseudo-random function to calculate the enhanced keyword hk w , according to the enhanced keyword hk w Calculate the keyword ciphertext and upload the keyword ciphertext and the application data ciphertext together to the cloud server;
[0010] Step S300. The user is using the application APP RWhen the application data containing keyword w in the cloud server needs to be accessed during the process, the keyword w is blinded and the blinded keyword w′ is sent to the application group {APP i} i={1,2,…,n} ; Application Group {APP i} i={1,2,…,n} All applications in the same group jointly generate the keyword reinforcement factor σ w , and the keyword enhancement factor σ w Return to the user; user verification keyword reinforcement factor σ w The effectiveness of the keyword reinforcement factor σ is used after verification. w The key of the pseudo-random function and the keyword w are used as the input value of the pseudo-random function to calculate the enhanced keyword hk w , according to the enhanced keyword hk w Calculate keyword traps and send them to the cloud server;
[0011] Step S400. The cloud server matches the keyword trap sent by the user with the keyword ciphertext stored in the cloud server. If the match is successful, the user is allowed to access the application program APP. R Access application data associated with keyword w.
[0012] Furthermore, the step S100 includes:
[0013] Step S101. Determine the public parameter set based on the security parameters Where e is a bilinear mapping: e:G×G→G T , P is the generator of group G, p is the order of group G, h, H, H 1 and H 2 is a hash function, h:G→Z p ,H,H 1 :{0,1} * →G,H 2 :G T →{0,1} lgp , F is a pseudo-random function, is the length of the pseudo-random function input value, and t is the threshold;
[0014] Step S102. User Random Selection As the user's private key, and calculate the user's public key in The simplified remainder group of the finger module p;
[0015] Step S103. By APP i (e-1) Pick a random number as well as<t-1,2(t-1)> Order two-variable polynomial B i (x,y), such that the bivariate polynomial B i (x,y) satisfies in,
[0016]
[0017] Step S104. Application APP i (e-1) Calculate the secret subpolynomial B of (t, n) and (2t, n) respectively i (j,y) and B i (x,j), and send it to other applications except itself {APP j (e-1)} j=1,2,…,n,j≠i ;
[0018] Step S105. Application APP i (e-1) Calculate and publish the verification factor and
[0019] Step S106. Application APP i (e-1) Upon receiving an email from the APP j (e-1) The secret subpolynomial B of x and y j (i,y) and B j (x,i), determine whether equation 1 and equation 2 are true. If both equation 1 and equation 2 are true, then accept B. j (i,y) and B j (x,i);
[0020]
[0021]
[0022] Step S107. Application APP i (e-1) Calculate its sub-secret polynomial through the received secret sub-polynomial and secrets And calculate the sub-public key Q i =B(i,0)P; at this time, the private key of the application group is the total secret maintained by the application group The corresponding public key is
[0023] Step S108. Application APP i (e-1)Randomly select the private key of the polynomial commitment The public key is <P,β i P,β i 2 P,…,β i t-1 P>
[0024] Step S109. Application APP i (e-1) Compute the polynomial commitment of the intermediate secret polynomial B(x,i) with respect to x Commit the polynomial C B(x,i) Broadcast to {APP j (e-1)} j=1,2,…,n,j≠i , and waits to receive a promise from another application B(x,j)} j=(1,2,…,n),j≠i If n-1 commitments are not received, the initialization process is terminated. Otherwise, the received commitments are saved locally and the initialization is completed.
[0025] Furthermore, the step S200 includes:
[0026] Step S201. The user will use the application APP S When the application data generated in the process is stored in the cloud server, the keyword w is selected and randomly selected As the blinding factor, calculate the blinded keyword w′=rH(w);
[0027] Step S202. User u sends the blinded keyword w′ to the application group {APP i} i={1,2,…,n} , APP i After receiving the blinded keyword w′, use its sub-secret to generate the sub-enhancement factor σ of w′ i =B(i,0)w′, and the sub-enhancement factor σ i Return to user u;
[0028] Step S203. User u receives a message from APP i The sub-enhancement factor σ i Then determine whether Equation 3 is true. If Equation 3 is true, user u accepts and stores the sub-enhancement factor σ i , otherwise the sub-enhancement factor σ is rejected i ;
[0029] e(σ i ,P)=e(w′,Q i ) (Equation 3);
[0030] Step S204: User u receives t sub-enhancement factors Post-calculation keyword enhancement factor The index set of the sub-enhancement factors is T = {i 1 ,i 2 ,…,i t}, Then determine whether equation 4 is true. If equation 4 is true, then the keyword enhancement factor σ w efficient;
[0031] e(σ w ,P)=e(H(w),Q) (Equation 4);
[0032] Step S205. User In the keyword reinforcement factor σ w When effective, calculate the enhanced keyword hk w =F(h(σ w ),w);
[0033] Step S206. User Pick a random value Calculate the intermediate value of the generated ciphertext At this time, the keyword ciphertext is
[0034] Step S207. User u encrypts the keyword Application data application APP S The ciphertext is stored together in the cloud server.
[0035] Furthermore, the step S300 includes:
[0036] Step S301. The user is using the application APP R When you need to access the application data containing keyword w in the cloud server, randomly select Calculate the blinded keyword w′=rH(w);
[0037] Step S302. User u sends the blinded keyword w′ to the application group {APP i} i={1,2,…,n} , APP i After receiving the blinded keyword w′, use its sub-secret to generate the sub-enhancement factor σ of w′ i =B(i,0)w′, and the sub-enhancement factor σ i Return to user u;
[0038] Step S303. User u receives a message from APP i The sub-enhancement factor σ iThen determine whether Equation 3 is true. If Equation 3 is true, user u accepts and stores the sub-enhancement factor σ i , otherwise the sub-enhancement factor σ is rejected i ;
[0039] e(σ i ,P)=e(w′,Q i ) (Equation 3);
[0040] Step S304. User Receive t sub-enhancement factors Post-calculation keyword enhancement factor The index set of the sub-enhancement factors is T = {i 1 ,i 2 ,…,i t}, Then determine whether equation 4 is true. If equation 4 is true, then the keyword enhancement factor σ w efficient;
[0041] e(σ,P)=e(H(w),Q)(Equation 4);
[0042] Step S305. User u in the keyword enhancement factor σ w When effective, calculate the enhanced keyword hk w =F(h(σ w ),w);
[0043] Step S306. User u uses his private key α to calculate the keyword trapdoor td w =αH 1 (hk w );
[0044] Step S307. User u adds keyword trapdoor td w Send to the cloud server.
[0045] Furthermore, the step S400 includes:
[0046] The cloud server will use the APP R Keyword trapdoor td w Keyword ciphertext of application data stored in cloud servers Match and judge equation H 2 (e(td w ,A))=B is true, if true, allow the user Use the APP R Access data related to keyword w.
[0047] Furthermore, the cloud storage data sharing method further includes an application replacement step, and the application replacement step includes:
[0048] Step K100. Determine whether to trigger application replacement. Before triggering application replacement, the application group of the previous period Each application in a<t-1,2(t-1)> The (t,n) threshold shared sub-secret {s i =B(i,y)} i={1,2,…,n} , where s = B(0,0), s is the private key of the application group and also the total secret of the application group; when the application replacement is triggered, the new application group {APP i (e)} i={1,2,…,n′} Randomly select 2t-1 applications from By Application Together we generate the intermediate secret {B(x,m)} m={1,2,…,2t-1} ;
[0049] Step K200. By application Generate a binary polynomial Q(x,y) for sub-secret update together, and satisfy Q(0,0)=0, calculate the updated polynomial B′(x,y)=B(x,y)+Q(x,y), so that s=B′(0,0), and apply Applications in Hold the intermediate secret B′(x,m);
[0050] Step K300. All applications in the new application group jointly generate an updated sub-secret {B′(i,y)} i={1,2,…,n ' } .
[0051] Furthermore, application replacement is triggered when an application in the application group stops serving or a new application is added to the application group.
[0052] Furthermore, the intermediate secret {B(x,m)} m={1,2,…,2t-1} The generation methods include:
[0053] Step K101. From the new application group {APP i (e)} i={1,2,...,n′} Randomly select 2t-1 applications from in At least t applications in the set are from the set of retained applications
[0054] Step K102. All remaining applications Possessing sub-secret B(i k ,y) and the set of polynomial commitments of the intermediate secret {C B(x,j)} j={1,2,…,n} ,app Through its sub-secret B(i k ,y) Generate point {B(i k ,m)} m={1,2,…,2t-1} , and calculate the commitment CB (x,m) Proof WB at each point (ik,m) ;
[0055]
[0056] Step K103. Set {B(i k ,m),W B(ik,m)}Send to application Where m = {1, 2, ..., 2t-1};
[0057] Step K104. Application receive Then determine whether equation 5 is true. If equation 5 is true, save point B(i k ,m); when t points satisfying equation 5 are received and the commitment C is B(x,m) When proving this point, construct a polynomial B(x,m) through the t points, where m={1,2,…,2t-1};
[0058]
[0059] Furthermore, the step K200 includes:
[0060] Step K201. Application Randomly select a 2t-2 order polynomial P m (x) satisfies P m (0) = 0, and calculate P m (i) Send it to Where m = {1, 2, ..., 2t-1}; Application Waiting for acceptance And upon receiving all Post-calculation where s m The secret maintained by the bivariate polynomial used for subsecret updates;
[0061] Step K202. Application Randomly select a t-1 order polynomial R m (x) satisfies R m (0) = sm , and calculate the updated intermediate secret polynomial B′(x,m)=B(x,m)+R m (x) and the auxiliary polynomial Z m (x) = R m (x)-s m ;
[0062] Step K203. Set the updated application group to APP (e) ,app Calculate Z m Polynomial commitment of (x) Polynomial Commitment C of B′(x,m) B′(x,m) , and Z m (0) Proof At the same time, the sub-public key s maintained by the binary polynomial used for sub-secret update is calculated and published m P;
[0063]
[0064]
[0065]
[0066] Step K204. Application Will Broadcast to application group APP (e) All applications in;
[0067] Step K205. Application Group APP (e) All applications in Application requests in {C B(x,j)} j={1,2,…,n} , if t identical promise sets {C B(x,j)} j={1,2,…,n} then save it;
[0068] Step K206. Application Group APP (e) All applications in Verify and determine whether equations 6 and 7 are true. If both equations 6 and 7 are true, save {C B′(x,m)} m={1,2,…,2t-1} ;
[0069]
[0070]
[0071] in,
[0072]
[0073] Furthermore, the step K300 includes:
[0074] Step K301. Application Calculate Commitment C B′(x,m) Proof W at point m B′(j,m) , generate {B′(j,m),W B′(j,m)} j={1,2,…,n′} and send it to the application APP j (e) , where j = {1, 2, …, n′};
[0075]
[0076] Step K302. Application APP j (e) Receive {B′(j,m),W B′(j,m)} m={1,2,…,2t-1} After that, determine whether equation 8 is true. If all the points received satisfy equation 8, then the application APP j (e) Use the 2t-1 points to construct a new sub-secret polynomial B′(i,y);
[0077] e(C B′(x,m) ,P)=e(W B′(j,m) ,P(β m -j))e(P,B′(j,m)P) (Equation 8).
[0078] The beneficial effects of the present invention are:
[0079] (1) Due to the lack of mutual trust between applications, in traditional solutions, when users access data across applications, they often need to first download all the ciphertexts of the data generated by the application to the local computer through the application that generated the data and decrypt them. Then the user selects the data to be accessed from the decrypted plaintext data and accesses it through the currently used application. However, this method downloads a large amount of irrelevant data, and the user performs keyword searches on the data plaintext locally, which brings a lot of communication costs and user computing overhead. The present invention provides a cross-application cloud storage data sharing method that uses public key searchable encryption technology to realize user keyword retrieval of ciphertext, reducing the computing and storage overhead of the user end, and also reducing the communication overhead between the user and the cloud server, thereby realizing efficient cross-application cloud storage data access;
[0080] (2) The present invention uses an application server as a keyword strengthening server, and all applications sharing the same cloud server collaboratively generate keyword strengthening factors. This method resists keyword guessing attacks without introducing a new third party, and the collaboration of multiple applications avoids the single point failure problem.
[0081] (3) Currently, the service cycle of applications is short and the replacement speed is fast, which makes the application groups frequently replaced. Based on this background, the dynamic application update mechanism proposed in the present invention can realize the safe, stable and long-term maintenance of application groups. A keyword strengthens the private key, that is, while allowing applications to be dynamically added and replaced, it prevents the leakage of private keys and ensures the stable and efficient operation of the system. BRIEF DESCRIPTION OF THE DRAWINGS
[0082] Figure 1 The present invention is a flowchart of an embodiment of the cloud storage data sharing method. DETAILED DESCRIPTION
[0083] The technical solution of the present invention will be clearly and completely described below in conjunction with the embodiments. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.
[0084] See also Figure 1 , the present invention provides a cross-application cloud storage data sharing method:
[0085] like Figure 1 As shown, the cross-application cloud storage data sharing method includes a data sharing step. The data sharing step includes steps S100 to S400, which are described in detail below.
[0086] Step S100. Determine the public parameters and the public and private keys of the user according to the security parameters, and the applications in the application group sharing the same cloud server determine their distributedly produced public and private keys.
[0087] Specifically, the step S100 includes:
[0088] Step S101. Determine the public parameter set based on the security parameters Where e is a bilinear mapping: e:G×G→G T , P is the generator of group G, p is the order of group G, h, H, H 1 and H 2 is a secure hash function, h:G→Z p ,H,H 1 :{0,1} * →G,H 2 :GT →{0,1} lgp , F is a pseudo-random function, is the length of the input value of the pseudo-random function, and t is the threshold.
[0089] Step S102. User Random Selection As the user's private key, and calculate the user's public key in The simplified remainder group modulo p.
[0090] Step S103. By APP i (e-1) Pick a random number as well as<t-1,2(t-1)> Order two-variable polynomial B i (x,y), such that the bivariate polynomial B i (x,y) satisfies in,
[0091]
[0092] Step S104. Application APP i (e-1) Calculate the secret subpolynomial B of (t, n) and (2t, n) respectively i (j,y) and B i (x,j), and sends it to other applications {APP j (e-1)} j=1,2,…,n,j≠i .
[0093] Step S105. Application APP i (e-1) Calculate and publish the verification factor and
[0094] Step S106. Application APP i (e-1) When receiving messages from other applications j (e-1) The secret subpolynomial B of x and y j (i,y) and B j (x,i), determine whether equation 1 and equation 2 are true. If both equation 1 and equation 2 are true, then accept B. j (i,y) and B j (x,i).
[0095]
[0096]
[0097] Step S107. Application APP i (e-1) Calculate its sub-secret polynomial through the received secret sub-polynomial and secrets And calculate the sub-public key Q i =B(i,0)P; At this time, the private key of the application group (that is, the total secret maintained by the application group) is The corresponding public key is
[0098] Step S108. Application APP i (e-1) Randomly select the private key of the polynomial commitment The public key is <P,β i P,β i 2 P,…,β i t-1 P>.
[0099] Step S109. Application APP i (e-1) Compute the polynomial commitment of the intermediate secret polynomial B(x,i) with respect to x Commit the polynomial C B(x,i) Broadcast to {APP j (e-1)} j=1,2,…,n,j≠i , and waits to receive a promise from another application B(x,j)} j=(1,2,…,n),j≠i If n-1 commitments are not received, the initialization process is terminated. Otherwise, the received commitments are saved locally and the initialization is completed.
[0100] Step S200. The user will use the application APP S When the application data generated in the process is stored in the cloud server, the keyword w of the application data is selected, the keyword w is blinded, and the blinded keyword w′ is sent to the application group {APP i} i={1,2,…,n} ; Application Group {APP i} i={1,2,…,n} All applications in the same group jointly generate the keyword reinforcement factor σ w , and the keyword enhancement factor σ w Return to the user; user verification keyword reinforcement factor σ w The effectiveness of the keyword reinforcement factor σ is used after verification. w The key of the pseudo-random function and the keyword w are used as the input value of the pseudo-random function to calculate the enhanced keyword hkw , according to the enhanced keyword hk w Calculate the keyword ciphertext and upload the keyword ciphertext and the application data ciphertext to the cloud server.
[0101] Specifically, the step S200 includes:
[0102] Step S201. The user will use the application APP S When the application data generated in the process is stored in the cloud server, the keyword w is selected and randomly selected As the blinding factor, the blinded keyword w′=rH(w) is calculated.
[0103] Step S202. User Send the blinded keyword w′ to the application group {APP i} i={1,2,…,n} , APP i After receiving the blinded keyword w′, use its sub-secret to generate the sub-enhancement factor σ of w′ i =B(i,0)w′, and the sub-enhancement factor σ i Return to user
[0104] Step S203. User Received from APP i The sub-enhancement factor σ i Then determine whether equation 3 is true. If equation 3 is true, the user Accept and store the sub-enhancement factor σ i , otherwise the sub-enhancement factor σ is rejected i ;
[0105] e(σ i ,P)=e(w′,Q i ) (Equation 3).
[0106] Step S204. User Receive t sub-enhancement factors Post-calculation keyword enhancement factor The index set of the sub-enhancement factors is T = {i 1 ,i 2 ,…,i t}, Then determine whether equation 4 is true. If equation 4 is true, then the keyword enhancement factor σ w efficient;
[0107] e(σ w ,P)=e(H(w),Q) (Equation 4).
[0108] Step S205. User In the keyword reinforcement factor σ w When effective, calculate the enhanced keyword hk w =F(h(σ w ),w).
[0109] Step S206. User Pick a random value Calculate the intermediate value of the generated ciphertext At this time, the keyword ciphertext is
[0110] Step S207. User Encrypt keywords Application data application APP S The ciphertext is stored together in the cloud server.
[0111] Step S300. The user is using the application APP R When the application data containing keyword w in the cloud server needs to be accessed during the process, the keyword w is blinded and the blinded keyword w′ is sent to the application group {APP i} i={1,2,…,n} ; Application Group {APP i} i={1,2,…,n} All applications in the same group jointly generate the keyword reinforcement factor σ w , and the keyword enhancement factor σ w Return to the user; user verification keyword reinforcement factor σ w The effectiveness of the keyword reinforcement factor σ is used after verification. w The key of the pseudo-random function and the keyword w are used as the input value of the pseudo-random function to calculate the enhanced keyword hk w , according to the enhanced keyword hk w Calculate the keyword trap and send it to the cloud server.
[0112] Specifically, the step S300 includes:
[0113] Step S301. The user is using the application APP R When you need to access the application data containing keyword w in the cloud server, randomly select Calculate the blinded keyword w′=rH(w).
[0114] Step S302. User u sends the blinded keyword w′ to the application group {APP i} i={1,2,…,n} , APP iAfter receiving the blinded keyword w′, use its sub-secret to generate the sub-enhancement factor σ of w′ i =B(i,0)w′, and the sub-enhancement factor σ i Return to user
[0115] Step S303. User Received from APP i The sub-enhancement factor σ i Then determine whether equation 3 is true. If equation 3 is true, the user Accept and store the sub-enhancement factor σ i , otherwise the sub-enhancement factor σ is rejected i ;
[0116] e(σ i ,P)=e(w′,Q i ) (Equation 3).
[0117] Step S304: User u receives t sub-enhancement factors Post-calculation keyword enhancement factor The index set of the sub-enhancement factors is T = {i 1 ,i 2 ,…,i t}, Then determine whether equation 4 is true. If equation 4 is true, then the keyword enhancement factor σ w efficient;
[0118] e(σ w ,P)=e(H(w),Q) (Equation 4).
[0119] Step S305. User In the keyword reinforcement factor σ w When effective, calculate the enhanced keyword hk w =F(h(σ w ),w).
[0120] Step S306. User Use its private key α to calculate the keyword trapdoor td w =αH 1 (hk w ).
[0121] Step S307. User Keyword trapdoor td w Send to the cloud server for keyword query.
[0122] Step S400. The cloud server matches the keyword trap sent by the user with the keyword ciphertext stored in the cloud server. If the match is successful, the user is allowed to access the application program APP. R Access application data associated with keyword w.
[0123] Specifically, the step S400 includes:
[0124] The cloud server will use the APP R Keyword trapdoor td w Keyword ciphertext of application data stored in cloud servers Match and judge equation H 2 (e(td w ,A))=B is true, if true, return TRUE and allow user u to use the application APP R Access the data associated with keyword w, otherwise return FALSE.
[0125] In some embodiments, the cloud storage data sharing method further includes an application replacement step. The application replacement step includes steps K100 to K300, which are described in detail below.
[0126] Step K100. Determine whether to trigger application replacement. Before triggering application replacement, the application group {APP i (e-1)} i={1,2,...,n} Each application in a<t-1,2(t-1)> The (t,n) threshold shared sub-secret {s i =B(i,y)} i={1,2,…,n} , where s = B(0,0), s is the private key of the application group and also the total secret of the application group; when the application replacement is triggered, the new application group {APP i (e)} i={1,2,…,n′} Randomly select 2t-1 applications from By Application Together we generate the intermediate secret {B(x,m)} m={1,2,…,2t-1} .
[0127] Specifically, when an application in the application group stops serving or a new application is added to the application group, application replacement is triggered.
[0128] Specifically, the intermediate secret {B(x,m)} m={1,2,…,2t-1} The generation methods include:
[0129] Step K101. From the new application group {APPi (e)} i={1,2,..,n′} Randomly select 2t-1 applications from in At least t applications in the set are from the set of retained applications
[0130] Step K102. All remaining applications Possessing sub-secret B(i k ,y) and the set of polynomial commitments of the intermediate secret {C B(x,j)} j={1,2,…,n} ,app Through its sub-secret B(i k ,y) Generate point {B(i k ,m)} m={1,2,…,2t-1} , and calculate the commitment C B(x,m) Proof at each point
[0131]
[0132] Step K103. Send to Application Where m = {1, 2,…, 2t-1}.
[0133] Step K104. Application receive Then determine whether equation 5 is true. If equation 5 is true, save point B(i k ,m); when t points satisfying equation 5 are received and the commitment C is B(x,m) When proving at this point, construct the polynomial B(x,m) through the t points, otherwise terminate the protocol, where m = {1, 2, ..., 2t-1};
[0134]
[0135] Step K200. By application Generate a binary polynomial Q(x,y) for sub-secret update together, and satisfy Q(0,0)=0, calculate the updated polynomial B′(x,y)=B(x,y)+Q(x,y), so that s=B′(0,0), and apply Applications in Holds the intermediate secret B′(x,m).
[0136] Specifically, the step K200 includes:
[0137] Step K201. Application Randomly select a 2t-2 order polynomial Pm (x) satisfies P m (0) = 0, and calculate P m (i) Send it to Where m = {1, 2, ..., 2t-1}; Application Waiting for acceptance And upon receiving all Post-calculation where s m The secret maintained by the binary polynomial used for subsecret update, otherwise the protocol terminates.
[0138] Step K202. Application Randomly select a t-1 order polynomial R m (x) satisfies R m (0) = s m , and calculate the updated intermediate secret polynomial B′(x,m)=B(x,m)+R m (x) and the auxiliary polynomial Z m (x) = R m (x)-s m .
[0139] Step K203. Set the updated application group to APP (e) ,app Calculate Z m Polynomial commitment of (x) Polynomial Commitment C of B′(x,m) B′(x,m) , and Z m (0) Proof At the same time, the sub-public key s maintained by the binary polynomial used for sub-secret update is calculated and published m P;
[0140]
[0141]
[0142]
[0143] Step K204. Application Will Broadcast to application group APP (e) All applications in the
[0144] Step K205. Application Group APP (e) All applications in Application requests in {C B(x,j)} j={1,2,…,n} , if t identical promise sets {C B(x,j)} j={1,2,…,n} Otherwise, terminate the process.
[0145] Step K206. Application Group APP (e) All applications in Verify and determine whether equations 6 and 7 are true. If both equations 6 and 7 are true, save {C B′(x,m)} m={1,2,…,2t-1} , otherwise terminate the process;
[0146]
[0147]
[0148] in,
[0149]
[0150] Step K300. All applications in the new application group jointly generate an updated sub-secret {B′(i,y)} i={1,2,…,n′} .
[0151] Specifically, the step K300 includes:
[0152] Step K301. Application Calculate Commitment C B′(x,m) Proof W at point m B′(j,m) , generate {B′(j,m),W B′(j,m)} j={1,2,…,n′} and send it to the application APP j (e) , where j = {1, 2, …, n′};
[0153]
[0154] Step K302. Application APP j (e) Receive {B′(j,m),W B′(j,m)} m={1,2,…,2t-1} After that, determine whether equation 8 is true. If all the points received satisfy equation 8, then the application APP j (e) Use the 2t-1 points to construct a new sub-secret polynomial B′(i,y), otherwise terminate the process;
[0155] e(C B′(x,m) ,P)=e(W B′(j,m) ,P(β m -j))e(P,B′(j,m)P)(Equation 8).
[0156] In this embodiment, {APP i} i={1,2,…,n} Represents a group of applications within a stable period; It represents the application group in the e-1 stage when the application is replaced; Indicates the application group in phase e when the application is replaced; Right now Indicates a set of applications selected from a new application group for participating in application replacement; Right now express and {APP i (e-1)} i={1,2,…n} The intersection of applications in B j (i,y) and B j (x,i) represents the application APP in a certain period j The generated secret subpolynomial about x and y at point i; B(i,y) represents the application APP in a certain period i The sub-secret polynomial maintained; B(i,0) represents the specific secret referred to by the sub-secret polynomial B(i,y); B(x,i) represents the secret of an application APP in a certain period i The intermediate secret polynomial maintained; B(0,i) represents the specific secret referred to by the intermediate secret polynomial B(x,i).
[0157] The above is only a preferred embodiment of the present invention. It should be understood that the present invention is not limited to the form disclosed herein, and should not be regarded as excluding other embodiments, but can be used in various other combinations, modifications and environments, and can be modified within the scope of the concept described herein through the above teachings or the technology or knowledge of the relevant field. The changes and modifications made by those skilled in the art shall not deviate from the spirit and scope of the present invention, and shall be within the scope of protection of the claims attached to the present invention.
Claims
1. A cross-application cloud storage data sharing method, characterized in that: The method comprises a data sharing step, wherein the data sharing step comprises: Step S100. Determine the public parameters and the public and private keys of the user according to the security parameters, and the applications in the application group sharing the same cloud server determine their distributedly produced public and private keys; Step S200. The user will use the application APP S When the application data generated in the process is stored in the cloud server, the keyword w of the application data is selected, the keyword w is blinded, and the blinded keyword w′ is sent to the application group {APP i } i={1,2,…,n} ; Application Group {APP i } i={1,2,…,n} All applications in the same group jointly generate the keyword reinforcement factor σ w , and the keyword enhancement factor σ w Return to the user; user verification keyword reinforcement factor σ w The effectiveness of the keyword reinforcement factor σ is used after verification. w The key of the pseudo-random function and the keyword w are used as the input value of the pseudo-random function to calculate the enhanced keyword hk w , according to the enhanced keyword hk w Calculate the keyword ciphertext and upload the keyword ciphertext and the application data ciphertext together to the cloud server; Step S300. The user is using the application APP R When the application data containing keyword w in the cloud server needs to be accessed during the process, the keyword w is blinded and the blinded keyword w′ is sent to the application group {APP i } i={1,2,…,n} ; Application Group {APP i } i={1,2,…,n} All applications in the same group jointly generate the keyword reinforcement factor σ w , and the keyword enhancement factor σ w Return to the user; user verification keyword reinforcement factor σ w The effectiveness of the keyword reinforcement factor σ is used after verification. w The key of the pseudo-random function and the keyword w are used as the input value of the pseudo-random function to calculate the enhanced keyword hk w , according to the enhanced keyword hk w Calculate keyword traps and send them to the cloud server; Step S400. The cloud server matches the keyword trap sent by the user with the keyword ciphertext stored in the cloud server. If the match is successful, the user is allowed to access the application program APP. R Access application data related to keyword w.
2. The cross-application cloud storage data sharing method according to claim 1, characterized in that: The step S100 includes: Step S101. Determine a public parameter set {p, P, G, G T ,e,h,H,H1,H2,F,t,l}, where e is a bilinear mapping: e:G×G→G T , P is the generator of group G, p is the order of group G, h, H, H1 and H2 are hash functions, h:G→Z p ,H,H1:{0,1} * →G,H2:G T →{0,1} lgp , F is a pseudo-random function, F:Z p ×{0,1} l →{0,1} l , l is the length of the pseudo-random function input value, t is the threshold; Step S102. User Random Selection As the user's private key, and calculate the user's public key in The simplified remainder group of the finger module p; Step S103. By APP i (e-1) Pick a random number as well as<t-1,2(t-1)> Order two-variable polynomial B i (x,y), such that the bivariate polynomial B i (x,y) satisfies in, Step S104. Application APP i (e-1) Calculate the secret subpolynomial B of (t, n) and (2t, n) respectively i (j,y) and B i (x,j), and send it to other applications except itself {APP j (e-1) } j=1,2,…,n,j≠i ; Step S105. Application APP i (e-1) Calculate and publish the verification factor and Step S106. Application APP i (e-1) Upon receiving an email from the APP j (e-1) The secret subpolynomial B of x and y j (i,y) and B j (x,i), determine whether equation 1 and equation 2 are true. If both equation 1 and equation 2 are true, then accept B. j (i,y) and B j (x,i); Step S107. Application APP i (e-1) Calculate its sub-secret polynomial through the received secret sub-polynomial and secrets And calculate the sub-public key Q i =B(i,0)P; at this time, the private key of the application group is the total secret maintained by the application group The corresponding public key is Step S108. Application APP i (e-1) Randomly select the private key of the polynomial commitment The public key is <P,β i P,β i 2 P,…,β i t-1 P> Step S109. Application APP i (e-1) Compute the polynomial commitment of the intermediate secret polynomial B(x,i) with respect to x Commit the polynomial C B(x,i) Broadcast to {APP j (e-1) } j=1,2,…,n,j≠i , and waits to receive a promise from another application B(x,j) } j=(1,2,…,n),j≠i If n-1 commitments are not received, the initialization process is terminated. Otherwise, the received commitments are saved locally and the initialization is completed.
3. The cross-application cloud storage data sharing method according to claim 2, characterized in that: The step S200 includes: Step S201. The user will use the application APP S When the application data generated in the process is stored in the cloud server, the keyword w is selected and randomly selected As the blinding factor, calculate the blinded keyword w′=rH(w); Step S202. User Send the blinded keyword w′ to the application group {APP i } i={1,2,…,n} , APP i After receiving the blinded keyword w′, use its sub-secret to generate the sub-enhancement factor σ of w′ i =B(i,0)w′, and the sub-enhancement factor σ i Return to user Step S203. User Received from APP i The sub-enhancement factor σ i Then determine whether equation 3 is true. If equation 3 is true, the user Accept and store the sub-enhancement factor σ i , otherwise the sub-enhancement factor σ is rejected i ; e(σ i ,P)=e(w′,Q i ) (Equation 3); Step S204. User Receive t sub-enhancement factors Post-calculation keyword enhancement factor The index set of the sub-enhancement factors is T = {i1,i2,…,i t }, Then determine whether equation 4 is true. If equation 4 is true, then the keyword enhancement factor σ w efficient; e(σ w ,P)=e(H(w),Q) (Equation 4); Step S205. User In the keyword reinforcement factor σ w When effective, calculate the enhanced keyword hk w =F(h(σ w ),w); Step S206. User Pick a random value Calculate the intermediate value of the generated ciphertext At this time, the keyword ciphertext is Step S207. User Encrypt keywords Application data application APP S The ciphertext is stored together in the cloud server.
4. The cross-application cloud storage data sharing method according to claim 3, characterized in that: The step S300 includes: Step S301. The user is using the application APP R When you need to access the application data containing keyword w in the cloud server, randomly select Calculate the blinded keyword w′=rH(w); Step S302. User The blinded keyword w′ is sent to the application group {APP i } i={1,2,…,n} , APP i After receiving the blinded keyword w′, use its sub-secret to generate the sub-enhancement factor σ of w′ i =B(i,0)w′, and the sub-enhancement factor σ i Return to user Step S303. User Received from APP i The sub-enhancement factor σ i Then determine whether equation 3 is true. If equation 3 is true, the user Accept and store the sub-enhancement factor σ i , otherwise the sub-enhancement factor σ is rejected i ; e(σ i ,P)=e(w′,Q i ) (Equation 3); Step S304. User Receive t sub-enhancement factors Post-calculation keyword enhancement factor The index set of the sub-enhancement factors is T = {i1,i2,…,i t }, Then determine whether equation 4 is true. If equation 4 is true, then the keyword enhancement factor σ w efficient; e(σ w ,P)=e(H(w),Q) (Equation 4); Step S305. User In the keyword reinforcement factor σ w When effective, calculate the enhanced keyword hk w =F(h(σ w ),w); Step S306. User Use its private key α to calculate the keyword trapdoor td w =αH1(hk w ); Step S307. User Keyword trapdoor td w Send to the cloud server.
5. The cross-application cloud storage data sharing method according to claim 4, characterized in that: The step S400 includes: The cloud server will use the APP R Keyword trapdoor td w Keyword ciphertext of application data stored in cloud servers Match and judge the equation H2(e(td w ,A))=B is true, if true, allow the user Use the APP R Access data related to keyword w.
6. The cross-application cloud storage data sharing method according to claim 5, characterized in that: The cloud storage data sharing method further includes an application replacement step, wherein the application replacement step includes: Step K100. Determine whether to trigger application replacement. Before triggering application replacement, the application group {APP i (e)-1 } i={1,2,…,n′} Each application in a<t-1,2(t-1)> The (t,n) threshold shared sub-secret {s i =B(i,y)} i={1,2,…,n} , where s = B(0,0), s is the private key of the application group and also the total secret of the application group; when the application replacement is triggered, the new application group {APP i (e) } i={1,2,…,n′} Randomly select 2t-1 applications from By Application Together we generate the intermediate secret {B(x,m)} m={1,2,…,2t-1} ; Step K200. By application Generate a binary polynomial Q(x,y) for sub-secret update together, and satisfy Q(0,0)=0, calculate the updated polynomial B′(x,y)=B(x,y)+Q(x,y), so that s=B′(0,0), and apply Applications in Hold the intermediate secret B′(x,m); Step K300. All applications in the new application group jointly generate an updated sub-secret {B′(i,y)} i={1,2,…,n′} .
7. The cross-application cloud storage data sharing method according to claim 6, characterized in that: Application replacement is triggered when an application in the application group stops serving or a new application is added to the application group.
8. The cross-application cloud storage data sharing method according to claim 6, characterized in that: The intermediate secret {B(x,m)} m={1,2,…,2t-1} The generation methods include: Step K101. From the new application group {APP i (e) } i={1,2,...,n′} Randomly select 2t-1 applications from in At least t applications in the set are from the set of retained applications Step K102. All remaining applications Possessing sub-secret B(i k ,y) and the set of polynomial commitments of the intermediate secret {C B(x,j) } j={1,2,…,n} ,app Through its sub-secret B(i k ,y) Generate point {B(i k ,m)} m={1,2,…,2t-1} , and calculate the commitment C B(x,m) Proof at each point Step K103. Send to Application Where m = {1, 2, ..., 2t-1}; Step K104. Application receive Then determine whether equation 5 is true. If equation 5 is true, save point B(i k ,m); when t points satisfying equation 5 are received and the commitment C is B(x,m) When proving this point, construct a polynomial B(x,m) through the t points, where m={1,2,…,2t-1}; 9. The cross-application cloud storage data sharing method according to claim 6, characterized in that: The step K200 includes: Step K201. Application Randomly select a 2t-2 order polynomial P m (x) satisfies P m (0) = 0, and calculate P m (i) Send it to Where m = {1, 2, ..., 2t-1}; Application Waiting for acceptance And upon receiving all Post-calculation where s m The secret maintained by the bivariate polynomial used for subsecret updates; Step K202. Application Randomly select a t-1 order polynomial R m (x) satisfies R m (0) = s m , and calculate the updated intermediate secret polynomial B′(x,m)=B(x,m)+R m (x) and the auxiliary polynomial Z m (x) = R m (x)-s m ; Step K203. Set the updated application group to APP (e) ,app Calculate Z m Polynomial commitment of (x) Polynomial Commitment C of B′(x,m) B′(x,m) , and Z m (0) Proof At the same time, the sub-public key s maintained by the binary polynomial used for sub-secret update is calculated and published m P; Step K204. Application Will Broadcast to application group APP (e) All applications in; Step K205. Application Group APP (e) All applications in Application requests in {C B(x,j) } j={1,2,…,n} , if t identical promise sets {C B(x,j) } j={1,2,…,n} then save it; Step K206. Application Group APP (e) All applications in Verify and determine whether equations 6 and 7 are true. If both equations 6 and 7 are true, save {C B′(x,m) } m={1,2,…,2t-1} ; in, 10. The cross-application cloud storage data sharing method according to claim 6, characterized in that: The step K300 includes: Step K301. Application Calculate Commitment C B′(x,m) Proof W at point m B′(j,m) , generate {B′(j,m),W B′(j,m) } j={1,2,…,n′} and send it to the application APP j (e) , where j = {1, 2, …, n′}; Step K302. Application APP j (e) Receive {B′(j,m),W B′(j,m) } m={1,2,…,2t-1} After that, determine whether equation 8 is true. If all the points received satisfy equation 8, then the application APP j (e) Use the 2t-1 points to construct a new sub-secret polynomial B′(i,y); e(C B′(x,m) ,P)=e(W B′(j,m) ,P(β m -j))e(P,B′(j,m)P) (Equation 8).
Citation Information
Patent Citations
Public key encryption method capable of searching multiple keywords
CN108599937A
Key escrow-free secure multi-keyword sorting and searching system
CN108632032A