CN117094008A - 神经网络模型加密方法、解密方法、装置、设备及介质 - Google Patents
神经网络模型加密方法、解密方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117094008A CN117094008A CN202310828013.7A CN202310828013A CN117094008A CN 117094008 A CN117094008 A CN 117094008A CN 202310828013 A CN202310828013 A CN 202310828013A CN 117094008 A CN117094008 A CN 117094008A
- Authority
- CN
- China
- Prior art keywords
- target
- parameter
- neural network
- network model
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000013528 artificial neural network Methods 0.000 claims abstract description 41
- 239000011159 matrix material Substances 0.000 claims description 89
- 238000013507 mapping Methods 0.000 claims description 67
- 238000012545 processing Methods 0.000 claims description 39
- 230000000739 chaotic effect Effects 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 19
- 238000012549 training Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000013135 deep learning Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Bioethics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及深度学习技术领域,特别涉及神经网络模型加密方法、解密方法、装置、设备及介质,用于提供一种在不影响模型计算精度的同时,提高抵御各类攻击能力的方案,本申请实施例利用业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;响应于目标对象的模型获取请求,将目标神经网络模型的中多个层划分为至少一个分组;对任一分组内多个层的权重矩阵进行合并,得到权重序列;基于加密运算规则,对权重序列中每个参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;将各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至目标对象。
Description
技术领域
本申请涉及深度学习技术领域,尤其涉及神经网络模型加密方法、解密方法、装置、设备及介质。
背景技术
基于深度学习技术的神经网络模型是当前研究的热点,但在实际应用过程中,神经网络模型容易被攻击或篡改,导致初始开发者权益受损。
相关技术中,通常通过在神经网络模型的模型结构或模型参数中添加后门或者数字水印等方法,对神经网络模型进行保护。但这类方法主要用于事后鉴别产权归属,或者在使用中进行权利声明,无法阻止侵权者非法使用模型,对于各类模型攻击手段缺乏防护的可靠性。同时,由于这类方法经常需要对神经网络模型的训练过程或者模型结构进行修改,除增加额外成本外,还会影响神经网络模型后续的推理精度。
发明内容
本发明提供了一种神经网络模型加密方法、解密方法、装置、设备及介质,用于在不影响神经网络模型推理精度的同时,提高其抵抗各种攻击的效果。
第一方面,本申请实施例提供一种神经网络模型加密方法,该方法包括:
获取业务数据,利用上述业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
响应于目标对象的模型获取请求,将上述目标神经网络模型的中多个层划分为至少一个分组;
针对任一分组,对上述分组内多个层的权重矩阵进行合并,得到权重序列;
针对上述权重序列中每个参数,基于加密运算规则,对上述参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
将上述权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至上述目标对象。
在一种可能的实施方式中,对上述分组内多个层的权重矩阵进行合并,得到权重序列,包括:
针对上述分组内任一层,基于预设规则,对上述任一层的权重矩阵进行降维处理,得到对应的处理结果;
对上述分组内各层对应的处理结果进行合并,得到上述权重序列。
在一种可能的实施方式中,上述基于加密运算规则,对上述参数的原始位置坐标进行至少一次非线性迭代运算,包括:
确定与上述权重矩阵对应的目标立方体,上述目标立方体为能够容纳上述权重矩阵内全部参数的最小立方体;
按照预设映射规则,将上述参数的原始位置坐标映射为上述目标立方体内对应的位置坐标;
基于加密运算规则,对上述参数映射后的位置坐标进行至少一次非线性迭代运算。
在一种可能的实施方式中,在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与上述加密运算规则对应的非线性函数,确定对应的第一运算值;
利用与上述加密运算规则对应的加权矩阵,对上一次非线性迭代运算后得到的位置坐标进行加权,得到对应的第二运算值;其中,上述加权矩阵的行列式与预设参数互质;
将上述第一运算值与第二运算值之和与上述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一种可能的实施方式中,上述预设参数为上述目标立方体的边长。
在一种可能的实施方式中,上述将加密后的目标神经网络发送至上述目标对象之前,上述方法还包括:
获取上述目标神经网络模型的待加密参数集合,上述待加密参数集合中包括多个待加密参数;
基于加密因子,对上述待加密参数中每个待加密参数进行加密;
其中,上述加密因子基于如下方式确定:
基于目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的加密因子。
第二方法,本申请实施例提供一种神经网络模型解密方法,上述方法包括:
响应于目标业务的处理请求,获取加密后的目标神经网络模型;
确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;
针对上述权重序列中每个参数,基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;
针对每个权重序列,将上述权重序列中的各参数分布至对应的原始位置坐标,并将上述权重序列还原为多个层的权重矩阵;
基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对上述目标业务进行处理。
在一种可能的实施方式中,上述基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置,包括:
基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的候选位置;
基于各参数的候选位置以及候选位置与原始位置的对应关系,确定各参数的原始位置。
在一种可能的实施方式中,在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与上述解密运算规则对应的非线性函数,确定对应的第三运算值;
利用与上述解密运算规则对应的加权矩阵,对上述第三运算值进行加权;其中,上述加权矩阵的逆矩阵的行列式与预设参数互质;
将上述第三运算值加权后的结果与上述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一种可能的实施方式中,上述候选位置为上述参数在目标立方体内对应的位置,上述目标立方体为能够容纳上述权重矩阵内全部参数的最小立方体,上述预设参数为上述目标立方体的边长。
在一种可能的实施方式中,利用解密后的目标网络模型对上述目标业务进行处理之前,上述方法还包括:
获取预设初始值、目标混沌映射参数以及加密因子;
基于上述目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的待验证因子;
若上述待验证因子与上述加密因子之间的差值小于预设阈值,则利用上述加密因子对上述目标网络模型中的参数进行解密。
第三方面,本申请实施例提供一种神经网络模型加密装置,该装置包括:
第一获取模块,用于获取业务数据,利用上述业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
分组模块,用于响应于目标对象的模型获取请求,将上述目标神经网络模型的中多个层划分为至少一个分组;
合并模块,用于针对任一分组,对上述分组内多个层的权重矩阵进行合并,得到权重序列;
第一运算模块,用于针对上述权重序列中每个参数,基于加密运算规则,对上述参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
发送模块,用于将上述权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至上述目标对象。
第四方面,本申请实施例提供一种神经网络模型解密装置,该装置包括:
第二获取模块,用于响应于目标业务的处理请求,获取加密后的目标神经网络模型;
确定模块,用于确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;
第二运算模块,用于针对上述权重序列中每个参数,基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;
还原模块,用于针对每个权重序列,将上述权重序列中的各参数分布至对应的原始位置坐标,并将上述权重序列还原为多个层的权重矩阵;
处理模块,用于基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对上述目标业务进行处理。
第五方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行计算机程序时实现上述第一方面或第二方面中所述方法的任一步骤。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述第一方面或第二方面中所述的任一步骤。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序存储在计算机可读存储介质中;当内存访问设备的处理器从计算机可读存储介质读取计算机程序时,处理器执行计算机程序,使得内存访问设备执行上述第一方面或第二方面中所述的任一步骤。
本申请的实施例提供的技术方案至少带来以下有益效果:
首先对神经网络模型进行训练,在训练完成后再对神经网络模型进行加密,分离了模型训练以及加密过程,不影响模型后续使用时的计算精度,在对模型进行加密时,首先进行层的切分以及矩阵的合并,再基于预设的加密运算规则对模型中参数的位置进行非线性迭代加密,提高了模型对各类攻击的抵御能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种神经网络模型加密方法的流程示意图;
图2为本申请实施例提供的一种神经网络模型解密方法的流程示意图;
图3为本申请实施例提供的一种可能的神经网络模型加密过程的流程示意图;
图4为本申请实施例提供的一种可能的神经网络模型解密过程的流程示意图;
图5为本申请实施例提供的一种神经网络模型加密装置的示意图;
图6为本申请实施例提供的一种神经网络模型解密装置的示意图;
图7为本申请实施例提供的一种电子设备的示意图;
图8为本申请实施例提供的另一种电子设备的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
基于深度学习技术的神经网络模型是当前研究的热点,但在实际应用过程中,神经网络模型容易被攻击或篡改,导致初始开发者权益受损。
相关技术中,通常通过在神经网络模型的模型结构或模型参数中添加后门或者数字水印等方法,对神经网络模型进行保护。但这类方法主要用于事后鉴别产权归属,或者在使用中进行权利声明,无法阻止侵权者非法使用模型,对于各类模型攻击手段缺乏防护的可靠性。同时,由于这类方法经常需要对神经网络模型的训练过程或者模型结构进行修改,除增加额外成本外,还会影响神经网络模型后续的推理精度。
基于上述问题,本申请实施例提供一种神经网络模型加密及解密方法,基于业务数据对待训练神经网络模型进行训练,对训练后的目标神经网络模型进行分组合并得到权重序列,再对权重序列中各参数的位置进行加密,即对神经网络模型的拓扑进行加密,在不影响模型计算精度的前提下,提高了对各类攻击的抵御能力。
图1为本申请实施例提供的一种神经网络模型加密方法的流程示意图;以下结合图1对本申请实施例中神经网络模型的加密过程进行详细阐述,如图1所示,本申请实施例提供的神经网络模型加密方法,具体包括如下步骤:
步骤S101,获取业务数据,利用业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
在一些实施例中,本申请实施例在基于业务数据对待训练神经网络模型进行训练,得到满足业务需求的目标神经网络后,再对目标神经网络模型进行加密,该过程分离了神经网络模型的梯度更新过程(即模型训练过程)、以及模型加密过程。
步骤S102,响应于目标对象的模型获取请求,将目标神经网络模型的中多个层划分为至少一个分组;
在一些实施例中,上述将目标神经网络模型的中多个层划分为至少一个分组,包括将目标神经网络模型的中多个层作为一个分组、以及将目标神经网络模型的中多个层划分为多个分组两种情况;本申请实施例对上述目标神经网络中多个层的划分规则不做限制,在实际实施中,可基于具体模型和环境需求进行设置,例如,部署在端侧的神经网络一般参数量较小,可设置为不进行分段。
在一些实施例中,上述每个分组在加密过程中,使用的参数不同。
步骤S103,针对任一分组,对分组内多个层的权重矩阵进行合并,得到权重序列;
在一些实施例中,上述对分组内多个层的权重矩阵进行合并,得到权重序列,具体包括如下步骤:
针对分组内任一层,基于预设规则,对任一层的权重矩阵进行降维处理,得到对应的处理结果;对分组内各层对应的处理结果进行合并,得到权重序列。
具体实施中,可基于flatten函数对每个层的权重矩阵进行处理,得到每个层分别对应的一维矩阵,并对各层对应的一维矩阵进行拼接,得到权重序列;实施中,记录权重矩阵中各参数在对应的层,以及在对应层的权重矩阵中的位置,以便于后续进行模型解密时进行位置还原。
步骤S104,针对权重序列中每个参数,基于加密运算规则,对参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
具体实施中,上述执行非线性迭代运算的次数可基于具体模型和环境而定,本申请实施例不做限制,在一些实施例中,在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与加密运算规则对应的非线性函数,确定对应的第一运算值;需要说明的是,若仅执行一次非线性迭代运算,则上一次非线性迭代运算后得到的位置坐标即为参数的初始位置坐标。本申请实施例中对上述非线性函数不做限制。
利用与加密运算规则对应的加权矩阵,对上一次非线性迭代运算后得到的位置坐标进行加权,得到对应的第二运算值;其中,加权矩阵的行列式与预设参数互质;
将第一运算值与第二运算值之和与预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一种可能的实施方式中,上述加密运算规则可以为Arnold(阿诺德)映射,Arnold映射是一种从环面到自身的混沌映射,其具有可逆、保面积的、拓扑可迁移性等多种性质;本申请实施例中在原始Arnold映射中引入了非线性部分,以提高数学求解难度以及各类攻击的抵御能力,具体地,上述非线性Arnold映射的递推公式可以为:
其中,k为0时,上述为参数映射后的位置坐标,k不为0时,上述/>为第k次递推输出的位置坐标,/>为第k+1次输出的位置坐标,N为预设参数,上述递推公式满足如下要求:1)矩阵/>时,gcd(detC,N)=1,其中gcd()函数用于求取最大公因数,gcd(detC,N)=1表示detC与N互质,detC表示矩阵C的行列式;2)a,b,c…j,s均为整数,其数值不做限制;3)非线性部分G1,G2为非线性函数,例如可以将其设为多项式函数、指数函数等多种非线性函数形式。可以证明,非线性部分使Arnold映射用于张量置乱加密时不具有传统线性密码学特性,具有一定抵御差分攻击的能力,且引入非线性部分后此Arnold映射变换过程仍为可逆的一对一映射,即后续可解密。
在另一些实施例中,上述基于加密运算规则,对参数的原始位置坐标进行至少一次非线性迭代运算,具体包括如下步骤:
确定与权重矩阵对应的目标立方体;该目标立方体为能够容纳权重矩阵内全部参数的最小立方体;具体地,假设权重矩阵内包括的参数的数量为Q,则上述目标立方体的边长size可基于如下公式确定:
按照预设映射规则,将参数的原始位置坐标映射为目标立方体内对应的位置坐标;具体地,本申请实施例中对上述预设映射规则的具体内容不做限制;例如,上述映射规则可以为按照参数在权重矩阵中的排列顺序,依次映射到目标立方体内中与该排列顺序对应的位置,比如,将权重矩阵中排列第一的参数映射到目标立方体内第一个位置。
基于加密运算规则,对参数映射后的位置坐标进行至少一次非线性迭代运算;具体地,若上述目标立方体可容纳的参数的数量大于权重矩阵中参数的数量,即size3>Q,则对目标立方体多余位置进行空元素padding运算,利用无用值填充其多余位置,同时,记录权重矩阵中每个参数的在权重矩阵中的位置、以及在目标立方体内的位置,以便于后续模型解密时使用。上述非线性迭代运算的过程可参见上述描述,此处不再赘述。
在一些实施例中,上述非线性迭代运算时使用的预设参数为上述目标立方体的边长。
步骤S105,将权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至目标对象。
上述方法,首先对神经网络模型进行训练,在训练完成后再对神经网络模型进行加密,分离了模型训练以及加密过程,不影响模型后续使用时的计算精度,在对模型进行加密时,首先进行层的切分以及矩阵的合并,再基于预设的加密运算规则对模型中参数的位置进行非线性迭代加密,提高了模型对各类攻击的抵御能力。
作为一种可选的实施方式,对上述神经网络模型进行加密的过程中,还对目标神经网络的参数进行加密,该参数可以是神经网络模型中的任一类参数,例如权重参数;该过程可以发生在响应于目标对象的模型获取请求之后,将加密后的目标神经网络发送至所述目标对象之前的任一过程中,具体实施中,对参数进行加密具体包括如下步骤:
获取目标神经网络模型的待加密参数集合;其中,该待加密参数集合中包括多个待加密参数;在具体实施中,待加密参数的选取可视具体模型和环境而定,例如部署在端侧的神经网络模型一般参数量较小,可将全部参数确定为待加密参数;在参数量较大的模型中,可选取目标神经网络模型中激活程度较高(如大于预设阈值)的参数作为待加密参数。
基于加密因子,对待加密参数中每个待加密参数进行加密;其中,加密因子基于如下方式确定:基于目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的加密因子。需要说明的是,上述对待加密参数中每个待加密参数进行加密时使用的加密因子可以相同或不同。上述执行混沌映射的次数可基于具体模型和环境而定,本申请实施例不做限制。
具体实施中,基于加密因子,对待加密参数中每个待加密参数进行加密的过程包括但不限于:将待加密参数与对应的加密因子进行加减乘除等运算,得到对应的加密参数。在一些实施例中,上述目标混沌映射可以为任一连续型混沌映射,例如Logistic混沌映射。
Logistic混沌映射,是一种二次多项式的映射(递推关系式),是由简单非线性方程式产生混沌现象的经典范例,其性质包括:1)非线性;2)对初值的敏感依赖性;3)整体稳定局部不稳定;4)长期不可预测性,其递推公式如下:
xj+1=r(1-xj),x0∈[0,1],
其中,上述公式中,x0为预设初始值,r为一个参数,其值可基于需求进行设定,xj为第j次递推的结果,xj+1为第j+1次递推的结果。
以下以Logistic混沌映射为例,对加密因子的确定过程进行阐述:
首先,设定预设初始值x0、迭代次数q以及参数r;然后,基于上述递推公式进行k次计算,得到加密因子xk,具体实施中,可视情况加入扩大等运算。
同时,为便于后续解密,将初始值x0、迭代次数q以及参数r作为解密的密钥,将密钥和加密因子进行存储,例如保存到解密存储介质中。
相较于相关技术中通过训练过程来进行参数加密,该方法加密后得到的参数为叠加后的混淆值,通常只有拥有正确的密钥方可进行正常的参数推理计算,破解难度较高,同时,参数加密后模型对数据过程相关的攻击几乎能实现完全抵御。
上述方法,提出基于多种混沌映射的模神经网络模型加密方法,从神经网络的计算拓扑和参数值两个层面对神经网络模型进行加密。该方法分离模型数据计算、梯度更新过程以及加密过程,既能保护和检验模型产权,又能够阻止攻击者对于模型的非法使用,保护参数不泄露,其破解难度极高且不会影响推理精度,也不会带来额外训练成本和重新设计网络的需求。从可靠性来看,该方法能够有效抵御多种神经网络的攻击类型,攻击破解该方法的难度和计算复杂度极高,且不会影响推理精度,相对于相关技术具有明显的优势。
图2为本申请实施例提供的一种神经网络模型解密方法的流程示意图;以下结合图2对本申请实施例中神经网络模型的解密过程进行详细阐述,如图2所示,本申请实施例提供的神经网络模型解密方法,具体包括如下步骤:
步骤S201,响应于目标业务的处理请求,获取加密后的目标神经网络模型;
在一些实施例中,同时获取解密运算规则以及解密相关的参数,例如上述步骤S101-S105过程中的将多个层的权重矩阵合并为权重序列时记录的权重矩阵中各参数在对应的层,以及在对应层的权重矩阵中的位置等。
步骤S202,确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;
步骤S203,针对权重序列中每个参数,基于解密运算规则,对参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;
具体实施中,上述执行非线性迭代运算的次数与该目标神经网络模型加密时执行非线性迭代运算时的次数相同,且上述解密运算规则,即为该目标神经网络模型加密时加密运算过程的逆过程。
在一些实施例中,在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与解密运算规则对应的非线性函数,确定对应的第三运算值;需要说明的是,若仅执行一次非线性迭代运算,则上一次非线性迭代运算后得到的位置坐标即为参数的加密位置的坐标。
利用与解密运算规则对应的加权矩阵,对第三运算值进行加权;其中,加权矩阵的逆矩阵的行列式与预设参数互质;
将第三运算值加权后的结果与预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一种可能的实施方式中,若上述加密运算规则为Arnold映射,则上述解密运算规则可以为Arnold映射的逆运算,具体地,其对应的递推公式可以为:
其中,上述为第k次递推输出的位置坐标,/>为第k+1次输出的位置坐标,N为预设参数,上述递推公式满足如下要求:1)矩阵/>时,gcd(detC,N)=1,其中gcd()函数用于求取最大公因数,gcd(detC,N)=1表示detC与N互质,detC表示矩阵C的行列式;2)a,b,c…j,s均为整数;3)非线性部分G1,G2为非线性函数。其中各参数的取值与加密时进行Arnold映射时的参数取值相同。
在一些实施例中,上述基于解密运算规则,对参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置,具体包括:
基于解密运算规则,对参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的候选位置;在一些实施例中,每个参数的候选位置为该参数在目标立方体内对应的位置,目标立方体为能够容纳权重矩阵内全部参数的最小立方体,非线性迭代运算的过程可参见上述描述,其预设参数为目标立方体的边长。
基于各参数的候选位置以及候选位置与原始位置的对应关系,确定各参数的原始位置。在一些实施例中,上述各参数的候选位置以及候选位置与原始位置的对应关系,即上述步骤S104中记录的权重矩阵中每个参数的在权重矩阵中的位置、以及在目标立方体内的位置;基于该对应关系,即可确定各参数的初始位置,进行参数位置的还原。
步骤S204,针对每个权重序列,将权重序列中的各参数分布至对应的原始位置坐标,并将权重序列还原为多个层的权重矩阵;
在一些实施例中,上述步骤S103中将多个层的权重矩阵合并为权重序列时,记录了权重矩阵中各参数在对应的层,以及在对应层的权重矩阵中的位置等信息,基于该信息,即可将权重序列还原为多个层的权重矩阵。
步骤S205,基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对目标业务进行处理。
在一些实施例中,若对目标神经网络模型进行加密的过程中,对模型中的参数进行了加密,则还需要基于如下步骤对参数进行解密:
获取预设初始值、目标混沌映射参数以及加密因子;该预设初始值、目标混沌映射参数以及加密因子为参数加密过程中存储的。
基于目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的待验证因子;若待验证因子与加密因子之间的差值小于预设阈值,则利用加密因子对目标网络模型中的参数进行解密。上述预设阈值可基于具体模型和环境需求进行设定,本申请实施例不做限制。
需要说明的是,对目标神经网络模型进行解密时的解密顺序与该模型的加密顺序对应,例如,若在模型加密过程中,首先对模型的参数进行了加密,然后对模型的参数位置进行了加密(即步骤S102-S104),则解密时,首先对模型的参数位置进行解密,然后对模型的参数进行解密。
图3为本申请实施例提供的一种可能的神经网络加密过程的流程示意图;以下结合图3以一种可能的实施方式,对上述神经网络加密过程进行描述;需要说明的是,该过程中假设首先使用Logistic映射进行参数的加密,再使用Arnold映射进行模型中参数位置的加密,且该过程省略了基于业务数据对模型进行训练的过程;如图3所示,具体实施过程如下:
步骤S301,获取目标神经网络模型;
步骤S302,获取目标神经网络模型的待加密参数集合M;
步骤S303,对待加密参数集合M中各参数进行Logistic映射;
在一些实施例中,设定m组参数的取值,每组参数包括:预设初始值x0、迭代次数q以及参数r,需要说明的是,设定的参数的组数m可基于模型需求进行设定,最小取值为1,最大取值为待加密参数集合中参数的数量M,即m∈M。
需要说明的是,上述预设初始值x0以及参数r满足如下条件:
同时,将各组参数的取值以及待加密参数结合进行存储,例如将其作为解密的Key1:其中,/>表示m个x0,qm表示m个q,rm表示m个r。
然后,基于如下公式,进行q次迭代运算,得到加密因子xq:
xj+1=r(1-xj)
同时,将Key1和xj(m个)保存到解密存储介质中,以便于后续解密时,规避计算误差。
步骤S304,得到加密后的参数;
在一些实施例中,若参数wselect,对应的加密因子为xj,则可将wselect+xj作为加密后的参数,保存到模型中。
步骤S305,对目标神经网络模型进行切分,并进行权重矩阵的合并;
在一些实施例中,将对目标神经网络模型中所有层切分为L组,各个分组使用相同或不同的参数进行加密,本申请实施例不限制具体的切分方式。
在一些实施例中,设定l组参数的取值,每组参数包括:矩阵C、迭代次数K以及函数G1,G2,需要说明的是,设定的参数的组数l可基于模型需求进行设定,最小取值为1,最大取值为分组的数量L,l∈L。
步骤S306,对各参数进行位置映射;
即构建立方体:对每个分组内包括的多个层的权重矩阵进行flatten以及拼接的序列化操作,得到权重序列,并求取该权重序列对应的目标立方体。
假设最终得到的权重序列中具有N个参数,则此立方体边长size为:
按照预设映射规则,将参数的原始位置坐标(即在权重矩阵中的位置坐标)映射为目标立方体内对应的位置坐标;若size3>N,目标立方体多余位置进行空元素padding运算,并记录每个参数(包括空元素)的位置坐标;同时,记录权重矩阵中每个参数的在权重矩阵中的位置、以及在目标立方体内的位置,以便于后续模型解密时使用。
步骤S307,对各参数进行Arnold映射(非线性);
基于如下公式,对每个参数映射后的位置坐标(即在目标立方体内对应的位置坐标)进行K次递推,得到加密后的位置坐标:
其中,k为0时,上述为参数映射后的位置坐标,k不为0时,上述/>为第k次递推输出的位置坐标,/>为第k+1次输出的位置坐标,N为预设参数,上述递推公式满足如下要求:1)矩阵/>时,gcd(det C,N)=1,其中gcd()函数用于求取最大公因数,gcd(detC,N)=1表示detC与N互质,detC表示矩阵C的行列式;2)a,b,c…j,s均为整数,其数值不做限制;3)非线性部分G1,G2为非线性函数,例如可以将其设为多项式函数、指数函数等多种非线性函数形式,例如,Gt(x)=axa+bxb+…+x1+1,t=1,2。
同时,记录对应的Key2:L为切分的分组的集合。
步骤S308,得到加密后的目标神经网络模型;
在一些实施例中,记录递推后得到的各个参数的位置坐标,将各个参数在计算拓扑中的存储位置移动到递推后的坐标位置,完成计算拓扑加密。
图4为本申请实施例提供的一种可能的神经网络解密过程的流程示意图;以下结合图4以一种可能的实施方式,对上述神经网络解密过程进行描述;需要说明的是,该过程为与图3的加密过程对应的解密过程,即解密时首先对参数位置进行解密,再对参数进行解密;如图4所示,具体实施过程如下:
步骤S401,获取加密后的目标神经网络模型;
同时,获取密钥Key1、Key2、加密因子、以及权重矩阵中每个参数的在权重矩阵中的位置、以及在目标立方体内的位置。
步骤S402,对目标神经网络模型中各参数进行Arnold映射反变换;
具体地,基于Key2:按照以下递推公式推导计算参数的候选位置(即在目标立方体内的位置坐标):/>
其中,各参数的取值及含义详见上述步骤S307。
步骤S403,基于预先存储的各参数的候选位置以及候选位置与原始位置的对应关系,确定各参数的原始位置。
基于预先存储的各参数的候选位置以及候选位置与原始位置的对应关系,即权重矩阵中每个参数的在权重矩阵中的位置、以及在目标立方体内的位置,确定各参数的原始位置。
步骤S404,基于Key1进行Logistic映射验证,并对待加密参数集合M对应的各参数进行解密;
基于Key1:然后,基于如下公式,进行q次迭代运算,得到待验证因子/>
xj+1=r(1-xj)
若ε为任意小的实数,则验证结果正确;基于获取的加密因子xq对其对应的参数进行解密。使用预先存储的xq了规避计算误差,避免影响模型精度。
步骤S405,基于解密后的目标神经网络模型对目标业务进行处理;
在一些实施例中,处理过程为Fout=(wencryptFin-xqFin),其中,Fin为输入的目标业务数据,Fout为输出的目标业务数据,wencrypt为目标神经网络中的加密参数,wencrypt=wselect+xq,wselect为目标神经网络中的加密前的初始参数。
以下对上述方法的有效性进行分析:
1、Logistic映射具有如下性质:1)非线性;2)对初值的敏感依赖性;3)整体稳定局部不稳定;4)长期不可预测性等。因此对于连续型权重数据,在保护好初值和递推参数的前提下,进行长期预测几乎不可能实现。
2、非线性的Arnold映射:暴力求解复杂度极高,要暴力求解此映射,需要获取Key2:在没有任何参考数据的情况下要猜测以上参数是极端困难的。
假设使用的变换矩阵C满足以下条件:参数a、b、c只能取二值,非线性部分取多项式函数,最高阶数为N1,N2,系数均为1,且在分组过程没有采样选择过程的前提下,其暴力求解的复杂度满足O(KL)*O(24L)*O(N1)*O(N2),其中O()为大O表示法中函数的增长率,也被称为函数的阶数,即字母O代表Order(阶数)。假设K最大为10,N1=5,N2=5,目标神经网络模型以VGG-16(13层)为例,L=13,则复杂度表达式的值为1.1259×1030,即破解复杂度极高。
以下以一个具体实例,对上述方法中非线性的Arnold映射的正变换以及逆变换过程进行描述:
假定目标立方体为一个边长为2的立方体,对应的权重序列中包括8个参数,正变换矩阵为:
逆变换矩阵为:
其中,a=b=c=d=1;非线性部分设置为G1(x)=4x4+2x2+1,G2(x)=5x5+3x3+1,系数设置为j=2,s=1。
对应权重序列中8个参数对应的候选坐标依次为:(0,0,0)、(0,1,0)、(1,0,0)、(1,1,0)、(0,0,1)、(0,1,1)、(1,0,1)、(1,1,1);
利用正变换矩阵递推10次后坐标依次为:(1,1,1)、(1,1,0)、(0,1,1)、(0,1,0)、(1,0,1)、(1,0,0)、(0,0,1)、(0,0,0);
利用逆变换矩阵递推10次后坐标依次为:(0,0,0)、(0,1,0)、(1,0,0)、(1,1,0)、(0,0,1)、(0,1,1)、(1,0,1)、(1,1,1)。
其中,(u,v,w)表示目标立方体内第u+1层第v+1行第w+1列对应的位置坐标。
图5为本申请实施例提供的一种神经网络模型加密装置的示意图,请参考图5,本申请实施例提供一种神经网络模型加密装置,该装置包括:
第一获取模块501,用于获取业务数据,利用上述业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
分组模块502,用于响应于目标对象的模型获取请求,将上述目标神经网络模型的中多个层划分为至少一个分组;
合并模块503,用于针对任一分组,对上述分组内多个层的权重矩阵进行合并,得到权重序列;
第一运算模块504,用于针对上述权重序列中每个参数,基于加密运算规则,对上述参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
发送模块505,用于将上述权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至上述目标对象。
在一些可能的实施方式中,上述合并模块503,用于对上述分组内多个层的权重矩阵进行合并,得到权重序列,包括:
针对上述分组内任一层,基于预设规则,对上述任一层的权重矩阵进行降维处理,得到对应的处理结果;
对上述分组内各层对应的处理结果进行合并,得到上述权重序列。
在一些可能的实施方式中,上述第一运算模块504,用于基于加密运算规则,对上述参数的原始位置坐标进行至少一次非线性迭代运算,包括:
确定与上述权重矩阵对应的目标立方体,上述目标立方体为能够容纳上述权重矩阵内全部参数的最小立方体;
按照预设映射规则,将上述参数的原始位置坐标映射为上述目标立方体内对应的位置坐标;
基于加密运算规则,对上述参数映射后的位置坐标进行至少一次非线性迭代运算。
在一些可能的实施方式中,上述第一运算模块504在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与上述加密运算规则对应的非线性函数,确定对应的第一运算值;
利用与上述加密运算规则对应的加权矩阵,对上一次非线性迭代运算后得到的位置坐标进行加权,得到对应的第二运算值;其中,上述加权矩阵的行列式与预设参数互质;
将上述第一运算值与第二运算值之和与上述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一些可能的实施方式中,上述预设参数为目标立方体的边长。
在一些可能的实施方式中,上述发送模块505用于上述将加密后的目标神经网络发送至上述目标对象之前,还用于:
获取上述目标神经网络模型的待加密参数集合,上述待加密参数集合中包括多个待加密参数;
基于加密因子,对上述待加密参数中每个待加密参数进行加密;
其中,上述加密因子基于如下方式确定:
基于目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的加密因子。
图6为本申请实施例提供的一种神经网络模型解密装置的示意图,请参考图6,本申请实施例提供一种神经网络模型解密装置,该装置包括:
第二获取模块601,用于响应于目标业务的处理请求,获取加密后的目标神经网络模型;
确定模块602,用于确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;
第二运算模块603,用于针对上述权重序列中每个参数,基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;
还原模块604,用于针对每个权重序列,将上述权重序列中的各参数分布至对应的原始位置坐标,并将上述权重序列还原为多个层的权重矩阵;
处理模块605,用于基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对上述目标业务进行处理。
在一些可能的实施方式中,上述第二运算模块603用于基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置,包括:
基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的候选位置;
基于各参数的候选位置以及候选位置与原始位置的对应关系,确定各参数的原始位置。
在一些可能的实施方式中,上述第二运算模块603在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与上述解密运算规则对应的非线性函数,确定对应的第三运算值;
利用与上述解密运算规则对应的加权矩阵,对上述第三运算值进行加权;其中,上述加权矩阵的逆矩阵的行列式与预设参数互质;
将上述第三运算值加权后的结果与上述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一些可能的实施方式中,上述候选位置为上述参数在目标立方体内对应的位置,上述目标立方体为能够容纳上述权重矩阵内全部参数的最小立方体,上述预设参数为上述目标立方体的边长。
在一些可能的实施方式中,上述处理模块605利用解密后的目标网络模型对上述目标业务进行处理之前,还用于:
获取预设初始值、目标混沌映射参数以及加密因子;
基于上述目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的待验证因子;
若上述待验证因子与上述加密因子之间的差值小于预设阈值,则利用上述加密因子对上述目标网络模型中的参数进行解密。
基于相同的公开构思,本申请实施例中还提供了一种测试数据构建设备,由于该设备即是本申请实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的测试数据构建方法中的步骤。
下面参照图7来描述根据本申请的这种实施方式的设备700。图7显示的设备700仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,设备700以通用设备的形式表现,用于执行神经网络模型的加密。设备700的组件可以包括但不限于:上述至少一个处理器701、上述至少一个存储器702、连接不同系统组件(包括存储器702和处理器701)的总线703,其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行以下步骤:
获取业务数据,利用上述业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
响应于目标对象的模型获取请求,将上述目标神经网络模型的中多个层划分为至少一个分组;
针对任一分组,对上述分组内多个层的权重矩阵进行合并,得到权重序列;
针对上述权重序列中每个参数,基于加密运算规则,对上述参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
将上述权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至上述目标对象。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(ROM)7023。
存储器702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
设备700也可以与一个或多个外部设备704(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与设备700交互的设备通信,和/或与使得该设备700能与一个或多个其它设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口705进行。并且,设备700还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与用于设备700的其它模块通信。应当理解,尽管图中未示出,可以结合设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一种可能的实施方式中,上述处理器具体用于:
针对上述分组内任一层,基于预设规则,对上述任一层的权重矩阵进行降维处理,得到对应的处理结果;
对上述分组内各层对应的处理结果进行合并,得到上述权重序列。
在一种可能的实施方式中,上述处理器具体用于:
确定与上述权重矩阵对应的目标立方体,上述目标立方体为能够容纳上述权重矩阵内全部参数的最小立方体;
按照预设映射规则,将上述参数的原始位置坐标映射为上述目标立方体内对应的位置坐标;
基于加密运算规则,对上述参数映射后的位置坐标进行至少一次非线性迭代运算。
在一种可能的实施方式中,上述处理器在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与上述加密运算规则对应的非线性函数,确定对应的第一运算值;
利用与上述加密运算规则对应的加权矩阵,对上一次非线性迭代运算后得到的位置坐标进行加权,得到对应的第二运算值;其中,上述加权矩阵的行列式与预设参数互质;
将上述第一运算值与第二运算值之和与上述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一种可能的实施方式中,上述预设参数为上述目标立方体的边长。
在一种可能的实施方式中,上述处理器用于将加密后的目标神经网络发送至上述目标对象之前,还用于:
获取上述目标神经网络模型的待加密参数集合,上述待加密参数集合中包括多个待加密参数;
基于加密因子,对上述待加密参数中每个待加密参数进行加密;
其中,上述加密因子基于如下方式确定:基于目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的加密因子。
本申请实施例还提供另一种设备800,用于执行神经网络模型的解密,如图8所示,设备800以通用设备的形式表现。设备800的组件可以包括但不限于:上述至少一个处理器801、上述至少一个存储器802、连接不同系统组件(包括存储器802和处理器801)的总线803,其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行以下步骤:
响应于目标业务的处理请求,获取加密后的目标神经网络模型;确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;针对上述权重序列中每个参数,基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;针对每个权重序列,将上述权重序列中的各参数分布至对应的原始位置坐标,并将上述权重序列还原为多个层的权重矩阵;基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对上述目标业务进行处理。
总线803表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器802可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022,还可以进一步包括只读存储器(ROM)8023。
存储器802还可以包括具有一组(至少一个)程序模块8024的程序/实用工具8025,这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
设备800也可以与一个或多个外部设备804(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与设备800交互的设备通信,和/或与使得该设备800能与一个或多个其它设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口805进行。并且,设备800还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器806通过总线803与用于设备800的其它模块通信。应当理解,尽管图中未示出,可以结合设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,上述处理器具体用于:
基于解密运算规则,对上述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的候选位置;基于各参数的候选位置以及候选位置与原始位置的对应关系,确定各参数的原始位置。
在一些可能的实施方式中,上述处理器在每次非线性迭代运算中执行如下操作:以上一次非线性迭代运算后得到的位置坐标为输入,基于与上述解密运算规则对应的非线性函数,确定对应的第三运算值;
利用与上述解密运算规则对应的加权矩阵,对上述第三运算值进行加权;其中,上述加权矩阵的逆矩阵的行列式与预设参数互质;
将上述第三运算值加权后的结果与上述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
在一些可能的实施方式中,上述候选位置为上述参数在目标立方体内对应的位置,上述目标立方体为能够容纳上述权重矩阵内全部参数的最小立方体,上述预设参数为上述目标立方体的边长。
在一些可能的实施方式中,上述处理器用于利用解密后的目标网络模型对上述目标业务进行处理之前,还用于:获取预设初始值、目标混沌映射参数以及加密因子;基于上述目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的待验证因子;若上述待验证因子与上述加密因子之间的差值小于预设阈值,则利用上述加密因子对上述目标网络模型中的参数进行解密。
在一些可能的实施方式中,本申请提供的一种神经网络模型加密方法、以及神经网络模型解密方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种神经网络模型加密方法、以及神经网络模型解密方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行、或者完全在远程设备或服务端上执行。在涉及远程设备的情形中,远程设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户设备,或者,可以连接到外部设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种神经网络模型加密方法,其特征在于,所述方法包括:
获取业务数据,利用所述业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
响应于目标对象的模型获取请求,将所述目标神经网络模型的中多个层划分为至少一个分组;
针对任一分组,对所述分组内多个层的权重矩阵进行合并,得到权重序列;
针对所述权重序列中每个参数,基于加密运算规则,对所述参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
将所述权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至所述目标对象。
2.根据权利要求1所述的方法,其特征在于,对所述分组内多个层的权重矩阵进行合并,得到权重序列,包括:
针对所述分组内任一层,基于预设规则,对所述任一层的权重矩阵进行降维处理,得到对应的处理结果;
对所述分组内各层对应的处理结果进行合并,得到所述权重序列。
3.根据权利要求1所述的方法,其特征在于,所述基于加密运算规则,对所述参数的原始位置坐标进行至少一次非线性迭代运算,包括:
确定与所述权重矩阵对应的目标立方体,所述目标立方体为能够容纳所述权重矩阵内全部参数的最小立方体;
按照预设映射规则,将所述参数的原始位置坐标映射为所述目标立方体内对应的位置坐标;
基于加密运算规则,对所述参数映射后的位置坐标进行至少一次非线性迭代运算。
4.根据权利要求3所述的方法,其特征在于,在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与所述加密运算规则对应的非线性函数,确定对应的第一运算值;
利用与所述加密运算规则对应的加权矩阵,对上一次非线性迭代运算后得到的位置坐标进行加权,得到对应的第二运算值;其中,所述加权矩阵的行列式与预设参数互质;
将所述第一运算值与第二运算值之和与所述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
5.根据权利要求4所述的方法,其特征在于,所述预设参数为所述目标立方体的边长。
6.根据权利要求1~5任一所述的方法,其特征在于,所述将加密后的目标神经网络发送至所述目标对象之前,所述方法还包括:
获取所述目标神经网络模型的待加密参数集合,所述待加密参数集合中包括多个待加密参数;
基于加密因子,对所述待加密参数中每个待加密参数进行加密;
其中,所述加密因子基于如下方式确定:
基于目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的加密因子。
7.一种神经网络模型解密方法,其特征在于,所述方法包括:
响应于目标业务的处理请求,获取加密后的目标神经网络模型;
确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;
针对所述权重序列中每个参数,基于解密运算规则,对所述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;
针对每个权重序列,将所述权重序列中的各参数分布至对应的原始位置坐标,并将所述权重序列还原为多个层的权重矩阵;
基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对所述目标业务进行处理。
8.根据权利要求7所述的方法,其特征在于,所述基于解密运算规则,对所述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置,包括:
基于解密运算规则,对所述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的候选位置;
基于各参数的候选位置以及候选位置与原始位置的对应关系,确定各参数的原始位置。
9.根据权利要求8所述的方法,其特征在于,在每次非线性迭代运算中执行如下操作:
以上一次非线性迭代运算后得到的位置坐标为输入,基于与所述解密运算规则对应的非线性函数,确定对应的第三运算值;
利用与所述解密运算规则对应的加权矩阵,对所述第三运算值进行加权;其中,所述加权矩阵的逆矩阵的行列式与预设参数互质;
将所述第三运算值加权后的结果与所述预设参数进行取余运算,得到当前次非线性迭代运算对应的位置坐标。
10.根据权利要求9所述的方法,其特征在于,所述候选位置为所述参数在目标立方体内对应的位置,所述目标立方体为能够容纳所述权重矩阵内全部参数的最小立方体,所述预设参数为所述目标立方体的边长。
11.根据权利要求7~10任一所述的方法,其特征在于,利用解密后的目标网络模型对所述目标业务进行处理之前,所述方法还包括:
获取预设初始值、目标混沌映射参数以及加密因子;
基于所述目标混沌映射参数,对预设初始值进行至少一次混沌映射,得到对应的待验证因子;
若所述待验证因子与所述加密因子之间的差值小于预设阈值,则利用所述加密因子对所述目标网络模型中的参数进行解密。
12.一种神经网络模型加密装置,其特征在于,该装置包括:
第一获取模块,用于获取业务数据,利用所述业务数据对待训练神经网络进行训练,得到满足业务需求的目标神经网络;
分组模块,用于响应于目标对象的模型获取请求,将所述目标神经网络模型的中多个层划分为至少一个分组;
合并模块,用于针对任一分组,对所述分组内多个层的权重矩阵进行合并,得到权重序列;
第一运算模块,用于针对所述权重序列中每个参数,基于加密运算规则,对所述参数的原始位置坐标进行至少一次非线性迭代运算,得到与每个参数对应的加密位置;
发送模块,用于将所述权重序列中的各参数分布至对应的加密位置,得到加密后的目标神经网络模型,将加密后的目标神经网络发送至所述目标对象。
13.一种神经网络模型解密装置,其特征在于,该装置包括:
第二获取模块,用于响应于目标业务的处理请求,获取加密后的目标神经网络模型;
确定模块,用于确定加密后的目标网络模型中的权重序列,并确定每个权重序列中各参数对应的加密位置;
第二运算模块,用于针对所述权重序列中每个参数,基于解密运算规则,对所述参数对应的加密位置坐标进行至少一次非线性迭代运算,得到各参数的原始位置;
还原模块,用于针对每个权重序列,将所述权重序列中的各参数分布至对应的原始位置坐标,并将所述权重序列还原为多个层的权重矩阵;
处理模块,用于基于各层对应的权重矩阵,确定解密后的目标网络模型,并利用解密后的目标网络模型对所述目标业务进行处理。
14.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~11任一项所述方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1~11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310828013.7A CN117094008A (zh) | 2023-07-06 | 2023-07-06 | 神经网络模型加密方法、解密方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310828013.7A CN117094008A (zh) | 2023-07-06 | 2023-07-06 | 神经网络模型加密方法、解密方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117094008A true CN117094008A (zh) | 2023-11-21 |
Family
ID=88782481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310828013.7A Pending CN117094008A (zh) | 2023-07-06 | 2023-07-06 | 神经网络模型加密方法、解密方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117094008A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117390684A (zh) * | 2023-12-06 | 2024-01-12 | 深圳市智能派科技有限公司 | 基于切片层级关联的数据加密处理方法及系统 |
CN117592089A (zh) * | 2024-01-18 | 2024-02-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
-
2023
- 2023-07-06 CN CN202310828013.7A patent/CN117094008A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117390684A (zh) * | 2023-12-06 | 2024-01-12 | 深圳市智能派科技有限公司 | 基于切片层级关联的数据加密处理方法及系统 |
CN117390684B (zh) * | 2023-12-06 | 2024-04-09 | 深圳市智能派科技有限公司 | 基于切片层级关联的数据加密处理方法及系统 |
CN117592089A (zh) * | 2024-01-18 | 2024-02-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
CN117592089B (zh) * | 2024-01-18 | 2024-05-07 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111355705B (zh) | 一种基于区块链的数据审计与安全去重云存储系统、方法 | |
Norouzi et al. | An image encryption algorithm based on DNA sequence operations and cellular neural network | |
Wang et al. | Toward publicly auditable secure cloud data storage services | |
CN117094008A (zh) | 神经网络模型加密方法、解密方法、装置、设备及介质 | |
Chen et al. | Onion ring ORAM: efficient constant bandwidth oblivious RAM from (leveled) TFHE | |
Belaïd et al. | Private multiplication over finite fields | |
CN108898028B (zh) | 涉及迭代与随机加密的神经网络模型加密保护系统及方法 | |
CN111784001B (zh) | 一种模型训练方法、设备及计算机可读存储介质 | |
US20170163413A1 (en) | System and Method for Content Encryption in a Key/Value Store | |
JP2020506597A (ja) | データ・マスキング | |
US10127244B2 (en) | Systems and methods for dynamic data storage | |
CN111639367B (zh) | 基于树模型的两方联合分类方法、装置、设备及介质 | |
CN113157778B (zh) | 分布式数据仓库的可代理查询方法、系统、设备及介质 | |
Li et al. | An efficient blind filter: Location privacy protection and the access control in FinTech | |
JP2022549075A (ja) | 暗号化されたデータの異常判定方法、システム、プログラム | |
Ibarrondo et al. | Banners: Binarized neural networks with replicated secret sharing | |
JP5972181B2 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
CN108804931B (zh) | 涉及域变换数据加密的神经网络模型加密保护系统及方法 | |
CN114760052A (zh) | 银行物联网平台密钥生成方法、装置、电子设备及介质 | |
CN112149141B (zh) | 模型训练方法、装置、设备和介质 | |
CN115409095B (zh) | 多方泊松回归隐私计算模型训练方法、装置和存储介质 | |
Yuan et al. | Secure integrated circuit design via hybrid cloud | |
He et al. | Multi-party privacy-preserving record linkage method based on trusted execution environment | |
Liu et al. | Finding ordinary cube variables for Keccak-MAC with greedy algorithm | |
Amrit et al. | Deep learning-based segmentation for medical data hiding with Galois field |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |