基于计算加密的pytorch深度学习网络模型保护方法技术

技术编号:35025629 阅读:28 留言:0更新日期:2022-09-24 22:57
本发明专利技术公开一种基于计算加密的pytorch深度学习网络模型保护方法,其应用于一系统中,通过将系统分为解密动态库的分发端和请求解密的部署端,其中分发端负责将模型加密并生成解密与加载用的动态库,部署端接收动态库后进行解密并加载模型,从而实现使深度学习网络模型的正常工作,既能保证模型的隐秘性、安全性,又能减少加密解密的时间成本,提高加密解密的效率。效率。效率。

【技术实现步骤摘要】
基于计算加密的pytorch深度学习网络模型保护方法


[0001]本专利技术涉及计算机
,具体而言,涉及一种应用于一系统中的基于计算加密的pytorch(一个开源的Python机器学习库)深度学习网络模型保护方法。

技术介绍

[0002]人工智能深度学习是一种让计算机具有从经验中学习的能力,并根据具有层次体系的概念理解世界形式的机器学习。它可以通过让计算机构建简单的概念来学习复杂的概念,由此得到的结果即是深度学习网络模型。使用基于深度学习网络的应用已经慢慢渗透进入各行各业,网络模型的隐秘性问题成为技术保护方面的巨大考验。网络模型的结构和权重是深度学习网络的核心,更是技术的核心所在,而在应用程序的发布或开发项目的验收与交付时,如果模型能够被轻易获取,则会导致技术核心的暴露、被重用甚至被二次开发,因此需要对模型进行加密保护。
[0003]图1为现有采用同态加密技术的的模型加密方法示意图,如图1所示,同态加密技术是一种安全的模型加密方式,其是将需要进行推理的数据进行加密后,传入经过加密的模型网络中进行推理,从而得到最终加密的推理结果并返回给请求方。这种方法涉及运用已经加密的模型网络对加密的数据进行同态运算,而不须要获取到请求推理的数据明文或了解未经加密的原始模型,同时可以完成对经过加密处理的数据的推理,并返回加密的推理结果,由请求数据推理的一方对返回的推理结果进行解密并获取实际推理的结果,因此这种方法确实可以对模型和用户数据起到保密的作用。
[0004]但是,现有的同态加密模型算法可以进行的操作有限,如python

paillier算法支持加法同态,SEAL

CKKS算法支持有限次数的加法和乘法。这会对网络本身可以进行的运算造成极大的限制,使一些逻辑实现的难度加大,甚至根本无法实现,尤其对于一些已经在生产中大量使用的网络训练模型所包含的算法更是无法实现。另外,由于使用同态加密的网络能够进行的运算本身的限制,有些网络需要对网络层进行重构,以完成与之前网络近似或等价的运算。而重构后的网络可看作是新网络,所以又必须对其进行重新训练,使用重构网络进行训练不但开销较大,还可能会影响模型的准确性。由此可知同态加密技术在实际生产运用中仍然存在效率问题:1)对于重构的网络进行训练,可能导致计算成本增大甚至过高;2)为保证安全性,用于加密的秘钥长度一般要求达到一定的位数,以使得经过加密的数据不被轻易的破获,因此可能导致加密解密时间成本更大,获取最终推理结果的开销增大。因此,需要一种更高效更安全的加密解密方式来对深度学习网络模型进行保护。

技术实现思路

[0005]为了解决上述问题,本专利技术提供一种基于计算加密的pytorch深度学习网络模型保护方法,其应用于一系统中,通过将系统分为解密动态库的分发端和请求解密的部署端,其中分发端负责将模型加密并生成解密与加载用的动态库,部署端接收动态库后进行解密并加载模型,从而实现使深度学习网络模型的正常工作,既能保证模型的隐秘性、安全性,
又能减少加密解密的时间成本,提高加密解密的效率。
[0006]为达到上述目的,本专利技术提供了一种基于计算加密的pytorch深度学习网络模型保护方法,其应用于一系统中,其中:
[0007]所述系统包括分发端和部署端,所述分发端与所述部署端之间通过网络建立连接,其中,所述分发端部署一关系数据库,所述关系数据库内存储多个深度学习网络的原始模型的相关信息及模型路径对照表,所述模型路径对照表包含每个原始模型的名称及其对应的模型路径;所述分发端还设置一端口,用于收发消息;
[0008]所述方法具体为:
[0009]步骤S1:所述部署端通过调用动态链接库内预置的请求方法向所述分发端发送请求包,其中,所述请求包的内容包括模型的名称;
[0010]步骤S2:所述分发端监听所述端口的消息,当监听到请求则接收并解析所述请求包,得到模型的名称,并根据模型的名称从所述模型路径对照表中获取对应的模型路径,若对应模型路径上的模型文件能够找到并正确校验其md5值,则进入下一步,否则终止运行并返回错误代码;
[0011]步骤S3:所述分发端读取模型文件的内容,获取当前标准时间毫秒级的时间戳,并将时间戳附在模型文件内容的末尾;
[0012]步骤S4:所述分发端通过256位加密算法将模型文件的内容及时间戳生成为一256位的随机字节,并将所述随机字节作为对应模型的加密秘钥;
[0013]步骤S5:所述分发端通过对称的加密方式与步骤S4中的加密秘钥将对应的不包含时间戳的原始模型文件进行加密,并生成加密模型文件;
[0014]步骤S6:所述分发端将步骤S4中的加密秘钥写入预置解密程序文件中对应解密秘钥的位置,并生成解密文件动态库;
[0015]步骤S7:将步骤S5生成的加密模型文件与步骤S6生成的解密文件动态库封装为tar包,并发送至所述部署端;
[0016]步骤S8:所述部署端接收tar包后调用解封程序对tar包解封,并将加密模型文件与解密文件动态库分别存入对应路径中;
[0017]步骤S9:所述部署端调用解密文件动态库中的解密程序文件将加密模型文件解密为流;
[0018]步骤S10:所述部署端调用预置的pytorch加载模型函数对步骤S9得到的流进行加载。
[0019]在本专利技术一实施例中,其中,所述模型路径对照表中的模型路径与模型的名称为一一对应,且所述模型路径对照表中还包括:模型的召回率、模型的误检率、模型的版本号、模型文件的md5值及模型创建时间,同时所述模型路径对照表的内容能够通过登录所述分发端服务器进行更新。
[0020]在本专利技术一实施例中,其中,所述请求包的内容由预置的请求方法自动生成。
[0021]在本专利技术一实施例中,其中,步骤S3中所述模型文件的内容包括存储模型结构类的路径和参数,时间戳的获取是在读取模型文件的内容时获取当前服务器的时间,并加入模型文件中。
[0022]在本专利技术一实施例中,其中,步骤S4中将模型文件的内容及时间戳生成所述随机
字节具体为将模型文件及加入模型文件中的时间戳生成所述随机字节;所采用的256位加密算法为SHA加密算法,所述256位的随机字节为256位的哈希值。
[0023]在本专利技术一实施例中,其中,步骤S5中的对称的加密方式为AES、DES或3DES,其中:
[0024]当采用AES加密方式时,则加密密钥为256位;
[0025]当采用DES加密方式时,则取前56位作为加密密钥;
[0026]当采用3DES加密方式时,则取前168位作为加密密钥。本专利技术提供的基于计算加密的pytorch深度学习网络模型保护方法,与现有技术相比,由于采用了动态库的形式将解密秘钥和算法模型进行分发,且每次模型分发前,都使用新生成的秘钥对模型进行加密,因此能够在确保模型的隐秘性和安全性的基础上,减少加密解密的时间成本,使加密解密的效率更高。
附图说明
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于计算加密的pytorch深度学习网络模型保护方法,其应用于一系统中,其特征在于:所述系统包括分发端和部署端,所述分发端与所述部署端之间通过网络建立连接,其中,所述分发端部署一关系数据库,所述关系数据库内存储多个深度学习网络的原始模型的相关信息及模型路径对照表,所述模型路径对照表包含每个原始模型的名称及其对应的模型路径;所述分发端还设置一端口,用于收发消息;所述方法具体为:步骤S1:所述部署端通过调用动态链接库内预置的请求方法向所述分发端发送请求包,其中,所述请求包的内容包括模型的名称;步骤S2:所述分发端监听所述端口的消息,当监听到请求则接收并解析所述请求包,得到模型的名称,并根据模型的名称从所述模型路径对照表中获取对应的模型路径,若对应模型路径上的模型文件能够找到并正确校验其md5值,则进入下一步,否则终止运行并返回错误代码;步骤S3:所述分发端读取模型文件的内容,获取当前标准时间毫秒级的时间戳,并将时间戳附在模型文件内容的末尾;步骤S4:所述分发端通过256位加密算法将模型文件的内容及时间戳生成为一256位的随机字节,并将所述随机字节作为对应模型的加密秘钥;步骤S5:所述分发端通过对称的加密方式与步骤S4中的加密秘钥将对应的不包含时间戳的原始模型文件进行加密,并生成加密模型文件;步骤S6:所述分发端将步骤S4中的加密秘钥写入预置解密程序文件中对应解密秘钥的位置,并生成解密文件动态库;步骤S7:将步骤S5生成的加密模型文件与步骤S6生成的解密文件动态库封装为tar包,并发送至所述部署端;步骤S8:所述部署端接收tar包后调用解封程序对tar包解封,并将加密模型文件与解密文件动态库分别存入对应路径中;步骤...

【专利技术属性】
技术研发人员:闫博通琚午阳罗鑫王达
申请(专利权)人:北京睿芯高通量科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1