Secure and efficient distributed processing

By assigning a master key to each task in a distributed computing system and dynamically calculating specific communication keys between tasks and nodes, and using a dynamic connection mechanism to generate random numbers, the security and efficiency issues of data transmission between multiple nodes are solved, achieving efficient and secure key management.

CN116264524BActive Publication Date: 2025-11-11MELLANOX TECHNOLOGIES LTD(IL)
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202211537959.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-08-31
Filing Date
2022-12-01
Publication Date
2025-11-11
Estimated Expiration
2042-12-01

AI Technical Summary

Technical Problem

In distributed computing systems, existing technologies struggle to securely transmit data between multiple processing nodes, especially with a large number of connections. Key management is complex and resource-intensive, leading to low security and efficiency.

Method used

By assigning a master key to each task and dynamically calculating specific communication keys between tasks and nodes, using a dynamic connection mechanism to generate random numbers, ensuring key refresh during each communication, reducing the storage of state data, and employing InfiniBand dynamic connection (IB DC) or other dynamic connection methods, secure communication is achieved.

Benefits of technology

It improves the security and efficiency of distributed processing systems, reduces the need for nodes to store state data, and lowers the complexity and resource consumption of key management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116264524B_ABST
    Figure CN116264524B_ABST
Patent Text Reader

Abstract

This disclosure relates to secure and efficient distributed processing. In one embodiment, a secure distributed processing system includes nodes connected via a network and configured to process tasks. Each corresponding node includes a corresponding processor for processing data for a corresponding task within the task, and a corresponding network interface controller for connecting to other nodes via the network. It stores a task master key used in calculating a communication key to ensure secure data transmission over the network for the corresponding task within the task. It also calculates a task-and-node-specific communication key to ensure secure communication between the corresponding node and the corresponding node within the node in response to the task master key and node-specific data of the corresponding node pair. Finally, it securely communicates processed data of the corresponding task within the task with the corresponding node via the network in response to the task-and-node-specific communication key.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Relevant application information

[0002] This application claims priority to Israeli Patent Application 289,002, filed on December 14, 2021, the disclosure of which is incorporated herein by reference. Technical Field

[0003] This invention relates to computer systems, and more particularly, but not exclusively, to distributed processing. Background Technology

[0004] In some computer systems, processors in different corresponding processing nodes (e.g., central processing unit (CPU) and / or graphics processing unit (GPU)) can collaborate under the coordination of a centralized entity, for example, to execute processing tasks such that a portion of the processing task is executed by a processor in one processing node, while another portion of the processing task is executed by a different processor in another processing node, and so on. Parallelizing computational tasks across multiple nodes helps reduce task execution time and enables the execution of large computational tasks within a reasonable runtime.

[0005] Processing nodes can connect via wired and / or wireless networks and can process one or more processing tasks simultaneously or at different times. Data processed by one processing node can be passed to one or more other processing nodes for further processing. Data transferred between processing nodes can be secure.

[0006] Shahar's U.S. Patent 9,110,860 describes a computational method comprising receiving notification of a computational task for execution by a group of computational nodes interconnected by a communication network having a given interconnection topology and including network switching elements. Based on the given interconnection topology and criteria derived from the computational task, a set of preferred paths is identified in the communication network that connect the computational nodes in the group to one or more root switching elements via at least a subset of the network switching elements. The network switching elements in this subset are configured to forward node-level results of the computational task generated by the computational nodes in the group to the root switching elements via the preferred paths, so that the root switching elements compute and output the final result of the computational task based on the node-level results.

[0007] U.S. Patent 8,250,556 to Lee et al. describes a system comprising multiple computing units interconnected by an interconnection network. A method for configuring the system includes: receiving initial partitions of instructions into initial subsets corresponding to different parts of a program; refining the instruction partitions into refined subsets, each refined subset comprising one or more of the initial subsets, including determining whether to combine the first and second subsets to form a third subset based on a comparison of communication costs between the first and second subsets and the load costs of a third subset, the load costs of which are at least partially based on the number of instructions issued per cycle by the computing unit; and assigning each refined subset of instructions to one of the computing units for execution on the assigned computing unit. Summary of the Invention

[0008] According to one embodiment of this disclosure, a secure distributed processing system is provided, including multiple nodes connected via a network and configured to process multiple tasks, wherein each corresponding node among the nodes includes: a corresponding processor for processing data of a corresponding task within the task; and a corresponding network interface controller (NIC) for: connecting to other nodes among the nodes via the network; storing a task master key used in calculating a communication key to ensure secure data transmission for a corresponding task within the task via the network; calculating a task-and-node-pair-specific communication key for ensuring secure communication between the corresponding node among the nodes and the corresponding task master key in the task and node-specific data of the corresponding node pair via the network in response to the task master key; and securely communicating the processed data of the corresponding task within the task with the corresponding node among the nodes via the network in response to the task-and-node-pair-specific communication key.

[0009] Further according to embodiments of this disclosure, each corresponding task in the tasks is processed as a corresponding distributed process by one or more of the nodes.

[0010] Furthermore, according to an embodiment of this disclosure, the corresponding task in the task is performed for the tenant.

[0011] In addition, according to embodiments of this disclosure, the corresponding processor includes a graphics processing unit (GPU) configured to process data of a corresponding task in the task within the tenant.

[0012] Furthermore, according to embodiments of this disclosure, each corresponding task in the tasks is processed as a corresponding distributed process by more than one of the nodes.

[0013] Further according to embodiments of this disclosure, one node in each node pair of the corresponding node pairs is configured to generate a corresponding random number, and the node-specific data of each node pair of the corresponding node pairs includes the corresponding random number.

[0014] Furthermore, according to one embodiment of this disclosure, the node-specific data of the corresponding node pair includes the address information of the corresponding node pair.

[0015] Furthermore, according to embodiments of this disclosure, the node-specific data of the corresponding node pair includes the address information of the corresponding node pair.

[0016] Furthermore, according to embodiments of this disclosure, the corresponding NIC is configured to calculate the task and node pair-specific communication key in response to establishing a new connection with the corresponding node in the network, such that for each new connection with the corresponding node in the network, the corresponding NIC is configured to calculate the corresponding new task and node pair-specific communication key.

[0017] Further according to embodiments of this disclosure, the corresponding NIC is configured to: establish a first connection with a given node among the nodes; calculate a first task and node-to-agent pair (DTA) specific communication key for the first connection in response to a first random number; securely communicate with the given node among the nodes in response to the first task and DTA specific communication key; terminate the first connection; establish a second connection with the given node among the nodes; calculate a second task and DTA specific communication key for the second connection in response to a second random number different from the first random number; and securely communicate with the given node among the nodes in response to the second task and DTA specific communication key.

[0018] According to another embodiment of this disclosure, each corresponding task in the task is processed as a corresponding distributed process by one or more of the nodes.

[0019] Furthermore, according to embodiments of this disclosure, the corresponding NIC is configured to: generate the first random number in response to a first connection request from the given node among the nodes; and generate the second random number in response to a second connection request from the given node among the nodes.

[0020] Furthermore, according to embodiments of this disclosure, the corresponding NIC is configured to: calculate a first task and node-to-node pair specific communication key for the first connection in response to a first random number and address information of the corresponding node of the corresponding NIC and the given node among the nodes; and calculate a second task and node-to-node pair specific communication key for the second connection in response to a second random number and address information of the corresponding node of the corresponding NIC and the given node among the nodes.

[0021] Further according to embodiments of this disclosure, the corresponding NIC is configured to: reserve hardware resources in response to a request from a given node among the nodes to establish a connection with the corresponding node of the corresponding NIC; and cancel the reservation of the hardware resources after a given timeout in response to failure to successfully decrypt data received from a given node among the nodes.

[0022] According to another embodiment of this disclosure, a secure distributed processing method is also provided, comprising: processing data of a corresponding task among a plurality of tasks; connecting to other nodes among a plurality of nodes connected via a network; storing a task master key used in calculating a communication key to ensure secure data transmission for a corresponding task within the task over the network; calculating a task-node pair-specific communication key to ensure secure communication between a corresponding task within the task and a corresponding node among the nodes over the network in response to the task master key in the task master key and node-specific data of the corresponding node pair; and securely communicating the processed data of the corresponding task within the task to the corresponding node among the nodes over the network in response to the task-node pair-specific communication key in response to the task-node pair-specific communication key.

[0023] Furthermore, according to embodiments of this disclosure, each corresponding task in the task is processed as a corresponding distributed process by one or more of the nodes.

[0024] Furthermore, according to embodiments of this disclosure, the corresponding task in the task is executed by the graphics processing unit (GPU) for the tenant.

[0025] Furthermore, according to embodiments of this disclosure, the method includes: generating a corresponding random number for each node pair in the corresponding node pair, wherein the node-specific data of each node pair in the corresponding node pair includes the corresponding random number.

[0026] Further according to embodiments of this disclosure, the node-specific data of the corresponding node pair includes the address information of the corresponding node pair.

[0027] According to an embodiment of this disclosure, the calculation includes calculating the task and node pair-specific communication key in response to establishing a new connection with the corresponding node in the network, such that for each new connection with the corresponding node in the network, a corresponding new task and node pair-specific communication key is calculated.

[0028] According to embodiments of this disclosure, the method includes: establishing a first connection with a given node among the nodes; calculating a first task and node-to-node pair specific communication key for the first connection in response to a first random number; securely communicating with the given node among the nodes in response to the first task and node-to-node pair specific communication key; dismantling the first connection; establishing a second connection with the given node among the nodes; calculating a second task and node-to-node pair specific communication key for the second connection in response to a second random number different from the first random number; and securely communicating with the given node among the nodes in response to the second task and node-to-node pair specific communication key.

[0029] Furthermore, according to embodiments of this disclosure, the method includes: generating a first random number in response to a first connection request from a given node among the nodes; and generating a second random number in response to a second connection request from a given node among the nodes.

[0030] Further according to embodiments of this disclosure, calculating the first task and node pair specific communication key includes: in response to the first random number and the address information of the corresponding node of the corresponding NIC and the given node among the nodes, calculating the first task and node pair specific communication key for the first connection; and calculating the second task and node pair specific communication key includes: in response to the second random number and the address information of the corresponding node of the corresponding NIC and the given node among the nodes, calculating the first task and node pair specific communication key.

[0031] The address information of the given node in the point is used to calculate the second 5 task and node pair specific communication key for the second connection.

[0032] Further according to one embodiment of this disclosure, the method includes: reserving hardware resources to establish a connection in response to a request from a given node among the nodes; and canceling the reservation of the hardware resources after a given timeout in response to failure to successfully decrypt data received from the given node among the nodes. Attached Figure Description

[0033] The present invention can be understood from the following detailed description taken in conjunction with the accompanying drawings, wherein:

[0034] Figure 1 This is a block diagram view of a secure distributed processing system constructed and operated according to an embodiment of the present invention.

[0035] Figure 2 It includes Figure 1 The flowchart shows the steps in the system's operation method.

[0036] Figure 3 yes Figure 1 The process and information flow flowchart of the operation methods of two nodes in the system.

[0037] Figure 4 It includes Figure 1 A flowchart of the steps for operating nodes in the system; and

[0038] Figure 5 It includes Figure 1 The flowchart shows the steps in the hardware resource reservation method in the system. Detailed Implementation

[0039] Overview

[0040] High-performance processing applications are characterized by jobs or tasks being distributed across multiple servers or processing nodes, which process the jobs or tasks in a distributed manner. During the holding of jobs or tasks...

[0041] During a given period of time, communication occurs between processing nodes. This communication is typically not one-to-one, but rather many-to-many or all-to-all between nodes. Processing a single task may involve thousands or tens of thousands of connections.

[0042] To ensure secure communication, data exchange between nodes is typically encrypted using one or more appropriate keys.

[0043] If all nodes use the same key, the security will be very poor because the key is identifiable.

[0044] It can be detected using known attacks. If different keys are used between different node pairs, for example, using a secure key-sharing algorithm such as Diffie-Hellman, then a cryptographic key is established between each pair of nodes.

[0045] Keys will require significant amounts of memory, complexity, and processing time. For example, since each secure connection includes state, communicating with N end nodes will require processing nodes to use a large amount of memory to store N states.

[0046] Therefore, embodiments of the present invention address the aforementioned problems by offloading data security to processing nodes. A master key is securely distributed to each processing node for each task or job. Thus, each processing node receives and stores a set of task master keys, with one master key per task. When a node needs to communicate with another node, for a given task, each node calculates a task-and-node-pair-specific communication key based on the given task's master key and other node-pair-specific data. This key is specific to the given task-and-node-pair data. The node-pair-specific data may include random numbers generated by one of the nodes in the communication node pair and / or based on the node pair's address information. The node pair can then use the calculated task-and-node-pair-specific communication key to communicate securely. Once communication between node pairs is complete, the calculated key is discarded. New communication between the same node pair or different node pairs typically results in new, corresponding task-and-node-pair-specific communication keys being calculated by the respective node pairs.

[0047] For example, node A can send a request to node B to securely communicate for a given task. This request may include an index of the master key for the given task or the identity of the given task. Node B can then generate a random or pseudo-random number and respond to the request with the random number. Nodes A and B can then calculate a task-to-node-pair communication key based on the master key for the given task and the generated random number, and optionally based on the address information of nodes A and / or B. Node A can then use the calculated task-to-node-pair communication key to encrypt data for the given task. The data is sent to node B, which decrypts the data using the calculated task-to-node-pair communication key.

[0048] InfiniBand (IB) uses Dynamic Connections (DCs) to dynamically connect node pairs using fewer resources than static connections (such as InfiniBand Reliable Connections) and by associating hardware resources with DC connections. When a dynamic connection is established, there is a brief handshake, including a request and an acknowledgment. Once the connection is complete, the hardware resources are released for use by another connection. In addition to establishing connections between node pairs, the DC mechanism can be extended to pass a newly generated random number for each dynamic connection, enabling node pairs to generate task-specific and node-pair-specific communication keys for each dynamic connection. Because the communication key is refreshed for each communication connection and protected against replay attacks, information that would normally need to be stored in a cryptographic state to prevent replay attacks is no longer required. In fact, the cryptographic state can be cleared with each connection, reducing the state data that needs to be stored by the nodes. IB DCs allow the connection state to be maintained only while the node is transmitting data. Embodiments of the invention allow nodes to maintain both cryptographic state and IB-DC state for each active connection.

[0049] Embodiments of the present invention can be implemented without using an IB DC. For example, other dynamic connection types can be used, or static connections can be used. In some embodiments, multiple connections (e.g., non-IBDC connections) within the same security domain can share a key.

[0050] System Description

[0051] Now for reference Figure 1 This is a block diagram view of a secure distributed processing system 10 constructed and operated according to an embodiment of the present invention. The secure distributed processing system 10 includes multiple nodes 12 (only four are shown for simplicity) connected via a network 14, configured to handle multiple tasks 16. In some embodiments, each task 16 may be processed as a corresponding distributed process by more than one node 12. Each node 12 includes a processor 18 for processing data for the corresponding task within the task 16, and references... Figures 2 to 5 The network interface controller 20 (NIC) is described in more detail. The processor 18 may include a CPU 26 and / or a GPU 28.

[0052] The secure distributed processing system 10 includes a coordination mode 22, which generates a corresponding task master key 24 for task 16 and distributes the task master key 24 to each node 12.

[0053] In some embodiments, task 16 can be executed for tenant 30. For example, node 12 can process data for different tenants 30, such as different companies that rent processing space in the secure distributed processing system 10, so each node 12 can process data for different tenants 30 at the same time or at different times. One of the tasks 16 can represent one, some, or all of the processes executed by the corresponding tenant 30. In other words, in some embodiments, all processes of a given tenant can be grouped into the same task or job. For one of the nodes 12, the GPU 28 and / or CPU 26 of that node 12 are configured to process data for the corresponding task in task 16 of the corresponding tenant in the tenant 30.

[0054] In practice, some or all of the functions of processor 18 may be combined in a single physical component, or alternatively, implemented using multiple physical components. These physical components may include hardwired or programmable devices, or a combination of both. In some embodiments, at least a portion of the functions of processor 18 may be executed by a programmable processor under the control of suitable software. For example, the software may be downloaded to the device electronically via a network. Alternatively, or additionally, the software may be stored in a tangible, non-transitory computer-readable storage medium, such as optical, magnetic, or electronic memory.

[0055] Graphics processing units (GPUs) are used to generate both three-dimensional (3D) and two-dimensional (2D) graphics objects for a variety of applications, including documentaries, computer games, virtual reality (VR) and augmented reality (AR) experiences, mechanical design, and / or similar applications. Modern GPUs include texture processing hardware for generating surface appearances for 3D objects in 3D graphics scenes, referred to herein as "surface textures." The texture processing hardware applies a surface appearance to 3D objects by "wrapping" an appropriate surface texture onto them. This process of generating and applying surface textures to 3D objects results in a highly realistic appearance for these 3D objects in a 3D graphics scene.

[0056] Texture processing hardware is configured to execute various texture-related instructions, including texture operations and texture mapping.

[0057] Texture processing hardware generates access to texture information by generating memory references to the texture memory (referred to here as "lookups"). The texture processing hardware accesses texture information from the texture memory in changing conditions.

[0058] Retrieve surface texture information, for example, when rendering object surfaces in a 3D graphics scene for display on a display device, when rendering a 2D graphics scene, or during computation operations.

[0059] Surface texture information includes information used to texture or add texture to the surfaces of objects in a 3D graphics scene.

[0060] Texture elements (referred to here as "texels") are used for color. The texture processing hardware and associated texture caches are optimized for efficient, high-throughput read-only access to support the high demand for texture information during graphics rendering, with little or no write operations. Furthermore, the texture processing hardware includes dedicated functional units to perform various texture operations such as level of detail (LOD) calculations, texture sampling, and texture filtering.

[0061] Generally, texture operations involve querying multiple textures around a specific point of interest in 3D space.

[0062] The elements are then subjected to various filtering and interpolation operations to determine the final color of the point of interest. In contrast, texture loads typically query individual texture elements and return them directly to the user application.

[0063] Further processing is required. Because filtering and interpolation operations typically involve each processing thread querying four or more texture elements, texture processing hardware is conventionally built to accommodate multiple queries per thread. For example, texture processing hardware can be built to accommodate processing within a single memory cycle.

[0064] Up to four texture memory queries can be performed. In this way, texture processing hardware can query and receive most or all of the required texture information within a single memory cycle.

[0065] Now for reference Figure 2 It is a flowchart 200, including Figure 1 The steps in the operating method of System 10. Refer to... Figure 2 The described method is for one of the nodes 12, and that node 12

[0066] The processor 18 and network interface controller 20 are described.

[0067] Processor 18 is configured to process data for the corresponding task in task 16 (block 202). Network interface controller 20 is configured to store task master key 24 (block 204) for use in computing communication.

[0068] A key is used to ensure data transmission for the corresponding task in task 16 via network 14. Network interface controller 20 is configured to connect (block 206) to other nodes 12 via this network 14.

[0069] In some embodiments, an attempt is made to establish a corresponding connection in one of each node pair.

[0070] The network interface controller 20 of the corresponding node is configured to generate (randomly or pseudo-randomly) a corresponding random number (block 0 208) for each received connection request. For example, for the first node...

[0071] For the first connection between pairs of nodes, one node in the first node pair generates a first random number; for the second connection between the second pair of nodes, one node in the first node pair generates a second random number, and so on.

[0072] Network interface controller 20 is configured to compute (block 210) the corresponding task and node-pair-specific communication key to ensure communication between the corresponding task in task 16 and the corresponding node in node 12 via network 14, in response to the corresponding task master key in task master key 24 and the node-specific data of the corresponding node pair. For example, the task and node-pair-specific communication key is computed by inputting the corresponding task master key in task master key 24 and the node-specific data of the corresponding node pair into a suitable key computation function or algorithm. The node-specific data for each of the corresponding node pairs 12 may include a corresponding random number and / or the corresponding node pair address information. The task and node-pair-specific communication key can be computed using any suitable algorithm, such as HMAC-SHA or CMAC.

[0073] For example, for task X between nodes A and B, the task and node pair-specific communication key is calculated using the master key of task X and node-specific data of nodes A and B (e.g., including random numbers generated by nodes A or B), while for task Y between nodes C and B, the task and node pair-specific communication key is calculated using the master key of task Y and node-specific data of nodes C and B (e.g., including random numbers generated by nodes C or B).

