本申请涉及数据处理,特别是涉及一种密码算法数据流图生成方法及装置。
背景技术:
1、在密码专用处理器中,通常采用二进制配置文件进行控制,但二进制文件生成繁琐,且对于开发人员需要了解具体的硬件结构。因此,为便于密码专用处理器的使用,如今使用通用高级语言编写密码算法代码,就不得不使密码算法代码转化为可被密码专用处理器使用的二进制文件。在转换过程中,密码算法源代码首先转换到中间格式是其中重要的一个环节,例如,中间格式可以是数据流图,由于密码算法运算结构具有特殊性,因此,中间格式的生成易产生冗余,从而造成密码专用器运行密码算法时性能不高。
技术实现思路
1、针对于上述问题,本申请提供一种密码算法数据流图生成方法及装置,提升了密码算法的执行性能。
2、为了实现上述目的,本申请提供了如下技术方案:
3、一种密码算法数据流图生成方法,包括:
4、对密码算法的源程序进行词法分析,得到与所述源程序对应的记号流;
5、对所述记号流进行语法分析,并生成语法树;
6、对所述语法树进行语义分析,获得关键信息,并基于所述关键信息生成运算操作表,所述关键信息包括源操作数、目的操作数和操作符;
7、基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成与所述密码算法对应的目标数据流图。
8、可选地,所述基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成与所述密码算法对应的目标数据流图,包括:
9、基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成初始数据流图;
10、基于所述初始数据流图中的代码特征和结构特征,对所述初始数据流图进行优化,获得与所述密码算法对应的目标数据流图。
11、可选地,所述对密码算法的源程序进行词法分析,得到与所述源程序对应的记号流,包括:
12、按顺序读取密码算法的源程序的字符序列,并基于词法规则对读取到的字符进行匹配,得到匹配结果,所述词法规则表征可以将字符序列识别为目标信息的规则,所述目标信息包括字符、运算符号、变量名、变量类型、常量、操作名中的一种或多种;
13、基于所述匹配结果对所述字符序列进行标记,得到与所述源程序的字符序列对应的记号流。
14、可选地,所述对所述记号流进行语法分析,并生成语法树,包括:
15、基于语法规则对所述记号流中每一节点进行识别,得到与每一节点对应的标识符,所述语法规则为基于编程语言的文法确定的规则;
16、基于与每一节点对应的标识符,对各个节点进行递归处理,得到语法树,所述递归处理表征将所述记号流中的叶子节点按照语法规则逐步规约到根节点的处理模式。
17、可选地,所述对所述语法树进行语义分析,获得关键信息,并基于所述关键信息生成运算操作表,包括:
18、展开所述语法树对应的循环结构,得到语句信息;
19、基于与所述语句信息对应的等号标志,对所述语句信息进行划分,并提取划分后的语句中的关键信息;
20、基于所述关键信息,生成运算操作表。
21、可选地,所述基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成初始数据流图,包括:
22、基于所述运算操作表中的源操作数与目的操作数之间的对应关系,构建所述运算操作表中各操作数的父子节点关系;
23、基于所述父子节点关系,确定候选数据流图;
24、将所述候选数据流图的图数据进行降维处理,获得降维后的数据流图,所述降维后的数据流图包括多个节点,以及各个节点之间的边,所述边表征边两端节点的对应关系;
25、确定所述降维后的数据流图中节点间的注意力权重,并基于所述注意力权重确定当前节点的第一特征向量;
26、基于图嵌入网络对所述降维后的数据流图中的节点进行处理,获得每一节点对应的嵌入向量,记为第二特征向量;
27、对所述第一特征向量和所述第二特征向量进行处理,得到节点对应的目标特征向量;
28、基于各个节点对应的目标特征向量,生成初始数据流图。
29、可选地,所述基于所述初始数据流图中的代码特征和结构特征,对所述初始数据流图进行优化,获得与所述密码算法对应的目标数据流图,包括:
30、对所述源代码进行分析,获得主代码和函数体;
31、在所述初始数据流图中确定与所述函数体对应的函数节点,并将所述函数体对应的运算补入到所述函数节点;
32、将所述初始数据流图中的冗余节点进行删除,得到删除后的节点;
33、基于补入后的函数节点和删除后的节点更新所述初始数据流图,并对更新后的数据流图进行数据流图分层处理,得到目标数据流图。
34、一种密码算法数据流图生成装置,包括:
35、词法分析单元,用于对密码算法的源程序进行词法分析,得到与所述源程序对应的记号流;
36、语法分析单元,用于对所述记号流进行语法分析,并生成语法树;
37、语义分析单元,用于对所述语法树进行语义分析,获得关键信息,并基于所述关键信息生成运算操作表,所述关键信息包括源操作数、目的操作数和操作符;
38、生成单元,用于基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成与所述密码算法对应的目标数据流图。
39、一种存储介质,所述存储介质存储有可执行指令,所述指令被处理器执行时实现如上述中任意一项所述的密码算法数据流图生成方法。
40、一种电子设备,包括:
41、存储器,用于存储程序;
42、处理器,用于执行所述程序,所述程序具体用于实现如上述中任意一项所述的密码算法数据流图生成方法。
43、相较于现有技术,本申请提供了一种密码算法数据流图生成方法及装置,包括:对密码算法的源程序进行词法分析,得到与所述源程序对应的记号流;对所述记号流进行语法分析,并生成语法树;对所述语法树进行语义分析,获得关键信息,并基于所述关键信息生成运算操作表,所述关键信息包括源操作数、目的操作数和操作符;基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成与所述密码算法对应的目标数据流图。本申请能够从不同的分析维度确定数据流图,使得数据流图更加符合密码专用处理器的结构,从而充分利用密码专用处理器的硬件资源,提升密码算法的执行性能。
1.一种密码算法数据流图生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成与所述密码算法对应的目标数据流图,包括:
3.根据权利要求1所述的方法,其特征在于,所述对密码算法的源程序进行词法分析,得到与所述源程序对应的记号流,包括:
4.根据权利要求1所述的方法,其特征在于,所述对所述记号流进行语法分析,并生成语法树,包括:
5.根据权利要求1所述的方法,其特征在于,所述对所述语法树进行语义分析,获得关键信息,并基于所述关键信息生成运算操作表,包括:
6.根据权利要求2所述的方法,其特征在于,所述基于所述运算操作表中的源操作数与目的操作数之间的对应关系,生成初始数据流图,包括:
7.根据权利要求2所述的方法,其特征在于,所述基于所述初始数据流图中的代码特征和结构特征,对所述初始数据流图进行优化,获得与所述密码算法对应的目标数据流图,包括:
8.一种密码算法数据流图生成装置,其特征在于,包括:
9.一种存储介质,其特征在于,所述存储介质存储有可执行指令,所述指令被处理器执行时实现如权利要求1-8中任意一项所述的密码算法数据流图生成方法。
10.一种电子设备,其特征在于,包括: