CN111786955B - 用于保护模型的方法和装置 - Google Patents

用于保护模型的方法和装置 Download PDF

Info

Publication number
CN111786955B
CN111786955B CN202010504979.1A CN202010504979A CN111786955B CN 111786955 B CN111786955 B CN 111786955B CN 202010504979 A CN202010504979 A CN 202010504979A CN 111786955 B CN111786955 B CN 111786955B
Authority
CN
China
Prior art keywords
model
encrypted
key
encryption
data
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
CN202010504979.1A
Other languages
English (en)
Other versions
CN111786955A (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.)
Samsung Electronics China R&D Center
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics China R&D Center
Samsung Electronics Co Ltd
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 Samsung Electronics China R&D Center, Samsung Electronics Co Ltd filed Critical Samsung Electronics China R&D Center
Priority to CN202010504979.1A priority Critical patent/CN111786955B/zh
Publication of CN111786955A publication Critical patent/CN111786955A/zh
Application granted granted Critical
Publication of CN111786955B publication Critical patent/CN111786955B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的实施例公开了用于保护模型的方法。该方法的一具体实施方式包括:向加密服务器发送加密请求,其中,加密请求包括原始的模型;接收加密服务器返回的加密的模型,其中,加密的模型是由加密服务器通过与使用端协商的密钥对原始的模型进行加密得到的;将加密的模型发送到使用端。该实施方式在存储、传输、运行过程对模型提供全周期保护,极大提高了模型的安全性。

Description

用于保护模型的方法和装置
技术领域
本公开的实施例涉及计算机技术领域,具体涉及用于保护模型的方法和装置。
背景技术
目前主要的人工智能安全保护包括两个方面:对用户数据的保护,以及对人工智能模型的保护,保护用户数据的主要方法有差分隐私,对抗样本等,但是对人工智能模型的保护方法还很缺乏。
总结和分析安全计算解决方案的现状,发现目前的应用存在以下缺点:
(1)基于传统密码学的加密模型保护,很难保证模型运行时的安全,无法做到全周期保护。
(2)传统基于TEE((Trusted Execution Environment,可信执行环境)的模型保护方案,模型全部加载至TEE端,对于性能一般的设备终端,运行速度会受到限制,离大规模的商用还有很长的路要走。
发明内容
本公开的实施例提出了用于保护模型的方法和装置。
第一方面,本公开的实施例提供了一种用于保护模型的方法,应用于发布端,包括:向加密服务器发送加密请求,其中,加密请求包括原始的模型;接收加密服务器返回的加密的模型,其中,加密的模型是由加密服务器通过与使用端协商的密钥对原始的模型进行加密得到的;将加密的模型发送到使用端。
在一些实施例中,加密请求还包括拆分规则;以及接收加密服务器返回的加密的模型,包括:接收加密服务器返回的模型的加密部分和未加密部分,其中,加密服务器根据拆分规则对原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据,将拆分层的模型结构进行加密得到加密结构,将拆分层的模型数据进行加扰得到加扰数据,将加密结构和加扰数据组成加密部分,将剩余的模型结构和剩余的模型数据组成未加密部分。
在一些实施例中,将加密的模型发送到使用端,包括:向使用端发送加密部分和未加密部分,以使得使用端将加密部分部署到可信执行环境,将未加密部分部署到普通执行环境。
第二方面,本公开的实施例提供了一种用于保护模型的方法,应用于加密服务器,包括:接收发布端发送的加密请求,其中,加密请求包括原始的模型;使用模型密钥对原始的模型进行加密得到加密的模型;将加密的模型打包后发送给发布端;响应于接收到使用端的密钥获取请求,将密钥发送给使用端。
在一些实施例中,加密请求还包括拆分规则;以及使用模型密钥对原始的模型进行加密得到加密的模型,包括:根据拆分规则对原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据;将拆分层的模型结构进行加密得到加密结构;将拆分层的模型数据进行加扰数据;将加密结构和加扰数据组成加密部分;将剩余的模型结构和剩余的模型数据组成未加密部分
在一些实施例中,将密钥发送给使用端,包括:与使用端之间进行相互认证;与使用端进行密钥协商得到会话密钥;将模型密钥用会话密钥加密后发送给使用端。
在一些实施例中,该方法还包括:定时更新模型密钥。
第三方面,本公开的实施例提供了一种用于保护模型的方法,应用于使用端,包括:响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求;接收加密服务器返回的密钥;使用密钥对加密的模型进行解密,得到原始的模型。
在一些实施例中,接收加密服务器返回的密钥,包括:与加密服务器之间进行相互认证;与加密服务器进行密钥协商得到会话密钥;使用会话密钥对加密服务器返回的密钥解密后得到模型密钥。
在一些实施例中,加密的模型包括加密部分和未加密部分;以及该方法还包括:将加密部分部署到可信执行环境;将未加密部分部署到普通执行环境。
在一些实施例中,该装置还包括运算单元,被配置成:响应于接收到运算请求,在普通执行环境基于未加密部分的拆分层之前的模型结构和模型数据进行运算得到第一中间结果,将第一中间结果传递给可信执行环境;在可信执行环境中对加密部分的模型结构进行解密,得到解密的模型结构,对加密部分的模型数据进行解扰得到解扰的模型数据;在可信执行环境中基于解密出的模型结构和解扰的模型数据对第一中间结果进行运算得到第二中间结果,将第二中间结果传递给普通执行环境;
在普通执行环境使用未加密部分的拆分层之后的模型结构和模型数据对第二中间结果进行运算,得到最终结果。
第四方面,本公开的实施例提供了一种用于保护模型的装置,应用于发布端,包括:加密请求单元,被配置成向加密服务器发送加密请求,其中,加密请求包括原始的模型;接收单元,被配置成接收加密服务器返回的加密的模型,其中,加密的模型是由加密服务器通过与使用端协商的密钥对原始的模型进行加密得到的;发布单元,被配置成将加密的模型发送到使用端。
在一些实施例中,加密请求还包括拆分规则;以及接收单元进一步被配置成:接收加密服务器返回的模型的加密部分和未加密部分,其中,加密服务器根据拆分规则对原始的模型进行拆分后,将拆分出的模型结构进行加密得到加密部分,将模型的模型数据加扰后和剩余的模型结构组成未加密部分。
在一些实施例中,发布单元进一步被配置成:向使用端发送加密部分和未加密部分,以使得使用端将加密部分部署到可信执行环境,将未加密部分部署到普通执行环境。
第五方面,本公开的实施例提供了一种用于保护模型的装置,应用于加密服务器,包括:接收单元,被配置成接收发布端发送的加密请求,其中,加密请求包括原始的模型;加密单元,被配置成使用模型密钥对原始的模型进行加密得到加密的模型;发送单元,被配置成将加密的模型打包后发送给发布端;协商单元,被配置成响应于接收到使用端的密钥获取请求,将密钥发送给使用端。
在一些实施例中,加密请求还包括拆分规则;以及加密单元进一步被配置成:根据拆分规则对原始的模型进行拆分,得到拆分出的模型结构和剩余的模型结构;将拆分出的模型结构进行加密得到加密部分;将模型的模型数据加扰;将加扰后的模型数据和剩余的模型结构组成未加密部分。
在一些实施例中,协商单元进一步被配置成:与使用端之间进行相互认证;与使用端进行密钥协商得到会话密钥;将模型密钥用会话密钥加密后发送给使用端。
在一些实施例中,装置还包括更新单元,被配置成:定时更新模型密钥。
第六方面,本公开的实施例提供了一种用于保护模型的装置,应用于使用端,包括:模型接收单元,被配置成响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求;密钥获取单元,被配置成接收加密服务器返回的密钥;解密单元,被配置成使用密钥对加密的模型进行解密,得到原始的模型。
在一些实施例中,密钥获取单元进一步被配置成:与加密服务器之间进行相互认证;与加密服务器进行密钥协商得到会话密钥;使用会话密钥对加密服务器返回的密钥解密后得到模型密钥。
在一些实施例中,加密的模型包括加密部分和未加密部分;以及该装置还包括部署单元,被配置成:将加密部分部署到可信执行环境;将未加密部分部署到普通执行环境。
第七方面,本公开的实施例提供了一种用于保护模型的系统,包括:发布端,被配置成执行第一方面中任一项的方法;加密服务器,被配置成执行第二方面中任一项的方法;使用端,被配置成执行第三方面中任一项的方法。
第八方面,本公开的实施例提供了一种用于保护模型的电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面至第三方面中任一的方法。
第九方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面至第三方面中任一的方法。
本申请的有益效果包括:
(1)使用基于TEE的人工智能模型保护框架,对模型存储、传输、运行整个生命周期进行保护。
(2)在确保模型安全的前提下,根据模型拆分配置规则,将某一层网络或者某种算法部署到TEE运行,模型使用端无法获取全部模型结构和模型数据,在保护模型运行安全的同时,提高模型执行效率。
(3)安全密钥协议通过安全密钥协商协议以及定时检测密钥更新机制,支持模型进行重新加密,进一步提高模型的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的用于保护模型的方法应用于发布端的一个实施例的流程图;
图3是根据本公开的用于保护模型的方法应用于加密服务器的一个实施例的流程图;
图4是根据本公开的用于保护模型的方法应用于加密服务器的一个应用场景的示意图;
图5是根据本公开的用于保护模型的方法的密钥协商的流程图;
图6是根据本公开的用于保护模型的方法应用于使用端的一个实施例的流程图;
图7是根据本公开的用于保护模型的方法应用于使用端的一个应用场景的示意图;
图8是根据本公开的用于保护模型的装置应用于发布端的一个实施例的结构示意图;
图9是根据本公开的用于保护模型的装置应用于加密服务器的一个实施例的结构示意图;
图10是根据本公开的用于保护模型的装置应用于使用端的一个实施例的结构示意图;
图11是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的用于保护模型的方法或用于保护模型的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括发布端101、加密服务器102、使用端103。发布端101代表模型开发者。使用端代表模型使用方,例如某些APP开发商。加密服务器代表第三方可信服务提供商。
本申请的具体流程如下所示:
(1)模型开发者Model Developer(简称MD)和模型加密服务方Model EncryptionServer(简称MES)相互认证,建立安全传输通道,登陆MES客户端;
(2)MD上传模型到MES,MES通过HSM提供的加密密钥对模型进行加密、打包处理,MES支持多种平台模型(比如TF-Lite,Caffe,etc)打包成专有加密格式。MES将加密后的模型打包发送给MD。硬件安全模块(HSM,hardware security module)是专为保护加密密钥生命周期而设计的专用加密处理器。硬件安全模块通过在强化且防篡改的设备中安全地管理、处理和保存加密密钥,已成为信任链的起点,为世界上具有最高安全意识的组织保护其加密基础设施。
(3)MD获取加密后的模型,部署到终端设备(比如电视、手机等)、边缘计算节点或云端。
(4)模型使用方Model Consumer(简称MC)通过安全密钥协议获取模型加密密钥,安全密钥协议可以基于RSA/DSA(数字签名算法)公钥认证算法进行密钥协商或基于DHE(加密协议连接)/ECDHE算法进行密钥协商,对加密模型密钥进行传输保护,将模型加密密钥保存到TEE中,并在TEE中进行解密使用。
(5)模型加密密钥更新后,模型需要重新加密。
(6)MC加载加密的模型,根据模型拆分规则,对于性能较低的终端设备,将部分模型结构、模型数据部署至TEE运行,对于性能高的边缘计算节点或云端,将全部模型结构、模型数据部署至TEE运行。
(7)MC获取模型输出结果,由于模型结构和模型数据在TEE中进行计算,外界无法获取全部模型结构和模型数据。
需要说明的是,本公开的实施例所提供的用于保护模型的方法可以由发布端101、加密服务器102、使用端103联合执行。相应地,用于保护模型的装置可以设置于发布端101、加密服务器102、使用端103中。在此不做具体限定。
应该理解,图1中的发布端、加密服务器、使用端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的发布端、加密服务器、使用端。
继续参考图2,示出了根据本公开的用于保护模型的方法应于于发布端的一个实施例的流程200。该用于保护模型的方法,包括以下步骤:
步骤201,向加密服务器发送加密请求。
在本实施例中,用于保护模型的方法的执行主体(例如图1所示的发布端)可以通过有线连接方式或者无线连接方式向加密服务器发送加密请求。其中,加密请求包括原始的模型。模型包括模型结构和模型数据。模型结构指的是模型有哪些层,每层的操作。模型数据指的是神经元之间的权重。
在本实施例的一些可选的实现方式中,加密请求还包括拆分规则。拆分规则用于告知加密服务器将模型结构中的哪层拆分出来作为拆分层,例如,拆出倒数第二层。拆分层包括至少一层模型结构。用户可通过发布端提供的网页界面选择拆分哪层,默认为不拆分。还可选择同时支持不拆分和拆分两种加密方式,这样可获得两种加密的模型,适应于不同的使用端。发布端可获取使用端的性能信息(CPU占用率、GPU占用率、TEE使用情况等),根据性能信息选择是否进行拆分。如果使用端的性能良好,则可不进行拆分,直接将整个模型加密后部署在TEE中。如果使用端的性能不足以支持整个模型加密后部署在TEE中,则发布端可计算出最适合的拆分层使得使用端的TEE的利用率达到最高。
步骤202,接收加密服务器返回的加密的模型。
在本实施例中,经过步骤201后,加密服务器通过与使用端协商的密钥对原始的模型进行加密得到加密的模型,将该加密的模型返回给发布端。
在本实施例的一些可选的实现方式中,对于发布端指定了拆分规则的情况,加密服务器返回的模型包括加密部分和未加密部分。具体可参考加密服务器的加密流程300。
步骤203,将加密的模型发送到使用端。
在本实施例中,这就是模型的发布过程,只不过发布的是加密的模型。使用端不能直接使用该模型,需要从加密服务器获得密钥后,进行解密才能使用。
在本实施例的一些可选的实现方式中,向使用端发送加密部分和未加密部分,以使得使用端将加密部分部署到可信执行环境(REE,Rich Execution Enviroment),将未加密部分部署到普通执行环境。
继续参考图3,示出了根据本公开的用于保护模型的方法应用于加密服务器的一个实施例的流程300。该用于保护模型的方法,包括以下步骤:
步骤301,接收发布端发送的加密请求。
在本实施例中,该步骤对应于步骤201,加密服务器接收的都是发布端发送的内容。加密请求包括原始的模型。还可包括拆分规则。
步骤302,使用模型密钥对原始的模型进行加密得到加密的模型。
在本实施例中,可预先设置模型密钥,然后使用模型密钥对原始的模型进行加密得到加密的模型。
在本实施例的一些可选的实现方式中,加密请求还包括拆分规则;以及使用模型密钥对原始的模型进行加密得到加密的模型,包括:根据拆分规则对原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据;将拆分层的模型结构进行加密得到加密结构;将拆分层的模型数据进行加扰数据;将加密结构和加扰数据组成加密部分;将剩余的模型结构和剩余的模型数据组成未加密部分。
具体过程如图4所示,加密服务器可根据模型的格式解析出模型结构和模型数据两部分。对于模型数据部分,将拆分规则指定的拆分层的模型数据拆分出来,并进行加扰,可通过异或等混淆算法进行加扰。对于模型结构部分,将拆分规则指定的拆分层的模型结构拆分出来,并通过HSM进行加密。将加密结构和加扰数据组成加密部分;将剩余的模型结构和剩余的模型数据组成未加密部分。
步骤303,将加密的模型打包后发送给发布端。
在本实施例中,打包过程是将不同平台的模型打包成专有加密模型格式,比如主流模型TF-Lite,Caffe等。
步骤304,响应于接收到使用端的密钥获取请求,将密钥发送给使用端。
在本实施例中,这里的密钥可以是模型密钥,也可以是通过协商后的密钥对模型密钥加密后的密钥。
在本实施例的一些可选的实现方式中,将密钥发送给使用端,包括:与使用端之间进行相互认证;与使用端进行密钥协商得到会话密钥;将模型密钥用会话密钥加密后发送给使用端。具体过程如图5所示。可通过现有技术实现双方相互认证,建立安全传输通道。然后基于RSA/DSA公钥认证算法进行密钥协商或基于DHE/ECDHE算法进行密钥协商。用协商得到的会话密钥对模型密钥加密。使用端是已知该会话密钥的,因此接收到被加密的模型密钥后可以解密出模型密钥。
在本实施例的一些可选的实现方式中,该方法还包括定时更新模型密钥。由于加密服务器采用新的模型密钥进行加密,使用端使用旧的模型密钥解不出来。使用端会重新发密钥获取请求,重新进行认证、协商,得到新的会话密钥,以及用新的会话密钥加密后的模型密钥。
继续参考图6,示出了根据本公开的用于保护模型的方法应用于使用端的一个实施例的流程600。该用于保护模型的方法,包括以下步骤:
步骤601,响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求。
在本实施例中,由于发布端发送的模型是加密后的,因此需要密钥解密。要从加密服务器获取动态的密钥。通过向加密服务器发送密钥获取请求,请求加密服务器把用于该模型加密的密钥发送给使用端。可选地,如果加密服务器对不同模型使用不同的密钥,则密钥获取请求还应包括模型ID,以获得相应模型ID对应的模型密钥。
步骤602,接收加密服务器返回的密钥。
在本实施例中,加密服务器可直接发送模型密钥,也可发送经加密后的模型密钥。通过上文所述的密钥协商过程得到会话密钥。使用会话密钥对加密服务器返回的密钥解密后得到模型密钥。
步骤603,使用密钥对加密的模型进行解密,得到原始的模型。
在本实施例中,与加密方法相对应的方法解密,就得到了未加密的原始模型。可选地,如果加密服务器对模型进行过拆分,则使用端需要使用相应的方法解密。具体过程如下:
步骤6031,对加密的模型进行解析,得到加密部分和未加密部分。
加密服务器在拆分加密后会给加密部分和未加密部分分别打上标签。使用端解析收到解密数据,就能根据标签确定出哪些数据是加密部分和哪些数据是未加密部分。
步骤6032,将加密部分部署到可信执行环境。
如图7所示,可将加密部分部署到TEE中。
步骤6033,将未加密部分部署到普通执行环境。
如图7所示,可将未加密部分部署到REE中。
在使用该模型时,在普通执行环境基于未加密部分的拆分层之前的模型结构和模型数据进行运算得到第一中间结果,将第一中间结果传递给可信执行环境;在可信执行环境中对加密部分的模型结构进行解密,得到解密的模型结构,对加密部分的模型数据进行解扰得到解扰的模型数据;在可信执行环境中基于解密出的模型结构和解扰的模型数据对第一中间结果进行运算得到第二中间结果,将第二中间结果传递给普通执行环境;在普通执行环境使用未加密部分的拆分层之后的模型结构和模型数据对第二中间结果进行运算,得到最终结果。
本申请提供的用于保护模型的方法、装置和系统,能够在存储、传输、运行过程对模型提供全周期保护,极大提高了模型的安全性;且该方法、装置和系统支持模型部分或者全部拆分到TEE运行,以满足各种性能设备需求,更加灵活方便。
进一步参考图8,作为对上述各图所示方法的实现,本公开提供了一种用于保护模型的装置应用于发布端的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例的用于保护模型的装置800包括:加密请求单元801、接收单元802和发布单元803。其中,加密请求单元801,被配置成向加密服务器发送加密请求,其中,加密请求包括原始的模型;接收单元802,被配置成接收加密服务器返回的加密的模型,其中,加密的模型是由加密服务器通过与使用端协商的密钥对原始的模型进行加密得到的;发布单元803,被配置成将加密的模型发送到使用端。
在本实施例中,用于保护模型的装置800的加密请求单元801、接收单元802和发布单元803的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203。
在本实施例的一些可选的实现方式中,加密请求还包括拆分规则;以及接收单元802进一步被配置成:接收加密服务器返回的模型的加密部分和未加密部分,其中,加密服务器根据拆分规则对原始的模型进行拆分后,将拆分出的模型结构进行加密得到加密部分,将模型的模型数据加扰后和剩余的模型结构组成未加密部分。
在一些实施例中,发布单元803进一步被配置成:向使用端发送加密部分和未加密部分,以使得使用端将加密部分部署到可信执行环境,将未加密部分部署到普通执行环境。
进一步参考图9,作为对上述各图所示方法的实现,本公开提供了一种用于保护模型的装置应用于加密服务器的一个实施例,该装置实施例与图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图9所示,本实施例的用于保护模型的装置900包括:接收单元901、加密单元902、发送单元903、和协商单元904。其中,接收单元901,被配置成接收发布端发送的加密请求,其中,加密请求包括原始的模型;加密单元902,被配置成使用模型密钥对原始的模型进行加密得到加密的模型;发送单元903,被配置成将加密的模型打包后发送给发布端;协商单元904,被配置成响应于接收到使用端的密钥获取请求,将密钥发送给使用端。
在本实施例中,用于保护模型的装置900的接收单元901、加密单元902、发送单元903、和协商单元904的具体处理可以参考图3对应实施例中的步骤301、步骤302、步骤303、步骤304。
在本实施例的一些可选的实现方式中,加密请求还包括拆分规则;以及加密单元902进一步被配置成:根据拆分规则对原始的模型进行拆分,得到拆分出的模型结构和剩余的模型结构;将拆分出的模型结构进行加密得到加密部分;将模型的模型数据加扰;将加扰后的模型数据和剩余的模型结构组成未加密部分。
在本实施例的一些可选的实现方式中,协商单元904进一步被配置成:与使用端之间进行相互认证;与使用端进行密钥协商得到会话密钥;将模型密钥用会话密钥加密后发送给使用端。
在本实施例的一些可选的实现方式中,装置900还包括更新单元(附图中未示出),被配置成:定时更新模型密钥。
进一步参考图10,作为对上述各图所示方法的实现,本公开提供了一种用于保护模型的装置应用于使用端的一个实施例,该装置实施例与图6所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图10所示,本实施例的用于保护模型的装置1000包括:模型接收单元1001、密钥获取单元1002、解密单元1003。其中,模型接收单元1001,被配置成响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求;密钥获取单元1002,被配置成接收加密服务器返回的密钥;解密单元1003,被配置成使用密钥对加密的模型进行解密,得到原始的模型。
在本实施例中,用于保护模型的装置1000的模型接收单元1001、密钥获取单元1002、解密单元1003的具体处理可以参考图6对应实施例中的步骤601、步骤602、步骤603。
在本实施例的一些可选的实现方式中,密钥获取单元1002进一步被配置成:与加密服务器之间进行相互认证;与加密服务器进行密钥协商得到会话密钥;使用会话密钥对加密服务器返回的密钥解密后得到模型密钥。
在本实施例的一些可选的实现方式中,加密的模型包括加密部分和未加密部分;以及该装置还包括部署单元(附图中未示出),被配置成:将加密部分部署到可信执行环境;将未加密部分部署到普通执行环境。
下面参考图11,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的发布端、加密服务器或使用端)1100的结构示意图。图11示出的发布端、加密服务器或使用端仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100可以包括处理装置(例如中央处理器、图形处理器等)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储装置1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有电子设备1100操作所需的各种程序和数据。处理装置1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
通常,以下装置可以连接至I/O接口1105:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1106;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1107;包括例如磁带、硬盘等的存储装置1108;以及通信装置1109。通信装置1109可以允许电子设备1100与其他设备进行无线或有线通信以交换数据。虽然图11示出了具有各种装置的电子设备1100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图11中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1109从网络上被下载和安装,或者从存储装置1108被安装,或者从ROM 1102被安装。在该计算机程序被处理装置1101执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:向加密服务器发送加密请求,其中,加密请求包括原始的模型;接收加密服务器返回的加密的模型,其中,加密的模型是由加密服务器通过与使用端协商的密钥对原始的模型进行加密得到的;将加密的模型发送到使用端。或者使得该电子设备:接收发布端发送的加密请求,其中,加密请求包括原始的模型;使用模型密钥对原始的模型进行加密得到加密的模型;将加密的模型打包后发送给发布端;响应于接收到使用端的密钥获取请求,将密钥发送给使用端。或者使得该电子设备:响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求;接收加密服务器返回的密钥;使用密钥对加密的模型进行解密,得到原始的模型。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括加密请求单元、接收单元、发布单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,加密请求单元还可以被描述为“向加密服务器发送加密请求的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (13)

1.一种用于保护模型的方法,应用于发布端,包括:
向加密服务器发送加密请求,其中,所述加密请求包括原始的模型;
接收所述加密服务器返回的加密的模型,其中,所述加密的模型是由所述加密服务器通过与使用端协商的密钥对所述原始的模型进行加密得到的;
将所述加密的模型发送到使用端;
其中,所述加密请求还包括拆分规则;以及
所述接收所述加密服务器返回的加密的模型,包括:
接收所述加密服务器返回的模型的加密部分和未加密部分,其中,所述加密服务器根据所述拆分规则对所述原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据,将拆分层的模型结构进行加密得到加密结构,将拆分层的模型数据进行加扰得到加扰数据,将所述加密结构和所述加扰数据组成加密部分,将剩余的模型结构和剩余的模型数据组成未加密部分。
2.根据权利要求1所述的方法,其中,所述将所述加密的模型发送到使用端,包括:
向使用端发送所述加密部分和所述未加密部分,以使得所述使用端将所述加密部分部署到可信执行环境,将所述未加密部分部署到普通执行环境。
3.一种用于保护模型的方法,应用于加密服务器,包括:
接收发布端发送的加密请求,其中,所述加密请求包括原始的模型;
使用模型密钥对所述原始的模型进行加密得到加密的模型;
将所述加密的模型打包后发送给所述发布端;
响应于接收到使用端的密钥获取请求,将所述密钥发送给所述使用端;
其中,所述加密请求还包括拆分规则;以及
所述使用模型密钥对所述原始的模型进行加密得到加密的模型,包括:
根据所述拆分规则对所述原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据;
将所述拆分层的模型结构进行加密得到加密结构;
将所述拆分层的模型数据进行加扰数据;
将所述加密结构和所述加扰数据组成加密部分;
将剩余的模型结构和剩余的模型数据组成未加密部分。
4.根据权利要求3所述的方法,所述将所述密钥发送给所述使用端,包括:
与所述使用端之间进行相互认证;
与所述使用端进行密钥协商得到会话密钥;
将所述模型密钥用所述会话密钥加密后发送给所述使用端。
5.根据权利要求3或4所述的方法,所述方法还包括:
定时更新模型密钥。
6.一种用于保护模型的方法,应用于使用端,包括:
响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求;
接收所述加密服务器返回的密钥;
使用所述密钥对所述加密的模型进行解密,得到原始的模型;
对所述加密的模型进行解析,得到加密部分和未加密部分;
将所述加密部分部署到可信执行环境;
将所述未加密部分部署到普通执行环境;
响应于接收到运算请求,在所述普通执行环境基于所述未加密部分的拆分层之前的模型结构和模型数据进行运算得到第一中间结果,将所述第一中间结果传递给可信执行环境;
在所述可信执行环境中对所述加密部分的模型结构进行解密,得到解密的模型结构,对所述加密部分的模型数据进行解扰得到解扰的模型数据;
在所述可信执行环境中基于解密出的模型结构和解扰的模型数据对所述第一中间结果进行运算得到第二中间结果,将所述第二中间结果传递给普通执行环境;
在所述普通执行环境使用所述未加密部分的拆分层之后的模型结构和模型数据对所述第二中间结果进行运算,得到最终结果。
7.根据权利要求6所述的方法,其中,所述接收所述加密服务器返回的密钥,包括:
与所述加密服务器之间进行相互认证;
与所述加密服务器进行密钥协商得到会话密钥;
使用所述会话密钥对所述加密服务器返回的密钥解密后得到模型密钥。
8.一种用于保护模型的装置,应用于发布端,包括:
加密请求单元,被配置成向加密服务器发送加密请求,其中,所述加密请求包括原始的模型;
接收单元,被配置成接收所述加密服务器返回的加密的模型,其中,所述加密的模型是由所述加密服务器通过与使用端协商的密钥对所述原始的模型进行加密得到的;
发布单元,被配置成将所述加密的模型发送到使用端;
其中,所述加密请求还包括拆分规则;以及
所述接收单元进一步被配置成:
接收所述加密服务器返回的模型的加密部分和未加密部分,其中,所述加密服务器根据所述拆分规则对所述原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据,将拆分层的模型结构进行加密得到加密结构,将拆分层的模型数据进行加扰得到加扰数据,将所述加密结构和所述加扰数据组成加密部分,将剩余的模型结构和剩余的模型数据组成未加密部分。
9.一种用于保护模型的装置,应用于加密服务器,包括:
接收单元,被配置成接收发布端发送的加密请求,其中,所述加密请求包括原始的模型;
加密单元,被配置成使用模型密钥对所述原始的模型进行加密得到加密的模型;
发送单元,被配置成将所述加密的模型打包后发送给所述发布端;
协商单元,被配置成响应于接收到使用端的密钥获取请求,将所述密钥发送给所述使用端;
其中,所述加密请求还包括拆分规则;以及
所述加密单元进一步被配置成:
根据所述拆分规则对所述原始的模型进行拆分,得到拆分层的模型结构和模型数据、剩余的模型结构和模型数据;
将所述拆分层的模型结构进行加密得到加密结构;
将所述拆分层的模型数据进行加扰数据;
将所述加密结构和所述加扰数据组成加密部分;
将剩余的模型结构和剩余的模型数据组成未加密部分。
10.一种用于保护模型的装置,应用于使用端,包括:
模型接收单元,被配置成响应于接收到发布端发送的加密的模型,向加密服务器发送密钥获取请求;
密钥获取单元,被配置成接收所述加密服务器返回的密钥;
解密单元,被配置成使用所述密钥对所述加密的模型进行解密,得到原始的模型;
部署单元,被配置成:对所述加密的模型进行解析,得到加密部分和未加密部分;将所述加密部分部署到可信执行环境;将所述未加密部分部署到普通执行环境;响应于接收到运算请求,在所述普通执行环境基于所述未加密部分的拆分层之前的模型结构和模型数据进行运算得到第一中间结果,将所述第一中间结果传递给可信执行环境;在所述可信执行环境中对所述加密部分的模型结构进行解密,得到解密的模型结构,对所述加密部分的模型数据进行解扰得到解扰的模型数据;在所述可信执行环境中基于解密出的模型结构和解扰的模型数据对所述第一中间结果进行运算得到第二中间结果,将所述第二中间结果传递给普通执行环境;在所述普通执行环境使用所述未加密部分的拆分层之后的模型结构和模型数据对所述第二中间结果进行运算,得到最终结果。
11.一种用于保护模型的系统,包括:
发布端,被配置成执行权利要求1或2所述的方法;
加密服务器,被配置成执行权利要求3-5中任一项所述的方法;
使用端,被配置成执行权利要求6或7所述的方法。
12.一种用于保护模型的电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202010504979.1A 2020-06-05 2020-06-05 用于保护模型的方法和装置 Active CN111786955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010504979.1A CN111786955B (zh) 2020-06-05 2020-06-05 用于保护模型的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010504979.1A CN111786955B (zh) 2020-06-05 2020-06-05 用于保护模型的方法和装置

Publications (2)

Publication Number Publication Date
CN111786955A CN111786955A (zh) 2020-10-16
CN111786955B true CN111786955B (zh) 2023-04-18

Family

ID=72754024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010504979.1A Active CN111786955B (zh) 2020-06-05 2020-06-05 用于保护模型的方法和装置

Country Status (1)

Country Link
CN (1) CN111786955B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112580821A (zh) * 2020-12-10 2021-03-30 深圳前海微众银行股份有限公司 一种联邦学习方法、装置、设备及存储介质
CN114091653B (zh) * 2021-11-06 2024-07-16 支付宝(杭州)信息技术有限公司 模型的运行方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107086910B (zh) * 2017-03-24 2018-08-10 中国科学院计算技术研究所 一种针对神经网络处理的权重加解密方法和系统
CN108090366B (zh) * 2017-12-05 2020-02-04 深圳云天励飞技术有限公司 数据保护方法及装置、计算机装置及可读存储介质
CN109040091A (zh) * 2018-08-17 2018-12-18 中科物栖(北京)科技有限责任公司 深度神经网络模型的加密方法及装置
CN110278078B (zh) * 2019-06-17 2022-03-22 矩阵元技术(深圳)有限公司 一种数据处理方法、装置及系统

Also Published As

Publication number Publication date
CN111786955A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN102546607B (zh) 在云上提供安全服务
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
CN112913189B (zh) 一种ota升级方法及装置
US20170310479A1 (en) Key Replacement Direction Control System and Key Replacement Direction Control Method
CN111327605B (zh) 传输私密信息的方法、终端、服务器和系统
CN113742709B (zh) 信息的处理方法、装置、可读介质和电子设备
CN117061105A (zh) 数据处理方法、装置、可读介质及电子设备
CN111786955B (zh) 用于保护模型的方法和装置
CN111030827A (zh) 信息交互方法、装置、电子设备、及存储介质
US20230376941A1 (en) Methods, Devices, and Systems for Creating and Managing Web3 App Credentials
CN112329044A (zh) 信息获取方法、装置、电子设备和计算机可读介质
CN116633582A (zh) 安全通信方法、装置、电子设备及存储介质
CN116244750A (zh) 一种涉密信息维护方法、装置、设备及存储介质
CN116781292A (zh) 一种数据处理方法、装置、设备以及可读存储介质
CN117560150A (zh) 密钥确定方法、装置、电子设备和计算机可读存储介质
CN117555946A (zh) 一种数据查询方法、装置、计算机设备和存储介质
CN113282951A (zh) 一种应用程序的安全校验方法、装置及设备
CN115296807B (zh) 用于预防工控网络病毒的密钥生成方法、装置、设备
CN113810779B (zh) 码流验签方法、装置、电子设备和计算机可读介质
KR101701625B1 (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
CN114398658A (zh) 数据处理方法及设备
CN113961931A (zh) adb工具使用方法、装置和电子设备
CN110166226B (zh) 一种生成秘钥的方法和装置
WO2021102023A1 (en) Transmission of secure information in a content distribution network
CN115378743B (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
GR01 Patent grant
GR01 Patent grant