基于时钟加密锁的神经网络模型加密和存储方法及系统与流程

文档序号:33130759发布日期:2023-02-01 08:16阅读:17来源:国知局
1.本发明涉及人工智能系统和信息技术处理领域,具体涉及基于时钟加密锁的神经网络模型加密和存储方法及系统。
背景技术
::2.神经网络模型作为人工智能运算和企业的核心技术应该被妥善的保存和使用。神经网络模型的训练生成过程,需要特定领域海量数据作为训练资源,决定了经过训练的深度学习模型具有很高的商业价值和知识属性,必须将其纳入其所有者的知识产权。从技术上迫切需要保护神经网络模型不被非法复制、重新分发或滥用。2.当前神经网络模型的开发框架非常多,例如tensorflow、pytorch、caffe、onnx等等,每种框架开发训练生成神经网络模型文件格式都不相同。但概括起来至少有三种类型:网络描述文件,存储了神经网络拓扑结构和算子算法描述信息;权重参数文件,储存了模型各层算子权重和偏置等信息;量化模型文件,神经网络模型在不同的架构平台进行int4/int8/int16量化后产生的文件。3.现有神经网络模型加密技术:4.第一种情况,模型文件存储、加载和推理运算在远端服务器,终端设备通过服务器认证后将检测数据传输给远端服务器,服务器返回推理识别结果,在终端设备上没有存储神经网络模型。例如公布号为cn114118392a的现有发明专利申请文献《加密锁型模块、支持人工智能的方法及电子装置》中所述加密锁型模块包括:接入信道,被配置为连接到所述电子装置;以及神经网络处理器,被配置为通过所述接入信道从所述电子装置接收第一输入信息,并且基于所述第一输入信息通过神经网络计算生成输出信息。针对第一种情况,神经网络模型存储在远端服务器上,虽然这种物理隔离保护了模型不被外界获取,但是使用场景受限于终端设备必须通过公网网络连接到远端服务器这个条件,在无网络连接地方无法使用。而且网络传输数据本身也耗费大量的时间,降低了系统的实时性;5.第二种情况,全部或部分加密的模型文件和密钥储存在本地设备上,使用模型推理运算前本地设备加载加密模型和密钥进行解密,然后在本地设备采集数据并利用神经网络计算单元进行推理运算获得结果,第二种情况,神经网络模型部署运行在终端设备侧(包含嵌入式linux系统、手机、相机、pad、ai计算盒、计算机等智能设备),虽然系统实时性提高也不需要网络连接,但将加密的模型和解密密钥一起存储在终端设备上,就像将锁头和钥匙放在一起似的不安全。例如,若密钥文件作为系统文件隐藏起来,只要具有系统使用权限或者破解系统获取root或admin权限就可以检索出密钥文件。若将密钥编入可执行程序中,通过反编译查看data段或text段也可以获取到密钥,加密的模型作为系统文件也容易被检索出来,存在被破解的风险;6.第三种情况,网络模型文件本身并不加密,而是在训练模型时使用有特征(水纹)或加密的数据集,在模型部署时必须使用与训练时相同特征(水纹)的或加密的数据作为输入,否则无法识别出正确的结果,模型所有者将输入数据的特征或加密密钥作为保护系统的方法。例如公布号为cn108830092a的现有发明专利文献《涉及数据随机加密的神经网络模型加密保护系统及方法》包括加密模块,加密模块中的数据划分模块将原始输入数据转换为二维结构,并将其划分为多个待处理的子块,密码生成模块分别生成与该子块结构相同的密码,密码嵌入模块用于将各个密码以叠加的方式嵌入相应的子块,数据重组模块根据先前的子块划分方式,将各个嵌有密码的子块重构为二维结构,生成加密输入数据。该种现有技术方案的网络模型文件本身不加密,而是在训练模型时使用有特殊特征或加密的数据集,在模型部署时必须使用与训练时相同特征的或加密的数据作为输入,否则无法识别出正确的结果。这种方法很好的保护了模型的权重参数信息,但是对网络的描述文件没有加密保护,网络的描述文件通常具有结构化数据存储格式,例如protobuf、json或xml等格式文本文件,可以利用暴漏的网络拓扑结构和算子描述信息重构出模型结构,再利用未加密的数据集进行模型训练生成新的模型文件,存在被破解的风险。另外每次推理运算前都需要将输入数据做特殊处理(水纹)或加密降低了系统的运行效率。7.综上,现有技术存在实时性受有制约且易被破解导致安全性低的技术问题。技术实现要素:8.本发明所要解决的技术问题在于如何解决现有技术中实时性受有制约且易被破解导致安全性低的技术问题。9.本发明是采用以下技术方案解决上述技术问题的:基于时钟加密锁的神经网络模型加密和存储方法包括:10.s1、利用预置数据集训练得到神经网络模型f;11.s2、获取秘钥生成数据,据以生成第一秘钥;12.s3、获取并利用第一密钥加密处理产品及模型数据,据以生成第二密钥;13.s4、利用第二密钥加密处理神经网络模型f的预置部分,据以生成加密文件e(f)和加密表table;14.s5、拆分处理加密文件e(f),以得到第一部分加密文件e1及第二部分加密文件e2,并将拆分处理数据记录于加密表table;15.s6、单向写入第二密钥至硬件加密锁,并存储预置主机设备的主机唯一标识及主机自定义字符串至时钟加密锁,在硬件加密锁及时钟加密锁创建加密模块,以利用一次性one-shot口令验证方式进行登入验证;16.s7、获取种子数据及预置加密逻辑,据以对数据通信进行加密,步骤s7包括:17.s71、利用加密锁随机生成种子数据;18.s72、利用预置第三秘钥生成算法处理种子数据,以生成第三密钥;19.s73、根据对称加密算法,使用第三密钥对第二密钥进行加密传输;20.s74、利用主机设备加密模块根据相同的种子数据生成相同第三密钥,以对加密密文解密获得解密后第二密钥。21.本发明将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离。密钥具有只能单向被写入加密锁,无法从加密锁外部读取的属性,提高了通信安全性。22.本发明使用带时钟的硬件加密锁设备,在加密锁内部创建加密模块,使用一次性的(one-shot)口令验证方式,不使用加密锁管理员密码登录,防止通过侦听或软件拦截造成加密锁管理员登录密码泄露,数据通信采用种子数据和自定义算法进行加密,提高了验证操作的安全性。23.本发明的主机加密模块可根据相同种子和自定义算法生成相同第三密钥,对加密密文解密获得第二密钥,再使用第三密钥对第二密钥进行加密传输可以防止软件拦截、侦听造成泄密。24.在更具体的技术方案中,步骤s1包括:25.s11、设计初始模型;26.s12、利用预置数据集训练初始模型,据以得到神经网络模型f。27.在更具体的技术方案中,步骤s2包括:28.s21、获取秘钥生成数据,其中,密钥生成数据包括:随机数、时间数据和生产设备信息;29.s22、处理随机数、时间数据及生产设备信息,据以生成第一秘钥。30.在更具体的技术方案中,步骤s3中的产品及模型数据包括:产品id、神经网络模型hash值及神经网络模型随机数。31.在更具体的技术方案中,步骤s5包括:32.s51、将第一部分加密文件e1和加密表table存储至预置主机设备;33.s52、以文件id区分第二部分加密文件e2;34.s53、存储第二部分加密文件e2至时钟加密锁。35.与现有技术中神经网络模型部署运行在终端设备侧的方式相比,本发明将加密后的模型分为两部分,第一部分储存在主机设备中,第二部分储存在时钟加密锁中,可以在没有网络连接的场景下使用本专利对模型进行保护,且两个设备存储的模型文件都不完整,加大了破解的难度。36.在更具体的技术方案中,步骤s52中,第二部分加密文件e2的文件数目形式包括:单个文件及不少于两个的文件。37.本发明与现有技术中网络模型文件本身不加密的方式相比,可以对全部或部分模型文件加密,加载运行模型只需要一次解密。38.在更具体的技术方案中,步骤s6包括:39.s61、组合预置主机设备的主机唯一标识、主机自定义字符串以及时间信息,以得到主机设备数据并存储至时钟加密锁;40.s61、以one-shot口令验证方式利用主机加密模块与时钟加密锁加密模块,采用相同规则进行散列运算,以得到散列运算结果;41.s62、利用主机设备加密模块将散列运算结果发送至加密锁加密模块,以进行登入验证并加入时间信息。42.本发明通过进行散列运算,并利用主机设备加密模块将运算结果发送给加密锁加密模块进行登入验证,加入时间信息可以防止重放攻击。43.本发明与现有技术中通过将神经网络模型存储在远端服务器上的方式相比,本发明将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离,可以在没有网络连接的场景下使用本专利对模型进行保护。44.在更具体的技术方案中,步骤s61中的散列运算采用的算法包括:sha-256及md5。45.在更具体的技术方案中,步骤s73中的对称加密算法包括:aes、3des、rc5或国密sm4。46.在更具体的技术方案中,基于时钟加密锁的神经网络模型加密和存储系统包括:47.模型训练模块,用以利用预置数据集训练得到神经网络模型f;48.第一秘钥生成模块,用以获取秘钥生成数据,据以生成第一秘钥;49.第二秘钥生成模块,用以获取并利用第一密钥加密处理产品及模型数据,据以生成第二密钥,第二秘钥生成模块与模型训练模块及第一秘钥生成模块连接;50.加密数据处理模块,用以利用第二密钥加密处理神经网络模型f的预置部分,据以生成加密文件e(f)和加密表table,加密数据处理模块与模型训练模块及第二秘钥生成模块连接;51.加密文件拆分模块,用以拆分处理加密文件e(f),以得到第一部分加密文件e1及第二部分加密文件e2,并将拆分处理数据记录于加密表table,加密文件拆分模块与加密数据处理模块连接;52.one-shot验证模块,用以单向写入第二密钥至硬件加密锁,并存储预置主机设备的主机唯一标识及主机自定义字符串至时钟加密锁,在硬件加密锁及时钟加密锁创建加密模块,以利用一次性one-shot口令验证方式进行登入验证,one-shot验证模块与第二秘钥生成模块连接;53.通讯加密模块,用以获取种子数据及预置加密逻辑,据以对数据通信进行加密,通讯加密模块与述第二秘钥生成模块连接,通讯加密模块包括:54.种子生成模块,用以利用加密锁随机生成种子数据;55.第三秘钥生成模块,用以利用预置第三秘钥生成算法处理种子数据,以生成第三密钥,第三秘钥生成模块与种子生成模块连接;56.加密传输模块,用以根据对称加密算法,使用第三密钥对第二密钥进行加密传输,加密传输模块与第三秘钥生成模块连接;57.第二秘钥解密模块,用以利用主机设备加密模块根据相同的种子数据生成相同第三密钥,以对加密密文解密获得解密后第二密钥,第二秘钥解密模块与加密传输模块及第三秘钥生成模块连接。58.本发明相比现有技术具有以下优点:本发明将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离。密钥具有只能单向被写入加密锁,无法从加密锁外部读取的属性,提高了通信安全性。59.本发明使用带时钟的硬件加密锁设备,在加密锁内部创建加密模块,使用一次性的(one-shot)口令验证方式,不使用加密锁管理员密码登录,防止通过侦听或软件拦截造成加密锁管理员登录密码泄露,数据通信采用种子数据和自定义算法进行加密,提高了验证操作的安全性。60.本发明的主机加密模块可根据相同种子和自定义算法生成相同第三密钥,对加密密文解密获得第二密钥,再使用第三密钥对第二密钥进行加密传输可以防止软件拦截、侦听造成泄密。61.与现有技术中神经网络模型部署运行在终端设备侧的方式相比,本发明将加密后的模型分为两部分,第一部分储存在主机设备中,第二部分储存在时钟加密锁中,可以在没有网络连接的场景下使用本专利对模型进行保护,且两个设备存储的模型文件都不完整,加大了破解的难度。62.本发明与现有技术中网络模型文件本身不加密的方式相比,可以对全部或部分模型文件加密,加载运行模型只需要一次解密。63.本发明通过进行散列运算,并利用主机设备加密模块将运算结果发送给加密锁加密模块进行登入验证,加入时间信息可以防止重放攻击。64.本发明与现有技术中通过将神经网络模型存储在远端服务器上的方式相比,本发明将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离,可以在没有网络连接的场景下使用本专利对模型进行保护。本发明解决了现有技术中存在的实时性受有制约且易被破解导致安全性低的技术问题。附图说明65.图1为本发明实施例1的基于时钟加密锁的神经网络模型加密和存储方法基本步骤示意图;66.图2为本发明实施例1的基于时钟加密锁的神经网络模型加密和存储系统基本结构示意图;67.图3为本发明实施例1的基于时钟加密锁的神经网络模型加密和存储系统的部署流程示意图;68.图4为本发明实施例1的主机设备与时钟加密锁的通信时序及主机设备与加密锁通信报文示例示意图;69.图5为本发明实施例1的加密锁内加密模块数据处理流程示意图。具体实施方式70.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。71.实施例172.破解加密锁主要是通过软件和硬件手段侦听主机与usb加密锁之间的通信从而获取加密锁管理员权限密码和通信内容,获取管理员权限密码可以将加密锁硬件内部的敏感文件数据拷贝出来,获取通信内容可以通过软件拦截通信并篡改内容伪装成系统的加密锁。73.如图1所示,针对当前破解加密锁的各种方法,本发明提供的基于时钟加密锁的神经网络模型加密和存储方法包括以下基本步骤:74.s1、将加密后的模型分为两部分,第一部分储存在主机设备中,第二部分储存在时钟加密锁中,第二部分可以为一个也可以为多个文件,存储时用文件id区分,拆分详情记录到加密表table中;75.s2、将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离。密钥具有只能单向被写入加密锁,无法从加密锁外部读取的属性;76.s3、使用带时钟的硬件加密锁设备,在加密锁内部创建加密模块2,使用一次性的(one-shot)口令验证方式,不使用加密锁管理员密码登录,数据通信采用种子数据和自定义算法进行加密。77.如图2所示,本发明提供的基于时钟加密锁的神经网络模型加密和存储系统包括:78.主机设备1,在本实施例中,主机设备1包括ai应用程序11,ai应用程序11包括主机设备加密模块111;79.时钟加密锁2,在本实施例中,时钟加密锁2包括加密锁内加密模块21,在本实施例中,时钟加密锁2可采用例如usb连接的方式,与主机设备1连接,以实现双向数据传输。80.如图3所示,在本实施例中,本发明的基于时钟加密锁的神经网络模型加密和存储系统的部署流程包括以下步骤:81.s1’、首先模型设计后利用数据集,通过训练生成神经网络模型f;82.s2’、利用随机数、时间和生产设备信息生成第一密钥;83.s3’、利用第一密钥对产品id、神经网络模型hash值和随机数进行加密生产第二密钥;84.s4’、利用第二密钥对神经网络模型全部或部分进行加密生成加密文件e(f)和加密表table;85.s5’、将e(f)拆分为两部分e1和e2,e1和加密表table存储在主机设备中,e2存储在时钟加密锁中;86.s6’、将第二密钥存储存在硬件加密锁中,将主机设备唯一标识和自定义字符串存储在加密锁中。87.如图4所示,在本实施例中,主机设备1与时钟加密锁2的通信时序包括:88.主机设备加密模块111获取时间并发送至加密锁内加密模块21,加密锁内加密模块21根据主机设备加密模块111发来的获取时间获取并返回时间至主机设备加密模块111;89.主机设备加密模块111获取第二部分加密模型并发送至加密锁内加密模块21,加密锁内加密模块21根据口令及命令处理第二部分加密模型,并将第二部分加密模型返回至主机设备加密模块111;90.主机设备加密模块111获取时间并发送至加密锁内加密模块21,加密锁内加密模块21根据主机设备加密模块111发来的获取时间获取并返回时间至主机设备加密模块111;91.主机设备加密模块111获取秘钥并发送至加密锁内加密模块21,加密锁加密模块21根据主机设备加密模块111发来的秘钥获取并返回种子与密文至主机设备加密模块111。92.如图5所示,本发明的加密锁内加密模块22中的数据处理流程包括:93.s51’、接受数据;94.s52’、读取硬件标识存储区、读取自定义字符区、获取当前锁内时间;95.s53’、采用与主机相同规则和算法进行散列运算;96.s54’、判断计算结果;97.s55’、判定验证失败;98.s56’、判定验证成功;99.s57’、命令解析,以判断是否获取秘钥;100.s58’、若是,则判断获取秘钥并产生种子,生成第三密钥,用第三密钥加密第二密钥,将密文和种子发送给主机;101.s59’、若否,则判定获取模型,读取第二部分加密模型,发送给主机设备。102.在本实施例中,one-shot口令验证方式,主机加密模块1与时钟加密锁加密模块2采用相同规则进行散列运算(算法可以采用sha-256或md5),例如将硬件设备唯一标识(可以选用一个或多个硬件标识信息:硬盘序列号、芯片串号、cpuid、主板uuid、mac地址、imei、操作系统id或者设备序列号等)+自定义字符串+时间信息(年月日时分秒)组合,然后进行散列运算,主机设备加密模块1将运算结果发送给加密锁加密模块2进行登入验证,加入时间信息可以防止重放攻击。实施时当出现因为时间过期导致口令失效情况,主机设备加密模块1只需要重试即可。加密模块1可以通过时钟加密锁提供的api接口获取锁内时间信息。103.在本实施例中,主机与机密锁加密锁数据传输加密方式,加密锁随机生成种子数据,种子长度大于等于1个字节,用种子与自定义算法生成第三密钥,使用第三密钥对第二密钥进行加密传输,加密方法采用对称加密算法(例如aes、3des、rc5或国密sm4等)。自定义算法具体方法不做限制,常用手段有置乱、加盐、算术运算、异或、移位,也可以在叠加对称加密算法。主机的加密模块1可以根据相同种子和自定义算法生成相同第三密钥,对加密密文解密获得第二密钥。使用第三密钥对第二密钥进行加密传输可以防止软件拦截、侦听造成泄密。在本实施例中,神经网络模型采用aes算法加密,第二密钥长度32字节,种子采用32位字节的随机数,私有算法采用(1)先按位进行异或操作(2)相邻两个字节相互交换位置(3)前16字节作为密钥,对后16字节数据进行加密,算法采用3des,通过上述过程生成32字节的第三密钥,将第二密钥加上32字节的随机数变为64位数据,使用第三密钥对其加密形成64位密文。104.综上,本发明将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离。密钥具有只能单向被写入加密锁,无法从加密锁外部读取的属性,提高了通信安全性。105.本发明使用带时钟的硬件加密锁设备,在加密锁内部创建加密模块,使用一次性的(one-shot)口令验证方式,不使用加密锁管理员密码登录,防止通过侦听或软件拦截造成加密锁管理员登录密码泄露,数据通信采用种子数据和自定义算法进行加密,提高了验证操作的安全性。106.本发明的主机加密模块可根据相同种子和自定义算法生成相同第三密钥,对加密密文解密获得第二密钥,再使用第三密钥对第二密钥进行加密传输可以防止软件拦截、侦听造成泄密。107.与现有技术中神经网络模型部署运行在终端设备侧的方式相比,本发明将加密后的模型分为两部分,第一部分储存在主机设备中,第二部分储存在时钟加密锁中,可以在没有网络连接的场景下使用本专利对模型进行保护,且两个设备存储的模型文件都不完整,加大了破解的难度。108.本发明与现有技术中网络模型文件本身不加密的方式相比,可以对全部或部分模型文件加密,加载运行模型只需要一次解密。109.本发明通过进行散列运算,并利用主机设备加密模块将运算结果发送给加密锁加密模块进行登入验证,加入时间信息可以防止重放攻击。110.本发明与现有技术中通过将神经网络模型存储在远端服务器上的方式相比,本发明将模型的密钥存储在时钟加密锁中,实现了密钥与加密模型的物理隔离,可以在没有网络连接的场景下使用本专利对模型进行保护。本发明解决了现有技术中存在的实时性受有制约且易被破解导致安全性低的技术问题。111.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1