基于静态功耗分析的硬件木马检测方法与系统及其电路与流程

文档序号:12803310阅读:213来源:国知局
基于静态功耗分析的硬件木马检测方法与系统及其电路与流程

本发明涉及木马检测技术领域,特别是涉及基于静态功耗分析的硬件木马检测方法与系统及其电路。



背景技术:

现代集成电路越来越依赖于专门的芯片制造代工厂来进行芯片的生产。由于受到上市时间、芯片工艺线维护成本等因素的影响,目前绝大多数集成电路设计公司都采取无晶圆厂的运作模式。这种设计和生产相分离的状况,给集成电路的安全带来了隐患,对于那些应用于国防、电信、电力等涉及国计民生重点领域的集成电路来说,尤其需要关注其安全威胁。在非受控的制造过程中,集成电路可能会被植入硬件木马——对手往芯片中加入的额外的恶意电路结构。一旦被激活,硬件木马可以泄露芯片内的敏感信息,或导致芯片的功能失效,从而造成严重的安全问题。

一般基于静态功耗分析的硬件木马检测方式主要可以分为两种,一种是通过测量芯片的动态功耗,对芯片中是否存在硬件木马进行判定,但是由于木马电路的隐蔽性,实际上要对其进行激活是十分困难的,检测难度大;另一种是把芯片当做一个整体来处理,每次测量的都是整个芯片的静态电流,但是由于硬件木马对静态电流的影响很可能并不显著,导致其检测灵敏度不高。

可见,传统的基于静态功耗分析的硬件木马检测方式存在检测难度大且灵敏度不高的缺陷。



技术实现要素:

基于此,有必要针对一般基于静态功耗分析的硬件木马检测方式存在检测难度大且灵敏度不高的问题,提供一种检测难度低且灵敏度高的基于静态功耗分析的硬件木马检测方法与系统及其电路。

一种基于静态功耗分析的硬件木马检测方法,包括步骤:

获取待测硬件内部节点的翻转概率,根据翻转概率确定待测硬件潜在的硬件木马植入位置;

根据潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分获得电路模块;

逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗;

当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,判定待测硬件存在木马。

一种基于静态功耗分析的硬件木马检测电路,包括测试模块和缓冲模块,测试模块分别与待测电路模块以及缓冲模块连接,测试模块的数量与待测电路模块的数量相同,缓冲模块的数量等于测试模块的数量减1,待测电路模块为根据待测硬件潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分之后获得的电路模块;

测试模块包括选择组件与开关组件,选择组件包括第一输入端、第二输入端、使能端以及输出端,开关组件包括控制端、第一端以及第二端;

选择组件的第一输入端接收外部脉冲信号,选择组件的使能端接收外部使能信号,选择组件的第二输入端与外部电源连接,选个组件的输出端分别与开关组件的控制端以及缓冲模块的输入端连接,开关组件的第一端与待测电路模块连接,开关组件的第二端接地,缓冲模块的输出端与下一个测试模块中选择组件的第一输入端连接。

一种基于静态功耗分析的硬件木马检测系统,包括:

位置确定模块,用于获取待测硬件内部节点的翻转概率,根据所述翻转概率确定待测硬件潜在的硬件木马植入位置;

电路划分模块,用于根据潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分获得电路模块;

木马测试模块,用于逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗;

检测判定模块,用于当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,判定待测硬件存在木马。

本发明基于静态功耗分析的硬件木马检测方法与系统及其电路,获取待测硬件内部节点的翻转概率,根据所述翻转概率确定待测硬件潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分获得电路模块,逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗,当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,判定待测硬件存在木马。整个过程中,分析的对象是芯片的静态功耗,无需对硬件木马电路进行激活,降低了实施基于静态功耗分析的硬件木马检测的难度,并且一次仅分析待测硬件的一部分(单个电路模块),可以加强硬件木马对静态功耗的影响,有效提高检测灵敏度。

附图说明

图1为本发明基于静态功耗分析的硬件木马检测方法其中一个实施例的流程示意图;

图2为本发明基于静态功耗分析的硬件木马检测电路其中一个实例的电路原理示意图;

图3为本发明基于静态功耗分析的硬件木马检测电路其中一个实施例的电路原理示意图;

图4本发明基于静态功耗分析的硬件木马检测系统其中一个实施例的结构示意图。

具体实施方式

如图1所示,一种基于静态功耗分析的硬件木马检测方法,包括步骤:

s200:获取待测硬件内部节点的翻转概率,根据翻转概率确定待测硬件潜在的硬件木马植入位置。

对手在植入硬件木马时,其植入位置的选择并不是随意的。为了满足硬件木马的隐蔽性要求,对手往往会利用电路内部那些翻转概率极低的节点来作为硬件木马的触发节点。因此,我们可以利用电路内部节点的翻转概率来确定潜在的硬件木马植入位置。具体来说,需要利用电路功能仿真工具软件(如vcs软件、modelsim软件等)对芯片的原始设计数据(如rtl代码或网表等)进行仿真,同时统计芯片内部各个电路节点处的翻转概率,最终把翻转概率低于某个阈值的电路节点都确定为潜在的硬件木马植入位置。非必要的,预设翻转概率阈值为e-10

s400:根据潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分获得电路模块。

待测硬件的原始设计数据可以基于待测硬件的铭牌、生产厂商提供的原始数据等方式获取。对待测硬件的原始设计数据进行模块划分,从而获得多个电路模块。更具体来说,划分的原则是使得在步骤s200中确定的潜在硬件木马植入位置尽可能数目均匀地分布在各个电路模块中,即确保划分后的各个电路模块中包含的潜在木马植入位置的数量相等。

s600:逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗。

对步骤s400划分后的每个电路模块进行硬件木马测试,在进行硬件木马测试过程中需要逐个进行,采集每个电路模块对应的静态功耗。在实际应用中,可以对每个电路模块嵌入片上测试电路来进行硬件木马测试。非必要的,可以间隔预设时间逐个对单个电路模块进行硬件木马测试,且单一时间内仅保持单个电路模块处于硬件木马测试状态。在这里间隔时间可以采用缓冲门来实现。

更具体来说,在实际应用中,可以对每个电路模块在其gnd信号与待测硬件的gnd信号之间嵌入片上的测试电路。具体如图2所示,图2展示了一个划分为3个电路模块的芯片,在其每个模块与gnd之间都嵌入了片上测试电路后的效果。嵌入的片上测试电路可以采用如图3所示。它由三部分组成,其包括2选1的选择器、缓冲门以及开关晶体管。a)开关晶体管为一个nmos管,当开关控制信号si为高电平时,此晶体管导通,使得电路模块原有的gnd信号能与芯片的gnd信号连通,从而该电路模块能被激活,可以正常工作(也会产生静态功耗),但当开关控制信号si为低电平时,此晶体管关闭,使得电路模块原有的gnd信号无法与芯片的gnd信号连通,导致该电路模块无法正常工作,从而不会产生静态功耗,如上,通过控制开关晶体管,可以实现对芯片内部各电路模块的分别激活,而且只有被激活的电路模块才会产生静态功耗。b)选择器电路完成二选一的功能,在通路选择信号td的控制下,可使得其输出信号si为两路输入信号中的一个。具体来说,当td为高电平时,选择器把输入信号sci传输到si处;当td为低电平时,选择器把输入信号vdd传输到si处,即此时si为高电平。c)缓冲门为一个偶数级反相器串联的电路结构(图3所示为两级反相器串联),它可以把sci处的脉冲信号进行一段时间的延迟,然后输出为sci+1。该片上测试电路的工作原理为(参考图2):当td管脚为低电平时,整个片上测试电路不起作用,芯片处于正常工作模式;当td管脚为高电平时,芯片退出正常工作模式,进入硬件木马测试模式。在硬件木马测试模式中,往sc管脚输入一个正脉冲信号,此时sc1=1,而sc2=sc3=0,因此整个芯片中只有模块1工作,并产生静态功耗;过了一段时间后,经过缓冲门的延迟,高电平信号被传输到sc2处,此时sc1=sc3=0,而sc2=1,因此整个芯片中只有模块2工作,并产生静态功耗;而后续的情况可依此类推。综上,一旦芯片进入了硬件木马测试模式,在某一个特定时刻,芯片中只有一个模块能产生静态功耗,这可以有效提高后续基于静态功耗分析的硬件木马检测的灵敏度。

s800:当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,判定待测硬件存在木马。

将步骤s600获得的每个电路模块静态功耗分别与其对应的静态功耗阈值比较,当存在电路模块对应的静态功耗超过其对应的静态功耗阈值时,判定当前待测硬件存在木马。具体来说,电路模块对应的静态功耗阈值可以采用获取预设数据以及实时获取方式获得,采用实时获取方式具体为通过晶体管级仿真工具软件对每个电路模块进行蒙特卡洛仿真,获取每个电路模块对应的静态功耗阈值。在实际应用中可以针对嵌入了片上测试电路后的待测硬件设计数据,利用晶体管级仿真工具软件(如hspice软件等)进行蒙特卡洛仿真,从而得到在不同工艺角、不同工艺扰动情况下各个电路模块的静态功耗值,这些静态功耗值中的最大和最小值,构成了各模块的静态功耗阈值。

本发明基于静态功耗分析的硬件木马检测方法,获取待测硬件内部节点的翻转概率,根据所述翻转概率确定待测硬件潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分获得电路模块,逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗,当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,判定待测硬件存在木马。整个过程中,分析的对象是芯片的静态功耗,无需对硬件木马电路进行激活,降低了实施基于静态功耗分析的硬件木马检测的难度,并且一次仅分析待测硬件的一部分(单个电路模块),可以加强硬件木马对静态功耗的影响,有效提高检测灵敏度。

另外,本发明还提供一种基于静态功耗分析的硬件木马检测电路,包括测试模块和缓冲模块,测试模块分别与待测电路模块以及缓冲模块连接,测试模块的数量与待测电路模块的数量相同,缓冲模块的数量等于测试模块的数量减1,待测电路模块为根据待测硬件潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分之后获得的电路模块;

测试模块包括选择组件与开关组件,选择组件包括第一输入端、第二输入端、使能端以及输出端,开关组件包括控制端、第一端以及第二端;

选择组件的第一输入端接收外部脉冲信号,选择组件的使能端接收外部使能信号,选择组件的第二输入端与外部电源连接,选个组件的输出端分别与开关组件的控制端以及缓冲模块的输入端连接,开关组件的第一端与待测电路模块连接,开关组件的第二端接地,缓冲模块的输出端与下一个测试模块中选择组件的第一输入端连接。

具体来说,本发明基于静态功耗分析的硬件木马检测电路中选择组件可以采用选择器,更进一步可以为2选1选择器,开关组件可以采用开关晶体管,缓冲模块可以采用缓冲门。下面将借助图2和图3对本发明基于静态功耗分析的硬件木马检测电路在不同实施例中的电路结构进行详细说明。

在图2中,待测电路模块的数量为3,本发明基于静态功耗分析的硬件木马检测电路中测试模块的数量为3,缓冲模块的数量2。在第一测试模块中,2选1选择器的第一输入端接收外部脉冲信号sc,选择器的使能端接收外部使能信号td,选择器的第二输入端与外部电源vdd连接,选择器的输出端分别与开关晶体管以及的控制端以及缓冲门的输入端连接,开关晶体管的第一端与待测电路模块连接,开关晶体管的第二端接地,缓冲门的输出端与下一个测试模块中的选择器的第一输入端连接,即延时输出控制信号至下一个测试模块中的选择器的第一输入端。

在实际工作过程中,当td管脚为低电平时,整个基于静态功耗分析的硬件木马检测电路不起作用,芯片(待测硬件)处于正常工作模式;当td管脚为高电平时,芯片退出正常工作模式,进入硬件木马测试模式。在硬件木马测试模式中,往sc管脚输入一个正脉冲信号,此时sc1=1,而sc2=sc3=0,因此整个芯片中只有模块1工作,并产生静态功耗;过了一段时间后,经过缓冲门的延迟,高电平信号被传输到sc2处,此时sc1=sc3=0,而sc2=1,因此整个芯片中只有模块2工作,并产生静态功耗;而后续的情况可依此类推。

更具来说,本发明基于静态功耗分析的硬件木马检测电路还可以采用如图3所示的电路结构,在图3中,缓冲模块可以采用一个偶数级反相器串联的电路结构。

