Data sharing method, system, device, equipment, storage medium and program product
By generating a re-encryption key on the owner's side and distributing it to multiple agents for data re-encryption, and determining a trusted agent in combination with proxy arbitration, the cloud-based data sharing security and privacy problem is solved, and high-security data sharing is achieved.
Patent Information
- Application Number
- CN202411944164.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-26
- Publication Date
- 2025-04-11
AI Technical Summary
Cloud-based data sharing has problems such as security and privacy, access control, and how to improve its security has become an urgent problem.
By generating a re-encryption key on the owner's side, and generating a plurality of sub-keys based on the key, respectively, it is sent to a plurality of first agents. These agents use subkeys to reencrypt outsourced ciphertext data to obtain reencrypted subdata. Based on proxy arbitration, multiple second agents are determined from the multiple first agents, and the reencrypted sub-data is sent to the requester side, and the requester side decrypts the acquired data to obtain plaintext data.
It improves the security of data sharing, enhances the credibility of the proxy that shares data to the requester side, avoids conspiracy attacks between malicious proxy and users, and reduces the risk of data leakage.
Smart Images

Figure CN119814296A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to, but is not limited to, the field of computer technology, and in particular to a data sharing method, system, device, equipment, storage medium and program product. Background Art
[0002] With the advent of the big data era, people's demand for data storage capacity continues to grow. Based on cost control and convenience considerations, most users with limited storage resources choose cloud-based data sharing.
[0003] However, cloud-based data sharing has common problems such as security, privacy, and access control. Therefore, how to improve the security of cloud-based data sharing has become an urgent issue that needs to be addressed. Summary of the invention
[0004] In view of this, the present application at least provides a data sharing method, system, device, equipment, storage medium and program product.
[0005] The technical solution of this application is implemented as follows:
[0006] On the one hand, the present application provides a data sharing method, applied to an owner side, the method comprising:
[0007] In response to a data request message from the requester for the outsourced ciphertext data, generating a re-encryption key;
[0008] Based on the re-encryption key, generate multiple sub-keys;
[0009] The multiple subkeys are sent to multiple first agents respectively; wherein,
[0010] The multiple first agents are used to re-encrypt the outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data;
[0011] The requester end is used to obtain multiple re-encrypted sub-data from multiple second agents to decrypt the obtained multiple re-encrypted sub-data and obtain plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration.
[0012] In some embodiments, the method further comprises:
[0013] Receiving first information input by an owner; the first information represents the credibility evaluation information of the owner on at least one first agent;
[0014] The first information is sent to a server; the server is used to perform agent arbitration on the plurality of first agents based on the first information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
[0015] In some embodiments, after sending the plurality of subkeys to the plurality of first agents respectively, the method further includes at least one of the following:
[0016] In response to a time period after the plurality of subkeys are respectively sent to the plurality of first agents exceeding a time period threshold, generating a plurality of update messages, and sending the plurality of update messages to the plurality of first agents respectively, so that the plurality of first agents respectively update the subkeys they hold based on the corresponding update messages;
[0017] In response to the presence of at least one malicious agent among the multiple first agents, multiple update information is generated, and the multiple update information is sent to the multiple first agents other than the at least one malicious agent, so that the multiple first agents other than the at least one malicious agent respectively update the sub-keys they hold based on the corresponding update information.
[0018] On the other hand, the present application also provides a data sharing method, applied to a requester, comprising:
[0019] Sending data request information to the owner end; the data request information represents data sharing request information for the outsourced ciphertext data of the owner end;
[0020] receiving a plurality of re-encrypted sub-data from a plurality of second agents; the plurality of second agents being determined from a plurality of first agents based on agent arbitration; the first agent representing an agent entity holding the outsourced ciphertext data and the sub-key sent by the owner end; the re-encrypted sub-data being obtained after the corresponding first agent encrypts the outsourced ciphertext data using the sub-key;
[0021] Decryption processing is performed on the multiple heavily encrypted sub-data to obtain plaintext data corresponding to the outsourced ciphertext data.
[0022] In some embodiments, the method further comprises:
[0023] receiving second information input by a requester; the second information represents the credibility evaluation information of the requester on at least one first agent;
[0024] The second information is sent to a server; the server is used to perform agent arbitration on the plurality of first agents based on the second information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
[0025] On the other hand, the present application also provides a data sharing method, which is applied to a server, comprising:
[0026] Receiving first information sent by an owner end and second information sent by a requester end; wherein the owner end and the requester end represent a sending end and a requesting end of outsourced ciphertext data respectively; the first information and the second information represent credibility evaluation information of the owner end and the requester end on at least one first agent respectively;
[0027] Based on the first information and the second information, performing proxy arbitration on the plurality of first agents to obtain a proxy arbitration result;
[0028] Based on the agent arbitration result, multiple second agents are determined from the multiple first agents, so that the multiple second agents respectively send the re-encrypted sub-data they hold to the requester end; wherein the re-encrypted sub-data represents the outsourced ciphertext data re-encrypted by the corresponding first agent using the sub-key shared by the owner end.
[0029] In some embodiments, performing proxy arbitration on the plurality of first agents based on the first information and the second information to obtain a proxy arbitration result includes:
[0030] Based on the first information and the second information, using a linear discriminant model, determining the credibility data of the plurality of first agents;
[0031] Based on the credibility data, the proxy arbitration result is determined.
[0032] In some embodiments, the credibility data represents a credibility score of the corresponding first agent;
[0033] The determining the proxy arbitration result based on the credibility data includes:
[0034] Based on the credibility scores, determining a plurality of third agents having the highest credibility scores from among the plurality of first agents;
[0035] Setting the first agents among the plurality of first agents except the plurality of third agents to a state where they are not authorized to send the re-encrypted sub-data to the requesting end;
[0036] Based on the credibility scores of the plurality of third agents, priorities of the plurality of third agents in sending the re-encrypted sub-data to the requesting end are determined, so as to determine the plurality of second agents from the plurality of third agents based on the priorities.
[0037] In some embodiments, the method further comprises:
[0038] Based on the data processing capabilities of the plurality of first agents, quantity information of the plurality of second agents is determined.
[0039] On the other hand, the present application also provides a data sharing method, applied to an agent, comprising:
[0040] Receiving a subkey sent by an owner end; the subkey is generated by the owner end based on a re-encryption key;
[0041] Using the subkey, re-encrypt the outsourced ciphertext data held by the agent to obtain re-encrypted sub-data; the outsourced ciphertext data is obtained after the owner end encrypts the plaintext data;
[0042] In response to the proxy arbitration result of the service end, it is determined whether to send the re-encrypted sub-data to the requester end.
[0043] In some embodiments, the method further comprises:
[0044] Receiving update information sent by the owner terminal;
[0045] Using the update information, updating the subkey;
[0046] The outsourced ciphertext data is re-encrypted using the updated sub-key to obtain updated re-encrypted sub-data.
[0047] On the other hand, the present application also provides a data sharing system, including: an owner end, a requester end, a service end and a plurality of first agents; wherein,
[0048] The requester terminal sends data request information to the owner terminal; the data request information represents data sharing request information for the outsourced ciphertext data of the owner terminal;
[0049] In response to the data request information, the owner generates a re-encryption key; based on the re-encryption key, generates a plurality of sub-keys; sends the plurality of sub-keys to the plurality of first agents respectively; each of the first agents holds the outsourced ciphertext data;
[0050] The plurality of first agents re-encrypt the held outsourced ciphertext data based on the plurality of sub-keys to obtain a plurality of re-encrypted sub-data;
[0051] The server performs proxy arbitration on the plurality of first agents, and determines a plurality of second agents from the plurality of first agents based on the proxy arbitration result, so that the plurality of second agents respectively send the held re-encrypted sub-data to the requester;
[0052] The requester performs decryption processing on the received multiple heavily encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
[0053] In another aspect, the present application further provides a data sharing device, which is arranged on an owner-side device and includes:
[0054] A first generation module, used to generate a re-encryption key based on the owner-side information and the requester-side information;
[0055] A second generation module, used to generate multiple sub-keys based on the re-encryption key;
[0056] The first sending module is used to send the multiple subkeys to multiple first agents respectively; wherein,
[0057] The multiple first agents are used to re-encrypt the owner's outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data;
[0058] The requester end is used to obtain multiple re-encrypted sub-data from multiple second agents to decrypt the obtained multiple re-encrypted sub-data and obtain plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration.
[0059] In another aspect, the present application further provides a data sharing device, which is arranged on a requester-side device and includes:
[0060] A second sending module is used to send data request information to the owner end; the data request information represents data sharing request information for the outsourced ciphertext data of the owner end;
[0061] A first receiving module is used to receive a plurality of re-encrypted sub-data from a plurality of second agents; the plurality of second agents are determined from a plurality of first agents based on agent arbitration; the first agent represents an agent entity holding the outsourced ciphertext data and the sub-key sent by the owner end; the re-encrypted sub-data is obtained after the corresponding first agent encrypts the outsourced ciphertext data using the sub-key;
[0062] The decryption module is used to perform decryption processing on the multiple heavily encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
[0063] On the other hand, the present application also provides a data sharing device, which is arranged on a server device, and includes:
[0064] A second receiving module is used to receive first information sent by the owner end and second information sent by the requester end; wherein the owner end and the requester end represent the sending end and the requesting end of the outsourced ciphertext data respectively; the first information and the second information represent the credibility evaluation information of the owner end and the requester end on at least one first agent respectively;
[0065] an arbitration module, configured to perform agent arbitration on the plurality of first agents based on the first information and the second information, and obtain an agent arbitration result;
[0066] The first determination module is used to determine multiple second agents from the multiple first agents based on the agent arbitration result, so that the multiple second agents respectively send the re-encrypted sub-data they hold to the requester end; wherein the re-encrypted sub-data represents the corresponding first agent using the sub-key shared by the owner end to re-encrypt the outsourced ciphertext data.
[0067] In another aspect, the present application further provides a data sharing device, which is arranged on a proxy device and includes:
[0068] A third receiving module is used to receive a subkey sent by the owner end; the subkey is generated by the owner end based on the re-encryption key;
[0069] A re-encryption module, used to re-encrypt the outsourced ciphertext data held by the agent using the subkey to obtain re-encrypted sub-data; the outsourced ciphertext data is obtained after the owner end encrypts the plaintext data;
[0070] The second determination module is used to determine whether to send the re-encrypted sub-data to the requester end in response to the proxy arbitration result of the service end.
[0071] On the other hand, the present application also provides a terminal device, including a memory and a processor, wherein the memory stores a computer program that can be executed by the processor, and when the processor runs the computer program, it executes some or all of the steps in the above-mentioned data sharing method applied to the owner side or the requester side.
[0072] On the other hand, the present application also provides a server-side device, including a memory and a processor, wherein the memory stores a computer program that can be executed by the processor, and when the processor runs the computer program, it executes some or all of the steps in the above-mentioned data sharing method applied to the server.
[0073] On the other hand, the present application also provides an agent device, including a memory and a processor, wherein the memory stores a computer program that can be executed by the processor, and when the processor runs the computer program, some or all of the steps in the above-mentioned data sharing method applied to the agent are executed.
[0074] On the other hand, the present application further provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed, part or all of the steps in the above-mentioned data sharing method are implemented.
[0075] On the other hand, the present application also provides a computer program product, including a computer program or instructions, characterized in that when the computer program or instructions are executed by a processor, some or all of the steps in the above-mentioned data sharing method are implemented.
[0076] In the data sharing method provided by the present application, in response to the data request information of the requester end for the outsourced ciphertext data, the owner end generates a re-encryption key, and generates multiple sub-keys based on the re-encryption key, and sends the multiple sub-keys to multiple first agents respectively; the multiple first agents use the obtained sub-keys to re-encrypt the outsourced ciphertext data to obtain multiple re-encrypted sub-data; based on agent arbitration, multiple second agents are determined from the multiple first agents; the multiple second agents send the corresponding re-encrypted sub-data to the requester end; the requester end performs merging processing and decryption processing on the obtained multiple re-encrypted sub-data, so as to obtain the plaintext data corresponding to the outsourced ciphertext data. In this way, when using the threshold proxy re-encryption technology to perform data encryption sharing, proxy arbitration is performed on multiple first agents, and multiple second agents that send re-encrypted sub-data to the requester end are determined based on the proxy arbitration results, thereby improving the credibility of the agent sharing data with the requester end; at the same time, if some malicious second agents generate erroneous re-encrypted sub-data and send them to the requester end, the requester end will not be able to decrypt them. Therefore, by merging and decrypting the re-encrypted sub-data of different second agents, it can help determine the malicious second agent, and in the case of multiple requester ends, it can also effectively avoid collusion between some requester ends and malicious agents. It can be seen that the data sharing method provided by the present application can improve the security of data sharing, and at the same time can avoid collusion between requesters and malicious agents, thereby assisting in evaluating the credibility of each agent.
[0077] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and are not intended to limit the technical solutions of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0078] The drawings herein are incorporated into the specification and constitute a part of the specification. These drawings illustrate embodiments consistent with the present application and are used together with the specification to illustrate the technical solution of the present application.
[0079] Figure 1 This is a system architecture diagram of a data sharing system;
[0080] Figure 2 This is a system architecture diagram of another data sharing system;
[0081] Figure 3 This is a system architecture diagram of another data sharing system;
[0082] Figure 4 A schematic diagram of the implementation process of a data sharing method provided in this application;
[0083] Figure 5 A schematic diagram of the implementation process of a data sharing method provided in this application;
[0084] Figure 6 A schematic diagram of the implementation process of a data sharing method provided in this application;
[0085] Figure 7 A schematic diagram of the implementation process of a data sharing method provided in this application;
[0086] Figure 8 A system architecture diagram of a data sharing system provided for this application;
[0087] Fig. 9 A timing diagram of an embodiment of performing data sharing using the data sharing system provided by the present application;
[0088] Fig.10 A schematic diagram of the structure of a data sharing device provided in this application;
[0089] Fig.11 A schematic diagram of the structure of a data sharing device provided in this application;
[0090] Fig.12 A schematic diagram of the structure of a data sharing device provided in this application;
[0091] Fig.13 A schematic diagram of the composition structure of a data sharing device provided in this application. DETAILED DESCRIPTION
[0092] In order to make the purpose, technical solutions and advantages of the present application clearer, the technical solutions of the present application are further elaborated in detail below in conjunction with the drawings and embodiments. The described embodiments should not be regarded as limiting the present application. All other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present application.
[0093] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0094] The terms "first / second / third" involved are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It is understandable that "first / second / third" can be interchanged with a specific order or sequence where permitted so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0095] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing this application and are not intended to limit this application.
[0096] In order to better understand the data sharing method provided by this application, the data sharing solution used in the related art is first described below.
[0097] In related technologies, in order to improve the security of data sharing, before outsourcing sensitive data to the cloud, the data owner encrypts the data and shares the decryption key with other authorized users. Figure 1 As shown, the data owner 110 encrypts the plaintext data to obtain the encrypted data 101, and uploads the encrypted data 101 to the cloud server 120; at the same time, the data owner 110 uploads part of the decryption information to the cloud server 120; when the authorized user 130 accesses the encrypted data 101 through the cloud interface, the cloud server 120 first uses the part of the decryption information uploaded by the data owner 110 to perform partial decryption on the encrypted data 101, and obtains the pre-decrypted decrypted data 102; the cloud server 110 sends the decrypted data 102 to the authorized user 130; the authorized user 130 locally uses the decryption key shared by the data owner 110 to decrypt the decrypted data 101 again, thereby obtaining the plaintext data.
[0098] As can be seen from the above description, this data sharing method needs to go through two encryption and decryption algorithms, so the efficiency is low, and there is no guarantee that the decryption key can be correctly and securely shared with authorized users.
[0099] In order to solve the problems existing in the above data sharing scheme, the related technology further proposes the proxy re-encryption technology (Proxy Re-Encryption, PRE). Figure 2 As shown, in the system architecture diagram of PRE, the data owner 210 encrypts the plaintext data to obtain the encrypted data 201, and uploads the encrypted data 201 to the cloud server 220; the cloud server 220 sends the user's encrypted data 201 to the agent 240; when the authorized user 230 requests to share the encrypted data 201, the data owner 210 generates a re-encryption key, and sends the re-encryption key to the agent 240; the agent 240 uses the re-encryption key sent by the data owner 210 to re-encrypt the encrypted data 201 to obtain the re-encrypted data 202; the agent 240 sends the re-encrypted data 202 to the authorized user 230; the authorized user 230 uses his own private key to decrypt the re-encrypted data 202 to obtain the plaintext data.
[0100] In PRE technology, the plaintext and private key of the encrypted data will not be displayed to the agent 240, and because the proxy re-encryption method that does not share private keys or symmetric keys is adopted, the trust dependence problem between end users can be reduced. However, PRE technology has only a single agent in the data sharing process, and the single agent is considered to be a completely trusted entity to re-encrypt the data, so the single point of failure problem cannot be avoided. In addition, the agent in PRE technology may also collude with malicious users to re-encrypt, so the anti-collusion ability is weak. Therefore, in applications with high data security requirements such as the Internet of Things (IoT) and secure medical systems, PRE cannot provide distributed authorization for high access control of shared sensitive data.
[0101] Based on the technical problems existing in the PRE technology, the Threshold Proxy Re-Encryption (TPRE) technology is further proposed in the related technology. Figure 3 As shown, in the system architecture diagram of TPRE, the data owner 310 encrypts the plaintext data to obtain the encrypted data 301, and uploads the encrypted data 301 to the cloud server 320; the cloud server 320 transmits the user's encrypted data 301 to multiple agents 340; when the authorized user 330 requests to share the encrypted data 301, the data owner 310 generates a re-encryption key, and distributes the re-encryption key to multiple agents 340 using the Shamir secret sharing technology; multiple agents 340 re-encrypt the encrypted data 301 using the re-encryption key sent by the data owner 310 to obtain re-encrypted data 302; multiple agents 340 send the re-encrypted data 302 to the authorized user 330; the authorized user 330 uses his own private key to decrypt the re-encrypted data 302 to obtain the plaintext data.
[0102] From the above, we can see that TPRE technology distributes the re-encryption key to multiple agents by using Shamir secret sharing technology, thereby eliminating the dependence on a single agent and preventing collusion attacks between semi-trusted agents and malicious users.
[0103] However, TPRE technology uses symmetric keys and RSA (Rivest-Shamir-Adleman) algorithm to re-encrypt and decrypt data, which increases key processing overhead, computational cost overhead and security channel overhead; in addition, TPRE uses the same proxy share to re-encrypt multiple data, increasing the possibility of proxy share leakage; at the same time, TPRE allows any proxy to generate the final ciphertext after sending partially re-encrypted ciphertext, which increases latency and computational cost.
[0104] It can be seen that the proxy re-encryption scheme and threshold proxy re-encryption scheme proposed in the related art still have certain data security and collusion attack risks. Therefore, in order to improve the security of shared data and prevent collusion attacks between malicious agents and users, it is necessary to change or update the encrypted data. However, changing or updating the encrypted data will increase additional computational costs and time complexity.
[0105] Based on this, the present application provides a data sharing method, which is applied to the owner side, and the method can be executed by a processor of the owner side device. The owner side device may refer to a server, a laptop, a tablet computer, a desktop computer, a smart TV, a mobile device (such as a mobile phone, a portable video player, a personal digital assistant, a dedicated messaging device, a portable gaming device) and other devices with data processing capabilities.
[0106] Figure 4 A schematic diagram of the implementation process of a data sharing method provided in this application, such as Figure 4 As shown, the method includes the following steps S401 to S403:
[0107] Step S401, generating a re-encryption key in response to data request information of the requester end for outsourced ciphertext data.
[0108] Here, outsourced ciphertext data refers to data that, in a data outsourcing scenario, the owner end encrypts the plaintext data and uploads the encrypted data to the cloud server, and the cloud server entrusts multiple first agents to save the data.
[0109] In some embodiments, the owner end encrypts the plaintext data using the public key of the owner end and a keyword related to the plaintext data to obtain ciphertext data.
[0110] In some embodiments, both the owner end and the requester end use elliptic curve cryptography to generate corresponding public keys and private keys to assist in encrypting or decrypting plaintext data.
[0111] In some embodiments, the encryption operation of the plaintext data may be implemented by the following steps:
[0112] First, the owner inputs the security parameter o at the owner end to generate the global security parameter;
[0113] In some embodiments, a bilinear mapping algorithm can be used to obtain global security parameters (p, G1, G2, g, e, T); wherein G1 is an additive cyclic group, G2 is a multiplicative cyclic group, p is the order of G1 and G1 and p is a prime number, g is the generator of G1 (i.e., g∈G1), e represents a bilinear mapping (i.e., G1*G1→G2), and T=e(g,g).
[0114] Then, based on the global security parameters, the owner's private key sk is generated using the elliptic curve encryption algorithm. owner and public key pk owner ;
[0115] Here, from the set Z p Randomly select a number ro from the , and use ro as the owner's private key sk owner , and use formula (1) to determine the owner's public key pk owner :
[0116] pk owner =g ro modp (1);
[0117] Among them, the set Z p represents the set of remainders of a prime number p, that is, Z p ={0,1…(p-1)}.
[0118] In this way, the public key-private key pair (pk owner ,sk owner )=(g ro ,ro).
[0119] Similarly, according to the above steps, the elliptic curve cryptography algorithm can be used to generate the private key sk of the requester. user and public key pk user , specifically: From the set Z p Randomly select a number ru from the source and use ru as the private key sk on the requester side user , and use formula (2) to determine the owner's public key pk user :
[0120] pkuser =g ro modp (2).
[0121] In this way, the public key-private key pair (pk user ,sk user )=(g ru ,ru).
[0122] Compared with public key cryptographic algorithms such as RSA or Digital Signature Algorithm (DSA), elliptic curve cryptography has a shorter key length and higher computational efficiency while providing the same security. Therefore, in a resource-constrained environment, using elliptic curve cryptography to generate public keys for the owner and requester can more effectively protect data security and reduce computational and storage overhead.
[0123] In some embodiments, hardware acceleration technology is used to accelerate the generation of the owner's public key and private key and the requester's public key and private key. For example, a graphics processing unit (GPU) and / or a field programmable gate array (FPGA) are used to implement hardware acceleration.
[0124] Finally, using the owner's public key pk owner The plaintext data M is encrypted with the keyword k of the plaintext data M to obtain the encrypted ciphertext C owner .
[0125] Here, keyword k refers to keyword information specified by the owner based on the plaintext data M. For example, when the plaintext data M is the company's procurement information, the owner can specify information related to the procurement information, such as the total procurement amount, procurement quantity, procurement contract number, etc., as keyword k. When sharing data, the owner sends the keyword k to the authorized requester so that the requester can perform a ciphertext search on the plaintext data M based on the keyword k. owner Decrypt.
[0126] In some embodiments, the owner terminal selects from the set Z p A number s is randomly selected from the ciphertext, and the partial ciphertext C1 is calculated using formula (3), and the partial ciphertext C2 is calculated using formula (4):
[0127] C1=M*e(g,g) s*H(k) =M*T s*H(k) (3);
[0128]
[0129] Among them, H(k) represents the hash operation performed on the keyword k.
[0130] In this way, the ciphertext C corresponding to the plaintext data M can be obtained owner =(C1, C2).
[0131] In some embodiments, hardware acceleration technology is used to accelerate the speed at which the owner generates ciphertext, for example, GPU and / or FPGA are used to implement hardware acceleration.
[0132] Afterwards, the owner sends the ciphertext C owner Sent to the cloud server as outsourced ciphertext data.
[0133] Here, by using the elliptic curve cryptography algorithm to generate the owner's public key, and using the public key and the keyword k of the plaintext data M to encrypt the plaintext data M, it is possible to prevent unauthorized requesters from decrypting the data, thereby improving the confidentiality and integrity of the data.
[0134] In this way, after the requester side searches for the outsourced ciphertext data of the plaintext data M based on the keyword k shared by the owner side, the requester side sends data request information to the owner side; in response to the data request information sent by the requester side, the owner side generates a re-encryption key.
[0135] In some embodiments, the owner side generates a re-encryption key based on the requester side public key.
[0136] In some embodiments, while or after the requester sends data request information to the owner, the requester sends its public key to the owner so that the owner generates a re-encryption key based on the owner private key and the requester public key.
[0137] In some embodiments, the owner can generate a re-encryption key based on the following steps:
[0138] First, the owner side selects from the set Z p Randomly select a number v from
[0139] Then, the owner generates the re-encryption key R based on the following formula (5): owner→user :
[0140]
[0141] At the same time, the owner generates the public parameter Q using the following formula (6):
[0142] Q = g v*H(k) (6);
[0143] The owner side sends the public parameter Q to the requester side so that the requester side can perform decryption based on the public parameter Q.
[0144] In the process of generating the re-encryption key, the owner uses the public key of the requester and the private key of the owner to calculate the re-encryption key without the participation of the private key of the requester. In this way, the re-encryption key is calculated in a non-interactive way, which can reduce the computational overhead and improve the computational efficiency.
[0145] Step S402: Generate multiple sub-keys based on the re-encryption key.
[0146] In some embodiments, the owner side divides the re-encryption key into multiple sub-keys using a threshold secret sharing technique.
[0147] In some embodiments, the owner side uses Shamir's threshold secret sharing technique to divide the re-encryption key into multiple sub-keys.
[0148] In some embodiments, the owner can divide the re-encryption key into N subkeys using the following steps:
[0149] First, the owner generates a polynomial f(z) with z as a variable; wherein the polynomial f(z) is as shown in the following formula (7):
[0150] f(z)=x0+x1·z+x2·z 2 +…+x d-1 ·z d-1 (7);
[0151] Where the polynomial f(z) is a d-1 degree polynomial; x1, x2…x d-1 Both belong to the finite field GF(q).
[0152] Then, based on the polynomial f(z), N pairs of points (i, f(i)) are determined; wherein i=1, 2, ..., N;
[0153] Finally, the owner generates N subkeys based on N peers (i, f(i)) using the following formula (8):
[0154] R (owner→user)i =g f(i) (8);
[0155] Among them, R (owner→user)i Represents the i-th subkey.
[0156] Step S403, sending the plurality of subkeys to a plurality of first agents respectively; wherein,
[0157] The multiple first agents are used to re-encrypt the owner's outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data;
[0158] The requester end is used to obtain multiple re-encrypted sub-data from multiple second agents to decrypt the obtained multiple re-encrypted sub-data and obtain plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration.
[0159] Here, the proxy refers to an entity that is used to re-encrypt the outsourced ciphertext on the owner side using the re-encryption key so that the data requester side can decrypt it using its private key.
[0160] In some embodiments, multiple first agents may be set up on different servers or terminal devices.
[0161] Here, the owner sends the generated multiple subkeys to the multiple first agents respectively, so that the multiple first agents re-encrypt the outsourced ciphertext data they hold using the received subkeys to obtain multiple re-encrypted subdata.
[0162] In some embodiments, after the owner sends the outsourced ciphertext data of the plaintext data M to the cloud server, the cloud server determines a plurality of first agents from a plurality of agents and sends the outsourced ciphertext data to the plurality of first agents.
[0163] In some embodiments, after the owner sends the outsourced ciphertext data of the plaintext data M to the cloud server, the cloud server determines multiple first agents from the multiple agents based on the available computing power of the multiple agents, and sends the outsourced ciphertext data to the multiple first agents.
[0164] In some embodiments, the owner terminal specifies multiple first agents from multiple agents, and sends identification information of the multiple first agents to the cloud server, so that the cloud server sends the outsourced ciphertext data of the owner terminal to the multiple first agents.
[0165] In some embodiments, the plurality of first agents utilize the received plurality of sub-keys to perform re-encryption operations on the held outsourced ciphertext data in parallel.
[0166] Next, continuing with the previous example, take the i-th agent E i As an example, an embodiment in which each first agent re-encrypts the outsourced ciphertext data it holds is described:
[0167] First, from the above example, we can see that the outsourced ciphertext C owner =(C1, C2), then the i-th agent E i The partially re-encrypted sub-data A can be calculated using the following formula (9):
[0168]
[0169] in, B represents the number threshold of the plurality of second agents selected from the plurality of first agents; δ is a polynomial parameter.
[0170] Then, the i-th agent E i Use the following formula (10) to calculate the corresponding re-encrypted sub-data
[0171]
[0172] Here, using N first agents to parallelly calculate the corresponding re-encrypted sub-data can greatly improve the computing efficiency, thereby improving the efficiency of data sharing. At the same time, N first agents actively re-encrypt without the owner's participation, which can reduce the owner's burden, improve the efficiency of data sharing, and enhance data privacy protection.
[0173] After the plurality of first agents calculate the corresponding re-encrypted sub-data, the server selects a plurality of second agents from the plurality of first agents based on agent arbitration.
[0174] In some embodiments, the server may be set up on a cloud server for storing ciphertext sent by the owner, or may be set up on a server different from the cloud server.
[0175] In some embodiments, the service end maintains the credibility information of the multiple agents, and updates the credibility information of the multiple agents based on the feedback information of the owner end and the requester end to the multiple agents, the performance of the multiple agents, and so on.
[0176] In this way, the server can perform agency arbitration on the multiple first agents based on the credibility information of the multiple first agents, and determine multiple second agents from the multiple first agents according to the agency arbitration result, for example, determine multiple second agents with higher credibility from the multiple first agents.
[0177] Afterwards, the multiple second agents send the re-encrypted sub-data generated by them to the requester end, so that the requester end merges and decrypts the multiple re-encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
[0178] In some embodiments, the requester performs merging on the re-encrypted sub-data sent by the plurality of second agents based on a Lagrange interpolation algorithm.
[0179] For example, the requester uses the following formula (11) to calculate the partial ciphertext C3:
[0180]
[0181] In this way, the final ciphertext obtained by the requester is C u , which can be expressed by the following formula (12):
[0182] C u =(C1,C2,C3) (12).
[0183] In some embodiments, the requester side decrypts the outsourced ciphertext data using the requester side private key and the keyword information received from the owner side.
[0184] Continuing with the above example, the requester uses the following formula (13) to obtain the plaintext data M:
[0185]
[0186] Specifically, the process of calculating the plaintext data M using the above formula (13) is as follows:
[0187]
[0188] In the above embodiment, when the requester end decrypts the final ciphertext, in addition to using the private key of the requester end, it is also necessary to use the keyword information shared by the owner end. Therefore, collusion attacks between the requester end and the cloud server or proxy can be effectively prevented.
[0189] In some embodiments, hardware acceleration technology is used to accelerate the ciphertext synthesis and decryption processing at the requester end. For example, GPU and / or FPGA are used to implement hardware acceleration.
[0190] As can be seen from the above, in the data sharing method applied to the owner side provided by the present application, a re-encryption key is generated in response to data request information of the requester side for outsourced ciphertext data; multiple sub-keys are generated based on the re-encryption key; the multiple sub-keys are sent to multiple first agents respectively; wherein the multiple first agents are used to re-encrypt the outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data; the requester side is used to obtain the multiple re-encrypted sub-data from the multiple second agents, so as to perform decryption on the obtained multiple re-encrypted sub-data and obtain the plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration. In this way, on the one hand, the threshold secret sharing technology is used to divide the re-encryption key into multiple sub-keys and distribute them to different first agents. Only when multiple second agents that meet the preset number requirements send the re-encrypted sub-data to the requester end, the requester end can generate a valid re-encryption key and perform decryption, thereby enhancing the security of data sharing and avoiding the influence of malicious behavior of individual agents on the final decryption result; on the other hand, when using the threshold proxy re-encryption technology to perform data sharing, proxy arbitration is performed on multiple first agents, and multiple second agents that send re-encrypted sub-data to the requester end are determined according to the proxy arbitration results, thereby improving the credibility of the agent sharing data with the requester end; on the other hand, if some malicious second agents generate erroneous re-encrypted sub-data and send them to the requester end, the requester end will not be able to decrypt. Therefore, by merging and decrypting the re-encrypted sub-data of different second agents, it can help determine the malicious second agent, and in the case of multiple requesters, it can also effectively avoid collusion between some requesters and malicious agents. It can be seen that the data sharing method provided by the present application can achieve privacy protection and secure sharing of sensitive data without updating the outsourced ciphertext, which not only reduces the computational overhead, but also avoids collusion attacks between malicious agents and users, and reduces the risk of data leakage, thereby providing cloud-based secure data sharing with high access control.
[0191] In some embodiments, the data sharing method provided by the present application further includes the following steps S404 to S405:
[0192] Step S404, receiving first information input by the owner; the first information represents the credibility evaluation information of the owner on at least one first agent.
[0193] Here, the credibility evaluation information of the owner on at least one first agent refers to the information in which the owner evaluates the first agent based on the historical performance of the first agent.
[0194] In some embodiments, the owner evaluates the credibility of at least one first agent by scoring.
[0195] In some embodiments, the owner evaluates the trustworthiness of the at least one first agent based on the reputation, history, etc. of the at least one first agent.
[0196] For example, the owner gives the first agent a lower credibility evaluation based on the malicious behavior of the first agent in data sharing, for example, gives the first agent a lower credibility score.
[0197] In some embodiments, the first information includes the owner's deletion information of the malicious agent. That is, when the owner determines the malicious agent, the owner can input the first information of deleting the malicious agent at the owner end, thereby realizing arbitration of the malicious agent.
[0198] Step S405, sending the first information to a server; the server is used to perform agent arbitration on the plurality of first agents based on the first information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
[0199] Here, the owner side feeds back the first information input by the owner to the service side, so that agent arbitration is performed on the plurality of first agents based on the credibility evaluation information.
[0200] In some embodiments, the server performs agent arbitration on the plurality of first agents using a linear discriminant model based on the first information fed back by the owner.
[0201] In some embodiments, the server uses the Fisher discriminant model to perform rating arbitration on the multiple first agents to determine the credibility scores of the multiple first agents.
[0202] In this way, the first agent with more malicious behaviors has a lower credibility score; correspondingly, the first agent with fewer malicious behaviors has a higher credibility score.
[0203] In some embodiments, when the server determines multiple second agents from multiple first agents based on the agent arbitration result, the server ranks the multiple first agents according to the credibility score of each first agent, and according to a preset threshold value, grants the multiple third agents with higher rankings the right to send re-encrypted sub-data to the requester end, and revokes the right of the multiple first agents with lower rankings to send re-encrypted sub-data to the requester end.
[0204] In some embodiments, among multiple third agents with the right to send, each third agent is given priority in sending the re-encrypted sub-data based on the credibility score, so that a third agent with a higher credibility can send the re-encrypted sub-data first.
[0205] In some embodiments, the quantity information of the plurality of second agents is determined according to the data processing capabilities of the plurality of first agents.
[0206] Here, the quantity information of the plurality of second agents is determined according to the data processing capabilities of the plurality of first agents, that is, the threshold value information in the threshold agent re-encryption technology.
[0207] For example, when the data processing capabilities of multiple first agents are relatively high, a higher threshold value can be set to utilize more agents to perform data sharing, thereby improving the security of data sharing; on the contrary, when the data processing capabilities of some first agents are relatively low, a lower threshold value can be set to utilize agents with higher data processing capabilities to perform data sharing, thereby achieving the purpose of balancing data sharing speed and data sharing security.
[0208] In the above embodiment, based on proxy arbitration, multiple second proxies are determined from multiple first proxies, and the proxies that send re-encrypted sub-data to the requester can be dynamically updated to ensure that only proxies with higher credibility participate in the data sharing process, thereby improving the security of data sharing; in addition, revoking the right of proxies with lower credibility to send re-encrypted sub-data to the requester can also reduce the cost of decryption calculation on the requester side. At the same time, using the Fisher discriminant model to rate and arbitrate multiple first proxies can improve the accuracy and stability of proxy arbitration.
[0209] In some embodiments, after sending the plurality of subkeys to the plurality of first agents respectively, that is, after the above step S403, at least one of the following steps S406 to S407 is further included:
[0210] Step S406, in response to the time after the multiple sub-keys are respectively sent to the multiple first agents exceeding the time threshold, multiple update information is generated, and the multiple update information is respectively sent to the multiple first agents, so that the multiple first agents respectively update the sub-keys they hold based on the corresponding update information.
[0211] Here, when the time after sending the multiple subkeys to the multiple first agents exceeds the time threshold, the risk of the agent being attacked and the subkeys or re-encrypted subdata held by some first agents being leaked will be greatly increased. Therefore, the owner generates multiple update information so that the multiple first agents can update the subkeys they hold based on the corresponding update information, and then update the re-encrypted subdata.
[0212] Step S407, in response to the presence of at least one malicious agent among the multiple first agents, multiple update information is generated, and the multiple update information is sent to the multiple first agents other than the at least one malicious agent, so that the multiple first agents other than the at least one malicious agent respectively update the sub-keys they hold based on the corresponding update information.
[0213] Here, when some requesters determine that a malicious agent exists among the multiple first agents by decrypting the outsourced ciphertext, the malicious agent information can be synchronized to the owner or the service end. Meanwhile, the owner can also learn about the existence of the malicious agent in other ways.
[0214] In this way, when a malicious agent appears among the multiple first agents, the owner generates multiple update information and sends the multiple update information only to the multiple first agents other than the malicious first agent, thereby preventing the malicious agent from maliciously modifying the outsourced ciphertext data.
[0215] In some embodiments, the owner can generate multiple update information by following the steps below:
[0216] First, for each first agent E i , randomly select a random number ω, and assume that (w im )∈GF(q); where m=1, 2, …, ω;
[0217] Then, for each first agent E i Generator polynomial (15):
[0218] w b (z) = w i1 ·z+w i2 ·z 2 +…+w iω ·z ω (15);
[0219] Finally, for each first agent E i , generate update information j in The update information j can be calculated by the following formula (16): in :
[0220]
[0221] Where n represents the first agent E i Identification among the non-malicious N first agents, therefore, n=1,2,…,N.
[0222] After generating the plurality of update information, the owner terminal sends the plurality of update information to the non-malicious first agent.
[0223] In this way, upon receiving the update information in Afterwards, each first agent calculates the updated subkey based on the following formula (17):
[0224]
[0225] Meanwhile, after updating the subkey, each first agent removes the subkey before updating.
[0226] In the above embodiment, when the subkey sending time exceeds the time threshold, or a malicious agent appears in multiple first agents, the owner end updates the subkey stored on the trusted agent by sending update information, thereby preventing the malicious agent from leaking outsourced ciphertext data or sending erroneous ciphertext data to the requester end, thereby improving the security of data sharing; in addition, by updating the subkey by updating the information without updating the ciphertext, the computing overhead can be reduced, the efficiency of secret updating can be improved, and collusion between the requester end and the malicious agent can be prevented.
[0227] On the other hand, the present application also provides a data sharing method applied to a requester side, which can be executed by a processor of a requester side device. The requester side device may refer to a server, a laptop, a tablet computer, a desktop computer, a smart TV, a mobile device (such as a mobile phone, a portable video player, a personal digital assistant, a dedicated messaging device, a portable gaming device) and other devices with data processing capabilities.
[0228] Figure 5 A schematic diagram of the implementation process of a data sharing method provided in this application, such as Figure 5 As shown, the method includes the following steps S501 to S503:
[0229] Step S501, sending data request information to the owner end; the data request information represents data sharing request information for outsourced ciphertext data of the owner end;
[0230] Step S502, receiving a plurality of re-encrypted sub-data from a plurality of second agents; the plurality of second agents are determined from a plurality of first agents based on agent arbitration; the first agent represents an agent entity holding the outsourced ciphertext data and the sub-key sent by the owner end; the re-encrypted sub-data is obtained after the corresponding first agent encrypts the outsourced ciphertext data using the sub-key;
[0231] Step S503: decrypt the multiple re-encrypted sub-data to obtain plaintext data corresponding to the outsourced ciphertext data.
[0232] In some embodiments, the data sharing method provided by the present application further includes the following steps S504 to S505:
[0233] Step S504, receiving second information input by the requester; the second information represents the requester's credibility evaluation information on at least one first agent;
[0234] Step S505, sending the second information to a server; the server is used to perform agent arbitration on the plurality of first agents based on the second information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
[0235] Here, the requester's credibility evaluation information on at least one first agent refers to information on the requester's evaluation of the first agent based on the first agent's historical performance.
[0236] In some embodiments, the requester evaluates the credibility of at least one first agent by scoring.
[0237] In some embodiments, the requester evaluates the trustworthiness of the at least one first agent based on the reputation, history, etc. of the at least one first agent.
[0238] For example, the requester gives the first agent a lower credibility evaluation based on the malicious behavior of the first agent in data sharing, for example, gives the first agent a lower credibility score.
[0239] In some embodiments, the second information includes the requester's deletion information of the malicious agent. That is, when the requester determines the malicious agent, the requester can input the second information to delete the malicious agent at the requester end, thereby achieving arbitration of the malicious agent.
[0240] The requester side feeds back the second information input by the requester to the service side, so that agent arbitration is performed on the plurality of first agents based on the credibility evaluation information.
[0241] In some embodiments, the server performs agent arbitration on the plurality of first agents using a linear discriminant model based on the first information fed back by the requester.
[0242] It should be noted that the above description of the embodiment of the data sharing method applied to the requester side corresponds to the above embodiment of the data sharing method applied to the owner side. Therefore, for technical details not disclosed in the embodiment of the data sharing method applied to the requester side of the present application, please refer to the description of the embodiment of the data sharing method applied to the owner side of the present application for understanding.
[0243] On the other hand, the present application also provides a data sharing method applied to a server, which can be executed by a processor of a server device, wherein the server device may refer to a device with data processing capability, such as a server, a laptop, a tablet computer, a desktop computer, etc.
[0244] Figure 6 A schematic diagram of the implementation process of a data sharing method provided in this application, such as Figure 6As shown, the method includes the following steps S601 to S603:
[0245] Step S601, receiving first information sent by an owner end and second information sent by a requester end; wherein the owner end and the requester end represent a sending end and a requesting end of outsourced ciphertext data respectively; the first information and the second information represent credibility evaluation information of the owner end and the requester end on at least one first agent respectively;
[0246] Step S602, performing proxy arbitration on the plurality of first agents based on the first information and the second information to obtain a proxy arbitration result;
[0247] Step S603, based on the agent arbitration result, multiple second agents are determined from the multiple first agents, so that the multiple second agents respectively send the re-encrypted sub-data they hold to the requester end; wherein the re-encrypted sub-data represents the data obtained by the corresponding first agent after re-encrypting the outsourced ciphertext data using the sub-key shared by the owner end.
[0248] In some embodiments, based on the first information and the second information, proxy arbitration is performed on the multiple first agents to obtain a proxy arbitration result, that is, the above step S602 can be implemented as the following steps S6021 to S6022:
[0249] Step S6021, based on the first information and the second information, using a linear discriminant model, determining the credibility data of the plurality of first agents;
[0250] Step S6022: Determine the proxy arbitration result based on the credibility data.
[0251] In some embodiments, the credibility data represents a credibility score of the corresponding first agent;
[0252] The determining of the proxy arbitration result based on the credibility data, that is, the above step S6022, can be implemented as steps S6023 to S6025:
[0253] Step S6023, based on the credibility scores, determining a plurality of third agents with the highest credibility scores from the plurality of first agents;
[0254] Step S6024, setting the first proxies among the plurality of first proxies except the plurality of third proxies to a state of not having the right to send the re-encrypted sub-data to the requesting end;
[0255] Step S6025: determining the priorities of the plurality of third agents in sending the re-encrypted sub-data to the requesting end based on the credibility scores of the plurality of third agents, so as to determine the plurality of second agents from the plurality of third agents based on the priorities.
[0256] In some embodiments, the method further comprises the following steps S6026:
[0257] Based on the data processing capabilities of the plurality of first agents, quantity information of the plurality of second agents is determined.
[0258] It should be noted that the above description of the embodiment of the data sharing method applied to the server side corresponds to the above embodiment of the data sharing method applied to the owner side and the requester side. Therefore, for technical details not disclosed in the embodiment of the data sharing method applied to the server side of the present application, please refer to the description of the embodiment of the data sharing method applied to the owner side and the requester side of the present application for understanding.
[0259] On the other hand, the present application also provides a data sharing method applied to an agent, which can be executed by a processor of an agent device, wherein the agent device may refer to a device with data processing capability, such as a server, a laptop, a tablet computer, a desktop computer, etc.
[0260] Figure 7 A schematic diagram of the implementation process of a data sharing method provided in this application, such as Figure 7 As shown, the method includes the following steps S701 to S703:
[0261] Step S701, receiving a subkey sent by an owner end; the subkey is generated by the owner end based on a re-encryption key;
[0262] Step S702, using the subkey, re-encrypting the outsourced ciphertext data held by the agent to obtain re-encrypted sub-data; the outsourced ciphertext data is obtained after the owner end encrypts the plaintext data;
[0263] Step S703: In response to the proxy arbitration result of the server, determine whether to send the re-encrypted sub-data to the requester.
[0264] In some embodiments, the method further includes the following steps S704 to S706:
[0265] Step S704, receiving update information sent by the owner terminal;
[0266] Step S705, using the update information to update the subkey;
[0267] Step S706: Re-encrypt the outsourced ciphertext data using the updated sub-key to obtain updated re-encrypted sub-data.
[0268] It should be noted that the above description of the embodiment of the data sharing method applied to the agent corresponds to the above embodiment of the data sharing method applied to the owner side, the requester side and the server side. Therefore, for the technical details not disclosed in the embodiment of the data sharing method applied to the agent in the present application, please refer to the description of the embodiment of the data sharing method applied to the owner side, the requester side and the server side in the present application for understanding.
[0269] On the other hand, the present application also provides a data sharing system. Figure 8 As shown, the data sharing system includes: an owner end 810, a requester end 820, a service end 830 and a plurality of first agents 840; wherein,
[0270] The requester end 820 sends data request information to the owner end 810; the data request information represents data sharing request information for the outsourced ciphertext data of the owner end 810;
[0271] In response to the data request information, the owner terminal 810 generates a re-encryption key; based on the re-encryption key, generates a plurality of sub-keys; sends the plurality of sub-keys to the plurality of first agents 840 respectively; each of the first agents 840 holds the outsourced ciphertext data;
[0272] The plurality of first agents 840 re-encrypt the held outsourced ciphertext data based on the plurality of sub-keys to obtain a plurality of re-encrypted sub-data;
[0273] The server 830 performs proxy arbitration on the plurality of first agents 840, and determines a plurality of second agents from the plurality of first agents 840 based on the proxy arbitration result, so that the plurality of second agents respectively send the held re-encrypted sub-data to the requester 820;
[0274] The requester end 820 performs decryption processing on the received multiple heavily encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
[0275] The description of the above system embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. In some embodiments, the functions or units included in the system provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiment. For technical details not disclosed in the system embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0276] Next, combine Fig. 9, an embodiment of performing data sharing using the data sharing system provided by the present application is described.
[0277] In step S901, the owner terminal 910 uploads the ciphertext corresponding to the plaintext data M to the server terminal 920;
[0278] Here, the server 920 has the functions of both data storage and proxy arbitration.
[0279] In step S902, the requester end 930 searches the server end 920 for the ciphertext uploaded by the owner end 910; if yes, step S903 is executed; if no, the search is stopped and waiting;
[0280] Step S903, the requester end 930 sends data request information to the owner end 910 based on the keyword k related to the plaintext data M shared by the owner end 910; the data request information includes the public key information of the requester end 930;
[0281] Step S904, the server 920 sends the ciphertext data corresponding to the plaintext data M to N first agents 940;
[0282] Step S905, the owner terminal 910 sends the N subkeys to the N first agents 940 respectively;
[0283] Here, the N subkeys are split from the re-encryption key; the re-encryption key is generated by the owner end 910 using the owner end private key and the requester end public key.
[0284] Step S906, each first agent 940 re-encrypts the ciphertext it holds using the received sub-key to obtain re-encrypted sub-data;
[0285] Step S907 , the server 920 performs proxy arbitration on the N first agents 940 to determine B first agents 940 having the sending right from the N first agents 940 ;
[0286] Step S908, B first agents 940 with the sending right send the heavily encrypted sub-data they hold to the requester terminal 930;
[0287] In step S909 , the requester end 930 performs a merging process on the received re-encrypted sub-data of the B first agents 940 , and uses the private key of the requester end 930 and the keyword k to perform a decryption process on the merged ciphertext to obtain the plaintext data M.
[0288] Based on the aforementioned embodiments, the present application provides a data sharing device arranged on an owner-side device, which includes the units included and the modules included in the units, and can be implemented by a processor in a computer device; of course, it can also be implemented by a specific logic circuit; in the implementation process, the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP) or an FPGA, etc.
[0289] Fig.10 A schematic diagram of the structure of a data sharing device provided in this application is shown in FIG. Fig.10 As shown, the data sharing device 1000 includes: a first generating module 1010, a second generating module 1020 and a first sending module 1030, wherein:
[0290] A first generating module 1010, for generating a re-encryption key based on the owner-side information and the requester-side information;
[0291] A second generation module 1020, configured to generate a plurality of sub-keys based on the re-encryption key;
[0292] The first sending module 1030 is used to send the multiple subkeys to multiple first agents respectively; wherein,
[0293] The multiple first agents are used to re-encrypt the owner's outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data;
[0294] The requester end is used to obtain multiple re-encrypted sub-data from multiple second agents to decrypt the obtained multiple re-encrypted sub-data and obtain plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration.
[0295] In some embodiments, the data sharing device 1000 further includes:
[0296] An input module 1040 is used to receive first information input by an owner; the first information represents the credibility evaluation information of the owner on at least one first agent;
[0297] The second sending module 1050 is used to send the first information to a server; the server is used to perform agent arbitration on the multiple first agents based on the first information, so as to determine the multiple second agents from the multiple first agents based on the agent arbitration result.
[0298] In some embodiments, the apparatus 1000 further includes a third generating module 1060; the third generating module 1060 is configured to perform at least one of the following:
[0299] In response to a time period after the plurality of subkeys are respectively sent to the plurality of first agents exceeding a time period threshold, generating a plurality of update messages, and sending the plurality of update messages to the plurality of first agents respectively, so that the plurality of first agents respectively update the subkeys they hold based on the corresponding update messages;
[0300] In response to the presence of at least one malicious agent among the multiple first agents, multiple update information is generated, and the multiple update information is sent to the multiple first agents other than the at least one malicious agent, so that the multiple first agents other than the at least one malicious agent respectively update the sub-keys they hold based on the corresponding update information.
[0301] Based on the aforementioned embodiments, the present application provides a data sharing device arranged on a requester-side device, which includes the units included and the modules included in the units, and can be implemented by a processor in a computer device; of course, it can also be implemented by a specific logic circuit; during the implementation process, the processor can be a CPU, MPU, DSP or FPGA, etc.
[0302] Fig.11 A schematic diagram of the structure of a data sharing device provided in this application is shown in FIG. Fig.11 As shown, the data sharing device 1100 includes: a second sending module 1110, a first receiving module 1120 and a decryption module 1130, wherein:
[0303] The second sending module 1110 is used to send data request information to the owner end; the data request information represents data sharing request information for the outsourced ciphertext data of the owner end;
[0304] The first receiving module 1120 is used to receive a plurality of re-encrypted sub-data from a plurality of second agents; the plurality of second agents are determined from a plurality of first agents based on agent arbitration; the first agent represents an agent entity holding the outsourced ciphertext data and the sub-key sent by the owner end; the re-encrypted sub-data is obtained after the corresponding first agent encrypts the outsourced ciphertext data using the sub-key;
[0305] The decryption module 1130 is used to perform decryption processing on the multiple heavily encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
[0306] In some embodiments, the apparatus 1100 further includes:
[0307] The input module 1140 is used to receive second information input by the requester; the second information represents the credibility evaluation information of the requester on at least one first agent;
[0308] The information sending module 1150 is used to send the second information to a server; the server is used to perform agent arbitration on the plurality of first agents based on the second information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
[0309] Based on the aforementioned embodiments, the present application provides a data sharing device arranged on a server-side device, which includes the units included and the modules included in the units, and can be implemented by a processor in a computer device; of course, it can also be implemented by a specific logic circuit; in the implementation process, the processor can be a CPU, MPU, DSP or FPGA, etc.
[0310] Fig.12 A schematic diagram of the structure of a data sharing device provided in this application is shown in FIG. Fig.12 As shown, the data sharing device 1200 includes: a second receiving module 1210, an arbitration module 1220 and a first determining module 1230, wherein:
[0311] The second receiving module 1210 is used to receive the first information sent by the owner end and the second information sent by the requester end; wherein the owner end and the requester end represent the sending end and the requesting end of the outsourced ciphertext data respectively; the first information and the second information represent the credibility evaluation information of the owner end and the requester end on at least one first agent respectively;
[0312] An arbitration module 1220, configured to perform agent arbitration on the plurality of first agents based on the first information and the second information, and obtain an agent arbitration result;
[0313] The first determination module 1230 is used to determine multiple second agents from the multiple first agents based on the agent arbitration result, so that the multiple second agents respectively send the re-encrypted sub-data they hold to the requester end; wherein the re-encrypted sub-data represents the corresponding first agent using the sub-key shared by the owner end to re-encrypt the outsourced ciphertext data.
[0314] In some embodiments, the arbitration module 1220 is used to:
[0315] Based on the first information and the second information, using a linear discriminant model, determining the credibility data of the plurality of first agents;
[0316] Based on the credibility data, the proxy arbitration result is determined.
[0317] In some embodiments, the credibility data represents a credibility score of the corresponding first agent;
[0318] The arbitration module 1220 is used to:
[0319] Based on the credibility scores, determining a plurality of third agents having the highest credibility scores from among the plurality of first agents;
[0320] Setting the first agents among the plurality of first agents except the plurality of third agents to a state where they are not authorized to send the re-encrypted sub-data to the requesting end;
[0321] Based on the credibility scores of the plurality of third agents, priorities of the plurality of third agents in sending the re-encrypted sub-data to the requesting end are determined, so as to determine the plurality of second agents from the plurality of third agents based on the priorities.
[0322] In some embodiments, the apparatus 1200 further includes:
[0323] The second determining module 1240 is configured to determine quantity information of the plurality of second agents based on data processing capabilities of the plurality of first agents.
[0324] Based on the aforementioned embodiments, the present application provides a data sharing device provided on a proxy device, which includes the units included and the modules included in the units, and can be implemented by a processor in a computer device; of course, it can also be implemented by a specific logic circuit; during the implementation process, the processor can be a CPU, MPU, DSP or FPGA, etc.
[0325] Fig.13 A schematic diagram of the structure of a data sharing device provided in this application is shown in FIG. Fig.13 As shown, the data sharing device 1300 includes: a third receiving module 1310, a re-encryption module 1320 and a second determination module 1330, wherein:
[0326] The third receiving module 1310 is used to receive a subkey sent by the owner end; the subkey is generated by the owner end based on the re-encryption key;
[0327] The re-encryption module 1320 is used to re-encrypt the outsourced ciphertext data held by the agent using the subkey to obtain re-encrypted subdata; the outsourced ciphertext data is obtained after the owner end encrypts the plaintext data;
[0328] The second determination module 1330 is used to determine whether to send the re-encrypted sub-data to the requester end in response to the proxy arbitration result of the server end.
[0329] In some embodiments, the apparatus 1300 further includes:
[0330] The fourth receiving module 1340 is used to receive the update information sent by the owner terminal;
[0331] A first updating module 1350, configured to update the subkey using the update information;
[0332] The second updating module 1360 is used to re-encrypt the outsourced ciphertext data using the updated sub-key to obtain updated re-encrypted sub-data.
[0333] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. In some embodiments, the functions or modules included in the device provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0334] It should be noted that in the embodiment of the present application, if the above-mentioned data sharing method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the relevant technology can be embodied in the form of a software product, which is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific hardware, software or firmware, or any combination of hardware, software, and firmware.
[0335] An embodiment of the present application provides a computer device, including a memory and a processor, wherein the memory stores a computer program that can be run on the processor, and when the processor executes the program, some or all of the steps in the above method are implemented.
[0336] The embodiment of the present application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, some or all of the steps in the above method are implemented. The computer-readable storage medium can be transient or non-transient.
[0337] An embodiment of the present application provides a computer program, including a computer-readable code. When the computer-readable code is run in a computer device, a processor in the computer device executes some or all of the steps for implementing the above method.
[0338] The embodiment of the present application provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program, and when the computer program is read and executed by a computer, some or all of the steps in the above method are implemented. The computer program product can be implemented specifically by hardware, software or a combination thereof. In some embodiments, the computer program product is specifically embodied as a computer storage medium, and in other embodiments, the computer program product is specifically embodied as a software product, such as a software development kit (SDK) and the like.
[0339] It should be noted here that the description of the various embodiments above tends to emphasize the differences between the various embodiments, and the same or similar aspects can be referenced to each other. The description of the above device, storage medium, computer program and computer program product embodiments is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the embodiments of the device, storage medium, computer program and computer program product of this application, please refer to the description of the method embodiment of this application for understanding.
[0340] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the serial number of each step / process mentioned above does not mean the order of execution, and the execution order of each step / process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. The serial numbers of the embodiments of the present application mentioned above are for description only and do not represent the advantages and disadvantages of the embodiments.
[0341] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
[0342] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0343] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units; they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0344] In addition, all functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may be a separate unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0345] A person skilled in the art can understand that all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM), magnetic disks or optical disks, etc., various media that can store program codes.
[0346] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can essentially or in other words, the part that contributes to the relevant technology can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0347] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application.
Claims
1. A data sharing method, characterized in that: Applied to the owner side, including: In response to a data request message from the requester for the outsourced ciphertext data, generating a re-encryption key; Based on the re-encryption key, generate multiple sub-keys; The multiple subkeys are sent to multiple first agents respectively; wherein, The multiple first agents are used to re-encrypt the outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data; The requester end is used to obtain multiple re-encrypted sub-data from multiple second agents to decrypt the obtained multiple re-encrypted sub-data and obtain plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration.
2. The method according to claim 1, characterized in that The method further comprises: Receiving first information input by an owner; the first information represents the credibility evaluation information of the owner on at least one first agent; The first information is sent to a server; the server is used to perform agent arbitration on the plurality of first agents based on the first information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
3. The method according to claim 1, characterized in that: After sending the plurality of subkeys to the plurality of first agents respectively, the method further includes at least one of the following: In response to a time period after the plurality of subkeys are respectively sent to the plurality of first agents exceeding a time period threshold, generating a plurality of update messages, and sending the plurality of update messages to the plurality of first agents respectively, so that the plurality of first agents respectively update the subkeys they hold based on the corresponding update messages; In response to the presence of at least one malicious agent among the multiple first agents, multiple update information is generated, and the multiple update information is sent to the multiple first agents other than the at least one malicious agent, so that the multiple first agents other than the at least one malicious agent respectively update the sub-keys they hold based on the corresponding update information.
4. A data sharing method, characterized in that: Applied to the requester side, including: Sending data request information to the owner end; the data request information represents data sharing request information for the outsourced ciphertext data of the owner end; receiving a plurality of re-encrypted sub-data from a plurality of second agents; the plurality of second agents being determined from a plurality of first agents based on agent arbitration; the first agent representing an agent entity holding the outsourced ciphertext data and the sub-key sent by the owner end; the re-encrypted sub-data being obtained after the corresponding first agent encrypts the outsourced ciphertext data using the sub-key; Decryption processing is performed on the multiple heavily encrypted sub-data to obtain plaintext data corresponding to the outsourced ciphertext data.
5. The method according to claim 4, characterized in that The method further comprises: receiving second information input by a requester; the second information represents the credibility evaluation information of the requester on at least one first agent; The second information is sent to a server; the server is used to perform agent arbitration on the plurality of first agents based on the second information, so as to determine the plurality of second agents from the plurality of first agents based on the agent arbitration result.
6. A data sharing method, characterized in that: Applied to the server, including: Receiving first information sent by an owner end and second information sent by a requester end; wherein the owner end and the requester end represent a sending end and a requesting end of outsourced ciphertext data respectively; the first information and the second information represent credibility evaluation information of the owner end and the requester end on at least one first agent respectively; Based on the first information and the second information, performing proxy arbitration on the plurality of first agents to obtain a proxy arbitration result; Based on the agent arbitration result, multiple second agents are determined from the multiple first agents, so that the multiple second agents respectively send the re-encrypted sub-data they hold to the requester end; wherein the re-encrypted sub-data represents the outsourced ciphertext data re-encrypted by the corresponding first agent using the sub-key shared by the owner end.
7. The method according to claim 6, characterized in that The performing proxy arbitration on the plurality of first agents based on the first information and the second information to obtain a proxy arbitration result includes: Based on the first information and the second information, using a linear discriminant model, determining the credibility data of the plurality of first agents; Based on the credibility data, the proxy arbitration result is determined.
8. The method according to claim 7, characterized in that The credibility data represents a credibility score of the corresponding first agent; The determining the proxy arbitration result based on the credibility data includes: Based on the credibility scores, determining a plurality of third agents having the highest credibility scores from among the plurality of first agents; Setting the first agents among the plurality of first agents except the plurality of third agents to a state where they are not authorized to send the re-encrypted sub-data to the requesting end; Based on the credibility scores of the plurality of third agents, priorities of the plurality of third agents in sending the re-encrypted sub-data to the requesting end are determined, so as to determine the plurality of second agents from the plurality of third agents based on the priorities.
9. The method according to claim 7, characterized in that: Also includes: Based on the data processing capabilities of the plurality of first agents, quantity information of the plurality of second agents is determined.
10. A data sharing method, characterized in that: Applies to proxies, including: Receiving a subkey sent by an owner end; the subkey is generated by the owner end based on a re-encryption key; Using the subkey, re-encrypt the outsourced ciphertext data held by the agent to obtain re-encrypted sub-data; the outsourced ciphertext data is obtained after the owner end encrypts the plaintext data; In response to the proxy arbitration result of the service end, it is determined whether to send the re-encrypted sub-data to the requester end.
11. The method according to claim 10, characterized in that Also includes: Receiving update information sent by the owner terminal; Using the update information, updating the subkey; The outsourced ciphertext data is re-encrypted using the updated sub-key to obtain updated re-encrypted sub-data.
12. A data sharing system, comprising: An owner end, a requester end, a service end and a plurality of first agents; wherein, The requester terminal sends data request information to the owner terminal; the data request information represents data sharing request information for the outsourced ciphertext data of the owner terminal; In response to the data request information, the owner generates a re-encryption key; based on the re-encryption key, generates a plurality of sub-keys; sends the plurality of sub-keys to the plurality of first agents respectively; each of the first agents holds the outsourced ciphertext data; The plurality of first agents re-encrypt the held outsourced ciphertext data based on the plurality of sub-keys to obtain a plurality of re-encrypted sub-data; The server performs proxy arbitration on the plurality of first agents, and determines a plurality of second agents from the plurality of first agents based on the proxy arbitration result, so that the plurality of second agents respectively send the held re-encrypted sub-data to the requester; The requester performs decryption processing on the received multiple heavily encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
13. A data sharing device, characterized in that: Set on the owner's device, including: A first generation module, used to generate a re-encryption key based on the owner-side information and the requester-side information; A second generation module, used to generate multiple sub-keys based on the re-encryption key; The first sending module is used to send the multiple subkeys to multiple first agents respectively; wherein, The multiple first agents are used to re-encrypt the owner's outsourced ciphertext data using the obtained sub-keys to obtain multiple re-encrypted sub-data; The requester end is used to obtain multiple re-encrypted sub-data from multiple second agents to decrypt the obtained multiple re-encrypted sub-data and obtain plaintext data corresponding to the outsourced ciphertext; the multiple second agents are determined from the multiple first agents based on agent arbitration.
14. A data sharing device, characterized in that: Set on the requester device, including: A second sending module is used to send data request information to the owner end; the data request information represents data sharing request information for the outsourced ciphertext data of the owner end; A first receiving module is used to receive a plurality of re-encrypted sub-data from a plurality of second agents; the plurality of second agents are determined from a plurality of first agents based on agent arbitration; the first agent represents an agent entity holding the outsourced ciphertext data and the sub-key sent by the owner end; the re-encrypted sub-data is obtained after the corresponding first agent encrypts the outsourced ciphertext data using the sub-key; The decryption module is used to perform decryption processing on the multiple heavily encrypted sub-data to obtain the plaintext data corresponding to the outsourced ciphertext data.
15. A data sharing device, characterized in that: Set on the server device, including: A second receiving module is used to receive first information sent by the owner end and second information sent by the requester end; wherein the owner end and the requester end represent the sending end and the requesting end of the outsourced ciphertext data respectively; the first information and the second information represent the credibility evaluation information of the owner end and the requester end on at least one first agent respectively; an arbitration module, configured to perform agent arbitration on the plurality of first agents based on the first information and the second information, and obtain an agent arbitration result; The first determination module is used to determine multiple second agents from the multiple first agents based on the agent arbitration result, so that the multiple second agents respectively send the re-encrypted sub-data they hold to the requester end; wherein the re-encrypted sub-data represents the corresponding first agent using the sub-key shared by the owner end to re-encrypt the outsourced ciphertext data.
16. A data sharing device, characterized in that: The settings on the proxy device include: A third receiving module is used to receive a subkey sent by the owner end; the subkey is generated by the owner end based on the re-encryption key; A re-encryption module, used to re-encrypt the outsourced ciphertext data held by the agent using the subkey to obtain re-encrypted sub-data; the outsourced ciphertext data is obtained after the owner end encrypts the plaintext data; The second determination module is used to determine whether to send the re-encrypted sub-data to the requester end in response to the proxy arbitration result of the service end.
17. A terminal device, characterized in that: It comprises a memory and a processor, wherein the memory stores a computer program executable by the processor, and when the processor executes the computer program, the data sharing method described in any one of claims 1 to 3 or 4 to 5 is executed.
18. A server device, characterized in that: It comprises a memory and a processor, wherein the memory stores a computer program executable by the processor, and when the processor executes the computer program, the data sharing method according to any one of claims 6 to 9 is executed.
19. A proxy device, characterized in that: It comprises a memory and a processor, wherein the memory stores a computer program executable by the processor, and when the processor executes the computer program, the data sharing method according to any one of claims 10 to 11 is executed.
20. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed, the steps of the data sharing method according to any one of claims 1 to 3, 4 to 5, 6 to 9 or 10 to 11 are implemented.
21. A computer program product comprising a computer program or instructions, characterized in that When the computer program or instruction is executed by a processor, the steps of the data sharing method described in any one of claims 1 to 3, 4 to 5, 6 to 9 or 10 to 11 are implemented.