Secret sharing method, apparatus and secret sharing system
By randomly selecting relay parties and computing node groups, the problems of process complexity and low computational efficiency in multi-party secret sharing are solved, achieving secure data transmission and efficient computing, and reducing the risk of leakage.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- YINMANG (SHANGHAI) TECH CO LTD
- Filing Date
- 2023-06-13
- Publication Date
- 2026-05-19
AI Technical Summary
Existing multi-party secret sharing technologies suffer from high process load and low computational efficiency when there are many participants and a large amount of data, making it difficult to effectively reduce the risk of leakage.
By randomly selecting relayers and computing node groups, and generating relayers and computing nodes through multiple steps, the secure transmission and computation of data fragments are ensured, reducing process complexity and improving computational efficiency.
It reduces the risk of data leakage, improves computing efficiency and accuracy, reduces the number of participants, and enhances system performance.
Smart Images

Figure CN116707785B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of secret sharing technology, and in particular to secret sharing methods, apparatus and systems for multi-party computation. Background Technology
[0002] With the continuous development of fintech, especially internet fintech, more and more technologies (such as distributed systems, blockchain, artificial intelligence, etc.) are being applied in the financial field. However, the financial industry is also placing higher demands on technology, such as on the distribution of tasks to be completed.
[0003] Secret sharing is a key technology that divides and stores secrets. To prevent secrets from becoming too centralized, secrets are broken down into multiple shares and each share is distributed to different people. When the original secret needs to be obtained, multiple shares of the secret are required to restore the original secret, thus realizing the function of multiple people sharing secrets to prevent risks.
[0004] Multi-party secret sharing is often used in financial risk control scenarios. A common approach is to slice the secret to be shared into multiple parts. Each participant holds one copy, and secure computation is achieved through joint holding and exchange. However, this method becomes computationally inefficient and burdensome when there are multiple sources of sharing and a large volume of secret data. Summary of the Invention
[0005] The purpose of this invention is to provide a secret sharing method, apparatus, and system to solve the problems mentioned in the background art.
[0006] To achieve the above objectives, the present invention provides the following technical solution:
[0007] A method for sharing secrets includes the following steps:
[0008] Step 1: The secret sharing participants generate a first secret data shard and a second secret data shard based on the secret data to be shared they hold; and the secret sharing participants generate a first secret data verification shard and a second secret data verification shard based on the secret data to be shared they hold; wherein, the sum of the first secret data shard and the second secret data shard, as well as the first secret data verification shard and the second secret data verification shard, are all equal to the secret data to be shared;
[0009] Step 2: The secret sharing participants randomly select two other secret sharing participants to send the first secret data fragment and the first secret data verification fragment respectively;
[0010] Step 3: The secret sharing participant who receives the first secret data fragment randomly designates one other secret sharing participant besides itself and the secret sharing participant who sent the first secret data fragment as the first relay party; the secret sharing participant who receives the first secret data verification fragment randomly designates one other secret sharing participant besides itself and the secret sharing participant who sent the first secret data verification fragment as the second relay party.
[0011] Step 4: The secret sharing participant who receives the first secret data fragment informs the secret sharing participant who sent the first secret data fragment of the designated first relay party; the secret sharing participant who receives the first secret data verification fragment informs the secret sharing participant who sent the first secret data verification fragment of the designated second relay party.
[0012] Step 5: The secret sharing participant sending the first secret data fragment sends the second secret data fragment to the first relay party; the secret sharing participant sending the first secret data verification fragment sends the second secret data verification fragment to the second relay party;
[0013] Step 6: After receiving the second secret data fragment, the first relay party selects one of the secret sharing participants (excluding itself and those who received the first secret data fragment) as the first computing node; the first relay party then transmits the second secret data fragment to the first computing node.
[0014] After receiving the second secret data verification fragment, the second relay party selects one of the secret sharing participants other than itself and those who received the first secret data verification fragment as the second computing node; the second relay party transmits the second secret data verification fragment to the second computing node;
[0015] Step 7: The first computing node receives the second secret data fragment, and the secret sharing participant who receives the first secret data fragment becomes the third computing node; the first computing node and the third computing node together form the first computing node group;
[0016] The second computing node receives the second secret data verification fragment, and the secret sharing participant who receives the second secret data verification fragment becomes the fourth computing node; the second computing node and the fourth computing node together form the second computing node group.
[0017] As a further aspect of the present invention: the first secret data verification fragment is different from both the first secret data fragment and the second secret data fragment.
[0018] As a further aspect of the present invention: in step 5, when the secret sharing participant that sends the first secret data fragment to the first relay party sends the second secret data fragment, it simultaneously transmits the information of the secret sharing participant that receives the first secret data fragment; when the secret sharing participant that sends the first secret data verification fragment to the second relay party sends the second secret data verification fragment, it simultaneously transmits the information of the first secret data verification fragment.
[0019] As a further aspect of the present invention: a first computing node group cooperates to perform multi-party secure computation and sends the computation result to all participating parties; a second computing node group cooperates to perform multi-party secure computation and sends the computation result to all participating parties; when the two computation results are the same, the computation result is determined to be correct.
[0020] A secret sharing device includes: a memory and a processor; the memory stores executable code, which, when executed by the processor, performs the aforementioned secret sharing method.
[0021] A secret sharing system is composed of multiple secret sharing participants; when the secret sharing system is running, it executes the secret sharing method described above.
[0022] The advantages of this invention are:
[0023] No data participant other than the computing nodes can directly obtain a slice that constitutes the complete secret data to be shared. Employing two computing node groups reduces process complexity and improves computational efficiency. The issuance of the first secret data slice and the first secret data verification slice are done randomly, introducing a relay party. Similarly, the relay party is randomly generated by randomly selecting participants, and the final computing node is also randomly generated by the relay party. This multi-step random generation reduces the risk of leakage. The initiator is unaware of the final complete computing node group. The relay party possesses information about the computing node group, but it does not itself possess the complete secret data to be shared, reducing the risk of direct leakage. Furthermore, the determination of the relay party involves multi-layered random generation, which also reduces the exposure of the relay party's location.
[0024] The process of confirming the computing node group does not require the participation of all parties. Only a small number of parties are involved, reducing the computational complexity of the system and improving the overall system performance.
[0025] The two-node approach ensures the accuracy of data calculations and allows for timely detection of problems in the event of data loss.
[0026] Other features and advantages of the present invention will be disclosed in detail in the following detailed description and accompanying drawings. Attached Figure Description
[0027] Figure 1This is a flowchart of the secret sharing method of the present invention. Detailed Implementation
[0028] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0029] like Figure 1 As shown, a method for sharing secrets includes the following steps:
[0030] Step 1: The secret sharing participants generate a first secret data shard and a second secret data shard based on the secret data to be shared they hold; and the secret sharing participants generate a first secret data verification shard and a second secret data verification shard based on the secret data to be shared they hold; wherein, the sum of the first secret data shard and the second secret data shard, as well as the first secret data verification shard and the second secret data verification shard, are all equal to the secret data to be shared;
[0031] Step 2: The secret sharing participants randomly select two other secret sharing participants to send the first secret data fragment and the first secret data verification fragment respectively;
[0032] Step 3: The secret sharing participant who receives the first secret data fragment randomly designates one other secret sharing participant besides itself and the secret sharing participant who sent the first secret data fragment as the first relay party; the secret sharing participant who receives the first secret data verification fragment randomly designates one other secret sharing participant besides itself and the secret sharing participant who sent the first secret data verification fragment as the second relay party.
[0033] Step 4: The secret sharing participant who receives the first secret data fragment informs the secret sharing participant who sent the first secret data fragment of the designated first relay party; the secret sharing participant who receives the first secret data verification fragment informs the secret sharing participant who sent the first secret data verification fragment of the designated second relay party.
[0034] Step 5: The secret sharing participant sending the first secret data fragment sends the second secret data fragment to the first relay party; the secret sharing participant sending the first secret data verification fragment sends the second secret data verification fragment to the second relay party;
[0035] Step 6: After receiving the second secret data fragment, the first relay party selects one of the secret sharing participants (excluding itself and those who received the first secret data fragment) as the first computing node; the first relay party then transmits the second secret data fragment to the first computing node.
[0036] After receiving the second secret data verification fragment, the second relay party selects one of the secret sharing participants other than itself and those who received the first secret data verification fragment as the second computing node; the second relay party transmits the second secret data verification fragment to the second computing node;
[0037] Step 7: The first computing node receives the second secret data fragment, and the secret sharing participant who receives the first secret data fragment becomes the third computing node; the first computing node and the third computing node together form the first computing node group;
[0038] The second computing node receives the second secret data verification fragment, and the secret sharing participant who receives the second secret data verification fragment becomes the fourth computing node; the second computing node and the fourth computing node together form the second computing node group.
[0039] In step 2, the secret sharing participants who receive the first secret data fragment and the secret sharing participants who receive the first secret data verification fragment are two different secret sharing participants.
[0040] The first and second intermediaries may be the same secret-sharing participant, or they may be different secret-risk participants. Even if they are the same secret-sharing participant, they still cannot obtain the complete secret data to be shared. The first and second intermediaries only act as data intermediaries.
[0041] The third computing node is the participant who receives the first secret data shard and shares the secret. The third computing node is a different computing node from the first computing node. The fourth computing node is the participant who receives the second secret data verification shard and shares the secret. The second computing node is a different computing node from the fourth computing node.
[0042] The first computing node avoids the third computing node during confirmation. The second computing node avoids the fourth computing node during confirmation.
[0043] The first and second computing nodes can be selected by excluding specific data participants as needed. For example, the original source of the secret data to be shared can be excluded, or data participants with a high computational load can be excluded. Two different scopes can be defined for the first and second computing nodes to avoid overlap.
[0044] Of course, the first and second computing nodes might be designated the same. Since the calculation of the first and second secret data shards, as well as the calculation of the first and second secret data verification shards, are not directly related, it does not affect the calculation or increase the risk of leakage. When there are many participants in the secret sharing, the probability of overlap decreases. During the interaction of large amounts of data, a certain degree of overlap does not significantly impact overall performance.
[0045] As a further aspect of the present invention: the first secret data verification fragment is different from both the first secret data fragment and the second secret data fragment. Any two of the first secret data verification fragment, the second secret data verification fragment, the first secret data fragment, and the second secret data fragment are different.
[0046] As a further aspect of the present invention: in step 5, when the secret sharing participant that sends the first secret data fragment to the first relay party sends the second secret data fragment, it simultaneously transmits the information of the secret sharing participant that receives the first secret data fragment; when the secret sharing participant that sends the first secret data verification fragment to the second relay party sends the second secret data verification fragment, it simultaneously transmits the information of the first secret data verification fragment.
[0047] As a further aspect of the present invention: a first computing node group cooperates to perform multi-party secure computation and sends the computation result to all participating parties; a second computing node group cooperates to perform multi-party secure computation and sends the computation result to all participating parties; when the two computation results are the same, the computation result is determined to be correct.
[0048] A secret sharing device includes: a memory and a processor; the memory stores executable code, which, when executed by the processor, performs the aforementioned secret sharing method.
[0049] A secret sharing system is composed of multiple secret sharing participants; when the secret sharing system is running, it executes the secret sharing method described above.
[0050] No data participant other than the computing nodes can directly obtain a slice that constitutes the complete secret data to be shared. Employing two computing node groups reduces process complexity and improves computational efficiency. The issuance of the first secret data slice and the first secret data verification slice are done randomly, introducing a relay party. Similarly, the relay party is randomly generated by randomly selecting participants, and the final computing node is also randomly generated by the relay party. This multi-step random generation reduces the risk of leakage. The initiator is unaware of the final complete computing node group. The relay party possesses information about the computing node group, but it does not itself possess the complete secret data to be shared, reducing the risk of direct leakage. Furthermore, the determination of the relay party involves multi-layered random generation, which also reduces the exposure of the relay party's location.
[0051] The process of confirming the computing node group does not require the participation of all parties. Only a small number of parties are involved, reducing the computational complexity of the system and improving the overall system performance.
[0052] The two-node approach ensures the accuracy of data calculations and allows for timely detection of problems in the event of data loss.
[0053] It will be apparent to those skilled in the art that the present invention is not limited to the details of the exemplary embodiments described above, and that the invention can be implemented in other specific forms without departing from its spirit or essential characteristics. Therefore, the embodiments should be considered in all respects as exemplary and non-limiting, and the scope of the invention is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be included within the present invention. No reference numerals in the claims should be construed as limiting the scope of the claims.
[0054] Furthermore, it should be understood that although this specification describes embodiments, not every embodiment contains only one independent technical solution. This narrative style is merely for clarity. Those skilled in the art should consider the specification as a whole, and the technical solutions in each embodiment can also be appropriately combined to form other embodiments that can be understood by those skilled in the art.
Claims
1. A method for sharing secrets, characterized in that, Includes the following steps: Step 1: The secret sharing participants generate a first secret data shard and a second secret data shard based on the secret data to be shared they hold; and the secret sharing participants generate a first secret data verification shard and a second secret data verification shard based on the secret data to be shared they hold; wherein, the sum of the first secret data shard and the second secret data shard is equal to the secret data to be shared; any two of the first secret data verification shard, the second secret data verification shard, the first secret data shard, and the second secret data shard are different; Step 2: The secret sharing participants randomly select two other secret sharing participants besides themselves to send the first secret data fragment and the first secret data verification fragment respectively; Step 3: The secret sharing participant who receives the first secret data fragment randomly designates a secret sharing participant other than itself and the secret sharing participant who sent the first secret data fragment as the first relay party; the secret sharing participant who receives the first secret data verification fragment randomly designates a secret sharing participant other than itself and the secret sharing participant who sent the first secret data verification fragment as the second relay party. Step 4: The secret sharing participant who receives the first secret data fragment informs the secret sharing participant who sent the first secret data fragment of the designated first relay party; the secret sharing participant who receives the first secret data verification fragment informs the secret sharing participant who sent the first secret data verification fragment of the designated second relay party. Step 5: The secret sharing participant of the first secret data fragment sends the second secret data fragment to the first relay party; the secret sharing participant of the first secret data verification fragment sends the second secret data verification fragment to the second relay party; Step 6: After receiving the second secret data fragment, the first relay party selects one of itself and the secret sharing participants other than those who received the first secret data fragment as the first computing node; the first relay party transmits the second secret data fragment to the first computing node; After receiving the second secret data verification fragment, the second relay party selects one of the secret sharing participants other than itself and those who received the first secret data verification fragment as the second computing node; the second relay party then transmits the second secret data verification fragment to the second computing node; Step 7: The first computing node receives the second secret data fragment, and the secret sharing participant who receives the first secret data fragment becomes the third computing node; the first computing node and the third computing node together form the first computing node group; The second computing node receives the second secret data verification fragment, and the secret sharing participant who receives the first secret data verification fragment becomes the fourth computing node; the second computing node and the fourth computing node together form the second computing node group.
2. The secret sharing method according to claim 1, characterized in that, In step 5, when the secret sharing participant sending the first secret data fragment to the first relay party sends the second secret data fragment, it simultaneously transmits information about the secret sharing participant receiving the first secret data fragment; when the secret sharing participant sending the first secret data verification fragment to the second relay party sends the second secret data verification fragment, it simultaneously transmits information about the first secret data verification fragment receiving.
3. The secret sharing method according to claim 1, characterized in that, The first computing node group collaborates to perform secure multi-party computation and sends the computation results to all participating parties; the second computing node group collaborates to perform secure multi-party computation and sends the computation results to all participating parties. The calculation result is considered correct when the two calculation results are the same.
4. A secret sharing device, characterized in that, include: Memory and processor; The memory stores executable code, which, when executed by a processor, performs the secret sharing method as described in any one of claims 1 to 3.
5. A secret sharing system, characterized in that, It consists of multiple parties who secretly share information; When the secret sharing system is running, it executes the secret sharing method as described in any one of claims 1 to 3.