CN112650985A - 使用隐式数据签名人工智能水印的方法和系统 - Google Patents
使用隐式数据签名人工智能水印的方法和系统 Download PDFInfo
- Publication number
- CN112650985A CN112650985A CN202010519652.1A CN202010519652A CN112650985A CN 112650985 A CN112650985 A CN 112650985A CN 202010519652 A CN202010519652 A CN 202010519652A CN 112650985 A CN112650985 A CN 112650985A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- host device
- artificial intelligence
- data processing
- intelligence model
- 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
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 223
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 115
- 230000015654 memory Effects 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000001960 triggered effect Effects 0.000 claims abstract description 5
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 38
- 238000003860 storage Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 6
- 239000007943 implant Substances 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000003826 tablet Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
在一个实施方式中,一种数据处理(DP)加速器获取人工智能(AI)模型的水印的计算机实现的方法包括:从主机装置接收待在DP加速器上执行的AI模型,以及接收在DP加速器上从AI模型触发输出的输入数据。DP加速器响应于所接收的输入数据来计算AI模型输出,并将该输出提供给主机装置。输出可以是从AI模型提取的水印。DP加速器可以调用DP加速器的安全单元来对输出进行数字签名。在实施方式中,安全单元使用从存储在安全单元上的安全存储器中的密钥检索的密钥或从存储在安全单元上的安全存储器中的密钥导出的密钥来对来自AI模型的输出进行数字签名。
Description
技术领域
本公开的实施方式总体上涉及人工智能模型训练和推断。更具体地,本公开的实施方式涉及由数据处理加速器执行的人工智能模型训练和推理以及相关联的安全性。
背景技术
因为人工智能(AI)技术已经被部署在诸如图像分类或自动驾驶的各种领域中,AI模型(也称为“机器学习模型”)最近已经被广泛地使用。与软件应用的可执行图像或二进制图像类似,AI模型在被训练时可以基于一组属性执行推断以分类为特征。因此,AI模型可以是“便携式的”并且可以在没有授权的情况下使用。当前,缺乏对AI模型的有效的数字权利保护。此外,使用委托给诸如数据处理(DP)加速器或远程系统的二级处理系统的AI模型的处理任务,缺乏证据证明由DP加速器系统产生的结果受“信任根”系统保护。
发明内容
根据本申请的一个方面,公开了一种数据处理加速器的计算机实现的方法,所述方法可包括:在数据处理加速器处从主机装置接收待在所述数据处理加速器上执行的人工智能模型;从所述主机装置接收在所述数据处理加速器上从所述人工智能模型触发输出的输入数据;响应于接收到的输入数据,通过对所述输入数据执行所述人工智能模型来计算人工智能模型输出;将所述人工智能模型输出传输至所述主机装置。
根据本申请的另一方面,公开了一种数据处理加速器,其可包括:接口,用于接收待在所述数据处理加速器上执行的人工智能模型,以及从主机装置接收在所述数据处理加速器上从所述人工智能模型触发输出的输入数据;以及人工智能单元,配置成:响应于所接收的输入数据,通过对所述输入数据执行所述人工智能模型来计算人工智能模型输出,以及将所述人工智能模型输出传输到所述主机装置。
根据本申请的又一方面,公开了一种其中存储有指令的非暂时性的机器可读介质,所述指令在由处理器执行时使所述处理器执行数据处理加速器的操作。所述操作可包括:在所述数据处理加速器处从主机装置接收待在所述数据处理加速器上执行的人工智能模型;从所述主机装置接收在所述数据处理加速器上从人工智能模型触发输出的所述输入数据;响应于接收到的输入数据,通过对所述输入数据执行所述人工智能模型来计算人工智能模型输出;以及将所述人工智能模型输出传输至所述主机装置。
根据本申请的再一方面,公开了一种主机装置,其包括处理器;以及存储器,联接到所述处理器以存储指令,所述指令在由所述处理器执行时使所述处理器执行主机装置从数据处理加速器获取水印的操作。所述操作可包括:将人工智能模型传输到所述数据处理加速器以在所述数据处理加速器上运行,将在所述数据处理处理器上从所述人工智能模型触发输出的输入数据传输到所述数据处理加速器,以及从所述数据处理加速器获取所述输出,其中所述输出由所述数据处理加速器通过基于所述输入数据执行所述人工智能模型来产生。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同的附图标记指代相似的元件。
图1是示出根据一个实施方式的安全处理系统的框图。
图2A和图2B是示出根据一个实施方式的在一个或多个主机和一个或多个数据处理加速器之间的安全计算环境的框图。
图3A和图3B是示出根据实施方式的确保数据处理(DP)加速器对人工智能(AI)模型的水印进行签名的方法的框图。
图4A和图4B是示出根据实施方式的使用具有密码模块的DP加速器安全地加密或解密数据的方法的框图。
图5A和图5B是示出根据实施方式的使用主机提供的内核和DP加速器安全地加密或解密数据的方法的框图。
图6A和图6B是示出根据实施方式的使用隐式数据对AI水印进行安全数字签名的方法的框图。
图7是示出根据实施方式的使用主机提供的内核对输出进行安全数字签名的方法的框图。
图8是示出根据实施方式的使用由主机和AI加速器提供的启用水印和启用签名的内核来对AI模型的水印进行安全数字签名的方法的框图。
图9是示出用于实现本申请公开的功能的示例性计算系统的框图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,并且附图将示出各种实施方式。以下描述和附图是对本公开的说明,并且不应被解释为限制本公开。描述了许多特定细节以提供对本公开各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指相同的实施方式。
以下实施方式涉及使用数据处理(DP)加速器来增加可从主机装置卸载(或委托)到DP加速器的某些类型的操作的处理吞吐量。DP加速器可以是通用处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其它类型的处理器。DP加速器可以是专有设计,诸如AI加速器或另一GPU等。虽然以安全联接到一个或多个DP加速器的主机装置来示出和描述实施方式,但本申请所描述的概念可更一般地实施为分布式处理系统。
主机装置和DP加速器可以通过高速总线互连,例如外围部件互连快速(PCIe)或其它高速总线。主机装置和DP加速器可以在执行下面描述的本发明的各方面的操作之前通过PCIe总线交换密钥并启动安全信道。一些操作包括DP加速器使用人工智能(AI)模型来使用由主机装置提供的数据执行推断。在AI模型推断被主机装置信任之前,主机装置可以使DP加速器执行一个或多个验证测试,如下所述,包括确定AI模型的水印。在一些实施方式和操作中,DP加速器不知道主机装置正在测试由DP加速器产生的结果的有效性。
AI模型的水印是嵌入在AI模型内或AI模型的输出中的标识符或指示符或其组合,其标识或指示AI模型的源/制造者。在一些实施方式中,水印可以是系数或参数的子集,例如AI模型内的权重,当从AI模型提取时,其包括水印。水印的一些目的包括:通过其水印识别AI模型;将诸如数字权利的信息存储在AI模型内,但不影响由模型生成的推断,并且使用水印作为标识符将由AI模型生成的推断与生成推断的AI模型相关联。水印不应在安全计算环境之外被容易地发现。
在实施方式中,主机装置可以向DP加速器发送输入,当DP加速器使用该输入执行AI模型时,该DP加速器从AI模型中提取水印。主机装置可以在将DP加速器和/或AI模型用于可信操作之前验证水印。启用水印的AI模型是能够响应于指定的输入数据提取其自己的水印的AI模型。
在一些实施方式中,主机装置可以向DP处理装置传输内核以在执行一个或多个操作中使用。在本文中,内核是提供给DP加速器以由DP加速器执行来执行内核的预期功能的一小段代码。在实施方式中,内核由主机装置提供给DP加速器,作为由将由主机装置验证的DP加速器执行信任证明操作的一部分。在一些实施方式中,DP加速器不知道它代表主机装置执行的内核的目的。
在一些实施方式中,内核可以是“启用水印内核”。启用水印内核是这样的内核,当执行时,该内核能够从人工智能(AI)模型中提取水印。AI水印与特定的AI模型相关联,并且可以使用几种不同的方法被嵌入或“植入”在AI模型内。水印可以被植入到AI模型的一个或多个节点的一个或多个权重变量中。在实施方式中,水印被存储在AI模型的一个或多个节点的一个或多个偏置变量中,或者通过在训练期间创建AI模型的一个或多个附加节点来存储水印。
在一些实施方式中,内核可以是“继承水印内核”。继承水印内核是能够从数据对象(例如现有的AI模型或其它数据对象)继承水印的内核。然后,内核可以将继承的水印植入另一个AI模型或由AI模型生成的推断中。
在一些实施方式中,内核可以是“签名内核”,其可以对其接收的任何输入进行数字签名。签名内核可以生成待被签名的输入数据的散列或摘要,并且可以在签名输入之前将该散列或摘要嵌入到待被签名的输入中。散列或摘要可以是任何散列算法,例如SHA-1、SHA-2或SHA-3等。可以使用数据处理(DP)加速器的私钥、与主机装置共享的对称密钥或从主机装置接收的密钥来加密(签名)具有散列或摘要的输入数据。
在一些实施方式中,启用水印的AI模型是具有植入在AI模型内的水印的AI模型。在一些实施方式中,主机装置可以向DP加速器提供启用水印内核,使得DP加速器可以例如使用AI模型来进行推断,然后使用启用水印内核来从AI模型中提取水印,将水印嵌入推断中,并且数字签名该推断。这样的实施方式允许主机装置验证DP加速器确实使用正确的AI模型来执行推断,指示推断可以是受信任的。
关于以下方面中的任一方面,在一个实施方式中,可将水印嵌入到人工智能(AI)模型的一个或多个层的一个或多个节点中。例如,可以将水印嵌入在一个或多个权重变量或偏置变量中。替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的伪节点)以植入或存储水印。主机处理器可以是中央处理单元(CPU),并且DP加速器可以是通过总线或互连联接到CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)装置或其它形式的集成电路(IC)的形式来实现。替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为主系统可以通过网络远程卸载其数据处理任务的辅助系统的许多分布式系统中的一个(例如,诸如作为服务或SaaS系统的软件的云计算系统、或作为服务或PaaS系统的平台)。主机处理器和DP加速器之间的链路可以是外围部件互连快速(PCIe)链路或诸如以太网连接的网络连接。
在第一方面,一种获得启用水印的人工智能(AI)模型的水印的数据处理(DP)加速器的计算机实现的方法包括:由DP加速器接收输入到DP加速器的数据,该数据使启用水印的AI模型从启用水印的AI模型中提取水印;将启用水印的AI模型的水印提供给主机装置。DP加速器可以从主机装置接收模型。DP加速器还可以接收对水印进行数字签名的命令,并调用DP加速器的安全单元对水印进行数字签名。
在第二方面,执行加密或解密操作的DP加速器的计算机实现的方法包括由DP加速器接收用于DP加速器的加密或解密的命令和输入数据。该命令是以下命令之一:加密输入数据或解密输入数据。该方法还包括由DP加速器根据命令对输入数据进行加密或解密;以及将加密或解密的输入数据提供给主机装置。主机装置和DP加速器可以交换一个或多个密钥,并且这种密钥可以用于在主机装置和DP加速器之间建立安全链路和/或用于加密或解密。一个或多个密钥可以基于DP加速器的根密钥或密钥对,并且可以存储在DP加速器的安全单元的安全存储器中。
在第三方面,一种数据处理(DP)加速器加密或解密输入数据的计算机实现的方法可以包括从主机装置接收命令、输入数据和内核。内核可以是加密内核或解密内核,并且DP加速器不需要知道其已经接收了哪个内核。DP加速器运行所接收的内核。响应于DP加速器接收到命令,如果接收到的内核是加密内核,DP加速器使用内核执行输入数据的加密,否则使用内核解密输入数据。然后将加密或解密的输入数据提供给主机装置。主机装置和DP加速器可以交换一个或多个密钥,并且这种密钥可以用于在主机装置和DP加速器之间建立安全链路和/或用于加密或解密。一个或多个密钥可以基于DP加速器的根密钥或密钥对,并且可以存储在DP加速器的安全单元的安全存储器中。
在第四方面,一种获得人工智能(AI)模型的水印的数据处理(DP)加速器的计算机实现的方法包括:从主机装置接收待在DP加速器上执行的AI模型;以及在DP加速器上接收触发AI模型输出的输入数据。DP加速器响应于所接收的输入来计算AI模型输出,并将该输出提供给主机装置。输出可以是从AI模型提取的水印。DP加速器可以调用DP加速器的安全单元来对输出进行数字签名。在实施方式中,安全单元使用从存储在安全单元上的安全存储器中的密钥检索的密钥或从安全单元上的安全存储器中的密钥导出的密钥对来自AI模型的输出进行数字签名。
在第五方面,一种通过数据处理(DP)加速器操作对输入进行数字签名,并将数字签名的输入嵌入到输出中的计算机实现的方法包括从主机装置接收指定到签名内核的输入的签名内核,并执行签名内核以:从输入中提取水印,并获得水印的散列;从输入生成输出;将散列嵌入到输出中。DP加速器向主机装置提供输出。在实施方式中,输入包括由DP加速器执行的人工智能(AI)模型。DP加速器从主机装置接收第二输入,从而从AI模型生成推断输出。AI模型的数字签名水印被嵌入到推断输出中并被提供给主机装置。
在第六方面,一种向主机装置提供人工智能(AI)模型的水印的数据处理(DP)加速器的计算机实现的方法包括:由DP加速器从主机装置接收AI模型,以及向DP加速器接收启用水印内核。DP加速器还从主机装置接收第一输入数据到DP加速器,当第一输入数据被用作水印使能内核的输入时,DP加速器生成AI模型的水印。水印被提供给主机装置。在实施方式中,该方法还包括从主机装置接收签名内核,并调用签名内核来对水印进行数字签名。在实施方式中,该方法可替换地包括调用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浏览器,应用)可以通过网络103经由接口向服务器104发送或传输用于执行的指令(例如,AI训练,推理指令等),并且服务器104接收该指令。响应于该指令,服务器104与DP加速器105-107通信以实现指令的执行。在一些实施方式中,指令是机器学习类型的指令,其中DP加速器作为专用机器或处理器可以比服务器104快许多倍地执行指令。因此,服务器104可以分布式方式控制/管理一个或多个DP加速器的执行作业。然后,服务器104向客户端设备101-102返回执行结果。DP加速器或AI加速器可以包括一个或多个专用处理器,例如可从(Baidu,)获得的人工智能(AI)芯片组,或者可替代地,DP加速器可以是来自另一AI芯片组提供者的AI芯片组。
根据一个实施方式,访问由数据处理服务器104(也称为主机)托管的DP加速器105-107中的任一个的应用程序中的每一个都可以验证该应用程序是由可信源或供应商提供的。每个应用程序可以在由主机104的中央处理单元(CPU)专门配置和执行的可信执行环境(TEE)内启动和执行。当应用程序被配置成访问DP加速器105-107中的任何一个时,可以在主机104和DP加速器105-107中相应的一个之间建立模糊连接,从而保护在主机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可以在沙盒存储器(sandboxed memory)中运行。在应用程序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加速器可包括AI芯片组或另一AI芯片组,例如可执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。在一个实施方式中,主机系统104包括具有一个或多个CPU 213的硬件,CPU213配备有主机机器104内的安全模块(例如可信平台模块(TPM))。TPM是端点装置上的专用芯片,其存储专用于主机系统的用于硬件认证的加密密钥(例如,RSA加密密钥)。每个TPM芯片可以包含一个或多个RSA密钥对(例如,公钥和私钥对),称为签注密钥(endorsementkeys,EK)或签注凭证(endorsement credentials,EC),即根密钥。密钥对被保持在TPM芯片内部,并且不能被软件访问。然后,在执行固件和软件的关键部分之前,可以由EK或EC对固件和软件的关键部分进行散列,以保护系统免于未授权的固件和软件修改。因此,主机机器上的TPM芯片可以用作安全启动的信任根。
TPM芯片还在工作内核空间中保护驱动程序209和操作系统(OS)211以与DP加速器105-107通信。本文中,驱动程序209由DP加速器供应商提供,并且可以用作用户应用程序的驱动程序,以控制主机和DP加速器之间的通信信道215。因为TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动程序209,所以TPM还有效地保护驱动程序209和OS 211。
由于用于DP加速器105-107的通信信道215可以被OS 211和驱动程序209独占,因此,通信信道215可以通过TPM芯片来保护。在一个实施方式中,通信信道215包括外围部件互连或外围部件互连快速(PCIE)信道。在一个实施方式中,通信信道215是模糊通信信道。
主机机器104可以包括可信执行环境(TEE)210,可信执行环境(TEE)210由TPM/CPU213强制执行以确保安全。TEE是安全环境。TEE可以保证加载在TEE内的代码和数据在保密性和完整性方面受到保护。TEE的实例可以是软件保护扩展(SGX)或安全加密虚拟化(SEV)。SGX和/或SEV可包括一组中央处理单元(CPU)指令代码,其允许用户级代码分配CPU的存储器的专用区域,该专用区域被保护以免于以较高特权级运行的进程。在本申请中,TEE210可以保护用户应用程序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,在一个实施方式中,HCM259包括认证模块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通信。
在一个实施方式中,DP加速器105还包括AI单元,该AI单元可以包括AI训练单元和AI推断单元。AI训练和推断单元可以集成到单个单元中。AI训练模块被配置成使用训练数据集来训练AI模型。可以经由通信链路215从主机系统104接收要训练的AI模型和训练数据。AI模型推断单元可以被配置成对一组输入数据(例如,一组输入特征)执行训练的人工智能模型,以推断和分类输入数据。例如,可以将图像输入到人工智能模型中以对图像是否包含人、景观等进行分类。经过训练的人工智能模型和输入数据也可以经由接口140通过通信链路215从主机系统104接收。
在一个实施方式中,水印单元276可以包括水印生成器和水印记录器(也称为“水印植入器”)。水印单元276可以包括水印内核执行器或内核处理器(未示出)以执行内核。在实施方式中,可以从主机104接收内核,或者从永久或非永久存储器中检索内核,并且在DP加速器105的存储器(未示出)中执行内核。水印生成器被配置为使用预定的水印算法生成水印。替代地,水印生成器可以从现有水印继承水印,或者从另一数据结构或数据对象提取水印,所述另一数据结构或数据对象例如可以从主机系统104接收的人工智能模型或一组输入数据。水印植入器被配置为将水印刻录或植入到诸如人工智能模型的数据结构或由人工智能模型生成的输出数据中。其中植入水印的人工智能模型或输出数据可以通过通信链路215从DP加速器105返回到主机系统104。应注意DP加速器105-107具有相同或相似的结构或部件,并且关于DP加速剂的描述将适用于本申请全文中的所有DP加速器。
图3A和3B是示出根据实施方式的使用查询来对人工智能(AI)模型的水印进行签名的方法300的框图。方法300的目的是提供一种通用水印签名方法,以证明AI模型确实由DP加速器105使用。在准备方法300时,主机装置104和DP加速器105可以交换一个或多个指定密钥并建立安全通信链路215。一个或多个交换的密钥也可以用于对从AI模型提取的水印进行数字签名。在实施方式中,主机装置104和DP加速器105之间的通信使用加密和解密来维持通信链路215上的安全通信。根据方法300的实施方式可使用诸如AI加速器或其它数据处理(DP)加速器的DP加速器105或诸如图形处理单元(GPU)的加速器。
现在参考图3A,根据一个实施方式描述了从AI模型生成有效水印的方法300。在操作305中,主机装置104上的应用程序将启用水印的AI模型发送到DP加速器105。在操作350中,DP加速器105接收启用水印的AI模型并加载启用水印的AI模型以供执行。
在操作310中,主机装置104上的应用程序向DP加速器105发送可以是查询形式的输入数据。在操作355中,DP加速器从主机装置104接收输入数据,并且在操作360中,DP加速器使用输入数据来运行AI模型,以从启用水印的AI模型中提取水印。
在操作325中,主机装置104可以从DP加速器105检索水印,在操作375中,该DP加速器105已经使主机装置104可用。在对DP加速器105进行进一步调用以执行根据方法300的操作之前,主机装置104可以可选地验证接收到的水印。在操作325中,主机装置104可以对水印执行一个或多个验证操作,以确保从启用水印的AI模型提取的水印是有效的。主机装置104可以将从DP加速器105获得的水印与预先存在的水印进行比较,以确定从DP加速器105接收的水印是否有效。
可替代地,在实施方式中,主机装置104可通过用输入数据运行启用水印的AI模型以获得水印并将获得的水印与从DP加速器105接收的水印进行比较来验证水印。如果两个水印匹配,则DP加速器105使用启用水印的AI模型来生成水印,并且水印被确定为有效。如果水印是有效的,则主机装置104上的应用程序可以使用启用水印的AI模型对DP加速器105进行一个或多个附加调用,以便使用启用水印的AI模型执行一个或多个推断。在操作330中,主机104可以对DP加速器进行一个或多个调用以执行方法300的操作。
现在参考图3B,图3B描述了从人工智能(AI)模型中提取水印并对水印进行数字签名的方法300。
在操作305中,主机装置104上的应用程序将启用水印的AI模型发送到DP加速器105。在操作350中,DP加速器105接收启用水印的AI模型并加载启用水印的AI模型以供执行。
在操作310中,主机装置104将可以是查询形式的输入数据发送到DP加速器105。在操作355中,DP加速器从主机装置104接收输入数据,并且在操作360中,DP加速器使用输入数据来运行启用水印的AI模型,以提取启用水印的AI模型的水印。
在操作370中,DP加速器105调用安全单元275以对水印进行数字签名。在实施方式中,可以用DP加速器的私钥或对称密钥对水印进行数字签名。如上所述,DP加速器的私钥或对称密钥可以是与主机装置104和DP加速器105交换的一个或多个密钥中的一个。在实施方式中,由DP加速器105的安全单元275对水印进行数字签名包括计算水印的散列或摘要(digest),以及使散列或摘要包括数字签名的水印。
在操作325中,主机装置104可以从DP加速器105检索数字签名的水印,在操作375中,DP加速器105已经使主机装置104可用。在对DP加速器105进行进一步调用以执行根据方法300的操作之前,主机装置104可以可选地验证接收到的水印。主机装置104可以对数字签名的水印执行一个或多个验证操作。主机装置104可以将从DP加速器105获得的水印与预先存在的水印进行比较,以确定从DP加速器105接收的水印是否有效。
可替代地,在实施方式中,主机104可使用DP加速器105的公钥或对称密钥来解密水印上的数字签名。在对数字签名进行解密之后,主机装置104可以通过利用输入数据运行启用水印的AI模型来提取水印,并将提取的水印与从DP加速器105接收的水印进行比较,来验证未签名的水印。如果两个水印匹配,则DP加速器105使用启用水印的AI模型来生成水印,并且确定数字签名是有效的。在操作330中,主机装置104上的应用程序可对利用启用水印的AI模型的DP加速器105进行一个或多个附加调用。
图4A和4B是示出根据一些实施方式的使用数据处理(DP)加速器安全地加密或解密数据的方法400的框图。在方法400的准备中,主机装置104和DP加速器105可以交换一个或多个指定密钥并建立用于通信的安全通信信道215。根据方法400的实施方式可使用加速器(例如人工智能(AI)加速器或其它AI加速器)或图形处理单元(GPU)作为DP加速器105。
现在参考图4A,在操作405和450中,主机装置104和DP加速器105可以交换一个或多个指定密钥。指定密钥可以包括一个或多个对称密钥和/或一个或多个非对称密钥对。对称密钥可用于主机装置104和DP加速器105之间通过通信信道215的安全通信会话。非对称密钥可用于加密和解密数据和数字签名。在实施方式中,共享指定密钥包括主机装置104与DP加速器105共享主机装置104的公钥,以及DP加速器105与主机装置104共享DP加速器的公钥。
在操作410中,主机装置104上的应用程序向DP加速器105发送命令和数据,以使用指定密钥之一来加密或解密。在操作455中,DP加速器105接收命令(加密或解密)和数据以由DP加速器105使用指定密钥加密或解密。
在操作475中,DP加速器安全单元275的密码引擎274根据从主机装置104接收的命令对从主机装置104接收的数据进行加密或解密。DP加速器105使加密的或解密的数据可用于主机装置104。在操作420中,主机装置104可以从DP加速器105检索加密或解密的数据。
在操作425中,主机装置104上的应用程序可以可选地验证所接收的加密或解密数据。如果命令是“加密”,则主机装置104可以使用DP加速器105的公共密钥来解密所接收的加密数据。主机装置然后可以将解密的数据与发送到DP加速器以加密的明文输入数据进行比较。如果比较是匹配的,则验证加密操作。如果命令是“解密”,则主机装置104可以将发送到DP加速器105的输入数据的加密数据的明文与从DP加速器接收的解密数据进行比较。
可替代地,在实施方式中,主机装置104可对主机装置104先前发送到DP加速器105以解密的明文数据进行解密。主机装置104可以将发送到DP加速器的加密数据的明文输入的结果,或者主机解密加密数据的结果,与由DP加速器105返回到主机装置104的解密数据进行比较。如果比较是匹配的,则验证解密操作。
在操作430中,主机装置104可以从DP加速器150请求一个或多个附加的加密或解密操作。在实施方式中,如果加密或解密操作未被验证,则主机装置104可以选择不对DP加速器105进行附加的加密或解密调用。方法400结束。
现在参考图4B,在操作410中,主机装置104上的应用程序向DP加速器105发送命令和数据以加密数据。在操作455中,DP加速器105接收待由DP加速器105加密的加密命令和数据。
在操作465中,DP加速器105使用安全单元275生成新的对称密钥或非对称密钥对。DP加速器105向主机装置104传输密钥(例如,新生成的非对称密钥对的公钥)。在操作415中,主机装置104从DP加速器105接收密钥。
在操作475中,DP加速器安全单元275的密码引擎274根据从主机装置104接收的命令对从主机装置104接收的数据进行加密。DP加速器105可以使用例如在上面的操作465中生成的非对称密钥对的私钥来加密数据。DP加速器105使加密的数据可用于主机装置104。在操作420中,主机装置104可以从DP加速器105检索加密数据。
在操作425中,主机装置104上的应用程序可以可选地验证所接收的加密数据。主机装置104可以使用DP加速器105的公钥来解密所接收的加密数据。然后,主机装置104可以将解密的数据与发送到DP加速器以加密的明文输入数据进行比较。如果比较是匹配的,则验证加密操作。
在操作430中,主机装置104可以从DP加速器105请求一个或多个加密操作。在实施方式中,如果加密操作未被验证,则主机装置104可以选择不对DP加速器105进行附加的加密调用。方法400结束。
图5A和5B是示出根据实施方式的使用主机提供的加密内核或解密内核以及DP加速器105来加密或解密数据的方法500的框图。DP加速器可以是人工智能(AI)处理器、图形处理单元(GPU)、多核处理器、DSP处理器或其它DP加速器。
现在参考图5A,在操作505和550中,主机装置104和DP加速器105可以交换一个或多个指定密钥。指定密钥可以包括一个或多个对称密钥和/或一个或多个不对称密钥。对称密钥可以用于主机装置104和DP加速器105之间在通信信道215上的通信会话。非对称密钥可用于加密和解密数据和数字签名。在实施方式中,共享指定密钥包括主机装置104与DP加速器105共享主机装置104的公钥,并且DP加速器105与主机装置104共享DP加速器的公钥。
在操作512中,主机装置104上的应用程序可以向DP加速器传输加密内核或解密内核、执行内核的命令、以及要加密或解密的输入数据。在操作557中,DP加速器105从主机装置104接收加密内核或解密内核、输入数据和使用输入数据执行内核的命令。
在操作565中,DP加速器105响应于该命令运行所接收的内核,并且使用该命令来使用指定密钥加密或解密(取决于DP加速器105接收到哪个内核)输入数据。
在操作570中,DP加速器105可以向主机装置104提供利用命令和输入数据运行加密内核或解密内核的结果输出。在操作522中,主机装置104可以从DP加速器105检索结果数据,并且可选地,验证检索到的结果数据。如果传输到DP加速器的内核是加密内核,则主机装置104可以使用指定密钥或与密钥对中的指定密钥相对应的密钥来解密从DP加速器105接收的结果数据。主机装置104可以将解密的结果数据与发送到DP加速器105以进行加密的输入数据的明文进行比较。
如果从DP加速器接收的解密的结果数据与在操作512中由主机装置104传输到DP加速器105的明文输入数据相匹配,则DP加速器的加密操作是有效的。如果由DP加速器接收的内核是解密内核,则主机装置104可以解密主机设备104在操作512中传输到DP加速器105的输入数据。主机装置104可以将解密的输入数据与从DP加速器105接收的结果数据进行比较。如果从DP加速器105接收的结果数据与由主机装置104解密的输入数据相匹配,则解密操作是有效的。
在操作530中,主机装置104可以使用DP加速器105上的加密或解密内核来进行加密/解密操作的一个或多个附加调用。在实施方式中,如果加密或解密操作未被验证,则主机104可以选择不使用方法500对DP加速器105进行用于加密或解密操作的将来调用。
现在参考图5B,在操作507中,主机装置104上的应用程序将要加密或解密的输入数据传输到DP加速器105。在操作551中,DP加速器105从主机装置104接收输入数据。在操作510中,主机装置104上的应用程序可以向DP加速器105传输加密内核或解密内核、执行内核的命令以及将由DP加速器105用于加密或解密的密钥。在操作555中,DP加速器105从主机装置104接收加密内核或解密内核、执行内核的命令以及用于加密或解密输入数据的密钥。
在操作565中,DP加速器105响应于该命令运行所接收的加密内核或解密内核,并使用该命令使用从主机104接收的密钥(取决于DP加速器105接收的内核)来加密或解密输入数据。
在操作570中,DP加速器105可以向主机装置104提供利用该命令、接收的密钥和输入数据运行加密内核或解密内核的结果输出。在操作522中,主机装置104可以从DP加速器105检索结果数据,并且可选地,验证检索到的结果数据。如果传输到DP加速器105的内核是加密内核,则主机装置104可以使用与在上述操作510中传输到DP加速器的密钥相对应的密钥来解密从DP加速器105接收的结果数据。
在实施方式中,由主机104使用以解密从DP加速器105接收的结果数据的密钥是对应于传输到DP加速器105的公钥的私钥。主机装置104可以将解密的结果数据与发送到DP加速器105以进行加密的输入数据的明文进行比较。如果从DP加速器接收的解密的结果数据与由主机装置104在操作512中传输到DP加速器105的明文输入数据相匹配,则DP加速器的加密操作是有效的。
如果由DP加速器接收的内核是解密内核,则主机装置104可以解密主机装置104在操作512中传输到DP处理器150的输入数据。主机装置104可以将解密的输入数据与从DP加速器105接收的结果数据进行比较。如果从DP加速器105接收的结果数据与由主机装置104解密的输入数据相匹配,则解密操作是有效的。
在操作530中,主机装置104可调用DP加速器105以使用DP加速器105上的加密内核或解密内核来进行一个或多个附加加密/解密操作。在实施方式中,如果加密或解密操作未被验证,则主机104可以选择不使用方法500对DP加速器105进行用于加密或解密操作的将来调用。
图6A和6B是示出根据实施方式的使用隐式数据来对AI水印进行签名的方法600的框图。现在参考图6A,在操作605中,主机装置104上的应用程序可以向DP加速器105传输人工智能(AI)模型。在操作650中,DP加速器可以从主机装置104接收AI模型。
在操作610中,主机装置104上的应用程序可将输入传输到DP加速器,所述输入用于触发来自AI模型的输出。在操作655中,DP加速器105可以从主机装置104接收输入数据。在操作660中,DP加速器105可利用所接收的输入数据运行AI模型以生成输出数据。输出数据可以是AI模型的水印。
在操作680中,DP加速器可以使输出数据可用于主机装置104进行检索。在操作620中,主机装置104可以检索并可选地验证DP加速器利用输入数据运行AI模型的输出。为了验证输出数据,主机装置104可以利用输入数据运行AI模型以从AI模型获得水印,或者以其他方式从预先存在的源获得水印,并且将获得的AI模型水印与从DP加速器105接收的输出数据进行比较。如果所获得的水印与从DP加速器105接收的输出数据相匹配,则DP加速器的水印操作有效。
在操作625中,主机装置104可以使用AI模型从DP加速器105请求附加的数据处理操作。在实施方式中,如果水印没有被验证,则主机104可以选择不使用方法600对DP加速器105进行将来调用。
现在参考图6B,在操作605中,主机装置104上的应用程序可以向DP加速器105传输AI模型。在操作650中,DP加速器可以从主机装置104接收AI模型。
在操作610中,主机装置104上的应用程序可将输入传输到DP加速器,所述DP加速器用于触发来自AI模型的输出。在操作655中,DP加速器105可以从主机装置104接收输入数据。
在操作660中,DP加速器105可利用所接收的输入数据运行AI模型以生成输出数据。输出数据可以是AI模型的水印。
在操作675中,DP加速器可以调用DP加速器105的安全单元275以对输出数据(水印)进行数字签名。在实施方式中,对水印进行数字签名可以包括生成水印的散列或摘要,包括在具有水印的包中的散列或摘要,以及用DP加速器的私钥对包进行加密。
在操作680中,DP加速器可以使数字签名的输出数据可用于主机装置104进行检索。在操作620中,主机装置104可以检索并可选地验证DP加速器利用输入数据运行AI模型的输出,或者以其他方式从预先存在的源获得水印。为了验证接收到的数字签名的输出数据,主机装置可以使用DP加速器105的公钥对接收到的输出进行解密,并提取水印和水印的散列或摘要。主机装置104可以将提取的水印与由主机装置利用输入数据运行AI模型获得的水印进行比较。如果它们匹配,则主机装置104还可以计算水印的散列或摘要,并将所计算的散列或摘要与所提取的散列或摘要进行比较。如果散列/摘要匹配,则DP加速器105使用输入数据从AI模型中成功地提取水印并对水印进行数字签名。
在操作625中,主机装置104可以使用AI模型从DP加速器105请求附加的数据处理操作。在实施方式中,如果水印没有被验证,则主机104可以选择不使用方法600对DP加速器105进行将来调用。
图7是示出根据实施方式的使用主机提供的签名内核对输出进行签名的方法700的框图。在准备方法700时,主机装置104和DP加速器105可以交换一个或多个指定密钥并建立安全通信信道215。根据方法700的实施方式可使用诸如AI加速器或其它AI加速器的加速器或诸如GPU的加速器作为DP加速器105。
在操作705中,主机装置104上的应用程序可以通过通信信道215向DP加速器105发送签名内核。在操作750中,DP加速器105可以从主机装置150接收签名内核。签名内核指定要访问的输入数据。输入数据可以是具有水印的AI模型。签名内核可以使用输入生成输出数据。
在操作755中,DP加速器运行内核以从输入数据中提取水印。输入数据可以是启用水印的AI模型或表示AI模型的水印的数据。签名内核可以从几个不同的源访问指定的输入数据。指定的输入数据的源可以在签名内核内指定,在从主机装置104到DP加速器105的单独传输中指定,或者可以通过引用(例如指针)来指定,或者通过引用到DP加速器内的寄存器来指定,例如“从DP加速器寄存器AX中指定的输入数据或数据对象中提取水印”。签名内核可以使用任何已知的散列或摘要技术生成水印的散列或摘要。
在操作756中,内核使用如上所述获得的输入数据生成输出。在操作757中,签名内核可以将散列或摘要嵌入到由签名内核生成的输出数据中。在操作758中,内核可以对输出数据进行数字签名。可以使用先前在主机装置104和DP加速器105之间交换的密钥或DP加速器105的私钥来生成签名。
在操作760中,DP加速器105可通知主机装置104数字签名的输出数据准备好由主机装置104检索。在操作710中,主机装置104可从DP加速器105检索输出数据。
在操作715中,主机装置104可任选地验证从DP加速器105检索的输出数据。在实施方式中,验证输出可以包括主机装置104上的应用程序执行操作755到757,然后解密从DP加速器接收的数字签名输出的数字签名,或者以其他方式从预先存在的源获得指定的输出,并且将结果与由DP加速器生成的未签名(在解密签名之后)结果进行比较。如果两者匹配,则DP加速器105签名已被验证。在操作720中,主机104可以对DP加速器和签名内核进行一个或多个附加调用以进行附加操作。在实施方式中,如果经签名的输出未被验证,则主机104可选择不使用方法700对DP加速器105进行附加调用。
图8是示出根据实施方式的DP加速器使用由主机装置104提供的启用水印内核和签名内核来对AI模型的水印进行数字签名的方法800的框图。在实施方式中,启用水印内核和签名内核可以被集成到单个内核中。方法800提供一般的AI水印签名方法,以证明具有水印的AI模型被DP加速器105使用。在方法800的准备中,主机装置104和DP加速器105可以交换一个或多个指定密钥,并且在主机装置104和DP加速器105之间建立通信信道215。在实施方式中,DP加速器105可以是诸如AI加速器或其它AI加速器的加速器或诸如图形处理单元(GPU)的加速器。
在操作805中,主机装置104上的应用程序通过通信信道215向DP加速器105发送启用水印的AI模型。在操作850中,DP加速器105从主机装置104接收启用水印的AI模型。在操作810中,主机装置104上的应用程序通过通信信道215向DP加速器105发送启用水印内核和签名内核。在操作855中,DP加速器105从主机装置104接收启用水印内核和签名内核。在实施方式中,启用水印内核和签名内核可以是组合每个内核的功能的单个内核。
在操作815中,主机装置104上的应用程序通过通信信道215向DP加速器105传输输入数据。当输入数据被用作启用水印内核的输入时,该输入数据触发启用水印内核以输出启用水印的AI模型的水印。在操作860中,DP加速器105从主机装置104接收输入数据。
在操作865中,DP加速器使用所接收的输入数据作为输入来运行启用水印内核,以从从主机装置104接收的启用水印的AI模型中提取水印。在操作870中,在实施方式中,启用水印内核可以可选地调用签名内核来对水印进行数字签名。在实施方式中,数字签名包括水印的散列或摘要。在实施方式中,对水印进行数字签名包括水印的散列或摘要,以及使用DP加速器105的私钥对水印和散列/摘要进行加密。
在操作875中,DP加速器105通知主机装置104水印(可选地数字签名的)可由主机装置104使用以进行检索。在操作820中,主机装置104上的应用程序从DP加速器105检索AI模型的(可选地数字签名的)水印。
在操作825中,主机装置104可选地验证(例如,可选地数字签名的)水印。如果在操作870中由签名内核对水印进行了数字签名,则主机装置可以使用DP加速器105的公钥来解密数字签名。水印的散列或摘要可以从解密的输出数据中解包。主机装置104可以运行启用水印内核以从启用水印的AI模型获得水印,或者以其他方式从预先存在的源获得水印,并且主机装置104可以计算水印的摘要或散列。如果主机计算或获得的水印和散列与DP加速器计算的水印和散列相匹配,则验证DP加速器、启用水印内核和签名内核输出。
在操作830中,主机装置104可以调用DP加速器105以使用签名内核和启用水印内核来执行一个或多个这样的操作。在实施方式中,如果DP加速器生成的水印和数字签名没有被验证,则主机装置104可以选择不调用DP加速器105以用于使用启用水印内核和/或签名内核的进一步操作。
图9是示出可与本公开的一个实施方式一起使用的数据处理系统1500的示例的框图。例如,系统1500可以表示执行上述任何过程或方法的上述任何数据处理系统,例如如以上针对DP加速器105所述,例如,在主机装置104和数据处理(DP)加速器105之间建立安全通信;由DP加速器运行从主机装置104接收的人工智能(AI)模型的代码内核;执行主机装置104上的应用程序;执行主机装置104上的API和驱动程序;运行加密/解密逻辑、种子生成器、加密/解密密钥生成器等。系统1500可以包括许多不同的部件。这些部件可以实施为集成电路(IC)、集成电路的部分、分立电子装置或适用于电路板(诸如,计算机系统的主板或插入卡)的其它模块或者实施为以其它方式并入计算机系统的机架内的部件。
还应注意,系统1500旨在示出计算机系统的许多部件的高阶视图。然而,应当理解的是,某些实施方式中可以具有附加的部件,此外,其它实施方式中可以具有所示部件的不同布置。系统1500可以表示台式计算机、膝上型计算机、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(PDA)、智能手表、个人通信器、游戏装置、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。此外,虽然仅示出了单个机器或系统,但是术语“机器”或“系统”还应当被理解为包括单独地或共同地执行一个(或多个)指令集以执行本文所讨论的任何一种或多种方法的机器或系统的任何集合。
在一个实施方式中,系统1500包括通过总线或互连件1510连接的处理器1501、存储器1503以及装置1505至1508。处理器1501可以表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器1501可以表示一个或多个通用处理器,诸如,微处理器、中央处理单元(CPU)等。更具体地,处理器1501可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理器1501还可以是一个或多个专用处理器,诸如,AI处理器、GPU、ASIC、蜂窝或基带处理器、FPGA、DSP、网络处理器、图形处理器、通信处理器、加密处理器、协处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。
处理器1501(其可以是低功率多核处理器套接口,诸如超低电压处理器)可以充当用于与所述系统的各种部件通信的主处理单元和中央集线器。这种处理器可以实施为片上系统(SoC)。处理器1501被配置成执行用于执行本文所讨论的操作和步骤的指令。系统1500还可以包括与可选的图形子系统1504通信的图形接口,图形子系统1504可以包括显示控制器、图形处理器和/或显示装置。
处理器1501可以与存储器1503通信,存储器1503在一个实施方式中可以经由多个存储器装置实施以提供给定量的系统存储。存储器1503可以包括一个或多个易失性存储(或存储器)装置,诸如,随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或者其它类型的存储装置。存储器1503可以存储包括由处理器1501或任何其它装置执行的指令序列的信息。例如,各种操作系统、装置驱动程序、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可以加载到存储器1503中并由处理器1501执行。操作系统可以是任何类型的操作系统,例如,机器人操作系统(ROS)、来自公司的操作系统、来自苹果公司的来自公司的LINUX、UNIX,或者其它实时或嵌入式操作系统。
系统1500还可以包括IO装置,诸如装置1505至1508,包括网络接口装置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)来实施。然而,在其它实施方式中,大容量存储设备可以主要使用硬盘驱动器(HDD)来实施,其中较小量的SSD存储设备充当SSD高速缓存以在断电事件期间实现上下文状态以及其它此类信息的非易失性存储,从而使得在系统活动重新启动时能够实现快速通电。另外,闪存装置可以例如经由串行外围接口(SPI)联接到处理器1501。这种闪存装置可以提供系统软件的非易失性存储,所述系统软件包括所述系统的BIOS以及其它固件。
存储装置1508可以包括计算机可访问的存储介质1509(也被称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件(例如,模块、单元和/或逻辑1528)。处理模块/单元/逻辑1528可以表示上述任何组件,例如用户应用程序205、运行时库206、主机装置104的驱动程序209、真随机数生成器273、密钥管理器272、水印单元276、DP加速器105上的密码引擎274。处理模块/单元/逻辑1528还可以在其由数据处理系统1500、存储器1503和处理器1501执行期间完全地或至少部分地驻留在存储器1503内和/或处理器1501内,数据处理系统1500、存储器1503和处理器1501也构成机器可访问的存储介质。处理模块/单元/逻辑1528还可以通过网络经由网络接口装置1505进行传输或接收。
计算机可读存储介质1509也可以用来永久性地存储以上描述的一些软件功能。虽然计算机可读存储介质1509在示例性实施方式中被示为单个介质,但是术语“计算机可读存储介质”应当被认为包括存储所述一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使得所述机器执行本公开的任何一种或多种方法。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器以及光学介质和磁性介质,或者任何其它非暂时性机器可读介质。
本文所述的处理模块/单元/逻辑1528、部件以及其它特征可以实施为分立硬件部件或集成在硬件部件(诸如,ASICS、FPGA、DSP或类似装置)的功能中。此外,处理模块/单元/逻辑1528可以实施为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以硬件装置和软件部件的任何组合来实施。
应注意,虽然系统1500被示出为具有数据处理系统的各种部件,但是并不旨在表示使部件互连的任何特定架构或方式;因为此类细节和本公开的实施方式没有密切关系。还应当认识到,具有更少部件或可能具有更多部件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可以与本公开的实施方式一起使用。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储设备、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对本公开作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (20)
1.一种数据处理加速器的计算机实现的方法,所述方法包括:
在所述数据处理加速器处从主机装置接收待在所述数据处理加速器上执行的人工智能模型;
从所述主机装置接收用于在所述数据处理加速器上从所述人工智能模型触发输出的输入数据;
响应于接收到的输入数据,通过对所述输入数据执行所述人工智能模型来计算人工智能模型输出;
将所述人工智能模型输出传输至所述主机装置。
2.如权利要求1所述的方法,其中,所述人工智能模型输出包括从所述人工智能模型提取的水印。
3.如权利要求1所述的方法,还包括在所述主机装置和所述数据处理加速器之间交换一个或多个密钥。
4.如权利要求3所述的方法,还包括使用所述一个或多个密钥中的一个密钥在所述主机装置与所述数据处理加速器之间建立安全链路。
5.如权利要求3所述的方法,还包括调用所述数据处理加速器的安全单元来对来自所述人工智能模型的输出进行数字签名。
6.如权利要求5所述的方法,其中,所述安全单元使用从存储在所述安全单元上的安全存储器中的密钥检索的密钥或从存储在所述安全单元上的安全存储器中的密钥导出的密钥对来自所述人工智能模型的所述人工智能模型输出进行数字签名。
7.如权利要求4所述的方法,其中,所述安全链路包括外围部件互连快速信道。
8.一种数据处理加速器,包括:
接口,从主机装置接收待在所述数据处理加速器上执行的人工智能模型,以及接收用于在所述数据处理加速器上从所述人工智能模型触发输出的输入数据;以及
人工智能单元,配置成:
响应于所接收的输入数据,通过对所述输入数据执行所述人工智能模型来计算人工智能模型输出,以及
将所述人工智能模型输出传输到所述主机装置。
9.如权利要求8所述的数据处理加速器,其中,所述人工智能模型输出包括从所述人工智能模型提取的水印。
10.如权利要求8所述的数据处理加速器,还包括安全单元,用于在所述主机装置和所述数据处理加速器之间交换一个或多个密钥。
11.如权利要求10所述的数据处理加速器,还包括信道管理器,用于使用所述一个或多个密钥中的一个密钥在所述主机装置和所述数据处理加速器之间建立安全链路。
12.如权利要求10所述的数据处理加速器,其中,所述信道管理器配置成调用所述数据处理加速器的安全单元以对来自所述人工智能模型的输出进行数字签名。
13.如权利要求12所述的数据处理加速器,其中,所述安全单元使用从存储在所述安全单元上的安全存储器中的密钥检索的密钥或从存储在所述安全单元上的安全存储器中的密钥导出的密钥对来自所述人工智能模型的所述人工智能模型输出进行数字签名。
14.如权利要求11所述的数据处理加速器,其中,所述安全链路包括外围部件互连快速信道。
15.一种其中存储有指令的非暂时性的机器可读介质,所述指令在由处理器执行时使所述处理器执行数据处理加速器的操作,所述操作包括:
在所述数据处理加速器处从主机装置接收待在所述数据处理加速器上执行的人工智能模型;
从所述主机装置接收在所述数据处理加速器上从人工智能模型触发输出的所述输入数据;
响应于接收到的输入数据,通过对所述输入数据执行所述人工智能模型来计算人工智能模型输出;以及
将所述人工智能模型输出传输至所述主机装置。
16.如权利要求15所述的机器可读介质,其中,所述人工智能模型输出包括从所述人工智能模型提取的水印。
17.如权利要求15所述的机器可读介质,其中,所述操作还包括在所述主机装置与所述数据处理加速器之间交换一个或多个密钥。
18.一种主机装置,包括:
处理器;以及
存储器,联接到所述处理器以存储指令,所述指令在由所述处理器执行时使所述处理器执行所述主机装置从数据处理加速器获取水印的操作,所述操作包括:
将人工智能模型传输到所述数据处理加速器以在所述数据处理加速器上运行,
将用于在所述数据处理处理器上从所述人工智能模型触发输出的输入数据传输到所述数据处理加速器,以及
从所述数据处理加速器获取所述输出,其中所述输出由所述数据处理加速器通过基于所述输入数据执行所述人工智能模型来产生。
19.如权利要求18所述的主机装置,其中,所述操作还包括:
与所述数据处理加速器交换一个或多个密钥;
使用所述一个或多个密钥中的至少一个密钥来在所述主机装置和所述数据处理加速器之间建立安全链路。
20.如权利要求19所述的主机装置,其中,所述操作还包括:
由所述主机装置验证来自所述数据处理加速器的输出;
响应于来自所述数据处理加速器的输出是有效的,调用所述数据处理加速器以使用所述人工智能模型执行一个或多个推断。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/598,955 | 2019-10-10 | ||
US16/598,955 US11436305B2 (en) | 2019-10-10 | 2019-10-10 | Method and system for signing an artificial intelligence watermark using implicit data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650985A true CN112650985A (zh) | 2021-04-13 |
Family
ID=75346023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010519652.1A Pending CN112650985A (zh) | 2019-10-10 | 2020-06-09 | 使用隐式数据签名人工智能水印的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11436305B2 (zh) |
CN (1) | CN112650985A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11579928B2 (en) | 2019-11-14 | 2023-02-14 | Baidu Usa Llc | Systems and methods for configuring a watermark unit with watermark algorithms for a data processing accelerator |
US11582260B2 (en) | 2019-11-14 | 2023-02-14 | Baidu Usa Llc | Systems and methods for verifying a watermark of an AI model for a data processing accelerator |
US11481678B2 (en) | 2019-11-14 | 2022-10-25 | Baidu Usa Llc | Systems and methods for learning new watermark algorithms for a data processing accelerator |
US11574032B2 (en) * | 2019-11-14 | 2023-02-07 | Baidu Usa Llc | Systems and methods for signing an AI model with a watermark for a data processing accelerator |
US11748460B2 (en) * | 2020-04-27 | 2023-09-05 | Imperva, Inc. | Procedural code generation for challenge code |
EP4258151A1 (en) * | 2022-04-06 | 2023-10-11 | MediaTek Inc. | Always-on artificial intelligence (ai) security |
EP4432140A1 (en) * | 2023-03-13 | 2024-09-18 | Nxp B.V. | Hardware accelerator and method of operating a hardware accelerator |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170286705A1 (en) * | 2016-04-05 | 2017-10-05 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Tpm 2.0 platform hierarchy authentication after uefi post |
US20180255023A1 (en) * | 2017-03-02 | 2018-09-06 | UnifyID | Privacy-preserving system for machine-learning training data |
US20190188386A1 (en) * | 2018-12-27 | 2019-06-20 | Intel Corporation | Protecting ai payloads running in gpu against main cpu residing adversaries |
US20190205508A1 (en) * | 2017-12-29 | 2019-07-04 | Texas Instruments Incorporated | Machine learning model with watermarked weights |
US20190258783A1 (en) * | 2018-02-21 | 2019-08-22 | International Business Machines Corporation | Stolen machine learning model identification |
WO2019190886A1 (en) * | 2018-03-29 | 2019-10-03 | The Regents Of The University Of California | Digital watermarking of machine learning models |
KR20190112959A (ko) * | 2018-03-27 | 2019-10-08 | 서울대학교산학협력단 | 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7222235B1 (en) | 1999-03-30 | 2007-05-22 | Oki Electric Industry Co., Ltd. | Image processing system utilizing digital watermarks in predetermined regions |
US7305092B2 (en) | 2000-12-19 | 2007-12-04 | Qualcomm Incorporated | Method and system to accelerate cryptographic functions for secure e-commerce applications |
US20020087881A1 (en) | 2000-12-29 | 2002-07-04 | Shlomi Harif | System, method and program for identifying and binding a process in a heterogeneous network |
US7581105B2 (en) | 2003-12-16 | 2009-08-25 | Sap Aktiengesellschaft | Electronic signing apparatus and methods |
ATE458325T1 (de) | 2003-12-16 | 2010-03-15 | Sap Ag | Elektronische signiervorrichtung und verfahren |
GB2419762A (en) | 2004-11-01 | 2006-05-03 | Sony Uk Ltd | Method of generating protected media signals by replacing data bits with hash values |
US8356361B2 (en) | 2006-11-07 | 2013-01-15 | Spansion Llc | Secure co-processing memory controller integrated into an embedded memory subsystem |
US20090097657A1 (en) | 2007-10-05 | 2009-04-16 | Scheidt Edward M | Constructive Channel Key |
US8411867B2 (en) * | 2009-04-06 | 2013-04-02 | Broadcom Corporation | Scalable and secure key management for cryptographic data processing |
US8930713B2 (en) | 2010-03-10 | 2015-01-06 | Dell Products L.P. | System and method for general purpose encryption of data |
EP2678969A4 (en) * | 2011-02-22 | 2017-07-19 | Hewlett-Packard Enterprise Development LP | Digital signatures |
US9195851B1 (en) | 2014-03-12 | 2015-11-24 | Emc Corporation | Offloading encryption to the client |
US20160234176A1 (en) | 2015-02-06 | 2016-08-11 | Samsung Electronics Co., Ltd. | Electronic device and data transmission method thereof |
WO2016149047A1 (en) | 2015-03-13 | 2016-09-22 | United States Postal Service | Methods and systems for data authentication services |
US10810461B2 (en) * | 2017-02-03 | 2020-10-20 | Panasonic Intellectual Property Management Co., Ltd. | Learned model generating method, learned model generating device, and learned model use device |
US20180285600A1 (en) | 2017-03-30 | 2018-10-04 | Microsoft Technology Licensing, Llc | Connected secure iot processor |
US10949546B2 (en) * | 2017-08-02 | 2021-03-16 | Samsung Electronics Co., Ltd. | Security devices, electronic devices and methods of operating electronic devices |
US11429848B2 (en) * | 2017-10-17 | 2022-08-30 | Xilinx, Inc. | Host-directed multi-layer neural network processing via per-layer work requests |
US10887098B2 (en) | 2017-11-15 | 2021-01-05 | Alexander J. M. Van Der Velden | System for digital identity authentication and methods of use |
CN108363929B (zh) | 2018-02-09 | 2022-05-13 | 广州旭能信息科技有限公司 | 一种存储设备信息消除报告生成和防篡改系统及方法 |
NL2020424B1 (en) | 2018-02-12 | 2019-08-19 | Jean Baptist Van Oldenborgh Marc | Method for protecting the intellectual property rights of a trained machine learning network model using digital watermarking by adding, on purpose, an anomaly to the training data. |
US10256974B1 (en) | 2018-04-25 | 2019-04-09 | Blockchain Asics Llc | Cryptographic ASIC for key hierarchy enforcement |
EP3776323A1 (en) | 2018-04-30 | 2021-02-17 | Google LLC | Secure collaboration between processors and processing accelerators in enclaves |
US10721219B2 (en) | 2018-06-28 | 2020-07-21 | Nxp B.V. | Method for establishing a secure communication session in a communications system |
WO2020012061A1 (en) * | 2018-07-12 | 2020-01-16 | Nokia Technologies Oy | Watermark embedding techniques for neural networks and their use |
US11676003B2 (en) * | 2018-12-18 | 2023-06-13 | Microsoft Technology Licensing, Llc | Training neural network accelerators using mixed precision data formats |
WO2020142110A1 (en) | 2018-12-31 | 2020-07-09 | Intel Corporation | Securing systems employing artificial intelligence |
KR20190089127A (ko) * | 2019-07-10 | 2019-07-30 | 엘지전자 주식회사 | 시스템 온 칩, 시스템 온 칩의 구동 방법 및 시스템 온 칩을 포함하는 전자장치 |
GB2586065B (en) | 2019-08-01 | 2023-02-15 | Sky Cp Ltd | Secure media delivery |
-
2019
- 2019-10-10 US US16/598,955 patent/US11436305B2/en active Active
-
2020
- 2020-06-09 CN CN202010519652.1A patent/CN112650985A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170286705A1 (en) * | 2016-04-05 | 2017-10-05 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Tpm 2.0 platform hierarchy authentication after uefi post |
US20180255023A1 (en) * | 2017-03-02 | 2018-09-06 | UnifyID | Privacy-preserving system for machine-learning training data |
US20190205508A1 (en) * | 2017-12-29 | 2019-07-04 | Texas Instruments Incorporated | Machine learning model with watermarked weights |
US20190258783A1 (en) * | 2018-02-21 | 2019-08-22 | International Business Machines Corporation | Stolen machine learning model identification |
KR20190112959A (ko) * | 2018-03-27 | 2019-10-08 | 서울대학교산학협력단 | 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치 |
WO2019190886A1 (en) * | 2018-03-29 | 2019-10-03 | The Regents Of The University Of California | Digital watermarking of machine learning models |
US20190188386A1 (en) * | 2018-12-27 | 2019-06-20 | Intel Corporation | Protecting ai payloads running in gpu against main cpu residing adversaries |
Also Published As
Publication number | Publication date |
---|---|
US11436305B2 (en) | 2022-09-06 |
US20210110009A1 (en) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11436305B2 (en) | Method and system for signing an artificial intelligence watermark using implicit data | |
CN112650984B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650982B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650981B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112528242B (zh) | 使用用于数据处理加速器的水印算法配置水印单元的系统和方法 | |
CN112650988A (zh) | 使用内核加密数据的方法和系统 | |
CN112528244A (zh) | 用于由数据处理加速器处理数据的方法及数据处理加速器 | |
US11582260B2 (en) | Systems and methods for verifying a watermark of an AI model for a data processing accelerator | |
CN112650980B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650986B (zh) | 用于数据处理加速器的水印单元 | |
CN112650983B (zh) | 数据处理加速器及由数据处理加速器执行的计算机实现的方法 | |
CN112650987B (zh) | 使用内核签名人工智能水印的方法和系统 | |
CN112650990B (zh) | 使用查询来签名人工智能水印的方法和系统 | |
US11457002B2 (en) | Method and system for encrypting data using a command | |
US11637697B2 (en) | Method and system for signing output using a kernel |
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: 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. |