一种模型文件保护和读取方法、装置及相关介质与流程

文档序号:33464543发布日期:2023-03-15 06:06阅读:23来源:国知局
一种模型文件保护和读取方法、装置及相关介质与流程

1.本发明涉及文件保护技术领域,特别涉及一种模型文件保护和读取方法、装置及相关介质。


背景技术:

2.当前,ai技术在使用时,通常是一种模型推理框架和一个训练好的模型。对于模型文件,如果直接存放在软件中,其他人可以轻松获取到模型文件;获取到模型文件之后,不但能直接使用,还能利用网络结构重新训练进行模型文件改良。因此,需要将模型文件进行加密保护,使得模型文件不被非法盗取。


技术实现要素:

3.本发明实施例提供了一种模型文件保护和读取方法、装置及相关介质,旨在解决模型文件不够安全,在使用过程中得不到保护的问题。
4.第一方面,本发明实施例提供了一种模型文件保护和读取方法,包括:
5.对模型文件进行拆分处理,得到所述模型文件的头部区和非头部区;
6.对所述头部区进行加密处理得到加密块,并将所述加密块以追加的方式移动到所述非头部区的尾部,得到加密区;
7.生成与所述头部区相同大小的头部块,并将所述头部区剔除以及将所述头部块填充至所述头部区的位置,完成所述模型文件的文件加密;
8.读取所述头部块得到所述头部区的大小,并根据所述头部区的大小对所述模型文件进行内存映射,得到所述加密区的位置;
9.对所述加密区进行解密处理,并将所述头部块剔除以及将解密后的明文内容回写到所述头部块的位置,完成所述模型文件的文件解密。
10.第二方面,本发明实施例提供了一种模型文件保护和读取装置,包括:
11.数据拆分单元,用于对模型文件进行拆分处理,得到所述模型文件的头部区和非头部区;
12.数据加密单元,用于对所述头部区进行加密处理得到加密块,并将所述加密块以追加的方式移动到所述非头部区的尾部,得到加密区;
13.数据替换单元,用于生成与所述头部区相同大小的头部块,并将所述头部区剔除以及将所述头部块填充至所述头部区的位置,完成所述模型文件的文件加密;
14.数据映射单元,用于读取所述头部块得到所述头部区的大小,并根据所述头部区的大小对所述模型文件进行内存映射,得到所述加密区的位置;
15.数据解密单元,用于对所述加密区进行解密处理,并将所述头部块剔除以及将解密后的明文内容回写到所述头部块的位置,完成所述模型文件的文件解密。
16.第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实
现所述第一方面的模型文件保护和读取方法。
17.第四方面,本发明实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述第一方面的模型文件保护和读取方法。
18.本发明实施例提供一种模型文件保护和读取方法,该方法包括:对模型文件进行拆分处理,得到头部区和非头部区;对所述头部区进行加密处理得到加密块并移动到所述非头部区的尾部,得到加密区;生成与所述头部区相同大小的头部块,并将所述头部区剔除以及将所述头部块填充至所述头部区的位置;根据所述头部区的大小对所述模型文件进行内存映射,得到所述加密区的位置;对所述加密区进行解密处理,并将解密后的明文内容回写到所述头部块的位置。本发明通过生成与所述头部区相同大小的头部块来填充所述模型文件的头部区位置,并在读取时,以内存映射方式对所述加密区进行解密回写到所述头部块的位置;如此,提高了所述模型文件的安全性。
19.本发明实施例还提供一种模型文件保护和读取装置、计算机设备和存储介质,同样具有上述有益效果。
附图说明
20.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明实施例提供的一种模型文件保护和读取方法的流程示意图;
22.图2为本发明实施例提供的一种模型文件保护和读取装置的示意性框图。
具体实施方式
23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
25.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
26.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
27.下面请参见图1,图1为本发明实施例提供的一种模型文件保护和读取方法的流程示意图,具体包括:步骤s101~s105。
28.s101、对模型文件进行拆分处理,得到所述模型文件的头部区和非头部区;
29.s102、对所述头部区进行加密处理得到加密块,并将所述加密块以追加的方式移
动到所述非头部区的尾部,得到加密区;
30.s103、生成与所述头部区相同大小的头部块,并将所述头部区剔除以及将所述头部块填充至所述头部区的位置,完成所述模型文件的文件加密;
31.s104、读取所述头部块得到所述头部区的大小,并根据所述头部区的大小对所述模型文件进行内存映射,得到所述加密区的位置;
32.s105、对所述加密区进行解密处理,并将所述头部块剔除以及将解密后的明文内容回写到所述头部块的位置,完成所述模型文件的文件解密。
33.在步骤s101中,将整个所述模型文件拆分为两部分,一部分是需要加密的所述头部区,另一部分是不加密的所述非头部区,方便进行区分。
34.在步骤s102中,对所述头部区进行加密处理,即把所述头部区,比如256字节,加密后追加到所述非头部区的尾部。需要注意的是,追加的方式可以有多种设置,可以追加到所述非头部区的尾部,也可以先写一个生成的新文件头后,然后写加密后的头部内容(所述加密快),然后再写剩下的未加密内容(所述非头部区);具体可以根据实际情况进行选择。
35.在步骤s103中,生成一个新的同等大小的256字节的所述头部块,所述头部块保持一致大小是为了方便后续的内存映射时,把所述加密区解密,重新回写到映射区(内存)里。在将所述头部区剔除以及将所述头部块填充至所述头部区的位置后,即完成了所述模型文件的文件加密。
36.在步骤s104中,所述模型文件完成加密之后,在需要用到时则开始进行解密;根据所述头部区的大小对所述模型文件进行内存映射,可以得到所述加密区的位置。
37.在步骤s105中,将解密后的明文回写到映射后的所述头部块;即映射的句柄就是一个完整的明文内容,此时完成所述模型文件的文件解密。
38.在一实施例中,所述模型文件为基于protocolbuffer的二进制文件。
39.在本实施例中,采用onnx模型文件(基于protocolbuffer的二进制文件)来进行加密和解密,当然,可以是任意文件,只是onnx模型文件只要头部的信息一旦丢失,后面的数据就完全无法解析出来。具体的,openneuralnetwork exchange(onnx,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。onnx是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如pytorch,mxnet)可以采用相同格式存储模型数据并交互。
40.在一实施例中,所述头部块的内容包括文件类型、头部块尺寸、加密类型版本以及可选信息。所述文件类型、头部块尺寸和加密类型版本均为4字节大小。
41.在本实施例中,所述头部块的内容包括但不限于一些关键信息,如文件类型、头部块尺寸、加密类型版本,另外,还有一些可选信息,可以根据实际情况进行选择。本实施例中定义所述文件类型、头部块尺寸和加密类型版本的大小均为4字节,当然,也可以任意数值,可自行设置,这里不作限定。
42.在一实施例中,所述步骤s105,包括:
43.以内存映射的方式,将解密后的明文内容回写到所述头部块的位置。
44.在本实施例中,内存映射是由一个文件到一块内存的映射。win32提供了允许应用程序把文件映射到一个进程的函数(createfilemapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,
内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行i/o操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。
45.在一实施例中,所述步骤s105,还包括:
46.利用aes算法对所述加密区进行解密处理。
47.在本实施例中,数据加密一般使用通用的加密方案即可,解密也如此;本方案当前采用aes算法,密码学中的高级加密标准(advancedencryption standard,aes),又称rijndael加密法,是美国联邦政府采用的一种区块加密标准。需要注意的是,所有的保护只是为了提高解密的成本和难度,没法做到完全保护。
48.综上所述,因为加密的内容小,生成加密保护的文件非常快,对于现有模型文件,只进行了改写和追加内容。在对模型文件加载时速度也很快,只需要读取所述头部块,然后把所述加密区的数据进行解密,即得完整的明文内容。相对于其他正常读取模型文件内容的方法,读取耗时和内存占用都极小。
49.结合图2所示,图2为本发明实施例提供的一种模型文件保护和读取装置的示意性框图,模型文件保护和读取装置200包括:
50.数据拆分单元201,用于对模型文件进行拆分处理,得到所述模型文件的头部区和非头部区;
51.数据加密单元202,用于对所述头部区进行加密处理得到加密块,并将所述加密块以追加的方式移动到所述非头部区的尾部,得到加密区;
52.数据替换单元203,用于生成与所述头部区相同大小的头部块,并将所述头部区剔除以及将所述头部块填充至所述头部区的位置,完成所述模型文件的文件加密;
53.数据映射单元204,用于读取所述头部块得到所述头部区的大小,并根据所述头部区的大小对所述模型文件进行内存映射,得到所述加密区的位置;
54.数据解密单元205,用于对所述加密区进行解密处理,并将所述头部块剔除以及将解密后的明文内容回写到所述头部块的位置,完成所述模型文件的文件解密。
55.在本实施例中,首先,数据拆分单元201对模型文件进行拆分处理,得到所述模型文件的头部区和非头部区;数据加密单元202对所述头部区进行加密处理得到加密块,并将所述加密块以追加的方式移动到所述非头部区的尾部,得到加密区;数据替换单元203生成与所述头部区相同大小的头部块,并将所述头部区剔除以及将所述头部块填充至所述头部区的位置,完成所述模型文件的文件加密;数据映射单元204读取所述头部块得到所述头部区的大小,并根据所述头部区的大小对所述模型文件进行内存映射,得到所述加密区的位置;最后,数据解密单元205对所述加密区进行解密处理,并将所述头部块剔除以及将解密后的明文内容回写到所述头部块的位置,完成所述模型文件的文件解密。
56.在一实施例中,所述模型文件为基于protocolbuffer的二进制文件。
57.在一实施例中,所述头部块的内容包括文件类型、头部块尺寸、加密类型版本以及可选信息。所述文件类型、头部块尺寸和加密类型版本均为4字节大小。
58.在一实施例中,所述数据解密单元,包括:
59.映射单元,用于以内存映射的方式,将解密后的明文内容回写到所述头部块的位置。
60.在一实施例中,所述数据解密单元,还包括:
61.解密单元,用于利用aes算法对所述加密区进行解密处理。
62.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
63.本发明实施例还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
64.本发明实施例还提供了一种计算机设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然计算机设备还可以包括各种网络接口,电源等组件。
65.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
66.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1