Terminal device, computing system, computing method, and program

JPWO2024034124A5Active Publication Date: 2025-04-16NEC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024540220
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-03
Publication Date
2025-04-16
Estimated Expiration
2042-08-12
Patent Text Reader

Abstract

Provided are a terminal device, a calculation system, a calculation method, and a program for acquiring a calculation result in a realistic amount of time while concealing a portion of the data. A terminal device (1) comprises: a classification unit (11) that classifies data into first data to be secretly distributed and second data which is not to be secretly distributed; a first registration unit (12) that generates a plurality of sharing pieces from the first data, and registers the plurality of sharing pieces to a plurality of servers; a second registration unit (13) that registers the second data to one of the plurality of servers; and an acquisition unit that acquires, from the plurality of servers, a calculation result of a secret calculation using the plurality of sharing pieces, and acquires, from the server to which the second data was registered, a calculation result of a calculation using the second data.
Need to check novelty before this filing date? Find Prior Art

Description

Terminal device, computing system, computing method, and computer-readable medium

[0001] The present disclosure relates to a terminal device, a computing system, a computing method, and a computer-readable medium.

[0002] A secure computation technique is known in which computation is performed on encrypted data. Patent Document 1 describes secret sharing of data to be subjected to secure computation and registering the data in a database.

[0003] International Publication No. 2016 / 181904

[0004] Since secure computation requires a large computational cost, it is difficult for an organization to subject all of its data to secure computation.

[0005] Therefore, one of the objectives that the embodiments disclosed in this specification aim to achieve is to provide a terminal device, a computing system, a computing method, and a program that can obtain computation results in a realistic time while concealing part of the data.

[0006] A terminal device according to a first aspect of the present disclosure comprises: a classification means for classifying data into first data to be secretly shared and second data to be not secretly shared; a first registration means for generating a plurality of shares from the first data and registering the plurality of shares in a plurality of servers; a second registration means for registering the second data in one of the plurality of servers; and an acquisition means for acquiring a calculation result of a secret computation using the plurality of shares from the plurality of servers, and acquiring a calculation result of a computation using the second data from the server that registered the second data.

[0007] A computing system according to a second aspect of the present disclosure comprises a terminal device and a plurality of servers, wherein the terminal device classifies data into first data to be secretly shared and second data that is not secretly shared, generates a plurality of shares from the first data, registers the plurality of shares in a plurality of servers, registers the second data in one of the plurality of servers, obtains from the plurality of servers the results of a secret computation performed using the plurality of shares, and obtains from the server that registered the second data the results of a computation performed using the second data.

[0008] A calculation method according to a third aspect of the present disclosure includes: classifying data into first data to be secretly shared and second data to be not secretly shared; generating multiple shares from the first data; registering the multiple shares on multiple servers; registering the second data on any of the multiple servers; obtaining a calculation result using the multiple shares from the multiple servers; and obtaining a calculation result using the second data from the server that registered the second data.

[0009] A non-transitory computer-readable medium according to a fourth aspect of the present disclosure stores a program for causing a computer to execute the following processes: classifying data into first data to be secretly shared and second data not to be secretly shared; generating multiple shares from the first data and registering the multiple shares in multiple servers; registering the second data in one of the multiple servers; and obtaining a calculation result using the multiple shares from the multiple servers, and obtaining a calculation result using the second data from the server that registered the second data.

[0010] According to the present disclosure, it is possible to provide a terminal device, a computing system, a computing method, and a program that can obtain a computation result in a realistic time while concealing some data.

[0011] 1 is a block diagram showing the configuration of a terminal device according to embodiment 1. FIG. 2 is a block diagram showing the configuration of a computing system according to embodiment 2. FIG. 3 is a block diagram showing the configuration of a client terminal according to embodiment 2. FIG. 4 is a flowchart showing the flow of operations of a classification unit. FIG. 5 is a block diagram showing the configuration of a server according to embodiment 2. FIG. 6 is a diagram for explaining an example of a method of configuring a server according to embodiment 2.

[0012] 1 is a block diagram showing the configuration of a terminal device 1 according to embodiment 1. The terminal device 1 includes a classification unit 11, a first registration unit 12, a second registration unit 13, and an acquisition unit 14. The terminal device 1 is connected to at least a plurality of servers (not shown) via a network (not shown).

