Data sharing method, device and related equipment
By performing fuzzy processing and homomorphic encryption operations on the data on the blockchain, the problem of complexity of secure multi-party computing is solved, and the effect of simplifying computing and improving security is achieved.
Patent Information
- Application Number
- CN202110435560.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-04-22
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2041-04-22
AI Technical Summary
In the prior art, the computing process of secure multi-party computing on the blockchain is too complicated.
By fuzzing the first data, and using homomorphic encryption functions to calculate the fuzzy data, and determining the data sum in combination with hash collision methods, the process of safe multi-party calculation is simplified.
The calculation process of secure multi-party computing is simplified, the security and accuracy of data transmission are improved, and the development cost is reduced.
Smart Images

Figure CN115333716B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to the field of blockchain technology, and in particular to a data sharing method, apparatus, and related equipment. Background Art
[0002] With the development of blockchain technology, data sharing can be applied on blockchains, bringing great convenience to people's lives. The application of secure multi-party computing on blockchains is one aspect of data sharing. Secure multi-party computing enables multiple data owners to perform collaborative computations and output the results even when they do not trust each other. However, in actual use, the inventors discovered the following technical problems with the existing technology: the calculation process of current secure multi-party computing on blockchains is too complex. Summary of the Invention
[0003] The embodiments of the present invention provide a data sharing method, apparatus, and related equipment to solve the problem that the current secure multi-party computing (SMC) calculation process on the blockchain is too complicated.
[0004] To solve the above problems, the present invention is achieved as follows:
[0005] In a first aspect, an embodiment of the present invention provides a data sharing method, the method comprising:
[0006] The first node issues a first request to M second nodes, where the first request is used to request to obtain first data corresponding to each of the M second nodes, where M is an integer greater than 1;
[0007] The second node performs fuzzy processing on the first data based on a first parameter generated by the first request to obtain fuzzy data;
[0008] The second node sends the fuzzy data after the homomorphic operation to the third node, and sends the first parameter to the first node;
[0009] The first node receives M first parameters sent by the second node and second data sent by the third node, where the second data is obtained by the third node adding the M fuzzy data after homomorphic operation;
[0010] The first node uses the first parameter and the second data in a hash collision manner to determine the sum of M pieces of the first data.
[0011] In a second aspect, an embodiment of the present invention provides a data sharing device, the data sharing device comprising:
[0012] A publishing module, configured for a first node to publish a first request to M second nodes, wherein the first request is used to request to obtain first data corresponding to each of the M second nodes, where M is an integer greater than 1;
[0013] a processing module, configured for the second node to perform fuzzy processing on the first data based on a first parameter generated by the first request to obtain fuzzy data;
[0014] A sending module, configured for the second node to send the fuzzy data after the homomorphic operation to a third node, and to send the first parameter to the first node;
[0015] A receiving module, configured for the first node to receive M first parameters sent by the second node and second data sent by the third node, where the second data is obtained by the third node adding the M fuzzy data after homomorphic operation;
[0016] A determination module is used for the first node to use the first parameter and the second data to determine the sum of M first data in a hash collision manner.
[0017] In a third aspect, an embodiment of the present invention further provides an electronic device comprising: a transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; the processor being characterized in that the processor is configured to read the program in the memory to implement the steps of the method described in the first aspect above.
[0018] In a fourth aspect, an embodiment of the present invention further provides a readable storage medium for storing a program, which, when executed by a processor, implements the steps in the method described in the first aspect.
[0019] In an embodiment of the present invention, a first node issues a first request to M second nodes, where the first request is used to request the first data corresponding to each of the M second nodes, where M is an integer greater than 1; the second node performs fuzzy processing on the first data based on the first parameter generated by the first request to obtain fuzzy data; the second node sends the fuzzy data after homomorphic operation to a third node, and sends the first parameter to the first node; the first node receives the first parameters sent by the M second nodes and the second data sent by the third node, and the second data is obtained by the third node adding the M fuzzy data after homomorphic operation; the first node uses the first parameter and the second data to determine the sum of the M first data by hash collision. In this way, by performing fuzzy processing on the first data and performing homomorphic encryption on the M fuzzy data, the requirements of secure multi-party computing can be met, simplifying the calculation process of secure multi-party computing on the blockchain. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the following briefly introduces the drawings required for use in describing the embodiments of the present invention. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0021] Figure 1 This is one of the flow charts of the data sharing method provided by an embodiment of the present invention;
[0022] Figure 2 This is the second flow chart of the data sharing method provided by an embodiment of the present invention;
[0023] Figure 3 It is a structural diagram of a data sharing device provided by the present invention;
[0024] Figure 4 It is a structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0025] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. All other embodiments obtained by ordinary technicians in this field based on the embodiments of the present invention without making any creative efforts shall fall within the scope of protection of the present invention.
[0026] The terms "first", "second" etc. in the embodiments of the present invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or equipment comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or that are inherent to these processes, methods, products or equipment. In addition, "and / or" is used in this application to represent at least one of the connected objects, for example A and / or B and / or C, which means comprising 7 situations including single A, single B, single C, and both A and B exist, both B and C exist, both A and C exist, and both A, B and C exist.
[0027] See Figure 1 , Figure 1 A flowchart of a data sharing method provided in an embodiment of the present invention, wherein the data sharing method is applied to a blockchain, wherein the blockchain includes a first node, a second node, and a third node. Figure 1 As shown, the method includes the following steps:
[0028] It should be noted that the first node, the second node, and the third node in the embodiment of the present invention may be nodes separately created on the blockchain. For example, as an optional implementation, the first node, the second node, and the third node may be separately created in the blockchain, and the first node, the second node, and the third node may be assigned corresponding functions. The functions thereof may be referred to the corresponding descriptions below.
[0029] As another optional implementation, a blockchain is created, and the first node, second node, and third node are created in the blockchain. At the same time, corresponding functions are assigned to the first node, second node, and third node. In this way, while creating the blockchain, the first node, second node, and third node can also be created as needed, so that the blockchain that can be created and the functions of the first node, second node, and third node in the blockchain can better meet the needs of users.
[0030] Of course, as another optional embodiment, the above-mentioned first node, second node and third node can also be nodes that already exist on the blockchain. In the application scenario of the embodiment of the present invention, the above-mentioned first node, second node and third node can be given corresponding functions.
[0031] It should be noted that, in the application scenario provided by the embodiment of the present invention, the above-mentioned first node can be understood as a data demander or a data demander node, and the first node can be used to issue a request to obtain data on the second node; the second node can be understood as a data provider or a data provider node. Of course, the above-mentioned second node can also be referred to as a data sharing node, and the second node can be used to provide corresponding data according to the request issued by the first node. The third node can be understood as an intermediate node or a data integration operation node.
[0032] In addition, the specific type of blockchain is not limited here. For example, the blockchain can be a consortium chain or a public chain.
[0033] It should be noted that the blockchain in the embodiment of the present invention is a semi-honest model. Accordingly, the first node, the second node and the third node are semi-honest participants. When the blockchain is a semi-honest model, a low degree of malicious behavior of the nodes in the blockchain can be tolerated. The above-mentioned malicious behavior is to deduce other people's messages based on the output results and intermediate messages, and the above-mentioned nodes cannot collude with each other and maliciously tamper with the output results.
[0034] In addition, the blockchain can also be an honest model. Accordingly, the first node, the second node, and the third node are honest participants. When the blockchain is an honest model, any malicious behavior of the nodes in the blockchain cannot be tolerated.
[0035] In this way, the blockchain is a semi-honest model or an honest model, which can ensure the accuracy of the output results.
[0036] Step 101: A first node issues a first request to M second nodes, where the first request is used to request first data corresponding to each of the M second nodes, where M is an integer greater than 1.
[0037] Each second node may store the first data, and the specific type of the first data is not limited here. For example, the first data may be a deposit amount, a loan amount, or total salary data.
[0038] It should be noted that the second node may also refer to a node that can receive the first request issued by the first node. Of course, the blockchain may also include a fourth node, and the fourth node may also store third data. The third data may be of the same type as or different from the first data. The fourth node may refer to a node that cannot receive the first request issued by the first node, but can receive the second request issued by the first node. The second request is used to request to obtain the third data corresponding to the fourth node.
[0039] Step 102: The second node performs fuzzy processing on the first data based on the first parameter generated by the first request to obtain fuzzy data.
[0040] The specific manner of generating the first parameter based on the first request is not limited herein. For example, as an optional embodiment, the first parameter is a randomly generated parameter. Alternatively, the first parameter may be a randomly generated parameter based on the first request. Thus, since the first parameter is a randomly generated parameter, its predictability is low, and thus the predictability of the fuzzy data obtained by obfuscating the first data is also low. This reduces the likelihood of the fuzzy data being cracked, thereby improving the security of the fuzzy data.
[0041] Of course, as another optional implementation, the first parameter may also be determined based on the number of times the second node receives the first request within a preset period. The preset period may refer to a period closest to the current moment, and the specific length of the preset period is not limited here.
[0042] In addition, as another optional implementation, each second node may have a number, and the numbers may be different, and the first parameter may correspond to the number of the corresponding second node.
[0043] In addition, the second node performs fuzzy processing on the first data based on the first parameter, and a specific manner of obtaining the fuzzy data is not limited herein.
[0044] For example, as an optional implementation, the second node performs fuzzy processing on the first data based on the first parameter generated by the first request to obtain fuzzy data, including:
[0045] The second node generates a first parameter based on the first request;
[0046] The second node determines the sum of the first parameter and the first data as the fuzzy data.
[0047] As another optional implementation manner, the second node performs fuzzy processing on the first data based on the first parameter generated by the first request to obtain fuzzy data, including:
[0048] The second node generates a first parameter based on the first request;
[0049] The second node determines a difference between the first parameter and the first data as the fuzzy data.
[0050] The method of generating the first parameter may refer to the above description, and the second node may determine the difference or sum of the first parameter and the first data as fuzzy data.
[0051] In this way, through the above two implementation methods, the diversity and flexibility of the methods for obfuscating the first data are enhanced, and the possibility of the first data being cracked when transmitted between nodes on the blockchain is reduced, further enhancing the security of the first data when transmitted between nodes on the blockchain.
[0052] Of course, as another optional implementation, the product or ratio of the first parameter and the first data may be determined as fuzzy data, thereby further enhancing the diversity and flexibility of the fuzzy processing methods for the first data.
[0053] Step 103: The second node sends the fuzzy data after the homomorphic operation to the third node, and sends the first parameter to the first node.
[0054] As an optional implementation, the second node may directly send the fuzzy data after the homomorphic operation to the third node, and directly send the first parameter to the first node.
[0055] It should be noted that the second node performs homomorphic operations on the fuzzy data, which can be understood as: the second node uses a homomorphic encryption function to process the fuzzy data, and the homomorphic encryption function can have both multiplication homomorphism and addition homomorphism, that is, for any plaintext m1, m2, above It can be addition or multiplication, corresponding to additive homomorphism or multiplicative homomorphism. The above m1 and m2 can be understood as fuzzy data corresponding to different second nodes, and H can represent a homomorphic encryption function, that is, the sum of the values after performing homomorphic operations on m1 and m2 respectively is equal to the value obtained by performing homomorphic operations on the sum of m1 and m2.
[0056] Of course, as another optional implementation, the second node can use the first public key to encrypt the first parameter and send the encrypted first parameter to the first node. The first public key can be the public key of the first node. Correspondingly, the first node stores a first private key that matches the first public key, which can realize decryption of the encrypted first parameter.
[0057] For example, as an optional implementation, the first parameter is data encrypted using a first public key, and the first public key corresponds to the first node;
[0058] The first node determines the sum of M pieces of the first data by using the first parameter and the second data in a hash collision manner, including:
[0059] The first node decrypts the first parameter using a pre-acquired first private key, where the first private key corresponds to the first public key;
[0060] The first node uses the second data and the decrypted first parameter to determine the sum of M pieces of the first data in a hash collision manner.
[0061] It should be noted that the first public key can be sent by the first node in a broadcast manner. Of course, the second node can also send a request to the first node to obtain the first public key, and the first node sends the first public key to the second node based on the request. In addition, the first node can also actively send the first public key to the second node when issuing the first request. The specific method is not limited here.
[0062] In this embodiment, the second node can use the first public key to encrypt the first parameter and send the encrypted first parameter to the first node. Since the first node stores the first private key corresponding to the first public key, the first parameter can be decrypted, thereby improving the security of the first parameter when it is transmitted between the second node and the first node.
[0063] Of course, as another optional implementation, the second node can also use the second public key to encrypt the fuzzy data after the homomorphic operation, and send the encrypted fuzzy data to the third node. The second public key can be the public key of the third node. Correspondingly, the third node can store a second private key matching the second public key, which can realize the decryption of the encrypted fuzzy data, thereby obtaining the fuzzy data after the homomorphic operation.
[0064] In this way, since the first parameter and the fuzzy data after homomorphic operation can be transmitted between each node after encryption, the possibility of leakage of the first parameter and the fuzzy data is reduced, thereby improving the security performance of the first parameter and the fuzzy data when they are transmitted between each node.
[0065] Since the first private key is stored on the first node, the first private key can be used to decrypt the encrypted first parameter to obtain the value of the first parameter of each second node. At the same time, the second private key is stored on the third node, and the second private key can also be used to decrypt the encrypted fuzzy data (that is, the fuzzy data after homomorphic operation) to obtain the value of the fuzzy data after homomorphic operation. After obtaining the fuzzy data after homomorphic operation, the third node can also add the fuzzy functions after homomorphic operation sent by each second node to obtain the second data.
[0066] Step 104: The first node receives M first parameters sent by the second node and second data sent by the third node, where the second data is obtained by the third node adding the M fuzzy data after homomorphic operation.
[0067] As an optional implementation, the third node may directly add the M fuzzy data after homomorphic operations, and the value obtained by the addition is the second data.
[0068] Of course, as another optional implementation, the second data is obtained by the third node performing a homomorphic addition operation on M fuzzy data after homomorphic operation.
[0069] It can be understood that homomorphic operations may include homomorphic addition operations, homomorphic subtraction operations, homomorphic multiplication operations, or homomorphic division operations.
[0070] In other words, this embodiment can perform homomorphic addition on M fuzzy data after homomorphic operation to obtain second data. Homomorphic addition can be understood as using a homomorphic encryption function to perform homomorphic addition on M fuzzy data after homomorphic operation. According to the above description of the homomorphic encryption function, it can be seen that the first value and the second value are the same, and the first value is: performing homomorphic addition on M first target data (the first target data can be understood as fuzzy data after homomorphic operation) to obtain M second target data, and then adding the M second target data to obtain the value; and the second value is: first adding the M first target data to obtain the sum of the M second target data, and then performing homomorphic addition on the sum of the M second target data to obtain the value.
[0071] In this way, the diversity and flexibility of the methods for obtaining the second data are further enhanced.
[0072] Step 105: The first node uses the first parameter and the second data to determine the sum of M pieces of the first data in a hash collision manner.
[0073] Among them, since the first node obtains the values of M first parameters, and the second data includes the values of M first parameters and M first data, it is possible to traverse until the second data is equal to the sum of the M first parameters and the M first data, and the sum of the M first data can be determined.
[0074] That is to say, the first parameter and the second data can be used to determine the sum of the M first data by hash collision, and this step can be performed by the first node.
[0075] In this embodiment of the present invention, the requirements for secure multi-party computation (i.e., computing the sum of the M first data) are met by obfuscating the first data and homomorphically encrypting the M obfuscated data, thereby simplifying the secure multi-party computation process on the blockchain. Furthermore, this embodiment eliminates the need for complex technologies such as secret sharing, obfuscated circuits, and oblivious transfer, nor does it require the deployment of a costly trusted execution environment, thereby reducing development costs.
[0076] In addition, during the transmission process of each node of the blockchain, considering that the input information may be cracked by brute force, the embodiment of the present invention fuses the random number (i.e., the first parameter) with the first data and outputs the fuzzy data, thereby completing the secondary protection of the first data. Even if the input value of the homomorphic encryption function is cracked by brute force, the real first data cannot be obtained without the random number. This improves the security of the first data. At the same time, since the embodiment of the present invention uses the homomorphic encryption function to perform encryption operations on the fuzzy data, the operation results are irreversible and the input fuzzy data cannot be directly derived. This improves the security of the fuzzy information input, thereby further improving the security of the first data.
[0077] The following is an example of a specific embodiment to illustrate the embodiment of the present invention.
[0078] For example, in an established consortium chain system (i.e., blockchain), company E is an intermediate node (i.e., third node), responsible for data integration and computation. Companies A, B, C, and D are data-sharing nodes in the consortium chain. Now, company A (i.e., first node) needs to know the total amount of loans a customer has with companies B, C, and D (all of which are second nodes), while simultaneously preventing A from knowing the customer's individual loan amounts with each of the three companies (the loan amount is the first data point, and the total loan amount is the sum of the first data points at B, C, and D).
[0079] See also Figure 2 , Figure 2 It represents the interaction process between the nodes of the blockchain, as follows:
[0080] Step 1: Data demander's request: Calculate the total amount of the customer's loans to each enterprise (i.e., the sum of the three first data).
[0081] Step 2, data provider: converts the original data (i.e., first data) into fuzzy data (i.e., fuzzy data) using a random number (i.e., first parameter):
[0082] After receiving the request, enterprise B adds the random number n1 (i.e., the first parameter) to the loan amount x1 (i.e., the first data) of the customer at the enterprise;
[0083] After receiving the request, enterprise C adds the random number n2 (i.e., the first parameter) to the loan amount x2 (i.e., the first data) of the customer at the enterprise;
[0084] After receiving the request, enterprise D adds the random number n3 (i.e., the first parameter) to the customer's loan limit x3 (i.e., the first data);
[0085] Step 3: Data provider: Perform homomorphic addition on the fuzzy data and send the result to the intermediate node:
[0086] Enterprise B: Calculates H(x1+n1), encrypts the result with E's public key (i.e., the second public key), and sends it to E.
[0087] Enterprise C: Calculates H(x2+n2), encrypts the result with E's public key (i.e., the second public key), and sends it to E.
[0088] Enterprise D: Calculates H(x3+n3), encrypts the result with E's public key (i.e., the second public key), and sends it to E.
[0089] Where H is the homomorphic encryption function.
[0090] Step 4. Data provider: encrypts the random number and sends the encrypted result to the requester:
[0091] Enterprise B: Encrypts n1 with A's public key (i.e., the first public key) and sends it to A.
[0092] Enterprise C: Encrypts n2 with A's public key (i.e., the first public key) and sends it to A.
[0093] Enterprise D: encrypts n3 with A's public key (i.e., the first public key) and sends it to A.
[0094] Step 5, intermediate node: decrypt each received data and perform homomorphic addition operation:
[0095] Enterprise E calculates the value of H(x1+n1)+H(x2+n2)+H(x3+n3) and sends the result to enterprise A: H(x1+n1)+H(x2+n2)+H(x3+n3)=H(x1+n1+x2+n2+x3+n3)=R, where R is the second data.
[0096] It should be noted that the second data in this embodiment is the data obtained by the third node performing a homomorphic addition operation on the three fuzzy data after homomorphic operations. In other words, the second data is the data obtained after two homomorphic operations.
[0097] Step 6. Data demander: Based on the random number (i.e., the first parameter) and the homomorphic operation result (i.e., the second data), traverse the possible values:
[0098] Enterprise A uses its private key (i.e., the first private key) to decrypt the random numbers n1, n2, and n3 of each of Enterprises B, C, and D. It then adds the random numbers together and iterates through the possible loan amounts for the customer, deciphering the value x1+x2+x3. The specific process for calculating the sum (x) of the three first data points based on the random numbers and the homomorphic operation results is as follows:
[0099] Traverse x and calculate H(x+n1+n2+n3),
[0100] Until H(x+n1+n2+n3)=R, x is the total amount of loans the customer has in the three companies.
[0101] In this way, the embodiment of the present invention can also simplify the calculation process of secure multi-party computing on the blockchain.
[0102] See also Figure 3 , Figure 3 This is one of the structural diagrams of the data sharing device provided by the embodiment of the present invention. The data sharing device is applied to a blockchain, and the blockchain includes a first node, a second node, and a third node, such as Figure 3 As shown, the data sharing device 300 includes:
[0103] Publishing module 301, configured for a first node to publish a first request to M second nodes, wherein the first request is used to request to obtain first data corresponding to each of the M second nodes, where M is an integer greater than 1;
[0104] A processing module 302 is configured to perform fuzzy processing on the first data by the second node based on a first parameter generated by the first request to obtain fuzzy data;
[0105] A sending module 303 is configured for the second node to send the fuzzy data after the homomorphic operation to a third node, and to send the first parameter to the first node;
[0106] A receiving module 304 is configured to receive, by the first node, M first parameters sent by the second node and second data sent by the third node, where the second data is obtained by the third node adding the M homomorphically operated fuzzy data;
[0107] The determination module 305 is configured for the first node to use the first parameter and the second data to determine the sum of M pieces of the first data in a hash collision manner.
[0108] Optionally, the processing module 302 includes:
[0109] a generating submodule, configured for the second node to generate a first parameter based on the first request;
[0110] A determination submodule is configured for the second node to determine the sum of the first parameter and the first data as the fuzzy data; or, the second node to determine the difference between the first parameter and the first data as the fuzzy data.
[0111] Optionally, the first parameter is a randomly generated parameter.
[0112] Optionally, the first parameter is data encrypted using a first public key, and the first public key corresponds to the first node;
[0113] The determining module 305 includes:
[0114] a decryption submodule, configured for the first node to decrypt the first parameter using a pre-acquired first private key, where the first private key corresponds to the first public key;
[0115] The second determining submodule is used by the first node to determine the sum of M pieces of the first data by using the second data and the decrypted first parameter in a hash collision manner.
[0116] Optionally, the second data is obtained by the third node performing a homomorphic addition operation on M fuzzy data after homomorphic operation.
[0117] The data sharing device 300 can realize the embodiment of the present invention Figure 1 and 2 The various processes of the illustrated method embodiment, as well as the achievement of the same beneficial effects, are not described again here to avoid repetition.
[0118] The embodiment of the present invention also provides an electronic device. Figure 4 , the electronic device may include a processor 401, a memory 402, and a program 4021 stored in the memory 402 and executable on the processor 401.
[0119] When the program 4021 is executed by the processor 401, it can achieve Figure 1 or Figure 2 Any steps in the corresponding method embodiments and achieving the same beneficial effects will not be repeated here.
[0120] A person skilled in the art will understand that all or part of the steps of the above-mentioned embodiment method can be completed by hardware related to program instructions, and the program can be stored in a readable medium. The embodiment of the present invention also provides a readable storage medium, which stores a computer program. When the computer program is executed by a processor, the above-mentioned Figure 1 or Figure 2 Any steps in the corresponding method embodiments can achieve the same technical effects and will not be described again here to avoid repetition.
[0121] The storage medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0122] The above is a preferred implementation of the embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles described in the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. A data sharing method, characterized in that: The method comprises: The first node issues a first request to M second nodes, where the first request is used to request to obtain first data corresponding to each of the M second nodes, where M is an integer greater than 1; The second node performs fuzzy processing on the first data based on a first parameter generated by the first request to obtain fuzzy data; The second node sends the fuzzy data after the homomorphic operation to the third node, and sends the first parameter to the first node; The first node receives M first parameters sent by the second node and second data sent by the third node, where the second data is obtained by the third node adding the M fuzzy data after homomorphic operation; The first node determines the sum of M pieces of the first data by using the first parameter and the second data in a hash collision manner; Among them, the second data is obtained by the third node performing a homomorphic addition operation on M fuzzy data after homomorphic operations, and the first node determines the sum of the M first data by hash collision, and the third node uses the same homomorphic encryption function when performing a homomorphic addition operation on the M fuzzy data after homomorphic operations.
2. The method according to claim 1, characterized in that The second node performs fuzzy processing on the first data based on the first parameter generated by the first request to obtain fuzzy data, including: The second node generates a first parameter based on the first request; The second node determines the sum of the first parameter and the first data as the fuzzy data; or, the second node determines the difference between the first parameter and the first data as the fuzzy data.
3. The method according to claim 1, characterized in that The first parameter is a randomly generated parameter.
4. The method according to claim 1, wherein The first parameter is data encrypted using a first public key, where the first public key corresponds to the first node; The first node determines the sum of M pieces of the first data by using the first parameter and the second data in a hash collision manner, including: The first node decrypts the first parameter using a pre-acquired first private key, where the first private key corresponds to the first public key; The first node uses the second data and the decrypted first parameter to determine the sum of M pieces of the first data in a hash collision manner.
5. The method according to claim 1, wherein The second data is obtained by the third node performing a homomorphic addition operation on M fuzzy data after homomorphic operation.
6. A data sharing device, characterized in that: The data sharing device includes: A publishing module, configured for a first node to publish a first request to M second nodes, wherein the first request is used to request to obtain first data corresponding to each of the M second nodes, where M is an integer greater than 1; a processing module, configured for the second node to perform fuzzy processing on the first data based on a first parameter generated by the first request to obtain fuzzy data; A sending module, configured for the second node to send the fuzzy data after the homomorphic operation to a third node, and to send the first parameter to the first node; A receiving module, configured for the first node to receive M first parameters sent by the second node and second data sent by the third node, where the second data is obtained by the third node adding the M fuzzy data after homomorphic operation; A determination module, configured for the first node to determine a sum of M pieces of the first data by using the first parameter and the second data in a hash collision manner; Among them, the second data is obtained by the third node performing a homomorphic addition operation on M fuzzy data after homomorphic operations, and the first node determines the sum of the M first data by hash collision, and the third node uses the same homomorphic encryption function when performing a homomorphic addition operation on the M fuzzy data after homomorphic operations.
7. The data sharing device according to claim 6, characterized in that: The processing module includes: a generating submodule, configured for the second node to generate a first parameter based on the first request; A determination submodule is configured for the second node to determine the sum of the first parameter and the first data as the fuzzy data; or, the second node to determine the difference between the first parameter and the first data as the fuzzy data.
8. The data sharing device according to claim 6, wherein: The first parameter is a randomly generated parameter.
9. The data sharing device according to claim 6, wherein: The first parameter is data encrypted using a first public key, where the first public key corresponds to the first node; The determination module includes: a decryption submodule, configured for the first node to decrypt the first parameter using a pre-acquired first private key, where the first private key corresponds to the first public key; The second determining submodule is used by the first node to determine the sum of M pieces of the first data by using the second data and the decrypted first parameter in a hash collision manner.
10. The data sharing device according to claim 6, wherein: The second data is obtained by the third node performing a homomorphic addition operation on M fuzzy data after homomorphic operation.
11. An electronic device comprising: A transceiver, a memory, a processor, and a program stored in the memory and executable on the processor; wherein the processor is configured to read the program in the memory to implement the steps of the data sharing method as described in any one of claims 1 to 5.
12. A readable storage medium for storing a program, characterized in that: When the program is executed by a processor, the steps of the data sharing method according to any one of claims 1 to 5 are implemented.
Citation Information
Patent Citations
Information sharing and secure multi-party computing model based on block chain
CN109388960A
Systems and Methods for Implementing an Efficient, Scalable Homomorphic Transformation of Encrypted Data with Minimal Data Expansion and Improved Processing Efficiency
US20190386814A1