CN112838923A - 具有交换机的虚拟信道中加速器之间的密钥共享方法 - Google Patents
具有交换机的虚拟信道中加速器之间的密钥共享方法 Download PDFInfo
- Publication number
- CN112838923A CN112838923A CN202010493674.5A CN202010493674A CN112838923A CN 112838923 A CN112838923 A CN 112838923A CN 202010493674 A CN202010493674 A CN 202010493674A CN 112838923 A CN112838923 A CN 112838923A
- Authority
- CN
- China
- Prior art keywords
- data processing
- virtual data
- accelerator
- accelerators
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
主机处理设备指示配置在多个数据处理加速器中的每个上的多个虚拟数据处理(VDP)加速器。VDP加速器将其自身配置成用于安全通信。主机设备生成多个VDP加速器的每个的邻接表。然后,主机设备建立与每个VDP加速器的会话密钥通信,并向VDP加速器发送VDP加速器要与其建立会话密钥以用于VDP加速器之间的安全通信的其它VDP加速器的列表。VDP加速器为多个VDP加速器中的每一对建立不同的会话密钥。当所有DP加速器已根据由主机设备发送的其它VDP加速器的相应列表建立用于与其它VDP加速器通信的会话密钥时,则主机设备可针对多个VDP加速器的性能分配工作任务,每个VDP加速器均通过单独的安全的虚拟通信信道通信。
Description
技术领域
本公开的实施方式总体涉及人工智能模型训练和推断。更具体地,本公开的实施方式涉及在配置为彼此通信的数据处理加速器之间共享密钥。
背景技术
配置为与主机计算设备通信的数据处理加速器(DPA)通常不能彼此安全地通信。DPA之间的通信(例如,对等通信)是有用的,使得两个或更多个DPA可协作和协调以代表主机计算设备执行数据处理任务。然而,重要的是DPA安全地通信,从而安全地执行由协作DPA执行的处理任务,使得另一计算实体不能改变由通信DPA产生的结果,并且不能够从任何通信DPA窃取代码或数据。
发明内容
在第一方面,本公开提供了第一虚拟数据处理加速器经由交换机与一个或多个第二虚拟数据处理加速器安全地通信的计算机实施的方法,该方法包括:由第一虚拟数据处理加速器经由交换机的第一虚拟通信信道从主机设备接收一个或多个第二虚拟数据处理加速器的列表;对于一个或多个第二虚拟数据处理加速器中的每个,确定第一虚拟数据处理加速器与第二虚拟数据处理加速器之间的会话密钥,其中,在建立会话密钥时,第一虚拟数据处理加速器至少使用交换机的第一虚拟通信信道和第二虚拟数据处理加速器的第二虚拟通信信道与第二虚拟数据处理加速器通信,其中,第二虚拟通信信道由交换机确定;以及由第一虚拟数据处理加速器经由交换机的第一虚拟通信信道向主机设备传送第一虚拟数据处理加速器配置成用于与一个或多个第二虚拟数据处理加速器中的每个进行安全通信的指示,其中,第一虚拟数据处理加速器和一个或多个第二虚拟数据处理加速器中的每个经由交换机安全地通信。
在第二方面,本公开提供了一种存储有指令的非暂时性机器可读介质,该指令在由处理器执行时致使处理器执行用于第一虚拟数据处理加速器经由交换机与一个或多个第二虚拟数据处理加速器安全地通信的操作,该操作包括:由第一虚拟数据处理加速器经由交换机的第一虚拟通信信道从主机设备接收一个或多个第二虚拟数据处理加速器的列表;对于一个或多个第二虚拟数据处理加速器中的每个,确定第一虚拟数据处理加速器与第二虚拟数据处理加速器之间的会话密钥,其中,在建立会话密钥时,第一虚拟数据处理加速器至少使用交换机的第一虚拟通信信道和第二虚拟数据处理加速器的第二虚拟通信信道与第二虚拟数据处理加速器通信,其中,第二虚拟通信信道由交换机确定;以及由第一虚拟数据处理加速器经由交换机的第一虚拟通信信道向主机设备传送第一虚拟数据处理加速器配置成用于与一个或多个第二虚拟数据处理加速器中的每个进行安全通信的指示,其中,第一虚拟数据处理加速器和一个或多个第二虚拟数据处理加速器中的每个经由交换机安全地通信。
在第三方面,本公开提供了一种数据处理系统,该数据处理系统包括处理器和存储器,其中,存储器联接至处理器以存储指令,该指令在由处理器执行时致使处理器执行用于第一虚拟数据处理加速器经由交换机与一个或多个第二虚拟数据处理加速器安全地通信的操作,该操作包括:由第一虚拟数据处理加速器经由交换机的第一虚拟通信信道从主机设备接收一个或多个第二虚拟数据处理加速器的列表;对于一个或多个第二虚拟数据处理加速器中的每个,确定第一虚拟数据处理加速器与第二虚拟数据处理加速器之间的会话密钥,其中,在建立会话密钥时,第一虚拟数据处理加速器至少使用交换机的第一虚拟通信信道和第二虚拟数据处理加速器的第二虚拟通信信道与第二虚拟数据处理加速器通信,其中,第二虚拟通信信道由交换机确定;以及由第一虚拟数据处理加速器经由交换机的第一虚拟通信信道向主机设备传送第一虚拟数据处理加速器配置成用于与一个或多个第二虚拟数据处理加速器中的每个进行安全通信的指示,其中,第一虚拟数据处理加速器和一个或多个第二虚拟数据处理加速器中的每个经由交换机安全地通信。
在第四方面,本公开提供了一种处理系统,该处理系统包括处理器和存储器,其中,存储器联接至处理器以存储指令,该指令在由处理器执行时致使处理器执行用于主机设备配置多个虚拟数据处理加速器以进行安全通信的操作,该操作包括:对于多个虚拟数据处理加速器中的每个虚拟数据处理加速器:在主机设备与虚拟数据处理加速器之间建立会话密钥;由主机设备将会话密钥存储在主机设备的邻接表中,其中,邻接表中的每个条目均包括:会话密钥和虚拟数据处理加速器的唯一标识符;经由配置有到虚拟数据处理加速器的虚拟通信信道的交换机向虚拟数据处理加速器传送一个或多个附加虚拟数据处理加速器的列表以及虚拟数据处理加速器为每个附加虚拟数据处理加速器生成唯一会话密钥的指令,唯一会话密钥用于保护虚拟数据处理加速器与一个或多个附加虚拟数据处理加速器的列表中的附加虚拟数据处理加速器之间的通信安全;以及经由交换机和虚拟通信信道从虚拟数据处理加速器接收虚拟数据处理加速器已完成生成用于在虚拟数据处理加速器与一个或多个附加虚拟数据处理加速器之间通信的唯一会话密钥的指示。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考标记指示相似元件。
图1是示出根据一个实施方式的安全处理系统的框图。
图2A和图2B是示出根据一个实施方式的一个或多个主机与一个或多个虚拟数据处理加速器之间的安全计算环境的框图。
图3是示出根据实施方式的主机和虚拟数据处理加速器或者两个虚拟数据处理加速器生成用于安全通信的会话密钥的方法的框图。
图4是示出根据实施方式的主机计算设备和多个数据处理加速器的硬件配置的框图,其中,多个数据处理加速器各自包括彼此安全地通信的多个虚拟数据处理加速器。
图5A和图5B是示出根据实施方式的主机设备与多个虚拟数据处理加速器之间的安全通信邻接表,以及支持虚拟通信信道的交换机的安全通信邻接表,以及当经由交换机通信时,虚拟数据处理加速器之间的安全通信邻接表的框图。
图6是示出根据实施方式的主机设备指示多个虚拟数据处理加速器将其自身配置为经由交换机进行安全通信的方法的框图。
图7是示出根据实施方式的虚拟数据处理加速器将其自身配置为经由交换机与一个或多个其它数据处理加速器进行安全通信的方法的框图。
图8是示出根据实施方式的虚拟数据处理加速器从主机接收处理任务并通过一个或多个附加虚拟数据处理加速器执行任务的一个或多个子任务的方法的框图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
以下实施方式涉及使用数据处理(DP)加速器来增加可从主机设备卸载(或委托)到一个或多个DP加速器的某些类型的操作的处理吞吐量。DP加速器可以是图形处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其它类型的处理器。DP加速器可以是专有设计,诸如AI加速器或另一GPU等。虽然用安全地联接至一个或多个DP加速器的主机设备来图解说明和描述实施方式,但是本文中所描述的概念可更一般地实施为分布式处理系统。
主机设备和DP加速器可经由诸如外围部件互连快速(PCIe)或其它高速总线的高速总线互连。DP加速器可配置为包括多个虚拟DP(VDP)加速器。VDP加速器中的每个均可经由交换机的虚拟通信信道与主机通信。VDP加速器中的每个均可通过不同的虚拟通信信道与VDP加速器中的至少一个通信。使用针对每个虚拟通信信道的不同会话密钥来保护每个虚拟通信信道。虚拟通信信道由虚拟通信信道的端点(主机或VDP加速器)限定。
主机设备和每个VDP加速器可在执行下面描述的本发明的各方面的操作之前通过PCIe总线交换密钥并启动安全虚拟通信信道。这里描述了用于生成确保主机与VDP加速器之间的安全通信的一个或多个密钥的实施方式。还描述了用于确保多个VDP加速器中的任何两个VDP加速器之间的安全通信的实施方式。在实施方式中,任何两个VDP加速器之间的通信使用相对于任何其它两个VDP加速器唯一的一个或多个密钥。由VDP加速器执行的操作中的一些包括VDP加速器使用人工智能(AI)模型利用由主机设备提供的数据执行推断。在AI模型推断被委托给VDP加速器以供计算之前,在主机与VDP加速器之间以及在VDP加速器与可参与AI模型推断的任何其它VDP加速器之间建立安全虚拟通信信道。
在第一方面,第一虚拟数据处理(VDP)加速器经由交换机与一个或多个第二VDP加速器安全地通信的计算机实施的方法包括:通过第一VDP加速器经由交换机的第一虚拟通信信道从主机设备接收一个或多个第二VDP加速器的列表。对于一个或多个第二VDP加速器中的每个,确定第一VDP加速器与第二VDP加速器之间的会话密钥。主机与第一VDP加速器之间的通信在交换机的第一虚拟通信信道上完成。在交换机的第二虚拟通信信道上完成第一VDP加速器与第二VDP加速器之间的通信。会话密钥由第一VDP加速器与第二VDP加速器相关联地存储,并且第一VDP加速器配置成用于与一个或多个第二VDP加速器中的每个进行安全通信的指示由第一VDP加速器经由第一虚拟通信信道发送至主机设备。类似地,第二VDP加速器将会话密钥与第一VDP加速器相关联地存储,例如存储在节点(主机或VDP加速器)的邻接表中,第二VDP加速器经由交换机的虚拟通信信道可通信地访问该节点。交换机不会知晓、存储或访问在主机与第一VDP加速器之间建立的任何会话密钥或在第一VDP加速器与任何第二VDP加速器之间建立的任何会话密钥。在实施方式中,该方法还包括通过第一VDP加速器生成具有用于一个或多个第二VDP加速器中的每个的条目的邻接表。每个条目均可包括行项目的VDP加速器的标识符、用于行项目的VDP加速器的会话密钥。可选地,每个条目均可包括与VDP加速器的状态相关的上下文信息。状态信息可包括行项目的VDP加速器是空闲的、正在处理还是在等待另一VDP加速器的结果。在实施方式中,为第一VDP加速器和一个或多个第二VDP加速器中的一个生成的会话密钥对于第一VDP加速器和一个或多个第二VDP加速器中的任何其它VDP加速器是唯一的。在实施方式中,用于一个或多个第二VDP加速器中的一个的每个条目均还包括一个或多个第二VDP加速器中的一个的唯一标识符。该方法还可包括通过第一VDP加速器经由交换机的第一虚拟通信信道从主机设备接收要执行的处理任务,以及一个或多个第二VDP加速器中的一个执行处理任务的至少一部分的指示。该方法还可包括:使用用会话密钥保护的消息,通过第一VDP加速器经由交换机的第二虚拟通信信道指示一个或多个第二VDP加速器中的一个执行处理任务的至少一部分,该会话密钥与第一VDP加速器和一个或多个第二VDP加速器中的一个相关联。在实施方式中,该方法还可包括通过第一VDP加速器经由交换机的第二虚拟通信信道从一个或多个第二VDP加速器中的一个接收使用会话密钥保护的消息,该会话密钥与第一VDP加速器和一个或多个第二VDP加速器中的一个相关联。消息可包括来自任务的至少一部分的结果。第一VDP加速器可经由第一虚拟通信信道向主机返回消息,该消息包含处理任务的结果。可使用与第一VDP加速器和主机设备相关联的会话密钥来保护该消息。
在一些实施方式中,主机设备可向VDP加速器发送内核,以用于代表主机执行一个或多个操作。在本文中,内核是一小段代码,提供给VDP加速器,由VDP加速器执行以执行内核的预期功能。在实施方式中,内核由主机设备提供给VDP加速器,作为由VDP加速器执行将由主机设备验证的信任证明操作的一部分。在一些实施方式中,VDP加速器不知道其代表主机设备执行的内核的目的。
在一些实施方式中,内核可以是“启用水印的内核”。启用水印的内核是这样的内核,当执行时,该内核能够从人工智能(AI)模型中提取水印。AI水印与特定的AI模型相关联,并且可使用几种不同的方法嵌入或“植入”AI模型内。水印可植入到AI模型的一个或多个节点的一个或多个权重变量中。在实施方式中,水印存储在AI模型的一个或多个节点的一个或多个偏置变量中,或者通过在训练期间创建AI模型的一个或多个附加节点来存储水印。
在第二方面,主机设备包括处理系统,处理系统包括一个或多个处理器和联接至处理器以存储指令的存储器。指令在由处理器执行时致使处理器执行用于主机设备的操作,主机设备配置多个虚拟数据处理(VDP)加速器以用于在交换机的虚拟通信信道上进行安全通信。操作包括,对于多个VDP加速器中的每个VDP加速器:在主机设备与VDP加速器之间建立会话密钥,以及通过主机设备将会话密钥存储在主机的邻接表中,其中,邻接表中的每个条目均包括:会话密钥和VDP加速器的唯一标识符。邻接表还可包括与由VDP加速器中的每个执行的处理有关的上下文信息,和/或VDP加速器中的每个的状态。邻接表使得主机设备能够使用会话密钥与多个VDP加速器中的每个VDP加速器安全地通信,会话密钥对于主机设备正在与之通信的具体VDP加速器是唯一的。
操作还包括:主机设备经由配置有第一虚拟通信信道的交换机向VDP加速器发送一个或多个附加VDP加速器的列表,以及VDP加速器为每个附加VDP加速器生成唯一会话密钥的指令,唯一会话密钥用于保护VDP加速器与一个或多个附加VDP加速器的列表中的附加VDP加速器之间的通信。为了在VDP加速器与附加VDP加速器之间建立会话密钥,VDP加速器和附加VDP加速器经由交换机的第二虚拟通信信道通信,而与主机无关。交换机和主机不知晓、存储或访问第一VDP加速器与附加VDP加速器之间的会话密钥。该操作还包括主机设备经由交换机和第一虚拟通信信道从VDP加速器接收VDP加速器已完成生成唯一会话密钥的指示,唯一会话密钥用于VDP加速器与一个或多个附加VDP加速器之间的通信。一旦VDP加速器向主机设备确认VDP加速器已完成为附加VDP加速器中的每个建立用于安全通信的唯一会话密钥,则主机设备可开始向VDP加速器分配处理任务。在实施方式中,该操作还包括通过主机设备经由第一虚拟通信信道向VDP加速器发送用于VDP加速器和一个或多个附加VDP加速器中的至少一个执行的处理任务,使用为主机设备和VDP加速器建立的会话密钥来保护该发送。主机设备可经由交换机和第一虚拟通信信道从VDP加速器接收来自处理任务的结果。可使用为主机设备和VDP加速器建立的会话密钥来保护该结果。在实施方式中,发送处理任务可包括从主机设备向VDP加速器发送关于处理任务的子任务将由一个或多个附加VDP加速器中的特定一个执行的指令。在实施方式中,处理任务可以是以下中的一个或多个:人工智能推断、加密或解密数据、对数据数字地签名、从AI模型提取水印、将水印植入AI模型、将水印植入AI模型推断结果或这些的组合。
上述功能中的任一个可作为可执行指令编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,该处理系统使得实现该功能。
上述功能中的任一个可通过具有至少一个硬件处理器的处理系统来实现,硬件处理器联接至用可执行指令编程的存储器,可执行指令在被执行时使处理系统实现功能。
图1是示出根据一些实施方式的用于经由配置有多个虚拟通信信道的交换机109来保护主机104与数据处理(DP)加速器105至107之间的通信的系统配置的示例的框图。参照图1,系统配置100包括但不限于通过网络103通信地联接至DP服务器104(例如,主机)的一个或多个客户端设备101至102。客户端设备101至102可以是任何类型的客户端设备,诸如个人计算机(例如,台式计算机、膝上型计算机和平板计算机)、“瘦”客户端、个人数字助理(PDA)、启用Web的设备、智能手表或移动电话(例如,智能电话)等。可替代地,客户端设备101至102可以是其它服务器。网络103可以是任何类型的网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、或其有线或无线的组合。
服务器(例如,主机)104可以是任何类型的服务器或服务器集群,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器104还包括接口(未示出),以允许诸如客户端设备101至102的客户端访问由服务器104提供的资源或服务(诸如由DP加速器经由服务器104提供的资源和服务)。例如,服务器104可以是向客户端提供各种云服务(诸如,例如云存储、云计算服务、人工智能训练服务、数据挖掘服务等)的云服务器或数据中心的服务器。服务器104可配置为云上的软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,该云可以是私有云、公共云或混合云。接口可包括Web接口、应用编程接口(API)和/或命令行接口(CLI)。
例如,在该示例中,客户端,即客户端设备101的用户应用程序(例如,Web浏览器应用程序),可向服务器104发送或传送用于执行的指令(例如,人工智能(AI)训练、推断指令等),服务器104经由网络103上的接口接收指令。响应于该指令,服务器104与DP加速器105至107通信以完成指令的执行。服务器104可通过交换机109的一个或多个虚拟通信信道与DP加速器105至107中的每个以及多个虚拟DP(VDP)加速器中的每个进行通信。任何DP加速器可独立于主机104经由交换机109与另一DP加速器通信。任何VDP加速器可独立于主机经由交换机109的虚拟通信信道与不同DP加速器上的另一VDP加速器通信。
在一些实施方式中,从主机到DP加速器或VDP加速器的指令可以是机器学习类型的指令,其中,DP加速器或VDP加速器作为专用机器或处理器可比由服务器104执行快许多倍地执行指令。因此,服务器104可以以分布式方式控制/管理用于一个或多个DP加速器或VDP加速器的执行作业。然后,服务器104向客户端设备101至102返回执行结果。DP加速器或AI加速器可包括一个或多个专用处理器,诸如可从Baidu公司获得的人工智能(AI)芯片组,或者可替代地,DP加速器可以是来自另一AI芯片组提供商的AI芯片组。
根据一个实施方式,访问由数据处理服务器104(也称为主机)主管的DP加速器105至107(或DP加速器的VDP加速器)中的任一个的应用程序中的每个均可验证该应用程序是由受信任的来源或供应商提供的。每个DP加速器均均可配置为多个(例如,四个)虚拟DP(VDP)加速器。因此,例如,DP加速器105可配置为四个虚拟DP加速器105A、105B、105C和105D。应用程序中的每个均可在由主机104的中央处理单元(CPU)专门配置和执行的信任的执行环境(TEE)内启动和执行。当应用程序配置成访问VDP加速器(例如,105A至105D、106A至106D或107A至107D)中的任一个时,可在主机104与VDP加速器中的相应一个VDP加速器之间建立模糊的连接,从而保护在主机104与VDP加速器中的任一个之间交换的数据免受恶意软件/入侵的攻击。
交换机109可以是可配置成用于在至少一个主机与多个DP加速器之间通信的任何类型的交换机设备。交换机109可支持用于交换机的一个或多个物理通信端口的通信信道的虚拟化。例如,物理DP加速器105可配置有四个VDP加速器105A至105D。联接至DP加速器105的交换机109的通信端口可配置为四个虚拟通信信道,使得VDP加速器105A至105D中的每个均在联接至DP加速器105的交换机通信端口的虚拟通信信道之一上通信。交换机109可以是以太网交换机、PCIe交换机或其它高速总线或网络拓扑。
图2A是示出根据一些实施方式的用于主机系统104和数据处理(DP)加速器105至107之间的模糊通信的多层保护解决方案的示例的框图。在一个实施方式中,系统200在对DP加速器进行或不进行硬件修改的情况下,提供用于在主机104与DP加速器105至107之间进行模糊通信的保护方案。在实施方式中,每个DP加速器(例如,105至107)可配置为具有多个(例如,4个)虚拟DP(VDP)加速器,虚拟DP(VDP)加速器中的每个均经由虚拟通信信道与主机104通信。在实施方式中,主机104经由配置在主机104与DP加速器105至107之间的交换机109的虚拟通信信道通信地联接至每个VDP加速器。
参考图2A,主机机器或服务器104可描述为具有受保护以免受入侵一个或多个层的系统,一个或多个层诸如为用户应用程序205、运行时间库206、驱动器209、操作系统211和硬件213(例如,安全模块(信任的平台模块(TPM))/中央处理单元(CPU))。存储器安全应用程序207可在沙箱存储器中运行。在应用程序205和运行时间库206之下,可安装一个或多个驱动器209以接口到硬件213和/或DP加速器105至107。
硬件213可包括一个或多个处理器201和存储设备204。存储设备204可包括一个或多个人工智能(AI)模型202和一个或多个内核203。内核203可包括签名内核、启用水印的内核、加密和/或解密内核等。签名内核在执行时可根据内核的编程数字地签署任何输入。启用水印的内核可从数据对象(例如,AI模型或其它数据对象)提取水印。启用水印的内核还可将水印植入AI模型、推断输出或其它数据对象中。水印内核(例如,继承水印的内核)可继承来自另一数据对象的水印,并将该水印植入诸如例如推断输出或AI模型的不同对象中。如这里所使用的,水印是与AI模型或由AI模型生成的推断相关联的标识符,并且可植入到AI模型或由AI模型生成的推断中。例如,可在一个或多个权重变量或偏置变量中植入水印。可替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的伪节点)以植入或存储水印。
主机机器104通常是CPU系统,其可控制和管理主机机器104和/或DP加速器105至107上的作业的执行。为了保护/模糊DP加速器105至107与主机机器104之间的通信信道215,可能需要不同的部件来保护主机系统中易于数据入侵或攻击的不同层。例如,信任的执行环境(TEE)可保护用户应用程序205层和运行时间库206层免受数据入侵。通信信道215可配置为携带多个虚拟信道。例如,主机104可通过包括多个(例如,四个)虚拟通信信道215A、215B、215C和215D的单个物理通信信道215与DP加速器105通信。在实施方式中,虚拟通信信道215A至215D可在物理信道通信信道215上被时分复用。每个虚拟通信信道均可具有用于保护虚拟通信信道上的通信的会话密钥,该会话密钥不同于任何其它虚拟通信信道的会话密钥。在实施方式中,通过虚拟通信信道发送的消息可使用先入先出、最大先出、最小先出、后入先出或其它排队逻辑中的任何一个,在排队的基础上通过物理通信信道发送。
根据一些实施方式,系统200包括主机系统104和DP加速器105至107。DP加速器可包括AI芯片组或另一AI芯片组,诸如可执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。每个DP加速器均可根据从主机104接收的配置指令被配置为多个虚拟DP(VDP)加速器。在实施方式中,可在例如启动时间将配置指令提供给每个DP加速器,并且保持该配置直到主机104的下一个启动序列。在实施方式中,每个VDP加速器均通过虚拟通信信道与相邻的主机设备104或其它VDP加速器通信,该虚拟通信信道由在虚拟通信信道上通信的端点(节点)限定。例如,主机104可通过主机104与交换机109之间的物理通信信道215与DP加速器通信,并且还可通过虚拟通信信道从交换机109通信到DP加速器,或者通信到由DP加速器主管的VDP加速器。主机104可经由交换机109指示DP加速器105将其自身配置为例如四(4)个虚拟DP加速器105A、105B、105C和105D。主机104和DP加速器105可将其自身配置为将通信信道215作为例如四个虚拟通信信道215A、215B、215C和215D来处理。因此,主机104使用虚拟通信信道215A与虚拟DP加速器(VDPA)105A通信。类似地,主机104通过虚拟通信信道215B与VDPA 105B通信,并且类似地,对于VDPA 105C和105D,通过虚拟通信信道215C和215D进行通信。主机104可保持邻接表,该邻接表将在主机104上运行的进程与相应的虚拟数据处理加速器和用于保护主机104与VDPA之间的通信的会话密钥相关联。在实施方式中,每个会话密钥相对于其它虚拟通信信道的其它会话密钥均是唯一的。交换机109可保持与交换机109通信的每个DP加速器和VDP加速器的唯一标识符的邻接表。交换机109可包括邻接表,该邻接表包括节点(主机、DP加速器和VDP加速器)的唯一标识符的列表以及与DP加速器或VDP加速器的每个唯一标识符相关联的虚拟通信信道。
在实施方式中,主机系统104包括具有一个或多个CPU的硬件213,硬件213配备有主机机器104内的安全模块(诸如信任的平台模块(TPM))。TPM是端点设备上的专用芯片,其存储专用于主机系统的用于硬件认证的密码密钥(例如,RSA密码密钥)。每个TPM芯片均可包含称为签注密钥(EK)或签注凭证(EC)(即,根密钥)的一个或多个RSA密钥对(例如,公共密钥对和私有密钥对)。密钥对保持在TPM芯片内部,并且不能被软件访问。然后,在执行固件和软件的关键部分之前,可由EK或EC对它们进行散列,以保护系统免于未授权的固件和软件修改。因此,主机机器上的TPM芯片可用作安全启动的信任根。TPM芯片可包括用于存储例如硬件中的根密钥和从根密钥派生的密钥的安全存储器。在实施方式中,安全存储器可包括根非对称密钥对(RK):非对称根密钥(RK)对的公共密钥(PK_RK)和私有密钥(SK_RK)。
TPM芯片还包括在工作内核空间中的安全驱动器209和操作系统(OS)211,以与DP加速器105至107通信。这里,驱动器209由DP加速器供应商提供,并且可用作用户应用程序205的驱动器,以控制主机104与DP加速器105至107之间的通信信道215。因为TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动器209,所以TPM芯片还有效地保护驱动器209和OS 211。
用于DP加速器105至107的通信信道215可被OS 211和驱动器209专门占用,因此,通信信道215可通过TPM芯片来保护。在一个实施方式中,通信信道215包括外围部件互连(PCI)或外围部件互连快速(PCIE)信道。在一个实施方式中,通信信道215是模糊的通信信道。通信信道可连接至驱动器209可访问的一个或多个硬件通信端口,用于通过通信信道215与DP加速器105至107进行通信。通信信道215可使用这里描述的会话密钥来保护。可使用与其它通信信道215不同的会话密钥来保护每个通信信道215。驱动器209可包括将DP加速器105至107各自映射到硬件通信端口的邻接表,以及与每个硬件通信端口相关联的会话密钥。
主机机器104可包括信任的执行环境(TEE)210,其被TPM/CPU213强制安全。TEE是安全环境。TEE可保证装载在TEE内的代码和数据受到保密性和完整性方面的保护。TEE的示例可以是软件保护扩展(SGX)或安全加密虚拟化(SEV)。SGX和/或SEV可包括一组中央处理单元(CPU)指令代码,其允许用户级代码分配CPU的存储器的专用区域,专用区域被保护以免于以较高特权级运行的进程。这里,TEE 210可保护用户应用程序205和运行时间库206,其中,用户应用程序205和运行时间库206可分别由终端用户和DP加速器供应商提供。这里,运行时间库206可将应用编程接口(API)调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施方式中,运行时间库206提供由用户应用程序执行的预定的一组(例如,预定义的)内核。在实施方式中,内核可作为内核203存储在存储设备204中。
主机机器104可包括存储器安全应用程序207,其使用诸如Rust和GoLang等存储器安全语言来实现。这些在存储器安全的版本(诸如MesaLock)上运行的存储器安全应用程序可进一步保护系统200免受数据保密性和完整性攻击。然而,操作系统可以是任何分布、OS或OS。
主机机器104可如下设置:将存储器安全的分布安装到配备有TPM安全启动的系统上。该安装可在制造或准备阶段期间离线执行。该安装还可确保使用存储器安全编程语言对主机系统的用户空间的应用程序进行编程。确保在主机系统104上运行的其它应用程序是存储器安全应用程序可进一步减轻对主机系统104的潜在保密性和完整性攻击。
在安装之后,系统然后可通过基于TPM的安全启动来启动。TPM安全启动确保仅在提供加速器服务的内核空间中启动经签署/认证的操作系统和加速器驱动程序。在一个实施方式中,可通过管理程序(未示出)加载操作系统211。管理程序或虚拟机管理器是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是其中标识内核(即,用于执行的预定的一组(例如,预定义的)函数)以向用户应用程序提供功能性和服务的声明性区域或范围。在系统的完整性受到损害的情况下,TPM安全启动可能无法启动,并且代替地关闭系统。
在安全启动之后,运行时间库206运行并创建TEE 210,TEE 210将运行时间库206置于与CPU 213相关联的信任的存储器空间中。接下来,在TEE 210中启动用户应用程序205。在一个实施方式中,用户应用程序205和运行时间库206被静态链接并一起启动。在另一实施方式中,运行时间库206首先在TEE 210中启动,然后用户应用程序205动态加载到TEE 210中。在另一实施方式中,首先在TEE 210中启动用户应用程序205,然后在TEE 210中动态加载运行时间库206。静态链接的库是在编译时链接到应用程序的库。动态加载可由动态链接器执行。动态链接器加载并链接共享库,以便在运行时间运行用户应用程序。这里,TEE 210内的用户应用程序205和运行时间库206在运行时间彼此可见,例如,所有过程数据彼此可见。然而,拒绝对TEE的外部访问。
在一个实施方式中,用户应用程序205只能从运行时间库206预定的一组内核中调用内核。在另一实施方式中,用户应用程序205和运行时间库206用侧信道自由算法进行硬化,以防御诸如基于高速缓存的侧信道攻击的侧信道攻击。侧信道攻击是基于从计算机系统的实现中获得的信息的任何攻击,而不是在所实现的算法本身中的弱点(例如,密码分析和软件缺陷)。侧信道攻击的示例包括高速缓存攻击,其是基于攻击者在虚拟化环境或云环境中监控共享物理系统的高速缓存的能力的攻击。硬化可包括掩蔽高速缓存,由算法生成的输出放置在高速缓存上。接下来,当用户应用程序完成执行时,用户应用程序终止其执行并从TEE退出。
在一个实施方式中,TEE 210和/或存储器安全应用程序207不是必需的,例如,用户应用程序205和/或运行时间库206托管在主机104的操作系统环境中。
在一个实施方式中,该组内核包括混淆内核算法。在一个实施方式中,混淆内核算法可以是对称或非对称算法。对称混淆算法可使用相同的算法对数据通信进行混淆和去混淆。非对称混淆算法需要一对算法,其中,该对算法中的第一个用于混淆,以及该对算法中的第二个用于去混淆,反之亦然。在另一实施方式中,非对称混淆算法包括用于混淆数据集的单个混淆算法,但是该数据集不打算进行去混淆,例如,不存在对应的去混淆算法。混淆是指通过使通信消息难以理解(通常使用令人迷惑和不明确的语言)来模糊通信的预期含义。对于逆向工程师而言,模糊的数据更加困难和复杂。在传送数据之前,可应用混淆算法来模糊(加密/解密)数据通信,从而减少窃听的机会。在一个实施方式中,混淆算法还可包括加密方案,以进一步对用于附加保护层的混淆数据进行加密。与可以是计算密集的加密不同,混淆算法可简化计算。一些混淆技术可包括但不限于字母混淆、名称混淆、数据混淆、控制流混淆等。字母混淆是用特定的替代字母替换数据中的一个或多个字母,致使数据无意义。字母混淆的示例包括字母旋转功能,其中,每个字母均沿字母表上的字母移动或旋转了预定数量的位置。另一示例是基于特定图案将字母重新排序或弄乱。名称混淆是用无意义字符串替换特定目标字符串的过程。控制流混淆可使用附加代码改变程序中的控制流的顺序(插入死代码,插入不受控制的跳转,插入替代性结构),以隐藏算法/AI模型的真实控制流。下文将描述用于共享用于混淆的密钥的系统和方法。
总之,系统200为DP加速器提供多层保护(用于包括机器学习模型、训练数据和推断输出的数据传输),以免丢失数据机密和完整性。系统200可包括基于TPM的安全启动保护层、TEE保护层和内核校验/验证层。此外,系统200可通过确保主机机器上的其它应用程序用存储器安全编程语言来实现而提供存储器安全用户空间,存储器安全编程语言可通过消除潜在的存储器破坏/漏洞来进一步消除攻击。此外,系统200可包括使用侧信道自由算法来防御侧信道攻击(诸如基于高速缓存的侧信道攻击)的应用程序。
运行时间库206可提供混淆内核算法以混淆主机104与DP加速器105至107之间的数据通信。在一个实施方式中,混淆可与密码方案配对。在另一实施方式中,混淆是唯一的保护方案,并且对于DP加速器而言,基于密码的硬件变得不必要。
图2B是示出根据一些实施方式的通信地联接至与DP加速器105至107接口的一个或多个加速器信道管理器(ACM)270的主机信道管理器(HCM)259的示例的框图。参考图2B,在一个实施方式中,HCM 259包括认证模块251、终止模块252、密钥管理器253、密钥存储器254和密码引擎255。认证模块251可认证在主机服务器104上运行的用户应用程序,以允许访问或使用DP加速器105的资源。终止模块252可终止连接(例如,将终止与连接相关联的信道)。密钥管理器253可管理(例如,创建或销毁)非对称密钥对或对称密钥,以便对不同的安全数据交换信道的一个或多个数据包进行加密/解密。这里,每个用户应用程序(作为图2A的用户应用程序205的一部分)均可以以一对多的关系对应于或映射到不同的安全数据交换信道,并且每个数据交换信道均可对应于DP加速器105。每个应用程序均可利用多个会话密钥,其中,每个会话密钥均用于对应于DP加速器(例如,加速器105至107)的安全信道,或者用于VDP加速器。密钥存储器254可存储加密非对称密钥对或对称密钥。密码引擎255可对通过安全数据交换信道中的任一个交换的数据的数据包进行加密或解密。应注意,这些模块中的一些可集成到更少的模块中。
在一个实施方式中,DP加速器105包括ACM 270和安全单元(SU)275。安全单元275可包括密钥管理器271、密钥存储器272、真实随机数生成器273和密码引擎274。密钥管理器271可管理(例如,生成、安全保持和/或销毁)非对称密钥对或对称密钥。密钥存储器272可将密码非对称密钥对或对称密钥存储在安全单元275内的安全存储器中。真实随机数生成器273可生成用于密钥生成和密码引擎274使用的种子。密码引擎274可对用于数据交换的密钥信息或数据包进行加密或解密。在一些实施方式中,ACM 270和SU 275是集成模块。
DP加速器105还可包括存储器/存储装置280,其可存储人工智能模型277、水印内核278(包括继承的水印内核、启用水印的内核、水印签名内核等)、加密和解密内核281和数据279。HCM 259可经由通信信道215与ACM 270通信。在实施方式中,通信信道215可包括介于HCM 259与ACM 270之间的交换机109。
DP加速器105还可包括配置由DP加速器105主管的一个或多个虚拟DP加速器的逻辑。DP加速器105还可包括将物理通信信道215虚拟化为对应于DP加速器105的虚拟DP加速器的多个虚拟通信信道215A至215D的逻辑。每个这样的虚拟通信信道均可具有其自己的唯一会话密钥。
图3是示出根据实施方式的主机和虚拟数据处理加速器(VDP加速器或VDPA)或两个虚拟数据处理加速器生成用于保护通信的会话密钥的方法300的框图。方法300可用在第一虚拟数据处理(VDP)加速器“加速器1”与第二节点“节点2”之间。节点2可以是主机设备或第二VDP加速器。加速器1具有根密钥对PK_RK1和SK_RK1。PK_RK1是加速器1的根非对称密钥对(RK1)的公共密钥。SK_RK1是加速器1的根非对称密钥对(RK1)的私有(秘密)密钥(SK)。根密钥对RK1存储在加速器1的安全存储器中。类似地,节点2(主机或另一VDP加速器)具有根密钥对PK_RK2和SK_RK2。RK2可存储在节点2的安全存储器中。
在操作301中,加速器1从根密钥对PK_RK1和SK_RK1生成派生的非对称密钥对PK_D1和SK_D1。派生非对称密钥对在本领域中是已知的,并且在此将不进行描述。在操作302中,加速器1向节点2发送“获取公共密钥”命令(GET_PUB_KEY)以请求节点2的公共密钥。GET_PUB_KEY命令包括对加速器1的公共密钥PK_RK1和PK_D1中的两个加密。在实施方式中,可使用加速器1的私有根密钥SK_RK1来对PK_RK1和PK_D1进行加密。GET_PUB_KEY命令还包括明文形式的加速器1的公共根密钥PK_RK1。节点2可使用PK_RK1对加速器1的加密密钥进行解密,并验证GET_PUB_KEY请求实际上确实来自加速器1。
在操作303中,节点2从节点2的根密钥对PK_RK2和SK_RK2生成派生的非对称密钥对PK_D2和SK_D2。派生的密钥PK_D2和SK_D2可存储在节点2的安全存储器中。在操作304中,节点2可使用加速器1的明文公共根密钥PK_RK1来对从加速器1接收的“GET_PUB_KEY”命令进行解密。一旦被解密,节点2获得加速器1的派生公共密钥:PK_D1。在操作305中,节点2向加速器1发送“返回公共密钥”(RET_PUB_KEY)消息。该消息包括使用节点2的私有根密钥SK_RK2加密的节点2的PK_RK2和PK_D2。节点2的公共根密钥PK_RK2与加密密钥PK_RK2和PK_D2打包,然后打包的密钥使用加速器1的派生公共密钥PK_D1加密。
在操作306中,加速器1使用加速器1的私有派生密钥SK_D1对RET_PUB_KEY消息进行解密。在解密之后,加速器1可获得节点2的公共根密钥PK_RK2。然后,加速器1使用节点2的新获得的公共根密钥PK_RK2对加密密钥PK_RK2和PK_D2进行解密。然后,加速器1可获得节点2的派生公共密钥PK_D2。在实施方式中,加速器1可通过检查主机设备或PK_RK2的历史副本来验证PK_RK2或者解密的PK_RK2和明文PK_RK2两者。
在操作307中,加速器1可生成新鲜值“nc1”。在操作308中,加速器1可向节点2发送命令“生成会话密钥”(CMD_SESS_KEY)。该命令包括使用节点2的公共派生密钥PK_D2加密的新鲜值nc1。CMD_SESS_KEY指示节点2从加速器1的新鲜值nc1和由节点2生成的新鲜值nc2生成会话密钥。在操作309中,节点2可使用节点2的私有派生密钥SK_D2来对接收到的CMD_SESS_KEY中的新鲜值nc1进行解密。
在操作310中,节点2可生成新鲜值nc2。节点2然后可基于新鲜值nc1和nc2生成会话密钥。节点2将会话密钥存储在节点2的邻接表中。会话密钥与加速器1和加速器1的唯一标识符相关联地存储。在操作311中,节点2可向加速器1发送新鲜值nc2。节点2将nc1、nc2和PK_D1打包在第一包中,并使用节点2的私有派生密钥SK_D2对第一包进行加密。然后,节点2将PK_D2添加到加密的第一包,并生成使用加速器1的公共派生密钥PK_D1加密的第二加密包。然后将加密的第二包发送至加速器1。
在操作312中,加速器1从节点2接收加密的第二包,并使用加速器1的派生私有密钥SK_D1对第二包进行解密。然后,加速器1可从解密的第二包中去除PK_D2,仅留下加密的第一包。在实施方式中,加速器1可验证从解密的第二包中移除的PK_D2与先前在上面的操作305中接收的并且在操作306中解密的PK_D2相匹配。加速器1还可验证从解密的第一包获得的并且先前在操作308中发送至节点2的nc1没有到期(aka,“验证”新鲜值的“新鲜度”)。然后,加速器1可基于新鲜值nc1和nc2生成会话密钥。加速器1可将生成的会话密钥与节点2的唯一标识符和会话密钥相关联地存储在加速器1的邻接表中。
此时,加速器1和节点2都具有从新鲜值nc1和nc2派生的相同会话密钥。加速器1和节点2都已将会话密钥存储在它们各自的邻接表中。下面参考图5详细描述邻接表。
图4是示出主机计算设备104和经由交换机109通信地联接至主机的多个数据处理(DP)加速器105至107的硬件配置400的框图。每个DP加速器(例如,105)均可配置为多个(例如,四个)虚拟数据处理(VDP)加速器105A至105D。DP加速器的每个VDP加速器可经由虚拟通信信道402与不同DP加速器的另一VDP加速器通信。例如,VDP加速器105A可配置成经由交换机109与主机104和VDP加速器106A和107A通信。VDP加速器105B可配置成与主机104和VDP加速器106B和107B通信。VDP加速器105C可配置成与主机104和VDP加速器106C和107C通信。VDP加速器105D可配置成与主机104和VDP加速器106D和107D通信。这些只是示例性配置。在实施方式中,任何VDP加速器均可配置成经由交换机109的虚拟通信信道402与任何其它VDP加速器通信。
为了实现配置,主机104和DP加速器105至107中的每个均可生成一个或多个邻接表,邻接表指示在DP加速器内配置的VDP加速器。DP加速器中的VDP加速器还可各自具有邻接表和会话密钥,邻接表指示每个VDP加速器可与之通信的其它VDP加速器以及用于保护虚拟通信信道402上的通信的会话密钥。
主机104通信地联接至DP加速器105、106和107中的每个。DP加速器105经由交换机109通信地联接至DP加速器106和107。主机104包括具有通信地联接至交换机109的一个或多个端口的通信接口。在图4中,DP加速器105的通信端口0可通信地联接至交换机109的通信端口0。DP加速器106的通信端口0可通信地联接至交换机109的通信端口1。DP加速器107的通信端口0可通信地联接至交换机109的通信端口2。DP加速器105至107也经由交换机109彼此通信联接。
上面的每个通信联接的物理端口对限定了物理通信信道401。每个物理通信信道401均可分成多个虚拟通信信道402。每个物理通信信道401的虚拟通信信道402的数量可大于或等于DP加速器为其配置的VDP加速器的数量。例如,如果DP加速器105配置有四个虚拟DP加速器,则DP加速器105的通信端口0可各自配置有四个或更多个虚拟通信信道402,使得存在与DP加速器105的每个VDP加速器105A至105D相关联的虚拟通信信道402。一个或多个附加虚拟通信信道402可经由交换机109配置在主机104与DP加速器105至107中的任一个之间,或者DP加速器105至107中的任一个之间。
这种附加的虚拟通信信道402可用于在主机104与DP加速器之间或在DP加速器之间传送带外信息。在实施方式中,主机104可与DP加速器105通信以向DP加速器105传送配置信息,包括DP加速器105要为自身配置所识别的数量的VDP加速器的指令,每个VDP加速器均分配给一个或多个虚拟通信信道402。每个虚拟通信信道402均可具有与虚拟通信信道402的任何其他虚拟通信信道不同的会话密钥。如上针对DP加速器105描述的,主机104类似地指示其它DP加速器(106、107等)配置它们自己以及它们的VDP加速器和虚拟通信信道。
前述虚拟通信信道402中的每个均可通过与其它虚拟通信信道402不同的会话密钥来保护。因此,如果虚拟通信信道402中的任一个被损害,则其它虚拟通信信道402仍然是安全的。每个DP加速器105至107均可监视它自己的物理通信信道401,以确保每个通信信道401可操作。每个虚拟DP加速器均还可监视虚拟DP加速器所连接的虚拟通信信道402,以确保每个虚拟通信信道402可操作。如果虚拟通信信道402发生故障,则检测到该故障的VDP加速器可向其中配置了该VDP加速器的DP加速器通知该故障。DP加速器然后可使用保留用于带外通信的附加虚拟通信信道402中的一个来将故障通知给主机104。带外通信是用于主机104与VDP加速器之间或两个VDP加速器之间的工作相关通信之外的目的的那些通信。
主机104和虚拟DP加速器105A至105D、106A至106D和107A至107D中的每个均可具有邻接表,该邻接表存储主机104或VDP加速器105A至105D、106A至106D或107A至107D通信联接的节点(主机或VDP加速器)列表。下面参考图5描述邻接表。
图5A和图5B是示出了在主机104与多个虚拟DP加速器(VDP加速器)之间的安全通信邻接表500的框图。图5A示出了交换机109的示例性邻接表510。图5B分别示出了VDP加速器105B和106B的两个示例性邻接表520和521。
如上参考图4所述,每个DP加速器均可配置为具有多个虚拟数据处理(VDP)加速器。VDP加速器经由在交换机109与DP加速器的通信端口之间的物理通信信道401上实现的虚拟通信信道402与主机104和其它DP加速器的其它VDP加速器通信。在实施方式中,主机104和交换机109可实现主机与交换机之间的虚拟通信信道,但这不是必须的。主机104和交换机109可通过总线、物理端口或其它机制实现物理或虚拟通信信道。交换机109在交换机109与VDP加速器之间实现虚拟通信信道。
例如,主机104可具有邻接表500,其列出了通信地联接至主机104的DP加速器和VDP加速器。DP加速器105至107和VDP加速器(例如,105A至105D、106A至106D和107A至107D)可各自具有唯一的虚拟设备ID(VID)501,例如VDP_105A_ID等,使得VDP加速器可通过名称来引用。在实施方式中,当主机想要向VDP加速器发送消息时,该消息可具有格式[源,message_payload(消息_有效载荷),目的地]。消息可以是由发送者指定的任何有效载荷。示例性有效载荷包括对VDP加速器的指令,以配置其自身用于与另一节点(主机或VDP加速器)的安全通信。有效载荷可包括从VDP加速器传送至另一VDP加速器的计算任务。有效载荷可包括另一VDP加速器将结果发送回给另一VDP加速器分配任务的VDP加速器。有效载荷还可以是主机与VDP加速器之间或两个VDP加速器之间的任何带外通信。带外通信可以是与执行终端用户或应用处理工作无关的任何通信。
主机,作为发送者(源),可通过其自己的VID 501(例如HOST_104_ID)来引用其自身。主机104可通过其唯一的VID 501(例如VDPA_106B_ID)来表示目的地VDP加速器。主机可查找目的地VDP加速器的VID 501,例如VDPA_106B_ID,以寻找对应于VDPA_106B_ID的会话密钥,并用会话密钥对消息有效载荷进行加密。当交换机109从主机104接收到去往VDP加速器的消息时,交换机109可使用交换机邻接表510来查找目的地(例如,VDPA_106B_ID)的VID501,以寻找用于VDPA_106B_ID的交换机109的虚拟信道503,并且通过虚拟通信信道将该消息转发至VDPA 106B,到目的地VDP加速器。
主机邻接表500还可包括与主机和经由虚拟通信信道402通信地联接至主机的特定VDP加速器相关的上下文信息505。上下文信息可包括主机进程(“Host_Proc_ID“)的标识符,其中,主机进程调用VDP加速器以代表主机104执行工作。上下文信息还可包括代表主机104执行工作的VDP加速器上的进程的标识符(例如,“VDPA_Proc_ID”)。上下文信息还可包括主机进程的状态,例如“等待来自VDP加速器进程的结果”和/或代表主机104执行工作的VDP加速器进程的状态,例如“等待VDP加速器106B子任务结果”或其它状态。上下文信息还可包括与主机进程相关联的用户的标识符(User_ID)。总而言之,上下文信息可用于回答主机处的用户查询,诸如“我请求的人工智能(AI)模型推断的状态是什么?”。主机104上的逻辑可查询邻接表以寻找具有特定User_ID的用户的上下文信息,然后确定正在为用户执行AI模型推断的每个VDP加速器和相关进程的状态。确定这种状态可包括对一个或多个VDP加速器的带外查询,以确定进程的具体子任务是否已在具体的VDP加速器处失败。可生成其他上下文信息,该其他上下文信息可用于帮助诊断由一个或多个VDP加速器代表调用者(例如,主机104)对一个或多个VDP加速器的一个或多个处理任务的性能。
在实施方式中,主机将工作委托给单个VDP加速器,指示将工作的一个或多个子任务委托给一个或多个VDP加速器。在实施方式中,单个VDP加速器可确定可执行一个或多个子任务的空闲VDP加速器,并且VDP可确定要委托给空闲VDP加速器的具体子任务。在实施方式中,主机104可向单个VDP加速器提供关于将一个或多个子任务委托给哪个VDP加速器的指令,并且该单个VDP加速器可覆盖主机的指令,以利于单个VDP加速器确定一个或多个VDP加速器当前是空闲的和可用的。
类似于主机104,交换机109可具有将DP加速器和VDP加速器映射到虚拟通信信道的邻接表510。交换机邻接表510中的每个行项目均可包括节点(主机、DP加速器或VDP加速器)的虚拟设备ID 501、物理通信端口502和虚拟通信信道503。例如,如交换机邻接表510中所示,DP加速器105可具有DPA_105_ID的VID。DP加速器105可映射到交换机109的物理端口0,并且具体地映射到交换机109的例如0.0的虚拟信道(物理信道0上的第0个虚拟信道)。主机104可向DP加速器105发送包含DP加速器105要配置四个虚拟DP加速器105A至105D的指令的消息。交换机109接收该消息,在交换机邻接表510中查找DPA_105_ID,并通过交换机109的物理端口0的虚拟信道0.0将该消息传送至目的地DP加速器105。
类似于主机104,DP加速器(例如,DP加速器105)可具有多个邻接表510A至510D,每个邻接表均用于DP加速器105的VDP加速器105A至105D中的每个。在图5B中,分别示出了VDP加速器105B和106B的示例性VDP加速器邻接表520和521。类似地,派生了用于任何其它VDP加速器(105A、105C至105D、106A、106C至106D和107A至107D)的VDP加速器邻接表。VDP加速器105B的邻接表521可包括端点虚拟ID 511(例如,HOST_104_ID,或相邻的VDP加速器VDPA_106B_ID和VDPA_107B_ID),以及会话密钥514,当在虚拟通信信道上与具有VID 511的相邻节点进行通信时使用该会话密钥514。类似地,派生了VDP 106B的邻接表(在图5B中示为521)。
每个邻接表(例如,521)均还可具有上下文信息(例如,505),用于处理可在相邻VDP加速器内执行的任务。上下文信息505可包括例如调用VDP加速器的节点(主机或VDP加速器)的标识,例如,调用VDP加速器105A的主机104。上下文信息505还可包括被调用VDP加速器的进程和节点(主机104或VDP加速器)的调用者状态,例如:Host_104_ID:Process_ID指示由调用例如VDP加速器105B的Process_ID标识的进程,并且等待对该调用的响应。VDP加速器105B可能已调用VDP加速器106B来执行形成VDP加速器105B正在为调用过程Host_104_ID:Process_ID执行的处理任务的子任务的工作。相对于被调用的VDP加速器106B而言,VDP加速器105B的调用状态是VDP加速器105B正在等待VDP加速器106B返回结果,然后VDP加速器105B才能将结果返回给Host_104_ID:Process_ID。与VDP加速器105B相邻的VDP加速器107B可以是空闲的,因此没有识别的调用者。
可为两个节点(主机104至VDP加速器,或VDP加速器至VDP加速器)之间的每个虚拟通信信道402生成会话密钥。上面参考图3描述了在两个节点之间生成会话密钥,下面参考图6描述了一种方法。会话密钥NULL(空)表示在具有NULL会话密钥的邻接表的行项目中引用的两个节点之间还没有确定会话密钥。当DP加速器从主机104接收指令和配置信息以在DP加速器上配置VDP加速器,并为每个VDP加速器生成邻接表时,将每个行项目的会话密钥字段最初设置为NULL。当为邻接表中的行项目生成会话密钥时,用生成的会话密钥替换NULL。当已经为DP加速器的所有VDP加速器中的邻接表的所有行项目生成了所有会话密钥时,则DP加速器可向主机104发送DP加速器及其相应的VDP加速器准备好接收处理任务的指示。当所有DP加速器向主机104发送这样的指示时,则主机104可使用所有配置的VDP加速器来执行处理任务。
图6是示出根据实施方式的主机设备指示多个虚拟数据处理加速器将其自身配置成用于安全通信的方法600的框图。
在操作601中,主机设备确定通信地联接至主机的通信端口的数据处理加速器(DPA)的列表。该确定可从例如列出DPA的DPA标识符的管理员配置文件做出。然后,主机可发送指令,以及可选地配置信息,指令和可选地配置信息指示每个DPA均将其自身配置为具有多个虚拟数据处理加速器(VDPA),并为DPA中的每个VDPA生成邻接表(例如,图5,表520或521)。
在操作602中,主机(例如,主机104)生成并存储邻接表,该邻接表列出了配置用于在虚拟通信信道上与主机进行通信的每个虚拟数据处理加速器(VDPA)。在实施方式中,一个或多个VDP加速器可由系统管理员使用配置文件来配置。配置文件可指示哪些VDP加速器可与哪些其它VDP加速器通信。配置文件可指定主机和VDP加速器的唯一标识符、每个DP加速器所分配的具体通信端口号、以及用于与VDP加速器通信的具体通信端口的虚拟通信信道。可有任何数量的VDP加速器。为简单起见,描述了一个主机104和三个DP加速器(例如,105至107),每个DP加速器均配置成用于四个VDP加速器。三个DP加速器各自具有四个VDP加速器的描述是示例性的而非限制性的。系统可配置有任意数量的主机,以及任意数量的DP加速器,每个DP加速器均配置有任意数量的VDP加速器。为主机生成的邻接表可类似于上面参考图5描述的主机表500。
在操作603中,主机中的逻辑可通过交换机109的虚拟通信信道遍历配置成用于与主机通信的VDP加速器的列表。对于每个VDP加速器,可执行操作604至606。如果列表中没有更多的VDP加速器,则方法600结束。
在操作604中,主机从列表中选择VDP加速器,并利用所选择的VDP加速器生成会话密钥。上面参考图3描述了在VDP加速器与主机(节点)之间生成会话密钥。主机将所生成的会话密钥存储在与所选择的VDP加速器相对应的主机邻接表中的条目中。主机使用管理员配置文件中的信息来完成用于所选择的VDP加速器的邻接表中的条目的行项目,包括VDP加速器的唯一标识符以及用于所选择的VDP加速器的任何相关上下文信息(如果有的话)。
在操作605中,主机向用于VDP加速器的所选VDP加速器传送指令以创建其自己的邻接表。主机传送的指令中的信息可从管理员配置文件中获得。指令包括在所选择的VDP加速器生成其自己的邻接表时所选择的VDP加速器将要包括的其它VDP加速器的列表。指令还可包括其它VDP加速器中的每个的唯一识别符和所生成的会话密钥。VDP加速器将为每个VDP加速器生成的会话密钥存储在与每个VDP加速器的VDP标识符(例如,图5的511)相关联的邻接表中的其自己的行项目中。指令还包括所选择的VDP加速器将与所选择的VDP加速器的邻接表中的其它VDP加速器中的每个生成会话密钥并存储。下面参考图7描述用于所选择的VDP加速器生成其自己的邻接表的方法。
在操作606中,主机从所选择的VDP加速器接收这样的信号,即所选择的VDP加速器已生成其自己的邻接表,用以上在操作605中提供的信息填充邻接表,并且已为所选择的VDP加速器的邻接表中的其它VDP加速器中的每个生成并存储会话密钥。在实施方式中,DP加速器可监视操作603至605的完成,并且当对于配置成用于DP加速器的所有VDP加速器完成操作603至605时,则DP加速器可向主机发送DP加速器的VDP加速器中每个均已配置并且具有会话密钥的单个消息。方法600在操作603处继续。
图7是示出根据实施方式的虚拟数据处理加速器将自身配置成用于与一个或多个其它虚拟数据处理加速器进行安全通信的方法700的框图。在操作701中,DP加速器从主机设备接收指令,以生成多个虚拟DP加速器(VDP加速器),并为所生成的VDP加速器中的每个生成通信连接的节点(主机或VDP加速器)的邻接表。上面参考图5描述了示例性邻接表。主机传送的指令中的信息可由主机从管理员创建的配置文件获得。在实施方式中,指令可以是默认指令。
在操作702中,对于由DP加速器生成的VDP加速器中的每个,选择VDP加速器,并且DP加速器逻辑执行或致使所选择的VDP加速器执行以下操作703至706。当不再有VDP加速器要处理时,则方法700结束。
在操作703中,所选择的VDP加速器接收为所选择的VDP加速器生成邻接表的指令,该邻接表列出所选择的VDP经由所选择的VDP加速器与多个节点中的一个节点之间的虚拟通信信道通信地联接至的多个节点(主机或其它VDP加速器)。所选择的VDP加速器还接收与多个节点中的每个生成会话密钥的指令。
在操作704中,VDP加速器根据在操作703中接收的指令为所选择的VDP加速器生成并存储邻接表。如上所述,在图5中,邻接表可包括用于所选择的VDP加速器通信地联接至的其它节点(主机或VDP加速器)中的每个的行项条目。用于每个行项条目的信息可包括虚拟设备标识符(VID,例如图5,表510、VID 501)、所选择的DP加速器的通信端口(其对应于主管所选择的VDP加速器的DP加速器的物理端口(例如图5的502))、虚拟通信信道标识符(例如,图5的503),以及用于存储为在所选择的VDP加速器与其他节点之一之间的通信而生成的会话密钥的会话密钥字段。
在操作705中,所选择的VDP加速器为配置成用于与所选择的VDP加速器通信的其它节点(主机或VDP加速器)中的每个生成会话密钥。会话密钥存储在所选择的VDP加速器的邻接表的行项条目中,该行项条目与节点相关联。所选择的VDP加速器在所选择的VDP加速器与所选择的VDP加速器的其它相邻节点(主机或VDP加速器)中的每个之间生成不同的会话密钥。会话密钥用于在所选择的VDP加速器与其它节点之一之间进行通信。上面参考图3描述了在VDP加速器与节点(主机或VDP加速器)之间生成会话密钥。VDP加速器逻辑将会话密钥存储在与所选择的VDP加速器相关联的所选择的VDP加速器的邻接表中。
在操作706中,如果不再需要为DP加速器配置VDP加速器,并且因此不再需要为DP加速器的VDP加速器生成会话密钥,则DP加速器向主机传送这样的消息或信号,即DP加速器已完成配置VDP加速器,并且生成用于VDP加速器的邻接表和用于与邻接表中的其它VDP加速器中的每个进行安全通信的会话密钥。在实施方式中,邻接表中的每个会话密钥均与邻接表中的其它会话密钥不同。在实施方式中,DP加速器的每个配置的VDP加速器均分别通知主机104已配置了VDP加速器,并且为VDP加速器生成了会话密钥。在实施方式中,每个配置的VDP加速器均向主管VDP加速器的DP加速器通知:配置了VDP加速器,并且已为VDP加速器生成了会话密钥。然后,当配置了所选择的DP加速器的所有VDP加速器并且生成了会话密钥时,DP加速器通知主机104。方法700在操作702处继续。
图8是示出根据实施方式的虚拟数据处理(VDP)加速器从主机接收处理任务并通过一个或多个附加VDP加速器执行任务的一个或多个子任务的方法800的框图。
在操作801中,VDP加速器从主机设备接收处理任务。在实施方式中,处理任务包括关于将处理任务划分为要在至少一个附加VDP加速器上处理的子任务的指令,并且VDP加速器在VDP加速器的邻接表中具有用于与至少一个附加VDP加速器安全地通信的条目。在该实施方式中,假设主机已确定至少一个附加VDP加速器是空闲的,或者很快将是空闲的,使得至少一个附加VDP加速器可代表VDP加速器执行一个或多个子任务。
在操作802中,VDP加速器将一个或多个子任务传送到至少一个附加VDP加速器,以及执行子任务的指令。使用为在VDP加速器与至少一个附加VDP加速器之间使用而生成的会话密钥来保护传送一个或多个子任务的消息。至少一个附加VDP加速器执行一个或多个子任务。
在操作803中,VDP加速器还执行所接收的处理任务的一个或多个子任务。在操作804中,VDP加速器从至少一个附加VDP加速器接收一个或多个结果。VDP加速器完成其处理任务的一个或多个子任务,并且向主机返回来自由VDP加速器执行的一个或多个子任务和由至少一个附加VDP加速器执行的一个或多个子任务的一个或多个结果。方法800结束。
关于以上方面中的任一方面,主机处理器可以是中央处理单元(CPU),以及DP加速器可以是通过总线或互连件联接至CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备或其它形式的集成电路(IC)的形式来实现。可替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为主系统可通过网络远程卸载其数据处理任务的辅助系统的许多分布式系统中的一个(例如,诸如软件即服务或SaaS系统或者平台即服务或Paas系统的云计算系统)。主机处理器与DP加速器之间的链路可以是外围部件互连快速(PCIe)链路或诸如以太网连接的网络连接。
应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本公开的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更宽泛精神和范围的情况下,可对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (20)
1.一种第一虚拟数据处理加速器经由交换机与一个或多个第二虚拟数据处理加速器安全地通信的计算机实施的方法,所述方法包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从主机设备接收所述一个或多个第二虚拟数据处理加速器的列表;
对于所述一个或多个第二虚拟数据处理加速器中的每个,确定所述第一虚拟数据处理加速器与所述第二虚拟数据处理加速器之间的会话密钥,其中,在建立所述会话密钥时,所述第一虚拟数据处理加速器至少使用所述交换机的第一虚拟通信信道和所述第二虚拟数据处理加速器的第二虚拟通信信道与所述第二虚拟数据处理加速器通信,其中,所述第二虚拟通信信道由所述交换机确定;以及
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道向所述主机设备传送所述第一虚拟数据处理加速器配置成用于与所述一个或多个第二虚拟数据处理加速器中的每个进行安全通信的指示,其中,所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的每个经由所述交换机安全地通信。
2.根据权利要求1所述的方法,还包括由所述第一虚拟数据处理加速器生成具有用于所述一个或多个第二虚拟数据处理加速器中的每个的条目的邻接表,每个条目均包括所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器的唯一标识符和与所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥。
3.根据权利要求2所述的方法,其中,为所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器生成的所述会话密钥相对于所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的任何其它第二虚拟数据处理加速器都是唯一的。
4.根据权利要求1所述的方法,其中,用于所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器的每个条目还包括所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器的唯一标识符。
5.根据权利要求1所述的方法,还包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从所述主机设备接收要执行的处理任务,以及所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器执行所述处理任务的至少一部分的指示;以及
由所述第一虚拟数据处理加速器使用消息经由所述交换机的第二虚拟通信信道指示所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器执行所述处理任务的至少一部分,所述消息利用与所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥进行保护。
6.根据权利要求5所述的方法,还包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器接收消息,该消息使用与所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥进行保护,该消息包括来自所述处理任务的至少一部分的结果;以及
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道向所述主机设备返回包含所述处理任务的结果的消息,该消息使用与所述第一虚拟数据处理加速器和所述主机设备相关联的会话密钥进行保护。
7.根据权利要求1所述的方法,其中,所述第一虚拟数据处理加速器和所述第二虚拟数据处理加速器之间的通信用所述交换机未知或不能够访问的会话密钥加密。
8.一种存储有指令的非暂时性机器可读介质,所述指令在由处理器执行时使得所述处理器执行第一虚拟数据处理加速器经由交换机与一个或多个第二虚拟数据处理加速器安全地通信的操作,所述操作包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从主机设备接收所述一个或多个第二虚拟数据处理加速器的列表;
对于所述一个或多个第二虚拟数据处理加速器中的每个,确定所述第一虚拟数据处理加速器与所述第二虚拟数据处理加速器之间的会话密钥,其中,在建立所述会话密钥时,所述第一虚拟数据处理加速器至少使用所述交换机的第一虚拟通信信道和所述第二虚拟数据处理加速器的第二虚拟通信信道与所述第二虚拟数据处理加速器通信,其中,所述第二虚拟通信信道由所述交换机确定;以及
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道向所述主机设备传送所述第一虚拟数据处理加速器配置成用于与所述一个或多个第二虚拟数据处理加速器中的每个进行安全通信的指示,其中,所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的每个经由所述交换机安全地通信。
9.根据权利要求8所述的机器可读介质,其中,所述操作还包括由所述第一虚拟数据处理加速器生成具有用于所述一个或多个第二虚拟数据处理加速器中的每个的条目的邻接表,每个条目均包括所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器的唯一标识符和与所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥。
10.根据权利要求8所述的机器可读介质,其中,所述操作还包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从所述主机设备接收要执行的处理任务,以及所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器执行所述处理任务的至少一部分的指示;以及
由所述第一虚拟数据处理加速器使用消息经由所述交换机的第二虚拟通信信道指示所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器执行所述处理任务的至少一部分,所述消息利用与所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥进行保护。
11.根据权利要求10所述的机器可读介质,其中,所述操作还包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器接收消息,该消息使用与所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥进行保护,该消息包括来自所述处理任务的至少一部分的结果;以及
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道向所述主机设备返回包含所述处理任务的结果的消息,所述消息使用与所述第一虚拟数据处理加速器和所述主机设备相关联的会话密钥进行保护。
12.一种数据处理系统,包括:
处理器;以及
存储器,联接至所述处理器以存储指令,所述指令在由所述处理器执行时致使所述处理器执行第一虚拟数据处理加速器经由交换机与一个或多个第二虚拟数据处理加速器安全地通信的操作,所述操作包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从主机设备接收所述一个或多个第二虚拟数据处理加速器的列表;
对于所述一个或多个第二虚拟数据处理加速器中的每个,确定所述第一虚拟数据处理加速器与所述第二虚拟数据处理加速器之间的会话密钥,其中,在建立所述会话密钥时,所述第一虚拟数据处理加速器至少使用所述交换机的第一虚拟通信信道和所述第二虚拟数据处理加速器的第二虚拟通信信道与所述第二虚拟数据处理加速器通信,其中,所述第二虚拟通信信道由所述交换机确定;以及
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道向所述主机设备传送所述第一虚拟数据处理加速器配置成用于与所述一个或多个第二虚拟数据处理加速器中的每个进行安全通信的指示,其中,所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的每个经由所述交换机安全地通信。
13.根据权利要求12所述的系统,其中,所述操作还包括由所述第一虚拟数据处理加速器生成具有用于所述一个或多个第二虚拟数据处理加速器中的每个的条目的邻接表,每个条目均包括所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器的唯一标识符和与所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥。
14.根据权利要求13所述的系统,其中,为所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器生成的所述会话密钥相对于所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的任何其它第二虚拟数据处理加速器都是唯一的。
15.根据权利要求12所述的系统,其中,用于所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器的每个条目还包括所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器的唯一标识符。
16.根据权利要求12所述的系统,其中,所述操作还包括:
由所述第一虚拟数据处理加速器经由所述第一虚拟通信信道从所述主机设备接收要执行的处理任务,以及所述一个或多个第二虚拟数据处理加速器中的一个第二虚拟数据处理加速器执行所述处理任务的至少一部分的指示;以及
由所述第一虚拟数据处理加速器使用消息经由所述交换机的第二虚拟通信信道指示所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器执行所述处理任务的至少一部分,所述消息利用与所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥进行保护。
17.根据权利要求16所述的系统,其中,所述操作还包括:
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道从所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器接收消息,该消息使用与所述第一虚拟数据处理加速器和所述一个或多个第二虚拟数据处理加速器中的所述一个第二虚拟数据处理加速器相关联的会话密钥进行保护,该消息包括来自所述处理任务的至少一部分的结果;以及
由所述第一虚拟数据处理加速器经由所述交换机的第一虚拟通信信道向所述主机设备返回包含所述处理任务的结果的消息,该消息使用与所述第一虚拟数据处理加速器和所述主机设备相关联的会话密钥进行保护。
18.根据权利要求12所述的系统,其中,所述第一虚拟数据处理加速器和所述第二虚拟数据处理加速器之间的通信用所述交换机未知或不能够访问的会话密钥加密。
19.一种处理系统,包括:
一个或多个处理器;以及
存储器,联接至所述处理器以存储指令,所述指令在由所述处理器执行时致使所述处理器执行用于主机设备配置多个虚拟数据处理加速器以进行安全通信的操作,所述操作包括:
对于所述多个虚拟数据处理加速器中的每个虚拟数据处理加速器:
在所述主机设备与所述虚拟数据处理加速器之间建立会话密钥;
由所述主机设备将所述会话密钥存储在所述主机设备的邻接表中,其中,所述邻接表中的每个条目均包括:所述会话密钥和所述虚拟数据处理加速器的唯一标识符;
经由配置有到所述虚拟数据处理加速器的虚拟通信信道的交换机向所述虚拟数据处理加速器传送一个或多个附加虚拟数据处理加速器的列表以及所述虚拟数据处理加速器为每个附加虚拟数据处理加速器生成唯一会话密钥的指令,所述唯一会话密钥用于保护所述虚拟数据处理加速器与所述一个或多个附加虚拟数据处理加速器的列表中的所述附加虚拟数据处理加速器之间的通信安全;以及
经由所述交换机和所述虚拟通信信道从所述虚拟数据处理加速器接收所述虚拟数据处理加速器已完成生成用于在所述虚拟数据处理加速器与所述一个或多个附加虚拟数据处理加速器之间通信的所述唯一会话密钥的指示。
20.根据权利要求19所述的系统,其中,所述操作还包括:
经由所述交换机和所述虚拟通信信道向所述虚拟数据处理加速器传送用于所述虚拟数据处理加速器和所述一个或多个附加虚拟数据处理加速器中的至少一个执行的处理任务,所述传送使用为所述主机设备和所述虚拟数据处理加速器建立的会话密钥进行保护;以及
经由所述交换机和所述虚拟通信信道从所述虚拟数据处理加速器接收来自所述处理任务的结果,所述结果使用为主机设备和所述虚拟数据处理加速器建立的会话密钥进行保护。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/692,980 US11405336B2 (en) | 2019-11-22 | 2019-11-22 | Method for key sharing between accelerators in virtual channel with switch |
US16/692,980 | 2019-11-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112838923A true CN112838923A (zh) | 2021-05-25 |
Family
ID=75923170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010493674.5A Pending CN112838923A (zh) | 2019-11-22 | 2020-06-03 | 具有交换机的虚拟信道中加速器之间的密钥共享方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11405336B2 (zh) |
CN (1) | CN112838923A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515775A (zh) * | 2016-06-15 | 2017-12-26 | 华为技术有限公司 | 一种数据传输方法及装置 |
US20180225237A1 (en) * | 2017-02-03 | 2018-08-09 | Intel Corporation | Hardware-based virtual machine communication |
US20190140979A1 (en) * | 2017-11-08 | 2019-05-09 | Mellanox Technologies, Ltd. | NIC with Programmable Pipeline |
CN110089070A (zh) * | 2016-12-30 | 2019-08-02 | 英特尔公司 | 用于秘钥交换以在网络功能虚拟化环境中建立安全连接的技术 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US642945A (en) | 1899-06-29 | 1900-02-06 | Ellery C Wright | Last. |
US6426945B1 (en) | 1998-10-06 | 2002-07-30 | Nokia Telecommunications, Oy | Method and apparatus for providing resource discovery using multicast scope |
US7099912B2 (en) | 2001-04-24 | 2006-08-29 | Hitachi, Ltd. | Integrated service management system |
US8423763B2 (en) | 2002-03-20 | 2013-04-16 | Research In Motion Limited | System and method for supporting multiple certificate status providers on a mobile communication device |
US7206807B2 (en) | 2003-01-21 | 2007-04-17 | Bea Systems, Inc. | Asynchronous invoking a remote web service on a server by a client who passes on a received invoke request from application code residing on the client |
US7966646B2 (en) | 2006-07-31 | 2011-06-21 | Aruba Networks, Inc. | Stateless cryptographic protocol-based hardware acceleration |
US8775824B2 (en) | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US8411867B2 (en) | 2009-04-06 | 2013-04-02 | Broadcom Corporation | Scalable and secure key management for cryptographic data processing |
GB2508606B (en) | 2012-12-04 | 2015-06-03 | Barclays Bank Plc | Credential recovery |
EP3014803B1 (en) | 2013-06-25 | 2019-09-25 | Nokia Technologies Oy | A method and apparatus for anonymous and trustworthy authentication in pervasive social networking |
US9166964B2 (en) | 2014-01-08 | 2015-10-20 | Google Inc. | Secure challenge system for verifying access rights to media content |
TW201546649A (zh) | 2014-06-05 | 2015-12-16 | Cavium Inc | 用於基於硬體安全模組的基於雲端的web服務安全管理的系統和方法 |
US9571464B2 (en) | 2014-08-11 | 2017-02-14 | Intel Corporation | Network-enabled device provisioning |
IL238690B (en) | 2015-05-07 | 2019-07-31 | Mellanox Technologies Ltd | Network-based computational accelerator |
CN109496414B (zh) | 2016-07-28 | 2022-05-24 | 皇家飞利浦有限公司 | 识别数据将被复制到的网络节点 |
CN110073342A (zh) | 2016-12-23 | 2019-07-30 | 英特尔公司 | 用于硬件加速的虚拟信道 |
CN108540982B (zh) * | 2017-03-06 | 2021-10-22 | 上海诺基亚贝尔股份有限公司 | 用于虚拟基站的通信方法和设备 |
US10659468B2 (en) | 2017-05-24 | 2020-05-19 | Micro Focus Llc | Access control values |
US20200389322A1 (en) | 2017-12-07 | 2020-12-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Security for group communication |
CN109982266B (zh) | 2017-12-28 | 2021-05-11 | 华为技术有限公司 | 一种通信方法、及相关产品 |
EP3575980A3 (en) | 2018-05-29 | 2020-03-04 | Accenture Global Solutions Limited | Intelligent data quality |
US10813001B1 (en) | 2018-06-19 | 2020-10-20 | Synapse Wireless, Inc. | Multicast messaging based on distance estimation of network devices |
US11457354B2 (en) | 2019-12-10 | 2022-09-27 | Baidu Usa Llc | System and method to securely broadcast a message to accelerators |
-
2019
- 2019-11-22 US US16/692,980 patent/US11405336B2/en active Active
-
2020
- 2020-06-03 CN CN202010493674.5A patent/CN112838923A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515775A (zh) * | 2016-06-15 | 2017-12-26 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN110089070A (zh) * | 2016-12-30 | 2019-08-02 | 英特尔公司 | 用于秘钥交换以在网络功能虚拟化环境中建立安全连接的技术 |
US20180225237A1 (en) * | 2017-02-03 | 2018-08-09 | Intel Corporation | Hardware-based virtual machine communication |
US20190140979A1 (en) * | 2017-11-08 | 2019-05-09 | Mellanox Technologies, Ltd. | NIC with Programmable Pipeline |
Also Published As
Publication number | Publication date |
---|---|
US11405336B2 (en) | 2022-08-02 |
US20210160197A1 (en) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112953855B (zh) | 将消息广播给加速器的系统和方法 | |
US11409653B2 (en) | Method for AI model transferring with address randomization | |
CN112948139B (zh) | 使用交换机向加速器安全地广播消息的系统和方法 | |
CN113806286B (zh) | 在基于策略划分的数据处理集群中进行数据保护的方法 | |
CN112953886B (zh) | 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法 | |
US11552790B2 (en) | Method for key sharing between accelerators | |
US11657332B2 (en) | Method for AI model transferring with layer randomization | |
US11516010B2 (en) | System and method to securely broadcast a message to accelerators using virtual channels | |
CN112839021B (zh) | 带交换机的加速器之间的密钥共享方法 | |
US11405336B2 (en) | Method for key sharing between accelerators in virtual channel with switch | |
US11343083B2 (en) | Method for key sharing between accelerators in virtual channel | |
CN113806758B (zh) | 基于认证的数据处理集群中的数据保护方法 | |
CN113806287B (zh) | 基于动态划分的数据处理集群的数据保护方法 | |
US11847501B2 (en) | Method for data protection in a data processing cluster with partition | |
US11556859B2 (en) | Method for al model transferring with layer and memory randomization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210930 Address after: California, USA Applicant after: Baidu (USA) Co.,Ltd. Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: California, USA Applicant before: Baidu (USA) Co.,Ltd. |
|
TA01 | Transfer of patent application right |