CN111414622B - 针对ip固核网表的硬件后门移除方法 - Google Patents
针对ip固核网表的硬件后门移除方法 Download PDFInfo
- Publication number
- CN111414622B CN111414622B CN202010222119.9A CN202010222119A CN111414622B CN 111414622 B CN111414622 B CN 111414622B CN 202010222119 A CN202010222119 A CN 202010222119A CN 111414622 B CN111414622 B CN 111414622B
- Authority
- CN
- China
- Prior art keywords
- node
- trojan
- logic unit
- logic
- trojan horse
- 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/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
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种针对IP固核网表的硬件后门移除方法,首先基于有向图模型,可以成功地找到硬件木马电路的起始端,即木马起始挂载节点;然后固化起始挂载节点,删除无效逻辑单元,可以成功地切断木马电路和主电路之间的连接,并将木马电路固定在未触发状态;最后向后传播固态信号,利用真值表消除冗余项方法,逐层修改木马电路。经过与木马插入前的网表文件对比,本发明可以成功删除掉硬件木马电路,且不会对网表的正常功能造成影响。本发明为修复存在硬件后门的网表提供了一种有效的方法,在IP固核修正后再利用方面具有重要意义。
Description
技术领域
本发明属于硬件安全技术领域,具体涉及一种针对IP固核网表的硬件后门移除方法的设计。
背景技术
当今社会信息高度全球化,集成电路设计越来越复杂,但是对软件设计的成本和时间要求也逐步提高。所以,芯片生产大多采用流水线的工作方式,在设计、生产、测试等阶段需多家厂商共同完成,且使用大量的第三方IP。芯片制造过程的不透明,导致硬件设备存在巨大的安全隐患。因此剔除IP核中的硬件后门非常有意义。
目前主流的硬件后门检测方法分为3类:边信道信号分析法、逆向工程法、逻辑验证法。美国Jin等人基于边信道信号,提出一种全延时路径指纹检测方法。Salmani提出一种基于门级网表节点的可测试性和无监督机器学习的方法,能够在无需激活木马的情况下,有效地识别网表中的硬件后门。Hicks等人提出一种未使用的电路识别(UCI)的检测方法,在芯片设计时检测隐藏在电路中的恶意后门。
目前大量的研究都集中在识别集成电路中是否存在硬件后门,而对如何剔除硬件木马鲜有研究。Bao等人使用逆向工程法,通过逆向后的单层成像图与可信任的成像图之间的差值来检测芯片中的硬件木马。这种方法虽然可以定位到硬件木马的位置,但是其检测方法本身就已经对芯片造成不可逆的破坏,也就无法剔除后门电路,实现芯片的再利用。
发明内容
本发明的目的是提出一种针对IP固核网表的硬件后门移除方法,在不影响网表正常功能的情况下,能够完全剔除硬件后门。
本发明的技术方案为:针对IP固核网表的硬件后门移除方法,包括以下步骤:
S1、根据IP固核网表中的逻辑单元集合建立有向图模型。
S2、利用有向图模型中节点的连接关系识别木马电路的边界,从中提取出木马起始挂载节点。
S3、计算木马起始挂载节点的可控制性值,根据可控制性值固化木马起始挂载节点,并向后传播固态信号,删除无效逻辑单元。
S4、层级遍历木马电路的有向图节点,逐层修改木马电路,对逻辑单元进行去输入冗余,获取输出节点状态,并根据输出节点状态修改逻辑单元,传播固态信号,删除无效电路,得到移除硬件后门后的修正电路。
进一步地,步骤S1包括以下分步骤:
S11、将IP固核网表中的逻辑单元集合C划分为用于存放木马电路逻辑单元的木马逻辑单元集CT和用于存放普通电路逻辑单元的普通逻辑单元集CN。
S12、遍历逻辑单元集合C,对每个逻辑单元c∈C,提取c的输出节点n加入到节点集V中,从而构建得到节点集V。
S13、遍历逻辑单元集合C,对每个逻辑单元c∈C,为c的每个输入输出对创建有向边<ni,nj>,并将有向边<ni,nj>加入到边集E中,从而构建得到边集E;其中ni为c的输入节点,nj为c的输出节点。
S14、根据节点集V和边集建立有向图模型G(V,E)。
进一步地,步骤S12中对于节点ni∈V且逻辑单元ci∈C,则ni和ci可相互索引,即ni→ci和ci→ni都成立。
进一步地,步骤S12中的节点集V分为木马节点集VT和普通节点集VN。
进一步地,步骤S2包括以下分步骤:
S24、在有向图模型G(V,E)中获取队头元素nTi的输入集Ii和输出集Oi。
S28、判断是否对于任意木马节点nT∈VT都满足nT∈W,若是则输出得到木马起始挂载节点集合S1,否则返回步骤S22。
进一步地,步骤S3包括以下分步骤:
S32、从木马起始挂载节点集合S1中取出一个节点ni。
S33、根据SCOAP算法计算节点ni的可控制性值CC1(ni)和CC0(ni)。
S34、从有向图模型G(V,E)中获取节点ni的输出节点集Oi1,从木马逻辑单元集CT中取出节点ni对应的逻辑单元ci。
S35、判断CC1(ni)<CC0(ni)是否成立,若是则将节点ni设置为固态值“1'b1”,进入步骤S36,否则将节点ni设置为固态值“1'b0”,进入步骤S36。
S36、遍历输出节点集Oi1,对于节点nk∈Oi1,从木马逻辑单元集CT中取出对应的逻辑单元ck,并将逻辑单元ck中出现节点ni的地方使用步骤S35获得的固态值进行替换,将替换更新后的逻辑单元ck加入木马逻辑单元集CT中,并将满足的节点nk加入木马起始挂载节点的下一层节点集合Snext中。
进一步地,步骤S4包括以下分步骤:
S43、从临时集合Sstart中取出一个节点ni0。
S44、从有向图模型G(V,E)中获取节点ni0的输出节点集Oi0,从木马逻辑单元集CT中取出节点ni0对应的逻辑单元ci0。
S45、遍历输出节点集Oi0,将满足nk0∈Oi0且nk0在木马逻辑单元集CT中无对应逻辑单元的节点nk0从输出节点集Oi0中移除。
S46、判断逻辑单元ci0中是否存在固态值输入节点,若是则根据真值表消除冗余项方法对逻辑单元ci0进行去输入冗余,判断节点ni0的状态,若节点ni0为“remove”状态,则进入步骤S47,若节点ni0为“cut”状态,则进入步骤S48,若节点ni0为“change”状态,则进入步骤S49,若逻辑单元ci0中不存在固态值输入节点,则进入步骤S410。
S47、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用固态值进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S48、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用非固态值输入节点进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S49、根据真值表消除冗余项方法去除逻辑单元ci0中的固态值输入节点,更新逻辑单元ci0的类型,并将更新后的逻辑单元ci0加入木马逻辑单元集CT中,进入步骤S410。
S412、令IP固核网表中的逻辑单元集合C=CN∪CT,得到移除硬件后门后的修正电路。
进一步地,步骤S46中若逻辑单元ci0输入节点中的固态节点导致输出节点为固态值,则节点ni0为“remove”状态;若逻辑单元ci0输入节点中唯一的非固态节点决定输出节点信号,且二者状态变化一样,则节点ni0为“cut”状态,若逻辑单元ci0移除了固态节点,并根据真值表替换为另一个逻辑器件,则节点ni0为“change”状态。
本发明的有益效果是:本发明首先基于有向图模型,可以成功地找到硬件木马电路的起始端,即木马起始挂载节点;然后固化起始挂载节点,删除无效逻辑单元,可以成功地切断木马电路和主电路之间的连接,并将木马电路固定在未触发状态;最后向后传播固态信号,利用真值表消除冗余项方法,逐层修改木马电路。经过与木马插入前的网表文件对比,本发明可以成功删除掉硬件木马电路,且不会对网表的正常功能造成影响。本发明为修复存在硬件后门的网表提供了一种有效的方法,在IP固核修正后再利用方面具有重要意义。
附图说明
图1所示为本发明实施例提供的针对IP固核网表的硬件后门移除方法流程图。
图2所示为本发明实施例提供的RS232_T1000.v的木马电路示意图。
图3所示为本发明实施例提供的RS232_T1000.v固化木马起始挂载节点并向后传播固态信号的效果图。
图4所示为本发明实施例提供的RS232_T1000.v移除木马后CT中剩余电路示意图。
具体实施方式
现在将参考附图来详细描述本发明的示例性实施方式。应当理解,附图中示出和描述的实施方式仅仅是示例性的,意在阐释本发明的原理和精神,而并非限制本发明的范围。
在描述本发明的具体实施例之前,为使本发明的方案更加清楚完整,首先对本发明中出现的相关概念进行说明:
(1)木马电路:本发明实施例中的木马电路指的是硬件木马结构和其感染电路的统称。
(2)有向图:本发明实施例中使用G(V,E)表示有向图,其中,G表示有向图对象,V表示节点集,E表示边集。节点集V中元素用n表示,边集E中元素为有向边,用有序偶对<ni,nj>表示,其中ni表示有向边的输入节点,nj表示有向边的输出节点。以nj为输出的所有输入节点组成节点nj的输入集Ij,以ni为输入的所有输出节点组成节点ni的输出集Oi。
(3)木马起始挂载节点:存在两个集合VN和VT,其中VN为普通节点集,VT为木马节点集。对输出节点nj,若满足nj∈VT且输入集Ij中任意节点ni∈VN,则输出节点nj为木马起始挂载节点。
(4)固化:每个节点都为1bit,存在两种状态“1'b1”和“1'b0”。将节点用状态值替换,称为固化。
(5)固态信号:对有向边<ni,nj>,若输入节点ni被固化为状态值“1'b1”或“1'b0”,则称输入节点ni为固态节点,向输出节点nj传播固态信号。
(6)去输入冗余:若一个逻辑单元的输入节点存在固态节点,则根据真值表消除冗余项方法,去除固态节点的过程称为去输入冗余。
(7)可控制性值:节点ni的可控制性值CC(ni)分为1可控制性值CC1(ni)和0可控制性值CC0(ni)两种,分别表示控制节点ni固化为状态值“1'b1”和“1'b0”的最低难度,难度从1到∞,值越大,则节点ni越不易控制。
节点的可控性值与三个因素有关,分别为:
①逻辑深度d,对于组合逻辑单元d=1,对于时序逻辑单元d=0;
②节点ni对应的输入节点nj(nj∈Ii)的可控制性值CC(nj),其中Ii表示输入集;
③节点ni对应逻辑单元的类型。
节点ni的可控制性值CC(ni)的计算公式如下:
其中,Ii0+Ii1+…+Iik=Ii,每个集合Ii0~Iik内部节点可以组合决定节点ni的可控制性值(CC1(ni)或者CC0(ni)),且不受Ii中其它节点影响。
本发明实施例提供了一种针对IP固核网表的硬件后门移除方法,如图1所示,包括以下步骤S1~S4:
S1、根据IP固核网表中的逻辑单元集合建立有向图模型。
步骤S1包括以下分步骤S11~S14:
S11、将IP固核网表中的逻辑单元集合C划分为用于存放木马电路逻辑单元的木马逻辑单元集CT和用于存放普通电路逻辑单元的普通逻辑单元集CN。
S12、遍历逻辑单元集合C,对每个逻辑单元c∈C,提取c的输出节点n加入到节点集V中,从而构建得到节点集V。
本发明实施例中,节点集V具有以下特点:
(1)对于节点ni∈V且逻辑单元ci∈C,则ni和ci可相互索引,即ni→ci和ci→ni都成立。
(2)节点集V分为木马节点集VT和普通节点集VN。
S13、遍历逻辑单元集合C,对每个逻辑单元c∈C,为c的每个输入输出对创建有向边<ni,nj>,并将有向边<ni,nj>加入到边集E中,从而构建得到边集E;其中ni为c的输入节点,nj为c的输出节点。
S14、根据节点集V和边集建立有向图模型G(V,E)。
S2、利用有向图模型中节点的连接关系识别木马电路的边界,从中提取出木马起始挂载节点。
步骤S2包括以下分步骤S21~S28:
S24、在有向图模型G(V,E)中获取队头元素nTi的输入集Ii和输出集Oi。
S28、判断是否对于任意木马节点nT∈VT都满足nT∈W,若是则输出得到木马起始挂载节点集合S1,否则返回步骤S22。
S3、计算木马起始挂载节点的可控制性值,根据可控制性值固化木马起始挂载节点,并向后传播固态信号,删除无效逻辑单元。
步骤S3包括以下分步骤S31~S37:
S32、从木马起始挂载节点集合S1中取出一个节点ni。
S33、根据SCOAP算法计算节点ni的可控制性值CC1(ni)和CC0(ni)。
S34、从有向图模型G(V,E)中获取节点ni的输出节点集Oi1,从木马逻辑单元集CT中取出节点ni对应的逻辑单元ci。
S35、判断CC1(ni)<CC0(ni)是否成立,若是则将节点ni设置为固态值“1'b1”,进入步骤S36,否则将节点ni设置为固态值“1'b0”,进入步骤S36。
S36、遍历输出节点集Oi1,对于节点nk∈Oi1,从木马逻辑单元集CT中取出对应的逻辑单元ck,并将逻辑单元ck中出现节点ni的地方使用步骤S35获得的固态值进行替换,将替换更新后的逻辑单元ck加入木马逻辑单元集CT中,并将满足的节点nk加入木马起始挂载节点的下一层节点集合Snext中。
S4、层级遍历木马电路的有向图节点,逐层修改木马电路,对逻辑单元进行去输入冗余,获取输出节点状态,并根据输出节点状态修改逻辑单元,传播固态信号,删除无效电路,得到移除硬件后门后的修正电路。
步骤S4包括以下分步骤S41~S412:
S43、从临时集合Sstart中取出一个节点ni0。
S44、从有向图模型G(V,E)中获取节点ni0的输出节点集Oi0,从木马逻辑单元集CT中取出节点ni0对应的逻辑单元ci0。
S45、遍历输出节点集Oi0,将满足nk0∈Oi0且nk0在木马逻辑单元集CT中无对应逻辑单元的节点nk0从输出节点集Oi0中移除。
S46、判断逻辑单元ci0中是否存在固态值输入节点,若是则根据真值表消除冗余项方法对逻辑单元ci0进行去输入冗余,判断节点ni0的状态,若节点ni0为“remove”状态,则进入步骤S47,若节点ni0为“cut”状态,则进入步骤S48,若节点ni0为“change”状态,则进入步骤S49,若逻辑单元ci0中不存在固态值输入节点,则进入步骤S410。
本发明实施例中,根据表1判断节点ni0的状态。
表1去除输入冗余状态
逻辑单元c<sub>i0</sub>输入输出节点关系 | 输出节点n<sub>i0</sub>状态 |
输入节点中的固态节点导致输出节点为固态值 | remove |
输入节点中唯一的非固态节点决定输出节点信号,且二者状态变化一样 | cut |
移除了固态节点,逻辑单元根据真值表替换为另一个逻辑器件 | change |
S47、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用固态值进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S48、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用非固态值输入节点进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S49、根据真值表消除冗余项方法去除逻辑单元ci0中的固态值输入节点,更新逻辑单元ci0的类型,并将更新后的逻辑单元ci0加入木马逻辑单元集CT中,进入步骤S410。
S412、令IP固核网表中的逻辑单元集合C=CN∪CT,得到移除硬件后门后的修正电路。
下面以一个具体实验例对本发明提出的针对IP固核网表的硬件后门移除方法的效果作进一步描述。
根据本发明的方法,下面将RS232网表作为本发明的具体实验例,木马网表来自Trust-hub网站,分别在RS232_TjFree.v网表中插入七个不同的硬件后门,其木马信息如表2所示。
表2 RS232网表插入的木马信息
木马网表 | 木马触发电路节点数 | 木马有效载荷节点数 |
RS232_T1000.v | 10 | 2 |
RS232_T1100.v | 11 | 1 |
RS232_T1200.v | 13 | 1 |
RS232_T1300.v | 7 | 2 |
RS232_T1400.v | 12 | 1 |
RS232_T1500.v | 11 | 2 |
RS232_T1600.v | 7 | 2 |
首先得到木马电路,如图2所示。则对木马网表RS232_T1000.v的硬件后门移除方法具体为:
S1、从图2中得到硬件木马逻辑单元集CT={U293~U303,U305,U3},木马节点集VT={iCTRL,iXMIT_xmit_CTRL,…,xmit_doneH}。
S2、通过双向层级遍历木马节点集VT,获得木马起始挂载节点集合S1,如表3第一列所示。
表3 RS232_T1000.v的木马起始挂载节点信息表
木马起始挂载点 | CC1(n) | CC0(n) | 固化值 |
iXMIT_xmit_CTRL | 3 | 79 | 1’b1 |
iRECEIVER_state_CTRL | 3 | 85 | 1’b1 |
iXMIT_N_CTRL_1_ | 15 | 9 | 1’b0 |
iXMIT_N_CTRL_2_ | 7 | 162 | 1’b1 |
iRECEIVER_bitCell_CTRL | 3 | 47 | 1’b1 |
iRECEIVER_N_CTRL_1_ | 6 | 117 | 1’b1 |
iRECEIVER_N_CTRL_2_ | 6 | 114 | 1’b1 |
S3、利用木马起始挂载节点集合S1中节点的可控制性值,固化木马起始挂载节点,固化结果如表3第四列所示。然后删除木马逻辑单元集CT中的逻辑单元{U293~U295,U297~U300},并向逻辑单元{U296,U301}传递固态信号。更新木马逻辑单元集CT中的{U296,U301}单元,如图3所示。
S4、逐层修改木马电路,去除逻辑单元{U296,U301}的输入冗余,则节点iXIMT_CRTL和iRECEIVER_CTRL的状态都为“remove”,用固态值“1'b1”替代,同时在木马逻辑单元集CT中删除逻辑单元{U296,U301},向逻辑单元U302传递固态值。
最后,RS232_T1000.v被删除木马节点后木马逻辑单元集CT中剩余的逻辑单元如图4所示。
将C=CT∪CN的逻辑单元集与RS232_TjFree.v中的逻辑单元进行对比发现,二者完全相同。如表4所示是对所有RS232木马网表的统计结果,实验证明本发明能够在不影响网表正常功能的情况下移除硬件后门。
表4 RS232木马网表的统计结果
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (2)
1.针对IP固核网表的硬件后门移除方法,其特征在于,包括以下步骤:
S1、根据IP固核网表中的逻辑单元集合建立有向图模型;
S2、利用有向图模型中节点的连接关系识别木马电路的边界,从中提取出木马起始挂载节点;
S3、计算木马起始挂载节点的可控制性值,根据可控制性值固化木马起始挂载节点,并向后传播固态信号,删除无效逻辑单元;
S4、层级遍历木马电路的有向图节点,逐层修改木马电路,对逻辑单元进行去输入冗余,获取输出节点状态,并根据输出节点状态修改逻辑单元,传播固态信号,删除无效电路,得到移除硬件后门后的修正电路;
所述步骤S1包括以下分步骤:
S11、将IP固核网表中的逻辑单元集合C划分为用于存放木马电路逻辑单元的木马逻辑单元集CT和用于存放普通电路逻辑单元的普通逻辑单元集CN;
S12、遍历逻辑单元集合C,对每个逻辑单元c∈C,提取c的输出节点n加入到节点集V中,从而构建得到节点集V;
S13、遍历逻辑单元集合C,对每个逻辑单元c∈C,为c的每个输入输出对创建有向边<ni,nj>,并将有向边<ni,nj>加入到边集E中,从而构建得到边集E;其中ni为c的输入节点,nj为c的输出节点;
S14、根据节点集V和边集建立有向图模型G(V,E);
所述步骤S12中对于节点ni∈V且逻辑单元ci∈C,则ni和ci可相互索引,即ni→ci和ci→ni都成立;
所述步骤S12中的节点集V分为木马节点集VT和普通节点集VN;
所述步骤S2包括以下分步骤:
S24、在有向图模型G(V,E)中获取队头元素nTi的输入集Ii和输出集Oi;
S28、判断是否对于任意木马节点nT∈VT都满足nT∈W,若是则输出得到木马起始挂载节点集合S1,否则返回步骤S22;
所述步骤S3包括以下分步骤:
S32、从木马起始挂载节点集合S1中取出一个节点ni;
S33、根据SCOAP算法计算节点ni的可控制性值CC1(ni)和CC0(ni);
S34、从有向图模型G(V,E)中获取节点ni的输出节点集Oi1,从木马逻辑单元集CT中取出节点ni对应的逻辑单元ci;
S35、判断CC1(ni)<CC0(ni)是否成立,若是则将节点ni设置为固态值“1'b1”,进入步骤S36,否则将节点ni设置为固态值“1'b0”,进入步骤S36;
S36、遍历输出节点集Oi1,对于节点nk∈Oi1,从木马逻辑单元集CT中取出对应的逻辑单元ck,并将逻辑单元ck中出现节点ni的地方使用步骤S35获得的固态值进行替换,将替换更新后的逻辑单元ck加入木马逻辑单元集CT中,并将满足的节点nk加入木马起始挂载节点的下一层节点集合Snext中;
所述步骤S4包括以下分步骤:
S43、从临时集合Sstart中取出一个节点ni0;
S44、从有向图模型G(V,E)中获取节点ni0的输出节点集Oi0,从木马逻辑单元集CT中取出节点ni0对应的逻辑单元ci0;
S45、遍历输出节点集Oi0,将满足nk0∈Oi0且nk0在木马逻辑单元集CT中无对应逻辑单元的节点nk0从输出节点集Oi0中移除;
S46、判断逻辑单元ci0中是否存在固态值输入节点,若是则根据真值表消除冗余项方法对逻辑单元ci0进行去输入冗余,判断节点ni0的状态,若节点ni0为“remove”状态,则进入步骤S47,若节点ni0为“cut”状态,则进入步骤S48,若节点ni0为“change”状态,则进入步骤S49,若逻辑单元ci0中不存在固态值输入节点,则进入步骤S410;
S47、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用固态值进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410;
S48、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用非固态值输入节点进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410;
S49、根据真值表消除冗余项方法去除逻辑单元ci0中的固态值输入节点,更新逻辑单元ci0的类型,并将更新后的逻辑单元ci0加入木马逻辑单元集CT中,进入步骤S410;
S412、令IP固核网表中的逻辑单元集合C=CN∪CT,得到移除硬件后门后的修正电路。
2.根据权利要求1所述的硬件后门移除方法,其特征在于,所述步骤S46中若逻辑单元ci0输入节点中的固态节点导致输出节点为固态值,则节点ni0为“remove”状态;若逻辑单元ci0输入节点中唯一的非固态节点决定输出节点信号,且二者状态变化一样,则节点ni0为“cut”状态,若逻辑单元ci0移除了固态节点,并根据真值表替换为另一个逻辑器件,则节点ni0为“change”状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222119.9A CN111414622B (zh) | 2020-03-26 | 2020-03-26 | 针对ip固核网表的硬件后门移除方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222119.9A CN111414622B (zh) | 2020-03-26 | 2020-03-26 | 针对ip固核网表的硬件后门移除方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414622A CN111414622A (zh) | 2020-07-14 |
CN111414622B true CN111414622B (zh) | 2023-03-28 |
Family
ID=71493258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010222119.9A Active CN111414622B (zh) | 2020-03-26 | 2020-03-26 | 针对ip固核网表的硬件后门移除方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414622B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692227B (zh) * | 2022-03-29 | 2023-05-09 | 电子科技大学 | 一种规模化芯片网表级硬件木马检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595986A (zh) * | 2018-05-09 | 2018-09-28 | 同济大学 | 基于有界模型的微型木马检测方法 |
CN109784096A (zh) * | 2019-01-18 | 2019-05-21 | 电子科技大学 | 基于聚类算法的硬件木马检测和剔除方法 |
CN110096879A (zh) * | 2019-04-26 | 2019-08-06 | 北京计算机技术及应用研究所 | 一种基于门级结构特征的静态硬件木马检测方法 |
CN110287735A (zh) * | 2019-07-04 | 2019-09-27 | 电子科技大学 | 基于芯片网表特征的木马感染电路识别方法 |
CN110414277A (zh) * | 2018-04-27 | 2019-11-05 | 北京大学 | 基于多特征参数的门级硬件木马检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402401B2 (en) * | 2009-11-09 | 2013-03-19 | Case Western University | Protection of intellectual property cores through a design flow |
US10083303B2 (en) * | 2014-10-03 | 2018-09-25 | New York University | System, method and computer-accessible medium for security verification of third party intellectual property cores |
US10303878B2 (en) * | 2016-01-22 | 2019-05-28 | Yu-Liang Wu | Methods and apparatus for automatic detection and elimination of functional hardware trojans in IC designs |
-
2020
- 2020-03-26 CN CN202010222119.9A patent/CN111414622B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414277A (zh) * | 2018-04-27 | 2019-11-05 | 北京大学 | 基于多特征参数的门级硬件木马检测方法 |
CN108595986A (zh) * | 2018-05-09 | 2018-09-28 | 同济大学 | 基于有界模型的微型木马检测方法 |
CN109784096A (zh) * | 2019-01-18 | 2019-05-21 | 电子科技大学 | 基于聚类算法的硬件木马检测和剔除方法 |
CN110096879A (zh) * | 2019-04-26 | 2019-08-06 | 北京计算机技术及应用研究所 | 一种基于门级结构特征的静态硬件木马检测方法 |
CN110287735A (zh) * | 2019-07-04 | 2019-09-27 | 电子科技大学 | 基于芯片网表特征的木马感染电路识别方法 |
Non-Patent Citations (2)
Title |
---|
"Classification of Trojan Nets Based on SCOAP Values using Supervised Learning";Chee Hoo Kok等;《2019 IEEE International Symposium on Circuits and Systems (ISCAS)》;全文 * |
"基于门级电路结构特征的硬件木马检测方法研究";陈富强;《中国优秀硕士学位论文全文数据库》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111414622A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Beyersdorff et al. | Proof complexity of resolution-based QBF calculi | |
US7380224B2 (en) | Method and system for non-linear state based satisfiability | |
US20050240885A1 (en) | Efficient SAT-based unbounded symbolic model checking | |
Ganai et al. | Efficient SAT-based unbounded symbolic model checking using circuit cofactoring | |
Charikar et al. | Fully dynamic almost-maximal matching: Breaking the polynomial worst-case time barrier | |
Belluomini et al. | Verification of timed systems using POSETs | |
CN101317179A (zh) | 并入soc分层设计的定时约束 | |
Nadel et al. | Accelerated deletion-based extraction of minimal unsatisfiable cores | |
CN111414622B (zh) | 针对ip固核网表的硬件后门移除方法 | |
CN113661488A (zh) | 用于访问主数据管理系统的数据记录的方法 | |
Li et al. | Closed-loop deadlock-free supervision for GMECs in time Petri net systems | |
CN112560373B (zh) | 毛刺功率分析和优化引擎 | |
Zhang et al. | Deep integration of circuit simulator and SAT solver | |
Grädel et al. | Dynamic definability | |
Tigane et al. | Reconfigurable stochastic Petri nets: A new formalism for reconfigurable discrete event systems | |
US20030187815A1 (en) | Symbolic simulation driven netlist simplification | |
Angluin et al. | Learning a circuit by injecting values | |
US7117465B2 (en) | Application of the retimed normal form to the formal equivalence verification of abstract RTL descriptions for pipelined designs | |
CN112800681A (zh) | 一种布尔可满足性求解器中学习子句的删除方法及布尔可满足性求解器 | |
Koutris et al. | A trichotomy in the data complexity of certain query answering for conjunctive queries | |
US10242150B1 (en) | Circuit design implementation using control-set based merging and module-based replication | |
Yasugi et al. | Effective Sequence of Uniformities and its Effective Limit. | |
US10409945B1 (en) | Methods, systems, and computer program product for connectivity verification of electronic designs | |
Sang et al. | Combining Univariate and Multivariate Bottom-up Discretization. | |
CN102968502B (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 |