[0074] In another example, node A can send a request to node B to securely communicate for a given task. This request may include an index of the master key for the given task or the identity of the given task. Node B can then generate a random or pseudo-random number and respond to the request with the random number. Nodes A and B can then calculate a specific communication key for the task and node pair based on the master key of the given task and the generated random number, and optionally based on the address information of nodes A and / or B.

[0075] In some embodiments, the network interface controller 20 is configured to compute a task and node pair-specific communication key in response to establishing a new connection with other nodes 12 via the network 14. Therefore, for each new connection with a corresponding node in the node 12, the network interface controller 20 is configured to compute the corresponding new task and node pair-specific communication key.

[0076] Network interface controller 20 is configured to securely communicate (block 212) processed data of task 16 (or data processed by other nodes 12) via network 14 with the corresponding node in node 12 in response to a specific task and node pair communication key (specific communication key A). For example, task and node pair communication key A is used to communicate with node A for a given task, while task and node pair communication key B is used to communicate with node B for a given task or a different task. As another example, node A can encrypt data for a given task using a computed task and node pair communication key. This data is sent to node B, which decrypts the data using the computed task and node pair communication key for the given task.

[0077] In some embodiments, the password state history does not need to be saved. The password state may include a replay window, which may include data from the current connection, but does not need to include any historical data. The password state may save generated random numbers, a pointer to the task master key, and a replay window that has been reset.

[0078] Now for reference Figure 3 , Figure 3 It is a process and information flow flowchart 300, including Figure 1 The steps in the operation method of two nodes in System 10. Figure 3It shows the process performed by a node pair including node A and node B, as well as the data passed between node A and node B.

[0079] Node A is processing data for task X. Node A reserves (block 302) hardware resources in its network interface controller 20 to establish a connection (e.g., an IB DC connection) and may optionally establish a state (e.g., an IB DC state) to handle the connection. Node A sends a connection request (block 304) to node B. This connection request includes an index of the task master key 24 associated with task X or the identifier (ID) of task X. Node B receives the request and reserves (block 306) hardware resources in its network interface controller 20 to support the requested connection, and may optionally establish a state (e.g., an IB DC state) to handle the connection. Reference Figure 5 In more detail, if node A does not send relevant data within a given timeout, node B can release reserved hardware resources. Node B generates (randomly or pseudo-randomly) a random number (block 308). Node B responds to node A with the generated random number (block 309). Based on the task master key 24 of task X, the generated random number, and optionally the address information of node A and / or node B, each of node A and node B generates (block 310) the same task and node-specific communication key. Node A encrypts the processed data of task X (block 312) and sends (block 314) the encrypted processed data to node B. Node B receives the encrypted processed data and decrypts it (block 316). Once communication between nodes is complete, for example, based on a notification from node A or node B or after a timeout of no communication, nodes A and B release (block 318) hardware resources.

[0080] Now for reference Figure 4 , Figure 4 It is a flowchart 400, including Figure 1 The steps of operating node 12 in system 10. Figure 4 This describes setting up and tearing down two connections on a node. These two connections can be active at the same time or at different times. The two connections can be for the same pair of nodes or different pairs of nodes.

[0081] Network interface controller 20 is configured to establish (block 402) a first connection with a given node in node 12 (e.g., reserving hardware resources and establishing state), optionally generate (block 404) a first random number (optionally in response to a first connection request from the given node 12) or receive a first random number from the given node 12, calculate (block 406) a first task and node pair-specific communication key for the first connection in response to the first random number and / or the address information of the node pair and the master key of the first task, securely communicate with the given node 12 in response to the first task and node pair-specific communication key (block 408), and tear down (block 410) the first connection once communication is complete.

[0082] Network interface controller 20 is configured to establish (block 412) a second connection with a given node in node 12 (e.g., to reserve hardware resources and establish state), optionally generate (block 414) a second random number (in response to a second connection request from the given node 12) or receive a second random number from the given node 12, calculate (block 416) a second task and node pair-specific communication key for the second connection in response to the second random number (different from the first random number) and / or the address information of the node pair and the master key of the second task, securely communicate with the given node 12 in response to the second task and node pair-specific communication key (block 418), and tear down (block 420) the second connection once communication is complete.

[0083] Secure communication can include one node encrypting data to send to another node in the node pair for decryption (e.g., one-way secure communication), or both nodes encrypting data to send to each other for decryption by the other node in the node pair (e.g., two-way secure communication).

[0084] Now for reference Figure 5 , Figure 5 It includes Figure 1 The flowchart 500 shows the steps of the hardware resource reservation method in System 10.

[0085] In some embodiments, a timeout can be used to prevent connection establishment and resource reservation before communication has begun. In this way, denial-of-service attacks can be blocked by an attacker without access to the task master key 24. Therefore, if communication does not begin before the timeout expires, the connection is torn down and hardware resources are released.

[0086] Therefore, the network interface controller 20 of node A is configured to reserve (block 502) hardware resources in response to a request from node B to establish a connection with node A. In decision block 504, the network interface controller 20 of node A is configured to check whether data has been received from node B and whether the data has been successfully decrypted within a given timeout. If data has been received from node B and successfully decrypted within the given timeout, the network interface controller 20 is configured to set the allocation of connection resources to last (block 506) (i.e., no further timeout check). In response to failure to successfully decrypt data received from node B within the given timeout, the network interface controller 20 is configured to cancel the reservation of the reserved hardware resources (block 508).

[0087] In other embodiments, no timeout is implemented for reserving resources, and resource management can be handled in any suitable manner.

[0088] For clarity, the various features of the invention described in the context of individual embodiments may also be provided in combination in a single embodiment. Conversely, for brevity, the various features of the invention described in the context of a single embodiment may also be provided individually or in any suitable sub-combination.

[0089] The embodiments described above are given by way of example only, and the invention is not limited to what is specifically shown and described herein. Rather, the scope of the invention includes combinations and sub-combinations of the various features described herein, as well as variations and modifications that would occur to those skilled in the art upon reading the foregoing description and that are not disclosed in the prior art.

Claims

1. A secure distributed processing system comprising multiple nodes connected via a network and configured to process multiple tasks, wherein each corresponding node includes: A corresponding processor is used to process the data of the corresponding task in the task; as well as The corresponding network interface controller (NIC) is used for: Connect to other nodes in the network; The task master key is stored in the computational communication key to ensure secure data transmission over the network for the corresponding task in the task. Calculate a specific communication key for the corresponding task and node pair, which is used in response to the corresponding task master key in the task master key and the node-specific data of the corresponding node pair to ensure secure communication between the corresponding task in the task and the corresponding node in the node through the network. as well as In response to the corresponding task and node pair for a specific communication key, the processed data of the corresponding task in the task is securely communicated with the corresponding node among the nodes through the network.

2. The system of claim 1, wherein each corresponding task in the tasks is processed as a corresponding distributed process by one or more of the nodes.

3. The system of claim 1, wherein the corresponding task in the task is performed for the tenant.

4. The system of claim 3, wherein the corresponding processor includes a graphics processing unit (GPU) configured to process data of a corresponding task in the task.

5. The system of claim 4, wherein each of the tasks is processed as a corresponding distributed process by one or more of the nodes.

6. The system of claim 1, wherein one node in each node pair of the corresponding node pairs is configured to generate a corresponding random number, and the node-specific data of each node pair of the corresponding node pairs includes the corresponding random number.

7. The system according to claim 6, wherein the node-specific data of the corresponding node pair includes the address information of the corresponding node pair.

8. The system according to claim 1, wherein the node-specific data of the corresponding node pair includes the address information of the corresponding node pair.

9. The system of claim 1, wherein the corresponding NIC is configured to calculate the task and node pair specific communication key in response to establishing a new connection with the corresponding node in the network, such that for each new connection with the corresponding node in the nodes, the corresponding NIC is configured to calculate the corresponding new task and node pair specific communication key.

10. The system of claim 9, wherein the corresponding NIC is configured to: Establish a first connection with a given node in the node list; In response to a first random number, calculate a first task and node pair specific communication key for the first connection; In response to the first task and the node pair with a specific communication key, securely communicate with the given node among the nodes; Disconnect the first connection; Establish a second connection with a given node in the node set; In response to a second random number that is different from the first random number, a second task and node pair specific communication key are calculated for the second connection; as well as In response to the second task and a specific communication key, secure communication is established with the given node among the nodes.

11. The system of claim 10, wherein each corresponding task in the tasks is processed as a corresponding distributed process by one or more of the nodes.

12. The system of claim 10, wherein the corresponding NIC is configured to: The first random number is generated in response to a first connection request from the given node among the nodes; and The second random number is generated in response to a second connection request from the given node in the nodes.

13. The system of claim 12, wherein the corresponding NIC is configured to: In response to the first random number and the address information of the corresponding node of the corresponding NIC and the given node among the nodes, calculate the first task and node-specific communication key for the first connection; and In response to the second random number and the address information of the corresponding node of the corresponding NIC and the given node among the nodes, the second task and node-to-node communication key for the second connection are calculated.

14. The system of claim 1, wherein the corresponding NIC is configured to: In response to a request from a given node among the nodes, hardware resources are reserved to establish a connection with the corresponding node of the corresponding NIC; and In response to failure to successfully decrypt data received from a given node in the node, the reservation of the hardware resources is cancelled after a given timeout.

15. A secure distributed processing method, comprising: Process data from corresponding tasks across multiple tasks; Connect to other nodes among multiple nodes connected via a network; The task master key stored in the computational communication key is used to ensure the secure transmission of data over the network for the corresponding task in the task. Calculate a specific communication key for the corresponding task and node pair, which is used in response to the corresponding task master key in the task master key and the node-specific data of the corresponding node pair to ensure secure communication between the corresponding task in the task and the corresponding node in the node through the network. as well as In response to the corresponding task and node pair for a specific communication key, the processed data of the corresponding task in the task is securely communicated with the corresponding node among the nodes through the network.

16. The method of claim 15, wherein each corresponding task in the tasks is processed as a corresponding distributed process by more than one of the nodes.

17. The method of claim 15, wherein the respective task in the task is executed by a graphics processing unit (GPU) for the tenant.

18. The method of claim 15, further comprising: For each node pair in the corresponding node pair, a corresponding random number is generated, and the node-specific data of each node pair in the corresponding node pair includes the corresponding random number.

19. The method of claim 18, wherein the node-specific data of the corresponding node pair includes the address information of the corresponding node pair.

20. The method of claim 15, wherein the calculation includes calculating the task and node pair specific communication key in response to establishing a new connection with a corresponding node in the network, such that for each new connection with a corresponding node in the network, a corresponding new task and node pair specific communication key is calculated.

21. The method of claim 20, further comprising: Establish a first connection with a given node among the nodes; In response to a first random number, a first task and node pair specific communication key is calculated for the first connection; In response to the first task and the node pair with a specific communication key, secure communication is established with a given node among the nodes; Disconnect the first connection; Establish a second connection with a given node among the nodes; In response to a second random number different from the first random number, a second task and node pair specific communication key is calculated for the second connection; as well as In response to the second task and a specific communication key, secure communication is established with the given node among the nodes.

22. The method of claim 21, further comprising: The first random number is generated in response to a first connection request from a given node among the nodes; as well as The second random number is generated in response to a second connection request from a given node among the nodes.

23. The method according to claim 22, wherein: Calculating the first task and node pair specific communication key includes: in response to the first random number and the address information of the corresponding node of the corresponding NIC and the given node among the nodes, calculating the first task and node pair specific communication key for the first connection; and Calculating the second task and node pair specific communication key includes: in response to the second random number and the address information of the corresponding node of the corresponding NIC and the given node among the nodes, calculating the second task and node pair specific communication key for the second connection.

24. The method of claim 15, further comprising: Hardware resources are reserved to establish a connection in response to a request from a given node among the nodes; as well as In response to failure to successfully decrypt data received from a given node in the nodes, the reservation of the hardware resources is cancelled after a given timeout.

Citation Information

Patent Citations

  • Distributing parallelism for parallel processing architectures

    US8250556B1

  • Topology-aware fabric-based offloading of collective functions

    US9110860B2

  • Communication method and communication system by using multiple keys

    CN110493272A

  • Cross-cloud distributed data task scheduling method and device and storage medium

    CN113220431A