CN113486347B - 一种基于语义理解的深度学习硬件木马检测方法 - Google Patents
一种基于语义理解的深度学习硬件木马检测方法 Download PDFInfo
- Publication number
- CN113486347B CN113486347B CN202110739931.3A CN202110739931A CN113486347B CN 113486347 B CN113486347 B CN 113486347B CN 202110739931 A CN202110739931 A CN 202110739931A CN 113486347 B CN113486347 B CN 113486347B
- Authority
- CN
- China
- Prior art keywords
- node
- path
- component
- word
- steps
- 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.)
- Active
Links
Images
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- 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
- G06N3/04—Architecture, e.g. interconnection topology
-
- 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
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于语义理解的深度学习硬件木马检测方法,包括如下步骤:步骤S1:首先对芯片网表文件进行预处理,提取任意一个输入端口线网Xiport和输出端口线网Xoport来组成所有可能的路径对[Xiport,Xoport];接着在这些路径对上寻找所有存在的简单路径Tspath,并生成对应句子fspath,再打上硬件木马标签构成带标签的句子数据集;步骤S2:把步骤S1中生成到的句子数据集进行组件类型名的去重清洗,并用word2vec完成词库训练,得到预训练好的词向量WVpre;步骤S3:来自步骤S1的句子数据集和来自步骤S2的词向量WVpre共同作为材料放入TextCNN(文本卷积神经网络)的输入层中,经过静动态相结合的词向量矩阵训练得到硬件木马的检测结果。
Description
技术领域
本发明涉及木马检测领域,特别是一种基于语义理解的深度学习硬件木马检测方法。
背景技术
随着以第四次工业革命为标准的智能化时代到来,集成电路(IC)的使用和投资都在年年上涨。在美国的半导体协会(SIA)的报告中指出,接下来的未来十年中,全世界关于芯片的投资将超过3万亿美元。而如今,芯片的产业链已经存在许多第三方设计和制造厂家参与。这样的现象使得在外包厂商中一旦存在恶意的攻击者往芯片里植入硬件木马,将会给芯片的使用带来不小的隐患和破坏。
芯片受硬件木马攻击的渠道主要来源于设计阶段和制造阶段,其中设计阶段的攻击面比之于制造阶段多,包括电子设计自动化工具(EDA)、知识产权(IP)核构建、门级网表这些内容上植入硬件木马。只要设计厂商内部存在着恶意的员工或者设计师,是很容易从这些攻击渠道下手发起硬件木马攻击。
目前在硬件木马的检测工作上主要存在以下四种技术:1.侧信道检测,通过测量电路中诸如电流、电压、功率、路径延迟和温度等侧信道与“金片”对比后产生的冗余信息来检测硬件木马。2.逆向工程,对成品芯片进行逐层扫描得到图像信息并破坏芯片,同样施行“金片”对比检测来发现硬件木马。3.逻辑测试,在集成电路仿真阶段输入测试向量来试图激活攻击条件以考察硬件木马的存在。4.结合了机器学习(ML)的静态检测,对芯片的设计文件(即网表)进行人工提取特征,把计算好的特征值运用机器学习算法训练分类器来识别硬件木马。
然而以上前三种技术仅能在检测性能上会受到外部因素的制约,如需要高精度的专业仪器,或者检测过程会对待测芯片造成不可逆的损害,又或者是要计算所有可能的输入面临着庞大的开销。更重要的是,它们的往往仅适用于小规模的电路。而静态检测在现有的技术中几乎都依赖人工的特征提取,提取的过程不仅困难且往往需求多个特征的判断,又受制于稀少的硬件木马信息。这些因素都会导致训练得到的分类器在性能上难以稳定。
考虑到上述针对这些硬件木马检测技术的不足,亟需涉及一种基于语义理解的TextCNN检测硬件木马方法。
发明内容
有鉴于此,本发明的目的是提供一种基于语义理解的深度学习硬件木马检测方法,该检测方法不仅可以有效地检测出硬件木马,还能保证分类器的性能稳定。
本发明采用以下方案实现:一种基于语义理解的深度学习硬件木马检测方法,包括如下步骤:
步骤S1:首先对芯片网表文件进行预处理,提取任意一个输入端口线网Xiport和输出端口线网Xoport来组成所有可能的路径对[Xiport,Xoport];接着在这些路径对上寻找所有存在的简单路径Tspath,并生成对应句子fspath,再打上硬件木马标签构成带标签的句子数据集;
步骤S2:把步骤S1中生成到的句子数据集进行组件类型名的去重清洗,并用word2vec完成词库训练,得到预训练好的词向量WVpre;
步骤S3:来自步骤S1的句子数据集和来自步骤S2的词向量WVpre共同作为材料放入TextCNN(文本卷积神经网络)的输入层中,经过静动态相结合的词向量矩阵训练得到硬件木马的检测结果。
进一步地,所述步骤S1具体包括以下步骤:
步骤S11:从网表中获取组件N(N1,N2,N3,…,Nl)和线网S(S1,S2,S3,…,Sk)的信息,并定义任意一个组件Ni中的入线网信息Xii和出线网信息Xio;
步骤S12:以每个组件N(N1,N2,N3,…,Nl)为节点V和以每个线网S(S1,S2,S3,…,Sk)为边E,并根据每个组件中的输入输出线网关系Ni[Xii,Xio],运用现有的深度优先搜索算法构建整个网表电路的拓扑结构G=(V,E);根据电路的信号传递法则追踪各组件之间的连接关系,信号传递法则公式如下:
其中,Ni中的某个出线网标识符与Nj中的某个入线网标识符一致的话,则表明电路信号能够从组件Ni传递到组件Nj;
步骤S13:对所有的组件N(N1,N2,N3,…,Nl)中的入线网Xi和出线网Xo进行起始点集合Spath和终止点集合Fpath的分类,以此来确定所有的路径对组[Xiport,Xoport];集合分类遵循以下公式:
其中,Xii和Xio分别代表组件集合中任意一个组件Ni的入线网和出线网;
步骤S14:在已经建立好的电路拓扑基础上,运用简单路径算法对所有的路径对组合[Xiport,Xoport]搜索出所有可能的简单路径Tspath;路径生成的方法从组件角度的判断公式如下:
其中,v表示函数fs的迭代次数;那么上述公式的定义,组件Ni为起点经过v次的信号传递函数的迭代作用下形成了通向Nj为终点的路径,并约束起点和终点不是同一个逻辑门即不是同一个节点);
接着对于上述生成好的路径进行进一步的简单路径判断,判定公式如下:
其中,fsp表示为简单路径函数;根据上述公式,任意个经过a次信号传递后的节点都不与除a次以外的任意个经过b次信号传递后的节点相同,则这样传递后形成的路径为简单路径Tspath;
步骤S15:对步骤S14中搜索并判断好的简单路径Tspath里所经过的电路组件都直接以组件类型名形式表示出来,形成了一个个简单路径句子fspath进而构成一个完整的句子数据集;
步骤S16:对所有的句子数据集根据是否有经过硬件木马组件来标注标签,并规定有木马的句子标签为正样本,无木马的句子标签为负样本,这样得到了带标签的句子数据集。
进一步地,步骤S14中所述运用简单路径算法搜索出所有可能的简单路径Tspath具体包括以下步骤:
步骤S141:从步骤S12构建好的拓扑结构G=(V,E)可直接得到该拓扑的邻接矩阵Mnlist,再根据邻接矩阵Mnlist中每一行开头的元素和该元素存在连接关系的其他元素单独拿出来并串在一起构成链表形式;邻接矩阵Mnlist中的所有行按照这样构成一个个链表的方式就整合成了邻接表Lnlist;
步骤S142:确定好组合路径对[Xiport,Xoport]上的起点组件节点Nstart和终点组件节点Nend,并在邻接表Lnlist上设置一个指向访问节点u的下一个节点w的指针p为搜索简单路径做准备;同时,在初始化一个一维数组Are来记录节点被访问的情况;将指针p先设置于起点组件节点Nstart的下一个节点w,数组Are记录节点Nstart的受访状态;
步骤S143:节点w添加入简单路径数组Aspath中并在数组Are上记录节点w的受访状态;再判断节点w是否为终点组件节点Nend;如果是,则依次输出简单路径数组Aspath上所有的组件节点信息;若不是,则结束判断;
步骤S144:指针p指向邻接表Lnlist中节点w所在行的下一个节点w′,并判断w′是否为空节点;
若节点w′不是空节点,则下一个节点w′被替换为当前节点w,然后在数组Are上检查以下此时节点w是否被受访过;若未被访问,则进一步递归到此时节点w在邻接表Lnlist中的所在行,且继续重复从步骤S143开始的过程;若被访问过,则不再往下递归,仅让指针p指向节点w在邻接表Lnlist中不递归的所在行的下一个节点w′,且一样重复从步骤S143开始的过程;
若节点w′为空节点,则在数组Are上取消节点w的受访状态使之可被继续访问,并根据该层的递归中在邻接表Lnlist所在行的第一个节点o回到上一层递归中在邻接表Lnlist所在行的该节点o的位置;同时让节点w去替换该节点o的位置;
步骤S145:重复步骤S143和步骤S144的过程,直到起点组件节点Nstart在邻接表Lnlist所在行的所有节点全部被搜索完毕;这样就能够得到一个路径对[Xiport,Xoport]上所有存在的简单路径了。
进一步地,所述步骤S2具体包括以下步骤:
步骤S21:从步骤S1得到的句子数据集根据组件类型名进行词语的去重,留下的词语作为词库训练的材料;
步骤S22:依靠word2vec中的skip-gram词之间的相关性计算模式,对词库中包含的每一个词完成词向量WVpre的预训练;这种词相关性计算的原理遵循如下公式:
其中,在上述第一个公式中,wo和wc分别表示周围词和中心词;uo、ui和vc各自代表周围词的、词库中任意一个词的以及中心词的词向量;在上述第二个公式中还多了个参数uj,它表示为中心词wc作为其他词的周围词的时候的词向量;
上述第一个公式是个损失函数,它的原理是中心词求其周围词的概率并进行归一化处理所得的结果;为了得到最优化的词向量表达效果,再对第一个公式求导便成了梯度函数即第二个公式;最后在结合梯度下降算法令第一个公式最小化,从结果导出vc就是训练好的词向量WVpre。
进一步地,所述步骤S3具体包括以下步骤:
步骤S31:在TextCNN的输入层依次放入步骤S1句子数据集,同时把步骤S2中预训练好的词向量WVpre作为静态词向量矩阵WVMS和动态词向量矩阵WVMD的初始化张量;其中,静态词向量矩阵WVMS不参与TextCNN的迭代更新,而动态词向量矩阵WVMD则为相反;
步骤S32:在一维卷积层中,选用大小分别为3、4和5的卷积核对输入层中的张量进行特征计算;在卷积核与卷积核同等大小的卷积层局部范围内,进行两者的矩阵上同一位置的相乘后再相加的结果就是特征计算,并以滑动窗口式的扫描计算形成一串串输出通道;
步骤S33:把步骤S32中的输出通道利用最大池化层挑选出对检测木马句子为最大值的特征,并将这些输出通道的最大值特征接在一起;
步骤S34:最后的全连接层依靠一个线性函数收束所有的这些最大值特征,并在输出层得出句子是否包含木马类型名的结果。
与现有技术相比,本发明具有以下有益效果:
(1)本发明中的单特征判断:基于TextCNN的硬件木马检测模型仅借助了词向量这一个特征,避免了对多特征的不确定性问题。
(2)本发明中的硬件木马的信息放大和平衡学习:在简单路径句子的提取下,将多次获取到同一个硬件木马下的不同结构信息,不重复地放大了木马信息。这使得模型有能力实现平衡数据集学习,在相同的正负样本的训练下,本发明模型维持了高性能稳定的优秀水准。
(3)本发明中的无金片检测:检测过程中的比对对象仅仅是依靠无木马语句(相当于黄金参照物)来判断句子中的硬件木马信息,很好地省去了对于“金片”的硬件开销,使该方法更低成本地运用。
附图说明
图1为本发明实施例的方法流程图。
图2为本发明实施例的生成电路中简单路径句子的示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供一种基于语义理解的深度学习硬件木马检测方法,包括如下步骤:
步骤S1:首先对芯片网表文件进行预处理,提取任意一个输入端口线网Xiport和输出端口线网Xoport来组成所有可能的路径对[Xiport,Xoport];接着在这些路径对上寻找所有存在的简单路径Tspath,并生成对应句子fspath,再打上硬件木马标签构成带标签的句子数据集;
步骤S2:把步骤S1中生成到的句子数据集进行组件类型名的去重清洗,并用word2vec完成词库训练,得到预训练好的词向量WVpre;
步骤S3:来自步骤S1的句子数据集和来自步骤S2的词向量WVpre共同作为材料放入TextCNN(文本卷积神经网络)的输入层中,经过静动态相结合的词向量矩阵训练得到硬件木马的检测结果。
在本实施例中,如图2所示,所述步骤S1具体包括以下步骤:
步骤S11:从网表中获取组件N(N1,N2,N3,…,Nl)和线网S(S1,S2,S3,…,Sk)的信息,并定义任意一个组件Ni中的入线网信息Xii和出线网信息Xio;
步骤S12:以每个组件N(N1,N2,N3,…,Nl)为节点V和以每个线网S(S1,S2,S3,…,Sk)为边E,并根据每个组件中的输入输出线网关系Ni[Xii,Xio]运用深度优先搜索算法构建整个网表电路的拓扑结构G=(V,E);根据电路的信号传递法则追踪各组件之间的连接关系,信号传递法则公式如下:
其中,Ni中的某个出线网标识符与Nj中的某个入线网标识符一致的话,则表明电路信号能够从组件Ni传递到组件Nj;
步骤S13:对所有的组件N(N1,N2,N3,…,Nl)中的入线网Xi和出线网Xo进行起始点集合Spath和终止点集合Fpath的分类,以此来确定所有的路径对组[Xiport,Xoport];集合分类遵循以下公式:
其中,Xii和Xio分别代表组件集合中任意一个组件Ni的入线网和出线网;
步骤S14:在已经建立好的电路拓扑基础上,运用简单路径算法对所有的路径对组合[Xiport,Xoport]搜索出所有可能的简单路径Tspath;路径生成的方法从组件角度的判断公式如下:
其中,v表示函数fs的迭代次数;那么上述公式的定义,组件Ni为起点经过v次的信号传递函数的迭代作用下形成了通向Nj为终点的路径,并约束起点和终点不是同一个逻辑门即不是同一个节点);
接着对于上述生成好的路径进行进一步的简单路径判断,判定公式如下:
其中,fsp表示为简单路径函数;根据上述公式,任意个经过a次信号传递后的节点都不与除a次以外的任意个经过b次信号传递后的节点相同,则这样传递后形成的路径为简单路径Tspath;
步骤S15:对步骤S14中搜索并判断好的简单路径Tspath里所经过的电路组件都直接以组件类型名形式表示出来,形成了一个个简单路径句子fspath进而构成一个完整的句子数据集;
步骤S16:对所有的句子数据集根据是否有经过硬件木马组件来标注标签,并规定有木马的句子标签为正样本,无木马的句子标签为负样本,这样得到了带标签的句子数据集。
在本实施例中,步骤S14中所述运用简单路径算法搜索出所有可能的简单路径Tspath具体包括以下步骤:
步骤S141:从步骤S12构建好的拓扑结构G=(V,E)可直接得到该拓扑的邻接矩阵Mnlist,再根据邻接矩阵Mnlist中每一行开头的元素和该元素存在连接关系的其他元素单独拿出来并串在一起构成链表形式;邻接矩阵Mnlist中的所有行按照这样构成一个个链表的方式就整合成了邻接表Lnlist;
步骤S142:确定好组合路径对[Xiport,Xoport]上的起点组件节点Nstart和终点组件节点Nend,并在邻接表Lnlist上设置一个指向访问节点u的下一个节点w的指针p为搜索简单路径做准备。同时,在初始化一个一维数组Are来记录节点被访问的情况。将指针p先设置于起点组件节点Nstart的下一个节点w,数组Are记录节点Nstart的受访状态;
步骤S143:节点w添加入简单路径数组Aspath中并在数组Are上记录节点w的受访状态。再判断节点w是否为终点组件节点Nend。如果是,则依次输出简单路径数组Aspath上所有的组件节点信息;若不是,则结束判断;
步骤S144:指针p指向邻接表Lnlist中节点w所在行的下一个节点w′,并判断w′是否为空节点。
若节点w′不是空节点,则下一个节点w′被替换为当前节点w,然后在数组Are上检查以下此时节点w是否被受访过。若未被访问,则进一步递归到此时节点w在邻接表Lnlist中的所在行,且继续重复从步骤S143开始的过程。若被访问过,则不再往下递归,仅让指针p指向节点w在邻接表Lnlist中不递归的所在行的下一个节点w′,且一样重复从步骤S143开始的过程。
若节点w′为空节点,则在数组Are上取消节点w的受访状态使之可被继续访问,并根据该层的递归中在邻接表Lnlist所在行的第一个节点o回到上一层递归中在邻接表Lnlist所在行的该节点o的位置。同时让节点w去替换该节点o的位置;
步骤S145:重复步骤S143和步骤S144的过程,直到起点组件节点Nstart在邻接表Lnlist所在行的所有节点全部被搜索完毕。这样就能够得到一个路径对[Xiport,Xoport]上所有存在的简单路径了。
在本实施例中,所述步骤S2具体包括以下步骤:
步骤S21:从步骤S1得到的句子数据集根据组件类型名进行词语的去重,留下的词语作为词库训练的材料;
步骤S22:依靠word2vec中的skip-gram词之间的相关性计算模式,对词库中包含的每一个词完成词向量WVpre的预训练;这种词相关性计算的原理遵循如下公式:
其中,在上述第一个公式中,wo和wc分别表示周围词和中心词;uo、ui和vc各自代表周围词的、词库中任意一个词的以及中心词的词向量;在上述第二个公式中还多了个参数uj,它表示为中心词wc作为其他词的周围词的时候的词向量;
上述第一个公式是个损失函数,它的原理是中心词求其周围词的概率并进行归一化处理所得的结果;为了得到最优化的词向量表达效果,再对第一个公式求导便成了梯度函数即第二个公式;最后在结合梯度下降算法令第一个公式最小化,从结果导出vc就是训练好的词向量WVpre。
在本实施例中,所述步骤S3具体包括以下步骤:
步骤S31:在TextCNN的输入层依次放入步骤S1句子数据集,同时把步骤S2中预训练好的词向量WVpre作为静态词向量矩阵WVMS和动态词向量矩阵WVMD的初始化张量;其中,静态词向量矩阵WVMS不参与TextCNN的迭代更新,而动态词向量矩阵WVMD则为相反;
步骤S32:在一维卷积层中,选用大小分别为3、4和5的卷积核对输入层中的张量进行特征计算;在卷积核与卷积核同等大小的卷积层局部范围内,进行两者的矩阵上同一位置的相乘后再相加的结果就是特征计算,并以滑动窗口式的扫描计算形成一串串输出通道;
步骤S33:把步骤S32中的输出通道利用最大池化层挑选出对检测木马句子为最大值的特征,并将这些输出通道的最大值特征接在一起;
步骤S34:最后的全连接层依靠一个线性函数收束所有的这些最大值特征,并在输出层得出句子是否包含木马类型名的结果。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (3)
1.一种基于语义理解的深度学习硬件木马检测方法,其特征在于:包括如下步骤:
步骤S1:首先对芯片网表文件进行预处理,提取任意一个输入端口线网Xiport和输出端口线网Xoport来组成所有可能的路径对[Xiport,Xoport];接着在这些路径对上寻找所有存在的简单路径Tspath,并生成对应句子fspath,再打上硬件木马标签构成带标签的句子数据集;
步骤S2:把步骤S1中生成到的句子数据集进行组件类型名的去重清洗,并用word2vec完成词库训练,得到预训练好的词向量WVpre;
步骤S3:来自步骤S1的句子数据集和来自步骤S2的词向量WVpre共同作为材料放入TextCNN的输入层中,经过静动态相结合的词向量矩阵训练得到硬件木马的检测结果;
所述步骤S1具体包括以下步骤:
步骤S11:从网表中获取组件N(N1,N2,N3,…,Nl)和线网S(S1,S2,S3,…,Sk)的信息,并定义任意一个组件Ni中的入线网信息Xii和出线网信息Xio;
步骤S12:以每个组件N(N1,N2,N3,…,Nl)为节点V和以每个线网S(S1,S2,S3,…,Sk)为边E,并根据每个组件中的输入输出线网关系Ni[Xii,Xio],运用深度优先搜索算法构建整个网表电路的拓扑结构G=(V,E);根据电路的信号传递法则追踪各组件之间的连接关系,信号传递法则公式如下:
其中,Ni中的某个出线网标识符与Nj中的某个入线网标识符一致的话,则表明电路信号能够从组件Ni传递到组件Nj;
步骤S13:对所有的组件N(N1,N2,N3,…,Nl)中的入线网Xi和出线网Xo进行起始点集合Spath和终止点集合Fpath的分类,以此来确定所有的路径对组[Xiport,Xoport];集合分类遵循以下公式:
其中,Xii和Xio分别代表组件集合中任意一个组件Ni的入线网和出线网;
步骤S14:在已经建立好的电路拓扑基础上,运用简单路径算法对所有的路径对组合[Xiport,Xoport]搜索出所有可能的简单路径Tspath;路径生成的方法从组件角度的判断公式如下:
Path:fs v(Ni)=Nj(Ni≠Nj)
其中,v表示函数fs的迭代次数;那么上述公式的定义,组件Ni为起点经过v次的信号传递函数的迭代作用下形成了通向Nj为终点的路径,并约束起点和终点不是同一个逻辑门即不是同一个节点;
接着对于上述搜索到的路径进行进一步的简单路径判断,判定公式如下:
其中,fsp表示为简单路径函数;根据上述公式,任意个经过a次信号传递后的节点都不与除a次以外的任意个经过b次信号传递后的节点相同,则这样传递后形成的路径为简单路径Tspath;
步骤S15:对步骤S14中搜索并判断好的简单路径Tspath里所经过的电路组件都直接以组件类型名形式表示出来,形成了一个个简单路径句子fspath进而构成一个完整的句子数据集;
步骤S16:对所有的句子数据集根据是否有经过硬件木马组件来标注标签,并规定有木马的句子标签为正样本,无木马的句子标签为负样本,这样得到了带标签的句子数据集;
所述步骤S3具体包括以下步骤:
步骤S31:在TextCNN的输入层依次放入步骤S1句子数据集,同时把步骤S2中预训练好的词向量WVpre作为静态词向量矩阵WVMS和动态词向量矩阵WVMD的初始化张量;其中,静态词向量矩阵WVMS不参与TextCNN的迭代更新,而动态词向量矩阵WVMD则为相反;
步骤S32:在一维卷积层中,选用大小分别为3、4和5的卷积核对输入层中的张量进行特征计算;在卷积核与卷积核同等大小的卷积层局部范围内,进行两者的矩阵上同一位置的相乘后再相加的结果就是特征计算,并以滑动窗口式的扫描计算形成一串串输出通道;
步骤S33:把步骤S32中的输出通道利用最大池化层挑选出对检测木马句子为最大值的特征,并将这些输出通道的最大值特征接在一起;
步骤S34:最后的全连接层依靠一个线性函数收束所有的这些最大值特征,并在输出层得出句子是否包含木马类型名的结果。
2.根据权利要求1所述的一种基于语义理解的深度学习硬件木马检测方法,其特征在于:步骤S14中所述运用简单路径算法搜索出所有可能的简单路径Tspath具体包括以下步骤:
步骤S141:从步骤S12构建好的拓扑结构G=(V,E)可直接得到该拓扑的邻接矩阵Mnlist,再根据邻接矩阵Mnlist中每一行开头的元素和该元素存在连接关系的其他元素单独拿出来并串在一起构成链表形式;邻接矩阵Mnlist中的所有行按照这样构成一个个链表的方式就整合成了邻接表Lnlist;
步骤S142:确定好组合路径对[Xiport,Xoport]上的起点组件节点Nstart和终点组件节点Nend,并在邻接表Lnlist上设置一个指向访问节点u的下一个节点w的指针p为搜索简单路径做准备;同时,在初始化一个一维数组Are来记录节点被访问的情况;将指针p先设置于起点组件节点Nstart的下一个节点w,数组Are记录节点Nstart的受访状态;
步骤S143:节点w添加入简单路径数组Aspath中并在数组Are上记录节点w的受访状态;再判断节点w是否为终点组件节点Nend;如果是,则依次输出简单路径数组Aspath上所有的组件节点信息;若不是,则结束判断;
步骤S144:指针p指向邻接表Lnlist中节点w所在行的下一个节点w′,并判断w′是否为空节点;
若节点w′不是空节点,则下一个节点w′被替换为当前节点w,然后在数组Are上检查以下此时节点w是否被受访过;若未被访问,则进一步递归到此时节点w在邻接表Lnlist中的所在行,且继续重复从步骤S143开始的过程;若被访问过,则不再往下递归,仅让指针p指向节点w在邻接表Lnlist中不递归的所在行的下一个节点w′,且一样重复从步骤S143开始的过程;
若节点w′为空节点,则在数组Are上取消节点w的受访状态使之可被继续访问,并根据该层的递归中在邻接表Lnlist所在行的第一个节点o回到上一层递归中在邻接表Lnlist所在行的该节点o的位置;同时让节点w去替换该节点o的位置;
步骤S145:重复步骤S143和步骤S144的过程,直到起点组件节点Nstart在邻接表Lnlist所在行的所有节点全部被搜索完毕;这样就能够得到一个路径对[Xiport,Xoport]上所有存在的简单路径了。
3.根据权利要求1所述的一种基于语义理解的深度学习硬件木马检测方法,其特征在于:所述步骤S2具体包括以下步骤:
步骤S21:从步骤S1得到的句子数据集根据组件类型名进行词语的去重,留下的词语作为词库训练的材料;
步骤S22:依靠word2vec中的skip-gram词之间的相关性计算模式,对词库中包含的每一个词完成词向量WVpre的预训练;这种词相关性计算的原理遵循如下公式:
其中,在上述第一个公式中,wo和wc分别表示周围词和中心词;uo、ui和vc各自代表周围词的、词库中任意一个词的以及中心词的词向量;在上述第二个公式中还多了个参数uj,它表示为中心词wc作为其他词的周围词的时候的词向量;
上述第一个公式是个损失函数,它的原理是中心词求其周围词的概率并进行归一化处理所得的结果;为了得到最优化的词向量表达效果,再对第一个公式求导便成了梯度函数即第二个公式;最后在结合梯度下降算法令第一个公式最小化,从结果导出vc就是训练好的词向量WVpre。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110739931.3A CN113486347B (zh) | 2021-06-30 | 2021-06-30 | 一种基于语义理解的深度学习硬件木马检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110739931.3A CN113486347B (zh) | 2021-06-30 | 2021-06-30 | 一种基于语义理解的深度学习硬件木马检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486347A CN113486347A (zh) | 2021-10-08 |
CN113486347B true CN113486347B (zh) | 2023-07-14 |
Family
ID=77937242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110739931.3A Active CN113486347B (zh) | 2021-06-30 | 2021-06-30 | 一种基于语义理解的深度学习硬件木马检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486347B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114065308A (zh) * | 2021-11-25 | 2022-02-18 | 福州大学 | 基于深度学习的门级硬件木马定位方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740348A (zh) * | 2019-01-29 | 2019-05-10 | 福州大学 | 一种基于机器学习的硬件木马定位方法 |
CN110096879A (zh) * | 2019-04-26 | 2019-08-06 | 北京计算机技术及应用研究所 | 一种基于门级结构特征的静态硬件木马检测方法 |
US10769374B1 (en) * | 2019-04-24 | 2020-09-08 | Honghui CHEN | Answer selection method for question answering system and the system |
CN111966825A (zh) * | 2020-07-16 | 2020-11-20 | 电子科技大学 | 一种基于机器学习的电网设备缺陷文本分类方法 |
WO2020244066A1 (zh) * | 2019-06-04 | 2020-12-10 | 平安科技(深圳)有限公司 | 一种文本分类方法、装置、设备及存储介质 |
CN112380534A (zh) * | 2020-11-12 | 2021-02-19 | 上海电力大学 | 一种基于电路结构分析的硬件木马检测方法 |
-
2021
- 2021-06-30 CN CN202110739931.3A patent/CN113486347B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740348A (zh) * | 2019-01-29 | 2019-05-10 | 福州大学 | 一种基于机器学习的硬件木马定位方法 |
US10769374B1 (en) * | 2019-04-24 | 2020-09-08 | Honghui CHEN | Answer selection method for question answering system and the system |
CN110096879A (zh) * | 2019-04-26 | 2019-08-06 | 北京计算机技术及应用研究所 | 一种基于门级结构特征的静态硬件木马检测方法 |
WO2020244066A1 (zh) * | 2019-06-04 | 2020-12-10 | 平安科技(深圳)有限公司 | 一种文本分类方法、装置、设备及存储介质 |
CN111966825A (zh) * | 2020-07-16 | 2020-11-20 | 电子科技大学 | 一种基于机器学习的电网设备缺陷文本分类方法 |
CN112380534A (zh) * | 2020-11-12 | 2021-02-19 | 上海电力大学 | 一种基于电路结构分析的硬件木马检测方法 |
Non-Patent Citations (3)
Title |
---|
Trojan detection using IC fingerprinting;AGRAWAL D;IEEE;全文 * |
基于反向神经网络的硬件木马识别;张凡;信息与电脑(第13期);全文 * |
大规模图上标签集约束路径的集合查询;包佳佳;田伟;;计算机科学(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113486347A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101312770B1 (ko) | 정보 분류를 위한 방법, 컴퓨터 판독가능 매체, 및 시스템 | |
CN109299462B (zh) | 基于多维卷积特征的短文本相似度计算方法 | |
CN110287735B (zh) | 基于芯片网表特征的木马感染电路识别方法 | |
CN109740348B (zh) | 一种基于机器学习的硬件木马定位方法 | |
JP2022073981A (ja) | ソースコード取得 | |
CN113486347B (zh) | 一种基于语义理解的深度学习硬件木马检测方法 | |
CN114936158A (zh) | 一种基于图卷积神经网络的软件缺陷定位方法 | |
CN106874322A (zh) | 一种数据表关联方法和装置 | |
CN116522334A (zh) | 基于图神经网络的rtl级硬件木马检测方法及存储介质 | |
CN114065307A (zh) | 一种基于双向图卷积神经网络的硬件木马检测方法与系统 | |
Hua et al. | Classifying packed malware represented as control flow graphs using deep graph convolutional neural network | |
CN110768929A (zh) | 域名检测方法和装置、计算机可读存储介质 | |
US6732340B1 (en) | Method for designing a semiconductor integrated circuit which includes consideration of parasitic elements on critical data paths | |
Shirazi et al. | Towards performance of NLP transformers on URL-based phishing detection for mobile devices | |
CN111898134B (zh) | 基于LSTM和BiLSTM的智能合约漏洞检测方法和装置 | |
CN109858246B (zh) | 一种针对控制信号型硬件木马的分类方法 | |
Xu et al. | HTtext: A TextCNN-based pre-silicon detection for hardware Trojans | |
CN116401719A (zh) | 基于机器学习的门级网表中硬件木马定位方法 | |
CN113672508B (zh) | 一种基于风险策略和多样性策略的Simulink测试方法 | |
US10474784B2 (en) | Method and system for defining generic topologies for use in topology matching engines | |
CN114626106A (zh) | 一种基于级联结构特征的硬件木马检测方法 | |
CN110457455B (zh) | 一种三值逻辑问答咨询优化方法、系统、介质和设备 | |
Huang et al. | A Hardware Trojan Trigger Localization Method in RTL based on Control Flow Features | |
Zhang et al. | Rlocht: A hardware trojans localization method utilizing deep learning at the gate-level | |
Saunders et al. | Testing the rogue taxa hypothesis for clustering instability |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |