CN112883391B - 数据保护方法、装置以及电子设备 - Google Patents
数据保护方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN112883391B CN112883391B CN202110192154.5A CN202110192154A CN112883391B CN 112883391 B CN112883391 B CN 112883391B CN 202110192154 A CN202110192154 A CN 202110192154A CN 112883391 B CN112883391 B CN 112883391B
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- compiling
- model
- network 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.)
- Active
Links
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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种数据保护方法、装置以及电子设备,涉及人工智能技术领域,该方法包括:获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据;当接收到用户输入的安全策略数据时,利用编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据,所述编译优化框架用于实现对所述待加密网络模型的加速和部署;利用加密算法对所述待加密数据进行加密,得到加密数据。本申请实施例提供的数据保护方法通过加入安全数据对模型数据进行编译,如此可以更好的对网络模型进行保护。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种数据保护方法、装置以及电子设备。
背景技术
随着近几年人工智能行业的飞速发展,人工智能的应用不断出现,而人工智能的核心则是神经网络模型,神经网络模型主要包括神经网络结构以及针对不同应用场景采用大量数据训练之后得到的网络参数。早期的人工智能主要是应用在研究领域,故对商业化后的神经网络模型的保护不够多,如此导致投入很多精力做出来的神经网络模型很容易被移植其他人的机器上使用。因此,如何更好的对神经网络模型进行保护是亟待解决的问题。
发明内容
鉴于以上问题,本申请实施例提供一种数据保护方法、装置以及电子设备,以解决上述技术问题。
本申请实施例是采用以下技术方案实现的:
第一方面,本申请一些实施例提供一种数据保护方法,所述方法包括:获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据;当接收到用户输入的安全策略数据时,利用编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据,所述编译优化框架用于实现对所述待加密网络模型的加速和部署;利用加密算法对所述待加密数据进行加密,得到加密数据。
第二方面,本申请一些实施例还提供一种数据保护装置,包括获取模块、编译模块以及加密模块。获取模块,用于获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据。编译模块,用于当接收到用户输入的安全策略数据时,利用所述编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据,所述编译优化框架用于实现对所述待加密网络模型的加速和部署。加密模块,用于利用加密算法对所述待加密数据进行加密,得到加密数据。
第三方面,本申请一些实施例还提供一种电子控制器,包括处理器以及存储器,所述存储器存储有计算机程序指令,所述计算机程序指令被所述处理器调用时执行上述任一项所述的数据保护方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序代码可被处理器调用以执行上述任一项的数据保护方法。
本申请实施例提供的数据保护方法、装置以及电子设备,本申请通过将安全策略数据加入至模型数据中,如此可以提高网络模型的安全性。具体的,获取待加密网络模型,并确定与该待加密网络模型相关的模型数据,当接收到用户输入的安全策略数据时,电子设备可以利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,其中,编译优化框架用于实现对待加密网络模型的加速与部署,最后利用加密算法对待加密数据进行加密,得到加密数据。本申请在获取到待加密网络模型时通过引入安全数据以及对引入后的数据进行编译,在一定程度上可以更好的对神经网络模型进行保护。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提供的一种数据保护方法的流程示意图。
图2示出了本申请一实施例提供的一种数据保护方法中待加密网络模型的结构示意图。
图3示出了本申请一实施例提供的一种数据保护方法中待加密网络模型下的子函数示意图。
图4示出了本申请一实施例提供的一种数据保护方法中待加密数据的格式示意图。
图5示出了本申请另一实施例提供的一种数据保护方法的流程示意图。
图6示出了本申请又一实施例提供的一种数据保护方法的流程示意图。
图7示出了本申请实施例提供的一种数据保护装置的模块框图。
图8示出了本申请实施例提供的一种数据保护装置中生成模块430的模块框图。
图9示出了本申请实施例提供的一种电子控制器的模块框图。
图10示出了本申请实施例提供的一种计算机可读存储介质的模块框图。
具体实施方式
下面详细描述本申请的实施方式,实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性地,仅用于解释本申请,而不能理解为对本申请的限制。
下面详细描述本申请的实施方式,实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性地,仅用于解释本申请,而不能理解为对本申请的限制。
为了使本技术领域的人员更好地理解本申请的方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着人工智能的不断发展,越来越多的神经网络模型被商业化,对这些神经网络模型的保护也不断受到人们的关注,主要原因是神经网络模型的构建需要投入很大的精力,如果不对深神经网络模型进行保护,其很容易被其他人移植到自己的机器上使用,或者也会被其他人分析以及复制等。现有的人工智能模型都是部署在服务端,安全问题还不是很明显,但是随着移动终端等智能设备的算力越来越强,使用深度学习的人工智能模型应用越来越广泛,如此也使得针对人工智能模型的保密问题也越发引起关注。另外,现有的人工智能框架生成的模型是一种文本信息,极易被泄露,并且一般的人工智能模型都需要在特定的框架下才能加载起来使用,如此也导致了对人工智能模型的保护不好实现,很容易被复制在其他机器上非法使用。
为了解决上述技术问题,申请人经过长期研究,提出了本申请实施例中的数据保护方法、装置以及电子设备,该数据保护方法通过将安全策略数据加入至模型数据中,如此可以提高网络模型的安全性。具体的,获取待加密网络模型,并确定与该待加密网络模型相关的模型数据,当接收到用户输入的安全策略数据时,电子设备可以利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,其中,编译优化框架用于实现对待加密网络模型的加速与部署,最后利用加密算法对待加密数据进行加密,得到加密数据。本申请在获取到待加密网络模型时通过引入安全数据以及对引入后的数据进行编译,在一定程度上可以更好的对神经网络模型进行保护。
如图1所示,图1示意性地示出了本申请实施例提供的数据保护方法的流程示意图。该方法可以包括以下步骤S110至步骤S130。
步骤S110:获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据。
作为一种方式,本申请实施例可以应用于电子设备上,该电子设备可以是服务器或者是终端设备等。电子设备可以获取待加密网络模型,所述待加密网络模型可以人工智能(Artificialinsemination,AI)模型,所述待加密网络模型可以是用户根据自己的需求构建的神经网络模型。
作为另一种方式,待加密网络模型可以由不同的网络层构成,而不同的网络层则可以是卷积层、池化层、全连接层以及激活函数层等构成,待加密网络模型具体包括哪些网络层,这里不进行明确限制。为了更好的理解待加密网络模型,本申请实施例给出了如图2所示的示例,从图2可以看出待加密网络模型可以由不同的函数层构成,这些函数可以由多个不同的子函数组成,且每个子函数的作用也可能不相同,以及各个函数之间也存在着相互连接关系。如图2所示的input_type表示的是输入层,output_label表示的是输出层的标签,Cast函数主要作用是张量数据类型转换,OneHot用于进行特征的转换,Concat用于连接两个或多个数组,GEMM(General Matrix Multiplication,通用矩阵乘)用于对稠密矩阵和卷积核矩阵等进行运算,argmax是用于获取具有最大值的参量的函数等。
本申请实施例中涉及的神经网络模型可以是一种文本信息,故与所述待加密网络模型相关的模型数据可以包括多个函数,而每个函数下面还包括多个子函数,如图3所示的内容即为argmax下的子函数,通过图3中的子函数argmax才可以获取到最大值。作为另一种方式,获取到待加密网络模型之后,本申请实施例可以确定与待加密网络模型相关的模型数据,所述模型数据可以包括所述待加密网络模型对应的结构数据、参数数据以及可执行数据等。
作为一种方式,在获取到待加密网络模型之后,本申请实施例可以确定是否接收到用户输入的安全策略数据,如果可收到用户输入的安全策略数据,则利用编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据,即进入步骤S120。另外,如果没有接收到用户输入的安全策略数据,则对模型数据进行对称加密,以及对加密后获取的文件再次进行加密,通过层层加密,本申请实施例可以更好的保护待加密网络模型。
步骤S120:当接收到用户输入的安全策略数据时,利用编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据。
本申请实施例中,编译优化框架可以是TVM编译器,TVM是一个开源的可面向多种硬件设备的深度学习编译器,它的作用在于打通模型框架、模型表现以及硬件设备的鸿沟,进而得到表现最好的可部署的深度学习模型,实现端到端的深度学习模型部署。TVM通过中间表示来支持不同的硬件后端,同时在语言层面支持用户自定义硬件优化原语,从而解决通用性问题。
作为一种方式,当接收到用户输入的安全策略数据时,电子设备可以利用TVM编译器对安全策略数据和模型数据进行编译,以得到二进制数据,所述安全策略数据可以是开发人员根据实际需求输入的数据。TVM编译器在获取到待加密网络模型之后,首先可以对待加密网络模型相关的模型数据进行优化,以适配其他电子设备,然后可以将优化后的模型数据进行编译,得到待加密数据,待加密数据的格式可以如图4所示,从图4看出待加密数据可以是二进制数据。
作为另一种方式,当接收到用户输入的安全策略数据时,本申请实施例可以利用所述安全策略数据对编译优化框架进行定制,得到定制后的编译优化框架,然后利用定制后的所述编译优化框架对模型数据进行编译,得到待加密数据。具体的,在接收到用户输入的安全策略数据时,电子设备可以基于所述安全策略数据对编译优化框架进行修改,如可以在编译优化框架中加入安全子框架,所述安全子框架可以是基于用户输入的安全策略数据构建的,其主要作用是在对模型数据进行编译时,将安全代码加入至模型编译结果。
在一些实施方式中,定制后的编译优化框架不仅可以对模型数据进行优化和编译,同时在编译的过程中可以将安全数据进行编译,并将编译结果插入至模型数据编译的结果中。另外,在获取到定制后的编译优化框架,电子设备也可以在利用定制后的编译优化框架对模型数据进行编译的过程中加入安全代码,此时获取的待加密数据则可以由安全代码和业务代码构成,其中,安全代码可以是用户输入的,也可以是定制化后的编译优化框架自动加入的。业务代码则可以是和待加密网络模型相关的代码。在一个具体的实施方式中,安全代码可以插入在业务代码的中间,如此可以提高待加密网络模型的安全性。
本申请实施例通过利用定制后的编译优化框架可以将安全代码加入至业务代码中,因为安全代码和业务代码都是经过编译后获取的,故安全代码和业务代码均是二进制格式的,电子设备通过将安全代码加入至业务代码中,如此可以防止其他人恶意篡改待加密网络模型,或者可以加大其他人逆推出待加密网络模型的难度,提高对待加密网络模型的保护力度。
在一些实施方式中,利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,包括:利用所述编译优化框架将所述安全策略数据插入至所述模型数据中,以及利用所述编译优化框架对插入所述安全数据后的所述模型数据进行编译,得到待加密数据。
步骤S130:利用加密算法对所述待加密数据进行加密,得到加密数据。
在一些实施方式中,电子设备在获取到待加密数据之后,其可以利用加密算啊对待加密数据进行加密,得到加密数据。
本申请实施例提供的数据保护方法通过将安全策略数据加入至模型数据中,如此可以提高网络模型的安全性。具体的,获取待加密网络模型,并确定与该待加密网络模型相关的模型数据,当接收到用户输入的安全策略数据时,电子设备可以利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,其中,编译优化框架用于实现对待加密网络模型的加速与部署,最后利用加密算法对待加密数据进行加密,得到加密数据。本申请在获取到待加密网络模型时通过引入安全数据以及对引入后的数据进行编译,在一定程度上可以更好的对神经网络模型进行保护。
如图5所示,本申请实施例另一实施例提供了一种数据保护方法,该数据保护方法可以应用于车辆,其包括以下步骤S210至步骤S280。
步骤S210:获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据。
步骤S220:确定所述模型数据对应的所述待加密网络模型的格式。
在一些实施方式中,电子设备在获取到待加密网络模型相关的模型数据之后,其可以根据该模型数据确定所述待加密网络模型的格式,所述待加密网络模型的格式可以是通过不同框架构建出所述待加密网络模型的格式,即待加密网络模型的格式以是构建待加密网络模型的网络框架。例如,待加密网络模型A是基于TensorFlow框架构建的,则所述待加密网络模型A的格式可以为TensorFlow。又如,待加密网络模型B是基于Pytorch框架构建的,则所述待加密网络模型A的格式可以为Pytorch。
在一些实施方式中,获取到待加密网络模型后,电子设备可以先确定所述待加密网络模型是否为指定格式的网络模型,如果不是,则可以先将所述待加密网络模转换为指定格式的网络模型,所述指定格式的网络模型可以是开放神经网络交换格式的网络模型。
步骤S230:确定所述待加密网络模型的格式是否为开放神经网络交换格式。
在一些实施方式中,当确定出待加密网络模型的格式后,电子设备可以先确定待加密网络模型的格式是否为开放神经网络交换格式(Open Neural Network Exchange,onnx),开放神经网络交换格式是一个用于表示深度学习模型的标准,通过开放神经网络交换格式可以使模型在不同框架之间进行转移。换句话说,开放神经网络交换格式是一种针对机器学习所设计的开放式的文件格式,其主要用于存储训练好的模型。通过开放神经网络交换格式可以使不同的人工智能框架(如Pytorch,MXNet)采用相同格式存储模型数据并交互。
作为一种方式,电子设备可以对待加密网络模型涉及的函数、所使用的语言、所涉及的标准等进行分析,并通过分析结果确定待加密网络模型的格式是否为开放神经网络交换格式。本申请实施例,为了更加快速有效的对待加密网络模型进行加密,通过将其格式转换为开放神经网络交换格式,不仅可以方便待加密网络模型用于其他设备,而且也可以方便对所述待加密网络模型的加密。
作为另一种方式,如果待加密网络模型的格式为开放神经网络交换格式,则利用所述编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据,即进入步骤S240。另外,如果待加密网络模型的格式不是开放神经网络交换格式,则将所述待加密网络模型的格式转换为开放式网络交换格式,得到格式转换模型,即进入步骤S260。
步骤S240:利用所述编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据。
步骤S250:利用加密算法对所述待加密数据进行加密,得到加密数据。
步骤S260:将所述待加密网络模型的格式转换为开放式网络交换格式,得到格式转换模型。
在一些实施方式中,如果待加密网络模型的格式是开放神经网络交换格式,则利用所述编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据。另外,如果待加密网络模型的格式不是开放神经网络交换格式,则将待加密网络模型的格式转换为开放式网络交换格式,得到格式转换模型。
通过上述介绍可以知道开放神经网络交换格式主要作用是将不同框架的神经网络模型部署到其他需要的框架下,经典的几个线路有:Pytorch->onnx->TensorrT,Pytorch->onnx->TVM,或者F->onnx->ncNN等等。可见,开放神经网络交换格式相当于一个翻译的作用。例如,在Pytorch框架下构建了待加密网络模型,电子设备可以将所述待加密网络模型保存为.pt文件,然后将该模型文件叫做model.pt,model.pt中保存的数据可以是二进制的模型权重文件,在此基础上,电子设备可以将model.pt转化为model.onnx格式,在这里onnx可以为后缀名称,而model.onnx表示的则是onnx格式的权重文件,该权重文件不仅可以包括待加密网络模型的权重值,也可以包括神经网络的网络流动信息,以及每层网络的输入输出信息和一些其他的辅助信息。
步骤S270:获取所述格式转换模型对应的转换数据,并利用所述编译优化框架对所述转换数据和所述安全数据进行编译,得到转换后的待加密数据。
步骤S280:利用加密算法对所述转换后的待加密数据进行加密,得到第二加密数据。
本申请实施例提供的数据保护方法通过将安全策略数据加入至模型数据中,如此可以提高网络模型的安全性。具体的,获取待加密网络模型,并确定与该待加密网络模型相关的模型数据,当接收到用户输入的安全策略数据时,电子设备可以利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,其中,编译优化框架用于实现对待加密网络模型的加速与部署,最后利用加密算法对待加密数据进行加密,得到加密数据。本申请在获取到待加密网络模型时通过引入安全数据以及对引入后的数据进行编译,在一定程度上可以更好的对神经网络模型进行保护。另外,本申请实施例通过将待加密网络模型转换为开放神经网络交换格式可以加快模型迁移的速率,不仅可以节约待加密网络模型迁移至其他电子设备的时间,而且可以更加快速有效的对待加密网络模型进行加密。并且,本申请实施例可以把安全代码和业务代码融合,加大了黑客破解网络模型的难度,同时网络模型的兼容性和性能也更好。
如图6所示,本申请实施例又一实施例提供了一种数据保护方法,该数据保护方法可以应用于车辆,其包括以下步骤S310至步骤S340。
步骤S310:获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据。
步骤S320:当接收到用户输入的安全策略数据时,利用编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据。
通过上述介绍可以知道,电子设备主要是通过编译优化框架对待加密网络模型对应的模型数据以及安全数据进行编译,得到待加密数据。其中,编译优化框架可以是通过安全数据改造后的端到端的编译优化框架,在改造所述端到端的编译优化框架时,本申请实施例可以改造所述端到端的编译优化框架生成二进制的op逻辑,如此可以增加对安全的检查,如果是非安全环境,电子设备则可以直接输出无价值结果。换句话说,本申请实施例在对编译优化框架进行定制时,其主要是对端到端的编译优化框架中生成二进制的逻辑模块进行修改,端到端的编译优化框架中的其他逻辑则可以保持不变。
在一些实施方式中,待加密数据可以包括第一文本和第二文本,其中,第一文本可以包括待加密网络模型的结构参数,第二文本则可以包括待加密网络模型的模型参数。可见,利用编译优化框架对模型数据和安全数据进行编译之后,电子设备可以得到两个文本,这两个文本分别是第一文本和第二文本,其中,第一文本的格式可以是json(JavaScriptObjectNotation),该json文件中存储的数据可以是所述待加密网络模型的结构;第二文本的格式可以是param,所述param文本中存储的数据可以是待加密网络模型的参数,所述参数可以是权重参数、步径参数以及损失函数等。
作为一种方式,获取到待加密数据对应的第一文本和第二文本之后,电子设备可以利用对称加密算法对所述第一文本和所述第二文本进行加密,得到加密数据,即进入步骤S330。
步骤S330:利用对称加密算法对所述第一文本和所述第二文本进行加密,得到加密数据。
在一些实施方式中,获取到待加密数据后,电子设备首先可以对所述待加密数据中的第一文本和第二文本进行加密。具体的,电子设备可以通过服务器端的私有证书,使用openssl(开放式安全套接层协议)对所述第一文本和所述第二文本进行加密,得到加密数据,其中,所述加密数据可以由目标结构组成,所述目标结构的格式可以是“结构说明|密钥|加密数据”,结构说明主要是对待加密网络模型对应数据的格式进行说明,结构说明可以包括对密钥格式的说明,如密钥是256位的,或者密钥是128位的等。结构说明也可以包括对所述待加密网络模型相关数据的说明,以及说明密钥是哪种类型的密钥,或者是说明密钥是什么,以及说明密钥的版本等。例如,结构说明包括公钥的版本,公钥1、公钥2以及公钥3等等。
在另一些实施方式中,密钥可以是AES密钥(Advanced Encryption Standard,高级加密标准),因AES算法是对称加密算法,故本申请实施例在对第一文本和第二文本进行加密时可以采用对称算法,AES密钥可以通过随机生成。另外,本申请实施例也可以采用ECDSA算法(Elliptic Curve Digital SignatureAlgorithm,椭圆曲线数字签名算法)对AES密钥进行加密,ECDSA算法为高强度的加密算法,如此可以进一步保证待加密数据的安全性。另外,加密数据可以是对第一文本和第二文本进行加密后的文本,即加密数据可以是对json文本和param进行加密后得到的数据。需要说明的是,在对第一文本和第二文本进行加密时,本发明实施也可以采用非对称算法。
在另一些实施方式中,待加密数据还可以包括第三文本,第三文本包括所述待检网络模型对应的静态链接库和所述安全策略数据,所述第三文本可以是.a文件,第三文本用于存储所述待加密网络模型的整个算法图,即所述第三文本可以包括实现所述待加密网络模型所需的所有算法或者函数等。
作为一种方式,电子设备在利用对称加密算法对第一文本和第二文本进行加密,得到加密数据之后,本申请实施例可以将第三文本和所述加密数据进行封装,得到目标文本,并对所述目标文本再次进行加密,得到目标加密数据。其中,目标文本可以是待加密网络模型对应的可执行文件,其可以是so文件,可见,目标文本是由加密数据和第三文本构成。
综上,电子设备在获取到第一文本、第二文本和第三文本后,其可以先利用对称算法对第一文本和第二文本进行加密,得到加密文本,然后加载所述加密文本和第三文本,进而形成目标文本,获取到目标文本后,电子设备可以对目标文本再次进行加密,得到目标加密数据。
本申请实施例可以可以利用安全常用的加固方法对所述目标文本进行加密,所述加固可以是有源保护也可以是无源保护。有源保护可以分为自解码、混淆、源码VMP等,无源保护则可以分为加壳以及VMP保护等。优选的,本申请实施例可以采用加壳方式对目标文件进行二次加密。通过利用加壳方式加固,本申请实施例可以降低加解密对APP性能的影响,运行时不会增加额外开支,并且接入成本低。
步骤S340:将所述加密数据发送到目标电子设备,并指示所述目标电子设备对所述加密数据进行解密,得到所述待加密数据。
在一些实施方式中,电子设备在获取到加密数据后,其可以将加密数据发送到目标电子设备,所述目标电子设备和电子设备可以通过有线或者无线方式连接。将加密数据发送到目标电子设备时,目标电子设备可以对加密数据进行解密,以此得到待加密数据。另外,目标电子设备在对加密数据进行解密,得到待加密数据后,其可以自动对所述待加密数据涉及的内容进行检测,具体的,目标电子设备对安全环境进行检查,如果检查失败则输出随机结果,从而使非法使用者无法正常使用功能。其中,安全环境可以包括各种调试环境、root环境、应用程序签名、完整性校验以及授权信息等。
在一些实施方式中,电子设备将加密数据发送至目标电子设备后,所述目标电子设备可以读取加密数据,具体的,目标电子设备可以先执行第一次解密,得到目标文本,然后对所述目标文本进行分割,得到第三文本和加密数据,接着对加密数据进行结构分析,具体的,目标电子设备可以读取加密数据对应的结构内容,进而确定出AES的长度以及加密数据的长度,进而从加密数据中分离出AES密钥和加密数据等,最后分别执行第二次解密操作,即利用RSA对密钥进行解密,用解密后的密钥解密数据,得到待加密数据,RSA是目前使用最广泛的公钥密码体制之一。
在另一些实施方式中,为了防止加密数据在分发过程中出现安全问题,本申请实施例可以在TVM加载框中对加密数据进行解密,进而得到待加密数据,如此可以防止分发安全问题。
本申请实施例提供的数据保护方法通过将安全策略数据加入至模型数据中,如此可以提高网络模型的安全性。具体的,获取待加密网络模型,并确定与该待加密网络模型相关的模型数据,当接收到用户输入的安全策略数据时,电子设备可以利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,其中,编译优化框架用于实现对待加密网络模型的加速与部署,最后利用加密算法对待加密数据进行加密,得到加密数据。本申请在获取到待加密网络模型时通过引入安全数据以及对引入后的数据进行编译,在一定程度上可以更好的对神经网络模型进行保护。另外,本申请实施例通过多层加密对传输的模型数据进行加密,从而可以大大提高待加密网络模型的安全性,降低人工智能模型被泄露的可能性,且在对待加密网络模型进行保护时,本申请实施例引入了编译优化框架,如此可以使对网络模型的保护更好实现。
如图7所示,本申请实施例还提供一种数据保护装置400,该数据保护装置400包括:获取模块410、编译模块420和加密模块430。
获取模块410,用于获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据。
编译模块420,用于当接收到用户输入的安全策略数据时,利用所述编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据,所述编译优化框架用于实现对所述待加密网络模型的加速和部署。
进一步地,编译模块420还用于利用所述编译优化框架将所述安全策略数据插入至所述模型数据中,以及利用所述编译优化框架对插入所述安全数据后的所述模型数据进行编译,得到待加密数据。
加密模块430,用于利用加密算法对所述待加密数据进行加密,得到加密数据。
请参阅图8,加密模块430可以包括确定单元431和编译单元432。
确定单元431,用于所述模型数据对应的所述待加密网络模型的格式,并确定所述待加密网络模型的格式是否为开放神经网络交换格式。
编译单元432,用于如果所述待加密网络模型的格式是开放神经网络交换格式,则利用所述编译优化框架对所述模型数据和所述安全数据进行编译,得到待加密数据。
进一步地,所述待加密数据包括第一文本和第二文本,所述第一文本包括所述待加密网络模型的结构参数,所述第二文本包括所述待加密网络模型的模型参数,加密模块430还用于利用对称加密算法对所述第一文本和所述第二文本进行加密,得到加密数据。
进一步地,所述待加密数据还包括第三文本,所述第三文本包括所述待加密网络模型对应的静态链接库和所述安全策略数据。加密模块430还用于将所述第三文本和所述加密数据进行封装,得到目标文本,并对所述目标文本再次进行加密,得到目标加密数据。
进一步地,数据保护装置400还可以用于如果所述待加密网络模型的格式不是开放式网络交换格式,则将所述待加密网络模型的格式转换为开放式网络交换格式,得到格式转换模型。获取所述格式转换模型对应的转换数据,并利用所述编译优化框架对所述转换数据和所述安全数据进行编译,得到转换后的待加密数据。利用加密算法对所述转换后的待加密数据进行加密,得到第二加密数据。
进一步地,数据保护装置400还可以用于将所述加密数据发送到目标电子设备,并指示所述目标电子设备对所述加密数据进行解密,得到所述待加密数据。
本申请实施例提供的数据保护装置通过将安全策略数据加入至模型数据中,如此可以提高网络模型的安全性。具体的,获取待加密网络模型,并确定与该待加密网络模型相关的模型数据,当接收到用户输入的安全策略数据时,电子设备可以利用编译优化框架对模型数据和安全数据进行编译,得到待加密数据,其中,编译优化框架用于实现对待加密网络模型的加速与部署,最后利用加密算法对待加密数据进行加密,得到加密数据。本申请在获取到待加密网络模型时通过引入安全数据以及对引入后的数据进行编译,在一定程度上可以更好的对神经网络模型进行保护。
如图9所示,本申请实施例还提供一种电子控制器500,该电子控制器500包括处理器510以及存储器520,存储器520存储有计算机程序指令,计算机程序指令被处理器510调用时实执行上述的数据保护方法
处理器510可以包括一个或者多个处理核。处理器510利用各种接口和线路连接整个电子控制器内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行电子控制器的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-PrograMMable GateArray,FPGA)、可编程逻辑阵列(PrograMMableLogicArray,PLA)中的至少一种硬件形式来实现。处理器510可集成中央处理器510(Central Processing Unit,CPU)、图像处理器510(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块通信芯片进行实现。
存储器520可以包括随机存储器520(RandomAccess Memory,RAM),也可以包括只读存储器520(Read-Only Memory)。存储器520图可用于存储指令、程序、代码、代码集或指令集。存储器520图可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区还可以存储电子控制器在使用中所创建的数据等。
如图10所示,本申请实施例还提供一种计算机可读存储介质600,该计算机可读取存储介质600中存储有计算机程序指令610,计算机程序指令610可被处理器调用以执行上述实施例中所描述的方法。
计算机可读取存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质包括非易失性计算机可读取存储介质(non-transitory computer-readable storage medium)。计算机可读取存储介质600具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
以上,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制,虽然本申请已以较佳实施例揭示如上,然而并非用以限定本申请,任何本领域技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案内容,依据本申请的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本申请技术方案的范围内。
Claims (10)
1.一种数据保护方法,其特征在于,所述方法包括:
获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据;
当接收到用户输入的安全策略数据时,根据所述安全策略数据对编译优化框架进行定制,得到定制后的编译优化框架;
利用所述定制后的编译优化框架分别对所述模型数据和所述安全策略数据进行编译,并将对所述安全策略数据编译得到的编译结果插入至对所述模型数据编译得到的编译结果中,得到待加密数据,所述编译优化框架用于实现对所述待加密网络模型的加速和部署;
利用加密算法对所述待加密数据进行加密,得到加密数据。
2.根据权利要求1所述的方法,其特征在于,所述利用所述定制后的编译优化框架分别对所述模型数据和所述安全策略数据进行编译,包括:
确定所述模型数据对应的所述待加密网络模型的格式,并确定所述待加密网络模型的格式是否为开放神经网络交换格式;
如果所述待加密网络模型的格式是开放神经网络交换格式,则利用所述定制后的编译优化框架分别对所述模型数据和所述安全策略数据进行编译。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果所述待加密网络模型的格式不是开放式网络交换格式,则将所述待加密网络模型的格式转换为开放式网络交换格式,得到格式转换模型;
获取所述格式转换模型对应的转换数据,并利用所述定制后的编译优化框架分别对所述转换数据和所述安全策略数据进行编译,并将对所述安全策略数据编译得到的编译结果插入至对所述转换数据编译得到的编译结果中,得到转换后的待加密数据;
利用加密算法对所述转换后的待加密数据进行加密,得到第二加密数据。
4.根据权利要求1所述的方法,其特征在于,所述待加密数据包括第一文本和第二文本,所述第一文本包括所述待加密网络模型的结构参数,所述第二文本包括所述待加密网络模型的模型参数;
所述利用加密算法对所述待加密数据进行加密,得到加密数据,包括:
利用对称加密算法对所述第一文本和所述第二文本进行加密,得到加密数据。
5.根据权利要求4所述的方法,其特征在于,所述待加密数据还包括第三文本,所述第三文本包括所述待加密网络模型对应的静态链接库和所述安全策略数据;
所述利用加密算法对所述待加密数据进行加密,得到加密数据之后,包括:
将所述第三文本和所述加密数据进行封装,得到目标文本,并对所述目标文本再次进行加密,得到目标加密数据。
6.根据权利要求1所述的方法,其特征在于,所述利用加密算法对所述待加密数据进行加密,得到加密数据之后,包括:
将所述加密数据发送到目标电子设备,并指示所述目标电子设备对所述加密数据进行解密,得到所述待加密数据。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
当接收到用户输入的安全策略数据时,利用所述编译优化框架将所述安全策略数据插入至所述模型数据中,以及利用所述编译优化框架对插入所述安全策略数据后的所述模型数据进行编译,得到待加密数据。
8.一种数据保护装置,其特征在于,所述装置包括:
获取模块,用于获取待加密网络模型,并确定与所述待加密网络模型相关的模型数据;
编译模块,用于当接收到用户输入的安全策略数据时,根据所述安全策略数据对编译优化框架进行定制,得到定制后的编译优化框架;利用所述定制后的编译优化框架分别对所述模型数据和所述安全策略数据进行编译,并将对所述安全策略数据编译得到的编译结果插入至对所述模型数据编译得到的编译结果中,得到待加密数据,所述编译优化框架用于实现对所述待加密网络模型的加速和部署;
加密模块,用于利用加密算法对所述待加密数据进行加密,得到加密数据。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110192154.5A CN112883391B (zh) | 2021-02-19 | 2021-02-19 | 数据保护方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110192154.5A CN112883391B (zh) | 2021-02-19 | 2021-02-19 | 数据保护方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112883391A CN112883391A (zh) | 2021-06-01 |
CN112883391B true CN112883391B (zh) | 2022-10-14 |
Family
ID=76056654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110192154.5A Active CN112883391B (zh) | 2021-02-19 | 2021-02-19 | 数据保护方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112883391B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001748B (zh) * | 2022-04-29 | 2023-11-03 | 北京奇艺世纪科技有限公司 | 一种模型处理方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999723A (zh) * | 2012-11-20 | 2013-03-27 | 焦点科技股份有限公司 | 主动防御xss攻击的数据防御组件生成方法及其装置 |
CN111131281A (zh) * | 2019-12-30 | 2020-05-08 | 北京永新视博数字电视技术有限公司 | 消息传输方法、装置、系统及其保护代码更新方法、装置 |
CN112269970A (zh) * | 2020-10-28 | 2021-01-26 | 国能日新科技股份有限公司 | 一种脚本加密方法、装置、服务器及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9389840B2 (en) * | 2009-02-11 | 2016-07-12 | Johnathan Mun | Compiled and executable method |
US20110191848A1 (en) * | 2010-02-03 | 2011-08-04 | Microsoft Corporation | Preventing malicious just-in-time spraying attacks |
CN109981252B (zh) * | 2019-03-12 | 2020-07-10 | 中国科学院信息工程研究所 | 一种基于关键路径加密的人工智能处理器安全增强系统及方法 |
CN110619220B (zh) * | 2019-08-09 | 2022-03-11 | 北京小米移动软件有限公司 | 对神经网络模型加密的方法及装置、存储介质 |
US20200327454A1 (en) * | 2020-06-26 | 2020-10-15 | Intel Corporation | Secured deployment of machine learning models |
CN112101529A (zh) * | 2020-10-14 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种用于神经网络模型推理跨平台的部署方法及架构 |
-
2021
- 2021-02-19 CN CN202110192154.5A patent/CN112883391B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999723A (zh) * | 2012-11-20 | 2013-03-27 | 焦点科技股份有限公司 | 主动防御xss攻击的数据防御组件生成方法及其装置 |
CN111131281A (zh) * | 2019-12-30 | 2020-05-08 | 北京永新视博数字电视技术有限公司 | 消息传输方法、装置、系统及其保护代码更新方法、装置 |
CN112269970A (zh) * | 2020-10-28 | 2021-01-26 | 国能日新科技股份有限公司 | 一种脚本加密方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112883391A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
JP5996810B2 (ja) | 自己書換え基盤のアプリケーションコード難読化装置及びその方法 | |
KR101328012B1 (ko) | 애플리케이션 코드 난독화 장치 및 그 방법 | |
CN107908392B (zh) | 数据采集工具包定制方法、装置、终端和存储介质 | |
CN111552931A (zh) | java代码的加壳方法与系统 | |
CN109787768B (zh) | 一种身份验证配置方法、装置及计算机可读存储介质 | |
CN110826031B (zh) | 加密方法、装置、计算机设备及存储介质 | |
US7970133B2 (en) | System and method for secure and flexible key schedule generation | |
CN104680039A (zh) | 一种应用程序安装包的数据保护方法及装置 | |
CN107947917A (zh) | 一种生成白盒密钥的方法及装置 | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
CN110619224B (zh) | 一种数据处理方法和相关装置 | |
CN108183796A (zh) | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 | |
WO2023029447A1 (zh) | 模型保护方法、装置、设备、系统以及存储介质 | |
CN110489942A (zh) | 一种WebAssembly文件的处理方法及系统 | |
CN111819542A (zh) | 编译设备和方法 | |
CN112883391B (zh) | 数据保护方法、装置以及电子设备 | |
CN107871066B (zh) | 基于安卓系统的代码编译方法及装置 | |
CN111259370A (zh) | 一种fpga程序安全验证方法、系统、终端及存储介质 | |
CN113656765A (zh) | java程序安全处理方法、装置、计算机设备及存储介质 | |
CN111078224A (zh) | 软件包文件数据处理方法、装置、计算机设备及存储介质 | |
CN108021790B (zh) | 文件保护方法、装置、计算设备及计算机存储介质 | |
CN116257867A (zh) | 秘钥加密方法及装置 | |
CN110888646B (zh) | 部署方法、装置、系统和存储介质 | |
CN107968793A (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 |