基于AES算法的pytorch模型加密方法、系统及设备技术方案

技术编号:32481754 阅读:25 留言:0更新日期:2022-03-02 09:45
本发明专利技术的一种基于AES算法的pytorch模型加密方法、系统及设备,其中方法包括采用AES加密算法对模型二进制流进行加密,步骤如下:以二进制格式打开pytorch模型文件转换成二进制流用于读写,设置AES密钥K,设置加密模式mode为对称加密,把已转换成二进制流的pytorch模型文件输入到AES加密函数中,生成模型加密文件。本发明专利技术的基于AES算法的pytorch模型加密方法涉及一种应用于pytorch深度学习框架训练的模型在离线部署时的加密方法,能够保护模型内部网络结构及参数隐私,以防被人挪用,或者泄露出重要、敏感信息。敏感信息。敏感信息。

【技术实现步骤摘要】
基于AES算法的pytorch模型加密方法、系统及设备


[0001]本专利技术涉及面向深度学习模型的加密
,具体涉及一种基于AES算法的pytorch模型加密方法、系统及设备。

技术介绍

[0002]近年来深度神经网络得到快速发展,在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题。但深度学习模型在实际的商业化部署中面临防止模型被窃取泄密的问题,因此,通过加密手段可以使得被窃取的模型失去商业价值,从而达到保护深度学习模型的目的。
[0003]目前pytorch模型加密主要方案是将外部资源文件嵌入二进制文件中(exe、 dll、lib),然后对二进制文件加壳保护,但这种方法不能把模型文件与工程代码独立开,不利于代码的管理、开发以及模型的跟踪管理。

技术实现思路

[0004]本专利技术提出的一种基于AES算法的pytorch模型加密方法、系统及设备,可至少解决
技术介绍
中的技术问题之一。
[0005]为实现上述目的,本专利技术采用了以下技术方案:
[0006]一种基于AES算法的pytorch模型加密方法,采用AES加密算法对模型二进制流进行加密,步骤如下:
[0007]以二进制格式打开pytorch模型文件转换成二进制流用于读写,设置AES密钥K,设置加密模式mode为对称加密,把已转换成二进制流的pytorch模型文件输入到AES加密函数中,生成模型加密文件。
[0008]进一步的,还包括采用AES加密算法对模型加密文件进行解密,步骤如下:
[0009]设置与加密时相同的AES密钥K及加密模式mode为对称加密,把模型加密文件输入到AES解密函数,生成解密后的pytorch模型二进制流文件,再以pytorch 框架中模型加载以流的方式读取解密后的模型二进制文件,进行网络的前向推理判断。
[0010]另一方面,本专利技术还包括一种基于AES算法的pytorch模型加密系统,包括加密单元,所述加密单元用于采用AES加密算法对模型二进制流进行加密,步骤如下:
[0011]以二进制格式打开pytorch模型文件转换成二进制流用于读写,设置AES密钥K,设置加密模式mode为对称加密,把已转换成二进制流的pytorch模型文件输入到AES加密函数中,生成模型加密文件。
[0012]进一步的,还包括解密单元,所述解密单元采用AES加密算法对模型加密文件进行解密,步骤如下:
[0013]设置与加密时相同的AES密钥K及加密模式mode为对称加密,把模型加密文件输入到AES解密函数,生成解密后的pytorch模型二进制流文件,再以pytorch 框架中模型加载
以流的方式读取解密后的模型二进制文件,进行网络的前向推理判断。
[0014]又一方面,本专利技术还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。
[0015]再一方面,本专利技术还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
[0016]由上述技术方案可知,本专利技术的基于AES算法的pytorch模型加密方法涉及一种应用于pytorch深度学习框架训练的模型在离线部署时的加密方法,能够保护模型内部网络结构及参数隐私,以防被人挪用,或者泄露出重要、敏感信息。
[0017]具体的说,本专利技术的优点如下:
[0018]从软件工程开发及维护角度上优点:把模型文件与工程代码独立开,实现模型文件与工程代码分离开发,利于代码的管理、后期维护以及模型的跟踪管理。
[0019]从商业价值角度上优点:训练一个实际商用的深度学习模型需要投入大量的人力、物力成本进行深度神经网络的设计、参数的调优,大量样本的训练。在这种情况下,模型即是商业价值的体现。因此,采用AES算法对模型进行加密,防止模型被窃取挪用,保护了模型内部参数、结构即保护了商业价值。
附图说明
[0020]图1为本专利技术的加密流程图;
[0021]图2为本专利技术的解密流程图;
[0022]图3是AES加密流程示意图;
[0023]图4是AES加密流程示意图是实例;
[0024]图5是图4中实例的密钥K;
[0025]图6是AES的整体结构示意图;
[0026]图7是AES状态矩阵经字节代换后的图;
[0027]图8是AES行移位操作示意图;
[0028]图9是AES轮密钥加示意图;
[0029]图10是AES密钥扩展示意图。
具体实施方式
[0030]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。
[0031]如图1所示,本实施例所述的基于AES算法的pytorch模型加密方法,即提出一种应用于pytorch深度学习框架训练的模型在离线部署时的加密方法。该方法主要包括模型加密与模型的解密两个步骤:
[0032](1)模型加密:采用AES加密算法对模型二进制流进行加密;以二进制格式打开pytorch模型文件转换成二进制流用于读写,设置AES密钥K,设置加密模式 mode为对称加密,把已转换成二进制流的pytorch模型文件输入到AES加密函数中,生成模型加密文件。加
密流程如图1所示;
[0033](2)模型解密:采用AES加密算法对模型加密文件进行解密。设置与加密时相同的AES密钥K及加密模式mode为对称加密,把模型加密文件输入到AES解密函数,生成解密后的pytorch模型二进制流文件,再以pytorch框架中模型加载以流的方式读取解密后的模型二进制文件,进行网络的前向推理判断。解密流程如图2 所示。
[0034]AES的基本结构
[0035]AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是 128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示:
[0036][0037]轮数在下面介绍,这里实现的是AES

128,也就是密钥的长度为128位,加密轮数为10轮。
[0038]上面说到,AES的加密公式为C=E(K,P),在加密函数E中,会执行一个轮函数,并且执行10次这个轮函数,这个轮函数的前9次执行的操作是一样的,只有第10次有所不同。也就是说,一个明文分组会被加密10轮。AES的核心就是实现一轮中的所有操作。
[0039本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于AES算法的pytorch模型加密方法,其特征在于,采用AES加密算法对模型二进制流进行加密,步骤如下:以二进制格式打开pytorch模型文件转换成二进制流用于读写,设置AES密钥K,设置加密模式mode为对称加密,把已转换成二进制流的pytorch模型文件输入到AES加密函数中,生成模型加密文件。2.根据权利要求1所述的基于AES算法的pytorch模型加密方法,其特征在于:还包括采用AES加密算法对模型加密文件进行解密,步骤如下:设置与加密时相同的AES密钥K及加密模式mode为对称加密,把模型加密文件输入到AES解密函数,生成解密后的pytorch模型二进制流文件,再以pytorch框架中模型加载以流的方式读取解密后的模型二进制文件,进行网络的前向推理判断。3.一种基于AES算法的pytorch模型加密系统,其特征在于:包括加密单元,所述加密单元用于采用AES加密算法对模型二进制流进行加密,步骤如下:以二进制格式打开pytorc...

【专利技术属性】
技术研发人员:朱地博朱文佳骆乐乐秦忱忱
申请(专利权)人:安徽百诚慧通科技有限公司
类型:发明
国别省市:

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

1