本发明涉及数据安全领域,特别涉及一种模型数据保护方法和可读计算机存储介质。
背景技术:
深度学习领域需要大量数据来训练模型算法得到权重,在最终部署时权重一般固化于模型中,因而对于模型算法的保护就显得尤为重要。目前,市场上各种开源或不开源的toolkit框架,有的没有对模型数据进行加密,有的只是对模型数据进行简单加密,对于模型保护没有安全度高且行之有效的方法。
技术实现要素:
为此,需要提供一种模型数据保护的技术方案,用以解决现有的模型数据保护方式安全性差等问题。
为实现上述目的,发明人提供了一种模型数据保护方法,所述方法包括以下步骤:
对模型数据进行加密,得到加密文件;
对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;
读取存储文件,对所述存储文件进行封装,得到封装文件;
接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。
作为一种可选的实施例,所述方法包括以下步骤:
将各切片数据与其对应的切片信息对应存储于数据结构体中,并对所述数据结构体进行混淆得到存储文件。
作为一种可选的实施例,所述切片信息包括切片标识信息、切片大小以及切片地址偏移量。
作为一种可选的实施例,所述封装文件被存储于第一设备中,所述文件获取指令通过以下方式触发:
第一设备与第二设备建立连接,在第二设备上运行应用加载程序,以触发所述文件获取指令,以使得所述第二设备从所述第一设备中获取存储文件。
作为一种可选的实施例,所述方法包括以下步骤:
获取所述封装文件并解析,采用加密规则对应的解密规则对加密的切片信息进行解密,再根据切片信息获取模型切片数据并依次对各模型切片数据进行拼装,并对拼装数据进行解密,得到最终的原始模型数据。
发明人还提供了一种可读计算机存储介质,所述可读计算机存储介质存储包括第一存储介质和第二存储介质,所述第一存储介质中存储有第一计算机程序,所述第二存储介质中存储有第二计算机程序;
所述第一计算机程序被处理器运行时实现以下步骤:
对模型数据进行加密,得到加密文件;
对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;
所述第二计算机程序被处理器运行时实现以下步骤:
读取存储文件,对所述存储文件进行封装,得到封装文件;
接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。
作为一种可选的实施例,所述第一计算机程序被处理器运行时还实现以下步骤:
将各切片数据与其对应的切片信息对应存储于数据结构体中,并对所述数据结构体进行混淆得到存储文件。
作为一种可选的实施例,所述切片信息包括切片标识信息、切片大小以及切片地址偏移量。
作为一种可选的实施例,所述第一存储介质被设置于第一设备中,所述第二存储介质被设置于第二设备中;
当第一设备与第二设备建立连接后,在第二设备上运行应用加载程序,以触发所述文件获取指令,以使得所述第二设备从所述第一设备中获取存储文件。
作为一种可选的实施例,所述第二计算机程序被处理器运行时实现以下步骤:
获取所述封装文件并解析,采用加密规则对应的解密规则对加密的切片信息进行解密,再根据切片信息获取模型切片数据并依次对各模型切片数据进行拼装,并对拼装数据进行解密,得到最终的原始模型数据。
本发明提供了一种模型数据保护方法和可读计算机存储介质,所述方法包括以下步骤:对模型数据进行加密,得到加密文件;对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;读取存储文件,对所述存储文件进行封装,得到封装文件;接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。采用上述方案后,模型数据被加密后分散存储,即便某一部分切片数据被盗取也无济于事,有效提升了模型数据的安全性。
附图说明
图1为本发明一实施例涉及的模型数据保护方法的流程图;
图2为本发明一实施例涉及的模型数据保护装置的结构示意图;
图3为本发明另一实施例涉及的模型数据保护装置的结构示意图;
图4为本发明另一实施例涉及的模型数据保护装置的结构示意图;
图5为本发明另一实施例涉及的模型数据保护方法的流程图;
图6为本发明另一实施例涉及的模型数据保护方法的流程图。
附图标记:
10、第一设备;
20、第二设备;
101、第一存储介质;
102、第二存储介质。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本发明提供了一种一种模型数据保护方法,用以提高模型数据保护的安全性,所述方法包括以下步骤:
首先进入步骤s101对模型数据进行加密,得到加密文件。
优选的,所述模型数据是指深度学习相关的模型数据。在人工智能领域,数据的运算是基于深度学习模型进行的,因而对模型数据的保护就显得尤为关键。
优选的,在本实施方式中,对模型数据文件的加密可以采用aes128加密算法进行,aes128加密算法具有较高的安全性,可以有效对模型数据进行保护。当然,在另一些实施方式中,对模型数据的加密还可以采用其他加密算法进行。
而后进入步骤s102对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件。
在本实施方式中,所述切片信息包括切片标识信息、切片大小以及切片地址偏移量。所述切片标识信息是将不同切片加以区分的物理量,可以是数字、字母、汉字、字符串等。切片标识信息有助于各切片进行还原重组。不同切片的大小可以相同,也可以不同。所述切片地址偏移量是指各切片位于特定存储单元中的存储地址,所述特定存储单元优选为emmc存储器。当加密文件经过切片并保留有各切片的切片信息后,系统就可以将原有的加密文件(切片前完整的加密文件)予以删除,从而进一步提高模型数据保护的安全性。
优选的,在本实施方式中,所述方法包括以下步骤:将各切片数据与其对应的切片信息对应存储于数据结构体中,并对所述数据结构体进行混淆得到存储文件。所述数据结构体是指程序代码的数据结构,比如数组或其他组织数据的方式等。优选的,数据结构体中存储的切片信息对外不可见,以提高切片信息的整体安全性。
而后进入步骤s103读取存储文件,对所述存储文件进行封装,得到封装文件。
在本实施方式中,可以通过自定义传输数据协议来读取存储于httpsserver程序数据结构体中信息,并以protobuf对各切片对应的切片信息进行传输封装。protobuf是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。
而后进入步骤s104接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。
在本实施方式中,所述封装文件被存储于第一设备中,所述文件获取指令通过以下方式触发:第一设备与第二设备建立连接,在第二设备上运行应用加载程序,以触发所述文件获取指令,以使得所述第二设备从所述第一设备中获取存储文件。
所述第二设备为具有数据处理功能的电子设备,可以是一台上位机,如pc。当深度学习模型存储模块(即ai记忆棒,为存储封装文件的载体)通过usb口插入第二设备(如主机),并以rndis形式(使用usb协议作为下层传输协议,向上层提供虚拟以太网连接)和主机端通信,配置好计算棒网络后,在模块中启动httpsserver。
在某些实施例中,所述方法包括以下步骤:获取所述封装文件并解析,采用加密规则对应的解密规则对加密的切片信息进行解密,再根据切片信息获取模型切片数据并依次对各模型切片数据进行拼装,并对拼装数据进行解密,得到最终的原始模型数据。
应用程序中的httpsclient对自定义协议进行解析,找到对应切片id、切片大小以及切片地址偏移量对应关系。而后用对称秘钥对加密模型片进行解密,并随机存储。机端或计算棒中应用程序通过切片id,切片大小以切片地址偏移量和解密模型切片对应关系,分段加载分片模型,进行推理。
推理是ai领域的一个术语,比如模型文件为用于人脸识别的神经网络模型文件,那么推理就是指指获取人脸识别结果。以人脸识别为例,推理步骤具体包括:获取人脸图片、加载数据模型、图片数据传输至模型、通过ai计算棒中npu或其它专用计算设备计算出结果,进行人脸比对等。
如图5所示,模型数据保护装置包括客户端和服务端,服务端为ai记忆棒(图5左侧一栏),客户端为pc(图5右侧一栏)。所述客户端与服务端通信连接。在服务端中,对模型数据的处理包括:对模型数据进行aes128加密,并对加密模型进行切片,以及记录切片id以及地址偏移信息,而后将切片模型随机存储于httpsserver程序数据结构中,并进行混淆,以及通过自定义协议以protobuf对切片模型进行封装。在客户端中,对数据的处理包括:首先对模型进行加载推理,而后采用对称密钥对封装数据进行解密并随机存储,而后找到对应切片id及偏移地址信息、加密片对应关系,并httpsclient对自定义协议进行解析。
如图6所示,在某些实施例中,所述方法包括以下步骤:
(1)对模型进行混淆。
(2)对模型进行aes128加密。
(3)对加密后的模型进行随机切片,记录切片id、切片偏移地址,并进行混淆(混淆规则可自行设定,需平衡混淆算法复杂度已经去混淆时间),再对记录信息进行加密,随机存储于本地。
(4)应用程序读取加密后模型切片及信息。
(5)用对称秘钥进行解密。
(6)按照混淆规则解析对应切片id及偏移地址信息、切片对应关系。
(7)多程序加载模型推理。
发明人还提供了一种可读计算机存储介质,所述可读计算机存储介质存储包括第一存储介质和第二存储介质,所述第一存储介质中存储有第一计算机程序,所述第二存储介质中存储有第二计算机程序;
所述第一计算机程序被处理器运行时实现以下步骤:
对模型数据进行加密,得到加密文件;
对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;
所述第二计算机程序被处理器运行时实现以下步骤:
读取存储文件,对所述存储文件进行封装,得到封装文件;
接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。
在某些实施例中,所述第一计算机程序被处理器运行时还实现以下步骤:将各切片数据与其对应的切片信息对应存储于数据结构体中,并对所述数据结构体进行混淆得到存储文件。
如图2所示,为本发明一实施例涉及的模型数据保护装置的结构示意图。所述装置包括第一设备10和第二设备20,所述第一设备10内设置有第一存储介质101,所述第二设备20内设置有第二存储介质102,第一设备10和第二设备20通信连接,所述第一存储介质为前文所述的第一存储介质,所述第二存储介质为前文所述的第二存储介质。
如图3所示,为本发明另一实施例涉及的模型数据保护装置的结构示意图。在这一实施例中,第一存储介质通过usb数据线与pc1建立连接,为pc1提供服务。为了进一步拓宽本申请的第一存储介质中的计算机程序的应用场景,如图4所示,在某些实施例中,第一存储介质通过usb数据线与pc1建立连接的同时,pc1还可以通过互联网络与多台其他pc(如pc2、pc3)等连接,从而使得第一计算机程序可以为多台pc构成的组网提供服务。pc、pc2、pc3都可以通过访问深度学习模型存储模块server(即第一存储介质)的地址使用相应的模型文件。
为了进一步提高模型文件加密的安全性,本申请特为制定了专用的混淆规则,具体如下:以正弦函数y=sin(x)为基,设置x开始位置(开始位置可自行设定需π/2整数倍,后续解混淆规则时要用到),x以π/2为步进,从设定x位置开始,正弦值y为0,随机取模型中的1个bit,填充于模型ceil(x)个字节后的位置,正弦值y为1,随机取模型中的2个bit,填充于模型ceil(x)个字节后的位置,正弦值y为-1,随机取模型中的3个bit,填充于模型ceil(x)个字节后的位置,以每3π/2一个周期,之后填充规则变换(正弦值y为0,随机取模型中的3个bit,填充于模型ceil(x)个字节后的位置,正弦值y为1,随机取模型中的1个bit,填充于模型ceil(x)个字节后的位置,正弦值y为-1,随机取模型中的2个bit,填充于模型ceil(x)个字节后的位置),如此循环,模型最后段长度小于ceil(x)的情况下,自动填于末尾,完成混淆后,再进行aes128加密。
本发明提供了一种模型数据保护方法和可读计算机存储介质,所述方法包括以下步骤:对模型数据进行加密,得到加密文件;对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;读取存储文件,对所述存储文件进行封装,得到封装文件;接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。采用上述方案后,模型数据被加密后分散存储,即便某一部分切片数据被盗取也无济于事,有效提升了模型数据的安全性。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
1.一种模型数据保护方法,其特征在于,所述方法包括以下步骤:
对模型数据进行加密,得到加密文件;
对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;
读取存储文件,对所述存储文件进行封装,得到封装文件;
接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。
2.如权利要求1所述的模型数据保护方法,其特征在于,所述方法包括以下步骤:
将各切片数据与其对应的切片信息对应存储于数据结构体中,并对所述数据结构体进行混淆得到存储文件。
3.如权利要求1所述的模型数据保护方法,其特征在于,所述切片信息包括切片标识信息、切片大小以及切片地址偏移量。
4.如权利要求1至3任一项所述的模型数据保护方法,其特征在于,所述封装文件被存储于第一设备中,所述文件获取指令通过以下方式触发:
第一设备与第二设备建立连接,在第二设备上运行应用加载程序,以触发所述文件获取指令,以使得所述第二设备从所述第一设备中获取存储文件。
5.如权利要求1所述的模型数据保护方法,其特征在于,所述方法包括以下步骤:
获取所述封装文件并解析,采用加密规则对应的解密规则对加密的切片信息进行解密,再根据切片信息获取模型切片数据并依次对各模型切片数据进行拼装,并对拼装数据进行解密,得到最终的原始模型数据。
6.一种可读计算机存储介质,其特征在于,所述可读计算机存储介质存储包括第一存储介质和第二存储介质,所述第一存储介质中存储有第一计算机程序,所述第二存储介质中存储有第二计算机程序;
所述第一计算机程序被处理器运行时实现以下步骤:
对模型数据进行加密,得到加密文件;
对加密文件进行切片,得到若干切片数据及切片信息,并将各切片数据与其对应的切片信息对应存储,得到存储文件;
所述第二计算机程序被处理器运行时实现以下步骤:
读取存储文件,对所述存储文件进行封装,得到封装文件;
接收文件获取指令,获取所述封装文件并解析,根据各切片信息分段加载各切片信息。
7.如权利要求6所述的可读计算机存储介质,其特征在于,所述第一计算机程序被处理器运行时还实现以下步骤:
将各切片数据与其对应的切片信息对应存储于数据结构体中,并对所述数据结构体进行混淆得到存储文件。
8.如权利要求6所述的可读计算机存储介质,其特征在于,所述切片信息包括切片标识信息、切片大小以及切片地址偏移量。
9.如权利要求6至8任一项所述的可读计算机存储介质,其特征在于,所述第一存储介质被设置于第一设备中,所述第二存储介质被设置于第二设备中;
当第一设备与第二设备建立连接后,在第二设备上运行应用加载程序,以触发所述文件获取指令,以使得所述第二设备从所述第一设备中获取存储文件。
10.如权利要求6所述的可读计算机存储介质,其特征在于,所述第二计算机程序被处理器运行时实现以下步骤:
获取所述封装文件并解析,采用加密规则对应的解密规则对加密的切片信息进行解密,再根据切片信息获取模型切片数据并依次对各模型切片数据进行拼装,并对拼装数据进行解密,得到最终的原始模型数据。
技术总结