在应用实例中,待测硬件为芯片,本发明基于静态功耗分析的硬件木马检测电路工作过程包括步骤:

步骤1:把芯片的td管脚设置为高电平,使得芯片进入硬件木马测试模式;

步骤2:通过芯片的sc管脚输入一个正脉冲信号;

步骤3:sc信号每次可激活一个电路模块;

步骤4:在芯片的gnd管脚上测量每个电路模块的静态功耗值;

步骤5:把各电路模块的静态功耗测量值与通过仿真获得的静态功耗阈值进行比较,如果测量值超出阈值,则表明芯片中存在硬件木马,否则表明芯片中不存在硬件木马。

如图4所示,一种基于静态功耗分析的硬件木马检测系统,包括:

位置确定模块200,用于获取待测硬件内部节点的翻转概率,根据所述翻转概率确定待测硬件潜在的硬件木马植入位置。

电路划分模块400,用于根据潜在的硬件木马植入位置,对待测硬件的原始设计数据进行模块划分获得电路模块。

木马测试模块600,用于逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗。

检测判定模块800,用于当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,判定待测硬件存在木马。

本发明基于静态功耗分析的硬件木马检测系统,位置确定模块200获取待测硬件内部节点的翻转概率,根据所述翻转概率确定待测硬件潜在的硬件木马植入位置,电路划分模块400对待测硬件的原始设计数据进行模块划分获得电路模块,木马测试模块600逐个对电路模块进行硬件木马测试,采集每个电路模块对应的静态功耗,当任意电路模块对应的静态功耗大于对应的静态功耗阈值时,检测判定模块800判定待测硬件存在木马。整个过程中,分析的对象是芯片的静态功耗,无需对硬件木马电路进行激活,降低了实施基于静态功耗分析的硬件木马检测的难度,并且一次仅分析待测硬件的一部分(单个电路模块),可以加强硬件木马对静态功耗的影响,有效提高检测灵敏度。

在其中一个实施例中,本发明基于静态功耗分析的硬件木马检测系统还包括:

阈值获取模块,用于通过晶体管级仿真工具软件对每个电路模块进行蒙特卡洛仿真,获取每个电路模块对应的静态功耗阈值。

在其中一个实施例中,木马测试模块600还用于间隔预设时间逐个对单个电路模块进行硬件木马测试,且单一时间内仅保持单个电路模块处于硬件木马测试状态。

在其中一个实施例中,位置确定模块200包括:

翻转概率获取单元,用于通过电路功能仿真软件对待测硬件的原始设计数据进行仿真,获取待测硬件内部节点的翻转概率;

位置确定单元,用于选取翻转概率小于预设翻转概率阈值对应的待测硬件内部节点为待测硬件潜在的硬件木马植入位置。

在其中一个实施例中,预设翻转概率阈值为e-10

整体来说,本发明基于静态功耗分析的硬件木马检测方法与系统具有如下有益效果。

一、无需激活硬件木马就能进行基于静态功耗分析的硬件木马检测

与一般的基于动态功耗分析的基于静态功耗分析的硬件木马检测技术相比,本发明基于静态功耗分析的硬件木马检测方法与系统采用的技术方案分析的对象是芯片的静态功耗,因此无需对硬件木马电路进行激活,从而降低了实施基于静态功耗分析的硬件木马检测的难度。

二、检测灵敏度高

与一般的基于静态功耗分析的基于静态功耗分析的硬件木马检测技术相比,本发明基于静态功耗分析的硬件木马检测方法与系统采用的技术方案首先确定潜在的硬件木马植入位置,进行电路划分;通过加入的片上测试结构,可实现对芯片各区域的分别激活,而未被激活的部分并不产生静态功耗。因此,本发明基于静态功耗分析的硬件木马检测方法与系统的技术方案避免了对芯片的静态功耗进行整体的分析,而是一次仅分析芯片的一部分,从而可以加强硬件木马对静态功耗的影响,有效提高检测灵敏度。

三、面积开销较低

采用的技术方案所嵌入的片上测试电路,其基本结构单元如图3所示,可以看到,其对每个模块所增加的面积仅为11个晶体管。与目前主流芯片普遍数千万门的面积相比,这部分增加的面积基本可忽略,因此面积开销较低。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1