Information processing device

The information processing device optimizes secure computation by assigning secure computation methods to nodes based on their attributes, enhancing throughput and resource efficiency in distributed data processing systems.

JP7861656B2Active Publication Date: 2026-05-19TOYOTA JIDOSHA KK
View PDF 9 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TOYOTA JIDOSHA KK
Filing Date
2023-02-15
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing technologies face challenges in efficiently performing distributed data processing using secure computation, particularly when high-speed homomorphic encryption is required, as they often rely on costly and resource-intensive methods like TEE or secure tunneling.

Method used

An information processing device that assigns different types of secure computation methods to nodes based on their attributes, optimizing the allocation of transforms across multiple nodes to improve throughput and resource efficiency.

Benefits of technology

This approach enables efficient and suitable implementation of distributed data processing by reducing waiting times and improving resource utilization in secure computation tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007861656000001
    Figure 0007861656000001
  • Figure 0007861656000002
    Figure 0007861656000002
  • Figure 0007861656000003
    Figure 0007861656000003
Patent Text Reader

Abstract

To allow dispersed data processing of secret calculation preferably.SOLUTION: The present invention is directed to an information processing apparatus having a control unit for allocating transform of a first secret calculation method among secret calculation methods of plural kinds executed in dispersed data processing for a plurality of nodes which can be allocated for the dispersed data processing and each of which has at least one of node attributes corresponding to the secret calculation method of plural kinds, to a node having a node attribute corresponding to the first secret calculation method.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to an information processing device. [Background technology]

[0002] Conventionally, when it is desirable to perform some homomorphic encryption processing at high speed on a GPU, there is a technology that uses TEE or secure tunneling to encrypt the communication channel through which data is passed to the GPU (for example, Patent Document 1). [Prior art documents] [Patent Documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2019-191575 [Overview of the project] [Problems that the invention aims to solve]

[0004] This disclosure aims to provide an information processing device capable of suitably performing distributed data processing using secure computation. [Means for solving the problem]

[0005] One aspect of the present disclosure is an information processing device that includes a control unit which assigns a transform of a first type of secure computation method to a node attribute having a node attribute corresponding to a first type of secure computation method, to a plurality of nodes that can be assigned to distributed data processing, the plurality of nodes having at least one of a plurality of node attributes corresponding to a plurality of types of secure computation methods.

[0006] Aspects of this disclosure may include an information processing method using the information processing device described above, an information processing system including the information processing device described above, a program for operating a computer as the information processing device described above, or a non-temporary recording medium on which the program is stored. [Effects of the Invention]

[0007] This disclosure enables suitable implementation of distributed data processing for secure computation. [Brief explanation of the drawing]

[0008] [Figure 1] Figure 1A is an explanatory diagram of distributed data processing, and Figure 1B is an explanatory diagram of node attributes and transform assignments to nodes. [Figure 2] Figure 2 shows an example of the configuration of an information processing device. [Figure 3] Figure 3 is a state transition diagram of the transform. [Figure 4] Figure 4 is a flowchart showing an example of the allocation process. [Figure 5] Figure 5 is a flowchart showing an example of the allocation process. [Figure 6] Figure 6 is a flowchart showing examples of scale-out and scale-in processes. [Modes for carrying out the invention]

[0009] The information processing apparatus according to the embodiment includes a control unit. The control unit assigns a transform of a first secret computation method, among the multiple types of secret computation methods executed in the distributed data processing, to a node attribute having the node attribute corresponding to the first secret computation method, to a plurality of nodes that can be assigned to distributed data processing and each node has at least one of the node attributes corresponding to a plurality of types of secret computation methods.

[0010] The information processing apparatus according to the embodiment will be described below with reference to the drawings. The configuration of the embodiment is illustrative and is not limited to the configuration of the embodiment.

[0011] <Distributed Data Processing System> FIG. 1A shows an example of a distributed data processing system. In FIG. 1A, as an example of a distributed data processing system, a system that performs distributed data processing in stream processing is illustrated. However, the distributed data processing system and the method of allocating nodes to transforms, which will be described later, are applicable to both stream processing (real-time processing) and batch processing. In other words, the data to be subjected to distributed data processing may be real-time data or non-real-time data. Note that stream processing is to process streaming data in real time. Streaming data is data that is generated without limit over time.

[0012] In FIG. 1A, data flows from the left to the right of the page. In the distributed data processing system, a plurality of nodes (processing elements) that perform predetermined processing on the data are arranged. A node is a computer that performs predetermined processing. Appropriate units such as a process, a processor (CPU, GPU, etc.), a server, etc. may be adopted as the unit of a node.

[0013] In FIG. 1A, the node at the left end of the page performs distributed processing. In the next stage, a plurality of nodes (illustrated by three) that perform a certain transform T1 are arranged, and the transform T1 on the data is distributed and arranged in the three nodes in the next stage. Such a method of distributing one processing to a plurality of nodes is called distributed processing. A transform is processing such as data manipulation and calculation.

[0014] After each node that performs transform T1, three nodes that perform a transform T2 different from transform T1 are arranged with the output of transform T1 as an input. Further, after each node that performs transform T3, three nodes that perform a transform T3 different from transform T2 are arranged with the output of transform T2 as an input. And after the nodes that perform transform T3 respectively, nodes that aggregate the processing results of the respective transforms T3 are arranged.

[0015] In the above, the output of processing elements (nodes) such as transformer T1 → transformer T2 → transformer T3 is used as the input of the next processing element (node) to perform the next processing, which is called pipeline processing. And an array of nodes (processes) that perform a flow operation such as transformer T1 → transformer T2 → transformer T3 is called a pipeline.

[0016] In the example of the distributed data processing system shown in FIG. 1A, it is configured such that three pipelines of pipeline processing are executed in parallel by distributed processing, but the distributed data processing system is not limited to such a configuration. The number of nodes, the number of stages (steps), the number of distributions of one process, the type of transform, etc. constituting the distributed data processing system can be appropriately set according to the purpose of secure computation.

[0017] <Method of Allocating Transformer> FIG. 1B is a diagram for explaining a method of allocating node attributes and transform in the embodiment. Node 11 is composed of a processor that executes a process, or a server having one or more processors, etc. In FIG. 1B, three nodes 11a to 11c are illustrated, but the number of nodes 11 can be appropriately set if it is larger than the number of distributions in the case of performing distributed processing. The performance (such as processing speed) of the processors or servers constituting node 11 may not be uniform. In this embodiment, a method of constructing a suitable distributed data processing system (for example, obtaining good throughput) by absorbing the variation in performance between nodes 11 will be described. In this embodiment, secure computation is assumed in the distributed data processing by the distributed data processing system. Data operations, processes, calculations, etc. performed in secure computation are classified into any of a plurality of types of secure computation methods, and node attributes corresponding to each secure computation method are defined. The granularity of data operations, processes, or calculations used for classifying secure computation methods can be appropriately set.

[0018] In this embodiment, in the distributed data processing by the distributed data processing system, secure computation is assumed. The data operations, processes, calculations, etc. performed in secure computation are classified into any of a plurality of types of secure computation methods, and node attributes corresponding to each secure computation method are defined. The granularity of data operations, processes, or calculations used for classifying secure computation methods can be appropriately set.

[0019] In this embodiment, as an example, the secure computation method (including those that rely on transforms and watermarks) consists of a "ciphertext matching comparison transform," a "homomorphic encryption transform," and a "TEE (Trusted Execution Environment) transform." To be classified.

[0020] The "ciphertext matching comparison transform" is a classification of transforms that primarily determine whether a specific field (ciphertext) of an encrypted event matches a target. Examples of transforms classified as "ciphertext matching comparison transforms" include the following: Filtering by constant matching. In this case, a method is employed to register the pipeline with the constant portion encrypted using the source data key. • Matching the join key in an INNER JOIN (SQL syntax for joining tables). Fields grouping

[0021] The "ciphertext match comparison transform" primarily involves determining the match of the comparison targets in host memory, and therefore its cost (processing load, required hardware performance) is lower than that of the "homomorphic encryption transform" and the "TEE transform."

[0022] "Homomorphic encryption transforms" is a classification that primarily involves transforms that perform operations on data while it remains encrypted using homomorphic encryption. Homomorphic encryption is a public-key cryptography that allows computation without decrypting the ciphertext. Homomorphic encryption includes additive homomorphic encryption, multiplicative homomorphic encryption, and fully homomorphic encryption.

[0023] Examples of transforms classified as "homomorphic cryptographic transforms" are as follows: • Element-wise calculations such as arithmetic operations. • Time window (allocation portion) • Session window (window merging section)

[0024] The "homomorphic encryption transform" has a broader computation class than the "ciphertext match comparison transform." It can be an effective transform in situations where the "TEE transform" cannot be used.

[0025] "TEE Transform" is a classification that primarily involves transforms that perform calculations using TEE. TEE is a hardware-assisted technology that enables the placement of data to be kept secret in a trusted area and the completion of processing using that data within that trusted area. The trusted area is called an Enclave (isolated area) in the OS (Operating System). It is an isolated execution environment independent of the system and cannot be accessed from the outside. Encrypted data is isolated. The data is passed to a separate region, decoded within that region, and the transform operation is performed. TEE is a high-cost technology that requires specialized hardware.

[0026] In this embodiment, it is preferable to classify at least the secure computation methods (transforms) into "TEE transforms" and "non-TEE transforms."

[0027] Node attributes are prepared according to the classification result of the secure computation method (transform). In this embodiment, the following node attributes are provided as an example. The number of node attribute types can be set to a number corresponding to the number of secure computation types (2 or 4 or more). • Node attribute "Ciphertext Match Comparison Node" corresponding to "Ciphertext Match Comparison Transform" • Node attribute "Homomorphic Encryption Node" corresponding to "Homomorphic Encryption Transform" and • "TEE Node" that supports "TEE Transform"

[0028] Each of the 11 nodes is assigned at least one of the three node attributes described above.

[0029] In the example shown in Figure 1B, node 11a is assigned a "ciphertext match comparison node," a "homomorphic encryption node," and a "TEE node." Node 11b is assigned a "ciphertext match comparison node." And node 11c is assigned a "ciphertext match comparison node," a "homomorphic encryption node," and a "TEE node."

[0030] The assignment of node attributes to each of the 11 nodes can be done considering the content of the transforms performed in distributed data processing, the hardware performance of each of the 11 nodes, and so on. Each of the 11 nodes can be in one of two states: an active state in which transforms corresponding to the assigned node attributes can be executed, or a dormant state (inactive state).

[0031] State transitions between active and inactive states are achieved by assigning transforms according to node attributes. The distributed data processing system assigns transforms to execution nodes at predetermined timings, such as when pipeline processing starts, when the number of active nodes increases or decreases, and other scheduling opportunities.

[0032] The allocation is performed, for example, by a scheduler 10 as shown in Figure 1B. However, it may also be performed by an execution entity other than the scheduler 10 (such as a process).

[0033] The scheduler 10 assigns a transform to a node 11 that has a node attribute assigned to it that corresponds to the type (classification) of the transform. In the example shown in Figure 1B, the scheduler 10 can assign the "TEE transform" to node 11a. The scheduler 10 can also assign the "homomorphic encryption transform" to nodes 11a and 11c. Furthermore, the scheduler 10 can assign the "ciphertext matching comparison transform" to nodes 11a, 11b, and 11c. This matching of transform types and node attributes ensures that each transform is executable at the assigned node 11.

[0034] <Node and Scheduler Hardware Configuration> Figure 2 shows an example of the hardware configuration of an information processing device that can operate as scheduler 10 and node 11, respectively. In Figure 2, the information processing device 20 can be configured using a dedicated or general-purpose information processing device (computer) such as a personal computer (PC), workstation (WS), or server machine. However, the information processing device 20 may also be a collection of one or more computers (cloud). Also, node 11 This may be a processor 21 mounted on the information processing device 20, or a process executed by the processor 21.

[0035] The information processing device 20 includes a processor 21 acting as a processing unit or control unit (controller), a storage device 22, a communication interface 23 (communication IF 23), an input device 24, and a display 25, all interconnected via a bus 26.

[0036] The storage device 22 includes main memory and auxiliary storage. The main memory is used as at least one of the following: a program and data storage area, a program deployment area, a program work area, and a communication data buffer area. The main memory consists of RAM (Random Access Memory), or a combination of RAM and ROM (Read Only Memory). The auxiliary storage is used as a data and program storage area. Non-volatile storage media are used for the auxiliary storage. Non-volatile storage media include, for example, hard disks, solid state drives (SSDs), flash memory, or EEPROM (Electrically Erasable Programmable Read-Only Memory). The storage device 22 may also include a drive device for a disk recording medium.

[0037] Communication IF23 is a circuit that performs communication processing. For example, communication IF23 is a network interface card (NIC). Alternatively, communication IF23 may be a wireless communication circuit that performs wireless communication (5G, wireless LAN (including Wi-Fi), BLE, etc.). The IF23 may be a combination of a wired communication processing circuit and a wireless communication circuit.

[0038] The input device 24 includes keys, buttons, pointing devices, and touch panels, and is used for inputting information. The display 25 is, for example, a liquid crystal display and displays information and data.

[0039] The processor 21 performs various processes by executing various programs stored in the storage device 22. By the processor 21 executing the programs stored in the storage device 22, the information processing device 20 can operate as a scheduler 10 or a node 11.

[0040] The processor 21 is, for example, a Central Processing Unit (CPU). A CPU is also called a Microprocessor Unit (MPU). The processor 21 may be a single-processor configuration or a multi-processor configuration. A single physical CPU connected by a single socket may have a multi-core configuration. The processor 21 may include various circuit configurations of arithmetic units such as a Digital Signal Processor (DSP) or a Graphics Processing Unit (GPU). The processor 21 may also have a configuration that works in conjunction with at least one of the following: an integrated circuit (IC), other digital circuits, and analog circuits. Integrated circuits include LSIs, Application Specific Integrated Circuits (ASICs), and programmers. This includes, for example, a Field-Programmable Gate Array (FPGA) for a PLD. The processor 21 is, for example, a microcontroller (MCU). This includes what are called SoCs (System-on-a-chip), system LSIs, or chipsets.

[0041] <Details on allocation method> The following details how to assign transforms. Figure 3 shows the execution state of a transform. A transform can be in the following states: "Waiting" (state ST1), "Ready to Run" (state ST2), and "Running" (state ST3). In "Waiting" state, the transform waits for all the necessary input data (data to be processed) to be available. This describes the current state. "Ready to run" means that all the input data is available. "Running" indicates that the transform is assigned to node 11. The state transitions in a loop: "Waiting" → "Ready to run" → "Running" → "Waiting".

[0042] If there are a sufficient number of nodes 11 with respect to the number of transformers or the throughput of the input data, the "executable" state can be eliminated. Conversely, since the "executable" state is a state waiting for the availability of node 11, reducing the time of the "executable" state contributes to improving the throughput of the entire pipeline (distributed data processing system).

[0043] Therefore, the scheduler 10 measures the time of the "executable" state (i.e., the time from when the input data (data to be processed) is complete until the execution of the transformers starts: waiting time), and performs processing to reduce (shorten) the waiting time.

[0044] In the processing, the following quantities are defined. · The time that an arbitrary ciphertext matching comparison transformer τ Ecmp is in the "executable" state:[[]] t(τ Ecmp ) · The time that an arbitrary homomorphic encryption transformer τ HE is in the "executable" state:[[]] t(τ HE ) · The time that an arbitrary TEE transformer τ TEE is in the "executable" state:[[]] t(τ TEE )

[0045] Since there can be multiple transformers of various types, the following three types of transformer waiting times are defined as the sum of the waiting times of the same type of transformers. · T Ecmp =Σt(τ Ecmp ), · T HE =Σt(τ HE ), · T TEE =Σt(τ TEE )

[0046] In order to actually make the matching of transform types and node attributes work, we need to solve the problem of "which node 11 should be assigned to a particular type of transform at a given point in time." This problem can be rephrased as "what behavior (operation) should node 11 have at a given point in time."

[0047] (Example of processing in the first case) For example, T TEE But ·T HE and T Ecmp Larger is the whole of the distributed data processing system. This indicates that the TEE transform wait time is relatively long (the longest). In this case, increase the number of active TEE nodes (node ​​11 with the node attribute "TEE node"). This can reduce the TEE transform wait time.

[0048] In other words, when a transform is scheduled (an opportunity to change the behavior of node 11), the process shown in Figure 4 is executed, which allows a node 11 to be switched (changed) to behave as a TEE node.

[0049] Figure 4 is a flowchart showing an example of the transform assignment process (first processing example). The process shown in Figure 4 is executed, for example, by the processor 21 of the information processing device 20 which operates as a scheduler 10.

[0050] In step S01, the processor 21 is T TEE , T HE and T Ecmp Sort in descending order Then, we define them as T1, T2, and T3 in order of longest waiting time.

[0051] In step S02, the processor 21 sets the node attribute corresponding to the transform of T3, i.e., the secret computation method with the shortest waiting time (corresponding to the second secret computation method). From the group of nodes behaving in a certain way, select node N (corresponding to the first node) that also possesses node attributes corresponding to the transform of T1, i.e., the secret computation method with the longest waiting time (corresponding to the first secret computation method). The selection may be random or follow a predetermined rule.

[0052] In step S03, the processor 21 determines whether a node N that meets the conditions has been selected. If it is determined that a node N has been selected, the process proceeds to step S05; otherwise, the process proceeds to step S04.

[0053] In step S04, the processor 21 selects node N (corresponding to the second node) from the group of nodes that are behaving as nodes with node attributes corresponding to the transform of T2, i.e., the next shortest latency secret computation method (corresponding to the third secret computation method), which also possesses node attributes corresponding to T1, i.e., the longest latency transform. The selection may be random or follow a predetermined rule.

[0054] In step S05, the processor 21 determines whether a node N that meets the conditions has been selected. If it is determined that a node N has been selected, the process proceeds to step S06; otherwise, the process shown in Figure 4 ends, assuming that there is no node 11 that satisfies the conditions.

[0055] In step S06, the processor 21 switches node N to behave (operate) as node 11 having node attributes corresponding to T1. According to the first processing example, the waiting time of the longest transform (e.g., TEE transform) can be reduced, and resource efficiency can be improved.

[0056] (Second example of processing) If we focus solely on waiting time, as in the first processing example, we can expect improved resource efficiency. However, this does not necessarily mean that data processing efficiency will improve. For example, there is a concern that cache utilization efficiency will decrease as a particular node 11 frequently changes its node attributes. Therefore, processing that takes into account data processing throughput, which is a direct indicator of processing efficiency, can be considered.

[0057] Figure 5 is a flowchart showing an example of the transform assignment process (second processing example). The process shown in Figure 5 is executed, for example, by the processor 21 of the information processing device 20 which operates as a scheduler 10.

[0058] In step S11, the processor 21 performs the processing shown in steps S01 to S06 in Figure 4. However, in the second processing example, when the processing in step S06 is performed, the processor 21 obtains a value indicating the throughput of distributed data processing before the switch (corresponding to the first throughput).

[0059] The throughput value may be obtained by the processor 21 measuring the throughput and storing it in the storage device 22. Alternatively, the processor 21 may obtain a throughput value measured by a device other than the processor 21 and store it in the storage device 22. If the processing in step S06 is performed in step S11, the process proceeds to step S12.

[0060] In step S12, the processor 21 determines whether the current mode is the first mode, which performs the first processing shown in Figure 4, or the second mode, which performs the processing from step S13 onwards. If it is determined to be the first mode, the processing shown in Figure 5 is completed; if it is determined to be the second mode, the process proceeds to step S13.

[0061] In step S13, the processor 21 obtains a value indicating the throughput of distributed data processing after the switch (corresponding to the second throughput) and stores it in the memory device 22. Then, at the next scheduling trigger, the processor 21 retrieves the throughput values ​​before and after the switch from the memory device 22 and compares them.

[0062] In step S14, the processor 21 determines whether the throughput after the switch has improved or decreased compared to the throughput before the switch. If it is determined that the throughput has improved, the state after the switch is maintained and the process returns to step S01.

[0063] In contrast, if it is determined in step S14 that throughput has decreased, the process proceeds to step S15. In step S15, the processor 21 restores the behavior of node N to its behavior before the switch, and then returns the process to step S01. This eliminates the above-mentioned concerns and enables efficient data processing.

[0064] <Node scaling out and scaling in> Figure 6 is a flowchart illustrating an example of node scaling out and scaling in. The processing shown in Figure 6 is performed, for example, by the processor 21 of the information processing device 20, which operates as a scheduler 10.

[0065] In step S101, the processor 21 determines whether or not there is a transform in a standby state. If it is determined that there is a transform in a standby state, the process proceeds to step S102; otherwise, the process returns to step S101.

[0066] In step S102, the processor 21 identifies one of the transforms that is in a standby state. If there are multiple transforms in a standby state, the specific rule is arbitrary.

[0067] In step S103, the processor 21 determines whether the waiting time of the transform identified in step S102 is greater than or equal to (or exceeds) a first threshold. If the waiting time is determined to be greater than or equal to the first threshold, the process proceeds to step S104; otherwise, the process proceeds to step S105.

[0068] In step S104, the processor 21 performs a scale-out process. Specifically, the processor 21 performs a scale-out in which inactive nodes with node attributes corresponding to the identified transform participate in the distributed processing. The scale-out process reduces the waiting time for the identified transform.

[0069] If the process proceeds to step S105, the processor 21 determines whether the waiting time of the identified transform is less than (or less than or equal to) a second threshold that is different from the first threshold. If the waiting time is determined to be less than the second threshold, the process proceeds to step S106; otherwise, the process returns to step S101.

[0070] In step S106, the processor 21 performs a scale-in process. Specifically, the processor 21 performs a scale-in by removing from the distributed processing nodes that have been in an active state for a long time from among the active nodes that are performing the behavior (operation) of the node attribute corresponding to the identified transform. The scale-in reduces the processing execution cost. Nodes with a long elapsed time are those that have been in an active state for the longest time, or nodes whose elapsed time exceeds a threshold, and are selected randomly or according to a predetermined rule.

[0071] Note that the order of processing in steps S102 and S103 and the processing in steps S104 and S105 may be reversed. When processing returns from step S105 to step S101, that is, in the region where the waiting time does not exceed the first threshold and does not fall below the second threshold, the transform waiting state is maintained. However, it is also conceivable to set the first and second thresholds to the same value so that either scale-in or scale-out is performed.

[0072] <Effects of the Embodiment> In this embodiment, the distributed data processing system comprises a plurality of nodes 11 that can be assigned to distributed data processing, each node having at least one of the node attributes corresponding to a plurality of types of secure computation methods (ciphertext matching comparison, homomorphic encryption, TEE). The distributed data processing system also includes an information processing device 20 that includes a control unit (processor 21 that executes a scheduler 10) that assigns the transform of a first secure computation method (any of the plurality of types of secure computation methods executed in distributed data processing, such as ciphertext matching comparison, homomorphic encryption, or TEE) to the node having the node attribute corresponding to the first secure computation method.

[0073] Such allocation allows for the appropriate allocation of transforms to distributed data processing, enabling efficient distributed data processing.

[0074] If the first secure computation method (e.g., TEE) is the secure computation method with the longest waiting time among multiple types of secure computation methods, from the time the data to be processed is available until the start of processing, the control unit (processor 21) can operate as a node 11 that executes the transform of the second secure computation method (e.g., ciphertext matching comparison), which has the shortest waiting time among multiple types of secure computation methods, and can assign the transform of the first secure computation method to the first node among multiple nodes 11 that have node attributes corresponding to the first secure computation method. This makes it possible to reduce the waiting time.

[0075] The control unit (processor 21) operates as a node 11 that executes a transform of a third secret computation method (e.g., homomorphic encryption) among multiple types of secret computation methods, which has a waiting time longer than that of the second secret computation method and longer than that of the first secret computation method, when there is no node corresponding to the first node. It can also assign the transform of the first secret computation method to the second node among multiple nodes 11 that have node attributes corresponding to the first secret computation method. In this case as well, the waiting time can be reduced.

[0076] The control unit (processor 21) can, when comparing the first throughput when the first node is operating as node 11 executing the transform of the second secret computation method with the second throughput when the first node is operating as node 11 executing the transform of the first secret computation method instead of the second secret computation method, determine that the second throughput is lower than the first throughput, and can return the first node to the state before it was assigned the transform of the first secret computation method. This allows for allocation that takes throughput into consideration.

[0077] The control unit (processor 21) can compare the first throughput when the second node is operating as a node that executes the transformation of the second secret computation method with the second throughput when the first node is operating as a node that executes the transformation of the first secret computation method instead of the second secret computation method. If, in this comparison, it is determined that the second throughput is lower than the first throughput, the control unit can return the second node to the state it was in before the transformation of the first secret computation method was assigned. This allows for allocation that takes throughput into consideration.

[0078] The control unit (processor 21) can assign the transformation of the first method to nodes in order to increase the number of nodes that perform the transformation of the first method, if there is a first method among several types of secret computation methods in which the waiting time from when the data to be processed is ready until the execution of the processing starts is longer than a first threshold. Furthermore, if there is a second method of secret computation in which the waiting time is shorter than a second threshold which is less than the first threshold, the processor 21 can stop assigning the transformation of the second method to node 11 which has been assigned the transformation of the second method for a long period of time.

[0079] The embodiments and modifications described above are merely examples, and this disclosure may be modified as appropriate without departing from its essence. Furthermore, the processes and means described in this disclosure can be freely combined and implemented as long as no technical inconsistencies arise.

[0080] Furthermore, processes described as being performed by a single device may be divided and executed by multiple devices. Conversely, processes described as being performed by different devices may be executed by a single device. In a computer system, the hardware configuration (server configuration) by which each function is implemented can be flexibly changed.

[0081] The present disclosure can also be realized by supplying a computer program implementing the functions described in the embodiments above to a computer, and having one or more processors in the computer read and execute the program. Such a computer program may be provided to the computer by a non-temporary computer-readable storage medium that can be connected to the computer's system bus, or it may be provided to the computer via a network. The non-temporary computer-readable storage medium includes any type of disk, such as magnetic disks (floppy disks, hard disk drives (HDDs), etc.), optical disks (CD-ROMs, DVDs, Blu-ray discs, etc.), read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic cards, flash memory, or optical cards, and any other type of medium suitable for storing electronic instructions. [Explanation of symbols]

[0082] 10...Scheduler, 11...Node, 20...Information Processing Unit, 21...Processor, 22...Storage Device

Claims

1. A control unit that assigns a transform of a first secret computation method, which is executed in the distributed data processing, to a node having a node attribute corresponding to the first secret computation method, to a plurality of nodes that can be assigned to distributed data processing and each node has at least one of the node attributes corresponding to a plurality of secret computation methods. Information processing device including

2. If the first secure computation method is the secure computation method with the longest waiting time among the multiple types of secure computation methods, from the time the data to be processed is available until the start of processing, the control unit operates as a node that executes the transform of the second secure computation method, which has the shortest waiting time among the multiple types of secure computation methods, and assigns the transform of the first secure computation method to the first node among the multiple nodes that has node attributes corresponding to the first secure computation method. The information processing apparatus according to claim 1.

3. The control unit operates as a node that executes a transform of a third secret computation method, which has a waiting time longer than the waiting time of the second secret computation method and shorter than the waiting time of the first secret computation method, among the multiple types of secret computation methods, when there is no node corresponding to the first node, and assigns the transform of the first secret computation method to the second node among the multiple nodes which has node attributes corresponding to the first secret computation method. The information processing apparatus according to claim 2.

4. If the control unit determines, in a comparison between the first throughput when the first node is operating as a node that executes the transform of the second secure computation method and the second throughput when the first node is operating as a node that executes the transform of the first secure computation method instead of the second secure computation method, that the second throughput is lower than the first throughput, the control unit returns the first node to the state before the transform of the first secure computation method was assigned. The information processing apparatus according to claim 2.

5. If the control unit determines, in a comparison between the first throughput when the second node is operating as a node that executes the transformation of the third secure computation method and the second throughput when the second node is operating as a node that executes the transformation of the first secure computation method instead of the third secure computation method, that the second throughput is lower than the first throughput, the control unit returns the second node to the state it was in before the transformation of the first secure computation method was assigned. The information processing apparatus according to claim 3.

6. The control unit, Among the multiple types of secure computation methods, if there is a first method which is a secure computation method in which the waiting time from when the data to be processed is ready until the execution of the processing starts is longer than a first threshold, the number of nodes that perform the transformation of the first method is increased by assigning the transformation of the first method to the nodes. If, among the multiple types of secure computation methods, there is a second method whose waiting time is shorter than a second threshold which is shorter than the first threshold, then the assignment of the second method's transform to a node that has been assigned the second method's transform for a long period of time is stopped. The information processing apparatus according to claim 1.