CN104239616B - 集成电路的设计方法及硬件木马检测方法 - Google Patents

集成电路的设计方法及硬件木马检测方法 Download PDF

Info

Publication number
CN104239616B
CN104239616B CN201410443064.9A CN201410443064A CN104239616B CN 104239616 B CN104239616 B CN 104239616B CN 201410443064 A CN201410443064 A CN 201410443064A CN 104239616 B CN104239616 B CN 104239616B
Authority
CN
China
Prior art keywords
probability
circuit
design
integrated circuit
code
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
Application number
CN201410443064.9A
Other languages
English (en)
Other versions
CN104239616A (zh
Inventor
王力纬
侯波
何春华
恩云飞
谢少锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fifth Electronics Research Institute of Ministry of Industry and Information Technology
Original Assignee
Fifth Electronics Research Institute of Ministry of Industry and Information Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fifth Electronics Research Institute of Ministry of Industry and Information Technology filed Critical Fifth Electronics Research Institute of Ministry of Industry and Information Technology
Priority to CN201410443064.9A priority Critical patent/CN104239616B/zh
Publication of CN104239616A publication Critical patent/CN104239616A/zh
Application granted granted Critical
Publication of CN104239616B publication Critical patent/CN104239616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

一种集成电路的设计方法及硬件木马检测方法,其中设计方法包括:获取初始的集成电路设计的寄存器传输级的代码;根据代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置;对初始的集成电路设计进行仿真,获得仿真电路;计算仿真电路中节点位置的互连线的逻辑值概率,根据逻辑值概率对节点位置的互连线进行可测性电路的插入设计;将仿真电路中各可测性电路顺序连接形成扫描链,根据具有扫描链的仿真电路获得新的集成电路设计,其中,扫描链用于根据输入的测试信号和输出结果检测出集成电路的硬件木马位置。本发明方案设计出的集成电路可查找出硬件木马位置,并节约成本。

Description

集成电路的设计方法及硬件木马检测方法
技术领域
本发明涉及集成电路技术领域,特别是涉及一种集成电路的设计方法及硬件木马检测方法。
背景技术
随着集成电路技术的发展和信息系统的智能化,集成电路信息安全逐渐成为关注重点。目前的先进集成电路的设计与制造过程中涉及诸多非受控环节,比如:使用大量第三方IP核、制造过程外包给专业的芯片代工厂,以及使用第三方供应商提供的EDA设计软件等。这些现状极大地削弱了IC设计方对于设计和制造过程的控制力,使得集成电路在设计或制造阶段越来越容易遭受对手的破坏行为和恶意修改。可以往芯片中加入一些额外的恶意电路(也被称为“硬件木马”),这些硬件木马一旦被触发后,可影响芯片的功能、降低其性能、向对手泄露芯片上处理的秘密信息,甚至可以摧毁或破坏系统,这给那些应用于金融基础设施、交通运输等安全敏感领域的芯片带来了极大的安全隐患。
由于硬件木马具有隐蔽性高、实现灵活性大等特点,导致传统的设计阶段的验证技术和制造阶段的测试技术都不能直接被用于硬件木马检测,这使得硬件木马的检测极其困难。
目前采用可重新配置的逻辑资源实现了一种能监测集成电路内部操作并检测非预期/非法行为的电路结构。该技术方案需要往原始集成电路中插入“信号探针网络”、“安全监测器”和“安全和控制处理器”这三个电路模块。“信号探针网络”可以监测内部信号,并把这些信号传输给“安全监测器”。“安全监测器”是一个可编程的事件引擎,它被配置后可以实现一个有限状态机的功能,从而可以检查用户预先定义的电流信号的行为特征。而“安全和控制处理器”负责配置“信号探针网络”和“安全监测器”,确保它们能对合适的信号开展监测和检查。该技术方案中的所有配置信息都加密存储在芯片上的闪存区域。通过插入上述电路模块,该方案可检测硬件木马的攻击。
该技术方案虽然可以通过“信号探针网络”和“安全监测器”这两个电路模块来发现电路运行阶段中硬件木马的攻击行为,但却无法提供有关硬件木马在电路中哪个位置的相关信息,因此无法对硬件木马进行定位。
发明内容
基于此,有必要针对无法对硬件木马进行定位的问题,提供一种集成电路的设计方法及硬件木马检测方法。
一种集成电路的设计方法,包括:
获取初始的集成电路设计的寄存器传输级的代码;
根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置;
对所述初始的集成电路设计进行仿真,获得仿真电路;
计算所述仿真电路中所述节点位置的互连线的逻辑值概率,根据所述逻辑值概率对所述节点位置的互连线进行可测性电路的插入设计,所述可测性电路包括虚拟扫描寄存器和逻辑门,该互连线和虚拟扫描寄存器分别与逻辑门连接;
将仿真电路中各可测性电路顺序连接形成扫描链,根据具有扫描链的仿真电路获得新的集成电路设计,其中,所述扫描链用于根据输入的测试信号和输出结果检测出集成电路的硬件木马位置。
上述集成电路的设计方法,通过获取初始的集成电路设计的寄存器传输级的代码,并根据代码先确定潜在的硬件木马植入的节点位置,并对初始的集成电路设计进行仿真,对仿真电路进行可测性电路的插入设计,并形成扫描链,获得新的集成电路设计。通过这种方式,把对木马的检测从集成电路制造后的测试阶段提前到了制造前的设计阶段,可以提高木马检测的分辨率。可以根据新的集成电路设计制造集成电路,仅针对集成电路设计的潜在硬件木马植入的节点位置插入可测性电路结构,因此其面积开销较小,而且由于把集成电路内部所有可测性电路结构连接起来形成扫描链,因此可依据扫描链的测试反馈结构判断出硬件木马在电路中的大致位置,从而对硬件木马进行了定位。
一种集成电路的硬件木马检测方法,包括:
向根据上述的集成电路的设计方法制造的集成电路的扫描链的输入端输入测试信号,获取所述扫描链的输出端的输出结果;
将所述输出结果和预存的测试信号对应的测试结果进行对比,当结果不匹配时,根据所述输出结果确定硬件木马存在位置。
上述集成电路的硬件木马检测方法,仅针对制造得到的集成电路的潜在硬件木马植入的节点位置插入可测性电路结构,其占用面积比现有技术中的三个电路模块开销小,降低了检测硬件木马的成本。而且由于把集成电路内部所有可测性电路结构连接起来形成扫描链,因此可依据扫描链的测试反馈结构判断出硬件木马在电路中的大致位置,从而对硬件木马进行了定位。
附图说明
图1为本发明集成电路的设计方法实施例的流程示意图;
图2为本发明实施例中确认潜在的硬件木马植入的节点位置的流程示意图;
图3为本发明应用实例中数据图的示意图;
图4为本发明应用实例中扫描链的示意图;
图5为本发明集成电路的硬件木马检测方法实施例的流程示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细说明,但本发明的实施方式不限于此。
如图1所示,为本发明集成电路的设计方法实施例的流程示意图,包括步骤:
步骤S101:获取初始的集成电路设计的寄存器传输级的代码;
从原始集成电路设计中获取寄存器传输级(RTL)的代码,一般以VerilogHDL或VHDL语言进行描述。
步骤S102:根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置;
为了达到隐蔽的效果,硬件木马往往使用电路内部活动性极低的节点作为其触发条件,从而使得其很难被激活和发现。因此,为了检测硬件木马,可以根据代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置。比如,可以根据经验,查找出潜在的硬件木马植入的节点位置。
步骤S103:对所述初始的集成电路设计进行仿真,获得仿真电路;
步骤S103和步骤S102之间没有先后顺序,可以是先根据代码找出潜在的硬件木马植入的节点位置,再对初始的集成电路设计进行仿真。也可以是先对初始的集成电路设计进行仿真,然后再根据集成电路确定初始的集成电路设计中潜在的硬件木马植入的节点位置。可以采用仿真工具对集成电路进行仿真,具体仿真方法有很多中,在此不一一限定。
步骤S104:计算所述仿真电路中所述节点位置的互连线的逻辑值概率,根据所述逻辑值概率对所述节点位置的互连线进行可测性电路的插入设计,所述可测性电路包括虚拟扫描寄存器和逻辑门,该互连线和虚拟扫描寄存器分别与逻辑门连接;
计算初始的集成电路设计中潜在的硬件木马植入的节点位置的逻辑值概率,即每条互连线上逻辑值为“1”和“0”的概率。可以基于自动测试图形生成(ATPG)软件工具,计算电路内部每条互连线上逻辑值为“1”和“0”的概率。然后进行可测性电路的插入设计。
步骤S105:将仿真电路中各可测性电路顺序连接形成扫描链,根据具有扫描链的仿真电路获得新的集成电路设计,其中,所述扫描链用于根据输入的测试信号和输出结果检测出集成电路的硬件木马位置。
本实施例通过获取初始的集成电路设计的寄存器传输级的代码,并根据代码先确定潜在的硬件木马植入的节点位置,并对初始的集成电路设计进行仿真,对仿真电路进行可测性电路的插入设计,并形成扫描链,获得新的集成电路设计。通过这种方式,把对木马的检测从集成电路制造后的测试阶段提前到了制造前的设计阶段,可以提高木马检测的分辨率。并且,仅针对集成电路设计的潜在硬件木马植入的节点位置插入可测性电路结构,因此其面积开销较小,而且由于把集成电路内部所有可测性电路结构连接起来形成扫描链,因此可依据扫描链的测试反馈结构判断出硬件木马在电路中的大致位置,从而对硬件木马进行了定位。
在其中一个实施例中,还可以实现进行语法检测,避免语法错误导致硬件木马位置的误判,从而可以提高后续可测性电路的插入及硬件木马定位的准确率。即:
所述获取初始的集成电路设计的寄存器传输级的代码步骤之后,所述根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤之前,还包括:
检测所述代码是否存在语法错误,若否,则进入根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤,若是,则修改所述代码的语法错误,并进入根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤。
本实施例可以把原始集成电路设计的寄存器传输级(RTL)代码(一般以VerilogHDL或VHDL语言进行描述)读入计算机内存,并对其进行初步的解析,检查其是否存在语法错误。如果有语法错误,则需要电路设计人员进行有针对性地修改、除错;如果不存在语法错误则可以开展下一个步骤。
在其中一个实施例中,如图2所示,为本发明实施例中确认潜在的硬件木马植入的节点位置的流程示意图,所述根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤,包括:
步骤S201:基于堆栈计算每条代码被执行的第一概率;
本步骤可以利用堆栈的方法计算出每条代码语句被执行的概率。举其中一个具体的计算方法进行说明,该步骤可以包括:
A1:创建用于追踪所述代码的控制流的第一堆栈,并根据所述代码为所述集成电路中每个内部信号创建一个独立的第二堆栈,用于追踪集成电路的数据流;
A2:解析所述代码,当存在条件语句限定了信号的取值范围时,将该条件语句压入所述第一堆栈,采用以下公式计算该条件语句被执行的概率,并将所述概率压入该信号对应的所述第二堆栈:
其中,Tw表示概率,UO表示信号初始的取值上限,LO表示信号初始的取值下限,U表示所述第一堆栈顶端所述信号的取值上限,L表示所述第一堆栈顶端所述信号的取值下限;当同一个信号的条件语句中存在多条分支时,所述条件语句被执行的概率为各条分支被执行概率的总和;当代码中没有限定信号的取值范围时,该条语句被执行的概率为1。
第一堆栈又可以称为条件堆栈,是与条件有关的堆栈。第二堆栈又可以称为信号堆栈,是与信号有关的堆栈。
本步骤创建一个条件堆栈来追踪电路RTL级描述代码的控制流,此外,还为每一个内部信号创建一个独立信号堆栈以追踪电路的数据流。在解析电路RTL级描述代码时,每当发现一个条件块限制了某个信号的取值范围,如循环或条件语句等,就把该新条件压入条件堆栈,并把新的第一概率压入信号堆栈中;相反地,每当跳出一个条件块时,就弹出条件堆栈并更新信号堆栈。而该信号第一概率由条件语句或赋值语句决定,可按上述公式进行计算第一概率。其中,U和L分别为条件堆栈顶端信号的取值上限和下限,而UO和LO则为该信号声明时的取值上限和下限。如果对同一个信号的赋值语句发生在同一个条件块的不同分支内,并受到相同控制信号的控制,那么还应当在跳出该条件块时对第一概率的值进行融合。
第一概率与电路输入向量无关,它提供了一种对语句执行可能性的量化评价:某条语句的权重越小,表示该条语句被执行的可能性越低,其正确性也就越难被验证,从而也更可能被对手利用来实现硬件木马。
步骤S202:根据所述代码中各信号之间的关联关系绘制各节点、电路输出端口的数据图,并根据所述数据图计算各节点到达电路输出端口的第二概率;
本步骤是为了计算各节点到达电路输出端口的第二概率。通过解析电路的RTL级描述代码,生成一个加权数据图,描述代码中各个信号之间的联系。该数据图的节点是电路中的信号,而数据图两个节点之间的边则表征了它们之间的依赖关系。
基于该数据图,就可以计算出电路中信号之间的可到达性,以及信号对于电路输出端口的可观察性。可到达性用于表征一个信号在何种程度上影响另外一个信号,而可观察性则表明在输出端口观察电路中某个内部信号的困难程度。
举个例子进行说明,如图3所示,为本发明应用实例中数据图的示意图。K1为源节点,K0为输出端口,K2、K3、K4为需要经过的节点。Tw1、Tw2、Tw3、Tw4分别为节点K1、K2、K3、K4对应的第一概率。则节点K1的第二概率To为:
步骤S203:将所述第一概率和所述第二概率相乘,获得检测度;
TD=Tw*To
TD表示该节点的检测度。
步骤S204:从检测度中筛选出小于预设值的检测度,并将该检测度对应的节点位置设为潜在的硬件木马植入的节点位置。
检测度(又可称为可检测度)表明如果某条代码语句中存在硬件木马,那么检测出该硬件木马的困难程度到底有多大。可检测度越低,则越难发现此部位的硬件木马。在本发明中,利用可检测度TD来表征电路设计的薄弱点,从而实现了电路设计中薄弱点的量化评估。
在其中一个实施例中,所述计算所述仿真电路中所述节点位置的互连线的逻辑值概率,根据所述逻辑值概率对所述节点位置的互连线进行可测性电路的插入设计步骤,包括:
计算所述仿真电路中所述节点位置的互连线的逻辑值为1的概率和为0的概率;
当互连线的逻辑值为0的概率小于逻辑值为1的概率,则对所述节点位置的互连线进行第一可测性电路的插入设计,其中,所述第一可测性电路包括与门和虚拟扫描寄存器,将该互连线与所述与门的第一输入端连接,将虚拟扫描寄存器的输出端与所述与门的第二输入端连接;
当互连线的逻辑值为0的概率大于逻辑值为1的概率,则对所述节点位置的互连线进行第二可测性电路的插入设计,其中,所述第二可测性电路包括或门和虚拟扫描寄存器,将该互连线与所述或门的第一输入端连接,将虚拟扫描寄存器的输出端与所述或门的第二输入端连接;
所述将各可测性电路顺序连接,形成扫描链步骤,包括:
相邻的两个可测性电路中,前一个可测试电路的逻辑门输出端与后一个可测试电路的虚拟扫描寄存器输入端连接,各所述虚拟扫描寄存器的使能信号端顺序连接,各所述虚拟扫描寄存器的时钟信号端顺序连接,形成扫描链。
本实施例针对确定的电路设计薄弱点进行可测性设计,插入可测性电路结构,增强这些薄弱点的可控制性和可观察性。
本发明对电路设计薄弱点处的互连线进行可测性电路的插入设计,该可测性电路结构名为“虚拟扫描寄存器”,它具有两种可能的实现形式。
该虚拟扫描寄存器包含一个普通的扫描寄存器以及一个与门/或门。假设电路内部某条互连线i处于逻辑“1”和逻辑“0”的概率分别为Pi1、Pi0。如果目标互连线Neti的Pi0(互连线i逻辑值为0的概率)小于Pi1(互连线i逻辑值为1的概率),则可以选择“与”式虚拟扫描寄存器来增大Neti处的Pi0;否则就应当选择“或”式虚拟扫描寄存器来增大Neti处的Pi1。当测试使能信号(TE)有效时,普扫描寄存器的输出为下一个扫描寄存器的输入信号(SI)。可以看到,插入的虚拟扫描寄存器不会影响电路的功能,当正常工作模式下,扫描寄存器的输出保持为“1”(当结构为“与”式时)或“0”(当结构为“或”式时),从而避免改变Neti处的功能。
接着,把电路中所有虚拟扫描寄存器连接起来形成扫描链。在电路设计薄弱点处的互连线上插入了虚拟扫描寄存器后,还需要把这些虚拟扫描寄存器按照图4所示的顺序连接起来,即:相邻的两个可测性电路中,前一个可测试电路的逻辑门输出端与后一个可测试电路的虚拟扫描寄存器输入端连接,各所述虚拟扫描寄存器的使能信号端(TE)顺序连接,各所述虚拟扫描寄存器的时钟信号端(CLK)顺序连接,形成扫描链,从而提高在后续测试阶段开展相关的逻辑测试和硬件木马定位。
在其中一个实施例中,还可以对新的集成电路进行有效性评估。即获得新的集成电路设计后还包括:
计算仿真电路中所述节点位置的互连线的逻辑值为1的概率和为0的概率,根据逻辑值为1的概率和逻辑值为0的概率的乘积,获得该互连线的第一翻转概率;
计算插入可测性电路后该互连线的第二翻转概率;
将所述第一翻转概率和所述第二翻转概率进行对比,根据对比结果获得新的集成电路设计的硬件木马查找率。
由于翻转概率考虑了电路中逻辑门本身的功能以及门与门之间的互连关系,因此它能很好地表征电路的特征。假设电路内部某条互连线处于逻辑“1”和逻辑“0”的概率分别为P1、P0,那么它从“0”到“1”或从“1”到“0”翻转的概率即为Pt=P1×P0。当P1或P0变得特别大或特别小时,翻转概率都会迅速降低;仅当P0=P1=0.5时,可达到最大的翻转概率Pt=0.25。
通过给原始集成电路施加随机测试图形,并利用功能仿真工具进行逻辑节点的信号翻转概率仿真与结果统计,来对电路内部节点可观察性和可控制性的增强效果进行评估。借由该评估结果,可获知内部节点的可观察性和可控制性是否达到预期要求。将第一翻转概率和第二翻转概率进行对比,可以得出查找率,从而根据查找率判断本次新的集成电路设计是否有效。
在其中一个实施例中,根据输入的测试信号和输出结果检测出集成电路的硬件木马位置的方法包括:
向根据所述新的集成电路设计制造的集成电路的扫描链的输入端输入测试信号,获取所述扫描链的输出端的输出结果;
将所述输出结果和预存的测试信号对应的测试结果进行对比,当结果不匹配时,根据所述输出结果确定硬件木马存在位置。
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
还可以根据新的集成电路设计制造集成电路。由于在制造过程中可能会产生硬件木马,因此,本发明还提供一种电路硬件木马检测方法,如图5所示,为本发明集成电路硬件木马检测方法实施例的流程示意图,包括:
步骤S501:向根据上述任意一种集成电路的设计方法制造的集成电路的扫描链的输入端输入测试信号,获取所述扫描链的输出端的输出结果;
步骤S502:将所述输出结果和预存的测试信号对应的测试结果进行对比,当结果不匹配时,根据所述输出结果确定硬件木马存在位置。
该实施例还可以包括:根据上述任意一种集成电路的设计方法制造集成电路。通过集成电路的设计方法制造出的集成电路,仅针对集成电路的潜在硬件木马植入的节点位置插入可测性电路结构,其占用面积比现有技术中的三个电路模块开销小,降低了检测硬件木马的成本。而且由于把集成电路内部所有可测性电路结构连接起来形成扫描链,因此可依据扫描链的测试反馈结构判断出硬件木马在电路中的大致位置,从而对硬件木马进行了定位。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (7)

1.一种集成电路的设计方法,其特征在于,包括:
获取初始的集成电路设计的寄存器传输级的代码;
根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置;
对所述初始的集成电路设计进行仿真,获得仿真电路;
计算所述仿真电路中所述节点位置的互连线的逻辑值概率,根据所述逻辑值概率对所述节点位置的互连线进行可测性电路的插入设计,所述可测性电路包括虚拟扫描寄存器和逻辑门,该互连线和虚拟扫描寄存器分别与逻辑门连接;
将仿真电路中各可测性电路顺序连接形成扫描链,根据具有扫描链的仿真电路获得新的集成电路设计,其中,所述扫描链用于根据输入的测试信号和输出结果检测出集成电路的硬件木马位置;
所述根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤,包括:
基于堆栈计算每条代码被执行的第一概率;
根据所述代码中各信号之间的关联关系绘制各节点、电路输出端口的数据图,并根据所述数据图计算各节点到达电路输出端口的第二概率;
将所述第一概率和所述第二概率相乘,获得检测度;
从检测度中筛选出小于预设值的检测度,并将该检测度对应的节点位置设为潜在的硬件木马植入的节点位置。
2.根据权利要求1所述的集成电路的设计方法,其特征在于,所述基于堆栈计算每条代码被执行的第一概率步骤,包括:
创建用于追踪所述代码的控制流的第一堆栈,并根据所述代码为所述集成电路中每个内部信号创建一个独立的第二堆栈,用于追踪集成电路的数据流;
解析所述代码,当存在条件语句限定了信号的取值范围时,将该条件语句压入所述第一堆栈,采用以下公式计算该条件语句被执行的概率,并将所述概率压入该信号对应的所述第二堆栈:
T w = U - L + 1 U O - L O + 1
其中,Tw表示概率,UO表示信号初始的取值上限,LO表示信号初始的取值下限,U表示所述第一堆栈顶端所述信号的取值上限,L表示所述第一堆栈顶端所述信号的取值下限;当同一个信号的条件语句中存在多条分支时,所述条件语句被执行的概率为各条分支被执行概率的总和;当代码中没有限定信号的取值范围时,该条语句被执行的概率为1。
3.根据权利要求1所述的集成电路的设计方法,其特征在于,所述计算所述仿真电路中所述节点位置的互连线的逻辑值概率,根据所述逻辑值概率对所述节点位置的互连线进行可测性电路的插入设计步骤,包括:
计算所述仿真电路中所述节点位置的互连线的逻辑值为1的概率和为0的概率;
当互连线的逻辑值为0的概率小于逻辑值为1的概率,则对所述节点位置的互连线进行第一可测性电路的插入设计,其中,所述第一可测性电路包括与门和虚拟扫描寄存器,将该互连线与所述与门的第一输入端连接,将虚拟扫描寄存器的输出端与所述与门的第二输入端连接;
当互连线的逻辑值为0的概率大于逻辑值为1的概率,则对所述节点位置的互连线进行第二可测性电路的插入设计,其中,所述第二可测性电路包括或门和虚拟扫描寄存器,将该互连线与所述或门的第一输入端连接,将虚拟扫描寄存器的输出端与所述或门的第二输入端连接;
所述将各可测性电路顺序连接,形成扫描链步骤,包括:
相邻的两个可测性电路中,前一个可测试电路的逻辑门输出端与后一个可测试电路的虚拟扫描寄存器输入端连接,各所述虚拟扫描寄存器的使能信号端顺序连接,各所述虚拟扫描寄存器的时钟信号端顺序连接,形成扫描链。
4.根据权利要求1所述的集成电路的设计方法,其特征在于,所述获取初始的集成电路设计的寄存器传输级的代码步骤之后,所述根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤之前,还包括:
检测所述代码是否存在语法错误,若否,则进入根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤,若是,则修改所述代码的语法错误,并进入根据所述代码确定初始的集成电路设计中潜在的硬件木马植入的节点位置步骤。
5.根据权利要求1所述的集成电路的设计方法,其特征在于,获得新的集成电路设计后还包括:
计算仿真电路中所述节点位置的互连线的逻辑值为1的概率和为0的概率,根据逻辑值为1的概率和逻辑值为0的概率的乘积,获得该互连线的第一翻转概率;
计算插入可测性电路后该互连线的第二翻转概率;
将所述第一翻转概率和所述第二翻转概率进行对比,根据对比结果获得新的集成电路设计的硬件木马查找率。
6.根据权利要求1所述的集成电路的设计方法,其特征在于,所述根据输入的测试信号和输出结果检测出集成电路的硬件木马位置的方法包括:
向根据所述新的集成电路设计制造的集成电路的扫描链的输入端输入测试信号,获取所述扫描链的输出端的输出结果;
将所述输出结果和预存的测试信号对应的测试结果进行对比,当结果不匹配时,根据所述输出结果确定硬件木马存在位置。
7.一种硬件木马检测方法,其特征在于,包括:
向根据权利要求1至4任意一项所述的集成电路的设计方法制造的集成电路的扫描链的输入端输入测试信号,获取所述扫描链的输出端的输出结果;
将所述输出结果和预存的测试信号对应的测试结果进行对比,当结果不匹配时,根据所述输出结果确定硬件木马存在位置。
CN201410443064.9A 2014-09-02 2014-09-02 集成电路的设计方法及硬件木马检测方法 Active CN104239616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410443064.9A CN104239616B (zh) 2014-09-02 2014-09-02 集成电路的设计方法及硬件木马检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410443064.9A CN104239616B (zh) 2014-09-02 2014-09-02 集成电路的设计方法及硬件木马检测方法

Publications (2)

Publication Number Publication Date
CN104239616A CN104239616A (zh) 2014-12-24
CN104239616B true CN104239616B (zh) 2017-03-08

Family

ID=52227671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410443064.9A Active CN104239616B (zh) 2014-09-02 2014-09-02 集成电路的设计方法及硬件木马检测方法

Country Status (1)

Country Link
CN (1) CN104239616B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104715121B (zh) * 2015-04-01 2017-12-22 中国电子科技集团公司第五十八研究所 基于三模冗余的防御硬件木马威胁的电路安全性设计方法
CN104950246B (zh) * 2015-06-11 2017-09-19 工业和信息化部电子第五研究所 基于延时的硬件木马检测方法和系统
CN105656474B (zh) * 2016-01-26 2018-12-21 北京时代民芯科技有限公司 一种基于信号概率的fpga用户电路逻辑反转优化方法
CN106407810B (zh) * 2016-09-27 2019-05-10 中国电子科技集团公司第五十八研究所 一种基于递归下降算法的rtl级硬件木马检测方法
CN106778263A (zh) * 2016-11-15 2017-05-31 天津大学 有效提高硬件木马激活概率的方法
CN108345787B (zh) 2017-02-20 2019-04-23 清华大学 确定处理器安全性的方法、检测装置及系统
US10572671B2 (en) 2017-02-20 2020-02-25 Tsinghua University Checking method, checking system and checking device for processor security
US10657022B2 (en) 2017-02-20 2020-05-19 Tsinghua University Input and output recording device and method, CPU and data read and write operation method thereof
CN106918773B (zh) * 2017-03-01 2019-07-05 中国电子产品可靠性与环境试验研究所 工艺型硬件木马监测方法与装置
CN107239620B (zh) * 2017-06-06 2020-10-30 西南交通大学 一种抗硬件木马集成电路设计方法及系统
CN107545194B (zh) * 2017-08-01 2019-07-16 华南理工大学 片上网络中应对硬件木马的检测及防御方法
CN107609287A (zh) * 2017-09-21 2018-01-19 电子科技大学 一种面向fpga硬件木马植入的逻辑网表分析方法
CN107391896B (zh) * 2017-09-21 2019-12-24 电子科技大学 一种低开销的fpga硬件木马设计方法
US11170106B2 (en) 2018-05-10 2021-11-09 Robotic Research, Llc System for detecting hardware trojans in integrated circuits
CN109557449B (zh) * 2018-10-23 2020-04-03 中国科学院计算技术研究所 基于难测路径选择的集成电路检测方法和系统
CN109711204B (zh) * 2018-10-29 2021-02-26 西安电子科技大学 基于路径延迟指纹的硬件木马检测方法
CN109766729B (zh) * 2018-12-12 2021-01-22 西安电子科技大学 一种防御硬件木马的集成电路及其加密方法
CN109815705B (zh) * 2019-01-31 2022-07-08 福州大学 一种基于扫描链特征分析的硬件木马检测方法
US11914703B2 (en) 2019-07-03 2024-02-27 Nxp B.V. Method and data processing system for detecting a malicious component on an integrated circuit
CN110659480B (zh) * 2019-09-24 2021-11-05 重庆邮电大学 一种设备运行时木马电路检测与出错恢复方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038325A (zh) * 2007-02-14 2007-09-19 北京中星微电子有限公司 一种测试芯片的方法及装置
CN102662144A (zh) * 2012-03-30 2012-09-12 北京大学 一种基于活性测度的硬件木马检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038325A (zh) * 2007-02-14 2007-09-19 北京中星微电子有限公司 一种测试芯片的方法及装置
CN102662144A (zh) * 2012-03-30 2012-09-12 北京大学 一种基于活性测度的硬件木马检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
An experimental analysis of power and delay signal-to-noise requirements for detecting Trojans and methods for achieving the required detection sensitivities;Lamech Charles 等;《IEEE Transactions on Information Forensics and Security》;20111231;第1170-1179页 *
Testability of cryptographic hardware and detection of Hardware Trojans;Mukhopadhyay 等;《2011 Asian Test Symposium》;20111231;第517-524页 *
扫描链故障确定性诊断向量生成算法;王飞 等;《计算机辅助设计与图形学学报》;20090131;第21卷(第1期);第6-12页 *

Also Published As

Publication number Publication date
CN104239616A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
CN104239616B (zh) 集成电路的设计方法及硬件木马检测方法
Farahmandi et al. Trojan localization using symbolic algebra
US6931611B2 (en) Design verification system for avoiding false failures and method therefor
CN102854454B (zh) 在集成电路测试中用于缩短硬件木马的验证时间的方法
Guo et al. Scalable SoC trust verification using integrated theorem proving and model checking
US11144648B2 (en) Trojan insertion tool
CN104715121B (zh) 基于三模冗余的防御硬件木马威胁的电路安全性设计方法
CN104346272B (zh) 芯片自动仿真验证系统
CN107480561A (zh) 基于少态节点遍历的硬件木马检测方法
Fern et al. Detecting hardware trojans in unspecified functionality using mutation testing
CN105046153A (zh) 基于少态点分析的硬件木马检测方法
Dokhanchi et al. Vacuity aware falsification for MTL request-response specifications
Plaza et al. Node mergers in the presence of don't cares
Krieg et al. A process for the detection of design-level hardware Trojans using verification methods
US8909579B2 (en) Identifying invariant candidates based on proofs
Kochte et al. Accurate X-propagation for test applications by SAT-based reasoning
De Paula et al. nuTAB-BackSpace: Rewriting to normalize non-determinism in post-silicon debug traces
Yan et al. An optimization strategy to feature models’ verification by eliminating verification-irrelevant features and constraints
Hillebrecht et al. Exact stuck-at fault classification in presence of unknowns
Guo et al. Automatic RTL-to-formal code converter for IP security formal verification
CN116578978A (zh) 针对ip软核的多维分层式硬件木马评估方法
Cornell et al. Combinational hardware Trojan detection using logic implications
Tehranipoor et al. Hardware trojan detection: Untrusted third-party ip cores
Fraer et al. Accelerated verification of RTL assertions based on satisfiability solvers
Fern et al. Mining mutation testing simulation traces for security and testbench debugging

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