[0013] The classification unit 11 classifies data into first data to be secretly shared and second data to be not secretly shared. The classification unit 11 may classify data based on at least one of the confidentiality of the data and the amount of calculation expected for processing the data.

[0014] The first registration unit 12 generates a plurality of shares from the first data and registers the plurality of shares in a plurality of servers, which perform secure computation using the plurality of shares.

[0015] The second registration unit 13 registers the second data in one of a plurality of servers. The server that has registered the second data performs calculations using the second data.

[0016] The acquisition unit 14 acquires the calculation results of the secure computation using the multiple shares from the multiple servers, and acquires the calculation results of the computation using the second data from the server that registered the second data.

[0017] The terminal device 1 includes a processor, a memory, and a storage device (not shown). The storage device stores a computer program that implements the processing of the learning method according to this embodiment. The processor then loads the computer program from the storage device into the memory and executes the computer program. As a result, the processor realizes the functions of a classification unit 11, a first registration unit 12, a second registration unit 13, and an acquisition unit 14.

[0018] Alternatively, the classification unit 11, the first registration unit 12, the second registration unit 13, and the acquisition unit 14 may each be realized by dedicated hardware. Furthermore, some or all of the components of each device may be realized by general-purpose or dedicated circuits, processors, etc., or a combination thereof. These may be configured by a single chip, or by multiple chips connected via a bus. Some or all of the components of each device may be realized by a combination of the above-mentioned circuits, etc., and a program. Furthermore, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an FPGA (Field-Programmable Gate Array), etc. may be used as the processor.

[0019] Furthermore, when some or all of the components of the terminal device 1 are realized by multiple information processing devices, circuits, etc., the multiple information processing devices, circuits, etc. may be centrally or decentralized. For example, the information processing devices, circuits, etc. may be realized as a client-server system, a cloud computing system, or the like, in a form in which each is connected via a communication network. Furthermore, the functions of the terminal device 1 may be provided in the form of SaaS (Software as a Service).

[0020] The terminal device 1 according to the first embodiment can obtain the calculation result in a realistic time while concealing part of the data.

[0021] 2 is a schematic diagram showing the configuration of a computing system 100 according to embodiment 2. The computing system 100 includes a client terminal 2x, a client terminal 2y, and a client terminal 2z, and a server group 3. The client terminals 2x, 2y, and 2z are specific examples of the terminal device 1 described above.

[0022] Client terminal 2x is operated by a user belonging to organization X, client terminal 2y is operated by a user belonging to organization Y, and client terminal 2z is operated by a user belonging to organization Z. Organizations X, Y, and Z are, for example, pharmaceutical companies and chemical companies. Hereinafter, when there is no need to distinguish between client terminals 2x, 2y, and 2z, they will simply be referred to as client terminals 2.

[0023] The number of client terminals 2 is not limited to three. The number of client terminals 2 may be one, two, four or more. When there is one client terminal 2, calculations are performed based on data owned by one organization. When there are multiple client terminals 2, processing may be performed by linking data owned by multiple organizations.

[0024] The client terminal 2 and the server group 3 are connected to each other via a network N so that they can communicate with each other. The network may be wired or wireless. The network may be, for example, a VPN (Virtual Private Network).

[0025] A plurality of shares generated from the above-described first data are registered in the server group 3. The server group 3 performs secure computation using the plurality of shares. Second data is registered in one of the servers 31. The server 31 to which the second data is registered performs computation using the second data. Note that the number of servers 31 is not limited to three. However, in order to perform secure computation, it is preferable that the number of servers 31 be three or more.

[0026] 3 is a block diagram showing the configuration of the client terminal 2. The client terminal 2 includes a classification unit 21, a first registration unit 22, a second registration unit 23, a calculation request unit 24, an acquisition unit 25, and a selection unit 26.

[0027] The classification unit 21 classifies data into first data and second data. The classification unit 21 is a specific example of the classification unit 11 described above. The classification unit 21 may classify each of a plurality of item data included in a dataset of compounds into first data and second data. The compound data includes a plurality of records. Each record contains a plurality of item data (e.g., structural information of the compound, property information of the compound). The structure of the compound is represented by a fixed-length bit string, and each bit in the bit string represents the presence or absence of a predetermined structure (e.g., a benzene ring). The property value (e.g., tensile strength value) may be a value obtained by experiment, or may be a value obtained by simulation or theoretical calculation.

[0028] The classification unit 21 may classify data based on at least one of the confidentiality of the data and the amount of calculation applied to the data. The calculation applied to the data may be, for example, basic calculations such as arithmetic operations, logical operations, and database processing, or more complex calculations (e.g., machine learning). The calculation applied to the data may also be statistical calculations such as average, variance, maximum value, and minimum value. If the confidentiality of the data is high or the amount of calculation applied to the data is small, the classification unit 21 classifies the data as first data. For example, if arithmetic operations are applied to the data, the amount of calculation for the arithmetic operations is small, so the data may be classified as first data.

[0029] When the data is a parameter of a machine learning model, the classification unit 21 may classify the data as first data. Calculations applied to the parameters of a machine learning model include calculations that integrate the parameters of multiple machine learning models. Machine learning model integration involves processing with a low computational load, such as arithmetic averaging. For example, machine learning models are integrated in federated learning, which integrates local models trained on multiple client terminals 2 to generate a global model.

[0030] 4 is a flowchart showing an example of the operation of the classification unit 21. Steps S11 to S14 may be performed for each item data included in the data set.

[0031] First, the classification unit 21 of the client terminal 2 estimates the amount of calculation to be applied to the data (step S11). Next, the classification unit 21 determines whether the amount of calculation estimated in step S11 is large (step S12). For example, the classification unit 21 may determine whether the estimated amount of calculation is larger than a predetermined value. If the amount of calculation is large (YES in step S12), the classification unit 21 classifies the data into second data (step S13). If the amount of calculation is small (NO in step S12), the classification unit 21 classifies the data into first data (step S14).

[0032] The classification unit 21 may estimate the calculation time required when the calculation applied to the data is performed using secure computation, and if the estimated calculation time is longer than a specified time, classify the data as second data. The classification unit 21 may have the server group 3 perform secure computation using part of the data, and estimate the calculation time from the execution time.

[0033] 3 , the first registration unit 22 divides the first data into a plurality of shares (e.g., three shares) and registers the plurality of shares in the server group 3. The first registration unit 22 is a specific example of the first registration unit 12 described above.

[0034] The second registration unit 23 registers the second data in one of the plurality of servers 31. The second registration unit 23 is a specific example of the above-described second registration unit 13. The second registration unit 23 may register the second data in a server 31 selected by a selection unit 26 described later.

[0035] The calculation request unit 24 requests the server group 3 or the server 31 that has registered the second data to execute a calculation in response to a user input to the client terminal 2. When the calculation target is the first data, the calculation request unit 24 requests the server group 3 to perform a secure calculation process (e.g., arithmetic operations). The calculation request unit 24 transmits a calculation request indicating the calculation content and the data to be processed to the server group 3. When the calculation target is the second data, the calculation request unit 24 requests the server 31 that has registered the second data to perform a calculation process (e.g., an operation more complicated than arithmetic operations). The calculation request unit 24 transmits a calculation request indicating the calculation content and the data to be processed to the server 4.

[0036] Note that when the server group 3 or the server 31 executes predetermined processing (e.g., averaging) on ​​the first data or the second data, the client terminal 2 does not need to make a calculation request. For example, when performing federated learning, the server group 3 may integrate multiple pieces of first data at a predetermined timing. In this case, the client terminal 2 does not need to include the calculation request unit 24.

[0037] The acquisition unit 25 acquires the calculation result of the secure computation using the plurality of shares from the server group 3. The acquisition unit 25 acquires the calculation result of the computation using the second data from the server 31 that has registered the second data. The acquisition unit 25 is a specific example of the acquisition unit 14 described above. The client terminal 2 may display the acquired calculation result on a display device (not shown) such as a display or monitor.

[0038] The selection unit 26 selects a server to register the second data from among the plurality of servers 31. The selection unit 26 may collect storage usage rates and CPU usage rates from each server 31 and select a server 31 with a low storage usage rate or CPU usage rate.

[0039] The server 31 to be selected may be predetermined for each client terminal 2. In this case, the client terminal 2 does not need to include the selection unit 26.

[0040] Next, the server 31 will be described with reference to Fig. 5. The server 31 includes a share storage unit 311, a first calculation unit 312, a storage unit 313, and a second calculation unit 314.

[0041] The share storage unit 311 is a storage that stores shares generated by the first registration unit 22 of the client terminal 2. Multiple shares generated from one first data item are distributed and stored in the share storage units 311 of multiple servers 31.

[0042] The first calculation unit 312 performs secure calculation using the shares stored in the share storage unit 311. The first calculation unit 312 may perform secure calculation in response to a request from the client terminal 2, or may perform a predetermined secure calculation. Since the target data cannot be known from the shares, calculation using the shares can be said to be secure calculation. The first calculation units 312 of multiple servers 31 may cooperate to perform multi-party computation (MPC). The first calculation unit 312 transmits the calculation result of the secure calculation to the client terminal 2.

[0043] The storage unit 313 is a storage that stores the second data received from the client terminal 2 .

[0044] The second calculation unit 314 performs calculations using the second data stored in the storage unit 313. The second calculation unit 314 transmits the calculation results to the client terminal 2.

[0045] 6 is a diagram illustrating an example configuration of the server 31. A first virtual server 301 and a second virtual server 302 are running on the server 31. The first virtual server 301 includes a share storage unit 311 and a first calculation unit 312. The second virtual server 302 includes a storage unit 313 and a second calculation unit 314. The client terminal 2 transmits a request to register first data and a request to perform calculations using the first data to the first virtual server 301. Then, the client terminal 2 transmits a request to register second data and a request to perform calculations using the second data to the second virtual server 302.

[0046] The computing system according to the second embodiment can obtain computation results in a realistic time while concealing some data.

[0047] The above-described program includes a set of instructions (or software code) that, when loaded into a computer, causes the computer to perform one or more functions described in the embodiments. The program may be stored in a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable media or tangible storage media include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technologies, CD-ROM, digital versatile disc (DVD), Blu-ray (registered trademark) disc or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable media or communication media include electrical, optical, acoustic, or other forms of propagated signals.

[0048] Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the invention.

[0049] Some or all of the above embodiments can be described as, but are not limited to, the following supplementary notes. (Supplementary Note 1) A terminal device comprising: classification means for classifying data into first data to be secretly shared and second data not to be secretly shared; first registration means for generating a plurality of shares from the first data and registering the plurality of shares in a plurality of servers; second registration means for registering the second data in one of the plurality of servers; and acquisition means for acquiring a calculation result of secure computation using the plurality of shares from the plurality of servers, and acquiring a calculation result of computation using the second data from the server that registered the second data. (Supplementary Note 2) The terminal device according to Supplementary Note 1, wherein the classification means classifies the data based on at least one of the confidentiality of the data and the amount of computation applied to the data. (Supplementary Note 3) The terminal device according to either Supplementary Note 1 or 2, wherein a first virtual server that performs secure computation using the shares and a second virtual server that performs computation using the second data operate on each server. (Supplementary Note 4) The terminal device according to any one of Supplements 1 to 3, comprising a selection means for selecting a server to register the second data from the plurality of servers. (Supplementary Note 5) The terminal device according to any one of Supplements 1 to 4, wherein the classification means classifies parameters of a machine learning model into the first data. (Supplementary Note 6) The terminal device according to any one of Supplements 1 to 5, wherein the classification means classifies each item of data included in a dataset of compounds into first data or second data. (Supplementary Note 7) The terminal device according to any one of Supplements 1 to 6, comprising input means for accepting input of a specified time, wherein the classification means estimates a calculation time when a calculation applied to the data is performed using secure computation, and classifies the data into the second data if the calculation time is longer than the specified time.(Supplementary Note 8) A computing system comprising: a terminal device and a plurality of servers, wherein the terminal device classifies data into first data to be secretly shared and second data that is not secretly shared, generates a plurality of shares from the first data and registers the plurality of shares in a plurality of servers, registers the second data to one of the plurality of servers, obtains a result of a secure computation performed using the plurality of shares from the plurality of servers, and obtains a result of a computation performed using the second data from the server that registered the second data. (Supplementary Note 9) The computing system according to Supplementary Note 8, wherein the data is classified based on at least one of the confidentiality of the data and the amount of computation expected for processing the data. (Supplementary Note 10) A computing method comprising: classifying data into first data to be secretly shared and second data that is not secretly shared, generating a plurality of shares from the first data and registering the plurality of shares in a plurality of servers, registering the second data to one of the plurality of servers, obtaining a result of a computation using the plurality of shares from the plurality of servers, and obtaining a result of a computation using the second data from the server that registered the second data. (Supplementary Note 11) A non-transitory computer-readable medium storing a program for causing a computer to execute the following processes: classifying data into first data to be secretly shared and second data not to be secretly shared; generating a plurality of shares from the first data and registering the plurality of shares in a plurality of servers; registering the second data in one of the plurality of servers; and obtaining a calculation result using the plurality of shares from the plurality of servers, and obtaining a calculation result using the second data from the server that registered the second data.

[0050] 1 Terminal device 100 Computing system 2, 2x, 2y, 2z Client terminal 11, 21 Classification unit 12, 22 First registration unit 13, 23 Second registration unit 24 Computation request unit 14, 25 Acquisition unit 26 Selection unit 3, 30 Server group 31, 4 Server 311 Share storage unit 312 First calculation unit 313 Storage unit 314 Second calculation unit 301 First virtual server 302 Second virtual server N Network

Claims

1. A classification means for classifying data into first data to be secretly shared and second data not to be secretly shared; a first registration means for generating a plurality of shares from the first data and registering the plurality of shares in a plurality of servers; a second registration means for registering the second data in any one of the plurality of servers; an acquisition means for acquiring a calculation result of a secure computation using the plurality of shares from the plurality of servers, and acquiring a calculation result of a computation using the second data from a server in which the second data is registered; A terminal device comprising:

2. The classification means classifies the data based on at least one of confidentiality of the data and a computational complexity of a calculation applied to the data. The terminal device according to claim 1 .

3. On each server, a first virtual server that performs secure computation using the shares and a second virtual server that performs computation using the second data are operated.

3. The terminal device according to claim 1 or 2.

4. A selection means for selecting a server in which the second data is to be registered from among the plurality of servers. The terminal device according to claim 1 or 2, comprising:

5. The classification means classifies parameters of a machine learning model into the first data.

3. The terminal device according to claim 1 or 2.

6. The classification means classifies each item data included in the compound dataset into first data or second data.

3. The terminal device according to claim 1 or 2.

7. An input means for receiving an input of a specified time, The classification means estimates a calculation time when a calculation applied to the data is performed using secure calculation, and classifies the data into the second data if the calculation time is greater than a designated time.

3. The terminal device according to claim 1 or 2.

8. A terminal device; Multiple servers and Equipped with The terminal device Classifying data into first data to be secretly shared and second data not to be secretly shared; generating a plurality of shares from the first data and registering the plurality of shares with a plurality of servers; registering the second data in any one of the plurality of servers; Obtaining a result of a secure computation performed using the plurality of shares from the plurality of servers, and obtaining a result of a computation performed using the second data from a server that has registered the second data. Calculation system.

9. The data is classified based on at least one of the confidentiality of the data and the amount of calculation expected for processing the data. The computing system of claim 8.

10. Classifying data into first data to be secretly shared and second data not to be secretly shared; generating a plurality of shares from the first data and registering the plurality of shares with a plurality of servers; registering the second data in any one of the plurality of servers; A calculation result using the plurality of shares is obtained from the plurality of servers, and a calculation result using the second data is obtained from a server that registers the second data. Calculation method.

11. On the computer, A process of classifying data into first data to be secretly shared and second data not to be secretly shared; generating a plurality of shares from the first data and registering the plurality of shares on a plurality of servers; A process of registering the second data in any one of the plurality of servers; A process of acquiring a calculation result using the plurality of shares from the plurality of servers, and acquiring a calculation result using the second data from a server that registers the second data. A program for executing.