Data sharing method, device, terminal and storage medium

Through the encryption information sharing and grouping policy between the initiator node and the participant node, the existing privacy unification method damages computing efficiency when ensuring security, and achieves efficient data privacy protection.

CN113536336BActive Publication Date: 2025-03-18HANGZHOU QULIAN TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110674767.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-17
Publication Date
2025-03-18
Estimated Expiration
2041-06-17

AI Technical Summary

Technical Problem

The existing privacy unification method damages data computing efficiency while ensuring the security of the algorithm.

Method used

Through the sharing of encrypted information between the initiator node and the participant node, combined with the grouping policy, the participant nodes are allowed to encrypt the shared data in turn, and the initiator nodes ultimately decrypt the encrypted shared data based on the encrypted information.

Benefits of technology

On the premise of ensuring the security of the algorithm, data computing efficiency is improved and privacy protection during data flow is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113536336B_ABST
    Figure CN113536336B_ABST
Patent Text Reader

Abstract

The present application is applicable to the field of blockchain technology, and provides a data sharing method, device, terminal and storage medium, wherein the method includes: the initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task; receiving the encrypted shared data sent by the first group of participant nodes in the N groups of participant nodes, and decrypting the encrypted shared data based on the encrypted information to obtain the shared data. The scheme can improve the computing efficiency while ensuring the security of the algorithm.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of blockchain technology, and in particular, relates to a data sharing method, device, terminal and storage medium. Background Art

[0002] Data is a very important national resource, but due to security, compliance and some historical reasons, data has been piled up in various companies, forming data islands. How to make data flow safely is an issue that needs to be studied at this stage.

[0003] In the existing technology, federated computing, especially privacy union in federated computing, is a solution to this problem, which can realize the flow of value without leaving the warehouse.

[0004] For example, if an institution A needs the data union of institutions B, C, and D, institution A can obtain the union of all data sets after using the privacy union, but cannot know which institution each element in the set comes from, thus achieving secure data flow. This plays an important role in application scenarios such as blacklist sharing and risk analysis.

[0005] However, in the process of obtaining the merged set of data sets, existing privacy unions usually need to adopt complex cryptographic encryption algorithms to avoid privacy leakage. The algorithms are complex in structure and have low computational efficiency, which impairs the computational efficiency while ensuring the security of the algorithms. Summary of the invention

[0006] The embodiments of the present application provide a data sharing method, device, terminal and storage medium to solve the problem in the prior art that the privacy union method compromises the data calculation efficiency while ensuring the security of the algorithm.

[0007] A first aspect of an embodiment of the present application provides a data sharing method, including:

[0008] The initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task; N≥2;

[0009] Receiving encrypted shared data sent by a participant node of a first group of the N groups of participant nodes, wherein the encrypted shared data is generated by sequentially encrypting the shared data based on the encryption information by any participant node determined in each group, and the first group is the group that encrypts the shared data last;

[0010] Based on the encryption information, the encrypted shared data is decrypted to obtain the shared data.

[0011] A second aspect of an embodiment of the present application provides a data sharing device, including:

[0012] An information sharing module is used for the initiator node to share encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task; N≥2;

[0013] a data receiving module, configured to receive encrypted shared data sent by a participant node of a first group among the N groups of participant nodes, wherein the encrypted shared data is generated by sequentially encrypting the shared data by any participant node determined in each group based on the encryption information, and the first group is the group that performs the final encryption on the shared data;

[0014] A decryption module is used to decrypt the encrypted shared data based on the encryption information to obtain the shared data.

[0015] A third aspect of an embodiment of the present application provides a terminal, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method described in the first aspect when executing the computer program.

[0016] A fourth aspect of an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method described in the first aspect are implemented.

[0017] A fifth aspect of the present application provides a computer program product, which, when executed on a terminal, enables the terminal to execute the steps of the method described in the first aspect.

[0018] As can be seen from the above, in the embodiment of the present application, after the initiator node shares encrypted information with the N groups of participant nodes involved in the data sharing task based on the data sharing task, the N groups of participant nodes encrypt the shared data in turn based on the encrypted information from any participant node determined in each group to obtain encrypted shared data, which is sent to the initiator node by the participant node in the last encryption group, and the initiator node decrypts the encrypted shared data based on the shared encrypted information to obtain the shared data. This process combines the encryption process with the grouping strategy, and encrypts the shared data in turn by grouping the participant nodes and selecting the participant nodes in units of grouping. Finally, the initiator node decrypts the encrypted shared data based on the encrypted information, thereby ensuring privacy protection during data flow and improving computing efficiency while ensuring the security of the algorithm. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0020] Figure 1 This is the process of the data sharing method provided in the embodiment of the present application Figure 1 ;

[0021] Figure 2 This is the process of the data sharing method provided in the embodiment of the present application Figure 2 ;

[0022] Figure 3 is a structural diagram of a data sharing device provided in an embodiment of the present application;

[0023] Figure 4 It is a structural diagram of a terminal provided in an embodiment of the present application. DETAILED DESCRIPTION

[0024] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.

[0025] It should be understood that when used in this specification and the appended claims, the term "comprising" indicates the presence of described features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.

[0026] It should also be understood that the terms used in this application specification are only for the purpose of describing specific embodiments and are not intended to limit the application. As used in this application specification and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an" and "the" are intended to include plural forms.

[0027] It should be further understood that the term “and / or” used in the specification and appended claims refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0028] As used in this specification and the appended claims, the term "if" may be interpreted as "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrases "if it is determined" or "if [described condition or event] is detected" may be interpreted as meaning "upon determination" or "in response to determining" or "upon detection of [described condition or event]" or "in response to detecting [described condition or event]," depending on the context.

