CN113672955A - 一种数据处理方法、系统及装置 - Google Patents
一种数据处理方法、系统及装置 Download PDFInfo
- Publication number
- CN113672955A CN113672955A CN202110958422.XA CN202110958422A CN113672955A CN 113672955 A CN113672955 A CN 113672955A CN 202110958422 A CN202110958422 A CN 202110958422A CN 113672955 A CN113672955 A CN 113672955A
- Authority
- CN
- China
- Prior art keywords
- parameter
- ciphertext
- model
- tee
- file
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 102
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012821 model calculation Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本说明书实施例提供一种数据处理方法、系统及装置,终端设备设置TEE和REE,TEE存储有目标模型的运行文件,运行文件用于执行目标模型的模型算法;REE中存储有目标模型运行所需的参数密文集合,方法包括:在TEE中,针对运行文件中当前待执行的模型算法部分,从REE中读取参数密文集合的至少一部分密文;在TEE中,利用所存储的第一密钥,解密至少一部分密文,得到对应的参数明文,基于参数明文运行模型算法部分。
Description
技术领域
本说明书涉及数据安全技术领域,尤其涉及一种数据处理方法、系统及装置。
背景技术
模型运算服务供应方向其客户提供模型运算服务的过程中,对其向客户所提供模型的保护至关重要。
模型运算服务供应方向其客户提供模型运算服务的过程中,一般是对下发的业务模型加密传输至客户的终端设备,以保证业务模型在数据传输过程中安全。但是业务模型传输至终端设备之后,终端设备需要对业务模型解密后运行,解密后的业务模型在终端设备上运行的过程中,也易出现被窃取的问题。
那么,如何实现对业务模型在终端设备上运行的过程中的有效保护成为亟待解决的问题。
发明内容
本说明书一个或多个实施例提供了一种数据处理方法、系统及装置,以实现提高对模型的有效保护。
根据第一方面,提供一种数据处理方法,应用于终端设备,所述终端设备设置可信执行环境TEE和通用执行环境REE,所述TEE存储有目标模型的运行文件,所述运行文件用于执行所述目标模型的模型算法;所述REE中存储有所述目标模型运行所需的参数密文集合,所述方法包括:
在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文;
在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分。
在一种可实施方式中,所述模型算法包括用于进行模型运算的若干算子;
所述在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文,包括:
在所述TEE中,针对所述若干算子中当前待执行的第一算子,确定所述参数密文集合中所述第一算子对应的第一参数密文,并从所述REE中读取所述第一参数密文;
所述在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分,包括:
在所述TEE中,利用所述第一密钥,解密所述第一参数密文,得到第一参数明文;基于所述第一参数明文运行所述第一算子。
在一种可实施方式中,所述TEE还存储有所述目标模型对应的索引表,所述索引表用于记录各算子对应的参数密文信息;
确定所述参数密文集合中所述第一算子对应的第一参数密文,并从所述REE中读取所述第一参数密文,具体包括:
从所述索引表中,检索出所述第一算子对应的第一参数密文在所述参数密文集合中的第一位置信息;
基于所述第一位置信息,从所述REE中存储所述参数密文集合的存储区域中,读取所述第一参数密文。
在一种可实施方式中,所述第一位置信息包括:所述第一参数密文的长度及其在所述参数密文集合中的偏移量。
在一种可实施方式中,所述各算子对应的参数密文信息还包括:各算子所需参数对应的张量个数总和,各张量的张量名以及张量名长度。
在一种可实施方式中,还包括:
在所述REE中,获得模型存储服务器发送的所述目标模型的运行文件密文、索引表密文以及所述参数密文集合;
在所述REE中,存储所述参数密文集合,并将所述运行文件密文、索引表密文发送至所述TEE;
在所述TEE中,解密所述运行文件密文及所述索引表密文,得到解密后的运行文件和索引表;
在所述TEE中,存储所述运行文件及所述索引表。
在一种可实施方式中,所述目标模型为业务模型中需要保护的模型部分,所述业务模型还包括除所述目标模型外的主干模型;
所述方法还包括:
在所述REE中,获得所述模型存储服务器发送的所述主干模型;
在所述REE中,基于所获得的模型输入数据,运行所述主干模型,得到对应的主干模型输出数据;
将所述主干模型输出数据发送至所述TEE;
所述基于所述第一参数明文运行所述第一算子,包括:
基于所述第一参数明文以及所述主干模型输出数据,运行所述第一算子。
在一种可实施方式中,所述REE中设置所述TEE与所述REE的共享存储区,所述参数密文集合存储在所述共享存储区。
在一种可实施方式中,所述参数密文集合包括:权重密文和偏差密文。
在一种可实施方式中,还包括:
在所述TEE中,获得所述运行文件运行后所得到的计算结果;
在所述TEE中,将所述计算结果发送至所述REE。
根据第二方面,提供一种数据处理方法,应用于服务器,包括:
将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型;
将运行所述目标模型所需数据拆分为运行文件及其对应的参数集合,所述运行文件用于执行所述目标模型的模型算法;
对所述运行文件进行加密,得到运行文件密文;
对所述参数集合进行加密,得到参数密文集合;
将所述运行文件密文以及所述参数密文集合发送至终端设备,以使所述终端设备在其通用执行环境REE中存储所述参数密文集合,以及在其可信执行环境TEE中运行解密后的所述运行文件。
在一种可实施方式中,所述模型算法包括用于进行模型运算的若干算子;所述参数集合包括所述若干算子所需的参数;
所述对所述参数集合进行加密,得到参数密文集合,包括:
分别对各算子所需的参数进行加密,得到各算子对应的参数密文;
基于各算子对应的参数密文,确定参数密文集合;
确定各算子对应的参数密文在所述参数密文集合中的位置信息;
所述方法还包括:
利用所述各算子对应的参数密文在所述参数密文集合中的位置信息,生成索引表;
对所述索引表加密,得到索引表密文;
所述将所述运行文件密文以及所述参数密文集合发送至终端设备,包括:
将所述索引表密文、所述参数密文集合以及所述运行文件密文,发送至终端设备。
在一种可实施方式中,所述位置信息包括:算子对应的参数密文的长度和在所述参数密文集合中的偏移量。
在一种可实施方式中,所述参数集合记录为json文件;各算子所需的参数包括:各算子所需的张量参数;
所述分别对各算子所需的参数进行加密,得到各算子对应的参数密文,包括:
从所述json文件中,循环解析出各算子所需的各张量参数;
针对解析出的各张量参数,将其转换成指定字节数的数据;对转换后的数据进行加密,得到张量参数密文。
在一种可实施方式中,所述利用所述各算子对应的参数密文在所述参数密文集合中的位置信息,生成索引表,包括:
从所述运行文件中,确定出各张量参数对应的张量个数,各张量的张量名以及张量名长度;
利用所述各张量参数对应的张量个数,各张量的张量名,张量名长度,以及所述位置信息,生成索引表。
在一种可实施方式中,所述将所述索引表密文、所述参数密文集合以及所述运行文件密文,发送至终端设备,包括:
利用所述索引表密文和所述参数密文集合生成配置文件;
将所述配置文件和所述运行文件密文,发送至所述终端设备。
在一种可实施方式中,所述目标模型为业务模型中需要保护的模型部分,所述业务模型还包括除所述目标模型外的主干模型;
所述将所述运行文件密文以及所述参数密文集合发送至终端设备,包括:
将所述参数密文集合、所述运行文件密文以及所述主干模型,发送至所述终端设备。
根据第三方面,提供一种数据处理系统,包括执行第一方面所述方法的终端设备,以及执行第二方面所述方法的服务器。
根据第四方面,提供一种数据处理装置,应用于终端设备,所述终端设备设置可信执行环境TEE和通用执行环境REE,所述TEE存储有目标模型的运行文件,所述运行文件用于执行所述目标模型的模型算法;所述REE中存储有所述目标模型运算所需的参数密文集合,所述装置包括:
读取模块,配置为在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文;
解密运行模块,配置为在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分。
根据第五方面,提供一种数据处理装置,应用于服务器,包括:
确定模块,配置为将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型;
拆分模块,配置为将运行所述目标模型所需数据拆分为运行文件及其对应的参数集合,所述运行文件用于执行所述目标模型的模型算法;
第一加密模块,配置为对所述运行文件进行加密,得到运行文件密文;
第二加密模块,配置为对所述参数集合进行加密,得到参数密文集合;
第一发送模块,配置为将所述运行文件密文以及所述参数密文集合发送至终端设备,以使所述终端设备在其通用执行环境REE中存储所述参数密文集合,以及在其可信执行环境TEE中运行解密后的所述运行文件。
根据第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
根据第七方面,提供一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
根据第八方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面所述的方法。
根据第九方面,提供一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面所述的方法。
根据本说明书实施例提供的方法及装置,参数密文集合即目标模型的参数集合加密后存储于REE中,避免了目标模型参数的泄露,且在一定程度上减轻了终端设备的TEE中的存储资源消耗。运行文件存储于TEE中,避免了运行文件的泄露并避免了其被篡改。在TEE中执行运行文件的过程中,针对运行文件中当前待执行的模型算法部分,从REE存储的参数密文集合中,读取与当前待执行的模型算法部分对应的至少一部分密文,并在TEE中解密,避免了目标模型运行过程中参数的泄露,提高了对目标模型的有效保护。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施框架示意图;
图2为实施例提供的数据处理方法的一种流程示意图;
图3为实施例提供的数据处理方法的另一种流程示意图;
图4A为实施例提供的数据处理方法的另一种流程示意图;
图4B为实施例提供的服务器侧数据处理流程的一种示意图;
图5为实施例提供的数据处理方法的另一种流程示意图;
图6为索引表的一种数据格式示例图;
图7为实施例提供的数据处理系统的一种示意性框图;
图8为实施例提供的数据处理装置的一种示意性框图;
图9为实施例提供的数据处理装置的一种示意性框图。
具体实施方式
下面将结合附图,详细描述本说明书实施例的技术方案。
本说明书实施例披露一种数据处理方法、系统及装置,下面首先对数据处理方法的应用场景和发明构思进行介绍,具体如下:
目前,在模型运算服务供应方向客户提供模型运算服务的过程中,可以通过加密传输的方式将业务模型下发至客户的终端设备。然而,在终端设备运行该业务模型的过程中,仍然面临模型被窃取的风险。
鉴于此,本说明书实施例提供了一种数据处理方法。根据该方法,模型运算服务供应方的模型存储服务器在下发业务模型之前,将业务模型的至少一部分模型,确定为目标模型,对运行目标模型所需数据进行拆分,得到目标模型对应的用于执行目标模型的模型算法的运行文件和该运行文件运行所需的模型参数;然后将模型参数和运行文件分别加密后,发送至终端设备。终端设备接收到上述加密的模型参数和运行文件后,在不同安全级别的环境中,分别对其进行存储和处理。
如图1示出根据本说明书披露的一个实施例终端设备中的实施框架示意图。如图1所示,终端设备设置有可信执行环境TEE和通用执行环境REE,TEE的安全存储区域中存储有目标模型的运行文件,运行文件用于执行目标模型的模型算法;REE中的存储区域中存储有目标模型运算所需的参数密文集合。在该实施架构下,模型的数据处理过程可以包括:在TEE中,针对运行文件中当前待执行的模型算法部分,从REE中读取参数密文集合的至少一部分密文;在TEE中,利用所存储的第一密钥,解密至少一部分密文,得到对应的参数明文,基于参数明文运行所述模型算法部分。
在一种实现方式中,该目标模型可以是某一完整的业务模型。考虑到TEE的物理存储空间的有限性,该目标模型也可以是某一业务模型中的指定模型部分,其中,该指定模型部分为业务模型中需要被保护的模型部分。在TEE中运行业务模型中需要被保护的目标模型,在一定程度上实现了对业务模型的保护,且避免了对TEE的物理存储空间的更多占用。一种情况,该业务模型为AI(Artificial Intelligence,人工智能)模型。
运行文件用于执行目标模型的模型算法。模型算法包括用于进行模型运算的若干算子。参数密文集合为各算子运算所需的参数集合加密生成的,包括加密后的各算子运算所需的参数。各算子运算所需的参数可以包括权重以及偏差。
本实施例中,参数密文集合存储于REE中,避免了目标模型参数的泄露,且在一定程度上减轻了终端设备的TEE中的存储资源消耗。运行文件存储于TEE中,避免了运行文件的泄露并避免了其被篡改。在TEE中执行运行文件的过程中,针对运行文件中当前待执行的模型算法部分,从REE存储的参数密文集合中,读取与当前待执行的模型算法部分对应的至少一部分密文,并在TEE中解密,避免了目标模型运行过程中参数的泄露,提高了对目标模型的有效保护。
下面结合具体实施例,对本说明书提供的数据处理方法进行详细阐述。
图2示出了本说明书一个实施例中数据处理方法的流程图。该方法应用于终端设备,终端设备可以是任一具有计算、处理能力的设备,例如可以是电脑、手机以及IoT机具。终端设备设置可信执行环境TEE和通用执行环境REE,TEE存储有目标模型的运行文件,运行文件用于执行目标模型的模型算法;REE中存储有目标模型运算所需的参数密文集合。
其中,运行文件用于执行目标模型的模型算法,模型算法包括用于进行模型运算的若干算子,模型算法可以预先划分为若干个模型算法部分,该各模型算法部分可以包括一个或多个算子。终端设备在TEE中运行模型算法时,可以依次运行各模型算法部分,以实现对模型算法的运行。可以理解的,运行文件还限定各算法部分之间的执行逻辑,该执行逻辑用于限定各模型算法部分的执行顺序,以及模型算法部分中各算子的执行顺序。在模型算法中,若干算子的排布可以依循执行逻辑形成图结构。相应的,该模型算法可以称为graph,该运行文件可以称为graph文件。
参数密文集合包括:目标模型的模型算法运算所需的模型参数集合加密后形成的密文。模型算法划分为若干个模型算法部分的情况下,参数密文集合可以由各模型算法部分运算所需的模型参数密文集合组成。一种情况中,参数密文集合也可以由各算子运算所需的模型参数密文集合组成。其中,算子运算所需的模型参数可以包括权重weight和偏差bias。
一种情况,该运行文件和参数密文集合为模型存储服务器预先对目标模型进行划分所得的。该模型存储服务器为向终端设备提供模型运算服务的供应方的服务器。一种实现中,终端设备存在模型运算服务需求时,为了保护目标模型,模型存储服务器可以向终端设备下发该目标模型对应的运行文件密文和参数密文集合。终端设备获得运行文件密文和参数密文集合,在不同安全级别的环境中,分别对其进行存储和处理。具体的,运行文件密文被传输至终端设备的TEE中,并解密存储。参数密文集合被存储到REE的存储区域,该存储区域可被TEE以及REE共享。
在上述架构下,如图2所示,所述方法可以包括如下步骤S210-S220:
S210:在TEE中,针对运行文件中当前待执行的模型算法部分,从REE中读取参数密文集合的至少一部分密文。
其中,目标模型可以是某一完整的业务模型。另外,考虑到TEE的物理存储空间的有限性,该目标模型也可以是某一业务模型中的指定模型部分,其中,该指定模型部分为业务模型中需要被保护的模型部分。在TEE中运行业务模型中需要被保护的目标模型,在一定程度上实现了对业务模型的保护,且避免了对TEE的存储空间的更多占用。一种情况中,该业务模型为AI(Artificial Intelligence,人工智能)模型,例如:神经网络模型、深度学习模型以及图神经网络模型等等。
在一种实现方式中,在TEE中,针对运行文件中当前待执行的模型算法部分,从REE中读取参数密文集合中,该当前待执行的模型算法部分对应的至少一部分密文。其中,一种情况,在TEE运行空间足够和/或目标模型执行占用空间较小时,当前待执行的模型算法部分可以是运行文件中全部的模型算法部分。另一种情况,考虑到TEE物理存储空间有限性,该当前待执行的模型算法部分也可以是运行文件中局部的模型算法部分。可以理解,运行文件不仅定义构成模型算法的各算法部分,还限定各算法部分之间的执行逻辑。相应的,在TEE中,依据执行逻辑所指示的先后顺序依次执行运行文件中的各模型算法部分。
在一种实现方式中,REE中设置有TEE与REE的共享存储区,即上述提到的REE中的存储区域,参数密文集合存储在该共享存储区。相应的,TEE可以直接从该共享存储区读取参数密文集合中、该当前待执行的模型算法部分对应的至少一部分密文。一种情况中,该共享存储区为ION内存。
S220:在TEE中,利用所存储的第一密钥,解密至少一部分密文,得到对应的参数明文,基于参数明文运行该模型算法部分。
在TEE中预先存储有第一密钥。其中,该第一密钥可以是终端设备与下发目标模型的模型存储服务器预先约定的密钥。在模型存储服务器侧,模型存储服务器利用第一密钥对应的第二密钥加密参数集合,得到参数密文集合。相应的,终端设备侧,在TEE中,从REE中读取出该至少一部分密文之后,在TEE中利用该第一密钥,解密至少一部分密文,得到对应的参数明文,进而基于参数明文运行该当前待执行的模型算法部分。在TEE中预存第一密钥,并且在TEE中利用第一密钥解密密文,更好的实现对模型的参数的保护,避免其被窃取。
一种情况,该第一密钥可以与第二密钥相同。相应的,模型存储服务器利用对称加密算法以及第二密钥加密参数集合;终端设备侧,在TEE中利用对称加密算法对应的解密算法以及第一密钥,解密该至少一部分密文,得到对应的参数明文。另一种情况,该第一密钥可以与第二密钥不同。相应的,模型存储服务器利用非对称加密算法以及第二密钥加密参数集合。终端设备侧,在TEE中利用该第一密钥以及该非对称加密算法对应的解密算法,解密至少一部分密文,得到对应的参数明文。
本实施例中,参数密文集合存储于REE中,避免了目标模型参数的泄露,且在一定程度上减轻了终端设备的TEE中的存储资源消耗。运行文件存储于TEE中,避免了运行文件的泄露并避免了其被篡改。在TEE中执行运行文件的过程中,针对运行文件中当前待执行的模型算法部分,从REE存储的参数密文集合中,读取与当前待执行的模型算法部分对应的至少一部分密文,并在TEE中解密,避免了目标模型运行过程中参数的泄露,提高了对目标模型的有效保护。
在一种可实施方式中,该模型算法包括用于进行模型运算的若干算子;
所述S210,可以包括如下步骤11:
步骤11:在TEE中,针对若干算子中当前待执行的第一算子,确定参数密文集合中第一算子对应的第一参数密文,并从REE中读取第一参数密文。
相应的,所述S220,可以包括如下步骤12:
步骤12:在TEE中,利用第一密钥,解密第一参数密文,得到第一参数明文;基于第一参数明文运行第一算子。
本实施例中,该模型算法包括用于进行模型运算的若干算子;相应的,参数密文集合包括各算子运算所需的参数密文。在TEE中,针对若干算子中当前待执行的第一算子,确定出参数密文集合中第一算子对应的第一参数密文,并从REE中读取该第一参数密文。进而在TEE中,利用第一密钥解密第一参数密文,得到第一参数明文,基于第一参数明文运行该第一算子。
其中,第一算子中的“第一”不表示顺序或其他方面的限定,而是泛指某一个或任一个。
在一种实现中,在REE中存储参数密文集合之后,可以向TEE反馈参数密文集合中各算子对应的参数密文的存储地址信息,后续的,在TEE中,针对若干算子中当前待执行的第一算子,基于该存储地址信息,确定出参数密文集合中第一算子对应的第一参数密文。
在另一种可实施方式中,TEE还存储有目标模型对应的索引表,索引表用于记录各算子对应的参数密文信息;
如图3所示,所述方法可以包括如下步骤S310-S330:
S310:在TEE中,针对若干算子中当前待执行的第一算子,从索引表中,检索出第一算子对应的第一参数密文在参数密文集合中的第一位置信息。
S320:基于第一位置信息,从REE中存储参数密文集合的存储区域中,读取第一参数密文。
S330:在TEE中,利用第一密钥,解密第一参数密文,得到第一参数明文;基于第一参数明文运行第一算子。
本实施例中,TEE的安全存储空间还可以存储有目标模型对应的索引表,索引表用于记录运行文件中各算子对应的参数密文信息,该参数密文信息可以指示出算子对应的参数密文在参数密文集合中的位置,也可以辅助验证其自身与运行文件的对应性,辅助验证其自身是否被篡改。一种实现中,该参数密文信息可以包括:算子对应的参数密文在参数密文集合中的位置信息;也可以包括:运行文件中各算子运算所需的参数对应的参数名以及参数名个数。算子运算所需的参数对应的参数名可以是张量名。
其中,通过将参数密文信息中参数名个数,与运行文件中参数名个数进行对比,可以辅助验证其自身与运行文件的对应性,也可以辅助验证其自身是否被篡改。
其中,各算子运算所需的参数对应的参数名与参数密文集合中的该算子对应的参数密文是一一对应的,且各算子运算所需的参数对应的参数名与索引表中该算子对应的参数密文在参数密文集合中的位置信息是一一对应的。相应的,在TEE中,针对若干算子中当前待执行的第一算子,可以从索引表中,检索到该第一算子运算所需参数的第一参数名以及该参数在参数密文集合中的第一位置信息;进而基于第一参数名和第一位置信息,从REE中存储参数密文集合的存储区域中,读取第一参数密文。
一种情况,该索引表可以是在模型存储服务器对参数集合中各算子运算所需的模型参数进行加密的过程中生成的。相应的,可以是由模型存储服务器对索引表进行加密后,下发至终端设备。终端设备在TEE中获得索引表密文,并将其解密存储于TEE中。而索引表加密传输至终端设备,且存储于终端设备的TEE中,可以避免其被恶意篡改。
终端设备在TEE中,针对运行文件中当前待执行的第一算子,可以从索引表中,检索出第一算子对应的第一参数密文在参数密文集合中的第一位置信息,进而基于第一位置信息,从REE中存储参数密文集合的存储区域中,读取第一参数密文。其中,该存储区域为REE与TEE共享的存储区域,为ION内存。
一种实现方式中,第一位置信息可以包括:第一参数密文的长度及其在参数密文集合中的偏移量。相应的,在确定出第一参数密文的长度及其在参数密文集合中的偏移量之后,在TEE中,基于第一参数密文的长度及其在参数密文集合中的偏移量以及REE中存储参数密文集合的存储区域的起始位置信息,可以直接读取得到第一参数密文。一种情况中,在REE中存储参数密文集合后,可以向TEE发送在REE中存储参数密文集合的存储区域的起始位置信息。
一种实现方式中,各算子对应的参数密文信息还可以包括:各算子所需参数对应的张量个数总和,各张量的张量名以及张量名长度。其中,一种情况,可以通过各算子所需参数对应的张量个数总和及运行文件中模型算法运行所需张量个数总和,确定运行文件与索引表的对应性,且可以验证索引表是否存在异常情况,以避免出现索引表被篡改的情况,使得无法从参数密文集合中读取到参数密文。异常情况可以包括但不限于:索引表所记录的参数密文在参数密文集合中的位置信息,出现遗失或者出现多余的位置信息。另一种情况,在TEE中,可以通过张量名,确定出索引表中记录的相应的参数密文在参数密文集合中的位置信息,进而结合张量名和相应的参数密文在参数密文集合中的位置信息,读取到准确的张量参数密文。张量名长度可以辅助准确读取到准确的张量名。
本实施例中,终端设备在TEE中通过索引表检索得到运行文件当前待执行的算子运算所需的参数密文,可以在一定程度上提高模型运算效率。
在一种可实施方式中,目标模型为:模型运算服务供应方在终端设备存在使用模型运算服务的需求的情况下,向终端设备提供的。相应的,终端设备在存在使用模型运算服务需求的情况下,可以向存储有目标模型的模型存储服务器请求下发目标模型,其中,该模型存储服务器为模型运算服务供应方所提供的服务器。
一种情况,模型存储服务器在接收到终端设备发送的用于请求下发目标模型的请求的情况下,模型存储服务器将运行目标模型所需数据拆分为运行文件及其对应的参数集合,并为了保证数据下发过程中的安全,分别对运行文件以及参数集合进行加密,得到运行文件密文以及参数集合密文,并将该运行文件密文以及参数集合密文发送至终端设备。
另一种情况,模型存储服务器直接存储有目标模型对应的运行文件密文以及参数集合密文,在接收到终端设备发送的用于请求下发目标模型的请求的情况下,直接将所存储的目标模型对应的运行文件密文以及参数集合密文发送至终端设备。
终端设备在REE中获得运行文件密文以及参数集合密文,将参数集合密文存储在REE的存储区域,例如REE和TEE的共享存储区中。将运行文件密文发送至TEE,在TEE中解密运行文件密文,得到运行文件并存储,进而执行后续的数据处理流程。
在另一种可实施方式中,所述方法还可以包括如下步骤21-24:
步骤21:在REE中,获得模型存储服务器发送的目标模型的运行文件密文、索引表密文以及参数密文集合。
步骤22:在REE中,存储参数密文集合,并将运行文件密文、索引表密文发送至TEE。
步骤23:在TEE中,解密运行文件密文及索引表密文,得到解密后的运行文件和索引表。
步骤24:在TEE中,存储运行文件及索引表。
终端设备在存在使用模型运行服务需求的情况下,可以向存储有目标模型的模型存储服务器请求下发模型。模型存储服务器在接收到终端设备发送的用于请求下发模型的请求,向终端设备下发目标模型对应的运行文件密文、索引表密文以及参数密文集合。终端设备在REE中,获得运行文件密文、索引表密文以及参数密文集合,在REE中的REE和TEE共享存储区,存储参数密文集合;将运行文件密文、索引表密文发送至TEE;在TEE中,解密运行文件密文及索引表密文,得到解密后的运行文件和索引表,在TEE中存储运行文件及索引表。
在一种情况中,在REE中的REE和TEE共享存储区,存储参数密文集合之后,REE会将REE和TEE共享存储区的头部地址信息,即参数密文集合的存储区域的起始位置信息发送至TEE,TEE基于该头部地址信息以及索引表中记录的当前待执行的算子对应的参数密文的位置信息,从参数密文集合中读取到的当前待执行的算子对应的参数密文。
鉴于终端设备TEE的物理存储空间有限性,在模型运行时占用空间较大的情况下,TEE空间可能出现空间不足以支撑模型运行的问题。可以考虑仅在TEE中运行模型中比较重要的,即需要被重点保护的部分模型。
相应的,模型存储服务器可以预先将业务模型拆分成主干模型以及需要保护的模型部分即目标模型,进而将主干模型与目标模型对应的运行文件密文、参数密文集合以及索引表密文,共同发送至终端设备,终端设备可以在REE中,存储主干模型和参数密文集合,在TEE中解密运行文件密文和索引表密文,得到运行文件和索引表,并存储。该业务模型为终端设备所请求的模型。
在REE中运行主干模型,得到主干模型对应的主干模型输出数据,将主干模型输出数据发送至TEE。在TEE中,从索引表中,检索出运行文件中当前待执行的第一算子对应的第一参数密文在参数密文集合中的第一位置信息;基于第一位置信息,从REE中存储参数密文集合的存储区域中,读取第一参数密文,利用第一密钥,解密第一参数密文,得到第一参数明文,基于第一参数明文以及主干模型输出数据,运行第一算子。
相应的,在一种可实施方式中,目标模型为业务模型中需要保护的模型部分,业务模型还包括除目标模型外的主干模型;
所述方法还可以包括如下步骤31-33:
步骤31:在REE中,获得模型存储服务器发送的主干模型;
步骤32:在REE中,基于所获得的模型输入数据,运行主干模型,得到对应的主干模型输出数据。
步骤33:将主干模型输出数据发送至TEE。
相应的,步骤12被设置为:基于第一参数明文以及主干模型输出数据,运行第一算子。
其中,在REE中运行主干模型需要利用相应的模型输入数据,激励主干模型的运行。一种情况中,可以是在REE中,通过模型执行引擎,利用相应的模型输入数据运行主干模型。在一种示例性场景中,该业务模型可以是人脸识别模型或者身份认证模型,相应的,模型输入数据可以为人脸图像。在另一种示例性场景中,该业务模型可以是目标分类模型,相应的,模型输入数据可以为包含待分类目标的图像。
在一种可实施方式中,所述方法还可以包括如下步骤41-42:
步骤41:在TEE中,获得运行文件运行后所得到的计算结果。
步骤42:在TEE中,将计算结果发送至REE。
本实施例中,在TEE中,运行文件执行完成即运行文件所有算子运算完成后,可以得到相应的计算结果,在TEE中,将该计算结果发送至REE,以供终端设备的目标应用的使用,其中,目标应用可以指终端设备中使用业务模型的运算服务的应用,相应的,也指终端设备中向模型存储服务器请求下发业务模型的应用。一种情况中,上述在TEE中,将该计算结果发送至REE的过程,可以是:在TEE中,将该计算结果发送至REE与TEE的共享存储区。
相应于上述方法实施例,本说明书实施例还提供了一种数据处理方法,应用于服务器,该服务器可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。如图4A所示,可以包括如下步骤S410-S450:
S410:将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型。本步骤,服务器在接收到终端设备发送的业务模型下发请求的情况下,将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型。在一种实现中,可以将整个业务模型确定为目标模型。在另一种实现中,将业务模型中的重要部分即需要保护的部分,确定为目标模型。该服务器即为上述提到的模型存储服务器。
S420:将运行目标模型所需数据拆分为运行文件及其对应的参数集合。其中,运行文件为在终端设备的TEE中可直接运行的文件,其也可以称为graph文件,参数集合记录为json文件。运行文件用于执行目标模型的模型算法,模型算法包括用于进行模型运算的若干算子。参数集合中包括各算子运算所需的参数。
S430:对运行文件进行加密,得到运行文件密文。服务器可以调用第一加密接口,对运行文件进行加密,得到运行文件密文。一种情况中,该第一加密接口可以是openssl(Open Secure Sockets Layer,开放式安全套接层协议)加密接口。其中,可以通过调用第一加密接口,实现对第一加密算法的调用,进而实现对应数据的加密。一种情况中,该第一加密算法可以是对称加密算法,例如:AES加密算法。该第一加密算法也可以为非对称加密算法,服务器与终端设备预先约定好加解密数据的密钥即可。
S440:对参数集合进行加密,得到参数密文集合。服务器可以调用第二加密接口,对参数集合进行加密,得到参数密文集合。该第二加密接口可以是openssl加密接口。其中,可以通过调用第二加密接口,实现对第二加密算法的调用,进而实现对应数据的加密。一种情况中,该第二加密算法可以是对称加密算法,例如:AES加密算法。该第二加密算法也可以为非对称加密算法,服务器与终端设备预先约定好加解密数据的密钥即可。该第一加密接口与该第二加密接口可以为相同的加密接口,也可以为不同的加密接口。
S450:将运行文件密文以及参数密文集合发送至终端设备,以使终端设备在其通用执行环境REE中存储参数密文集合,以及在其可信执行环境TEE中运行解密后的运行文件。
一种实现中,为了保证目标模型在终端设备侧的正常运行,在步骤S440中,可以是对参数集合中的参数进行划分,得到各参数子集,进而调用第二加密接口,对各参数子集分别进行加密,得到各参数子集的密文,将所有参数子集的密文,组合成参数密文集合。
一种情况中,参数集合中包括各算子运算所需的参数,可以是针对每一算子,将该算子运算所需的参数确定为一个参数子集。举例而言,参数集合中包括算子1运算所需的参数、算子2运算所需的参数以及算子3运算所需的参数,可以分别将算子1运算所需的参数划分为一个参数子集1,将算子2运算所需的参数划分为一个参数子集2,将算子3运算所需的参数划分为一个参数子集3。后续的,调用第二加密接口,分别对参数子集1、参数子集2以及参数子集3加密,得到参数子集1密文、参数子集2密文以及参数子集3密文,进而将参数子集1密文、参数子集2密文以及参数子集3密文,组合成参数密文集合。
另一种情况,参数集合中包括各算子运算所需的参数,各算子运算所需的参数可以包括一个或多个张量对应的参数,即张量参数,可以是针对每一算子对应的每一张量,将该张量对应的参数,确定为一个参数子集。举例而言,参数集合中包括算子1运算所需的参数和算子2运算所需的参数,其中,算子1运算所需的参数包括张量11对应的参数和张量12对应的参数,算子2运算所需的参数包括张量21对应的参数。可以将张量11对应的参数确定为一个参数子集1,将张量12对应的参数确定为一个参数子集2,将张量21对应的参数确定为一个参数子集1。后续的,调用第二加密接口,分别对参数子集1、参数子集2以及参数子集3加密,得到参数子集1密文、参数子集2密文以及参数子集3密文,进而将参数子集1密文、参数子集2密文以及参数子集3密文组合成参数密文集合。
其中,每一张量对应的参数包括该张量名下的参数,例如包括权重和偏差。
另一种情况,参数集合中包括各算子运算所需的参数,可以是针对连续的预设数量个算子,将该连续的预设数量个算子运算所需的参数确定为一个参数子集。其中,该连续指的是在执行逻辑上连续,例如算子A运算完成后,其运算结果输出至算子B;算子B基于算子A的运算结果进行运算,则可以称算子A和算子B连续。其中,该预设数量可以基于终端设备的TEE的物理存储空间确定。
后续的,服务器得到运行文件密文以及参数密文集合之后,将运行文件密文以及参数密文集合发送至终端设备。以使终端设备在其通用执行环境REE中存储参数密文集合,以及在其可信执行环境TEE中运行解密后的运行文件。终端设备执行动作可以参见上述终端设备侧的数据处理方法流程,在此不再赘述。
一种实现中,在目标模型为业务模型中的部分模型的情况下,服务器在将运行文件密文以及参数密文集合发送至终端设备的同时,还需要将业务模型的除目标模型外的部分模型即主干模型加密发送至终端设备,以使得终端设备可以正常使用业务模型的模型运算服务。
在一种实现中,该服务器通过其安装的加密解析工具实现对参数集合以及运行文件的加密过程。如图4B所示,将拆分所得的json文件即参数集合,以及graph文件即运行文件,分别输入加密解析工具;加密解析工具加密运行文件得到运行文件密文;对参数集合加密,得到参数密文集合。
本实施例中,服务器将业务模型的至少一部分模型,确定为目标模型,并拆分运行目标模型所需数据为运行文件及其对应的参数集合,并分别对运行文件及其对应的参数集合加密传输至终端设备,为终端设备在TEE中安全执行运行文件提供基础,提高对业务模型的有效保护。
在一种可实施方式中,模型算法包括用于进行模型运算的若干算子;参数集合包括若干算子所需的参数:
如图5所示,所述方法可以包括如下步骤S510:
S510:将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型。
S520:将运行目标模型所需数据拆分为运行文件及其对应的参数集合,运行文件用于执行目标模型的模型算法。
S530:对运行文件进行加密,得到运行文件密文。
S540:分别对各算子所需的参数进行加密,得到各算子对应的参数密文。
S550:基于各算子对应的参数密文,确定参数密文集合。
S560:确定各算子对应的参数密文在所述参数密文集合中的位置信息。
S570:利用各算子对应的参数密文在参数密文集合中的位置信息,生成索引表。
S580:对索引表加密,得到索引表密文。
S590:将索引表密文、参数密文集合以及运行文件密文,发送至终端设备。
其中,上述S510与图4所示的S410相同,上述S520与图4所示的S420相同,上述S530与图4所示的S430相同,在此不再赘述。
本实施方式中,参数集合包括若干算子所需的参数,为了保证终端设备侧目标模型对应的运行文件中各算子的正常运算,服务器分别对各算子所需的参数进行加密,得到各算子对应的参数密文,将所有算子对应的参数密文,组合成参数密文集合。并且确定各算子对应的参数密文在参数密文集合中的位置信息。利用各算子对应的参数密文在参数密文集合中的位置信息,生成索引表。调用第三加密接口,对索引表进行加密,得到索引表密文。该第三加密接口可以为与第一加密接口和第二加密接口不同的接口,也可以为与第一加密接口和第二加密接口相同的接口。
可以理解的,为了保证索引表、运行文件以及参数集合的安全,避免其被泄露,可以利用不同的密钥分别对索引表、运行文件以及参数集合进行加密,并将加密后所得的索引表密文、参数密文集合以及运行文件密文,发送至终端设备。相应的,终端设备侧,利用预存的不同的密钥分别对索引表密文、运行文件密文以及参数密文集合进行解密。
在一种可实施方式中,位置信息可以包括:算子对应的参数密文的长度和在参数密文集合中的偏移量。在一种实现方式中,算子对应的参数密文可以包括一个或多个张量对应的参数密文,即张量参数密文,相应的,索引表中可以记录有算子对应的张量参数密文在参数密文集合中的位置信息。后续的,终端设备在TEE中针对其当前待执行的算子,从索引表中,检索出其对应的张量参数密文在参数密文集合中的位置信息,进而在TEE中,基于该位置信息从参数密文集合中读取各张量参数密文。
在一种可实施方式中,参数集合记录为json文件;各算子所需的参数包括:各算子所需的张量参数;
所述S540,可以包括如下步骤51-52:
步骤51:从json文件中,循环解析出各算子所需的各张量参数。
步骤52:针对解析出的各张量参数,将其转换成指定字节数的数据;对转换后的数据进行加密,得到张量参数密文。
各算子所需的张量参数一般为浮点型数据,为了更便于数据的加密传输以及和后续的读取,服务器从json文件中,循环解析出各算子所需的各张量参数,针对解析出的各张量参数,将其转换成指定字节数的数据;并调用第三加密接口,对转换后的数据进行加密,得到张量参数密文。后续的,将各张量密文参数组合成参数密文集合。其中,该指定字节数可以根据实际情况设定,例如设定为4字节。
在一种可实施方式中,所述S570,可以包括如下步骤61-62:
步骤61:从运行文件中,确定出各张量参数对应的张量个数,各张量的张量名以及张量名长度。
步骤62:利用各张量参数对应的张量个数,各张量的张量名,张量名长度,以及位置信息,生成索引表。
本实施方式中,服务器可以利用运行文件,确定出其运算所需的张量参数对应的张量个数,各张量的张量名以及张量名长度。进而,利用各张量参数对应的张量个数,各张量的张量名,张量名长度,以及位置信息,生成索引表。如图6所示,为索引表的一种数据格式示例图。其中,包括张量个数tensor num,对应的数据长度32bit;张量名长度tensorname len,对应的数据长度8bit;各张量的张量名tensor name,对应的数据长度依赖于所对应目标模型;位置信息包括各张量参数密文的长度cipher text length,对应的数据长度32bit,以及各张量参数密文在参数密文集合中的偏移offset,对应的数据长度32bit。
在一种可实施方式中,所述S590,可以包括如下步骤71-72:
步骤71:利用索引表密文和参数密文集合生成配置文件。
步骤72:将配置文件和运行文件密文,发送至终端设备。本实现方式中,服务器可以将索引表密文和参数密文集合封装成配置文件,进而将配置文件和运行文件密文,发送至终端设备。在一种实现中,在生成参数密文集合之后,可以计算参数密文集合的长度,将该索引表密文、参数密文集合以及参数密文集合的长度封装成配置文件。以便于终端设备获得该目标模型对应的索引表密文、参数密文集合之后,可以在REE中分配出合适的存储区域,来存储参数密文集合。其中,参数密文集合的长度对应的数据长度可以为第一字节,例如为4字节。
如图4B所示,解析加密工具对各算子对应的参数密文进行加密,得到参数密文集合后,确定各算子对应的参数密文在参数密文集合中的位置信息,生成索引表,并对索引表进行加密,得到索引表密文。后续的,参数密文集合以及索引表密文被封装生成配置文件。
考虑到终端设备TEE中的物理存储空间的有限性,可以将业务模型基于各模型部分的重要性,即保密性,将业务模型拆分成两部分,分别为需要保护的模型部分以及一般保密性的模型部分。相应的,在一种可实施方式中,目标模型为业务模型中需要保护的模型部分,业务模型还包括除目标模型外的主干模型;
所述S450,可以包括如下步骤:将参数密文集合、运行文件密文以及主干模型,发送至终端设备。其中,主干模型可以直接在终端设备的REE中进行存储和运算。在一种情况中,为了保证主干模型在数据传输过程中的安全,也需要对主干模型进行加密传输。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
相应于上述方法实施例,本说明书实施例,提供了一种数据处理系统700,其示意性框图如图7所示,包括:执行上述数据处理方法的终端设备710,以及执行上述数据处理方法的服务器720。一种实现方式中,上述终端设备710可以包括一个或多个,如图7示例性所示,包括终端设备1、终端设备2……终端设备n。上述服务器720可以针对不同类型的业务模型执行上述数据处理流程。不同终端设备710所需的业务模型可以相同也可以不同。
相应于上述方法实施例,本说明书实施例,提供了一种数据处理装置800,应用于终端设备,所述终端设备设置可信执行环境TEE和通用执行环境REE,所述TEE存储有目标模型的运行文件,所述运行文件用于执行所述目标模型的模型算法;所述REE中存储有所述目标模型运算所需的参数密文集合,其示意性框图如图8所示,包括:
读取模块810,配置为在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文;
解密运行模块820,配置为在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分。
在一种可实施方式中,所述模型算法包括用于进行模型运算的若干算子;
所述读取模块810,具体配置为在所述TEE中,针对所述若干算子中当前待执行的第一算子,确定所述参数密文集合中所述第一算子对应的第一参数密文,并从所述REE中读取所述第一参数密文;
所述解密运行模块820,具体配置为在所述TEE中,利用所述第一密钥,解密所述第一参数密文,得到第一参数明文;基于所述第一参数明文运行所述第一算子。
在一种可实施方式中,所述TEE还存储有所述目标模型对应的索引表,所述索引表用于记录各算子对应的参数密文信息;
所述解密运行模块,具体配置为从所述索引表中,检索出所述第一算子对应的第一参数密文在所述参数密文集合中的第一位置信息;
基于所述第一位置信息,从所述REE中存储所述参数密文集合的存储区域中,读取所述第一参数密文。
在一种可实施方式中,所述第一位置信息包括:所述第一参数密文的长度及其在所述参数密文集合中的偏移量。
在一种可实施方式中,所述各算子对应的参数密文信息还包括:各算子所需参数对应的张量个数总和,各张量的张量名以及张量名长度。
在一种可实施方式中,还包括:
第一获得模块(图中未示出),配置为在所述REE中,获得模型存储服务器发送的所述目标模型的运行文件密文、索引表密文以及所述参数密文集合;
存储发送模块(图中未示出),配置为在所述REE中,存储所述参数密文集合,并将所述运行文件密文、索引表密文发送至所述TEE;
解密模块(图中未示出),配置为在所述TEE中,解密所述运行文件密文及所述索引表密文,得到解密后的运行文件和索引表;
存储模块(图中未示出),配置为在所述TEE中,存储所述运行文件及所述索引表。
在一种可实施方式中,所述目标模型为业务模型中需要保护的模型部分,所述业务模型还包括除所述目标模型外的主干模型;
所述装置还包括:
第二获得模块(图中未示出),配置为在所述REE中,获得所述模型存储服务器发送的所述主干模型;
模型运行模块(图中未示出),配置为在所述REE中,基于所获得的模型输入数据,运行所述主干模型,得到对应的主干模型输出数据;
第二发送模块(图中未示出),配置为将所述主干模型输出数据发送至所述TEE;
所述解密运行模块820,具体配置为基于所述第一参数明文以及所述主干模型输出数据,运行所述第一算子。
在一种可实施方式中,所述REE中设置所述TEE与所述REE的共享存储区,所述参数密文集合存储在所述共享存储区。
在一种可实施方式中,所述参数密文集合包括:权重密文和偏差密文。
在一种可实施方式中,还包括:
第三获得模块(图中未示出),配置为在所述TEE中,获得所述运行文件运行后所得到的计算结果;
第三发送模块(图中未示出),配置为在所述TEE中,将所述计算结果发送至所述REE。
相应于上述方法实施例,本说明书实施例,提供了一种数据处理装置900,应用于服务器,其示意性框图如图9所示,包括:
确定模块910,配置为将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型;
拆分模块920,配置为将运行所述目标模型所需数据拆分为运行文件及其对应的参数集合,所述运行文件用于执行所述目标模型的模型算法;
第一加密模块930,配置为对所述运行文件进行加密,得到运行文件密文;
第二加密模块940,配置为对所述参数集合进行加密,得到参数密文集合;
第一发送模块950,配置为将所述运行文件密文以及所述参数密文集合发送至终端设备,以使所述终端设备在其通用执行环境REE中存储所述参数密文集合,以及在其可信执行环境TEE中运行解密后的所述运行文件。
在一种可实施方式中,所述模型算法包括用于进行模型运算的若干算子;所述参数集合包括所述若干算子所需的参数:
所述第二加密模块940,包括:
加密单元(图中未示出),配置为分别对各算子所需的参数进行加密,得到各算子对应的参数密文;
第一确定单元(图中未示出),配置为基于各算子对应的参数密文,确定参数密文集合;
第二确定单元(图中未示出),配置为确定各算子对应的参数密文在所述参数密文集合中的位置信息;
所述装置还包括:
生成模块(图中未示出),配置为利用所述各算子对应的参数密文在所述参数密文集合中的位置信息,生成索引表;
第三加密模块(图中未示出),配置为对所述索引表加密,得到索引表密文;
所述第一发送模块950,具体配置为将所述索引表密文、所述参数密文集合以及所述运行文件密文,发送至终端设备。
在一种可实施方式中,所述位置信息包括:算子对应的参数密文的长度和在所述参数密文集合中的偏移量。
在一种可实施方式中,所述参数集合记录为json文件;各算子所需的参数包括:各算子所需的张量参数;
所述加密单元,具体配置为从所述json文件中,循环解析出各算子所需的各张量参数;
针对解析出的各张量参数,将其转换成指定字节数的数据;对转换后的数据进行加密,得到张量参数密文。
在一种可实施方式中,所述生成模块,具体配置为从所述运行文件中,确定出各张量参数对应的张量个数,各张量的张量名以及张量名长度;
利用所述各张量参数对应的张量个数,各张量的张量名,张量名长度,以及所述位置信息,生成索引表。
在一种可实施方式中,所述第一发送模块950,具体配置为利用所述索引表密文和所述参数密文集合生成配置文件;
将所述配置文件和所述运行文件密文,发送至所述终端设备。
在一种可实施方式中,所述目标模型为业务模型中需要保护的模型部分,所述业务模型还包括除所述目标模型外的主干模型;
所述第一发送模块950,具体配置为将所述参数密文集合、所述运行文件密文以及所述主干模型,发送至所述终端设备。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书所提供的终端设备侧所述的数据处理方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书所提供的终端设备侧所述的数据处理方法。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书所提供的服务器侧所述的数据处理方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书所提供的服务器侧所述的数据处理方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (22)
1.一种数据处理方法,应用于终端设备,所述终端设备设置可信执行环境TEE和通用执行环境REE,所述TEE存储有目标模型的运行文件,所述运行文件用于执行所述目标模型的模型算法;所述REE中存储有所述目标模型运行所需的参数密文集合,所述方法包括:
在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文;
在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分。
2.根据权利要求1所述的方法,其中,所述模型算法包括用于进行模型运算的若干算子;
所述在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文,包括:
在所述TEE中,针对所述若干算子中当前待执行的第一算子,确定所述参数密文集合中所述第一算子对应的第一参数密文,并从所述REE中读取所述第一参数密文;
所述在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分,包括:
在所述TEE中,利用所述第一密钥,解密所述第一参数密文,得到第一参数明文;基于所述第一参数明文运行所述第一算子。
3.根据权利要求2所述的方法,所述TEE还存储有所述目标模型对应的索引表,所述索引表用于记录各算子对应的参数密文信息;
确定所述参数密文集合中所述第一算子对应的第一参数密文,并从所述REE中读取所述第一参数密文,具体包括:
从所述索引表中,检索出所述第一算子对应的第一参数密文在所述参数密文集合中的第一位置信息;
基于所述第一位置信息,从所述REE中存储所述参数密文集合的存储区域中,读取所述第一参数密文。
4.根据权利要求3所述的方法,其中,所述第一位置信息包括:所述第一参数密文的长度及其在所述参数密文集合中的偏移量。
5.根据权利要求3所述的方法,所述各算子对应的参数密文信息还包括:各算子所需参数对应的张量个数总和,各张量的张量名以及张量名长度。
6.根据权利要求3所述的方法,还包括:
在所述REE中,获得模型存储服务器发送的所述目标模型的运行文件密文、索引表密文以及所述参数密文集合;
在所述REE中,存储所述参数密文集合,并将所述运行文件密文、索引表密文发送至所述TEE;
在所述TEE中,解密所述运行文件密文及所述索引表密文,得到解密后的运行文件和索引表;
在所述TEE中,存储所述运行文件及所述索引表。
7.根据权利要求6所述的方法,所述目标模型为业务模型中需要保护的模型部分,所述业务模型还包括除所述目标模型外的主干模型;
所述方法还包括:
在所述REE中,获得所述模型存储服务器发送的所述主干模型;
在所述REE中,基于所获得的模型输入数据,运行所述主干模型,得到对应的主干模型输出数据;
将所述主干模型输出数据发送至所述TEE;
所述基于所述第一参数明文运行所述第一算子,包括:
基于所述第一参数明文以及所述主干模型输出数据,运行所述第一算子。
8.根据权利要求1所述的方法,其中,所述REE中设置所述TEE与所述REE的共享存储区,所述参数密文集合存储在所述共享存储区。
9.根据权利要求1所述的方法,所述参数密文集合包括:权重密文和偏差密文。
10.根据权利要求1-9任一项所述的方法,还包括:
在所述TEE中,获得所述运行文件运行后所得到的计算结果;
在所述TEE中,将所述计算结果发送至所述REE。
11.一种数据处理方法,应用于服务器,包括:
将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型;
将运行所述目标模型所需数据拆分为运行文件及其对应的参数集合,所述运行文件用于执行所述目标模型的模型算法;
对所述运行文件进行加密,得到运行文件密文;
对所述参数集合进行加密,得到参数密文集合;
将所述运行文件密文以及所述参数密文集合发送至终端设备,以使所述终端设备在其通用执行环境REE中存储所述参数密文集合,以及在其可信执行环境TEE中运行解密后的所述运行文件。
12.根据权利要求11所述的方法,其中,所述模型算法包括用于进行模型运算的若干算子;所述参数集合包括所述若干算子所需的参数;
所述对所述参数集合进行加密,得到参数密文集合,包括:
分别对各算子所需的参数进行加密,得到各算子对应的参数密文;
基于各算子对应的参数密文,确定参数密文集合;
确定各算子对应的参数密文在所述参数密文集合中的位置信息;
所述方法还包括:
利用所述各算子对应的参数密文在所述参数密文集合中的位置信息,生成索引表;
对所述索引表加密,得到索引表密文;
所述将所述运行文件密文以及所述参数密文集合发送至终端设备,包括:
将所述索引表密文、所述参数密文集合以及所述运行文件密文,发送至终端设备。
13.根据权利要求12所述的方法,其中,所述位置信息包括:算子对应的参数密文的长度和在所述参数密文集合中的偏移量。
14.根据权利要求12所述的方法,其中,所述参数集合记录为json文件;各算子所需的参数包括:各算子所需的张量参数;
所述分别对各算子所需的参数进行加密,得到各算子对应的参数密文,包括:
从所述json文件中,循环解析出各算子所需的各张量参数;
针对解析出的各张量参数,将其转换成指定字节数的数据;对转换后的数据进行加密,得到张量参数密文。
15.根据权利要求14所述的方法,其中,所述利用所述各算子对应的参数密文在所述参数密文集合中的位置信息,生成索引表,包括:
从所述运行文件中,确定出各张量参数对应的张量个数,各张量的张量名以及张量名长度;
利用所述各张量参数对应的张量个数,各张量的张量名,张量名长度,以及所述位置信息,生成索引表。
16.根据权利要求12-15任一项所述的方法,其中,所述将所述索引表密文、所述参数密文集合以及所述运行文件密文,发送至终端设备,包括:
利用所述索引表密文和所述参数密文集合生成配置文件;
将所述配置文件和所述运行文件密文,发送至所述终端设备。
17.根据权利要求11所述的方法,所述目标模型为业务模型中需要保护的模型部分,所述业务模型还包括除所述目标模型外的主干模型;
所述将所述运行文件密文以及所述参数密文集合发送至终端设备,包括:
将所述参数密文集合、所述运行文件密文以及所述主干模型,发送至所述终端设备。
18.一种数据处理系统,包括执行权利要求1-10所述方法的终端设备,以及执行权利要求11-17所述方法的服务器。
19.一种数据处理装置,应用于终端设备,所述终端设备设置可信执行环境TEE和通用执行环境REE,所述TEE存储有目标模型的运行文件,所述运行文件用于执行所述目标模型的模型算法;所述REE中存储有所述目标模型运算所需的参数密文集合,所述装置包括:
读取模块,配置为在所述TEE中,针对所述运行文件中当前待执行的模型算法部分,从所述REE中读取所述参数密文集合的至少一部分密文;
解密运行模块,配置为在所述TEE中,利用所存储的第一密钥,解密所述至少一部分密文,得到对应的参数明文,基于所述参数明文运行所述模型算法部分。
20.一种数据处理装置,应用于服务器,包括:
确定模块,配置为将待下发至终端设备的业务模型的至少一部分模型,确定为目标模型;
拆分模块,配置为将运行所述目标模型所需数据拆分为运行文件及其对应的参数集合,所述运行文件用于执行所述目标模型的模型算法;
第一加密模块,配置为对所述运行文件进行加密,得到运行文件密文;
第二加密模块,配置为对所述参数集合进行加密,得到参数密文集合;
第一发送模块,配置为将所述运行文件密文以及所述参数密文集合发送至终端设备,以使所述终端设备在其通用执行环境REE中存储所述参数密文集合,以及在其可信执行环境TEE中运行解密后的所述运行文件。
21.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
22.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求11-17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110958422.XA CN113672955B (zh) | 2021-08-19 | 2021-08-19 | 一种数据处理方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110958422.XA CN113672955B (zh) | 2021-08-19 | 2021-08-19 | 一种数据处理方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672955A true CN113672955A (zh) | 2021-11-19 |
CN113672955B CN113672955B (zh) | 2024-04-19 |
Family
ID=78544243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110958422.XA Active CN113672955B (zh) | 2021-08-19 | 2021-08-19 | 一种数据处理方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672955B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566744A (zh) * | 2023-07-07 | 2023-08-08 | 北京瑞莱智慧科技有限公司 | 数据处理方法和安全校验系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980794A (zh) * | 2017-04-01 | 2017-07-25 | 北京元心科技有限公司 | 基于TrustZone的文件加解密方法、装置及终端设备 |
CN107612683A (zh) * | 2017-09-30 | 2018-01-19 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
WO2020015525A1 (en) * | 2018-07-17 | 2020-01-23 | Huawei Technologies Co., Ltd. | Verifiable encryption based on trusted execution environment |
CN111181720A (zh) * | 2019-12-31 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的业务处理方法及装置 |
US20200250321A1 (en) * | 2019-04-18 | 2020-08-06 | Alibaba Group Holding Limited | Data processing method and device |
-
2021
- 2021-08-19 CN CN202110958422.XA patent/CN113672955B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980794A (zh) * | 2017-04-01 | 2017-07-25 | 北京元心科技有限公司 | 基于TrustZone的文件加解密方法、装置及终端设备 |
CN107612683A (zh) * | 2017-09-30 | 2018-01-19 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
WO2020015525A1 (en) * | 2018-07-17 | 2020-01-23 | Huawei Technologies Co., Ltd. | Verifiable encryption based on trusted execution environment |
US20200250321A1 (en) * | 2019-04-18 | 2020-08-06 | Alibaba Group Holding Limited | Data processing method and device |
CN111181720A (zh) * | 2019-12-31 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的业务处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
范冠男;董攀;: "基于TrustZone的可信执行环境构建技术研究", 信息网络安全, no. 03, 10 March 2016 (2016-03-10) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566744A (zh) * | 2023-07-07 | 2023-08-08 | 北京瑞莱智慧科技有限公司 | 数据处理方法和安全校验系统 |
CN116566744B (zh) * | 2023-07-07 | 2023-09-22 | 北京瑞莱智慧科技有限公司 | 数据处理方法和安全校验系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113672955B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11546348B2 (en) | Data service system | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN107317677B (zh) | 密钥存储及设备身份认证方法、装置 | |
US20210067326A1 (en) | Cryptographic operation method, method for creating working key, cryptographic service platform, and cryptographic service device | |
CN112685786B (zh) | 一种金融数据加密、解密方法、系统、设备及存储介质 | |
CN106506479B (zh) | 密码认证的方法、系统及客户端、服务器和智能设备 | |
CN106911712B (zh) | 一种应用于分布式系统的加密方法及系统 | |
CN115065472B (zh) | 基于多密钥加密解密的安全芯片加密解密方法及装置 | |
CN112074889A (zh) | 隐匿检索装置和隐匿检索方法 | |
CN113452526B (zh) | 电子文件存证方法、验证方法及相应装置 | |
CN115150821A (zh) | 离线包的传输、存储方法及装置 | |
CN112559991A (zh) | 系统安全登录方法、装置、设备及存储介质 | |
US8233628B2 (en) | Information processing apparatus and information processing method | |
CN117240625A (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN113672955B (zh) | 一种数据处理方法、系统及装置 | |
CN113722741A (zh) | 数据加密方法及装置、数据解密方法及装置 | |
CN117744116A (zh) | 安装包保护方法、解密方法、装置、电子设备及存储介质 | |
CN116455572B (zh) | 数据加密方法、装置及设备 | |
CN111294359B (zh) | 压力测试方法、装置、计算机设备和存储介质 | |
CN112528309A (zh) | 一种数据存储加密和解密的方法及其装置 | |
CN116743481A (zh) | 服务安全管控方法、装置、设备及存储介质 | |
CN113569265B (zh) | 一种数据处理方法、系统及装置 | |
CN116132041A (zh) | 密钥处理方法、装置、存储介质及电子设备 | |
CN116248265A (zh) | 数据传输协议的执行方法及装置 | |
CN113595982B (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 |