一种源码动态算子加密方法与流程

文档序号:38020592发布日期:2024-05-17 12:49阅读:10来源:国知局
一种源码动态算子加密方法与流程

本发明涉及动态加密,更具体的说是涉及一种源码动态算子加密方法。


背景技术:

1、随着视觉图像处理和智能算法的快速发展,很多领域中通过这些方法能够快速准确的进行任务处理和动态识别,其中由于应用场景中会出现随时间或空间变化产生的动态结果,对此会使用到动态算子进行动态识别处理,并且在一些特殊领域中为保护图像处理和算法输出的内容,会对产生的结果进行加密,以保护处理后得到的结果是不易被获取的。

2、现有公告号为cn109636758b的发明专利公开了一种基于时空动态算子的水面漂浮物检测方法。利用水体波动不同于漂浮物漂浮呈现出的规律性、周期性,分别提取水体和漂浮物在时间上的频域变化信号和在空间上的局部二值特征,训练识别漂浮物和水体的随机森林分类器,而后基于随机森林分类器检测水面上的漂浮物。

3、上述这种使用动态算子进行检测的方法,虽然能够获得动态的结果,但由于进行动态检测的执行会依托于源代码或算法进行执行,在为了对检测方式或结果进行加密保护,也是对于输出端进行加密,为提高对整体的加密保护时,对源码动态算子进行加密便成为了难题,对此本发明提供一种用于对源码动态算子进行加密的方法,以使能够从底层形成加密防护。


技术实现思路

1、针对现有技术存在的不足,本发明的目的在于提供一种源码动态算子加密方法,具有提取源码中的动态特征并形成动态加密的效果。

2、为实现上述目的,本发明提供了如下技术方案:

3、一种源码动态算子加密方法,包括以下步骤:

4、s1:配置虚拟环境,将源码输入虚拟环境中进行模拟预跑;

5、s2:基于预跑的结果回溯源码,并对源码进行切分;

6、s3:提取切分后源码中的动态算子,并构建抽象语法树;

7、s4:基于抽象语法树的划分进行动态关联,并形成动态标记;

8、s5:设置加密模型,将抽象语法树输入加密模型中,识别动态算子和动态标记,对动态算子加密形成动态密钥;

9、s6:基于动态密钥设置解密头部,沿抽象语法树溯源动态算子位置,并分别嵌入解密头部;

10、s7:拆解抽象语法树并重组形成加密源码。

11、作为本发明的进一步改进,所述步骤s1还包括:

12、s11:配置的虚拟环境包括多个输入协议端口,输入协议端口处配置有应对不同开发语言的引导头部;

13、s12:配置切换菜单,利用切换菜单用于调取不同的协议端口,并形成植入弹窗,植入弹窗中链接对应协议端口的引导头部;

14、s13:将预跑的源码输入至植入弹窗中并链接引导头部,通过切换菜单切换不同开发语言的协议端口。

15、作为本发明的进一步改进,所述步骤s2包括:

16、s21:识别源码在预跑时的输出结果,并根据输出结果调取对应代码段的内容;

17、s22:识别代码段中的运算符位置,并关联运算符对应的上下行代码段的内容;

18、s23:遍历运算符所处的代码段是否完整,并在遍历到完整代码段时生成切片标记,根据切片标记对源码进行切片形成多个代码段。

19、作为本发明的进一步改进,所述步骤s3包括:

20、s31:利用词法分析器识别动态算子部分并将代码段转换成标记序列,提取代码段中变量、运算符和函数调用部分,并在标记序列中形成对应的变量标记、运算符标记和函数标记;

21、s32:利用语法分析器根据得到的标记序列进行语法分析,并提取变量标记、运算符标记和函数标记;

22、s33:根据语法分析中的语法规则和语言特性,提取变量标记、运算符标记和函数标记部分作为动态算子;

23、s34:根据代码段在整体源码中的位置和动态算子在代码段中的关系构建抽象语法树,以动态算子作为抽象语法树中的节点;

24、s35:调取在虚拟环境中预跑的执行逻辑,更新抽象语法树中节点之间的父子关系;

25、s36:对于标记的动态算子进一步提取函数的调用关系,并更新抽象语法树中节点之间的父子关系。

26、作为本发明的进一步改进,所述步骤s3还包括:

27、s37:在基础构建的抽象语法树中添加对应的时间节点,时间节点表征源码在执行过程中的时间点,并用于反映代码段中不同动态算子部分的执行顺序和时间关系;

28、根据时间节点之间的关系和源码执行逻辑,计算出时间动态算子,时间动态算子包括节点之间的时间间隔和执行频率。

29、作为本发明的进一步改进,所述步骤s3还包括:

30、s38:根据时间节点之间的关系和源码执行逻辑,通过计算后的时间动态算子更新节点之间的父子关系。

31、作为本发明的进一步改进,所述步骤s5包括:

32、s51:将抽象语法树输入加密模型中时,根据复杂度算法计算源码整体的复杂性;

33、s52:计算动态算子的影响程度,并获得动态算子影响程度的得分;

34、s53:引入时间动态算子并计算时间动态算子对带有动态标记的节点链路的影响程度;

35、s54:根据计算的动态算子对源码的影响程度值和时间动态算子对节点链路影响程度值的和匹配加密等级。

36、作为本发明的进一步改进,在所述匹配加密等级时设置有程度阈值,程度阈值表征区分加密等级的数值,程度阈值包括第一阈值和第二阈值,加密等级包括时间加密、插叙加密和动态加密;

37、若动态算子对源码的影响程度值和时间动态算子对节点链路影响程度值的和小于第一阈值时,以时间加密的方式形成动态密钥;

38、若动态算子对源码的影响程度值和时间动态算子对节点链路影响程度值的和大于或等于第一阈值,并小于第二阈值时,以插叙加密的方式形成动态密钥;

39、若动态算子对源码的影响程度值和时间动态算子对节点链路影响程度值的和大于或等于第二阈值时,以动态加密的方式形成动态密钥。

40、作为本发明的进一步改进,所述步骤s7包括:

41、s71:获取抽象语法树中各链路的影响分值,各链路的影响分值以链路中动态算子对源码影响程度的值累积得到;

42、s72:根据链路的影响分值对各链路的代码段重新排序,重新排序时以影响分值从大至小的顺序排列;

43、s73:提取链路中影响程度最高的动态算子的密钥头部,将其作为链路对应代码段的密钥头部;

44、s74:识别排序后的链路在源码执行过程中的步序,并形成步序标记,将各链路的步序标记转换成ascii码,并嵌设于密钥头部和代码段中间,以形成加密源码。

45、作为本发明的进一步改进,还包括:

46、s8:配置验证环境,输入加密源码进行解密预跑,若预跑成功输出解密密文,若预跑失败,识别未读取的源码部位,并形成修正标记,根据修正标记恢复源码,并重复步骤s5至步骤s7重新获得加密源码,并对修正后的加密源码进行解密预跑。

47、本发明的有益效果:

48、1.通过配置虚拟环境,使得在对源码的动态算子进行加密前,判断源码是否可执行以排除代码不可执行的隐患,并且虚拟环境中可以模拟不同开发语言环境,实现对源码在不同开发语言环境下的预跑,不易出现在源码执行时出现不兼容的情况,基于在虚拟环境下的预跑后对源码进行溯源,以准确的对源码进行切分成多个代码段,由于源码可能比较庞大,通过切分形成多个代码段以减小对代码进行动态算子提取的难度,达到对代码段中动态算子提取后构建形成抽象语法树,基于抽象语法树能够获取源码在执行时的逻辑顺序,以及源码中的动态算子分布以及动态算子之间的关联关系,通过抽象语法树能够更好的分析源码。

49、2.通过配置加密模型,对抽象语法树中的动态算子对整体源码的影响程度来区分动态算子的优先级,并根据动态算子对源码的影响程度匹配对应的加密等级,根据对应的加密等级对动态算子形成密钥头部,并形成对动态算子加密形成动态密钥,在形成动态密钥后对抽象语法树进行拆解,以形成对代码段乱序排列的效果,并对拆解后的代码段进行重组加密,从而形成加密源码,以提高源码的加密安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1