CN112953855B - 将消息广播给加速器的系统和方法 - Google Patents

将消息广播给加速器的系统和方法 Download PDF

Info

Publication number
CN112953855B
CN112953855B CN202011457876.0A CN202011457876A CN112953855B CN 112953855 B CN112953855 B CN 112953855B CN 202011457876 A CN202011457876 A CN 202011457876A CN 112953855 B CN112953855 B CN 112953855B
Authority
CN
China
Prior art keywords
broadcast
accelerator
accelerators
host
key
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.)
Active
Application number
CN202011457876.0A
Other languages
English (en)
Other versions
CN112953855A (zh
Inventor
刘勇
程越强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
Original Assignee
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kunlun Core Beijing Technology Co ltd, Baidu USA LLC filed Critical Kunlun Core Beijing Technology Co ltd
Publication of CN112953855A publication Critical patent/CN112953855A/zh
Application granted granted Critical
Publication of CN112953855B publication Critical patent/CN112953855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种将消息广播给加速器的系统和方法。方法包括:从主机接收广播请求,主机托管发起待被广播给耦接到主机的多个DP加速器中的一个或多个DP加速器的广播消息的应用,其中广播请求包括识别一个或多个DP加速器的一个或多个DP加速器标识符(ID)。从主机接收用于广播通信会话的广播会话密钥以广播广播消息。对于一个或多个DP加速器ID中的每个DP加速器ID,识别对应于DP加速器ID的安全性密钥对的公共密钥。使用广播会话密钥加密广播消息。使用公共密钥加密广播会话密钥。加密的广播消息和加密的广播会话密钥发送给通过DP加速器ID识别的DP加速器。

Description

将消息广播给加速器的系统和方法
技术领域
本公开的实施例一般涉及人工智能模型训练和推断。更具体地,本公开的实施例涉及用于安全地将消息广播给被配置为彼此通信的数据处理加速器的广播协议的系统和方法。
背景技术
被配置为与主机计算设备通信的数据处理加速器(DPA)通常不能彼此安全地通信。DPA之间的通信(例如点对点通信)是有用的,使得两个或更多个DPA可以协作并协调以代表主机计算设备执行数据处理任务。然而,重要的是DPA安全地通信,使得由协作DPA执行的处理任务被安全地执行,以使另一个计算实体不能改变由通信DPA所产生的结果,并且不能从通信DPA中的任一个中窃取代码或数据。
发明内容
本申请公开了一种将消息广播给一个或多个数据处理(DP)加速器的方法和装置,以及一种数据处理系统。
在本公开的实施例的第一方面,提供了一种将消息广播给一个或多个数据处理(DP)加速器的方法,包括:从主机接收广播请求,主机托管发起待被广播给耦接到主机的多个DP加速器中的一个或多个DP加速器的广播消息的应用,其中广播请求包括识别一个或多个DP加速器的一个或多个DP加速器标识符ID;从主机接收用于广播通信会话的广播会话密钥以广播广播消息;以及对于一个或多个DP加速器ID中的每个DP加速器ID,识别对应于DP加速器ID的安全密钥对的公共密钥,使用广播会话密钥加密广播消息,使用公共密钥加密广播会话密钥,以及将经加密的广播消息和经加密的广播会话密钥发送给由DP加速器ID识别的DP加速器,其中DP加速器被配置为使用与DP加速器ID相关联的对应私有密钥解密经加密的广播会话密钥,并且使用广播会话密钥解密经加密的广播消息。
在本公开的实施例的第二方面,提供了一种将消息广播给一个或多个数据处理(DP)加速器的装置,包括:第一接收模块,用于从主机接收广播请求,主机托管发起待被广播给耦接到主机的多个DP加速器中的一个或多个DP加速器的广播消息的应用,其中广播请求包括识别一个或多个DP加速器的一个或多个DP加速器标识符ID;第二接收模块,用于从主机接收用于广播通信会话的广播会话密钥以广播广播消息;以及处理模块,用于对于一个或多个DP加速器ID中的每个DP加速器ID,识别对应于DP加速器ID的安全密钥对的公共密钥,使用广播会话密钥加密广播消息,使用公共密钥加密广播会话密钥,以及将经加密的广播消息和经加密的广播会话密钥发送给由DP加速器ID识别的DP加速器,其中DP加速器被配置为使用与DP加速器ID相关联的对应私有密钥解密经加密的广播会话密钥,并且使用广播会话密钥解密经加密的广播消息。
在本公开的实施例的第三方面,提供了一种非暂时性机器可读介质,其中存储有指令,指令在由处理器执行时使处理器执行如本申请的实施例的第一方面所述的方法。
在本公开的实施例的第四方面,提供了一种数据处理系统包括:处理器;以及耦接到处理器以存储指令的存储器,指令在由处理器执行时使处理器执行如本申请的实施例的第一方面所述的方法。
附图说明
在附图的图中以示例而非限制的方式示出本公开的实施例,在附图中,相似的附图标记指示相似的元件。
图1是示出根据一个实施例的安全处理系统的框图。
图2A和图2B是示出根据一个实施例的一个或多个主机与一个或多个数据处理加速器之间的安全计算环境的框图。
图3是示出根据实施例的主机和数据处理加速器或两个数据处理加速器生成用于安全通信的会话密钥的方法的框图。
图4是示出根据实施例的彼此安全地通信的主机计算设备和多个数据处理加速器的硬件配置的框图。
图5是示出根据实施例的主机设备与多个数据处理加速器之间的安全通信邻接表的框图。
图6是示出根据实施例的主机设备指示多个数据处理加速器以将它们自身配置用于安全通信的方法600的框图。
图7是示出根据实施例的数据处理加速器将其自身配置用于与一个或多个其他数据处理加速器的安全通信的方法700的框图。
图8是示出根据实施例的数据处理加速器从主机接收处理任务并通过一个或多个额外的数据处理加速器执行任务的一个或多个子任务的方法的框图。
图9是示出根据实施例的主机和一个或多个数据处理加速器的广播协议的流程图。
图10是示出根据实施例的用于主机执行广播的示例方法的流程图。
图11是示出根据实施例的用于数据处理加速器执行广播的示例方法的流程图。
图12是示出根据一个实施例的数据处理系统的框图。
具体实施方式
将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明,并且不应被解释为限制本公开。描述许多具体细节以提供对本公开的各个实施例的透彻理解。然而,在某些情况下,没有描述公知或常规的细节,以便提供对本公开的实施例的简要讨论。
在说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性可以包括在本公开的至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”并不一定全指同一实施例。
以下实施例涉及使用数据处理(DP)加速器以增加某些类型的操作的处理吞吐量,这些类型的操作可以从主机设备卸载(或委托)给一个或多个DP加速器。DP加速器可以是图形处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其他类型的处理器。DP加速器可以是专有设计,诸如百度
Figure BDA0002829822960000031
AI加速器或另一个GPU等。虽然以安全地耦接到一个或多个DP加速器的主机设备示出和描述实施例,然而本文所述的概念可以更一般地实现为分布式处理系统。
主机设备和DP加速器可以经由诸如外围组件快速互连(PCIe)的高速总线或其他高速总线互连。在执行以下描述的本发明的各方面的操作之前,主机设备和DP加速器可以通过PCIe总线交换密钥并发起安全信道。本文描述了用于生成一个或多个密钥的实施例,一个或多个密钥用以保护主机与DP加速器之间的通信以及用于保护多个DP加速器中的任何两个DP加速器之间的通信。在实施例中,任何两个DP加速器之间的通信使用相对于任何其他两个DP加速器是唯一的一个或多个密钥。操作中的一些包括DP加速器使用人工智能(AI)模型以使用由主机设备提供的数据执行推断。在将AI模型推断委托给DP加速器之前,在主机与DP加速器之间以及DP加速器与可能参与AI模型推断的任何其他DP加速器之间建立安全通信信道。
实施例公开了在DPA之间广播消息的系统和方法。在一个实施例中,系统从应用接收广播指令,广播指令指定耦接到主机的多个DP加速器中的一个或多个DP加速器(例如,DPA的子集)接收广播消息。系统确定用于广播通信会话的广播会话密钥以广播广播消息。在一个实施例中,系统确定各自与指定的DP加速器中的一个相关联的一个或多个安全密钥对的一个或多个公共密钥。系统基于广播会话密钥加密广播消息以及基于确定的一个或多个公共密钥加密广播会话密钥。系统将经加密的广播消息以及一个或多个经加密的广播会话密钥广播给相邻的DP加速器用于传播,其中指定的DP加速器基于与指定的DP加速器相关联的对应私有密钥解密经加密的广播会话密钥,其中基于广播会话密钥解密消息。
可以将以上功能中的任一个编程为一个或多个非暂时性计算机可读介质上的可执行指令。当可执行指令由具有至少一个硬件处理器的处理系统执行时,处理系统使功能得以实现。
以上功能中的任一个可以由具有至少一个硬件处理器的处理系统实现,至少一个硬件处理器耦接到用可执行指令编程的存储器,可执行指令在被执行时使处理系统实现功能。
图1是示出根据一些实施例的用于保护主机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浏览器、应用),可以将用于执行的指令(例如,人工智能(AI)训练、推断指令等)发送或传输给服务器104,并且服务器104通过网络103经由接口接收指令。响应于该指令,服务器104与DP加速器105-107通信以完成指令的执行。在一些实施例中,指令是机器学习类型的指令,其中作为专用机器或处理器的DP加速器可以比服务器104的执行快许多倍地执行该指令。服务器104因此可以控制/管理呈分布式方式的一个或多个DP加速器的执行作业。服务器104然后将执行结果返回给客户端设备101-102。DP加速器或AI加速器可以包括一个或多个专用处理器,诸如从百度可获得的百度
Figure BDA0002829822960000041
人工智能(AI)芯片组、Inc./>
Figure BDA0002829822960000042
,或者可替换地,DP加速器可以是来自另一个AI芯片组提供商的AI芯片组。
根据一个实施例,访问DP加速器105-107中的任一个、由数据处理服务器104(也称为主机)托管的每个应用可以验证应用是由可信源或供应商提供的。可以在由主机104的中央处理单元(CPU)专门配置和执行的可信执行环境(TEE)内开启和执行每个应用。当将应用配置为访问DP加速器105-107中的任一个时,可以在主机104和DP加速器105-107中的对应一个之间建立模糊连接(obscured connection),使得主机104与DP加速器105-107之间交换的数据被保护以免受来自恶意软件/入侵的攻击。
图2A是示出根据一些实施例的用于主机系统104和数据处理(DP)加速器105-107之间的模糊通信的多层保护解决方案的示例的框图。在一个实施例中,系统200在对DP加速器进行或不进行硬件修改的情况下提供一种用于主机104和DP加速器105-107之间的模糊通信的保护方案。参考图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层免受数据入侵。
根据一些实施例,系统200包括主机系统104和DP加速器105-107。DP加速器可以包括百度
Figure BDA0002829822960000051
AI芯片组或另一个AI芯片组,诸如可以执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。在一个实施例中,主机系统104包括具有一个或多个CPU 213的硬件,CPU213在主机机器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加速器供应商提供,并且可以用作用户应用的驱动器,以控制主机和DP加速器之间的(一个或多个)通信信道215。因为TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动器209,TPM还有效地保护驱动器209和OS211。
由于用于DP加速器105-107的通信信道215可能被OS 211和驱动器209独占,因此还可以通过TPM芯片保护通信信道215。在一个实施例中,通信信道215包括外围组件互连或外围组件快速互连(PCIE)信道。在一个实施例中,通信信道215是模糊通信信道。通信信道可以被连接到可由驱动器209访问的一个或多个硬件通信端口,用于通过通信信道215与DP加速器105-107进行通信。如本文所述,可以使用会话密钥保护通信信道215。可以使用与其他通信信道215不同的会话密钥保护每个通信信道215。驱动器209可以包括将DP加速器105-107各自映射到硬件通信端口以及与每个硬件通信端口相关联的会话密钥的邻接表。
主机机器104可以包括可信执行环境(TEE)210,其被强制由TPM/CPU 213保护。TEE是安全环境。TEE可以保证在TEE内部加载的代码和数据关于机密性和完整性得到保护。TEE的示例可以是
Figure BDA0002829822960000061
软件保护扩展(SGX)或/>
Figure BDA0002829822960000062
安全加密虚拟化(SEV)。/>
Figure BDA0002829822960000063
SGX和/或
Figure BDA0002829822960000064
SEV可以包括中央处理单元(CPU)指令代码集,其允许用户级代码分配CPU的存储器的私有区域,私有区域被保护以免受以较高权限级运行的进程的影响。这里,TEE 210可以保护用户应用205和运行时库206,其中用户应用205和运行时库206可以分别由端用户和DP加速器供应商提供。这里,运行时库206可以将应用编程接口(API)调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施例中,运行时库206提供预定的(例如,预定义的)内核集用于由用户应用执行。在实施例中,内核可以作为内核203被存储在(一个或多个)存储设备204中。
主机机器104可以包括使用诸如Rust和GoLang等的存储器安全语言实现的存储器安全应用207。在诸如MesaLock
Figure BDA0002829822960000065
的存储器安全/>
Figure BDA0002829822960000066
发布版上运行的这些存储器安全应用还可以保护系统200免受数据机密性和完整性攻击。然而,操作系统可以是任何
Figure BDA0002829822960000067
发行版、/>
Figure BDA0002829822960000068
OS或/>
Figure BDA0002829822960000069
OS。
可以如下设置主机机器104:将存储器安全
Figure BDA00028298229600000610
发行版安装到配备有TPM安全启动的系统上。可以在制造或准备阶段期间离线地进行安装。该安装还可以确保使用存储器安全编程语言对主机系统的用户空间的应用进行编程。确保在主机系统104上运行的其他应用是存储器安全应用,还可以减轻对主机系统104的潜在机密性和完整性攻击。
安装之后,然后系统可以通过基于TPM的安全启动来启动。TPM安全启动确保在提供加速器服务的内核空间中仅开启签名/认证的操作系统以及加速器驱动器。在一个实施例中,可以通过管理程序(未示出)加载操作系统211。注意,管理程序或虚拟机管理器是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是声明性区域或范围,其中内核(即,用于执行的预定的(例如,预定义的)功能集)被识别为提供功能和服务给用户应用。如果系统的完整性受到损害,TPM安全启动可能无法启动,而是关闭系统。
在安全启动之后,运行时库206运行并创建TEE 210,其将运行时库206放置在与CPU213相关联的可信存储空间中。接下来,在TEE 210中开启用户应用205。在一个实施例中,用户应用205和运行时库206被静态链接并一起开启。在另一个实施例中,首先在TEE210中开启运行时库206,然后在TEE 210中动态地加载用户应用205。在另一个实施例中,首先在TEE中开启用户应用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是示出根据一些实施例的主机信道管理器(HCM)259的示例的框图,主机信道管理器(HCM)259通信地耦接到与DP加速器105-107连接的一个或多个加速器信道管理器(ACM)270。参考图2B,在一个实施例中,HCM 259包括认证模块251、终止模块252、密钥管理器253、(一个或多个)密钥存储254和密码引擎255。认证模块251可以对在主机服务器104上运行的用户应用进行认证,以获得访问或使用DP加速器105的资源的许可。终止模块252可以终止连接(例如,将终止与该连接相关联的信道)。密钥管理器253可以管理(例如,创建或销毁)非对称密钥对或对称密钥,用于对不同安全数据交换信道的一个或多个数据包进行加密/解密。这里,每个用户应用(作为图2A的用户应用205的一部分)可以一对多关系对应或映射到不同的安全数据交换信道,并且每个数据交换信道可以对应于DP加速器105。每个应用可以利用多个会话密钥,其中每个会话密钥用于对应于DP加速器(例如加速器105-107)的安全信道。(一个或多个)密钥存储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通信。
图3是示出根据实施例的主机和数据处理加速器或两个数据处理加速器生成用于保护通信的会话密钥的方法300的框图。可以在第一数据处理(DP)加速器“加速器1”和第二节点“节点2”之间使用方法300。节点2可以是主机设备或第二DP加速器。加速器1具有有根密钥对PK_RK1和SK_RK1。PK_RK1是加速器1的有根非对称密钥对(RK1)的公共密钥。SK_RK1是加速器1的有根非对称密钥对(RK1)的私有(秘密)密钥(SK)。有根密钥对RK1存储在加速器1的安全存储中。类似地,节点2(主机或另一个DP加速器)具有有根密钥对PK_RK2和SK_RK2。RK2可以存储在节点2的安全存储中。
在操作301中,加速器1从有根密钥对PK_RK1和SK_RK1生成得出的非对称密钥对PK_D1和SK_D1。得出非对称密钥对在本领域中是已知的,并且在本文中将不进行描述。
在操作302中,加速器1发送“获得公共密钥”命令(GET_PUB_KEY)给节点2,以请求节点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发送“返回公共密钥”(RET_PUB_KEY)消息给加速器1。消息包括使用节点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可以发送命令“生成会话密钥”(CMD_SESS_KEY)给节点2。命令包括使用节点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可以将随机数nc2发送给加速器1。节点2将nc1、nc2和PK_D1封装在第一包中,并使用节点2的私有得出的密钥SR_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尚未过期(又称为“验证新鲜度”)。然后,加速器1可以基于随机数nc1和nc2生成会话密钥。加速器1可以将生成的会话密钥与节点2的唯一标识符和会话密钥相关联地存储在加速器1的邻接表中。
此时,加速器1和节点2两者均具有从随机数nc1和nc2得出的相同会话密钥。加速器1和节点2两者均已将会话密钥存储在它们各自的邻接表中。下面参考图5详细描述邻接表。
图4是示出根据实施例的主机计算设备104和彼此安全地通信的多个数据处理加速器105-107的硬件配置400的框图。
主机104通信地耦接到DP加速器105、106和107中的每个DP加速器。主机104包括具有例如端口0、1和2的通信接口。在图4中,DP加速器105的通信端口0通信地耦接到主机104的通信端口0。DP加速器106的通信端口0通信地耦接到主机104的通信端口1。DP加速器107的通信端口0通信地耦接到主机104的通信端口2。DP加速器105-107也通信地耦接到彼此。DP加速器105的通信端口1通信地耦接到DP加速器106的通信端口1。DP加速器105的通信端口2通信地耦接到DP加速器107的通信端口2。DP加速器106的通信端口2通信地耦接到DP加速器107的通信端口1。前述通信信道中的每个通信信道由与用于其他通信信道的不同的会话密钥来保护。因此,如果通信信道中的任一个被破坏,其他通信信道仍然是安全的。此外,在关于主机设备104的通信中存在冗余。每个DP加速器105-107可以监控它们自己的通信端口以确保每个通信信道是可操作的。如果信道发生故障,则该信道任一端处的一个或两个DP加速器可以将故障的通信信道通知给主机104。
主机104以及DP加速器105、106和107中的每个可以具有邻接表,其存储主机104或DP加速器105-107通信地耦接到的节点(DP加速器或主机)的列表。下面参考图5描述邻接表。
图5是示出根据实施例的在主机设备104和多个数据处理(DP)加速器105-107之间的安全通信邻接表500、510、520和530的框图。
如以上图4所示,主机104和DP加速器105-107经由主机和DP加速器中的每个上的通信端口通信地耦接。主机104例如可以具有邻接表500,邻接表500列出了通信地耦接到主机104的DP加速器(DPA)。DP加速器例如105-107可以具有唯一ID 501(例如DP_105_ID等),使得DP加速器可以通过名称被引用。在实施例中,当主机想要发送消息给DP加速器时,该消息可以具有格式[源,消息有效载荷,目的地]。主机可以通过自己的ID 501(例如,HOST_104_ID)引用自身,作为发送器。主机可以通过目标DP加速器的唯一ID 501、通过在主机处连接DP加速器的端口502或通过在主机处连接DP加速器端口的存储器中的地址503来引用目标DP加速器。因此,如果具有HOST_104_ID的ID 501的主机发送消息给DP加速器106,则该主机可以查找DP加速器106的ID 501、或端口502、或端口503的地址以用作消息的目的地址。可以使用用于主机和DP加速器106的会话密钥504对消息进行加密。类似地,DP加速器105可以具有存储在DP加速器105的存储器中的邻接表510,指示ID、端口512、地址513和用于与主机104、DP加速器106或DP加速器107中的每个进行通信的会话密钥514。DP加速器106可以具有存储在DP加速器106的存储器中的邻接表520,指示ID 521、端口522、地址523和用于与主机104、DP加速器105和DP加速器107中的每个进行通信的会话密钥524。DP加速器107可以具有存储在DP加速器107的存储器中的邻接表530,指示ID 531、端口532、地址533和主机104、DP加速器105和DP加速器107的会话密钥534。
上面参考图3描述了确定和生成用于两个设备之间的每个信道(主机到DP加速器,或DP加速器到DP加速器)的会话密钥,并且下面参考图6描述了一种方法。NULL的密钥指示在具有NULL会话密钥的邻接表的行项目中引用的两个节点(主机或DP加速器)之间尚未确定会话密钥。例如,DP加速器106邻接表520指示具有唯一ID DPA_105_ID和null会话标识符的DP加速器105的行项目。null会话标识符指示DP加速器106和DP加速器105尚未确定用于DP加速器106和DP加速器105之间的通信的会话密钥。
图6是示出根据实施例的主机设备指示多个数据处理加速器配置其自身用于安全通信的方法的框图。
在操作601中,主机(例如主机104)生成并存储列出被配置用于与主机通信的每个DP加速器的邻接表。在实施例中,一个或多个DP加速器可以由系统管理员使用配置文件配置。配置文件可以指示哪些DP加速器可以与其他DP加速器进行通信。配置文件可以指定用于主机和DP加速器的唯一标识符、每个DP加速器被分配到的特定通信端口号和/或对应于与DP加速器相关联的主机通信端口号的存储器地址。可以有任意数量的DP加速器。为简单起见,描述一个主机104和三个DP加速器(例如105-107)。为主机生成的邻接表可以类似于上面参考图5描述的主机表500。
在操作602中,主机中的逻辑可以循环访问被配置为用于主机的DP加速器的列表。对于每个DP加速器,可以执行操作603至605。在列表中没有更多的DP加速器的情况下,方法600结束。
在操作603中,主机从列表中选择DP加速器,并生成与所选DP加速器的会话密钥。上面参考图3描述了在加速器和主机(节点)之间生成会话密钥。主机将生成的会话密钥存储在对应于所选DP加速器的邻接表中的条目中。主机使用配置文件来完成邻接表中的条目,包括DP加速器的唯一标识符、用于与DP加速器进行通信的主机的端口号以及端口的存储器地址。在实施例中,可以从通信端口的基地址以及每个端口号在存储器中的偏移量来计算存储器地址。
在操作604中,主机将指令传输给所选DP加速器,用于使DP加速器创建其自己的邻接表。可以从配置文件中获取主机传输的指令中的信息。指令包括在所选DP加速器生成自己的邻接表时所选DP加速器将包括的其他DP加速器的列表。指令还可以包括其他DP加速器中的每个DP加速器的唯一标识符、分配给其他DP加速器中的每个DP加速器的所选DP加速器的端口号、分配给其他DP加速器中的每个DP加速器的存储器地址以及与其他DP加速器中的每个DP加速器相关联的会话密钥的NULL值。该指令还包括如下指令:所选DP加速器将生成其自己的邻接表,以及生成与其他DP加速器中的每个DP加速器的会话密钥,并将该会话密钥存储在所选DP加速器的邻接表中。下面参考图7描述用于所选DP加速器生成其自己的邻接表的方法。
在操作605中,主机从所选DP加速器接收如下信号:所选DP加速器已经生成自己的邻接表,在邻接表中已经填充上面操作604中提供的信息,以及已经生成针对其他DP加速器中的每个DP加速器的会话密钥,并将该会话密钥存储在所选DP加速器的邻接表中。方法600在操作602处继续。
图7是示出根据实施例的数据处理加速器将其自身配置用于与一个或多个其他数据处理加速器安全通信的方法700的框图。
在操作701中,DP加速器(“该”DP加速器)从主机设备接收生成用于该DP加速器的邻接表的指令。可以由主机从管理员创建的配置文件中获取主机传输的指令中的信息。在实施例中,指令可以是默认指令。指令包括在该DP加速器生成自己的邻接表时DP加速器将包括的其他DP加速器的列表。指令还可以包括其他DP加速器中的每个DP加速器的唯一标识符、分配给指令中的其他DP加速器中的每个DP加速器的该DP加速器的端口号、分配给其他DP加速器中的每个DP加速器的存储器地址、以及与其他DP加速器中的每个DP加速器相关联的会话密钥的NULL值。该指令还包括如下指令:DP加速器将生成其自己的邻接表,以及生成与其他DP加速器中的每个DP加速器的会话密钥,并将该会话密钥存储在该DP加速器的邻接表中。
在操作702中,DP加速器存储邻接表,该邻接表列出该DP加速器将为其生成并存储会话密钥的其他DP加速器中的每个DP加速器。
在操作703中,DP加速器的逻辑循环访问其他DP加速器的列表。如果其他DP加速器的列表中还有更多DP加速器,则逻辑从列表中选择下一个DP加速器。
在操作704中,(“此”)DP加速器和所选DP加速器生成会话密钥,以用于在该DP加速器和所选DP加速器之间进行通信。上面参考图3描述了在DP加速器和节点(主机或DP加速器)之间生成会话密钥。DP加速器逻辑将该会话密钥与所选DP加速器相关联地存储在该DP加速器的邻接表中。
在操作705中,如果列表中没有更多的DP加速器,因此没有更多的会话密钥要生成,则该DP加速器将如下消息或信号传输给主机:该DP加速器已经完成了其邻接表的生成并且已生成用于与邻接表中的其他DP加速器的每个DP加速器安全通信的会话密钥。在实施例中,邻接表中的每个会话密钥与邻接表中的其他会话密钥不同。
图8是示出根据实施例的数据处理加速器从主机接收处理任务并通过一个或多个额外的数据处理加速器执行任务的一个或多个子任务的方法800的框图。
在操作801中,DP加速器从主机设备接收处理任务。在实施例中,处理任务包括关于将处理任务划分为待在至少一个额外的DP加速器上处理的子任务的指令,并且DP加速器在DP加速器的邻接表中具有用于与至少一个额外的DP加速器安全通信的条目。在该实施例中,假定主机确定至少一个额外的DP加速器是空闲的,或者很快将是空闲的,使得该至少一个额外的DP加速器可以代表DP加速器执行一个或多个子任务。
在操作802中,DP加速器将一个或多个子任务与执行(一个或多个)子任务的指令传输给至少一个额外的DP加速器。至少一个额外的DP加速器执行一个或多个子任务。
在操作803中,DP加速器还执行接收到的处理任务的一个或多个子任务。
在操作804中,DP加速器接收来自至少一个额外的DP加速器的一个或多个结果。DP加速器完成其处理任务中的一个或多个子任务,并将来自由DP加速器执行的一个或多个子任务以及由至少一个额外的DP加速器执行的一个或多个子任务的一个或多个结果返回给主机。方法800结束。
DPA之间的点对点通信可以被扩展以使用广播协议通过DPA之间的通信链或经由耦接到DPA的通信交换机(诸如PCIe交换机)将来自主机的消息广播给选定数量的DPA(或DPA的子集或指定的DPA)。可以在主机需要向多个DPA通信消息的情况下使用广播。当主机的应用调度待由DPA的子集(或指定DPA)处理的作业,并且应用需要将相同的信息(例如,输入数据或模型)发送给DPA子集时,就会发生广播通信。广播协议需要是安全(即,只有DPA的子集才能读取广播消息)且鲁棒(例如,具有基于会话的加密方案)的。
图9是示出根据实施例的主机和一个或多个数据处理加速器的广播协议的流程图。广播通信是指从主机或DPA到许多收听者(例如,许多DPA)而不是一对一关系(例如,一对多关系)的数据的通信。接收DPA可以包括许多DPA,包括与一个或多个主机通信的DPA或与和请求广播的请求应用通信的一个主机相关联的DPA的子集。参考图9,方法900可以由主机104和通信地耦接到主机104的一个或多个DPA 105-107执行,其中DPA以如图4所示的链状配置彼此耦接。
在一个实施例中,在框901处,主机104从主机104的应用接收广播请求。广播请求可以是向与主机104通信的DPA的子集广播相同或可重复的消息的请求。广播请求可以通过DPA标识符识别DPA的子集。在框902处,可选地,主机104确定耦接到主机104的DPA的列表或请求更新耦接的DPA的列表。在一个实施例中,主机104验证广播DPA在DPA的列表内。在框904处,主机104将对与DPA相关联的公共密钥的请求发送给DPA的子集。公共密钥可以是由用于DPA中的每个DPA的安全单元的根密钥得出的安全密钥对的一部分,或者是与该根密钥相关联的公共密钥。在框905处,DPA生成得出的安全密钥对,其中由DPA保持该得出的安全密钥对的私有密钥安全,以及在框906处,将该得出的安全密钥的公共密钥发送给主机104。
在框907处,主机104选择广播DPA。在一个实施例中,可以基于从广播DPA到DPA的子集中的每个DPA的最短距离的平均值来选择广播DPA,以最小化广播延迟。在另一个实施例中,可以基于当前调度的计算负荷或与其余DPA相比DPA的可用计算能力来选择广播DPA。在另一个实施例中,可以基于随机数生成器来随机选择DPA。对于该示例,出于图示说明的目的,选择的广播DPA是DPA105。在框908处,主机104将公共密钥发送给广播DPA105,并且可选地,生成广播会话密钥并将广播会话密钥发送给广播DPA105,其中广播会话密钥是用于加密和解密广播通信会话的对称密钥。在另一个实施例中,广播会话密钥是由广播DPA105本地生成的,并且广播会话密钥是由广播DPA105发送给主机104的。在一个实施例中,广播会话密钥可以是随机生成的会话密钥。
在框909处,一旦接收到公共密钥(以及可选地,广播会话密钥),DPA105就使用公共密钥中的每个公共密钥加密广播会话密钥以生成用于传播的一组消息。在另一个实施例中,框909可以由主机104执行,例如,主机104用公共密钥中的每个公共密钥加密广播会话密钥以生成一组消息,并且主机104将该组消息发送给DPA105用于传播。
在框910处,广播DPA 105通过耦接到其端口中的任一个(这里,如图4所示,DPA106耦接在DPA 105的端口1处,以及DPA 107耦接在DPA 105的端口2处)的物理信道将经加密的广播会话密钥广播给DPA。广播DPA 105将经加密的广播会话密钥发送给端口1处的DPA106和端口2处的DPA 107。在一个实施例中,广播消息包括消息头,消息头指定接收广播消息的DPA将广播传播或重复给耦接到其各自端口的DPA的传播指令,以及在任何DPA两次接收到广播消息时终止传播的指令。参考图4,例如,一旦在端口1处由DPA 106接收到广播,DPA 106将第一消息发送或传播给在DPA 106的端口2处耦接的DPA,例如经由DPA 107的端口1将广播消息发送给DPA 107。因为DPA 107两次接收到该消息(来自DPA 105和DPA 106),所以该第一消息传播在DPA 107处终止。类似地,一旦在端口2处由DPA 107接收到广播(因为DPA 105将广播发送给端口2处的DPA 107),DPA 107将第二传播消息发送或传播给在DPA107的端口1处耦接的DPA,例如,经由DPA 106的端口2将广播消息发送给DPA 106。这里,因为DPA 106接收到消息两次(来自DPA 105和DPA 107),该第二消息传播在DPA 106处终止。在框911处,一旦分发了传播消息,DPA 105通知主机104广播会话密钥被递送给DPA。在框912处,接收经加密的广播会话密钥的DPA的子集中的每个DPA使用DPA的私有密钥解密并获得广播会话密钥。
此后,主机104可以基于广播会话密钥对待由请求应用广播的数据进行加密,并且可以将数据从主机104发送给广播DPA 105用于传播,或者广播DPA 105可以基于广播会话密钥加密数据用于传播。一旦接收到广播数据,具有广播会话密钥的DPA的子集可以解密并获得广播数据。
在另一个实施例中,DPA 105将经加密的广播会话密钥广播给仅耦接到其端口中的一个的DPA,广播包括用于接收广播消息的DPA将广播传播到耦接到其相应端口的DPA的传播指令以及在广播DPA 105接收到原始广播消息时终止传播的指令。在这种情况下,广播消息将以循环方式遍历。例如,广播可以顺时针方向遍历,例如DPA 105->DPA 107->DPA106->DPA 105,在这种情况下,DPA 105接收到原始广播并终止传播。广播可以以逆时针方向遍历,例如DPA 105->DPA 106->DPA 107->DPA 105,在这种情况下,DPA 105接收到原始广播并终止传播。当DPA中的每个DPA接收到广播时,参与广播的DPA的子集可以基于与DPA相关联的私有密钥解密并获得广播会话密钥。此后,由DPA的子集中的任一个接收到的广播数据都可以使用广播会话密钥解密广播。在一些实施例中,可以基于图5的邻接表使用相邻的会话密钥来进一步加密以上讨论的相邻DPA之间的任何通信(或广播)。
图10是示出根据实施例的用于主机执行广播的示例方法的流程图。可以由处理逻辑执行过程1000,处理逻辑可以包括软件、硬件或其组合。例如,过程1000可以由诸如图4或图9的主机104的主机系统执行。参考图10,在框1001处,处理逻辑确定通信地耦接到主机的数据处理加速器(DPA)的列表,并且向应用通知可用的DPA。在框1002处,响应于请求向DPA的子集广播的应用,处理逻辑发送来自DPA的子集对公共密钥的请求。在框1003处,处理逻辑将DPA的子集中的一个确定为广播DPA以促进广播。在此,可以基于与DPA的子集中的其余DPA的最近距离的平均值或基于计算能力的可用性,或者基于随机选择等进行选择。在框1004处,处理逻辑将广播会话密钥以及用于DPA的子集的公共密钥中的每个公共密钥发送给广播DPA,其中广播DPA使用公共密钥中的每个公共密钥加密广播会话密钥,以将消息传播到其相邻的DPA。在另一个实施例中,处理逻辑使用用于DPA的子集的公共密钥中的每个公共密钥加密广播会话密钥,以生成一组经加密的广播会话密钥消息,并将该组消息发送给广播DPA,其中只有具有相应私有密钥的DPA可以解密消息。在框1005处,处理逻辑接收指示广播DPA将经加密的广播会话密钥广播给一个或多个DPA中的每个DPA的信号,其中仅DPA的子集可以解密广播会话密钥。
图11是示出根据实施例的用于数据处理加速器执行广播的示例方法的流程图。可以由处理逻辑执行过程1100,处理逻辑可以包括软件、硬件或其组合。例如,过程1100可以由诸如图4或图9的DPA 105的DPA执行。参考图11,在框1101处,处理逻辑从应用接收广播指令,广播指令指定耦接到主机的多个DP加速器中的一个或多个DP加速器接收广播消息。在框1102处,处理逻辑确定用于广播通信会话的广播会话密钥以广播该广播消息。在框1103处,处理逻辑确定一个或多个安全密钥对中的一个或多个公共密钥,每个安全密钥对与指定的DP加速器中的一个相关联。在框1104处,处理逻辑基于广播会话密钥加密广播消息和基于确定的一个或多个公共密钥加密广播会话密钥。在框1105处,处理逻辑将经加密的广播消息以及一个或多个经加密的广播会话密钥广播给相邻的DP加速器用于传播,其中指定的DP加速器基于与指定的DP加速器相关联的对应私有密钥解密经加密的广播会话密钥,其中基于广播会话密钥解密消息。
在一个实施例中,将从应用接收广播指令的DP加速器指定为广播消息的广播DP加速器。在一个实施例中,相邻的DP加速器通过接收广播并将广播转发给其相邻的DP加速器来传播广播。
在一个实施例中,如果指定的DP加速器接收到传播广播,则广播传播终止。在一个实施例中,用于传播的广播的消息包括消息源、消息上下文,但是不包括消息目的地。
在一个实施例中,多个DP加速器中非指定的DP加速器接收广播,但是不具有解密经加密的广播以用于生成广播会话密钥的对应密钥,以及非指定的DP加速器无法访问广播会话密钥以解密用于通信会话的广播消息。在一个实施例中,经由与DP加速器相关联的物理通信信道传达广播消息。
关于以上方面中的任一个,主机处理器可以是中央处理单元(CPU),并且DP加速器可以是通过总线或互连耦接到CPU的通用处理单元(GPU)。可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备或其他形式的集成电路(IC)的形式实现DP加速器。可替换地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为辅助系统的许多分布式系统中的一个,主系统可以通过网络远程地卸载其数据处理任务,例如云计算系统,诸如软件即服务或SaaS系统、或平台即服务或Paas系统)。主机处理器和DP加速器之间的链接可以是外围组件快速互连(PCIe)链接或网络连接(诸如以太网连接)。
注意,可以以软件、硬件或其组合实现以上示出和描述的组件中的一些或全部。例如,这样的组件可以被实现为安装并存储在永久存储设备中的软件,软件可以由处理器(未示出)加载并在存储器中执行以实施整个本申请描述的过程或操作。可替换地,这样的组件可以被实现为被编程或嵌入到专用硬件(诸如集成电路(例如专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,其可以经由对应的驱动器和/或操作系统从应用进行访问。此外,可以将这样的组件实现为处理器或处理器核中的特定硬件逻辑,作为可由软件组件经由一个或多个特定指令访问的指令集的一部分。
图12是示出可以与本发明的一个实施例一起使用的数据处理系统的示例的框图。例如,系统1500可以表示执行上述的任何过程或方法的上述任何数据处理系统,诸如例如上述客户端设备或服务器,诸如例如,如上所述的主机104或DPA105-107。
系统1500可以包括许多不同组件。这些组件可以实现为集成电路(IC),其部分,分立电子设备或适合于电路板(诸如计算机系统的主板或附加卡)的其他模块,或者实现为以其他方式并入计算机系统的机箱内的组件。
还应注意的是,系统1500意图示出计算机系统的许多组件的高级视图。然而,应当理解的是,在某些实现方式中可以存在额外的组件,而且此外,在其他实现方式中可以出现所示组件的不同布置。系统1500可以表示台式电脑、膝上型计算机、平板电脑、服务器、移动电话、媒体播放器、个人数字助理(PDA)、智能手表、个人通信器、游戏设备、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。此外,虽然仅示出单个机器或系统,但是术语“机器”或“系统”也应被认为包括单独地或共同地执行指令集(或多个指令集)以执行本文讨论的任何一种或多种方法的机器或系统的任何集合。
在一个实施例中,系统1500包括经由总线或互连1510的处理器1501、存储器1503和设备1505-1508。处理器1501可以表示其中包括单个处理器核或多个处理器核的单个处理器或多个处理器。处理器1501可以表示一个或多个通用处理器,诸如微处理器、中央处理单元(CPU)等。更具体地,处理器1501可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者实现其他指令集的处理器、或者实现指令集的组合的处理器。处理器1501也可以是一个或多个专用处理器,诸如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其他类型的逻辑。
处理器1501可以是低功率多核处理器插槽(诸如超低压处理器),可以充当主处理单元和中央集线器,用于与系统的各个组件进行通信。可以将这种处理器实现为片上系统(SoC)。处理器1501被配置为执行用于执行本文讨论的操作和步骤的指令。系统1500还可以包括与可选图形子系统1504通信的图形界面,可选图形子系统1504可以包括显示控制器、图形处理器和/或显示设备。
处理器1501可以与存储器1503通信,这在一个实施例中可以经由多个存储器设备实现以提供给定量的系统存储器。存储器1503可以包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储设备。存储器1503可以存储包括由处理器1501或任何其他设备执行的指令序列的信息。例如,各种操作系统、设备驱动器、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可以被加载到存储器1503中并由处理器1501执行。操作系统可以是任何种类的操作系统,诸如例如,来自
Figure BDA0002829822960000161
的/>
Figure BDA0002829822960000162
操作系统、来自Apple的Mac/>
Figure BDA0002829822960000163
、来自/>
Figure BDA0002829822960000164
的/>
Figure BDA0002829822960000165
Figure BDA0002829822960000166
或其他实时或嵌入式操作系统(诸如VxWorks)。
系统1500还可以包括诸如设备1505-1508的IO设备,包括(一个或多个)网络接口设备1505、(一个或多个)可选输入设备1506和(一个或多个)其他可选IO设备1507。网络接口设备1505可以包括无线收发器和/或网络接口卡(NIC)。无线收发器可以是WiFi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其他无线电频率(RF)收发器、或其组合。NIC可以是以太网卡。
(一个或多个)输入设备1506可以包括鼠标、触摸板、触敏屏幕(其可以与显示设备1504集成)、诸如触笔的指示器设备和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入设备1506可以包括耦接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器可以例如使用多种触敏技术中的任一种检测其接触以及移动或中断,包括但不限于电容、电阻、红外和表面声波技术、以及其他近距离传感器阵列或用于确定与触摸屏的一个或多个接触点的其他元件。
IO设备1507可以包括音频设备。音频设备可以包括扬声器和/或麦克风,以促进启用语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其他IO设备1507还可以包括(一个或多个)通用串行总线(USB)端口、(一个或多个)并行端口、(一个或多个)串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、(一个或多个)传感器(例如,诸如加速度计、陀螺仪、磁力计、光传感器、指南针、近距离传感器等的运动传感器)或其组合。设备1507还可以包括成像处理子系统(例如,相机),其可以包括用于促进相机功能(诸如记录照片和视频剪辑)的光学传感器,诸如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器。某些传感器可以经由传感器集线器(未示出)耦接到互连1510,而诸如键盘或热传感器的其他设备可以由嵌入式控制器(未示出)控制,这取决于系统1500的特定配置或设计。
为了提供诸如数据、应用、一个或多个操作系统等的信息的永久存储,大容量存储(未示出)也可以耦接到处理器1501。在各种实施例中,为了实现更薄和更轻的系统设计以及改善系统响应性,可以经由固态设备(SSD)实现这种大容量存储。然而,在其他实施例中,大容量存储可以主要使用具有较少数量的SSD存储装置的硬盘驱动器(HDD)实现,以充当在掉电事件期间启用上下文状态和其他此类信息的非易失性存储的SSD缓存,使得快速上电可以在重新启动系统活动时发生。闪存设备也可以例如经由串行外围接口(SPI)耦接到处理器1501。该闪存设备可以提供系统软件的非易失性存储,包括基础输入/输出软件(BIOS)以及系统的其他固件。
存储设备1508可以包括计算机可访问存储介质1509(也称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件集(例如,模块、单元、和/或逻辑1528)。处理模块/单元/逻辑1528可以表示上述任何组件,诸如例如,图4的主机服务器104或DPA105-107。在由数据处理系统1500执行处理模块/单元/逻辑1528期间,处理模块/单元/逻辑1528也可以全部或至少部分地驻留在存储器1503和/或处理器1501内,存储器1503和处理器1501也构成机器可访问的存储介质。处理模块/单元/逻辑1528还可以经由网络接口设备1505通过网络传输或接收。
计算机可读存储介质1509还可以被用来永久地存储上述一些软件功能。尽管在示例性实施例中将计算机可读存储介质1509示出为单个介质,术语“计算机可读存储介质”应被认为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或关联的缓存和服务器)。术语“计算机可读存储介质”也应被认为包括能够存储或编码用于由机器执行的指令集以及使机器执行本发明的任何一种或多种方法的任何介质。因此,术语“计算机可读存储介质”应被认为包括但不限于固态存储器、以及光和磁介质、或任何其他非暂时性机器可读介质。
本文所述的处理模块/单元/逻辑1528、组件和其他特征可以实现为分立硬件组件或集成在诸如ASICS、FPGA、DSP或类似设备的硬件组件的功能中。另外,处理模块/单元/逻辑1528可以被实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以任何组合的硬件设备和软件组件来实现。
注意,尽管系统1500被示出为具有数据处理系统的各个组件,并不意图表示互连这些组件的任何特定架构或方式;因为这样的细节与本发明的实施例无关。还将意识到的是,具有更少的组件或也许更多组件的网络计算机、手持式计算机、移动电话、服务器和/或其他数据处理系统也可以与本发明的实施例一起使用。
已经根据对计算机存储器内的数据位上的操作的算法和符号表示呈现前述详细描述的某些部分。这些算法的描述和表示是数据处理领域的技术人员所使用的最有效地向本领域其他技术人员传达其工作实质的方式。这里,算法通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操纵的操作。
然而,应该牢记的是,所有这些和类似术语均应与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从上面的讨论明显另外指出,否则应理解的是,在整个描述中,利用诸如权利要求书中所阐述的术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和转换为计算机系统的存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
附图中所示的技术可以使用在一个或多个电子设备上存储和执行的代码和数据来实现。这样的电子设备使用诸如非暂时性计算机可读存储介质(例如磁盘、光盘、随机存取存储器;只读存储器;闪存设备;相变存储器)和暂时性计算机可读传输介质(例如,电、光、声、或其他形式的传播信号,诸如载波、红外信号、数字信号)的计算机可读介质来存储和通信(在内部和/或通过网络与其他电子设备通信)代码和数据。
可以通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,体现在非暂时性计算机可读介质上)或其结合的处理逻辑来执行前述附图中描绘的过程或方法。尽管以上根据一些顺序操作描述了过程或方法,然而应当理解的是,所描述操作中的一些可以以不同顺序执行。而且,一些操作可以并行而不是顺序地执行。
在前述说明书中,已经参考本发明的特定示例性实施例描述了本发明的实施例。显而易见的是,在不脱离所附权利要求书所阐述的本发明的更广泛精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性而不是限制性的。

Claims (9)

1.一种将消息广播给一个或多个数据处理DP加速器的计算机实现方法,方法包括:
从主机接收广播请求,主机托管发起待被广播给耦接到主机的多个DP加速器中的一个或多个DP加速器的广播消息的应用,其中广播请求包括识别一个或多个DP加速器的一个或多个DP加速器标识符ID;
从主机接收用于广播通信会话的广播会话密钥以广播广播消息;以及
对于一个或多个DP加速器ID中的每个DP加速器ID,
识别对应于DP加速器ID的安全密钥对的公共密钥;
使用广播会话密钥加密广播消息,
使用公共密钥加密广播会话密钥,以及
将经加密的广播消息和经加密的广播会话密钥发送给由DP加速器ID识别的DP加速器,其中DP加速器被配置为使用与DP加速器ID相关联的对应私有密钥解密经加密的广播会话密钥,并且使用广播会话密钥解密经加密的广播消息;
其中相邻的DP加速器通过接收广播并且将广播转发给其相邻的DP加速器来传播广播,以及经由外围组件互连或外围组件快速互连信道传达广播消息。
2.根据权利要求1所述的方法,其中从应用接收广播指令的DP加速器被指定为广播消息的广播DP加速器。
3.根据权利要求1所述的方法,其中如果指定的DP加速器接收到传播广播,广播传播终止。
4.根据权利要求1所述的方法,其中用于传播的广播的消息包括消息源、消息上下文,但是不包括消息目的地。
5.根据权利要求1所述的方法,其中多个DP加速器中非指定的DP加速器接收广播,但是不具有解密经加密的广播以生成广播会话密钥的对应密钥,以及非指定的DP加速器无法访问广播会话密钥以解密用于通信会话的广播消息。
6.根据权利要求1所述的方法,其中经由与DP加速器相关联的物理通信信道传达广播消息。
7.一种将消息广播给一个或多个数据处理DP加速器的装置,包括:
第一接收模块,用于从主机接收广播请求,主机托管发起待被广播给耦接到主机的多个DP加速器中的一个或多个DP加速器的广播消息的应用,其中广播请求包括识别一个或多个DP加速器的一个或多个DP加速器标识符ID;
第二接收模块,用于从主机接收用于广播通信会话的广播会话密钥以广播广播消息;以及
处理模块,用于对于一个或多个DP加速器ID中的每个DP加速器ID,
识别对应于DP加速器ID的安全密钥对的公共密钥;
使用广播会话密钥加密广播消息,
使用公共密钥加密广播会话密钥,以及
将经加密的广播消息和经加密的广播会话密钥发送给由DP加速器ID识别的DP加速器,其中DP加速器被配置为使用与DP加速器ID相关联的对应私有密钥解密经加密的广播会话密钥,并且使用广播会话密钥解密经加密的广播消息;
其中相邻的DP加速器通过接收广播并且将广播转发给其相邻的DP加速器来传播广播,以及经由外围组件互连或外围组件快速互连信道传达广播消息。
8.一种非暂时性机器可读介质,其中存储有指令,指令在由处理器执行时使处理器执行根据权利要求1-6中任一项所述的方法。
9.一种数据处理系统,包括:
处理器;以及
耦接到处理器以存储指令的存储器,指令在由处理器执行时使处理器执行根据权利要求1-6中任一项所述的方法。
CN202011457876.0A 2019-12-10 2020-12-10 将消息广播给加速器的系统和方法 Active CN112953855B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/709,389 US11457354B2 (en) 2019-12-10 2019-12-10 System and method to securely broadcast a message to accelerators
US16/709,389 2019-12-10

Publications (2)

Publication Number Publication Date
CN112953855A CN112953855A (zh) 2021-06-11
CN112953855B true CN112953855B (zh) 2023-03-24

Family

ID=76210440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011457876.0A Active CN112953855B (zh) 2019-12-10 2020-12-10 将消息广播给加速器的系统和方法

Country Status (2)

Country Link
US (1) US11457354B2 (zh)
CN (1) CN112953855B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405336B2 (en) 2019-11-22 2022-08-02 Baidu Usa Llc Method for key sharing between accelerators in virtual channel with switch
US11343083B2 (en) 2019-11-22 2022-05-24 Baidu Usa Llc Method for key sharing between accelerators in virtual channel
US11552790B2 (en) 2019-11-22 2023-01-10 Baidu Usa Llc Method for key sharing between accelerators
US11558357B2 (en) 2019-11-22 2023-01-17 Baidu Usa Llc Method for key sharing between accelerators with switch
US11411934B2 (en) * 2019-12-10 2022-08-09 Baidu Usa Llc System and method to securely broadcast a message to accelerators with switch
US11516010B2 (en) 2019-12-10 2022-11-29 Baidu Usa Llc System and method to securely broadcast a message to accelerators using virtual channels
US11728996B2 (en) 2019-12-10 2023-08-15 Baidu Usa Llc System and method to securely broadcast a message to accelerators using virtual channels with switch
US11457354B2 (en) 2019-12-10 2022-09-27 Baidu Usa Llc System and method to securely broadcast a message to accelerators

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445747A (zh) * 2018-05-03 2019-11-12 霍尼韦尔国际公司 用于加密交通工具数据服务交换的系统和方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6426945B1 (en) * 1998-10-06 2002-07-30 Nokia Telecommunications, Oy Method and apparatus for providing resource discovery using multicast scope
US6553009B2 (en) 1999-07-09 2003-04-22 Satellite-Smart Solutions Ltd. Direct satellite communication
US6912655B1 (en) 1999-08-09 2005-06-28 Tristrata Security Inc. Network security architecture system utilizing seals
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
US20060161502A1 (en) 2005-01-18 2006-07-20 International Business Machines Corporation System and method for secure and convenient handling of cryptographic binding state information
US8477941B1 (en) * 2008-07-10 2013-07-02 Sprint Communications Company L.P. Maintaining secure communication while transitioning networks
EP2878112B1 (en) * 2012-07-27 2015-10-21 Telefonaktiebolaget L M Ericsson (PUBL) Secure session for a group of network nodes
US9112824B2 (en) 2013-03-15 2015-08-18 Red Hat, Inc. Forwarding multicast messages in a messaging network
US9571464B2 (en) 2014-08-11 2017-02-14 Intel Corporation Network-enabled device provisioning
CN109496414B (zh) * 2016-07-28 2022-05-24 皇家飞利浦有限公司 识别数据将被复制到的网络节点
US10241947B2 (en) 2017-02-03 2019-03-26 Intel Corporation Hardware-based virtual machine communication
CN108540982B (zh) 2017-03-06 2021-10-22 上海诺基亚贝尔股份有限公司 用于虚拟基站的通信方法和设备
US10659468B2 (en) * 2017-05-24 2020-05-19 Micro Focus Llc Access control values
US10841243B2 (en) 2017-11-08 2020-11-17 Mellanox Technologies, Ltd. NIC with programmable pipeline
US20200389322A1 (en) * 2017-12-07 2020-12-10 Telefonaktiebolaget Lm Ericsson (Publ) Security for group communication
CN109982266B (zh) * 2017-12-28 2021-05-11 华为技术有限公司 一种通信方法、及相关产品
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445747A (zh) * 2018-05-03 2019-11-12 霍尼韦尔国际公司 用于加密交通工具数据服务交换的系统和方法

Also Published As

Publication number Publication date
CN112953855A (zh) 2021-06-11
US11457354B2 (en) 2022-09-27
US20210176632A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
CN112953855B (zh) 将消息广播给加速器的系统和方法
EP3695587B1 (en) Providing secure communications between a host system and a data processing accelerator
CN112262546A (zh) 用于数据处理加速器的密钥分配和交换的方法和系统
CN112948139B (zh) 使用交换机向加速器安全地广播消息的系统和方法
CN112262547A (zh) 具有安全单元以提供根信任服务的数据处理加速器
CN112236972A (zh) 用于导出会话密钥以确保主机系统和数据处理加速器之间的信息交换信道的方法和系统
US11436305B2 (en) Method and system for signing an artificial intelligence watermark using implicit data
CN112292678A (zh) 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
CN112334902A (zh) 建立主机系统与数据处理加速器之间的安全信息交换信道的方法
CN112953886B (zh) 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法
CN112352220A (zh) 保护由数据处理加速器处理的数据的方法和系统
US11552790B2 (en) Method for key sharing between accelerators
US11775692B2 (en) Method and system for encrypting data using a kernel
CN112262545A (zh) 主机系统与数据处理加速器之间的证明协议
US11516010B2 (en) System and method to securely broadcast a message to accelerators using virtual channels
CN112352242A (zh) 具有本地时间单元以生成时间戳的数据处理加速器
CN112839021B (zh) 带交换机的加速器之间的密钥共享方法
US11343083B2 (en) Method for key sharing between accelerators in virtual channel
US11457002B2 (en) Method and system for encrypting data using a command
US11537689B2 (en) Method and system for signing an artificial intelligence watermark using a kernel
US11637697B2 (en) Method and system for signing output using a kernel
US20210110010A1 (en) Method and system for signing an artificial intelligence watermark using a query
CN112838923A (zh) 具有交换机的虚拟信道中加速器之间的密钥共享方法

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
TA01 Transfer of patent application right

Effective date of registration: 20210930

Address after: 1195 Bordeaux Road, California, USA

Applicant after: Baidu (USA) Co.,Ltd.

Applicant after: Kunlun core (Beijing) Technology Co.,Ltd.

Address before: 1195 Bordeaux Road, Sunnyvale, California, USA

Applicant before: Baidu (USA) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant