CN113849826A - 机器学习模型的受保护的部署 - Google Patents
机器学习模型的受保护的部署 Download PDFInfo
- Publication number
- CN113849826A CN113849826A CN202011477094.3A CN202011477094A CN113849826A CN 113849826 A CN113849826 A CN 113849826A CN 202011477094 A CN202011477094 A CN 202011477094A CN 113849826 A CN113849826 A CN 113849826A
- Authority
- CN
- China
- Prior art keywords
- learning model
- deep learning
- programmable logic
- logic device
- encrypted
- 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
- 238000010801 machine learning Methods 0.000 title description 23
- 238000013136 deep learning model Methods 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000013461 design Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 29
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
- G06F2015/761—Indexing scheme relating to architectures of general purpose stored programme computers
- G06F2015/768—Gate array
Abstract
一种系统包括可编程逻辑器件,该可编程逻辑器件包括被配置为在比特流中接收经加密的深度学习模型和第一密钥的通信接口。在一个实施例中,可编程逻辑器件包括被配置为存储第一密钥的存储块。可编程逻辑器件还包括被配置为使用第一密钥对深度学习模型进行解密的解密块。一种方法包括在可编程逻辑器件处在比特流中接收经加密的深度学习模型和第一密钥。该方法还包括在可编程逻辑器件处使用第一密钥对深度学习模型进行解密。该方法还包括在可编程逻辑器件上实现深度学习模型。
Description
技术领域
本公开总体上涉及诸如可编程逻辑器件(PLD)之类的集成电路(IC)设备。更具体地,本公开涉及使用诸如现场可编程门阵列(FPGA)之类的PLD提供机器学习模型的安全部署。
背景技术
该部分旨在向读者介绍可能与下面描述和/或要求保护的本公开的各种方面有关的本领域的各种方面。相信该讨论有助于向读者提供背景技术信息,以有助于更好地理解本公开的各种方面。因此,可以理解的是,这些陈述应鉴于此来阅读,而不是作为对现有技术的承认。
集成电路设备可以用于多种目的或应用,例如,加密、解密、数字信号处理和机器学习。实际上,机器学习和人工智能应用(例如,深度学习模型)已经变得越来越普遍。可编程逻辑器件可以用于执行这些功能。在一些情况下,机器学习模型的创建者(例如,人、团体、公司、实体)可能与负责旨在实现机器学习模型的可编程逻辑器件的电路设计的设计者(例如,人、团体、公司、实体)不同。因此,机器学习模型的创建者可以寻求通过对机器学习模型加密来保护机器学习模型,和/或可以寻求防止可编程逻辑器件电路设计的设计者以未加密的形式接收和/或处理机器学习模型,以便维护机器学习模型的保密性和私密性。在一些情况下,使用前对机器学习模型进行解密可能潜在地使有价值的数据暴露于盗窃和/或损坏。
附图说明
在阅读以下详细描述时,并且在参考附图时,可以更好地理解本公开的各种方面,其中:
图1是根据本公开的实施例的可以使用DSP块来实现算术运算的系统的框图;
图2是根据本公开的实施例的图1的集成电路设备的框图;
图3是根据本公开的实施例的用于对深度学习模型加密的过程的流程图;
图4是根据本公开的实施例的用于对图3的深度学习模型解密的数据处理系统;
图5是根据本公开的实施例的数据处理系统。
具体实施方式
下面将描述一个或多个具体实施例。为了提供对这些实施例的简要描述,说明书中并未描述实际实现方式的所有特征。应当意识到,在任何此类实际实现方式的开发中(如在任何工程或设计项目中),必须做出许多特定于实现方式的决策,以实现开发者的特定目标,例如,遵守与系统相关的约束和与业务相关的约束,这可能因实现方式而异。此外,应当意识到,这种开发工作可能是复杂且耗时的,但是对于受益于本公开的普通技术人员而言,这却是设计、构造和制造的例行工作。
当介绍本公开的各种实施例的元素时,冠词“一”、“一个”和“该”旨在表示存在元素中的一个或多个元素。术语“包括”和“具有”旨在是包括性的,并且意味着除所列元素之外可能还有附件元素。另外,应该理解的是,对本公开的“一些实施例”、“实施例”、“一个实施例”或“一实施例”的引用不旨在被解释为排除也包含所引述特征的附加实施例的存在。此外,短语A“基于”B旨在表示A至少部分地基于B。此外,术语“或”旨在是包括性的(例如,逻辑或(OR))而不是排他性的(例如,逻辑异或(XOR))。换句话说,短语A“或”B旨在表示A、B或A和B两者。
随着机器学习应用变得越来越普遍,越来越期望用于确保机器学习模型得到充分保护的受保护的方法。本系统和技术涉及用于加密和保护机器学习模型在可编程逻辑器件中的部署的系统和方法的实施例。第一实体可以负责创建和/或生成机器学习模型(例如,深度学习模型、神经网络、支持向量机)。第二实体可以负责用于实现机器学习模型的可编程逻辑器件的电路设计。在一些情况下,电路设计可以是用于对可编程逻辑器件进行编程的比特流(例如,配置程序)的一部分,并且可编程逻辑器件可以是现场可编程门阵列(FPGA)。在一些情况下,可以用第一加密密钥对比特流进行加密,并且比特流的第二部分可以包括经加密的机器学习模型。
考虑到这一点,图1示出了系统10的框图,该系统10可以使用集成电路设备的组件(例如,可编程逻辑器件的组件(例如,可配置逻辑块、自适应逻辑模块、DSP块))来实现算术运算。设计者可能期望在集成电路设备12(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))上实现功能,例如,本公开的深度学习模型加密、解密和/或实现操作。在一些情况下,设计者可以指定要实现的高级程序(例如,OpenCL程序),这可以在没有对低级硬件描述语言(例如,Verilog或VHDL)的特定知识的情况下使设计者能够更加高效且容易地提供编程指令以配置用于集成电路设备12的可编程逻辑单元的集合。例如,由于OpenCL与其他高级编程语言(例如,C++)非常相似,因此熟悉这种编程语言的、可编程逻辑的设计者与被要求学习不熟悉的低级硬件描述语言以在集成电路设备12中实现新功能的设计者相比可能具有减少的学习曲线。
设计者可以使用设计软件14(例如,INTEL公司的版本)来实现其高级设计。设计软件14可以使用编译器16将高级程序转换为低级描述。编译器16可以向主机18和集成电路设备12提供表示高级程序的机器可读指令。主机18可以接收可以由内核程序20实现的主机程序22。为了实现主机程序22,主机18可以通过通信链路24将指令从主机程序22传送到集成电路设备12,该通信链路24可以是例如直接存储器访问(DMA)通信或快速外围组件互连(PCIe)通信。在一些实施例中,内核程序20和主机18可以实现对集成电路设备12上的一个或多个DSP块26的配置。DSP块26可以包括电路,该电路用于实现例如执行用于AI或非AI数据处理的矩阵-矩阵或矩阵-矢量相乘的运算。集成电路设备12可以包括许多(例如,数百或数千)DSP块26。另外,DSP块26可以通信地彼此耦合,从而可以将从一个DSP块26输出的数据提供给其他DSP块26。
尽管上述技术涉及高级程序的应用,但是在一些实施例中,设计者可以使用设计软件14来生成和/或指定低级程序,例如,上述低级硬件描述语言。此外,在一些实施例中,可以在没有单独的主机程序22的情况下实现系统10。此外,在一些实施例中,可以在电路中将本文描述的技术实现为非可编程电路设计。因此,本文描述的实施例旨在是说明性的而不是限制性的。
现在转到对集成电路设备12的更详细的讨论,图2示出了集成电路设备12作为诸如现场可编程门阵列(FPGA)之类的可编程逻辑器件的示例。此外,应当理解,集成电路设备12可以是任何其他适合类型的集成电路设备(例如,专用集成电路和/或专用标准产品)。如图所示,集成电路设备12可以具有输入/输出电路42,其用于通过输入/输出引脚44将信号驱离设备并且接收来自其他设备的信号。互连资源46(例如,全局和局部的垂直和水平导线和总线)可以用于在集成电路设备12上路由信号。另外,互连资源46可以包括固定互连(导线)和可编程互连(例如,相应固定互连之间的可编程连接)。可编程逻辑48可以包括组合逻辑电路和顺序逻辑电路。例如,可编程逻辑48可以包括查找表、寄存器和复用器。在各种实施例中,可编程逻辑48可以被配置为执行定制逻辑功能。与互连资源相关联的可编程互连可以被认为是可编程逻辑48的一部分。
诸如集成电路设备12之类的可编程逻辑器件可以包含在可编程逻辑48内的可编程元件50。例如,如上面讨论的,设计者(例如,客户)可以对可编程逻辑48进行编程(例如,配置)以执行一个或多个期望的功能。举例来说,可以通过使用掩模编程布置配置一些可编程逻辑器件的可编程元件50(这是在半导体制造期间执行的)来对这些可编程逻辑器件进行编程。在半导体制造操作已经完成之后,例如通过使用电编程或激光编程对其他可编程逻辑器件的可编程元件50进行编程,来配置其他可编程逻辑器件。通常,可编程元件50可以基于任何适合的可编程技术,例如,熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩模编程的元件等。
许多可编程逻辑器件被电编程。利用电编程布置,可编程元件50可以由一个或多个存储器单元形成。例如,在编程期间,使用引脚44和输入/输出电路42将配置数据加载到存储器单元中。在一个实施例中,可以将存储器单元实现为随机存取存储器(RAM)单元。本文描述的基于RAM技术的存储器单元的使用仅旨在作为一个示例。此外,由于这些RAM单元在编程期间被加载有配置数据,因此它们有时被称为配置RAM单元(CRAM)。这些存储器单元可以各自提供对应的静态控制输出信号,该信号控制可编程逻辑48中的相关联的逻辑组件的状态。例如,在一些实施例中,可以将输出信号施加到可编程逻辑48内的金属氧化物半导体(MOS)晶体管的栅极。
图3示出了根据本公开的实施例的用于对深度学习模型加密的过程70的流程图。虽然过程70被描述为由诸如图1中的主机18之类的主机处理器执行,但是应当理解,过程70可以由任何适合的处理电路执行。此外,虽然使用以特定顺序的步骤描述了过程70,但是应当理解,本公开设想到所描述的步骤可以以与所示顺序不同的顺序执行,并且某些所描述的步骤可以通过使用任何适合的处理电路执行存储在有形的、非暂时性的计算机可读介质中的指令来实现。
在过程70中,可以在主机(例如,图1中的主机18)处接收深度学习模型(步骤72)。在某些实施例中,主机可以生成或可以训练深度学习模型。例如,深度学习模型可以接收训练输入,并且可以生成输出,例如,对照片进行分类。深度学习模型可以包括与实现深度学习模型相关联的明文权重的集合。
在过程70中,主机的编译器可以编译深度学习模型(步骤74)。在某些实施例中,编译器基于深度学习模型生成二进制执行代码的集合。二进制执行代码的集合定义与深度学习模型相关联的计算调度。二进制执行代码在由适合的处理电路或集成电路设备(例如,FPGA)执行时,将实现深度学习模型。
在过程70中,主机可以对深度学习模型的二进制执行代码的集合进行加密(步骤76),以生成经加密的深度学习模型。主机可以使用任何适合的标准加密技术(例如,高级加密标准(AES))和/或任何适合的非标准加密技术来生成经加密的深度学习模型。可以通过从存储的密钥数据库接收密钥(例如,存储的且对于FPGA唯一的密钥)并且通过用该密钥对明文加密来对明文或未加密形式的深度学习模型进行加密。在某些实施例中,可以使用非对称加密技术对深度学习模型加密。因此,可以使用第一密钥对深度学习模型加密,并且可以使用单独的第二密钥对深度学习模型解密。在一些实施例中,加密是离线执行的,以减少黑客获得信息的机会。一旦深度学习模型已经被加密,就必须执行对深度学习模型的解密然后才能使用深度学习模型。
主机可以使用模型加密密钥对二进制执行代码的集合加密,并且可以例如在主机存储器中保留用于对二进制执行代码的集合加密的模型加密密钥。在一些实施例中,模型加密密钥对应于容纳在FPGA上的密钥。存储在FPGA上的密钥对于FPGA是唯一的,并且只有深度学习模型所有者知道。同样,不能从外部获得密钥,从而使通过I/O请求造成存储器泄漏的风险最小。通过使用对于FPGA唯一的密钥,减少了在主机和FPGA之间传输密钥的需求,因为用于对主机上的数据加密的密钥已经嵌入到FPGA中,一旦接收到就可以用于解密,如本文描述的。另外地或可替代地,由于诸如FPGA上的解密块的更新之类的更新,可能发生密钥在主机和FPGA之间的传送。在某些实施例中,与经加密的深度学习模型相关联的新的解密密钥可以在主机和FPGA之间以经加密的比特流传送。例如,模型加密密钥可以由可编程逻辑器件上的任意数量的可编程元件(例如,图2中的可编程元件50,包括物理熔丝、虚拟熔丝等)形成。在某些实施例中,可以将模型加密密钥熔合在FPGA上。在一些实施例中,加密密钥可以是在主机上生成并且仅深度学习模型所有者知道的私有密钥。当使用私有密钥对深度学习模型加密(并且被加密)时,可以使用嵌入在FPGA中的密钥对私有密钥进一步加密。
在一些实施例中,过程70包括使用加密技术对深度学习模型和加密密钥(例如,由主机生成的私有加密密钥或在FPGA上生成的密钥)两者进行加密。通过对深度学习模型和模型加密密钥两者进行加密,可以维护深度学习模型和模型加密密钥的完整性。也就是说,如果产生的比特流被篡改或修改,则数据和模型加密密钥两者都被认为受到损害。在一些实施例中,用于对深度学习模型加密和/或解密的模型加密密钥本身由对于FPGA唯一的另一个密钥单独加密。因此,可以对深度学习模型加密,并且可以保护深度学习模型免受负责可编程逻辑器件的电路设计的实体的攻击。
在某些实施例中,一旦深度学习模型和如一些实施例中可能存在的加密密钥已经被加密,就可以存储FPGA比特流并且可以如本文描述地准备传输。
图4示出了根据本公开的实施例的用于实现深度学习模型加密、解密和/或实现方法的数据处理系统100的组件。如图所示,经加密的深度学习模型104可以存储在数据库102中。在某些实施例中,数据库102可以与主机(例如,图1中的主机18)相关联。在某些实施例中,第一实体可以创建和/或生成经加密的深度学习模型104。在一些实施例中,第一实体可以对深度学习模型进行加密。可以将经加密的深度学习模型104编译并存储为二进制执行代码的集合。在一些实施例中,经加密的深度学习模型可以例如由第一实体通过图3的过程70生成。主机处理器(例如,主机中央处理单元(CPU)106)可以接收或可以取回经加密的深度学习模型。主机CPU 106可以使用快速外围组件互连(PCIe)108将配置比特流发送到FPGA112。在某些实施例中,针对可编程逻辑器件的电路设计可以与第二实体相关联,第二实体与第一实体分离,而第一实体与经加密的深度学习模型的创建和/或生成相关联。在一些实施例中,配置比特流可以包括与针对可编程逻辑器件(例如,FPGA112)的电路设计相关联的第一部分。例如,配置比特流可以包括与集成电路设备(例如,FPGA112)的功能相关联的机器可读指令。例如,配置比特流可以包括与实现深度学习模型相关联的机器可读指令。配置比特流可以包括经加密的深度学习模型104和用于对深度学习模型加密的模型加密密钥。在某些实施例中,可以使用嵌入在FPGA中的第二密钥来对模型加密密钥本身进行加密。在某些实施例中,配置比特流可以包括与针对可编程逻辑器件的电路设计相关联的第一部分和与经加密的深度学习模型相关联的第二部分。另外地或可替代地,配置比特流可以包括与针对可编程逻辑器件的电路设计相关联的第一部分和与用于对深度学习模型解密的解密密钥相关联的第二部分。在一些实施例中,经加密的深度学习模型可以由远程设备经由网络提供给可编程逻辑器件。例如,可以将经加密的深度学习模型提供给与FPGA112相关联的存储器。
FPGA 112可以耦合到主机处理器(例如,主机中央处理单元(CPU)106)。在某些实施例中,主机CPU 106可以将经加密的深度学习模型存储在与主机CPU 106相关联的存储器(例如,主机双倍数据速率(DDR)存储器)中。在一些实施例中,主机DDR存储器可以将经加密的深度学习模型104传送到与FPGA112相关联的存储器,例如,FPGA DDR存储器116。另外地或可替代地,主机CPU 106可以将经加密的深度学习模型104从远程设备传送到与FPGA112相关联的存储器,例如,FPGA DDR存储器116。在一些实施例中,经加密的深度学习模型104可以经由网络从远程设备部署。FPGADDR存储器116可以与FPGA 112分离,但使用DDR通信接口114通信地耦合到FPGA112,该DDR通信接口114根据例如PCIe总线标准促进FPGADDR存储器116与FPGA 112之间的通信。在从主机CPU 106接收到指示后,可以使用DDR通信接口114将经加密的深度学习模型104和模型加密密钥从FPGA DDR存储器116传送到FPGA 112。在一些实施例中,可以使用PCIe 108、110将深度学习模型104直接从主机CPU 106传送到FPGA112,而在主机DDR中进行或不进行临时存储。
在某些实施例中,FPGA DDR存储器116可以包括复用器,其确定应当对存储在FPGADDR存储器116中的哪些数据解密。例如,如果接收到对经加密的深度学习模型104解密的请求,则复用器可以识别和/或可以隔离包含经加密的深度学习模型104和/或用于要被解密的深度学习模型104的经加密的解密密钥的存储器部分。也就是说,复用器可以仅识别需要解密的数据,以避免对整个FPGA存储器DDR 116解密。在某些实施例中,模型加密密钥可以存储在FPGA112的密钥存储装置118中。例如,模型加密密钥可以是已经被生成以供在FPGA上使用的、对于FPGA唯一的许多密钥之一。在一些实施例中,FPGA在制造时被编程为包括加密密钥的集合。另外地或可替代地,DDR通信接口114可以包括识别FPGA存储器DDR 116中需要解密的数据的复用器。经加密的深度学习模型104可以被传送到FPGA 112的被编程为解密和/或实现深度学习模型架构的一部分。解密组件120可以使用存储在密钥存储装置118中的模型解密密钥来解密深度学习模型。同样,如果使用第二密钥对模型加密密钥进行加密,则存储在密钥存储装置118中的另一个解密密钥可以用于对模型加密密钥进行解密,然后可以将该解密密钥用于对深度学习模型解密。在一些实施例中,深度学习模型在未加密时可以存储在二进制代码执行代码中。可以将未加密形式的深度学习模型从解密组件120传输到深度学习加速器(DLA)122,以用于实现深度学习模型。
集成电路设备12可以是数据处理系统或数据处理系统中包括的组件。例如,集成电路设备12可以是图5所示的数据处理系统60的组件。数据处理系统60可以包括主机处理器62(例如,中央处理单元(CPU))、存储器和/或存储电路64以及网络接口66。数据处理系统60可以包括更多或更少组件(例如,电子显示器、用户接口结构、专用集成电路(ASIC))。主机处理器62可以包括可以管理针对数据处理系统60的数据处理请求(例如,执行加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航等)的任何适合的处理器,例如,处理器或精简指令处理器(例如,精简指令集计算机(RISC)、高级RISC机器(ARM)处理器)。存储器和/或存储电路64可以包括随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器、闪速存储器等。存储器和/或存储电路64可以保存要由数据处理系统60处理的数据。在一些情况下,存储器和/或存储电路64还可以存储用于对集成电路设备12进行编程的配置程序(比特流)。网络接口66可以允许数据处理系统60与其他电子设备通信。数据处理系统60可以包括几个不同的封装,或者可以被包含在单个封装基板上的单个封装内。
在一个示例中,数据处理系统60可以是处理各种不同请求的数据中心的一部分。例如,数据处理系统60可以经由网络接口66接收数据处理请求,以执行加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航、数字信号处理或某种其他专门任务。
因此,本文描述的技术使得能够在诸如FPGA之类的可编程逻辑器件上使用深度学习模型的加密和/或实现来执行特定应用。例如,将在FPGA(例如,FPGA 112)上实现的深度学习模型的加密保护了宝贵的DSP块26,从而增强了将诸如可编程逻辑器件(例如,FPGA)之类的集成电路设备用于人工智能应用的能力,同时仍然适用于数字信号处理应用。
尽管本公开中阐述的实施例涉及深度学习模型,但是应当理解,公开内容并不旨在限于这样的深度学习模型。公开内容将覆盖所有机器学习模型,例如,深度学习模型、神经网络、分类器、聚类分析、支持向量机以及任何其他适合的机器学习模型。尽管本公开中阐述的实施例可能易于实现各种修改和替代形式,但是已经在附图中通过示例的方式示出了具体的实施例,并且在本文中对其详细描述。然而,应当理解,公开内容不旨在限于所公开的特定形式。公开内容将覆盖落入由所附权利要求书限定的公开内容的精神和范围内的所有修改、等同方案和替代方案。
本文提出和要求保护的技术被引用并应用于具有实际性质的材料对象和具体示例,这些材料对象和具体示例可证明地改进了本技术领域,因此不是抽象的、无形的或纯理论上的。此外,如果本说明书所附的任何权利要求包含被指定为“用于[执行]……[功能]的单元”或“用于[执行]……[功能]的步骤”的一个或多个元素,则旨在此类元素应根据35U.S.C.112(f)进行解释。然而,对于包含以任何其他方式指定的元素的任何权利要求,旨在不应根据35U.S.C.112(f)解释这些元素。
Claims (20)
1.一种方法,包括:
在可编程逻辑器件处接收经加密的比特流的第一部分,所述第一部分包括针对经加密的深度学习模型的第一密钥,其中,所述比特流使用第二密钥被解密;
在所述可编程逻辑器件处使用所述第一密钥对所述深度学习模型进行解密;以及
在所述可编程逻辑器件上实现所述深度学习模型。
2.根据权利要求1所述的方法,包括:
将所述经加密的深度学习模型存储在与所述可编程逻辑器件相关联的存储器中;以及
从所述比特流中分离所述第一密钥。
3.根据权利要求1所述的方法,包括将所述第一密钥存储在所述可编程逻辑器件上。
4.根据权利要求1所述的方法,包括在所述可编程逻辑器件处对所述比特流进行解密。
5.根据权利要求1-4中任一项所述的方法,其中,所述比特流的第二部分包括针对所述可编程逻辑器件的电路设计。
6.根据权利要求1-4中任一项所述的方法,包括在所述可编程逻辑器件处接收所述比特流的第二部分,所述第二部分包括与实现所述深度学习模型相关联的机器可读指令。
7.根据权利要求1-4中任一项所述的方法,其中,所述深度学习模型包括与实现所述深度学习模型相关联的明文权重的集合。
8.根据权利要求1-4中任一项所述的方法,其中,所述经加密的深度学习模型包括二进制执行代码的集合,所述二进制执行代码的集合定义与所述深度学习模型相关联的计算调度。
9.根据权利要求1-4中任一项所述的方法,其中,所述比特流是现场可编程门阵列(FPGA)的配置比特流。
10.一种系统,包括:
可编程逻辑器件,包括:
通信接口,其被配置为接收经加密的深度学习模型、经加密的比特流中的第一解密密钥以及所述经加密的比特流中的电路设计;
存储块,其被配置为存储所述第一解密密钥;以及
解密块,其被配置为使用所述第一解密密钥对所述深度学习模型进行解密。
11.根据权利要求10所述的系统,其中,所述可编程逻辑器件被配置为实现所述深度学习模型。
12.根据权利要求10所述的系统,其中,所述可编程逻辑器件包括被配置为存储所述经加密的深度学习模型的双倍数据速率存储器。
13.根据权利要求10所述的系统,其中,所述电路设计与所述可编程逻辑器件的功能相关联。
14.根据权利要求10-13中任一项所述的系统,其中,所述解密块被配置为使用第二密钥对所述比特流进行解密。
15.根据权利要求10-13中任一项所述的系统,其中,所述第一密钥被加密。
16.根据权利要求10-13中任一项所述的系统,其中,所述可编程逻辑器件包括现场可编程门阵列(FPGA)。
17.一种非暂时性计算机可读介质,包括指令,所述指令在被执行时被配置为使处理器执行包括以下各项的操作:
在可编程逻辑器件处在经加密的比特流中接收与第一实体相关联的经加密的深度学习模型和与第二实体相关联的电路设计;
使用第一密钥对所述经加密的比特流进行解密,并且使用第二密钥对所述经加密的深度学习模型进行解密;以及
在所述可编程逻辑器件上实现所述深度学习模型。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述第一实体是所述深度学习模型的创建者或所有者。
19.一种系统,包括:
用于在可编程逻辑器件处接收经加密的比特流的第一部分的单元,所述第一部分包括针对经加密的深度学习模型的第一密钥,其中,所述比特流使用第二密钥被解密;
用于在所述可编程逻辑器件处使用所述第一密钥对所述深度学习模型进行解密的单元;以及
用于在所述可编程逻辑器件上实现所述深度学习模型的单元。
20.一种方法,包括:
在可编程逻辑器件处接收经加密的深度学习模型、经加密的配置比特流中的第一解密密钥以及所述经加密的配置比特流中的电路设计;
在所述可编程逻辑器件上存储所述第一解密密钥;以及
在所述可编程逻辑器件上使用所述第一解密密钥对所述深度学习模型进行解密。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/913,923 US20200327454A1 (en) | 2020-06-26 | 2020-06-26 | Secured deployment of machine learning models |
US16/913,923 | 2020-06-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113849826A true CN113849826A (zh) | 2021-12-28 |
Family
ID=72748119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011477094.3A Pending CN113849826A (zh) | 2020-06-26 | 2020-12-15 | 机器学习模型的受保护的部署 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200327454A1 (zh) |
CN (1) | CN113849826A (zh) |
DE (1) | DE102020131126A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061679A (zh) * | 2022-08-08 | 2022-09-16 | 杭州实在智能科技有限公司 | 离线rpa元素拾取方法及系统 |
CN115828287A (zh) * | 2023-01-10 | 2023-03-21 | 湖州丽天智能科技有限公司 | 一种模型加密方法、模型解密方法、计算机及集成芯片 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102268813B1 (ko) * | 2020-12-14 | 2021-06-25 | 주식회사 모빌린트 | 딥러닝 알고리즘을 위한 fpga 설계 방법 및 시스템 |
CN112883391B (zh) * | 2021-02-19 | 2022-10-14 | 广州橙行智动汽车科技有限公司 | 数据保护方法、装置以及电子设备 |
CN113190877B (zh) * | 2021-04-29 | 2022-10-04 | 网易(杭州)网络有限公司 | 一种模型加载方法、装置、可读存储介质及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100480787B1 (ko) * | 2001-11-27 | 2005-04-07 | 삼성전자주식회사 | 좌표 인터폴레이터의 키 값 데이터 부호화/복호화 방법 및 장치 |
KR102295661B1 (ko) * | 2013-12-15 | 2021-08-30 | 삼성전자주식회사 | 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기 |
CN111756754B (zh) * | 2017-07-28 | 2023-04-07 | 创新先进技术有限公司 | 一种训练模型的方法及装置 |
CN114741708A (zh) * | 2019-12-04 | 2022-07-12 | 杭州海康威视数字技术股份有限公司 | 一种模型数据的处理方法、装置及设备 |
US11423171B2 (en) * | 2019-12-23 | 2022-08-23 | Intel Corporation | Protection of privacy and data on smart edge devices |
-
2020
- 2020-06-26 US US16/913,923 patent/US20200327454A1/en active Pending
- 2020-11-25 DE DE102020131126.5A patent/DE102020131126A1/de active Pending
- 2020-12-15 CN CN202011477094.3A patent/CN113849826A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061679A (zh) * | 2022-08-08 | 2022-09-16 | 杭州实在智能科技有限公司 | 离线rpa元素拾取方法及系统 |
CN115061679B (zh) * | 2022-08-08 | 2022-11-11 | 杭州实在智能科技有限公司 | 离线rpa元素拾取方法及系统 |
CN115828287A (zh) * | 2023-01-10 | 2023-03-21 | 湖州丽天智能科技有限公司 | 一种模型加密方法、模型解密方法、计算机及集成芯片 |
CN115828287B (zh) * | 2023-01-10 | 2023-05-23 | 湖州丽天智能科技有限公司 | 一种模型加密方法、模型解密方法、计算机及集成芯片 |
Also Published As
Publication number | Publication date |
---|---|
US20200327454A1 (en) | 2020-10-15 |
DE102020131126A1 (de) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200327454A1 (en) | Secured deployment of machine learning models | |
KR102272117B1 (ko) | 블록체인 기반 데이터 프로세싱 방법 및 디바이스 | |
US11816253B2 (en) | Enabling secure communication via attestation of multi-tenant configuration on accelerator devices | |
JP7398438B2 (ja) | プログラマブルロジックデバイスのためのキープロビジョニングシステム及び方法 | |
US9111060B2 (en) | Partitioning designs to facilitate certification | |
US11562101B2 (en) | On-device bitstream validation | |
US9032343B1 (en) | Integrating multiple FPGA designs by merging configuration settings | |
EP3319265B1 (en) | Configuration based cryptographic key generation | |
US20150078550A1 (en) | Security processing unit with configurable access control | |
CN111670443A (zh) | 集成电路个性化 | |
US11582033B2 (en) | Cryptographic management of lifecycle states | |
EP3214613B1 (en) | Protecting the content of different ip cores in a system on chip using pufs | |
Fons et al. | A modular reconfigurable and updateable embedded cyber security hardware solution for automotive | |
CN112470158A (zh) | 用于可编程逻辑器件的故障表征系统和方法 | |
US20220337249A1 (en) | Chained command architecture for packet processing | |
US20230275758A1 (en) | Reprogrammable processing device root key architecture | |
US8646107B1 (en) | Implementing usage limited systems | |
EP2793149B1 (en) | Partitioning designs to facilitate certification | |
US11016733B2 (en) | Continuous carry-chain packing | |
US9483416B1 (en) | Secure processor operation using integrated circuit configuration circuitry | |
GB2622234A (en) | An apparatus, a method of operating an apparatus, and a non-transitory computer readable medium to store computer-readable code for fabrication | |
CN114721933A (zh) | 数字数据的基于硬件的混淆 | |
CN114491572A (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 |