CN112231775B - 一种基于Adaboost算法的硬件木马检测方法 - Google Patents
一种基于Adaboost算法的硬件木马检测方法 Download PDFInfo
- Publication number
- CN112231775B CN112231775B CN201910633865.4A CN201910633865A CN112231775B CN 112231775 B CN112231775 B CN 112231775B CN 201910633865 A CN201910633865 A CN 201910633865A CN 112231775 B CN112231775 B CN 112231775B
- Authority
- CN
- China
- Prior art keywords
- netlist
- hardware
- gate
- trojan
- hardware trojan
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于Adaboost的硬件木马检测方法,通过定义硬件木马的门级结构特征,标定网表中所有硬件木马的位置和门级元件的木马特征向量,建立训练和测试数据集,依据数据集,构建并训练Adaboost硬件木马检测模型。当模型的错误率低于设定阈值后,即可将模型用于对待测电路网表中硬件木马的检测。
Description
技术领域
本申请属于集成电路硬件木马检测技术领域,具体设计一种基于Adaboost算法的硬件木马检测方法。
背景技术
随着集成电路规模的不断扩大,SoC(System on chip)系统的复杂程度越来越高。电路设计者通常需要将在系统中使用第三方IP(Intellectual Property)核以实现相应功能,而来源于不可信第三方设计者的IP核有可能在设计的过程中被人为植入硬件木马,因此,为了保证SoC系统的安全,需要实现对电路设计过程中可能引入的硬件木马电路进行有效检测。同时,随着电路的复杂度的提高,SoC系统蕴含的静态信息和动态信息日趋丰富,传统的电路分析手段已经越来越无法满足对大规模电路信息的处理。
近年来逐渐成熟的机器学习技术为电路分析提供了一种可靠的手段,分别是基于逻辑测试和侧信道分析的硬件木马检测方法。目前,主流的非破坏性机器学习硬件木马检测方法主要基于逻辑功能测试和侧信道分析技术。其思路是,在逻辑测试中输入激励向量以激活电路,提取电路在运行过程中产生的功耗或电磁信息,使用机器学习技术分析可能存在异常的信息,以达到硬件木马检测的目的。但由于工艺偏差产生的噪声和物理极限等因素存在,制约了机器学习技术分析的硬件木马检测精度。
发明内容
本发明提供了一种基于Adaboost算法的硬件木马检测方法,本发明主要用于检测电路设计过程中植入电路网表的硬件木马,相比于传统逻辑测试和侧信道分析的方法,可能会由于测试覆盖率不高、噪声干扰等问题影响检测硬件木马的精度,本专利提出的硬件木马检测方法,通过定义硬件木马结构特征,基于Adaboost算法分析电路网表结构特征,完成硬件木马的筛选,进而提高硬件木马的检测效率。
为实现本发明的目的,本发明提供了一种基于Adaboost算法的硬件木马检测方法,包括如下步骤:
(1)选取基准网表并植入木马;
(2)定义木马的网表结构特征;
(3)构建硬件网络的特征向量空间;
(4)提取基准网表门级元件的特征向量组;
(5)建立训练数据集与测试数据集;
(6)训练Adaboost弱分类器;
(7)形成门级硬件木马检测模型;
(8)检测网表中植入的硬件木马。
其中,所述步骤(1)具体为:选取一定数量的基准网表和硬件木马,根据硬件木马的功能将其植入电路网表中的相应位置,使硬件木马能够实现基本功能;同时对木马网络的所有元件记为1,网表中的正常网络的元件记为-1。
其中,所述步骤(2)具体为:根据理论推导和基准网表中已存在的硬件木马结构,提出一定数量的硬件木马结构特征。
其中,所述步骤(3)具体为:如果共提出n条硬件木马网络特征,依据(2)中定义得到的硬件木马特征,分别对所有特征进行编号,形成用于描述木马特征N维列向量。
其中,所述步骤(4)具体为:将植入木马的基准网表文件,将网表文件导入pycharm平台,借助python遍历网表,寻找符合上述特征的网络结构,若符合某个特征,则标记该网络上所有门级元件的特征向量中对应项为1,否则为0,所有门级元件的特征值为Adaboost算法训练输入特征向量
其中,所述步骤(6)具体为:在SQL Server中构建深度为n的随机树,依据所有样本的权值,随机选取N个作为训练数据对弱分类器进行训练,每个弱分类器输出对于单个特征向量是否为木马的判断,计算弱分类器对样本分类的错误率,依据误差率再次调整数据权值,同时更新所得弱分类器在所有弱分类器中的权值。当弱分类器生成次数达到k后,停止训练。
其中,所述步骤(7)具体为:选取测试数据集的所有特征向量利用(6)得到的弱分类器组使用加权平均的方法求解最终分类值β1,并对比真实β值,计算误差率是否低于阈值ε,若低于阈值,则所有弱分类器的集合即构成了硬件木马检测模型;否则,返回(5)重新构建随机树模型。该模型即可用于对网表中植入的硬件木马进行检测。
其中,所述步骤(8)具体为:对于待检测网表,重复步骤(4),取得网表所有门级元件的特征向量后,输入所得模型,即可完成木马电路模块的检测。
与现有技术相比,本发明的有益效果为,
(1)本专利采用静态的硬件木马检测方法,不需要通过输入测试激励以激活电路,有效的降低硬件木马检测过程中的时间和资源开销。
(2)本专利使用Adaboost算法作为硬件木马分类算法,相比于单个分类器,有效降低了分类样本偏差,提高了分类准确率。
附图说明
图1所示为本申请的方法流程图;
图2所示为本申请的随机树模型示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用属于“包含”和/或“包括”时,其指明存在特征、步骤、操作、部件或者模块、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施方式例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明基于现有的电路门级网表,直接分析电路结构性特征,不仅避免了电路运行过程中可能产生的噪声干扰,也保证了电路测试的过程中时间和资源开销不至于过大。Adaboost作为机器学习中集成学习的一种算法,通过训练并组合多个弱分类器,具有较高对多维特征数据的分类准确率和较低分类偏差。
本发明提出了一种基于Adaboost的硬件木马检测方法,通过定义硬件木马的门级结构特征,标定网表中所有硬件木马的位置和门级元件的木马特征向量,建立训练和测试数据集,依据数据集,构建并训练Adaboost硬件木马检测模型。当模型的错误率低于设定阈值后,即可将模型用于对待测电路网表中硬件木马的检测。
如图1所示,本发明的完整技术方案如下图1所示:
(1)、选取基准网表并植入木马:选取一定数量的基准网表和硬件木马,根据硬件木马的功能将其植入电路网表中的相应位置,使硬件木马可以实现基本功能;同时对木马网络的所有元件记为1,网表中的正常网络的元件记为-1。
(2)、定义木马的网表结构特征:根据理论推导和基准网表中已存在的硬件木马结构,提出一定数量的可能硬件木马结构特征。
(3)、构建硬件网络的特征向量空间:如果共提出n条硬件木马网络特征,依据(2)中定义得到的硬件木马特征,分别对所有特征进行编号,形成用于描述木马特征N维列向量。
(4)、提取基准网表门级元件的特征向量组:将植入木马的基准网表文件,将网表文件导入pycharm平台,借助python遍历网表,寻找符合上述特征的网络结构,若符合某个特征,则标记该网络上所有门级元件的特征向量中对应项为1,否则为0,所有门级元件的特征值为Adaboost算法训练输入特征向量
(6)、训练Adaboost弱分类器:在SQL Server中构建深度为n的随机树,如下图2所示,依据所有样本的权值,随机选取N个作为训练数据对弱分类器(即随机树)进行训练,每个弱分类器输出对于单个特征向量是否为木马的判断,计算弱分类器对样本分类的错误率,依据误差率再次调整数据权值,同时更新所得弱分类器在所有弱分类器中的权值。当弱分类器生成次数达到k后,停止训练。
(7)、形成门级硬件木马检测模型:选取测试数据集的所有特征向量利用(6)得到的弱分类器组使用加权平均的方法求解最终分类值β1,并对比真实β值,计算误差率是否低于阈值ε,若低于阈值,则所有弱分类器的集合即构成了硬件木马检测模型;否则,返回(5)重新构建随机树模型。该模型即可用于对网表中植入的硬件木马进行检测。
(8)、检测网表中植入的硬件木马:对于待检测网表,重复步骤(4),取得网表所有门级元件的特征向量后,输入所得模型,即可完成木马电路模块的检测。
Adaboost作为机器学习技术中一种子类,该算法的基础是建立训练数据集和测试数据集,具体到网表中硬件木马的检测模型,基准网表即为训练集和测试集的数据来源。网表中的木马模块和正常结构的标记值,为Adaboost算法训练输出值β。
本发明中,将木马的结构特征作为Adaboost技术需要识别的特征,需要对每个硬件木马结构特征进行定义。例如:对于信息泄露型的木马,攻击者倾向于将其植入原始输入附近以便提取输入信号,因此可以将原始输入到电路输出仅有x级(x为一个较小的正整数)作为硬件木马的一个结构特征。
定义硬件木马的特征后,即需要将自然语言描述的结构特征转化为adaboost中分类器可以识别的特征向量,对所有特征随机顺序进行编号后,即可构建N维列向量空间。借助该向量空间,我们可以对网表中的每个门级元件建立一个N维特征列向量,每项特征的数字编号即为其在列向量中的行数。
综上所述,完成特征向量定义和基准网表的构建后,即需要提取基准网表中每个门级元件的特征向量。本专利通过遍历基准网表,识别网表中若存在符合前述定义木马特征结构即对路径所有门级元件的特征向量对应项计1,否则该特征向量的对应项记为0。该过程结束后,即可获得电路每个门元件木马结构特征向量
统计网表所有门级元件的特征向量,与前述相对应的β标记值组合,形成基准数据集,按照比例将基准数据集分为训练数据集和测试数据集。
训练数据集每个特征向量即为一个训练样本,依据Adaboost算法的基本原理,设定误差率阈值ε及最大迭代次数k。假设训练集共包含共有M个数据对,为每个训练样本赋予相等的初始权值Wi(权值即为训练样本被选为训练数据的概率),即:
Adaboost算法应用的关键即在于弱分类器的构建和训练,本发明使用有限深度的随机树作为弱分类器,根据每个训练样本的权值大小抽取其中N个作为训练数据,训练随机树模型,并计算目前单一弱分类器在训练数据集上的分类误差率em:(Gm为第m个分类器分类结果)
(i=1,2...N)
根据分类误差率调整样本权值,使分类错误的数据的权值占有更高比重,更容易被抽取为下个弱分类器的训练数据;同时,根据现有弱分类器的训练数据集误差率调整现有弱分类器在最终分类结果中所占权值δ,使更低误差率的弱分类器占有更高比重,将所有弱分类器按照权值组合即可得到所需的强分类器f(x):
对于待测网表,提取每个门级元件的特征向量后,将其输入上述强分类器模型,即可完成植入其中硬件木马的检测。
以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (1)
1.一种基于Adaboost算法的硬件木马检测方法,其特征在于,包括如下步骤:
(1)选取基准网表并植入木马;
(2)定义木马的网表结构特征;
(3)构建硬件网络的特征向量空间;
(4)提取基准网表门级元件的特征向量组;
(5)建立训练数据集与测试数据集;
(6)训练Adaboost弱分类器;
(7)形成门级硬件木马检测模型;
(8)检测网表中植入的硬件木马;
其中,所述步骤(1)具体为:选取一定数量的基准网表和硬件木马,根据硬件木马的功能将其植入电路网表中的相应位置,使硬件木马能够实现基本功能;同时对木马网络的所有元件记为1,网表中的正常网络的元件记为-1;
其中,所述步骤(2)具体为:根据理论推导和基准网表中已存在的硬件木马结构,提出一定数量的硬件木马结构特征;
其中,所述步骤(3)具体为:如果共提出n条硬件木马网络特征,依据(2)中定义得到的硬件木马特征,分别对所有特征进行编号,形成用于描述木马特征N维列向量;
其中,所述步骤(4)具体为:将植入木马的基准网表文件,将网表文件导入pycharm平台,借助python遍历网表,寻找符合上述特征的网络结构,若符合某个特征,则标记该网络上所有门级元件的特征向量中对应项为1,否则为0,所有门级元件的特征值为Adaboost算法训练输入特征向量
其中,所述步骤(6)具体为:在SQL Server中构建深度为n的随机树,依据所有样本的权值,随机选取N个作为训练数据对弱分类器进行训练,每个弱分类器输出对于单个特征向量是否为木马的判断,计算弱分类器对样本分类的误差率,依据误差率再次调整数据权值,同时更新所得弱分类器在所有弱分类器中的权值。当弱分类器生成次数达到k后,停止训练;
其中,所述步骤(7)具体为:选取测试数据集的所有特征向量利用(6)得到的弱分类器组使用加权平均的方法求解最终分类值β1,并对比真实β值,计算误差率是否低于阈值ε,若低于阈值,则所有弱分类器的集合即构成了硬件木马检测模型;否则,返回(5)重新构建随机树模型。该模型即可用于对网表中植入的硬件木马进行检测;
其中,所述步骤(8)具体为:对于待检测网表,重复步骤(4),取得网表所有门级元件的特征向量后,输入所得模型,即可完成木马电路模块的检测;
其中,误差率计算方式如下:误差率em:(Gm为第m个分类器分类结果)
其中,将所有弱分类器按照权值组合即可得到所需的强分类器f(x):
对于待测网表,提取每个门级元件的特征向量后,将其输入上述强分类器模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633865.4A CN112231775B (zh) | 2019-07-15 | 2019-07-15 | 一种基于Adaboost算法的硬件木马检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633865.4A CN112231775B (zh) | 2019-07-15 | 2019-07-15 | 一种基于Adaboost算法的硬件木马检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231775A CN112231775A (zh) | 2021-01-15 |
CN112231775B true CN112231775B (zh) | 2022-10-21 |
Family
ID=74111459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633865.4A Active CN112231775B (zh) | 2019-07-15 | 2019-07-15 | 一种基于Adaboost算法的硬件木马检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231775B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749524B (zh) * | 2021-01-18 | 2022-07-12 | 重庆邮电大学 | 一种基于残差编码器神经网络的硬件木马电路检测方法 |
TWI789997B (zh) * | 2021-11-17 | 2023-01-11 | 財團法人資訊工業策進會 | 基於木馬電路檢測的資料處理方法及資料處理電路 |
CN114861573B (zh) * | 2022-04-08 | 2024-03-08 | 西北工业大学 | 一种基于lut特征提取和机器学习的硬件木马检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104820687A (zh) * | 2015-04-22 | 2015-08-05 | 中国科学院信息工程研究所 | 一种有向链接式分类器构造方法及分类方法 |
CN108093406A (zh) * | 2017-11-29 | 2018-05-29 | 重庆邮电大学 | 一种基于集成学习的无线传感网入侵检测方法 |
CN109657461A (zh) * | 2018-11-26 | 2019-04-19 | 浙江大学 | 基于梯度提升算法的rtl硬件木马检测方法 |
CN109684834A (zh) * | 2018-12-21 | 2019-04-26 | 福州大学 | 一种基于XGBoost的门级硬件木马识别方法 |
CN109815705A (zh) * | 2019-01-31 | 2019-05-28 | 福州大学 | 一种基于扫描链特征分析的硬件木马检测方法 |
-
2019
- 2019-07-15 CN CN201910633865.4A patent/CN112231775B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104820687A (zh) * | 2015-04-22 | 2015-08-05 | 中国科学院信息工程研究所 | 一种有向链接式分类器构造方法及分类方法 |
CN108093406A (zh) * | 2017-11-29 | 2018-05-29 | 重庆邮电大学 | 一种基于集成学习的无线传感网入侵检测方法 |
CN109657461A (zh) * | 2018-11-26 | 2019-04-19 | 浙江大学 | 基于梯度提升算法的rtl硬件木马检测方法 |
CN109684834A (zh) * | 2018-12-21 | 2019-04-26 | 福州大学 | 一种基于XGBoost的门级硬件木马识别方法 |
CN109815705A (zh) * | 2019-01-31 | 2019-05-28 | 福州大学 | 一种基于扫描链特征分析的硬件木马检测方法 |
Non-Patent Citations (4)
Title |
---|
Hardware Trojan Detection Through Chip-Free Electromagnetic Side-Channel Statistical Analysis;Jiaji He;《IEEE》;20171031;全文 * |
基于Adaboost 算法的窃密木马检测模型研究;张兆林;《信息工程大学学报》;20170228;全文 * |
基于支持向量机的硬件木马检测建模与优化;苏静;《技术研究》;20170831;全文 * |
基于电路活性测度的硬件木马检测方法;赵毅强;《华中科技大学学报》;20180228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112231775A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104330721B (zh) | 集成电路硬件木马检测方法和系统 | |
CN112231775B (zh) | 一种基于Adaboost算法的硬件木马检测方法 | |
CN109491914B (zh) | 基于不平衡学习策略高影响缺陷报告预测方法 | |
CN109729091A (zh) | 一种基于多特征融合和CNN算法的LDoS攻击检测方法 | |
CN104573013A (zh) | 结合类别权重的集成学习分类方法 | |
CN103838754B (zh) | 信息搜索装置及方法 | |
CN104318136A (zh) | 用户键盘按键行为模式建模与分析系统及其身份识别方法 | |
CN110414277B (zh) | 基于多特征参数的门级硬件木马检测方法 | |
CN109657461B (zh) | 基于梯度提升算法的rtl硬件木马检测方法 | |
CN109684834B (zh) | 一种基于XGBoost的门级硬件木马识别方法 | |
Chen et al. | ADASYN− Random forest based intrusion detection model | |
CN103077720A (zh) | 一种说话人识别方法及系统 | |
CN108052863A (zh) | 基于最大方差展开法的电能质量扰动识别方法 | |
CN111062036A (zh) | 恶意软件识别模型构建、识别方法及介质和设备 | |
CN109740348B (zh) | 一种基于机器学习的硬件木马定位方法 | |
CN109815705A (zh) | 一种基于扫描链特征分析的硬件木马检测方法 | |
CN106874762A (zh) | 基于api依赖关系图的安卓恶意代码检测方法 | |
CN102324007A (zh) | 基于数据挖掘的异常检测方法 | |
CN109325125A (zh) | 一种基于cnn优化的社交网络谣言方法 | |
CN110955892B (zh) | 一种基于机器学习和电路行为级特征的硬件木马检测方法 | |
CN116502091A (zh) | 一种基于lstm和注意力机制的网络入侵检测方法 | |
CN111934852A (zh) | 一种基于神经网络的aes密码芯片电磁攻击方法及系统 | |
CN110458219A (zh) | 一种基于stft-cnn-rvfl的φ-otdr振动信号识别算法 | |
CN116383815A (zh) | 一种基于图神经网络的硬件木马自动检测方法 | |
CN116260565A (zh) | 芯片电磁侧信道分析方法、系统及存储介质 |
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 |