[0029] In a specific implementation, the terminal described in the embodiments of the present application includes, but is not limited to, other portable devices such as mobile phones, laptop computers, or tablet computers with touch-sensitive surfaces (e.g., touch screen displays and / or touch pads). It should also be understood that in some embodiments, the device is not a portable communication device, but a desktop computer with a touch-sensitive surface (e.g., touch screen displays and / or touch pads).

[0030] In the following discussion, a terminal including a display and a touch-sensitive surface is described. However, it should be understood that the terminal may include one or more other physical user interface devices such as a physical keyboard, mouse and / or joystick.

[0031] The terminal supports various applications, such as one or more of the following: a drawing application, a presentation application, a word processing application, a website creation application, a disk burning application, a spreadsheet application, a game application, a telephone application, a video conferencing application, an email application, an instant messaging application, a workout support application, a photo management application, a digital camera application, a digital camcorder application, a web browsing application, a digital music player application, and / or a digital video player application.

[0032] Various applications that can be executed on the terminal can use at least one common physical user interface device such as a touch-sensitive surface. One or more functions of the touch-sensitive surface and corresponding information displayed on the terminal can be adjusted and / or changed between applications and / or within corresponding applications. In this way, the common physical architecture of the terminal (e.g., the touch-sensitive surface) can support various applications with user interfaces that are intuitive and transparent to the user.

[0033] It should be understood that the size of the serial numbers of each step in this embodiment does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of this application.

[0034] In order to illustrate the technical solution described in this application, a specific embodiment is provided below for illustration.

[0035] See also Figure 1 , Figure 1 This is the process of the data sharing method provided in the embodiment of the present application Figure 1 .like Figure 1 As shown, a data sharing method comprises the following steps:

[0036] Step 101: The initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task.

[0037] Among them, N≥2, that is, the participating nodes are grouped into at least two groups.

[0038] The encryption information is used to enable encryption and decryption operations of shared data between the initiator node and the participant nodes.

[0039] Among them, the shared data corresponding to the data sharing task is the data shared by N groups of participating nodes to the initiator node. During the shared data transmission process, the participating nodes need to encrypt and transmit it, and the initiator node needs to decrypt the encrypted shared data to obtain the shared data.

[0040] When the encrypted information is shared between the initiator node and the participant node, it may specifically include: the participant node shares the decrypted data for decryption with the initiator node, or the initiator node shares the encrypted data for encryption with the participant node. When the decrypted data for decryption is shared with the initiator node, the participant node locally retains the encrypted data for encryption corresponding to the decrypted data; when the encrypted data for encryption is shared with the participant node, the initiator node locally retains the decrypted data for decryption corresponding to the encrypted data.

[0041] On the one hand, as an optional implementation, the initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including:

[0042] Based on the data sharing task, the initiator node divides the participant nodes involved in the data sharing task into N groups; based on the symmetric encryption algorithm, generates N private keys as encryption information, and distributes the N private keys to each participant node in the N groups.

[0043] In this process, a method for private union based on symmetric encryption is implemented, specifically, the initiator node divides the participating nodes into groups, and shares the N private keys generated by itself as encrypted information to each participating node in the N groups.

[0044] When the participating nodes are divided into groups, they can be divided evenly according to the number of participating nodes, that is, the number of participating nodes contained in each group after the group division is the same. Alternatively, different weights can be given to different groups, and the corresponding number of participating nodes can be divided into the same group according to the weights.

[0045] The generation of encrypted information is also achieved by the initiator node. Specifically, after N private keys are generated based on the symmetric encryption algorithm, the N private keys are distributed to each participant node in the N groups. During the specific distribution, one private key corresponds to a group of participant nodes, and the same private key is distributed to each participant node in the same group. The private keys distributed to the participant nodes in different groups are different.

[0046] Among them, the data sharing task is triggered by the initiator node. The participating nodes involved in the data sharing task can be specified in advance, or determined by the data that needs to be shared, that is, the nodes storing the data that needs to be shared will be determined as the participating nodes involved in the data sharing task.

[0047] In the specific implementation process, assume that there are X participating nodes, each of which has its own data set X. i , the initiator node needs to obtain all X i However, it is not possible to know which participant node each data element in the specific collection comes from, and the participating nodes cannot know the specific data values ​​of each other.

[0048] At this time, the initiator node is required to randomly divide the participating nodes into N groups, and the initiator node randomly generates N different private keys sk1, sk2, ..., sk n , and then distribute sk to all participating nodes in group i i , and inform each participant node of the grouping of all participant nodes. Participant nodes in different groups cannot know each other's private key values.

[0049] Furthermore, after the participating nodes in N groups obtain the private key distributed by the initiator node, one participating node is selected in each group to encrypt the data to be shared by the participating nodes selected in other groups. The specific operations are as follows:

[0050] For a participant node in group i, for the element x to be shared in the data set of the participant node, first calculate y = x + sk i , and then send y to any participant node in any other group, such as a participant node in group j. After receiving y, the participant node in group j will calculate z = y + sk j, and then send it to any participant in the group that has not encrypted the data. At this time, the groups that have not encrypted the data are all groups except group i and group j. If any participant node in group k is a participant node in the last group that encrypted the data, then the participant node will send the encrypted data to the initiator node. After receiving the encrypted data, the initiator node will use the private keys sk1, sk2, ..., sk n Decrypt it to obtain data x, that is, the aforementioned element x to be shared, to ensure privacy protection during data flow and improve computing efficiency while ensuring the security of the algorithm.

[0051] The data received by the initiator node is the information encrypted by any randomly selected participating node in each group. If the initial data to be shared is x, then the encrypted data finally obtained by the initiator node is res = x + ∑ i sk i , i∈[1,n], at this time the initiator node only needs to calculate res-∑ i sk i Then x can be restored.

[0052] The data to be shared at each transmission may be a data element in the data set of a certain participant node, and the data sets of all participant nodes in all groups are shared through multiple transmissions. Alternatively, the data to be shared at each transmission may be a whole formed by the data set of one participant node, and the data sets of all participant nodes in different groups are shared.

[0053] During the implementation of the above algorithm, after the participant node of group j obtains y, it cannot restore x because it does not have the corresponding private key. The same is true for all subsequent participant nodes, so there is no risk of privacy leakage when data flows between participant nodes. After the initiator node obtains the encrypted shared information from group k, because the flow of data x from participant node i to participant node k is random, the initiator cannot know which participant the data x comes from. Therefore, this algorithm meets the privacy protection requirements during data flow, while avoiding complex encryption structures and improving computing efficiency.

[0054] On the other hand, as an optional implementation, the initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including:

[0055] Based on the data sharing task, the initiator node divides the participant nodes involved in the data sharing task into N groups; based on the asymmetric encryption algorithm, it generates N public-private key pairs, and uses the public keys in the N public-private key pairs as encryption information, which are distributed to each participant node in the N groups.

[0056] In this process, a method for private union based on asymmetric encryption is implemented, specifically, the initiator node divides the participating nodes into groups, and shares the public key of the N public-private key pairs generated by itself as encrypted information to each participating node in the N groups.

[0057] When the participating nodes are divided into groups, they can be divided evenly according to the number of participating nodes, that is, the number of participating nodes contained in each group after the group division is the same. Alternatively, different weights can be given to different groups, and the corresponding number of participating nodes can be divided into the same group according to the weights.

[0058] The generation of encrypted information is also achieved by the initiator node. Specifically, after N public-private key pairs are generated based on the asymmetric encryption algorithm, the public keys in the N public-private key pairs are distributed to each participant node in the N groups. During the specific distribution, the public key in a public-private key pair corresponds to a group of participant nodes, and the same public key is distributed to each participant node in the same group. The public keys distributed to the participant nodes in different groups are different.

[0059] Among them, the data sharing task is triggered by the initiator node. The participating nodes involved in the data sharing task can be specified in advance, or determined by the data that needs to be shared, that is, the nodes storing the data that needs to be shared will be determined as the participating nodes involved in the data sharing task.

[0060] In the specific implementation process, assume that there are X participating nodes, each of which has its own data set X. i , the initiator node needs to obtain all X i However, it is not possible to know which participant node each data element in the specific collection comes from, and the participating nodes cannot know the specific data values ​​of each other.

[0061] At this time, the initiator node needs to randomly divide the participating nodes into N groups, and the initiator node randomly generates N different public and private key pairs (sk1, pk1), (sk2, pk2), ..., (sk n , pk n ), and then distribute the public key pk to all participating nodes in group i i , and inform each participant node of the grouping of all participant nodes. Participant nodes in different groups cannot know each other's public key values.

[0062] Furthermore, after the participating nodes in N groups obtain the public key distributed by the initiator node, a participating node is selected in each group to encrypt the data to be shared by the participating nodes selected in other groups. The specific operations are as follows:

[0063] For a participant node in group i, for the element x to be shared in the data set of the participant node, first calculate Then y is sent to any participant node in any other group, such as a participant node in group j. After receiving y, the participant node in group j will calculate Then it is sent to any participant in the group that has not encrypted the data. At this time, the groups that have not encrypted the data are all groups except group i and group j. If any participant node in group k is a participant node in the last group that encrypted the data, then the participant node will send the encrypted data to the initiator node. After receiving the encrypted data, the initiator node will use the private keys sk1, sk2, ..., sk n Decrypt it to obtain data x, that is, the aforementioned element x to be shared, to ensure privacy protection during data flow and improve computing efficiency while ensuring the security of the algorithm.

[0064] The data received by the initiator node is the information encrypted by any randomly selected participating node in each group. If the initial data to be shared is x, then the encrypted data finally obtained by the initiator node is i∈[1,n], at this time the initiator node only needs to calculate Then x can be restored.

[0065] The data to be shared at each transmission may be a data element in the data set of a certain participant node, and the data sets of all participant nodes in all groups are shared through multiple transmissions. Alternatively, the data to be shared at each transmission may be a whole formed by the data set of one participant node, and the data sets of all participant nodes in different groups are shared.

[0066] During the implementation of the above algorithm, after the participant node of group j obtains y, it cannot restore x because it does not have the corresponding private key. The same is true for all subsequent participant nodes, so there is no risk of privacy leakage when data flows between participant nodes. After the initiator node obtains the encrypted shared information from group k, because the flow of data x from participant node i to participant node k is random, the initiator cannot know which participant the data x specifically comes from. Therefore, this algorithm meets the privacy protection requirements during data flow, while avoiding complex encryption structures. Compared with traditional algorithms, it has higher computational efficiency, not only in local computing efficiency, but also in network transmission efficiency.

[0067] On the other hand, as an optional implementation, the initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including:

[0068] Based on the data sharing task, the initiator node determines the participant nodes involved in the data sharing task, and sends the data sharing task to the participant nodes; obtains N encrypted information from N groups of participant nodes; wherein the participant nodes are divided into N groups by self-negotiation after receiving the data sharing task, and the encrypted information is the private key of the public-private key pair generated by each group of participant nodes through negotiation based on an asymmetric encryption algorithm.

[0069] In this process, a method for private union based on asymmetric encryption is implemented, specifically, the participating nodes divide themselves into groups and share the private keys of N public-private key pairs generated by themselves as encrypted information with the participating nodes.

[0070] When dividing the participant nodes into groups, it can be achieved through self-negotiation between the participant nodes, and can be evenly divided according to the number of participant nodes, that is, the number of participant nodes included in each group after group division is the same. It can also be based on the weights given to different groups, and the participant nodes corresponding to the weights can be divided into the same group through self-negotiation.

[0071] The generation of encrypted information is also achieved by the participating nodes. Specifically, the participating nodes in each group self-negotiate to generate a public-private key pair based on an asymmetric encryption algorithm. N groups generate N public-private key pairs. Any participating node in each group is selected to distribute the private key of the public-private key pair negotiated within the group to the initiator node. When distributing, optionally, the public-private key pairs self-negotiated by the participating nodes in different groups are different.

[0072] The data sharing task is triggered by the initiator node. The participating nodes involved in the data sharing task can be specified in advance or determined by the data to be shared, that is, the nodes storing the data to be shared are determined as the participating nodes involved in the data sharing task. The data sharing task will be sent by the initiator node to each participating node.

[0073] In the specific implementation process, assume that there are X participating nodes, each of which has its own data set X. i , the initiator node needs to obtain all X i However, it is not possible to know which participant node each data element in the specific collection comes from, and the participating nodes cannot know the specific data values ​​of each other.

[0074] At this time, all participating nodes are randomly divided into N groups, and each participating node is informed of the grouping status of all participating nodes.

[0075] The participating nodes in each group negotiate a pair of public and private keys. For example, all participating nodes in group i negotiate a public and private key pair (sk i , pk i ,N), there are many negotiation methods here, such as a participating node randomly generates a public-private key pair and then notifies the other participating nodes.

[0076] The process of the initiator node obtaining N encrypted information from N groups of participant nodes requires that any participant node in different groups send the private key of the public-private key pair generated through negotiation to the initiator node.

[0077] When the private key is transmitted from the participant node to the initiator node, the mask can be used to achieve secure data transmission. Specifically, it can be:

[0078] Each of the N groups of participant nodes randomly selects a participant node to execute the security aggregation algorithm. For example, any participant node in group i will negotiate a mask with any participant node in group i-1 and any participant node in group i+1, respectively, denoted as r. i-1 , r i+1 , where when i=1, there is no r i-1 , when i = n, there is no r i+1 Therefore, a total of n-1 masks are negotiated, and the participating nodes of group i use m i =sk i × i-1 ÷r i+1 For the private key sk i The mask is calculated and sent to the initiator node. The initiator node can calculate m=Π based on the private key calculated by the mask sent by the participating nodes in different groups.i m i =Π i sk i There are many ways to negotiate the mask, such as randomly generating it by any one of the participating nodes, or randomly generating it by both participating nodes at the same time and summing it up.

[0079] Furthermore, among the N participant node groups, each group will select a participant node to encrypt the data to be shared by the participant nodes selected from other groups. The specific operations are as follows:

[0080] For a participant node in group i, for the element x to be shared in the data set of the participant node, first calculate Then y is sent to any participant node in any other group, such as a participant node in group j. After receiving y, the participant node in group j will calculate Then it is sent to any participant in the group that has not encrypted the data. At this time, the groups that have not encrypted the data are all groups except group i and group j. If any participant node in group k is a participant node in the last group that encrypted the data, then the participant node will send the encrypted data to the initiator node. After receiving the encrypted data, the initiator node will use m to decrypt it and obtain data x, that is, the aforementioned element x to be shared, to ensure privacy protection during data flow and improve computing efficiency while ensuring algorithm security.

[0081] The data received by the initiator node is the information encrypted by any randomly selected participating node in each group. If the initial data to be shared is x, then the encrypted data finally obtained by the initiator node is At this time, the initiator node has obtained m=Π i sk i , i∈[1,n], at this time the initiator node only needs to calculate D m (res) can restore x.

[0082] The data to be shared at each transmission may be a data element in the data set of a certain participant node, and the data sets of all participant nodes in all groups are shared through multiple transmissions. Alternatively, the data to be shared at each transmission may be a whole formed by the data set of one participant node, and the data sets of all participant nodes in different groups are shared.

[0083] During the implementation of the above algorithm, after the participant node of group j obtains y, it cannot restore x because it does not have the corresponding private key. The same is true for all subsequent participant nodes, so there is no risk of privacy leakage when data flows between participant nodes. After the initiator node obtains the encrypted shared information from group k, because the flow of data x from participant node i to participant node k is random, the initiator cannot know which participant the data x comes from.

[0084] This algorithm can also overcome the security problem in the grouping algorithm. The security problem of the grouping algorithm is that in the absence of grouping, the initiator node can only conclude that the data does not come from the participating node that sent the data to it after receiving the message. After grouping, the initiator node knows that the data does not come from the group of initiator nodes that sent the message to itself, which undoubtedly leaks some information. In this algorithm, because the initiator node does not know the underlying grouping situation, it is completely unable to obtain any additional information.

[0085] Therefore, this algorithm in this embodiment meets the privacy protection requirements during data flow, and at the same time can achieve private transmission by only using an asymmetric encryption algorithm, avoiding complex encryption structures, and improving computing efficiency while ensuring the security of the algorithm.

[0086] On the other hand, as an optional implementation, the initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including:

[0087] Based on the data sharing task, the initiator node determines the participant nodes involved in the data sharing task, and sends the data sharing task to the participant nodes; obtains N encrypted information from N groups of participant nodes; wherein the participant nodes are divided into N groups by self-negotiation after receiving the data sharing task, and the encrypted information is the private key generated by each group of participant nodes based on the symmetric encryption algorithm.

