【技术实现步骤摘要】
一种基于神经网络的程序控制流混淆方法及系统
本专利技术属于程序控制流混淆
,尤其涉及一种基于神经网络的程序控制流混淆方法及系统。
技术介绍
目前,随着互联网的飞速发展和大数据时代的到来,云端计算服务越来越流行,在云计算环境能够给用户带来更强的计算能力和更好的扩展性的同时,也导致了用户重要算法泄露的安全问题。因此,在云计算场景下,当远程环境不可信时,保护程序逻辑的机密性成为重要的安全要求。程序代码的安全保护是计算机安全领域的一个重点研究内容,控制流混淆是保护程序逻辑的直接方法。程序代码的控制流决定要执行的指令序列,直接反映了程序的逻辑,而控制流混淆将程序的控制流转换为无法理解的形式,可以有效保护程序逻辑的机密性。然而,现有的控制流混淆工作存在普适性不足的问题,严格符合安全定义的混淆方法往往会产生巨大的时间消耗,无法满足云计算环境下程序保护的需要。现有技术应用中没有利用神经网络实现控制流混淆的方法,人工神经网络(ANN)模仿生物神经网络的行为特征,由大量的神经元连接组成,各个神经元之间用可变权值的有向弧连接,通过调节权值使处理结果逼近设定的值,人工神经网络具有极高的容错性以及极强的非线性函数逼近能力,能够很好地近似分支语句的判断条件。通过上述分析,现有技术存在的问题及缺陷为:(1)借助可信硬件保护的方法是过于依赖可信硬件,并且云端服务器与可信环境的交互会产生巨大的时间开销。(2)现有的代码混淆方法适用性不高,不能很好的兼顾安全性、耐受性以及时间开销三方面。解决以上问题及缺陷的 ...
【技术保护点】
1.一种基于神经网络的程序控制流混淆方法,其特征在于,所述基于神经网络的程序控制流混淆方法包括:/n将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。/n
【技术特征摘要】
1.一种基于神经网络的程序控制流混淆方法,其特征在于,所述基于神经网络的程序控制流混淆方法包括:
将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。
2.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述第一自定义函数的一参数表示标准化判断条件的左操作数,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;所述标准化判断条件表示根据不等式原则,将右操作数中所有变量移到左操作数,左右操作数分别加一个随机常数后的标准化不等式;
所述第一自定义函数表示如下:
NNQuery(L(s),i(s));
其中,L(s)表示当前转换的分支语句的标准化判断条件的左操作数,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权值的唯一标识。
3.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述根据标准化判断条件训练神经网络二分类模型的方法包括:
标准化判断条件的左操作数作为神经网络的输入样本,根据左操作数在标准化判断条件中的评估结果,标记输入样本的类别,制作神经网络的训练集;
使训练的神经网络获取神经网络模型权值,模拟条件分支语句的逻辑;
所述神经网络模型权值W以多元组的形式表示如下:
W={i(s),w(s)}
其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值;
训练伪分支神经网络二分类模型的方法包括:
输入空间中的最大值为一类,剩余输入样本全为同一类别,制作神经网络的训练集;使训练的神经网络模型始终流向语句s。
4.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述将原始程序中分支语句的判断条件进行隐藏前,需进行:在原始语句s之前构造并插入伪分支语句,所述伪分支语句流向s,使程序原本的控制流程不被篡改;并将伪分支语句的判断条件转换为第二自定义函数,获得混淆后程序和伪分支神经网络模型;
所述第二自定义函数表示如下:
NNQuery(L(s),i(s))
其中,L(s)表示当前语句s可达变量的随机线性表达式,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;
所述第二自定义函数的一参数表示当前语句s可达变量的随机线性表达式,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。
5...
【专利技术属性】
技术研发人员:王永智,王博,沈玉龙,何昶辉,赵迪,邹宇,苟旭春,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。