买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种集成电路测试方法和系统_中国科学院计算技术研究所_201811234951.X 

申请/专利权人:中国科学院计算技术研究所

申请日:2018-10-23

公开(公告)日:2021-06-08

公开(公告)号:CN109583240B

主分类号:G06F21/76(20130101)

分类号:G06F21/76(20130101)

优先权:

专利状态码:有效-授权

法律状态:2021.06.08#授权;2019.04.30#实质审查的生效;2019.04.05#公开

摘要:本发明涉及一种集成电路测试方法和系统,包括:获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。

主权项:1.一种集成电路测试方法,其特征在于,包括:步骤1、获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;步骤2、根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;步骤3、判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片;其中步骤1具体包括:步骤11、随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;步骤12、针对未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;步骤13、若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该步骤12。

全文数据:一种集成电路测试方法和系统技术领域本发明涉及信息安全、集成电路领域,属于一种硬件木马检测方法,特别涉及一种面向小时延累积异常的集成电路测试方法和系统。背景技术设计和制造服务外包的新趋势、对第三方知识产权IP核的依赖以及电子设计自动化工具,使得集成电路在其生命周期的不同阶段越来越多地容易受到硬件木马的攻击。当电子元器件IC生命周期中涉及不可信的组件或人员时,其中的多个阶段都可能存在恶意的设计修改,这对恶意修改提出了一系列新的信任验证挑战。特别地,这也带来了制造后测试期间对不可信的制造商产生的恶意设计修改进行可靠性检测的需求。同时,也提出了对从不可信的第三方供应商中获取的IP核进行信任验证的需求。针对硬件木马的检测,有两种主要方法:一种是硅前硬件木马检测,主要针对集成电路设计过程中的代码,包括RTL级、网表级和版图级等,发现隐藏在其中的恶意代码;另一种是硅后硬件木马检测,主要针对制造后的集成电路,涵盖FPGA、三维集成电路等,发现隐藏于其中的恶意电路。硅后硬件木马检测方法包括破坏性和非破坏性两种,其中非破坏性硅后检测方法又分为在线检测和离线检测两类。离线检测方法一般通过比较待测芯片与参考芯片实现,若待测芯片的某种特征,如功耗、输出响应等,与参考芯片相差甚远,则认为待测芯片可能存在硅后硬件木马。理想的参考芯片特征,又称黄金模型,应该是待测芯片在无硅后硬件木马时的特征。测试时硅后硬件木马检测方法主要有两种:激活检测法和侧信道检测法。激活检测法侧重于测试向量生成和激活木马电路并在原始输出观察其对负载的恶意影响。这种方法在方法学上与传统的固定型故障stuck-at-fault测试类似,然而,木马模型与故障模型却有显著差异。制造缺陷通常被建模为固定型故障,其内部节点被固定在特定的逻辑值。测试这些故障的困难在于激励所有内部节点为所有可能的逻辑值,并在一些原始输出观察影响。难以激励或难以观察的节点称为低可控性节点和低可观察性节点。随着门数量的增加,难以测试的节点数量也随之增加,使得测试所有节点以达到全面的故障覆盖成为指数级困难的任务。另一方面,木马被建模为一个巧妙插入的门或一组门,只在罕见的条件下才被触发,表现出一些恶意功能。特定类型和大小的木马电路的数量是电路节点数量的指数函数,对于需要多次罕见事件激活的时序木马,可能无法在测试期间观察到木马造成的恶意功能。最后,因为可能的木马数量是巨大的,用于估计故障检测覆盖率的传统技术不能很好的适用于木马检测。现有技术把很少激活的线网作为木马触发器,同时把可观察性低的线网作为有效载荷,生成了一组激活这些线网的测试向量,并将该测试向量与传统的ATPG测试向量相结合来激活木马。另一方面,侧信道分析方法是基于这样的事实:IC中的任何恶意插入应该反映在某些侧信道参数中,如漏电流或静态电源电流IDDQ、动态功率轨迹IDDT、路径延时特性、开关活动导致的电磁辐射EM或这些参数的组合。例如,如果原始电路具有门,消耗静态电流,则为实现木马在电路中插入的个额外的门将使电流增加,通过在正常条件下测量电源电可以观察。通常认为这些方法的主要缺点是容易受到工艺和环境噪声的影响,甚至由于测量设置引入的噪声也会干扰分析,导致对电路中是否存在木马的错误推断。因此,木马检测问题被看成是一个统计事件,目标是最大化检测概率,同时最小化误报率。由于木马电路是通过修改原始设计的版图而在代工厂被插入的,通常认为木马电路与原始设计相比尺寸较小,认为攻击者是利用版图中的空白空间插入少量额外的门,并重新布线电路来实现恶意目的。然而,与逻辑测试方法相比,侧信道方法具有的主要优势是无需激活木马就能检测到它。因此,它们对于检测那些不会导致恶意功能而会通过侧信道泄露秘密信息的被动负载木马非常有效。如果工艺噪声可以校准,环境和测量噪声可以消除,则木马电路的存在肯定会反映在测量参数中。基于路径延迟的硬件木马,是近来新出现的一种硬件木马植入方法。该方法通过修改电路中一条完整路径上的逻辑门的时延,使得在特定输入跳变情况下,电路输出结果出错,进而达到攻击者特定的目的。已有硬件木马检测方法主要针对的是基于逻辑的硬件木马,即硬件木马的激活条件是特定的信号线满足特定的逻辑值。然而,在基于路径延迟的硬件木马中,其触发条件是某个跳变能够通过特定的路径传播,而这条路径上的每个逻辑门都有一定细微的时延变化,造成最终这条电路累积的时延变化足以构成硬件木马的恶意行为。由于硬件木马的行为机理完全不相同,因此已有检测方法难以检测此类硬件木马,为此,我们需要一种能够集成电路难测路径的选择方法,通过对难测路径的测试,来发现这类基于路径延迟的硬件木马,或者其它类似的时延累积异常。发明内容为了解决上述技术问题,本发明提出了一种面向小时延累积异常的集成电路测试方法。包括:根据输出跳变情况为设计电路生成测试向量,并在不同的时钟频率下对电路进行模拟测试,记录错误率;在相同的时钟频率、相同的测试向量下对待测芯片进行测试,记录错误率;比较设计电路和待测芯片的错误率,判断是否存在小时延累积异常。本发明能够有效检测出芯片中是否存在一些具有小时延累积异常的路径,这些路径可能导致芯片功能错误。具体地说,本发明公开了一种集成电路测试方法,其中包括:步骤1、获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;步骤2、根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;步骤3、判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。该集成电路测试方法,其中该设计电路包括:电路网表、电路中连线的标称时延。该集成电路测试方法,其中该步骤1包括:步骤11、随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;步骤12、针对未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;步骤13、若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该步骤12。该集成电路测试方法,其中该预设条件包括制造该设计电路的工艺偏差及该设计电路运行的时钟频率。该集成电路测试方法,其中该待测芯片与该设计电路的该电路网表相同。该集成电路测试方法,其中所有该测试向量输入至该设计电路后,该设计电路中的每一个逻辑门至少产生一次跳变。本发明还公开了一种集成电路测试系统,其中包括:错误率统计模块,获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;判断模块,用于判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。该集成电路测试系统,其中该设计电路包括:电路网表、电路中连线的标称时延;且该错误率统计模块包括:随机模块,用于随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;选择模块,用于选择未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;判断模块,若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该选择模块。该集成电路测试系统,其中该预设条件包括制造该设计电路的工艺偏差及该设计电路运行的时钟频率;且所有该测试向量输入至该设计电路后,该设计电路中的每一个逻辑门至少产生一次跳变。该集成电路测试系统,其中该待测芯片与该设计电路的该电路网表相同。由此本发明可实现对基于路径延迟的硬件木马进行检测。附图说明图1为本发明的结构设计框架图;图2为本发明中设计电路模拟检测实例示意图;图3为本发明中被植入硬件木马电路芯片的测试实例示意图。具体实施方式发明人在基于路径延迟的硬件木马进行研究时,对该木马的原理进行了深入分析,发现了导致这种硬件木马难以被检测的两个重要因素:1增加路径延迟而导致输入跳变后电路输出出错的硬件木马,使得硬件木马可能的潜在激活条件更加广大,更难以在实际工作中或随机向量测试中被检测出来。2基于路径延迟的硬件木马会为路径上各个逻辑门增加一定的小时延,这些小时延只有积累起来才会导致最终的输出错误,若是只选择了一部分逻辑门,则积累的小时延并不会造成电路输出错误,这同样也加大了检测的难度。经过对上述两个原因的深入研究,本发明提出了克服这两个因素的全新芯片检测方法。针对第一个原因,根据输出信号线的跳变情况生成测试向量。针对第二个问题,根据电路运行频率,选择并应用其他适当的频率,改变时钟周期,进而导致对逻辑门时延的修改更容易被检测出来。其中包括:步骤1、获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;步骤2、根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;步骤3、判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。该集成电路测试方法,其中该设计电路包括:电路网表、电路中连线的标称时延。该集成电路测试方法,其中该步骤1包括:步骤11、随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;步骤12、针对未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;步骤13、若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该步骤12。该集成电路测试方法,其中该预设条件包括制造该设计电路的工艺偏差及该设计电路运行的时钟频率。该集成电路测试方法,其中该待测芯片与该设计电路的该电路网表相同。该集成电路测试方法,其中所有该测试向量输入至该设计电路后,该设计电路中的每一个逻辑门至少产生一次跳变。具体来说本发明针对基于小时延累积异常的硬件木马电路,提出了一种芯片检测方法,步骤如下:A、对于设计电路,生成尽可能覆盖更多路径的多个测试向量,在不同的时钟频率下,在不同的工艺偏差下,模拟电路运行的错误率,“测试向量”是本领域惯用技术词汇,一个测试向量由若干0、1比特组成,输入给电路后,电路输出包含若干0、1比特的响应。例如,在图2中,I1~I12是12个输入,所以一个测试向量由12个0、1比特组成,比如010101010101就是一个测试向量,其中:A1、该设计电路包括设计人员所设计的电路网表,及设计软件给出的电路逻辑门及连线的标称时延,电路网表中包含了电路逻辑门和逻辑门之间的连接关系,从电路网表中可以得出电路输入是什么、输出是什么,每根连线是什么逻辑门的输入,又是什么逻辑门的输出。例如,电路网表是能够描述图2中电路的输入、输出、连线和逻辑门关系的文件;A2、尽可能覆盖更多路径的测试向量生成步骤包括:A21、随机生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门,由于电路一次只能输入一个测试向量,因此是将该测试向量对中的一个测试向量先输入,之后再输入另外一个测试向量,如果输入第一个测试向量的时候某个连线的逻辑值是0,然后输入另外一个测试向量的时候,这个连线的逻辑值变成了1,那么就发生了一个跳变;A22、针对未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;A23、若逻辑门的信号跳变次数达到检测人员定义的阈值,则测试向量停止生成,否则继续执行A22步骤。A3、不同时钟频率的选择取决于芯片测试仪能够支持的时钟频率;A4、工艺偏差的分布由检测人员定义,例如高斯分布等,不同的工艺偏差将使得设计电路存在不同的时延;A5、使用电路模拟软件,输入所生成的测试向量,对特定时钟频率下特定工艺偏差下的电路运行进行模拟,记录电路运行结果出错的比重,即错误率。B、对于待测芯片,使用特定的测试向量,在特定的时钟频率下,检测电路运行的错误率,其中:B1、待测芯片指检测人员拟检测的芯片,芯片的电路网表即步骤A1所述电路网表,检测人员需要检测在生产制造过程中,芯片中是否被植入额外的电路;B2、特定的测试向量即步骤A2生成的测试向量;B3、特定的时钟频率即步骤A3选取的时钟频率;B4、使用芯片测试仪,检测电路运行的错误率,该错误率即电路运行结果出错的比重。C、比较步骤A和步骤B所得错误率,若步骤B所得错误率比步骤A所得错误率高出一定阈值,则认为芯片中疑似存在硬件木马电路,其中:C1、在每一个时钟频率下都对错误率进行比较;C2、在任意一个时钟频率下,若步骤B所得错误率比步骤A所得错误率高出Δ,则认为芯片中疑似存在硬件木马电路,此处Δ由检测人员根据需求定义。图1示出了本发明的结构设计框架图,该硬件木马检测方法包括下列三个主要步骤:步骤1:对设计电路的模拟检测,根据电路网表,及设计软件给出的电路逻辑门及连线的标称时延,对电路进行模拟。进一步地,根据输出信号的跳变情况,生成适当数量的测试向量。根据标准频率选取适当的频率对电路进行模拟测试,记录错误率。进一步地,为便于理解,下面以图2所示的电路为例进行说明。为便于说明,忽略信号线的时延,时钟频率由时钟周期描述,当路径时延超过时钟周期时会导致结果出错。每个与门的时延为2.1ns,原始时钟周期为12ns。电路的工艺偏差服从均值为0,标准差为0.01的正态分布,在图2中标注出。生成随机测试向量对,输入I1到I12的值,由011111111111跳变为111111111111,在该向量对下,计算并记录电路中逻辑门跳变情况。此时为使电路中A2逻辑门发生跳变,生成测试向量对输入I1到I12的值发生110111111111-111111111111的跳变。同理,生成其余四个测试向量对使得所有逻辑门最少发生一次跳变。所生成的六个测试向量对如下:1号向量对:011111111111-1111111111112号向量对:110111111111-1111111111113号向量对:111101111111-1111111111114号向量对:111111011111-1111111111115号向量对:111111110111-1111111111116号向量对:111111111101-111111111111电路的输出010203040506变化情况为:1号向量对输出:000000-1111112号向量对输出:000000-1111113号向量对输出:000010-1111114号向量对输出:000000-1111115号向量对输出:000000-1111116号向量对输出:000000-111111进一步地,分别在时钟周期为12ns、11ns、10ns、9ns下对电路进行模拟,输入为上述六个测试向量对,记录错误率,如表1所示。表1:步骤2:对待测芯片的检测,根据在对设计电路模拟检测中所选取的测试向量、时钟频率等,对待测电路进行检测,记录错误率。进一步地,为便于理解,下面以图3所示的电路为例进行说明。该待测芯片被植入了基于路径延迟的硬件木马,图3中被修改了时延的逻辑门为A1、B1、C1、D1,基础时延变为3.1ns。所植入的硬件木马实现的效果为在正常工作时钟频率下,当输入I1到I12的值从011111111111跳变为111111111111时,输出结果出错,O1到O6的值为011111而不是111111。进一步地,分别在时钟周期为12ns、11ns、10ns、9ns下对电路进行模拟,输入为上述六个测试向量对,记录错误率,如表2所示。其中错误率指的是在应用向量对后输出结果出错的输出个数与所有向量对产生的输出个数的比值。表2:12ns11ns10ns9ns1号向量对错误个数12462号向量对错误个数00013号向量对错误个数00124号向量对错误个数01245号向量对错误个数00016号向量对错误个数0012总计错误个数13816错误率1363368361636步骤3:错误率比较,在每个时钟频率下对错误率进行比较,进一步判断基于路径延迟的硬件木马是否存在。进一步地,为便于理解,以步骤1和步骤2的示例作比较,假定所选取的Δ为0.2。由表2可以看出随着时钟频率增加,时钟周期减少,待测芯片的错误率与设计电路模拟结果之间的差距越来越大。在时钟周期为10ns和9ns时,错误率之差大于Δ,因此可以判断该待测芯片中疑似存在基于路径延迟的硬件木马。以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。本发明还公开了一种集成电路测试系统,其中包括:错误率统计模块,获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;判断模块,用于判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。该集成电路测试系统,其中该设计电路包括:电路网表、电路中连线的标称时延;且该错误率统计模块包括:随机模块,用于随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;选择模块,用于选择未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;判断模块,若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该选择模块。该集成电路测试系统,其中该预设条件包括制造该设计电路的工艺偏差及该设计电路运行的时钟频率;且所有该测试向量输入至该设计电路后,该设计电路中的每一个逻辑门至少产生一次跳变。该集成电路测试系统,其中该待测芯片与该设计电路的该电路网表相同。

权利要求:1.一种集成电路测试方法,其特征在于,包括:步骤1、获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;步骤2、根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;步骤3、判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。2.如权利要求1所述的集成电路测试方法,其特征在于,该设计电路包括:电路网表、电路中连线的标称时延。3.如权利要求1所述的集成电路测试方法,其特征在于,该步骤1包括:步骤11、随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;步骤12、针对未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;步骤13、若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该步骤12。4.如权利要求1所述的集成电路测试方法,其特征在于,该预设条件包括制造该设计电路的工艺偏差及该设计电路运行的时钟频率。5.如权利要求2所述的集成电路测试方法,其特征在于,该待测芯片与该设计电路的该电路网表相同。6.如权利要求1所述的集成电路测试方法,其特征在于,所有该测试向量输入至该设计电路后,该设计电路中的每一个逻辑门至少产生一次跳变。7.一种集成电路测试系统,其特征在于,包括:错误率统计模块,获取设计电路,并根据该设计电路具有的路径,生成调用该路径的多条测试向量,将该测试向量输入至该设计电路,得到该设计电路在预设条件下电路运行的第一错误率;根据该设计电路,得到待测芯片,将该测试向量输入至该待测芯片,得到该测试向量在该预设条件下电路运行的第二错误率;判断模块,用于判断该第二错误率是否大于该第一错误率一定阈值,若是,则判定该待测芯片存在硬件木马电路,否则认为该待测芯片为合格芯片。8.如权利要求7所述的集成电路测试系统,其特征在于,该设计电路包括:电路网表、电路中连线的标称时延;且该错误率统计模块包括:随机模块,用于随机生成一对该测试向量,分析并记录该设计电路在该测试向量对的作用下发生信号跳变的逻辑门;选择模块,用于选择未曾发生信号跳变、或信号跳变次数较少的逻辑门,生成一对测试向量,分析并记录在该测试向量对的作用下发生信号跳变的逻辑门;判断模块,若逻辑门的信号跳变次数达到预设阈值,则测试向量停止生成,否则继续执行该选择模块。9.如权利要求1所述的集成电路测试系统,其特征在于,该预设条件包括制造该设计电路的工艺偏差及该设计电路运行的时钟频率;且所有该测试向量输入至该设计电路后,该设计电路中的每一个逻辑门至少产生一次跳变。10.如权利要求8所述的集成电路测试系统,其特征在于,该待测芯片与该设计电路的该电路网表相同。

百度查询: 中国科学院计算技术研究所 一种集成电路测试方法和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。