CN104215895B - 基于测试向量的硬件木马检测方法及系统 - Google Patents
基于测试向量的硬件木马检测方法及系统 Download PDFInfo
- Publication number
- CN104215895B CN104215895B CN201410443589.2A CN201410443589A CN104215895B CN 104215895 B CN104215895 B CN 104215895B CN 201410443589 A CN201410443589 A CN 201410443589A CN 104215895 B CN104215895 B CN 104215895B
- Authority
- CN
- China
- Prior art keywords
- node
- upset
- circuit
- integrated circuit
- test vector
- 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
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种基于测试向量的硬件木马检测方法及系统,所述方法包括:获取集成电路中各电路节点的翻转信息和覆盖信息;将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点;根据各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息从测试向量中选取最终测试向量;分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。实施本发明的方法及系统,可在不损坏集成电路的前提下,快速准确地检测出集成电路是否含有硬件木马。
Description
技术领域
本发明涉及电子技术领域,特别是涉及一种基于测试向量的硬件木马检测方法及系统。
背景技术
随着集成电路(IC,Integrated Circuit)的快速发展和广泛应用,对集成电路中被恶意嵌入的硬件木马(Hardware Trojan Horse)的检测也变得越来越重要。硬件木马是植入到集成电路中的恶意电路,能够在特定的触发激活条件下实现破坏性功能或泄露集成电路内部秘密信息,对集成电路的安全产生极大的威胁。
硬件木马的检测方法有物理检测。物理检测将芯片通过腐蚀剥层,利用扫描电镜、电子探针等设备将芯片还原为版图,然后与原始版图比较以确定是否存在硬件木马。
但是,硬件木马的物理检测方法破坏性大、测检测时间长、成本高。
发明内容
基于此,有必要针对上述硬件木马的物理检测方法破坏性大、检测时间长、成本高的问题,提供一种基于测试向量的硬件木马检测方法及系统。
一种基于测试向量的硬件木马检测方法,包括以下步骤:
获取集成电路中各电路节点的翻转信息和覆盖信息;
将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点;
获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息,每组候选木马节点包括至少两个候选木马节点;
若各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配,则选取对应的测试向量为对硬件木马检测的最终测试向量;
分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。
一种基于测试向量的硬件木马检测系统,包括:
信息获取模块,用于获取集成电路中各电路节点的翻转信息和覆盖信息;
节点选取模块,用于将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点;
向量信息获取模块,用于获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息,每组候选木马节点包括至少两个候选木马节点;
测试向量选取模块,用于在各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配时,选取对应的测试向量为对硬件木马检测的最终测试向量;
木马检测模块,用于分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。
上述基于测试向量的硬件木马检测方法及系统,通过集成电路中各电路节点的翻转信息和覆盖信息选取为候选木马节点,进而根据各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息从测试向量中选取最终测试向量,再通过最终测试向量对所述集成电路进行木马检测,可在不损坏集成电路的前提下,快速准确地检测出集成电路是否含有硬件木马。
附图说明
图1是本发明基于测试向量的硬件木马检测方法第一实施方式的流程示意图;
图2是本发明基于测试向量的硬件木马检测方法第二实施方式的流程示意图;
图3是本发明基于测试向量的硬件木马检测系统第一实施方式的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1是本发明的基于测试向量的硬件木马检测方法第一实施方式的流程示意图。
本实施方式的所述基于测试向量的硬件木马检测方法包括以下步骤:
步骤S101,获取集成电路中各电路节点的翻转信息和覆盖信息。
步骤S102,将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点。
步骤S103,获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息,每组候选木马节点包括至少两个候选木马节点。
步骤S104,若各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配,则选取对应的测试向量为对硬件木马检测的最终测试向量。
步骤S105,分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。
本实施方式,通过集成电路中各电路节点的翻转信息和覆盖信息选取为候选木马节点,进而根据各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息从测试向量中选取最终测试向量,再通过最终测试向量对所述集成电路进行木马检测,可在不损坏集成电路的前提下,快速准确地检测出集成电路是否含有硬件木马。
其中,对于步骤S101,所述覆盖信息可包括代码覆盖率、状态覆盖率、功能覆盖率以及翻转覆盖率等。所述翻转信息可包括电路节点的静态翻转次数或静态翻转概率以及电路节点的动态翻转概率或动态翻转次数。还可包括电路节点的节点值。
在一个实施例中,获取集成电路中各电路节点的翻转信息和覆盖信息的步骤包括以下步骤:
通过所述集成电路的电路描述文件以及所述集成电路的预设设计规范,编写验证所述集成电路正常运行的测试验证平台,以对所述集成电路进行仿真和覆盖率计算,获得各电路节点的覆盖率为所述覆盖信息。
优选地,所述电路描述文件可以是verilog代码或者其它网表形式。根据电路描述文件和相应的测试规范编写所述集成电路正常运行的测试验证平台,对集成电路进行仿真,进而对集成电路进行覆盖仿真,分析各电路节点的代码覆盖率、状态覆盖率、功能覆盖率以及翻转覆盖率,从而获得各电路节点的覆盖信息。
在另一个实施例中,获取集成电路中各电路节点的翻转信息和覆盖信息的步骤包括以下步骤:
根据所述集成电路输入端的预设静态翻转概率分布,计算各电路节点的静态翻转概率为所述翻转信息。
获取测试向量,并将获取的测试向量施加到所述集成电路的输入端,对所述集成电路进行仿真,获取各电路节点的动态翻转次数为所述翻转信息。
通过预设的仿真算法,从所述集成电路的电路描述文件中获取各电路节点的节点值为所述翻转信息。
优选地,可通过给定所述集成电路的各个输入端的静态翻转概率,根据电路网表的层级连接关系以及所描述的逻辑门,从输入端开始,根据逻辑门的逻辑功能计算每个逻辑门的输出的静态翻转概率,并将前级逻辑门的输出作为后级逻辑门的输入,依次计算得到电路每个节点的静态翻转概率。
优选地,所述测试向量可为随机测试向量,还可为本领域技术人员惯用的其他测试向量。
进一步地,所述仿真可包括采用EDA工具的仿真,如:Synopsys vcs。还可包括采用其他工具进行的仿真。将获取的测试向量施加到所述集成电路的输入端,对所述集成电路进行仿真,通过仿真可得到各电路节点的状态值,进而统计各电路节点的状态值翻转的次数,将各电路节点的状态值翻转的次数除以所有电路节点的状态值翻转的次数的总和,即可得到各个电路节点的动态翻转概率,进而可构成所有电路节点的翻转概率列表。
更进一步地,节点值可为0或1。
对于步骤S102,优选地,所述候选木马节点为被植入硬件木马的可能性较高的电路节点。
进一步地,所述预设低翻转条件和所述预设低覆盖条件为用于选取被植入硬件木马可能性较高电路节点的条件,如:可能植入硬件木马的电路节点的静态翻转概率范围、动态翻转概率范围、覆盖率范围、静态翻转次数范围及动态翻转次数范围等。
对于步骤S103,优选地所述测试向量可为随机测试向量。所述仿真可包括采用EDA工具的仿真,如:Synopsys vcs。
优选地,可将相邻的预设个数的候选木马节点分为一组候选木马节点,各组候选木马节点所包括的木马节点个数可不同。
在一个实施例中,获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息的步骤包括以下步骤:
获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转次数及所有候选木马节点的翻转次数的总和及所述集成电路的所有电路节点的翻转次数的总和。
对各候选木马节点进行分组,生成各组候选木马节点。
根据各候选木马节点的翻转次数及所有候选木马节点的翻转次数的总和及所述集成电路的所有电路节点的翻转次数的总和,计算各候选木马节点的翻转概率和各组候选木马节点的联合翻转概率。
优选地,所述候选木马节点组别包括至少两个不同的电路节点,所述候选木马节点组别的联合翻转信息是组别中所有电路节点的翻转信息的总和。
进一步地,通过仿真可采用Synopsys vcs进行仿真,并得到翻转信息文件-SAIF文件。通过采用编程语言(如perl、awk)对仿真得到的SAIF文件进行电路节点翻转信息提取与分析统计。得到各个电路节点的翻转次数(状态值翻转次数),以及全部电路节点的总翻转次数,以此计算各个节点的翻转概率以及不同节点组合的联合翻转概率。
在其他实施例中,可直接计算比较各候选木马节点的翻转次数和各候选木马节点组别的联合翻转次数,作为各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息。
对于步骤S104,所述测试向量可为随机测试向量,还可为本领域技术人员惯用的其他测试向量。可采用verilog语言生成随机测试向量。
优选地,可将所述测试向量施加到所述集成电路的主输入端,进行仿真。
进一步地,所述预设木马翻转信息和所述预设木马联合翻转信息可为用于标识被植入硬件木马的电路节点的特性,如:植入硬件木马的电路节点动态翻转概率范围、动态翻转次数范围、植入硬件木马的电路节点组别的联合翻转概率范围及植入硬件木马的电路节点组别的联合翻转次数范围等。
在一个实施例中,若各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配,则选取对应的测试向量为对硬件木马检测的最终测试向量的步骤包括以下步骤:
判断各候选木马节点的翻转概率是否均小于预设木马翻转概率阈值。
若是,则判断各组候选木马节点的联合翻转概率是否均小于预设木马组别联合翻转概率阈值。
若是,则选取对应的测试向量为对硬件木马检测的最终测试向量。
优选地,所述预设木马翻转概率阈值优选地为0.0059,所述木马组别翻转概率阈值优选地为0.0068。
进一步地,通过检测,能够全部检测出木马翻转概率阈值。该木马翻转概率阈值的一种计算方式可为:对不含硬件木马的集成电路增加/减少一个最小的逻辑门,该最小逻辑门最少翻转一次时所产生的瞬态电流与该集成电路总的瞬态电流相除得到比值,该比值对于在正常工艺波动内的集成电路,增加/减少一个最小的逻辑门后的集成电路与原始集成电路的瞬态电流能够完全区分开,此时对应的最小逻辑门的翻转次数与原始集成电路总的翻转次数的比值即为翻转概率阈值。
更进一步地,可分别将各候选木马节点的翻转次数和各候选木马节点组别的联合翻转次数与预设木马翻转次数阈值和预设木马组别联合翻转次数阈值进行比较,以确定最终测试向量。
在其他实施方式中,可先判断各组候选木马节点的联合翻转概率是否均小于预设木马组别联合翻转概率阈值,若是,再判断各候选木马节点的翻转概率是否均小于预设木马翻转概率阈值,若是,则选取对应的测试向量为对硬件木马检测的最终测试向量。
对于步骤S105,各最终测试向量施加到所述集成电路的输入端时,可通过比较所述集成电路的输出端信号与预期输出信号是否匹配,判断所述集成电路中是否有硬件木马。所述预期输出信号为预先设计所述集成电路期望得到的输出端信号。还可以将最终测试向量施加到所述集成电路的输入端,通过本领域技术人员惯用的其他方式测试判断所述集成电路中是否有硬件木马。
优选地,可将各最终测试向量按预设顺序施加到所述集成电路的输入端,进行木马测试。
在一个实施例中,所述分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测的步骤包括以下步骤:
分别将各个所述最终测试向量施加到所述集成电路的输入端。
测试所述集成电路的输出端信号,若测试的输出端信号与预期输出信号不匹配,则判定所述集成电路中含有硬件木马。
本实施例,可快速测试出集成电路中是否含有硬件木马。
在另一个实施例中,所述分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测的步骤还包括以下步骤:
若测试的输出端信号与预期输出信号匹配,则再测试所述集成电路的瞬态电流。
判断测试的瞬态电流是否在预设的瞬态电流范围内。
若否,则判定所述集成电路中含有硬件木马。
优选地,所述瞬态电流范围为正常工艺波动下确定不含硬件木马的集成电路在对应测试向量下产生的瞬态电流。
在其他实施方式中,还可通过测试所述集成电路的瞬态功耗判断所述集成电路中是否含有硬件木马,所述瞬态功耗为瞬态电流与电压的乘积。
进一步地,可在瞬态电流在预设的瞬态电流范围内时,判定所述集成电路中没有硬件木马。
更进一步地,在判断测试的瞬态电流是否在预设的瞬态电流范围内的步骤之后,还可包括以下步骤:
若测试的瞬态电流在预设的瞬态电流范围内,则测试所述集成电路的静态电流;
判断测试的静态电流是否在预设的静态电流范围内。
若是,则判定所述集成电路中没有硬件木马。
若否,则判定所述集成电路中含有硬件木马。
请参阅图2,图2是本发明的基于测试向量的硬件木马检测方法第二实施方式的流程示意图。
本实施方式的所述基于测试向量的硬件木马检测方法与第一实施方式的区别在于:将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点的步骤包括以下步骤:
步骤S201,根据各电路节点的覆盖率,选取覆盖率低于覆盖率阈值的电路节点为第一节点集合。
步骤S202,根据各电路节点的静态翻转概率,从所述第一节点集合中选取静态翻转概率低于静态翻转概率阈值的电路节点为第二节点集合。
步骤S203,根据各电路节点的动态翻转次数,计算所述第二节点集合中各节点的动态翻转概率,并从所述第二节点集合中选取动态翻转概率低于动态翻转概率阈值的电路节点为第三节点集合。
步骤S204,根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为候选木马节点。
本实施方式,可快速准确的获得被植入硬件木马可能性较高的电路节点,进而选取更合适的最终测试向量,提高木马测试的精确度。
优选地,所述覆盖率阈值可为0,即选取未被覆盖的电路节点。所述静态翻转概率阈值为3x10-8,所述动态翻转概率阈值为0.0059。
进一步地,节点值固定不变优选地为节点值固定为0或节点值固定为1。
在一个实施例中,根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为候选木马节点的步骤还包括以下步骤:
根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为第四节点集合。
获取所述第四节点集合中各电路节点的扇出。
选取所述第四节点集合中电路节点的扇出处于预设的木马扇出范围的电路节点为候选木马节点。
本实施例,可快速准确的获得被植入硬件木马可能性更高的电路节点,进而选取更合适的最终测试向量,提高木马测试的精确度。
优选地,电路节点的扇出的大小和硬件木马危害性有关,扇出较大时,硬件木马激活后对电路的危害范围大,但硬件木马自身难以隐蔽,扇出小,硬件木马激活后对电路的危害范围小,但易于隐蔽。因此对于每个电路节点,根据电路的功能、关键模块、以及第四节点集合中的电路节点预设木马扇出范围,满足该范围的第四节点集合中的电路节点构成符合扇出要求的候选木马节点。
请参阅图3,图3是本发明的基于测试向量的硬件木马检测系统第一实施方式的流程示意图。
本实施方式的所述基于测试向量的硬件木马检测系统包括以下步骤:
信息获取模块100,用于获取集成电路中各电路节点的翻转信息和覆盖信息。
节点选取模块200,用于将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点。
向量信息获取模块300,用于获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息,每组候选木马节点包括至少两个候选木马节点。
测试向量选取模块400,用于若各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配,则选取对应的测试向量为对硬件木马检测的最终测试向量。
木马检测模块500,用于分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。
本实施方式,通过集成电路中各电路节点的翻转信息和覆盖信息选取为候选木马节点,进而根据各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息从测试向量中选取最终测试向量,再通过最终测试向量对所述集成电路进行木马检测,可在不损坏集成电路的前提下,快速准确地检测出集成电路是否含有硬件木马。
其中,对于信息获取模块100,所述覆盖信息可包括代码覆盖率、状态覆盖率、功能覆盖率以及翻转覆盖率等。所述翻转信息可包括电路节点的静态翻转次数或静态翻转概率以及电路节点的动态翻转概率或动态翻转次数。还可包括电路节点的节点值。
在一个实施例中,信息获取模块100可用于通过所述集成电路的电路描述文件以及所述集成电路的预设设计规范,编写验证所述集成电路正常运行的测试验证平台,以对所述集成电路进行仿真和覆盖率计算,获得各电路节点的覆盖率为所述覆盖信息。
优选地,所述电路描述文件可以是verilog代码或者其它网表形式。根据电路描述文件和相应的测试规范编写所述集成电路正常运行的测试验证平台,对集成电路进行仿真,进而对集成电路进行覆盖仿真,分析各电路节点的代码覆盖率、状态覆盖率、功能覆盖率以及翻转覆盖率,从而获得各电路节点的覆盖信息。
在另一个实施例中,信息获取模块100还可用于:
根据所述集成电路输入端的预设静态翻转概率分布,计算各电路节点的静态翻转概率为所述翻转信息。
获取测试向量,并将获取的测试向量施加到所述集成电路的输入端,对所述集成电路进行仿真,获取各电路节点的动态翻转次数为所述翻转信息。
通过预设的仿真算法,从所述集成电路的电路描述文件中获取各电路节点的节点值为所述翻转信息。
优选地,可通过给定所述集成电路的各个输入端的静态翻转概率,根据电路网表的层级连接关系以及所描述的逻辑门,从输入端开始,根据逻辑门的逻辑功能计算每个逻辑门的输出的静态翻转概率,并将前级逻辑门的输出作为后级逻辑门的输入,依次计算得到电路每个节点的静态翻转概率。
优选地,所述测试向量可为随机测试向量,还可为本领域技术人员惯用的其他测试向量。
进一步地,所述仿真可包括采用EDA工具的仿真,如:Synopsys vcs。还可包括采用其他工具进行的仿真。将获取的测试向量施加到所述集成电路的输入端,对所述集成电路进行仿真,通过仿真可得到各电路节点的状态值,进而统计各电路节点的状态值翻转的次数,将各电路节点的状态值翻转的次数除以所有电路节点的状态值翻转的次数的总和,即可得到各个电路节点的动态翻转概率,进而可构成所有电路节点的翻转概率列表。
更进一步地,节点值可为0或1。
对于节点选取模块200,优选地,所述候选木马节点为被植入硬件木马的可能性较高的电路节点。
进一步地,所述预设低翻转条件和所述预设低覆盖条件为用于选取被植入硬件木马可能性较高电路节点的条件,如:可能植入硬件木马的电路节点的静态翻转概率范围、动态翻转概率范围、覆盖率范围、静态翻转次数范围及动态翻转次数范围等。
对于向量信息获取模块300,优选地所述测试向量可为随机测试向量。所述仿真可包括采用EDA工具的仿真,如:Synopsys vcs。
在一个实施例中,向量信息获取模块300还可用于:
获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转次数及所有候选木马节点的翻转次数的总和及所述集成电路的所有电路节点的翻转次数的总和。
对各候选木马节点进行分组,生成各组候选木马节点。
根据各候选木马节点的翻转次数及所有候选木马节点的翻转次数的总和及所述集成电路的所有电路节点的翻转次数的总和,计算各候选木马节点的翻转概率和各组候选木马节点的联合翻转概率。
优选地,所述候选木马节点组别包括至少两个不同的电路节点,所述候选木马节点组别的联合翻转信息是组别中所有电路节点的翻转信息的总和。
优选地,可将相邻的预设个数的候选木马节点分为一组候选木马节点,各组候选木马节点所包括的木马节点个数可不同。
进一步地,通过仿真可采用Synopsys vcs进行仿真,并得到翻转信息文件-SAIF文件。通过采用编程语言(如perl、awk)对仿真得到的SAIF文件进行电路节点翻转信息提取与分析统计。得到各个电路节点的翻转次数(状态值翻转次数),以及全部电路节点的总翻转次数,以此计算各个节点的翻转概率以及不同节点组合的联合翻转概率。
在其他实施例中,可直接计算比较各候选木马节点的翻转次数和各候选木马节点组别的联合翻转次数,作为各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息。
对于测试向量选取模块400,所述测试向量可为随机测试向量,还可为本领域技术人员惯用的其他测试向量。可采用verilog语言生成随机测试向量。
优选地,可将所述测试向量施加到所述集成电路的主输入端,进行仿真。
进一步地,所述预设木马翻转信息和所述预设木马联合翻转信息可为用于标识被植入硬件木马的电路节点的特性,如:植入硬件木马的电路节点动态翻转概率范围、动态翻转次数范围、植入硬件木马的电路节点组别的联合翻转概率范围及植入硬件木马的电路节点组别的联合翻转次数范围等。
在一个实施例中,测试向量选取模块400还可用于:
判断各候选木马节点的翻转概率是否均小于预设木马翻转概率阈值。
若是,则判断各组候选木马节点的联合翻转概率是否均小于预设木马组别联合翻转概率阈值。
若是,则选取对应的测试向量为对硬件木马检测的最终测试向量。
优选地,所述预设木马翻转概率阈值优选地为0.0059,所述木马组别翻转概率阈值优选地为0.0068。
进一步地,通过检测,能够全部检测出木马翻转概率阈值。该木马翻转概率阈值的一种计算方式可为:对不含硬件木马的集成电路增加/减少一个最小的逻辑门,该最小逻辑门最少翻转一次时所产生的瞬态电流与该集成电路总的瞬态电流相除得到比值,该比值对于在正常工艺波动内的集成电路,增加/减少一个最小的逻辑门后的集成电路与原始集成电路的瞬态电流能够完全区分开,此时对应的最小逻辑门的翻转次数与原始集成电路总的翻转次数的比值即为翻转概率阈值。
更进一步地,可分别将各候选木马节点的翻转次数和各候选木马节点组别的联合翻转次数与预设木马翻转次数阈值和预设木马组别联合翻转次数阈值进行比较,以确定最终测试向量。
在其他实施方式中,测试向量选取模块400还可用于先判断各组候选木马节点的联合翻转概率是否均小于预设木马组别联合翻转概率阈值,若是,再判断各候选木马节点的翻转概率是否均小于预设木马翻转概率阈值,若是,则选取对应的测试向量为对硬件木马检测的最终测试向量。
对于木马检测模块500,各最终测试向量施加到所述集成电路的输入端时,可通过比较所述集成电路的输出端信号与预期输出信号是否匹配,判断所述集成电路中是否有硬件木马。所述预期输出信号为预先设计所述集成电路期望得到的输出端信号。还可以将最终测试向量施加到所述集成电路的输入端,通过本领域技术人员惯用的其他方式测试判断所述集成电路中是否有硬件木马。
在一个实施例中,木马检测模块500还可用于:
分别将各个所述最终测试向量施加到所述集成电路的输入端。
测试所述集成电路的输出端信号,若测试的输出端信号与预期输出信号不匹配,则判定所述集成电路中含有硬件木马。
本实施例,可快速测试出集成电路中是否含有硬件木马。
在另一个实施例中,木马检测模块500还可用于:
若测试的输出端信号与预期输出信号匹配,则再测试所述集成电路的瞬态电流。
判断测试的瞬态电流是否在预设的瞬态电流范围内。
若否,则判定所述集成电路中含有硬件木马。
优选地,所述瞬态电流范围为正常工艺波动下确定不含硬件木马的集成电路在对应测试向量下产生的瞬态电流。
在其他实施方式中,还可通过测试所述集成电路的瞬态功耗盘点过所述集成电路中是否含有硬件木马,所述瞬态功耗为瞬态电流与电压的乘积。
进一步地,可在瞬态电流在预设的瞬态电流范围内时,判定所述集成电路中没有硬件木马。
更进一步地,木马检测模块500还可用于:
若测试的瞬态电流在预设的瞬态电流范围内,则测试所述集成电路的静态电流;
判断测试的静态电流是否在预设的静态电流范围内。
若是,则判定所述集成电路中没有硬件木马。
若否,则判定所述集成电路中含有硬件木马。
以下所述是本发明的基于测试向量的硬件木马检测系统第二实施方式。
本实施方式的所述基于测试向量的硬件木马检测系统与第一实施方式的区别在于:节点选取模块200还可用于:
根据各电路节点的覆盖率,选取覆盖率低于覆盖率阈值的电路节点为第一节点集合。
根据各电路节点的静态翻转概率,从所述第一节点集合中选取静态翻转概率低于静态翻转概率阈值的电路节点为第二节点集合。
根据各电路节点的动态翻转次数,计算所述第二节点集合中各节点的动态翻转概率,并从所述第二节点集合中选取动态翻转概率低于动态翻转概率阈值的电路节点为第三节点集合。
根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为候选木马节点。
本实施方式,可快速准确的获得被植入硬件木马可能性较高的电路节点,进而选取更合适的最终测试向量,提高木马测试的精确度。
优选地,所述覆盖率阈值可为0,即选取未被覆盖的电路节点。所述静态翻转概率阈值为3x10-8,所述动态翻转概率阈值为0.0058。
进一步地,节点值固定不变优选地为节点值固定为0或节点值固定为1。
在一个实施例中,节点选取模块200还可进一步用于:
根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为第四节点集合。
获取所述第四节点集合中各电路节点的扇出。
选取所述第四节点集合中电路节点的扇出处于预设的木马扇出范围的电路节点为候选木马节点。
本实施例,可快速准确的获得被植入硬件木马可能性更高的电路节点,进而选取更合适的最终测试向量,提高木马测试的精确度。
优选地,电路节点的扇出的大小和硬件木马危害性有关,扇出较大时,硬件木马激活后对电路的危害范围大,但硬件木马自身难以隐蔽,扇出小,硬件木马激活后对电路的危害范围小,但易于隐蔽。因此对于每个电路节点,根据电路的功能、关键模块、以及第四节点集合中的电路节点预设木马扇出范围,满足该范围的第四节点集合中的电路节点构成符合扇出要求的候选木马节点。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于测试向量的硬件木马检测方法,其特征在于,包括以下步骤:
获取集成电路中各电路节点的翻转信息和覆盖信息;
将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点;
获取各测试向量,分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息,每组候选木马节点包括至少两个候选木马节点;
若各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配,则选取对应的测试向量为对硬件木马检测的最终测试向量;
分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。
2.根据权利要求1所述的基于测试向量的硬件木马检测方法,其特征在于,获取集成电路中各电路节点的翻转信息和覆盖信息的步骤包括以下步骤:
通过所述集成电路的电路描述文件以及所述集成电路的预设设计规范,编写验证所述集成电路正常运行的测试验证平台,以对所述集成电路进行仿真和覆盖率计算,获得各电路节点的覆盖率为所述覆盖信息。
3.根据权利要求2所述的基于测试向量的硬件木马检测方法,其特征在于,获取集成电路中各电路节点的翻转信息和覆盖信息的步骤包括以下步骤:
根据所述集成电路输入端的预设静态翻转概率分布,计算各电路节点的静态翻转概率;
获取测试向量,并将获取的测试向量施加到所述集成电路的输入端,对所述集成电路进行仿真,获取各电路节点的动态翻转次数;
通过预设的仿真算法,从所述集成电路的电路描述文件中获取各电路节点的节点值;
所述翻转信息包括所述静态翻转概率、所述动态翻转次数和所述节点值。
4.根据权利要求3所述的基于测试向量的硬件木马检测方法,其特征在于,将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点的步骤包括以下步骤:
根据各电路节点的覆盖率,选取覆盖率低于覆盖率阈值的电路节点为第一节点集合;
根据各电路节点的静态翻转概率,从所述第一节点集合中选取静态翻转概率低于静态翻转概率阈值的电路节点为第二节点集合;
根据各电路节点的动态翻转次数,计算所述第二节点集合中各节点的动态翻转概率,并从所述第二节点集合中选取动态翻转概率低于动态翻转概率阈值的电路节点为第三节点集合;
根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为候选木马节点。
5.根据权利要求4所述的基于测试向量的硬件木马检测方法,其特征在于,根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为候选木马节点的步骤还包括以下步骤:
根据各电路节点的节点值,从所述第三节点集合中选取节点值固定不变的电路节点之外的电路节点为第四节点集合;
获取所述第四节点集合中各电路节点的扇出;
选取所述第四节点集合中电路节点的扇出处于预设的木马扇出范围的电路节点为候选木马节点。
6.根据权利要求1所述的基于测试向量的硬件木马检测方法,其特征在于,获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息的步骤包括以下步骤:
获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转次数及所述集成电路的所有电路节点的翻转次数的总和;
对各候选木马节点进行分组,生成各组候选木马节点;
根据各候选木马节点的翻转次数及所述集成电路的所有电路节点的翻转次数的总和,计算各候选木马节点的翻转概率和各组候选木马节点的联合翻转概率。
7.根据权利要求6所述的基于测试向量的硬件木马检测方法,其特征在于,若各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配,则选取对应的测试向量为对硬件木马检测的最终测试向量的步骤包括以下步骤:
判断各候选木马节点的翻转概率是否均小于预设木马翻转概率阈值;
若是,则判断各组候选木马节点的联合翻转概率是否均小于预设木马组别联合翻转概率阈值;
若是,则选取对应的测试向量为对硬件木马检测的最终测试向量。
8.根据权利要求1至7中任意一项所述的基于测试向量的硬件木马检测方法,其特征在于,所述分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测的步骤包括以下步骤:
分别将各个所述最终测试向量施加到所述集成电路的输入端;
测试所述集成电路的输出端信号,若测试的输出端信号与预期输出信号不匹配,则判定所述集成电路中含有硬件木马。
9.根据权利要求8所述的基于测试向量的硬件木马检测方法,其特征在于,所述分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测的步骤还包括以下步骤:
若测试的输出端信号与预期输出信号匹配,则再测试所述集成电路的瞬态电流;
判断测试的瞬态电流是否在预设的瞬态电流范围内;
若否,则判定所述集成电路中含有硬件木马。
10.一种基于测试向量的硬件木马检测系统,其特征在于,包括:
信息获取模块,用于获取集成电路中各电路节点的翻转信息和覆盖信息;
节点选取模块,用于将翻转信息和覆盖信息分别满足预设低翻转条件和预设低覆盖条件的电路节点,选取为候选木马节点;
向量信息获取模块,用于获取各测试向量,并分别将各测试向量施加到所述集成电路的输入端对所述集成电路进行仿真,对应各测试向量获取各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息,每组候选木马节点包括至少两个候选木马节点;
测试向量选取模块,用于在各候选木马节点的翻转信息和各组候选木马节点的联合翻转信息分别与预设木马翻转信息和预设木马联合翻转信息匹配时,选取对应的测试向量为对硬件木马检测的最终测试向量;
木马检测模块,用于分别将各个所述最终测试向量施加到所述集成电路的输入端,对所述集成电路进行木马检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410443589.2A CN104215895B (zh) | 2014-09-02 | 2014-09-02 | 基于测试向量的硬件木马检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410443589.2A CN104215895B (zh) | 2014-09-02 | 2014-09-02 | 基于测试向量的硬件木马检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104215895A CN104215895A (zh) | 2014-12-17 |
CN104215895B true CN104215895B (zh) | 2017-02-15 |
Family
ID=52097597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410443589.2A Active CN104215895B (zh) | 2014-09-02 | 2014-09-02 | 基于测试向量的硬件木马检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104215895B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104635144A (zh) * | 2015-03-02 | 2015-05-20 | 中国电子科技集团公司第五十八研究所 | 一种不依赖基准曲线的硬件木马检测方法 |
CN104615949B (zh) * | 2015-03-02 | 2017-08-25 | 中国电子科技集团公司第五十八研究所 | 基于电源隔离的提高硬件木马检测分辨率的电路设计方法及对硬件木马的检测方法 |
CN104849648B (zh) * | 2015-05-26 | 2017-11-07 | 大连理工大学 | 一种提高木马活性的测试向量生成方法 |
CN104850804B (zh) * | 2015-05-28 | 2018-01-12 | 清华大学 | 基于电路特征分析的硬件木马检测方法 |
CN105046153B (zh) * | 2015-07-31 | 2018-06-15 | 中国人民解放军国防科学技术大学 | 基于少态点分析的硬件木马检测方法 |
CN105738795B (zh) * | 2016-02-26 | 2018-10-09 | 中国科学院计算技术研究所 | 一种用于硅后芯片验证的翻转覆盖率检测方法及装置 |
CN106778263A (zh) * | 2016-11-15 | 2017-05-31 | 天津大学 | 有效提高硬件木马激活概率的方法 |
CN106919839B (zh) * | 2017-03-01 | 2020-03-24 | 中国电子产品可靠性与环境试验研究所 | 基于静态功耗分析的硬件木马检测方法与系统及其电路 |
CN107016223B (zh) * | 2017-06-06 | 2020-07-10 | 宁波千里电子科技有限公司 | 一种抗硬件木马芯片设计方法及系统 |
CN107239620B (zh) * | 2017-06-06 | 2020-10-30 | 西南交通大学 | 一种抗硬件木马集成电路设计方法及系统 |
CN107478978A (zh) * | 2017-07-27 | 2017-12-15 | 天津大学 | 基于粒子群的硬件木马优化测试向量生成方法 |
CN108960621B (zh) * | 2018-06-27 | 2020-09-29 | 中南大学 | 一种盾构隧道施工下穿高铁桥梁的桥梁监测与评价方法 |
CN109063475A (zh) * | 2018-07-31 | 2018-12-21 | 西南交通大学 | 一种硬件木马的检测方法、设备及计算机存储介质 |
CN109557449B (zh) * | 2018-10-23 | 2020-04-03 | 中国科学院计算技术研究所 | 基于难测路径选择的集成电路检测方法和系统 |
CN110287735B (zh) * | 2019-07-04 | 2021-05-04 | 电子科技大学 | 基于芯片网表特征的木马感染电路识别方法 |
CN112685800A (zh) * | 2019-10-17 | 2021-04-20 | 北京大学 | 一种基于时间窗自比较的硬件木马检测方法 |
CN111143847B (zh) * | 2019-12-30 | 2023-04-21 | 华南理工大学 | 一种基于概率的轻量的数据包篡改木马检测方法 |
CN113688435B (zh) * | 2020-05-19 | 2024-03-08 | 天津大学 | 一种基于mux环形振荡器的硬件木马检测方法 |
CN112231776B (zh) * | 2020-10-16 | 2022-12-02 | 西安电子科技大学 | 基于多参数旁路分析的集成电路硬件木马检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509120A (en) * | 1993-11-30 | 1996-04-16 | International Business Machines Corporation | Method and system for detecting computer viruses during power on self test |
CN102854454A (zh) * | 2012-08-23 | 2013-01-02 | 天津大学 | 在集成电路测试中用于缩短硬件木马的验证时间的方法 |
CN103679008A (zh) * | 2012-09-03 | 2014-03-26 | 江苏东大集成电路系统工程技术有限公司 | 一种高效的安全芯片功耗攻击测试方法 |
CN103954904A (zh) * | 2014-04-28 | 2014-07-30 | 工业和信息化部电子第五研究所 | 硬件木马测试系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108933B2 (en) * | 2008-10-21 | 2012-01-31 | Lookout, Inc. | System and method for attack and malware prevention |
-
2014
- 2014-09-02 CN CN201410443589.2A patent/CN104215895B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509120A (en) * | 1993-11-30 | 1996-04-16 | International Business Machines Corporation | Method and system for detecting computer viruses during power on self test |
CN102854454A (zh) * | 2012-08-23 | 2013-01-02 | 天津大学 | 在集成电路测试中用于缩短硬件木马的验证时间的方法 |
CN103679008A (zh) * | 2012-09-03 | 2014-03-26 | 江苏东大集成电路系统工程技术有限公司 | 一种高效的安全芯片功耗攻击测试方法 |
CN103954904A (zh) * | 2014-04-28 | 2014-07-30 | 工业和信息化部电子第五研究所 | 硬件木马测试系统 |
Non-Patent Citations (3)
Title |
---|
硬件木马技术研究综述;牛小鹏 等;《信息工程大学学报》;20121231;第13卷(第6期);第740-748页 * |
硬件木马检测与防护;倪林 等;《数字通信》;20140225;第41卷(第1期);第59-63,68页 * |
硬件木马综述;刘华锋 等;《微电子学》;20111031;第41卷(第5期);第709-713页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104215895A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104215895B (zh) | 基于测试向量的硬件木马检测方法及系统 | |
Xiao et al. | BISA: Built-in self-authentication for preventing hardware Trojan insertion | |
US10397251B2 (en) | System and method for securing an electronic circuit | |
CN104239616A (zh) | 集成电路的设计方法及硬件木马检测方法 | |
CN110414277B (zh) | 基于多特征参数的门级硬件木马检测方法 | |
CN104215894A (zh) | 集成电路硬件木马检测方法和系统 | |
CN103884980A (zh) | 基于电源电流的硬件木马检测方法和系统 | |
CN103926522B (zh) | 基于电压进行硬件木马检测和定位的方法和系统 | |
CN105046153B (zh) | 基于少态点分析的硬件木马检测方法 | |
CN107180190A (zh) | 一种基于混合特征的Android恶意软件检测方法及系统 | |
Nguyen et al. | A novel golden-chip-free clustering technique using backscattering side channel for hardware trojan detection | |
CN103473416B (zh) | 蛋白质相互作用的模型建立方法和装置 | |
US6587815B1 (en) | Windowing scheme for analyzing noise from multiple sources | |
CN109740348A (zh) | 一种基于机器学习的硬件木马定位方法 | |
CN109657461A (zh) | 基于梯度提升算法的rtl硬件木马检测方法 | |
Shen et al. | Lmdet: A “naturalness” statistical method for hardware trojan detection | |
CN108333501A (zh) | 硬件木马的旁路检测方法和装置、仿真验证方法和装置 | |
CN110988652A (zh) | 一种回收芯片检测方法及其检测电路 | |
CN112380534B (zh) | 一种基于电路结构分析的硬件木马检测方法 | |
Gururajapathy et al. | Support vector classification and regression for fault location in distribution system using voltage sag profile | |
CN110390215A (zh) | 一种基于提高激活概率的硬件木马检测方法及系统 | |
Cornell et al. | Combinational hardware Trojan detection using logic implications | |
Othman et al. | Online fault detection for power system using wavelet and PNN | |
CN104849648B (zh) | 一种提高木马活性的测试向量生成方法 | |
Mao et al. | FPGA‐based fault injection design for 16K‐point FFT processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |