System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据生成,尤其涉及一种图神经网络的训练样本的生成方法、装置及介质。
技术介绍
1、硬件木马是指集成电路中植入的特殊模块或者是恶意电路,这种恶意电路在硬件正常运行的时候通常不会触发,一旦触发,其往往会实现一些特定的恶意功能,比如:破坏当前硬件、泄露关键信息。但是现有的集成电路的规模也给硬件木马的识别带来了复杂度的增加,因此具有高精确度,高效率的硬件木马检测方案成为重要的技术问题。
2、图神经网络(graph neural network,gnn)是一种对图结构进行学习的神经网络模型,其利用结点的信息传递来捕获图的依赖关系,相比于卷积神经网络(convolutionalneural network,cnn),循环神经网络(recurrent neural network,rnn)等其它的神经网络,图神经网络在集成电路领域用于检测硬件木马有着天然的适配性。无论是寄存器传输级代码,门级电路,晶体管级网表都可以转化为图结构,适合采用图神经网络进行电路特征的提取和学习,进而实现硬件木马的检测。
3、但神经网络识别的精准性很大程度上取决于数据集的质量,如何有效地实现从电路到图的转化过程,现有的针对硬件木马数据集搭建主要采用静态生成的方法,仅通过分析verilog代码来生成语法抽象树,利用抽象树的结点和边转化为图,此种生成方式过于简单,缺少大量有效数据如基本的控制逻辑,翻转率的丢失,从而影响后续图神经网络进行硬件木马检测的准确率。
4、有鉴于此,亟需提供一种含更为全面的特征属性的硬件木马训练数据
技术实现思路
1、为克服相关技术中存在的问题,本公开提供一种图神经网络的训练样本的生成方法、装置、设备及介质,解决上述现有的技术问题。
2、本说明书一个或多个实施例提供了一种图神经网络的训练样本的生成方法,包括以下步骤:
3、基于构建的verilog代码,提取每条verilog代码,确定每一个信号并构建成各语法抽象树;其中,语法抽象树的根结点为信号本身,叶子结点为根结点有关系的信号或者数值,控制方式作为中间结点;
4、通过深度优先遍历各语法抽象树确定各结点间指向和控制方式并生成包含所有节点的第一数据流图;
5、对verilog代码进行编译仿真获得vcd波形文件,根据vcd波形文件确定各信号的各时间点的值,并基于各时间点对应的语法抽象树,确定各结点间的控制次数作为控制程度,并作为边权重值更新第一数据流图获得第二数据流图;
6、在第二数据流图中,基于verilog代码对含有木马的信号结点进行标注,获得训练样本。
7、进一步的,所述通过深度优先遍历各语法抽象树确定各结点间的控制方式具体包括:
8、基于任一抽象语法树,从根结点i出发开始进行深度优先遍历,当遍历到中间结点,确定其对应的控制方式到数组a,直到遍历到叶子结点j,将i和j作为控制方式矩阵fi,j的坐标(i,j),并将控制方式对应的a进行赋值到特征矩阵fi,j上。
9、进一步的,所述对verilog代码进行编译仿真获得vcd波形文件,根据vcd波形文件确定各信号的各时间点的值,并基于各时间点对应的语法抽象树,确定各结点间的控制次数作为控制程度具体包括步骤:
10、将vcd波形文件中记录的所有信号在所有时间点的值信息存储为矩阵dv,t,v代表结点索引,t代表时刻;
11、基于各信号,获取任一时刻t对应的抽象语法树,从根结点出发开始进行深度优先遍历,当遍历到第一中间结点对应的控制方式为if,则优先遍历cond路径,如下一结点为叶子结点,并则从矩阵dv,t中获取对应的值返回,如下一结点为第二中间结点,则第一中间结点需根据第二中间结点从矩阵dv,t中获取对应的值进行计算获得新的值,第一中间结点根据返回值或获得新的值确定遍历true路径还是false路径,遍历对应路径直至叶子结点,对遍历到的叶子结点对应的控制次数加一;若控制方式中间结点对应的控制方式不存在if,则分别遍历所有路径直至叶子结点,对遍历到的叶子结点对应的控制次数加一;
12、重复上述步骤直至完成所有信号周期内各时刻遍历抽象语法树确定各结点间的控制程度。
13、进一步的,基于构建的多个verilog代码,获取verilog代码中的木马及其触发信号,以及受木马影响的输出信号存储至对应信号随机池;
14、从两个信号随机池中随机获取木马触发信号或输出信号替换原verilog代码中木马触发信号或输出信号组成新的verilog代码,以实现获得更多的训练样本构成训练集。
15、进一步的,还包括步骤,对每一个信号配置唯一的索引用于检索,训练集中各训练样本中包含的各信号索引连续设置。
16、本说明书一个或多个实施例提供了一种图神经网络的训练样本的生成装置,包括:
17、语法抽象树构建模块:用于基于构建的verilog代码,提取每条verilog代码,确定每一个信号并构建成各语法抽象树;其中,语法抽象树的根结点为信号本身,叶子结点为根结点有关系的信号或者数值,控制方式作为中间结点;
18、第一数据流图生成模块,用于通过深度优先遍历各语法抽象树确定各结点间指向和控制方式并生成包含所有节点的第一数据流图;
19、第二数据流图生成模块,用于对verilog代码进行编译仿真获得vcd波形文件,根据vcd波形文件确定各信号的时间点的值,并基于各语法抽象树,确定各结点间的控制次数作为控制程度,并作为边权重值更新第一数据流图获得第二数据流图;
20、训练样本生成模块:用于在第二数据流图中,基于verilog代码对含有木马的信号结点进行标注,获得训练样本。
21、进一步的,所述第一数据流图生成模块用于通过深度优先遍历各语法抽象树确定各结点间的控制方式具体包括:
22、基于任一抽象语法树,从根结点i出发开始进行深度优先遍历,当遍历到中间结点,确定其对应的控制方式到数组a,直到遍历到叶子结点j,将i和j作为控制方式矩阵fi,j的坐标(i,j),并将控制方式a值进行赋值到特征矩阵fi,j上。
23、进一步的,所述第二数据流图生成模块具体用于:
24、将vcd波形文件中记录的所有信号在所有时间点的值信息存储为矩阵dv,t,v代表结点索引,t代表时刻;
25、基于各信号,获取任一时刻t对应的抽象语法树,从根结点出发开始进行深度优先遍历,当遍历到第一中间结点对应的控制方式为if,则优先遍历cond路径,如下一结点为叶子结点,并则从矩阵dv,t中获取对应的值返回,如下一结点为第二中间结点,则第二中间结点需根据下一个节点反馈的值并根据中间结点对应的控制方式进行计算获得新的值反馈至第一中间结点,第一中间结点根据返回值确定遍历true路径还是false路径,遍历对应路径直至叶子结点,对遍历到的叶子结点对应的控制次本文档来自技高网...
【技术保护点】
1.图神经网络的训练样本的生成方法,其特征在于,包括以下步骤:
2.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,所述通过深度优先遍历各语法抽象树确定各结点间的控制方式具体包括:
3.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,所述对verilog代码进行编译仿真获得VCD波形文件,根据VCD波形文件确定各信号的各时间点的值,并基于各时间点对应的语法抽象树,确定各结点间的控制次数作为控制程度具体包括步骤:
4.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,还包括步骤:
5.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,还包括步骤:
6.图神经网络的训练样本的生成装置,其特征在于,包括:
7.如权利要求6所述的图神经网络的训练样本的生成装置,其特征在于,所述第一数据流图生成模块用于通过深度优先遍历各语法抽象树确定各结点间的控制方式具体包括:
8.如权利要求6所述的图神经网络的训练样本的生成装置,其特征在于,所述第二数据流图生成模块具体
9.如权利要求6所述的图神经网络的训练样本的生成装置,其特征在于,还包括训练集构建模块,用于基于构建的多个verilog代码,获取verilog代码中的木马及其触发信号,以及受木马影响的输出信号存储至对应信号随机池;
10.计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述图神经网络的训练样本的生成方法的步骤。
...【技术特征摘要】
1.图神经网络的训练样本的生成方法,其特征在于,包括以下步骤:
2.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,所述通过深度优先遍历各语法抽象树确定各结点间的控制方式具体包括:
3.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,所述对verilog代码进行编译仿真获得vcd波形文件,根据vcd波形文件确定各信号的各时间点的值,并基于各时间点对应的语法抽象树,确定各结点间的控制次数作为控制程度具体包括步骤:
4.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,还包括步骤:
5.如权利要求1所述的图神经网络的训练样本的生成方法,其特征在于,还包括步骤:
6.图神经网络的训练样本的生成装置,其特征在于...
【专利技术属性】
技术研发人员:张涵,李莹,周崟灏,
申请(专利权)人:中国科学院微电子研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。