[0088] In this process, a method for private union based on symmetric encryption is implemented, in which the participating nodes divide themselves into groups and share the private keys of N public-private key pairs generated by themselves as encrypted information with the participating nodes.

[0089] When dividing the participant nodes into groups, it can be achieved through self-negotiation between the participant nodes, and can be evenly divided according to the number of participant nodes, that is, the number of participant nodes included in each group after group division is the same. It can also be based on the weights given to different groups, and the participant nodes corresponding to the weights can be divided into the same group through self-negotiation.

[0090] The generation of encrypted information is also achieved by the participating nodes. Specifically, the participating nodes in each group self-negotiate to generate a public-private key pair based on an asymmetric encryption algorithm. N groups generate N public-private key pairs. Any participating node in each group is selected to distribute the private key of the public-private key pair negotiated within the group to the initiator node. When distributing, optionally, the public-private key pairs self-negotiated by the participating nodes in different groups are different.

[0091] The data sharing task is triggered by the initiator node. The participating nodes involved in the data sharing task can be specified in advance or determined by the data to be shared, that is, the nodes storing the data to be shared are determined as the participating nodes involved in the data sharing task. The data sharing task will be sent by the initiator node to each participating node.

[0092] In the specific implementation process, assume that there are X participating nodes, each of which has its own data set X. i , the initiator node needs to obtain all X i However, it is not possible to know which participant node each data element in the specific collection comes from, and the participating nodes cannot know the specific data values ​​of each other.

[0093] At this time, all participating nodes are randomly divided into N groups, and each participating node is informed of the grouping status of all participating nodes.

[0094] Each participant node in a group negotiates a private key. For example, all participant nodes in group i negotiate a private key sk i There are many ways of negotiation here, such as one participating node randomly generates a public-private key pair and then notifies the other participating nodes.

[0095] The process of the initiator node obtaining N encrypted information from N groups of participant nodes requires that any participant node in different groups send the negotiated generated private key to the initiator node.

[0096] When the private key is transmitted from the participant node to the initiator node, the mask can be used to achieve secure data transmission. Specifically, it can be:

[0097] Each of the N groups of participant nodes randomly selects a participant node to execute the security aggregation algorithm. For example, any participant node in group i will negotiate a mask with any participant node in group i-1 and any participant node in group i+1, respectively, denoted as r. i-1 , r i+1 , where when i = 1, there is no r i-1 , when i = n, there is no r i+1Therefore, a total of n-1 masks are negotiated, and the participating nodes of group i use m i =sk i -r i-1 +r i+1 For the private key sk i The mask is calculated and sent to the initiator node. The initiator node can calculate m=∑ i m_i=∑ i sk i There are many ways to negotiate the mask, such as randomly generating it by any one of the participating nodes, or randomly generating it by both participating nodes at the same time and summing it up.

[0098] Furthermore, among the N participant node groups, each group will select a participant node to encrypt the data to be shared by the participant nodes selected from other groups. The specific operations are as follows:

[0099] For a participant node in group i, for the element x to be shared in the data set of the participant node, first calculate y = x + sk i , and then send y to any participant node in any other group, such as a participant node in group j. After receiving y, the participant node in group j will calculate z = y + sk j , and then send it to any participant in the group that has not encrypted the data. At this time, the groups that have not encrypted the data are all groups except group i and group j. If any participant node in group k is a participant node in the last group that encrypted the data, then the participant node will send the encrypted data to the initiator node. After receiving the encrypted data, the initiator node will use m to decrypt it and obtain data x, that is, the aforementioned element x to be shared, to ensure privacy protection during data flow and improve computing efficiency while ensuring algorithm security.

[0100] The data received by the initiator node is the information encrypted by any randomly selected participating node in each group. If the initial data to be shared is x, then the encrypted data finally obtained by the initiator node is res = x + ∑ i sk i , at this time the initiator node has obtained m = ∑ i sk i , i∈[1,n], at this time the initiator node only needs to calculate res-∑ i sk i Then x can be restored.

[0101] The data to be shared at each transmission may be a data element in the data set of a certain participant node, and the data sets of all participant nodes in all groups are shared through multiple transmissions. Alternatively, the data to be shared at each transmission may be a whole formed by the data set of one participant node, and the data sets of all participant nodes in different groups are shared.

[0102] During the implementation of the above algorithm, after the participant node of group j obtains y, it cannot restore x because it does not have the corresponding private key. The same is true for all subsequent participant nodes, so there is no risk of privacy leakage when data flows between participant nodes. After the initiator node obtains the encrypted shared information from group k, because the flow of data x from participant node i to participant node k is random, the initiator cannot know which participant the data x comes from.

[0103] Similarly, because the initiator node in this algorithm cannot know the grouping method of the participating nodes, the initiator node cannot obtain any additional information at all.

[0104] This algorithm in this embodiment meets the privacy protection requirements during data flow, and at the same time can achieve private transmission using only symmetric encryption algorithms, avoiding complex encryption structures, and improving computing efficiency while ensuring algorithm security.

[0105] Step 102, receiving encrypted shared data sent by a first group of participant nodes among N groups of participant nodes.

[0106] The encrypted shared data is generated by sequentially encrypting the shared data based on the encryption information by any participant node determined in each group, and the first group is the group that performs the final encryption on the shared data.

[0107] The sequential encryption may be performed based on a randomly determined order.

[0108] In the process of encrypting shared data, combined with the grouping strategy, the data is divided into groups, and a participating node is selected from each group to jointly implement cascade encryption of the shared data. The cascade encryption specifically refers to the participating node with a later encryption order implementing re-encryption based on the shared data that has been encrypted by the participating node with an earlier encryption order.

[0109] Step 103: decrypt the encrypted shared data based on the encryption information to obtain the shared data.

[0110] In the specific implementation process, when the initiator node decrypts the encrypted information, it decrypts the encrypted shared data based on N private keys to obtain the shared data.

[0111] Each of the N private keys corresponds to a group of participant nodes. The private key is obtained during the encrypted information sharing process between the initiator node and the N groups of participant nodes in the aforementioned step 101.

[0112] As an optional implementation, after decrypting the encrypted shared data based on the encryption information to obtain the shared data, the method further includes: performing a union operation on all the decrypted shared data to obtain a target data set.

[0113] That is, in combination with the above-mentioned specific implementation processes, after the participating nodes transmit the shared element x, when the initiator node receives the shared data transmitted by all participating nodes, it can perform a union operation on these data to obtain all X i Collection of .

[0114] In an embodiment of the present application, after the initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, the N groups of participant nodes encrypt the shared data in turn based on the encrypted information from any participant node determined in each group to obtain encrypted shared data, which is sent to the initiator node by the participant node in the last encryption group. The initiator node decrypts the encrypted shared data based on the shared encrypted information to obtain the shared data. This process combines the encryption process with the grouping strategy, and encrypts the shared data in turn by grouping the participant nodes and selecting the participant nodes in units of grouped groups. Finally, the initiator node decrypts the encrypted shared data based on the encrypted information, thereby ensuring privacy protection during data flow and improving computing efficiency while ensuring the security of the algorithm.

[0115] Different implementation methods of the data sharing method are also provided in the embodiments of the present application.

[0116] See also Figure 2 , Figure 2 This is the process of the data sharing method provided in the embodiment of the present application Figure 2 .like Figure 2 A data sharing method is shown, the method comprising the following steps:

[0117] Step 201: The initiator node determines whether the number of participant nodes involved in the data sharing task exceeds a threshold based on the data sharing task.

[0118] Specifically, the threshold value may be set to 2, that is, to determine whether the number of participating nodes involved in the data sharing task exceeds two.

[0119] When the number of participating nodes involved in the data sharing task is too small, special processing is required to meet the confidentiality requirements of data sharing.

[0120] When the number of participating nodes involved in the data sharing task is large, the implementation process disclosed in Example 1 is executed.

[0121] Step 202: If the number of participating nodes involved in the data sharing task does not exceed the threshold, the encrypted information shared by each participating node is received.

[0122] In order to avoid privacy leakage in data sharing when the number of participants is small, the participating nodes need to generate encrypted information and share it with the participating nodes, so as to avoid the initiator node obtaining additional data source information when there are too few participating nodes.

[0123] Step 203, obtaining the encrypted shared data sent by each participating node.

[0124] Among them, the encrypted shared data includes: the secondary encrypted data generated locally in each participant node and the secondary encrypted data obtained by partial exchange with other participant nodes. The secondary encrypted data is obtained by the participant node re-encrypting the data generated after the shared data is encrypted by other participant nodes.

[0125] Take the threshold value of 2 as an example. When the number of participating nodes involved in the shared task is 2, each participating node has its own data set X. i , the data set X of each participant node i All of them are formed into data to be shared. The starting node needs to obtain X1∪X2, but it cannot know which participating node each data element in the specific collection comes from.

[0126] In order to avoid privacy leakage in data sharing when the number of participants is small, each participant node needs to encrypt the data based on encryption technology, such as an asymmetric encryption algorithm or a symmetric encryption algorithm. The asymmetric encryption algorithm is used as an example for explanation.

[0127] Each participant node generates a public-private key pair. For example, participant node 1 generates a public-private key pair (sk1, pk1, N), and participant node 2 generates a public-private key pair (pk2, sk2, N). The two participant nodes are securely aggregated with the initiator node. The process is as follows:

[0128] Participant node 1 and participant node 2 negotiate a mask r; participant node 1 calculates m1=sk1×r and sends it to the initiator node, and participant node 2 calculates m2=sk2 / r and sends it to the initiator node.

[0129] The two participating nodes encrypt each other's data. For participating node 1, for any element x in the data set X1, first calculate Then y is sent to the participant node 2, and the participant node 2 calculates after receiving y Similarly, the participant node 2 takes the same approach to any element x in the data set X2. It first encrypts the shared data and then has it re-encrypted by other participant nodes. At this point, the participant node 1 has all the data of the participant node 2 after the second encryption. Similarly, the participant node 2 also has all the data of the participant node 1 after the second encryption. Each party randomly selects the data in its hands to exchange with the other party, for example, randomly selects half of the data to exchange. After the exchange, the participant node 1 and the participant node 2 send all the data in their hands to the initiator, so that each participant node sends the encrypted shared data to the initiator node.

[0130] After this step is completed, it is necessary to continue to execute step 206, decrypt the encrypted shared data based on the encryption information to obtain the shared data.

[0131] Specifically, the description will be continued with the above example.

[0132] After the initiator node receives the encrypted information and encrypted shared data shared by each participating node, the initiator node uses the encrypted information shared by each participating node to calculate m=m1×m2=sk1×sk2, and uses m to decrypt the received encrypted shared data to obtain the value of element x.

[0133] The data received by the initiator node is the information encrypted by any randomly selected participating node in each group. If the initial data to be shared is x, then the encrypted data finally obtained by the initiator node is At the same time, the initiator node has calculated m = sk1 × sk2. At this time, the initiator only needs to calculate res m Then x can be restored.

[0134] The data to be shared at each transmission may be a data element in the data set of a certain participant node, and the data sets of all participant nodes in all groups are shared through multiple transmissions. Alternatively, the data to be shared at each transmission may be a whole formed by the data set of one participant node, and the data sets of all participant nodes in different groups are shared.

[0135] During the implementation of the above algorithm, after the participant node 2 obtains y, it cannot restore the result x because it does not have the corresponding private key. The same is true for the participant node 1. Therefore, there is no risk of privacy leakage when the data flows between the participant nodes. After the initiator node gets the result from the participant node 1 or the participant node 2, because the data in the hands of the participant node 1 or 2 has been exchanged, the initiator node cannot know which participant node the data x comes from. Therefore, this algorithm meets the privacy protection requirements during the data flow process, while avoiding complex encryption structures. Compared with traditional algorithms, it has higher computational efficiency, not only in local computing efficiency, but also in network transmission efficiency.

[0136] Step 204: If the number of participating nodes involved in the data sharing task exceeds a threshold, the initiator node shares encrypted information with the N groups of participating nodes involved in the data sharing task.

[0137] Among them, N≥2.

[0138] The implementation process of this step is the same as the implementation process of step 101 in the aforementioned embodiment, and will not be repeated here.

[0139] Step 205: Receive the encrypted shared data sent by the first group of participant nodes among the N groups of participant nodes.

[0140] The encrypted shared data is generated by sequentially encrypting the shared data based on the encryption information by any participating node determined in each group, and the first group is the group that performs the final encryption on the shared data.

[0141] The implementation process of this step is the same as the implementation process of step 102 in the aforementioned embodiment, and will not be repeated here.

[0142] Step 206: decrypt the encrypted shared data based on the encryption information to obtain the shared data.

[0143] When the number of participating nodes involved in the data sharing task exceeds the threshold, the implementation process of this step is the same as the implementation process of step 103 in the aforementioned implementation mode, and will not be repeated here.

[0144] In an embodiment of the present application, the initiator node determines the number of participating nodes involved in the data sharing task based on the data sharing task. When the number of participating nodes is different, different data sharing strategies are adopted. This process combines the data encryption process with the number of participating nodes, and encrypts the shared data in sequence through the participating nodes. Finally, the initiator node decrypts the encrypted shared data based on the encryption information, ensuring privacy protection during data flow and improving computing efficiency while ensuring the security of the algorithm.

[0145] See also Figure 3 , Figure 3 This is a structural diagram of a data sharing device provided in an embodiment of the present application. For the sake of convenience of explanation, only the parts related to the embodiment of the present application are shown.

[0146] The data sharing device 300 includes:

[0147] Information sharing module 301, used for the initiator node to share encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task; N≥2;

[0148] The data receiving module 302 is used to receive the encrypted shared data sent by the participant node of the first group among the N groups of participant nodes, wherein the encrypted shared data is generated by sequentially encrypting the shared data by any participant node determined in each group based on the encryption information, and the first group is the group that encrypts the shared data last;

[0149] The decryption module 303 is used to decrypt the encrypted shared data based on the encryption information to obtain the shared data.

[0150] Among them, the information sharing module is specifically used for:

[0151] The initiator node divides the participant nodes involved in the data sharing task into N groups based on the data sharing task;

[0152] Based on a symmetric encryption algorithm, N private keys are generated as the encryption information, and the N private keys are distributed to each participating node in the N groups.

[0153] Among them, the information sharing module is specifically used for:

[0154] The initiator node divides the participant nodes involved in the data sharing task into N groups based on the data sharing task;

[0155] Based on an asymmetric encryption algorithm, N public-private key pairs are generated, and the public keys in the N public-private key pairs are used as the encryption information, which are distributed to each participating node in the N groups.

[0156] Among them, the information sharing module is specifically used for:

[0157] The initiator node determines the participant nodes involved in the data sharing task based on the data sharing task, and sends the data sharing task to the participant nodes;

[0158] Obtain N pieces of the encrypted information from N groups of the participant nodes;

[0159] Among them, after receiving the data sharing task, the participating nodes are divided into N groups by self-negotiation, and the encryption information is the private key of the public-private key pair generated by each group of participating nodes based on an asymmetric encryption algorithm, or the encryption information is the private key generated by each group of participating nodes based on a symmetric encryption algorithm.

[0160] Among them, the decryption module is specifically used for:

[0161] The encrypted shared data is decrypted based on the N private keys to obtain the shared data.

[0162] The device also includes:

[0163] Data processing module for:

[0164] Determining whether the number of participating nodes involved in the data sharing task exceeds a threshold;

[0165] If the number of participating nodes involved in the data sharing task does not exceed the threshold, receiving the encrypted information shared by each participating node;

[0166] Obtaining the encrypted shared data sent by each of the participating nodes; wherein the encrypted shared data includes: the secondary encrypted data generated locally in each of the participating nodes and the secondary encrypted data partially exchanged with other participating nodes, wherein the secondary encrypted data is obtained by the participating node re-encrypting the data generated after the shared data is encrypted by other participating nodes;

[0167] Based on the encryption information, the encrypted shared data is decrypted to obtain the shared data.

[0168] The device also includes:

[0169] The set processing module is used to perform a union operation on all the decrypted shared data to obtain a target data set.

[0170] The data sharing device provided in the embodiment of the present application can implement each process of the embodiment of the above-mentioned data sharing method and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

[0171] Figure 4 4 is a structural diagram of a terminal provided in an embodiment of the present application. As shown in the figure, the terminal 4 of this embodiment includes: at least one processor 40 ( Figure 4 Only one is shown in the figure), a memory 41, and a computer program 42 stored in the memory 41 and executable on the at least one processor 40, wherein the processor 40 implements the steps of any of the above-mentioned method embodiments when executing the computer program 42.

[0172] The terminal 4 may be a computing device such as a desktop computer, a notebook, a PDA, or a cloud server. The terminal 4 may include, but is not limited to, a processor 40 and a memory 41. Those skilled in the art will appreciate that Figure 4 It is only an example of terminal 4 and does not constitute a limitation on terminal 4. It may include more or fewer components than shown in the figure, or a combination of certain components, or different components. For example, the terminal may also include input and output devices, network access devices, buses, etc.

[0173] The processor 40 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.

[0174] The memory 41 may be an internal storage unit of the terminal 4, such as a hard disk or memory of the terminal 4. The memory 41 may also be an external storage device of the terminal 4, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the terminal 4. Further, the memory 41 may also include both an internal storage unit and an external storage device of the terminal 4. The memory 41 is used to store the computer program and other programs and data required by the terminal. The memory 41 may also be used to temporarily store data that has been output or is to be output.

[0175] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.

[0176] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0177] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0178] In the embodiments provided in the present application, it should be understood that the disclosed devices / terminals and methods can be implemented in other ways. For example, the device / terminal embodiments described above are only schematic. For example, the division of the modules or 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 integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0179] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, 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 solution of this embodiment.

[0180] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0181] If the integrated module / unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, U disk, mobile hard disk, disk, optical disk, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electric carrier signal, telecommunication signal and software distribution medium. It should be noted that the content contained in the computer-readable medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.

[0182] The present application implements all or part of the processes in the above-mentioned embodiment method, and may also be implemented through a computer program product. When the computer program product runs on a terminal, the terminal can implement the steps in the above-mentioned method embodiments when executing the computer program product.

[0183] The embodiments described above are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A data sharing method, characterized in that: include: The initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task; N≥2; Receiving encrypted shared data sent by a participant node of a first group of the N groups of participant nodes, wherein the encrypted shared data is generated by sequentially encrypting the shared data based on the encryption information by any participant node determined in each group, and the first group is the group that encrypts the shared data last; Decrypting the encrypted shared data based on the encryption information to obtain the shared data; The shared data corresponding to the data sharing task is data shared by the N groups of participant nodes to the initiator node; During the shared data transmission process, the participating node encrypts and transmits the shared data, and the initiator node decrypts the encrypted shared data to obtain the shared data.

2. The data sharing method according to claim 1, characterized in that: The initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including: The initiator node divides the participant nodes involved in the data sharing task into N groups based on the data sharing task; Based on a symmetric encryption algorithm, N private keys are generated as the encryption information, and the N private keys are distributed to each participating node in the N groups.

3. The data sharing method according to claim 1, characterized in that: The initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including: The initiator node divides the participant nodes involved in the data sharing task into N groups based on the data sharing task; Based on an asymmetric encryption algorithm, N public-private key pairs are generated, and the public keys in the N public-private key pairs are used as the encryption information, which are distributed to each participating node in the N groups.

4. The data sharing method according to claim 1, characterized in that: The initiator node shares encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task, including: The initiator node determines the participant nodes involved in the data sharing task based on the data sharing task, and sends the data sharing task to the participant nodes; Obtain N pieces of the encrypted information from N groups of the participant nodes; Among them, after receiving the data sharing task, the participating nodes are divided into N groups by self-negotiation, and the encryption information is the private key of the public-private key pair generated by each group of participating nodes based on an asymmetric encryption algorithm, or the encryption information is the private key generated by each group of participating nodes based on a symmetric encryption algorithm.

5. The data sharing method according to any one of claims 2 to 4, characterized in that: The decrypting the encrypted shared data based on the encryption information to obtain the shared data includes: The encrypted shared data is decrypted based on the N private keys to obtain the shared data.

6. The data sharing method according to claim 1, characterized in that: Before sharing encrypted information with the N groups of participating nodes involved in the data sharing task, the method further includes: Determining whether the number of participating nodes involved in the data sharing task exceeds a threshold; If the number of participating nodes involved in the data sharing task does not exceed the threshold, receiving the encrypted information shared by each participating node; Obtaining the encrypted shared data sent by each of the participating nodes; wherein the encrypted shared data includes: the secondary encrypted data generated locally in each of the participating nodes and the secondary encrypted data partially exchanged with other participating nodes, wherein the secondary encrypted data is obtained by the participating node re-encrypting the data generated after the shared data is encrypted by other participating nodes; Based on the encryption information, the encrypted shared data is decrypted to obtain the shared data.

7. The data sharing method according to claim 1, characterized in that: After decrypting the encrypted shared data based on the encryption information to obtain the shared data, the method further includes: A union operation is performed on all the decrypted shared data to obtain a target data set.

8. A data sharing device, characterized in that: include: An information sharing module, used for the initiator node to share encrypted information with N groups of participant nodes involved in the data sharing task based on the data sharing task; N≥2; a data receiving module, configured to receive encrypted shared data sent by a participant node of a first group among the N groups of participant nodes, wherein the encrypted shared data is generated by sequentially encrypting the shared data by any participant node determined in each group based on the encryption information, and the first group is the group that performs the final encryption on the shared data; A decryption module, used for decrypting the encrypted shared data based on the encryption information to obtain the shared data; The shared data corresponding to the data sharing task is data shared by the N groups of participant nodes to the initiator node; During the shared data transmission process, the participating node encrypts and transmits the shared data, and the initiator node decrypts the encrypted shared data to obtain the shared data.

9. A terminal comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Shared data privacy protection method, system, terminal and medium

    CN108900533A

  • Data statistics method, device and equipment

    CN109726563A