Multi-party joint computing method, device, equipment, medium and program product

By combining privacy computing technology and trusted execution environment technology in the trusted execution environment of the member leader, the intermediate collection results of each member group are processed in groups and plain text calculations are performed in the trusted execution environment, the problem of performance degradation and own data leakage when too many members are involved in multi-party joint computing is solved, and an efficient and secure computing process is achieved.

CN119557922APending Publication Date: 2025-03-04INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411787000.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-06
Publication Date
2025-03-04

AI Technical Summary

Technical Problem

In multi-party joint computing scenarios, when there are too many members, the performance of the existing technology will be greatly reduced, and there is a risk that its own data will be leaked to the member leaders.

Method used

By combining privacy computing technology and trusted execution environment technology in the trusted execution environment of the member leader, the intermediate pooled results of each member group are processed in the trusted execution environment, and plaintext calculations are performed in the trusted execution environment to obtain the final calculation results.

Benefits of technology

It effectively solves the problem of data leakage of members' own, and improves computing efficiency, which is suitable for situations where there are many members.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119557922A_ABST
    Figure CN119557922A_ABST
Patent Text Reader

Abstract

The invention provides a multi-party joint computing method, and relates to the technical field of privacy computing. The method is applied to a member owner and comprises the steps that firstly, a joint computing task is initiated to m members, and the m members are divided into n member groups; then an intermediate collection result sent by each member group to the credible execution environment of the member owner is received, and the intermediate collection result is obtained by combining own data and random numbers of all members in the member group; and providing target random data for the trusted execution environment, wherein the target random data is a set of random numbers or a merging result used when the n member groups obtain the intermediate collection result; and processing the received n intermediate collection results and the target random data in the trusted execution environment to obtain a final calculation result of the joint calculation task, outputting the final calculation result, and finally sending the final calculation result to m members respectively. The invention further provides a multi-party joint computing device and equipment, a storage medium and a program product.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of privacy computing, and more specifically to a method, apparatus, device, medium and program product for multi-party joint computing. Background Art

[0002] At present, in the joint computing scenarios involving multiple parties (such as statistics on the total electricity consumption in the industry, the sales volume of a certain product of all subsidiaries in the group, etc.), when the data privacy protection requirements are high and the members cannot fully trust each other, a multi-party secure joint computing mode based on a single privacy protection technology is usually adopted. In this mode, the members of the joint computing usually use the agreed single privacy computing protocol to protect the privacy of their own data and then transmit the ciphertext to the member leader, who then calculates the final result based on the ciphertext according to the privacy computing protocol. However, in this mode, if there are too many members of the joint computing (such as more than 3 parties), the performance of the joint computing will be greatly reduced. To deal with this situation, the relevant technology considers using the trusted execution environment technology for aggregate calculation, that is, the members collect the data in plaintext through a secure channel to the trusted execution environment of the member leader for plaintext calculation, so that the trusted execution environment can ensure data security, and the calculation speed will be significantly improved through plaintext calculation. However, in this way, there is a possibility that the plaintext data of the members may be leaked to the member leader, and the members have concerns. Summary of the invention

[0003] In view of the above problems, the present disclosure provides a method, apparatus, device, medium and program product for multi-party joint computing based on the combination of a trusted execution environment and privacy computing technology.

[0004] According to the first aspect of the present disclosure, a method for multi-party joint computing is provided, which is applied to a member leader. The method includes: sending notification information of a joint computing task to m members respectively, wherein the m members are divided into n member groups, the number of members in each member group is greater than or equal to 2, n is an integer greater than or equal to 2, and members of different member groups do not overlap; receiving an intermediate aggregation result sent by each member group to the trusted execution environment of the member leader, wherein the intermediate aggregation result is a response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group; providing target random data to the trusted execution environment, wherein the target random data is a collection or combined result of random numbers used by n member groups when obtaining the intermediate aggregation result; processing the received n intermediate aggregation results and the target random data in the trusted execution environment to obtain the final computing result of the joint computing task; obtaining the final computing result output by the trusted execution environment; and sending the final computing result to the m members respectively.

[0005] According to an embodiment of the present disclosure, the intermediate aggregation result is obtained by joint calculation by all members in the member group according to the secret sharding technology.

[0006] According to an embodiment of the present disclosure, the random number used by the n member groups when obtaining the intermediate aggregation result comes from a first random number sent by the member leader to each member, or a second random number generated by each member himself.

[0007] According to an embodiment of the present disclosure, providing target random data to the trusted execution environment includes: when the random number used by the n member groups to obtain the intermediate aggregation result comes from the first random number sent by the member leader to each member, transmitting the first random number stored locally by the member leader to the trusted execution environment.

[0008] According to an embodiment of the present disclosure, the sending notification information of the joint computing task to m members respectively includes: generating m first random numbers; and sending notification information of the joint computing task to the m members respectively, wherein the notification information sent to each member carries one of the m first random numbers.

[0009] According to an embodiment of the present disclosure, the receiving of the intermediate aggregation result sent by each member group to the trusted execution environment of the member leader includes: receiving the intermediate aggregation result sent by the subgroup aggregation party of the member group to the trusted execution environment through a secure channel.

[0010] According to an embodiment of the present disclosure, providing the target random data to the trusted execution environment includes: when the random number used by the n member groups to obtain the intermediate aggregation result comes from a second random number generated by each member itself, receiving the second random number sent by each member to the trusted execution environment of the member leader.

[0011] In a second aspect of the embodiment of the present disclosure, a multi-party joint computing device is provided, which is deployed in a member leader. The device includes a scheduling management module and a trusted execution environment.

[0012] A scheduling management module is used to send notification information of the joint computing task to each of the m members, and to send the final computing result output by the trusted execution environment to each of the m members after obtaining the final computing result, wherein the m members are divided into n member groups, the number of members in each member group is greater than or equal to 2, n is an integer greater than or equal to 2, and members of different member groups do not overlap.

[0013] The trusted execution environment is deployed with a receiving submodule, a random number acquisition submodule, a processing submodule and an output submodule.

[0014] The receiving submodule is used to receive the intermediate aggregation result sent by each member group to the trusted execution environment, wherein the intermediate aggregation result is the response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group.

[0015] The random number acquisition submodule is used to obtain target random data, which is a collection or a combined result of random numbers used when the n member groups obtain the intermediate aggregation result.

[0016] The processing submodule is used to process the received n intermediate aggregation results and the target random data to obtain the final calculation result of the joint calculation task.

[0017] The output submodule is used to output the final calculation result to the scheduling management module.

[0018] A third aspect of the present disclosure provides an electronic device, comprising: one or more processors; and a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the above method.

[0019] The fourth aspect of the present disclosure further provides a computer-readable storage medium having a computer program or instructions stored thereon, which implements the steps of the above method when the above computer program or instructions are executed by a processor.

[0020] The fifth aspect of the present disclosure further provides a computer program product, including a computer program or instructions, which implement the steps of the above method when the above computer program or instructions are executed by a processor.

[0021] One or more of the above-mentioned embodiments have the following advantages or beneficial effects: through the comprehensive use of privacy computing technology and trusted execution environment technology, when there are many participating members and high requirements for data privacy protection, members can be grouped and the proprietary data and random numbers of the group members can be merged into a non-plaintext intermediate aggregation result through each group, and then transmitted to the trusted execution environment of the member leader, and then aggregated and calculated in the trusted execution environment of the member leader, thereby effectively solving the problem of leakage of proprietary data to the member leader when the member party aggregates its own data to the member leader for calculation, and the computing efficiency can be improved through plaintext calculation in the trusted execution environment of the member leader without worrying about data leakage to the member leader. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The above contents and other objects, features and advantages of the present disclosure will become more apparent through the following description of the embodiments of the present disclosure with reference to the accompanying drawings, in which:

[0023] Figure 1A system architecture diagram schematically illustrates a method, apparatus, device, medium, and program product for multi-party joint computing according to an embodiment of the present disclosure;

[0024] Figure 2 A flowchart of a multi-party joint computing method according to an embodiment of the present disclosure is schematically shown;

[0025] Figure 3 A flowchart of a multi-party joint computing method according to another embodiment of the present disclosure is schematically shown;

[0026] Figure 4 A flowchart of a multi-party joint computing method according to another embodiment of the present disclosure is schematically shown;

[0027] Figure 5 A block diagram schematically shows a device for multi-party joint computing according to an embodiment of the present disclosure; and

[0028] Figure 6 The block diagram schematically shows an electronic device suitable for implementing the multi-party joint computing method according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0029] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the present disclosure. In the following detailed description, for ease of explanation, many specific details are set forth to provide a comprehensive understanding of the embodiments of the present disclosure. However, it is apparent that one or more embodiments may also be implemented without these specific details. In addition, in the following description, descriptions of known structures and technologies are omitted to avoid unnecessary confusion of the concepts of the present disclosure.

[0030] The terms used herein are only for describing specific embodiments and are not intended to limit the present disclosure. The terms "comprise", "include", etc. used herein indicate the existence of the features, steps, operations and / or components, but do not exclude the existence or addition of one or more other features, steps, operations or components.

[0031] All terms (including technical and scientific terms) used herein have the meanings commonly understood by those skilled in the art unless otherwise defined. It should be noted that the terms used herein should be interpreted as having a meaning consistent with the context of this specification and should not be interpreted in an idealized or overly rigid manner.

[0032] When using expressions such as "at least one of A, B, and C, etc.", they should generally be interpreted according to the meaning of the expression commonly understood by those skilled in the art (for example, "a system having at least one of A, B, and C" should include but is not limited to a system having A alone, B alone, C alone, A and B, A and C, B and C, and / or A, B, C, etc.).

[0033] The embodiments of the present disclosure provide a method, apparatus, device, medium and program product for multi-party joint computing. Figure 1 The system architecture diagram schematically shows the method, apparatus, device, medium and program product of multi-party joint computing according to the embodiments of the present disclosure.

[0034] like Figure 1 As shown, the system architecture includes a member leader 10 and m members participating in the joint computing (among which, Figure 1 9 members are shown in the example). In some embodiments, the member leader 10 may be unique to the 9 members. In other embodiments, the member leader 10 may also be concurrently held by one of the 9 members.

[0035] The member leader 10 may include a scheduling management module 101, a trusted execution environment 102, and a member management module 105. In some embodiments, the member leader 10 may also include a random number module 106.

[0036] The scheduling management module 101 is responsible for the scheduling of tasks, including initiating joint computing tasks and distributing final computing results.

[0037] The trusted execution environment 102 is a software operating environment built based on hardware-level isolation and secure boot mechanisms to ensure the confidentiality, integrity, authenticity and non-repudiation of data and codes related to security-sensitive applications. Among them, although the trusted execution environment 102 is deployed in the member leader 10 (such as the corresponding server device), the member leader 10 can neither obtain data directly transmitted from the outside to the trusted execution environment 102, nor execute the computing process in the trusted execution environment 102.

[0038] The member management module 105 is responsible for reviewing the addition and withdrawal of members participating in the joint computing and for grouping members. Figure 1 The 9 members shown in are divided into three groups, wherein members 11, 12, and 13 form a member group, members 21, 22, and 23 form a member group, and members 31, 32, and 33 form a member group. It should be noted that Figure 1The grouping method shown is only an example. In the embodiment of the present disclosure, after the members are grouped, the number of members in each member group is greater than or equal to 2, and the members of different groups do not overlap.

[0039] The random number module 106 is responsible for generating random numbers.

[0040] Each member may include a computing module 103 and a data module 104 .

[0041] The computing module 103 has the capability of computing multi-party secure ciphertext.

[0042] The data module 104 is responsible for processing the local data source, such as pre-processing the local data according to the agreed working protocol during the joint computing process.

[0043] In the preparation stage of initiating joint computing, the member leader 10 is responsible for organizing members to draft a work agreement. After that, the member leader 10 initiates the joint computing task, and the members process the free data in groups according to the agreed work agreement, and return the intermediate result set to the member leader 10 for summary calculation.

[0044] According to the embodiment of the present disclosure, each member group can send an intermediate aggregation result obtained by merging the own data of the group members and the random number to the trusted execution environment 102 of the member leader 10, and then the trusted execution environment 102 of the member leader 10 reverses the final calculation result of the joint computing task based on the received intermediate aggregation result and the corresponding random number and outputs it. Finally, the scheduling management module 101 of the member leader 10 distributes the final calculation result to all members.

[0045] In this way, during the entire joint computing process, on the one hand, the intermediate aggregation result transmitted to the member leader 10 is the overall calculation result of all members in each member group, and no member's own data is displayed in plain text, which can avoid the member's own data from being leaked to the member leader 10; on the other hand, the intermediate aggregation result is directly sent to the trusted execution environment 102 of the member leader 10. Due to the isolation of the trusted execution environment 102, the member leader 10 cannot obtain the intermediate aggregation result, and the data security is high; on the other hand, plain text calculation can be performed in the trusted execution environment 102 to improve the calculation efficiency, which can effectively improve the calculation efficiency when the number of members of the joint calculation is large, and there is no need to worry about data leakage.

[0046] It should be noted that the method, apparatus, device, medium and program product for multi-party joint computing provided in the embodiments of the present disclosure can be used in the field of financial technology, and can also be used in any field other than the field of financial technology. The present disclosure does not limit the application field.

[0047] In order to make the features and advantages of the embodiments of the present disclosure clearer and easier to understand, the following Figure 1 The system architecture is Figure 2~Figure 4 The multi-party joint computing method of each embodiment of the present disclosure is described in detail as follows.

[0048] Figure 2 The flowchart of the multi-party joint computing method according to an embodiment of the present disclosure is schematically shown.

[0049] like Figure 2 As shown, the multi-party joint computing method according to this embodiment may include operations S210 to S260. The method may be performed by the member leader 10.

[0050] In operation S210, notification information of the joint computing task is sent to each of the m members.

[0051] In operation S220, the intermediate aggregation result sent by each member group to the trusted execution environment 102 of the member leader 10 is received. The intermediate aggregation result is the response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group.

[0052] When sending the intermediate collection result to the trusted execution environment 102, it can be sent through a secure channel. In one embodiment, the intermediate collection result can be sent to the trusted execution environment 102 through a secure channel by a group collection party of the member group. The group collection party is a member of the member group that has established a secure channel with the trusted execution environment 102, wherein the member can install a client of the trusted execution environment and pass the security authentication of the trusted execution environment 102. When all members of the member group can communicate securely with the trusted execution environment 102, the group collection party of the member group can be any member agreed in advance.

[0053] By delivering the intermediate aggregation result to the trusted execution environment 102 through a secure channel, the transmission security of the intermediate aggregation result can be guaranteed, and even the member leader 10 cannot know the intermediate aggregation result.

[0054] Furthermore, since the intermediate aggregation result is the result of combining the private data of all members in each member group and the random number, the private data of any member can be displayed in plain text, thereby preventing the private data of the members from being leaked to the member leader 10.

[0055] In operation S230, target random data is provided to the trusted execution environment 102, where the target random data is a collection or a combined result of random numbers used when the n member groups obtain an intermediate aggregation result.

[0056] The source of random numbers used by the member group when calculating the intermediate aggregation results and the specific method of providing them to the trusted execution environment 102 can be determined by the member leader 10 and members through the drafting of a working agreement during the preparation stage before the joint computing task is initiated.

[0057] In one embodiment, the random number used by the member group when obtaining the intermediate aggregation result comes from the first random number sent to each member by the member leader 10. In this way, the member leader 10 can store the first random number locally, and transmit these first random numbers to the trusted execution environment 102 in operation S230, or read these first random numbers from the trusted execution environment 102 to the random number module 106 of the member leader 10 to obtain the above-mentioned target random data. In this way, the authenticity and correctness of the random number used in the feasible execution environment for calculation can be guaranteed.

[0058] In another embodiment, the random number used by the member group when obtaining the intermediate aggregation result can come from the second random number generated by each member. In this case, the member can transmit his second random number to the trusted execution environment 102 of the member leader 10 individually, or as a member group or in a separate team. Thus, in operation S230, the trusted execution environment 102 of the member leader 10 receives the second random number and obtains the above-mentioned target random data after aggregation. In this way, since these second random numbers are directly sent to the trusted execution environment 102 of the member leader 10, the member leader 10 cannot know these second random numbers, which can also effectively protect the security of the member's own data.

[0059] In some embodiments, the random numbers used by the member group when obtaining the intermediate aggregation results may also be partially from the random numbers sent by the member leader 10 and partially from the random numbers generated by the members themselves. In this case, the trusted execution environment 102 can read the random numbers from the random number module 106 of the member leader 10 on the one hand, and can also receive the random numbers generated by the members themselves on the other hand, and obtain the above-mentioned target random data after aggregation.

[0060] It can be seen that in the embodiment of the present disclosure, the random numbers used by the member group when calculating the intermediate aggregation results can come from the member leader 10 or the members themselves, or even other sources. Among them, the way of providing random numbers to the trusted execution environment 102 will be different in different ways, and can be flexibly used or selected according to actual needs.

[0061] Next, in operation S240 , the received n intermediate aggregation results and the target random data are processed in the trusted execution environment 102 to obtain a final computing result of the joint computing task.

[0062] And in operation S250, the final calculation result output by the trusted execution environment 102 is obtained.

[0063] Since the trusted execution environment 102 has hardware-level isolation and secure boot mechanisms, the member leader 10 can only obtain the data of the final calculation result, while the member leader 10 cannot know the data stored in the trusted execution environment 102 and the data during the calculation process.

[0064] Finally, in operation S260, the final calculation results are sent to the m members respectively, thereby completing the joint calculation task.

[0065] It can be seen that in the entire joint computing process of the embodiment of the present disclosure, on the one hand, the intermediate aggregation result transmitted to the member leader 10 is the overall computing result of all members in each member group, and the private data of any member is not displayed in plain text, which can avoid the member's private data from being leaked to the member leader 10; on the other hand, the intermediate aggregation result is directly sent to the trusted execution environment 102 of the member leader 10. Due to the isolation of the trusted execution environment 102, the member leader 10 cannot obtain the intermediate aggregation result, and the data security is high; on the other hand, plain text computing can be performed in the trusted execution environment 102 to improve computing efficiency, which can effectively improve the computing efficiency when the number of members of the joint computing is large, and there is no need to worry about data leakage.

[0066] In one embodiment, the intermediate aggregation result received in the above operation S220 is obtained by joint calculation by all members in the member group according to the secret sharding technology, thereby achieving privacy protection between the members in the member group.

[0067] Specifically, all members in the member group can calculate the intermediate aggregation result based on their own data and the random numbers they obtain (such as those obtained from the member leader 10 or generated locally by themselves) through secret sharding technology. Figure 1 ,The process of jointly calculating the intermediate aggregate results for all members in the group according to the ,secret sharding technology is described as follows.

[0068] First, each member in the member group combines his own data and the random number he obtained and splits it into r secrets, where r is the number of members in the group. Then each member keeps one secret and sends the other r-1 secrets to other members in the group. Each member receives the secrets shared by other members in the group to obtain r-1 secrets of others.

[0069] For example, member 11 calculates A+R1=A1+A2+A3 (A is member 11's own data, R1 is a random number), and then gives A2 to member 12 and A3 to member 13.

[0070] Member 12 calculates B+R2=B1+B2+B3 (B is member 12's own data, R2 is a random number), and then gives B1 to member 11 and B3 to member 13.

[0071] Member 13 calculates C+R3=C1+C2+C3 (C is member 13's own data, R3 is a random number), and then gives C1 to member 11 and C2 to member 12.

[0072] Next, each member combines the secret it retains with the r-1 secrets received from others to obtain a preliminary summary result.

[0073] For example, member 11 calculates: S1=A1+B1+C1.

[0074] Member 12 calculates S2=A2+B2+C2.

[0075] Calculation for member 13: S3=A3+B3+C3.

[0076] Finally, the group aggregation party of the member group can aggregate the preliminary aggregation results of all members in the member group to obtain the intermediate aggregation results.

[0077] Assuming that member 11 is the group aggregation party, member 11 reads S1 locally, and receives S2 sent by member 12 and S3 sent by member 13 at the same time. Then member 11 performs the following calculations:

[0078] S123=S1+S2+S3=(A1+B1+C1)+(A2+B2+C2)+(A3+B3+C3)=(A1+A2+A3)+(B1+B2+B3)+(C1+C2+C3)=A+B+C+R1+R2+R3.

[0079] Among them, S123 is the intermediate aggregation result.

[0080] In this way, privacy computing is performed within the member group through secret sharding technology, thereby achieving privacy protection among members within the member group.

[0081] According to the calculation process of the intermediate aggregation result S123, it can be seen that S123 is the merged result of the respective own data (A, B, C) and random numbers (R1, R2, R3) of member 11, member 12 and member 13.

[0082] Accordingly, when the trusted execution environment 102 of the member leader 10 receives the intermediate aggregation results S123 of all member groups and obtains the random numbers used in the calculation of all intermediate aggregation results, the trusted execution environment 102 of the member leader 10 can perform calculations to obtain the final calculation result S:

[0083]

[0084] Among them, n is the number of member groups, m is the number of members, and S is the final calculation result.

[0085] When computing in the trusted execution environment 102, plain text computing can be used, which has high computing efficiency. Since the trusted execution environment 102 is isolated, the plain text cannot be known by the outside world, and the intermediate collection results participating in the computing are not the plain text of the own data, which further protects the privacy of the members' own data.

[0086] Figure 3 A flowchart of a method for multi-party joint computing according to another embodiment of the present disclosure is schematically shown, specifically illustrating an embodiment in which the random number used by the member group to obtain the intermediate aggregation result comes from the first random number sent by the member leader 10 to each member.

[0087] Specifically, Figure 3 As shown, the multi-party joint computing method according to this embodiment may include operation S311, operation S312, operation S220, operation S331, and operations S240 to S260.

[0088] First, in operation S311, m first random numbers are generated.

[0089] Then in operation S312, notification information of the joint computing task is sent to the m members respectively, wherein the notification information sent to each member carries one of the m first random numbers.

[0090] Specifically, the member leader 10 scheduling management module applies for the corresponding number of first random numbers from the random number module according to the number of members m, and then initiates a joint computing task to all members, wherein the corresponding first random number is included in the notification information of the initiated task, so that each member obtains the corresponding first random number.

[0091] Next, in operation S220, the intermediate aggregation result sent by each member group to the trusted execution environment 102 of the member leader 10 is received, wherein the intermediate aggregation result is the response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group.

[0092] And in operation S331 , the first random number stored locally by the member leader 10 is transmitted to the trusted execution environment 102 .

[0093] In operation S240 , the received n intermediate aggregation results and the target random data are processed in the trusted execution environment 102 to obtain a final computing result of the joint computing task.

[0094] In operation S250 , the final calculation result output by the trusted execution environment 102 is obtained.

[0095] In operation S260, the final calculation results are sent to the m members respectively.

[0096] In this embodiment, operation S220 and operations S240 to S260 are consistent with those described above and are not described again here.

[0097] In this embodiment, the member leader 10 sends random numbers to members by carrying the first random number in the notification information of the joint computing task, which can reduce the number of communications between the member leader 10 and the members. Furthermore, the member leader 10 can read these random numbers locally and provide them to the feasible execution environment for processing, which can ensure the authenticity and correctness of the random numbers used in the feasible execution environment for calculation, and reduce the communication between the member group (or member) and the trusted execution environment 102 of the member leader 10.

[0098] Figure 4 A flowchart of a method for multi-party joint computing according to another embodiment of the present disclosure is schematically shown, specifically illustrating an embodiment in which the random number used by a member group when obtaining an intermediate aggregation result comes from a second random number generated by each member itself.

[0099] like Figure 4 As shown, the multi-party joint computing method according to this embodiment may include operations S210 to S220, operation S431, and operations S240 to S260.

[0100] In operation S210, notification information of the joint computing task is sent to each of the m members.

[0101] In operation S220, the intermediate aggregation result sent by each member group to the trusted execution environment 102 of the member leader 10 is received, wherein the intermediate aggregation result is the response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group.

[0102] In operation S431, when the random number used when the n member groups obtain the intermediate aggregation result comes from the second random number generated by each member itself, the second random number sent by each member to the trusted execution environment 102 of the member leader 10 is received.

[0103] In operation S240 , the received n intermediate aggregation results and the target random data are processed in the trusted execution environment 102 to obtain a final computing result of the joint computing task.

[0104] In operation S250 , the final calculation result output by the trusted execution environment 102 is obtained.

[0105] In operation S260, the final calculation results are sent to the m members respectively.

[0106] In this embodiment, the random number used when calculating the intermediate aggregation result can also be the second random number generated by each member, and each member sends the second random number used by himself to the trusted execution environment 102 of the member leader 10. In this way, on the one hand, since the second random number is directly provided to the trusted execution environment 102 of the member leader 10, the member leader 10 cannot know these second random numbers, which can effectively protect the security of the members' own data. On the other hand, since each member sends his second random number to the trusted execution environment 102 of the member leader 10 separately, it can also prevent members (especially members within the group) from mastering their own random numbers, further strengthening the privacy protection between members.

[0107] Figure 5 The block diagram of a multi-party joint computing device 500 according to an embodiment of the present disclosure is schematically shown. The device 500 is deployed in a member leader 10.

[0108] like Figure 5 As shown, the apparatus 500 may include a scheduling management module 101 and a trusted execution environment 102 .

[0109] The scheduling management module 101 is used to send notification information of the joint computing task to the m members respectively, wherein the m members are divided into n member groups, the number of members in each member group is greater than or equal to 2, n is an integer greater than or equal to 2, and the members of different member groups do not overlap. In one embodiment, the scheduling management module 101 can perform the operation S210 described above. In another embodiment, the scheduling management module 101 can perform the operations S311 and S312 described above.

[0110] A receiving submodule 51 , a random number obtaining submodule 52 , a processing submodule 53 and an output submodule 54 are deployed in the trusted execution environment 102 .

[0111] The receiving submodule 51 is used to receive the intermediate aggregation result sent by each member group to the trusted execution environment 102, wherein the intermediate aggregation result is the response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group. In one embodiment, the receiving submodule 51 can perform the operation S220 described above.

[0112] The random number acquisition submodule 52 is used to obtain target random data, which is a collection or a combined result of random numbers used when the n member groups obtain the intermediate aggregation result. In one embodiment, the random number acquisition submodule 52 can perform the operation S230 described above. In another embodiment, the random number acquisition submodule 52 can perform the operation S331 described above. In yet another embodiment, the random number acquisition submodule 52 can perform the operation S431 described above.

[0113] The processing submodule 53 is used to process the received n intermediate aggregation results and the target random data to obtain the final calculation result of the joint calculation task. In one embodiment, the processing submodule 53 can perform the operation S240 described above.

[0114] The output submodule 54 is used to output the final calculation result to the scheduling management module.

[0115] The scheduling management module 101 is also used to send the final calculation result to the m members respectively after receiving the final calculation result. In one embodiment, the scheduling management module 101 can also perform the operations S250 and S260 described above.

[0116] The apparatus 500 may perform reference Figure 2~Figure 4 The described method is specifically described in the previous article and will not be repeated here.

[0117] According to an embodiment of the present disclosure, the scheduling management module 101, the trusted execution environment 102, the member management module 105, the random number module 106, the calculation module 103, the data module 104, and any multiple modules of the receiving submodule 51, the random number acquisition submodule 52, the processing submodule 53 and the output submodule 54 in the trusted execution environment 102 can be combined into one module for implementation, or any one of the modules can be split into multiple modules. Alternatively, at least part of the functions of one or more of these modules can be combined with at least part of the functions of other modules and implemented in one module. According to an embodiment of the present disclosure, the scheduling management module 101, the trusted execution environment 102, the member management module 105, the random number module 106, the computing module 103 and the data module 104, and at least one of the receiving submodule 51, the random number acquisition submodule 52, the processing submodule 53 and the output submodule 54 in the trusted execution environment 102 can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on a chip, a system on a substrate, a system on a package, an application-specific integrated circuit (ASIC), or can be implemented by hardware or firmware such as any other reasonable way of integrating or packaging the circuit, or can be implemented in any one of the three implementation methods of software, hardware and firmware or in an appropriate combination of any of them. Alternatively, the scheduling management module 101, the trusted execution environment 102, the member management module 105, the random number module 106, the computing module 103 and the data module 104, as well as at least one of the receiving submodule 51, the random number acquisition submodule 52, the processing submodule 53 and the output submodule 54 in the trusted execution environment 102 can be at least partially implemented as a computer program module, which can execute corresponding functions when the computer program module is run.

[0118] Figure 6 The block diagram schematically shows an electronic device suitable for implementing the multi-party joint computing method according to an embodiment of the present disclosure.

[0119] like Figure 6 As shown, the electronic device 600 according to an embodiment of the present disclosure includes a processor 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage part 608 to a random access memory (RAM) 603. The processor 601 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or a related chipset and / or a dedicated microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 601 may also include an onboard memory for caching purposes. The processor 601 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present disclosure.

[0120] In RAM 603, various programs and data required for the operation of electronic device 600 are stored. Processor 601, ROM 602 and RAM 603 are connected to each other via bus 604. Processor 601 performs various operations of the method flow according to the embodiment of the present disclosure by executing the program in ROM 602 and / or RAM 603. It should be noted that the program can also be stored in one or more memories other than ROM 602 and RAM 603. Processor 601 can also perform various operations of the method flow according to the embodiment of the present disclosure by executing the program stored in the one or more memories.

[0121] According to an embodiment of the present disclosure, the electronic device 600 may further include an input / output (I / O) interface 605, which is also connected to the bus 604. The electronic device 600 may further include one or more of the following components connected to the input / output (I / O) interface 605: an input portion 606 including a keyboard, a mouse, etc.; an output portion 607 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage portion 608 including a hard disk, etc.; and a communication portion 609 including a network interface card such as a LAN card, a modem, etc. The communication portion 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the input / output (I / O) interface 605 as needed. A removable medium 611, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 610 as needed, so that a computer program read therefrom is installed into the storage portion 608 as needed.

[0122] The present disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or may exist independently without being assembled into the device / apparatus / system. The above computer-readable storage medium carries one or more programs, and when the above one or more programs are executed, the method according to the embodiment of the present disclosure is implemented.

[0123] According to an embodiment of the present disclosure, the computer-readable storage medium may be a non-volatile computer-readable storage medium, for example, it may include but is not limited to: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, an apparatus or a device. For example, according to an embodiment of the present disclosure, the computer-readable storage medium may include the ROM 602 and / or RAM 603 described above and / or one or more memories other than ROM 602 and RAM 603.

[0124] The embodiment of the present disclosure also includes a computer program product, which includes a computer program, and the computer program contains program code for executing the method shown in the flowchart. When the computer program product is run in a computer system, the program code is used to enable the computer system to implement the method provided by the embodiment of the present disclosure.

[0125] The above functions defined in the system / device of the embodiment of the present disclosure are performed when the computer program is executed by the processor 601. According to the embodiment of the present disclosure, the system, device, module, unit, etc. described above can be implemented by a computer program module.

[0126] In one embodiment, the computer program may rely on tangible storage media such as optical storage devices, magnetic storage devices, etc. In another embodiment, the computer program may also be transmitted and distributed in the form of signals on a network medium, and downloaded and installed through the communication part 609, and / or installed from a removable medium 611. The program code contained in the computer program may be transmitted using any appropriate network medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.

[0127] In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 609, and / or installed from the removable medium 611. When the computer program is executed by the processor 601, the above functions defined in the system of the embodiment of the present disclosure are performed. According to the embodiment of the present disclosure, the system, device, apparatus, module, unit, etc. described above can be implemented by a computer program module.

[0128] According to an embodiment of the present disclosure, the program code for executing the computer program provided by the embodiment of the present disclosure can be written in any combination of one or more programming languages. Specifically, these computing programs can be implemented using high-level process and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, Java, C++, python, "C" language or similar programming languages. The program code can be executed entirely on the user computing device, partially on the user device, partially on the remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using an Internet service provider to connect through the Internet).

[0129] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the above-mentioned module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0130] It will be appreciated by those skilled in the art that the features described in the various embodiments of the present disclosure may be combined and / or combined in a variety of ways, even if such combinations or combinations are not explicitly described in the present disclosure. In particular, without departing from the spirit and teachings of the present disclosure, the features described in the various embodiments of the present disclosure may be combined and / or combined in a variety of ways. All of these combinations and / or combinations fall within the scope of the present disclosure.

[0131] The embodiments of the present disclosure are described above. However, these embodiments are only for illustrative purposes and are not intended to limit the scope of the present disclosure. Although the embodiments are described above, this does not mean that the measures in the various embodiments cannot be used in combination to advantage. Without departing from the scope of the present disclosure, those skilled in the art may make a variety of substitutions and modifications, which should all fall within the scope of the present disclosure.

Claims

1. A multi-party joint computing method, applied to member leaders, where: The method comprises: Send notification information of the joint computing task to each of the m members, wherein the m members are divided into n member groups, the number of members in each member group is greater than or equal to 2, n is an integer greater than or equal to 2, and members of different member groups do not overlap; Receiving an intermediate aggregation result sent by each member group to the trusted execution environment of the member leader, wherein the intermediate aggregation result is a response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group; Providing target random data to the trusted execution environment, wherein the target random data is a collection or a combined result of random numbers used by the n member groups when obtaining the intermediate aggregation result; Processing the received n intermediate aggregation results and the target random data in the trusted execution environment to obtain a final calculation result of the joint computing task; Obtaining the final calculation result output by the trusted execution environment; and The final calculation result is sent to the m members respectively.

2. The method according to claim 1, wherein: The intermediate aggregation result is obtained by joint calculation by all members in the member group according to the secret sharding technology.

3. The method according to claim 1 or 2, wherein: The random number used by the n member groups when obtaining the intermediate aggregation result comes from the first random number sent by the member leader to each member, or the second random number generated by each member itself.

4. The method according to claim 3, wherein: Providing target random data to the trusted execution environment comprises: In the case where the random number used when the n member groups obtain the intermediate aggregation result comes from the first random number sent by the member leader to each member, the first random number locally stored by the member leader is transmitted to the trusted execution environment.

5. The method according to claim 4, wherein: The sending notification information of the joint computing task to the m members respectively includes: generating m first random numbers; and Notification information of the joint computing task is sent to the m members respectively, wherein the notification information sent to each member carries one of the m first random numbers.

6. The method according to claim 5, wherein: The receiving of the intermediate aggregation result sent by each member group to the trusted execution environment of the member leader includes: The intermediate aggregation result is sent by the group aggregation party of the receiving member group to the trusted execution environment through the secure channel.

7. The method according to claim 3, wherein: Providing target random data to the trusted execution environment comprises: In a case where the random number used by the n member groups when obtaining the intermediate aggregation result comes from a second random number generated by each member itself, the second random number sent by each member to the trusted execution environment of the member leader is received.

8. A multi-party joint computing device, deployed at the member leader, wherein: The device comprises: A scheduling management module, used to send notification information of the joint computing task to the m members respectively, wherein the m members are divided into n member groups, the number of members in each member group is greater than or equal to 2, n is an integer greater than or equal to 2, and members of different member groups do not overlap; A trusted execution environment, wherein a receiving submodule, a random number acquisition submodule, a processing submodule and an output submodule are deployed in the trusted execution environment; wherein, The receiving submodule is used to receive the intermediate aggregation result sent by each member group to the trusted execution environment, wherein the intermediate aggregation result is a response result of the member group to the joint computing task, which is obtained by combining the own data and random numbers of all members in the member group; The random number acquisition submodule is used to acquire target random data, where the target random data is a collection or a combined result of random numbers used when the n member groups obtain the intermediate aggregation result; and A processing submodule, used to process the received n intermediate aggregation results and the target random data to obtain the final calculation result of the joint calculation task An output submodule, used for outputting the final calculation result to the scheduling management module; The scheduling management module is also used to send the final calculation results to the m members respectively.

9. An electronic device, comprising: one or more processors; a memory for storing one or more computer programs, The one or more processors execute the one or more computer programs to implement the steps of the method according to any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program or instruction stored thereon, wherein: When the computer program or instruction is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

11. A computer program product comprising a computer program or instructions, wherein: When the computer program or instruction is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.