CN111414622B - 针对ip固核网表的硬件后门移除方法 - Google Patents

针对ip固核网表的硬件后门移除方法 Download PDF

Info

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
Application number
CN202010222119.9A
Other languages
English (en)
Other versions
CN111414622A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010222119.9A priority Critical patent/CN111414622B/zh
Publication of CN111414622A publication Critical patent/CN111414622A/zh
Application granted granted Critical
Publication of CN111414622B publication Critical patent/CN111414622B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; 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。芯片制造过程的不透明,导致硬件设备存在巨大的安全隐患。因此剔除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包括以下分步骤:
S21、设置访问过的节点集
Figure GDA0002499908510000021
木马起始挂载节点集合/>
Figure GDA0002499908510000022
S22、选择任意木马节点nT∈VT
Figure GDA0002499908510000024
将木马节点nT加入访问过的节点集W和队列结构R中。
S23、判断队列结构
Figure GDA0002499908510000023
是否成立,若是则取队列结构R的队头元素nTi,进入步骤S24,否则进入步骤S28。
S24、在有向图模型G(V,E)中获取队头元素nTi的输入集Ii和输出集Oi
S25、遍历输入集Ii,将满足nj∈Ii
Figure GDA0002499908510000025
的节点nj加入访问过的节点集W和队列结构R中。
S26、遍历输出集Oi,将满足nj∈Oi
Figure GDA0002499908510000026
的节点nj加入访问过的节点集W中。
S27、将满足
Figure GDA0002499908510000027
的队头元素nTi加入木马起始挂载节点集合S1中,返回步骤S23。
S28、判断是否对于任意木马节点nT∈VT都满足nT∈W,若是则输出得到木马起始挂载节点集合S1,否则返回步骤S22。
进一步地,步骤S3包括以下分步骤:
S31、获取木马逻辑单元集CT和木马起始挂载节点集合S1,并设置木马起始挂载节点的下一层节点集合
Figure GDA0002499908510000031
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中,并将满足
Figure GDA0002499908510000035
的节点nk加入木马起始挂载节点的下一层节点集合Snext中。
S37、判断木马起始挂载节点集合
Figure GDA0002499908510000032
是否成立,若是则输出得到木马逻辑单元集CT和木马起始挂载节点的下一层节点集合Snext,否则返回步骤S32。
进一步地,步骤S4包括以下分步骤:
S41、获取木马逻辑单元集CT和木马起始挂载节点的下一层节点集合Snext,并设置临时集合
Figure GDA0002499908510000033
/>
S42、令临时集合Sstart=Snext,木马起始挂载节点的下一层节点集合
Figure GDA0002499908510000034
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中,并将满足
Figure GDA0002499908510000043
的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S48、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用非固态值输入节点进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足
Figure GDA0002499908510000044
的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S49、根据真值表消除冗余项方法去除逻辑单元ci0中的固态值输入节点,更新逻辑单元ci0的类型,并将更新后的逻辑单元ci0加入木马逻辑单元集CT中,进入步骤S410。
S410、判断临时集合
Figure GDA0002499908510000041
是否成立,若是则返回步骤S43,否则进入步骤S411。
S411、判断木马起始挂载节点的下一层节点集合
Figure GDA0002499908510000042
是否成立,若是则输出得到木马逻辑单元集CT,进入步骤S412,否则返回步骤S42。
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)的计算公式如下:
Figure GDA0002499908510000061
/>
其中,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:
S21、设置访问过的节点集
Figure GDA0002499908510000071
木马起始挂载节点集合/>
Figure GDA0002499908510000072
S22、选择任意木马节点nT∈VT
Figure GDA0002499908510000075
将木马节点nT加入访问过的节点集W和队列结构R中。
S23、判断队列结构
Figure GDA0002499908510000073
是否成立,若是则取队列结构R的队头元素nTi,进入步骤S24,否则进入步骤S28。
S24、在有向图模型G(V,E)中获取队头元素nTi的输入集Ii和输出集Oi
S25、遍历输入集Ii,将满足nj∈Ii
Figure GDA0002499908510000076
的节点nj加入访问过的节点集W和队列结构R中。
S26、遍历输出集Oi,将满足nj∈Oi
Figure GDA0002499908510000077
的节点nj加入访问过的节点集W中。
S27、将满足
Figure GDA0002499908510000078
的队头元素nTi加入木马起始挂载节点集合S1中,返回步骤S23。
S28、判断是否对于任意木马节点nT∈VT都满足nT∈W,若是则输出得到木马起始挂载节点集合S1,否则返回步骤S22。
S3、计算木马起始挂载节点的可控制性值,根据可控制性值固化木马起始挂载节点,并向后传播固态信号,删除无效逻辑单元。
步骤S3包括以下分步骤S31~S37:
S31、获取木马逻辑单元集CT和木马起始挂载节点集合S1,并设置木马起始挂载节点的下一层节点集合
Figure GDA0002499908510000074
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中,并将满足
Figure GDA0002499908510000084
的节点nk加入木马起始挂载节点的下一层节点集合Snext中。
S37、判断木马起始挂载节点集合
Figure GDA0002499908510000081
是否成立,若是则输出得到木马逻辑单元集CT和木马起始挂载节点的下一层节点集合Snext,否则返回步骤S32。
S4、层级遍历木马电路的有向图节点,逐层修改木马电路,对逻辑单元进行去输入冗余,获取输出节点状态,并根据输出节点状态修改逻辑单元,传播固态信号,删除无效电路,得到移除硬件后门后的修正电路。
步骤S4包括以下分步骤S41~S412:
S41、获取木马逻辑单元集CT和木马起始挂载节点的下一层节点集合Snext,并设置临时集合
Figure GDA0002499908510000082
S42、令临时集合Sstart=Snext,木马起始挂载节点的下一层节点集合
Figure GDA0002499908510000083
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中,并将满足
Figure GDA0002499908510000093
的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S48、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用非固态值输入节点进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足
Figure GDA0002499908510000094
的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410。
S49、根据真值表消除冗余项方法去除逻辑单元ci0中的固态值输入节点,更新逻辑单元ci0的类型,并将更新后的逻辑单元ci0加入木马逻辑单元集CT中,进入步骤S410。
S410、判断临时集合
Figure GDA0002499908510000091
是否成立,若是则返回步骤S43,否则进入步骤S411。
S411、判断木马起始挂载节点的下一层节点集合
Figure GDA0002499908510000092
是否成立,若是则输出得到木马逻辑单元集CT,进入步骤S412,否则返回步骤S42。
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木马网表的统计结果
Figure GDA0002499908510000111
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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包括以下分步骤:
S21、设置访问过的节点集
Figure FDA0004056479580000011
木马起始挂载节点集合/>
Figure FDA0004056479580000012
S22、选择任意木马节点nT∈VT
Figure FDA0004056479580000013
将木马节点nT加入访问过的节点集W和队列结构R中;
S23、判断队列结构
Figure FDA0004056479580000014
是否成立,若是则取队列结构R的队头元素nTi,进入步骤S24,否则进入步骤S28;
S24、在有向图模型G(V,E)中获取队头元素nTi的输入集Ii和输出集Oi
S25、遍历输入集Ii,将满足nj∈Ii
Figure FDA0004056479580000021
的节点nj加入访问过的节点集W和队列结构R中;
S26、遍历输出集Oi,将满足nj∈Oi
Figure FDA0004056479580000022
的节点nj加入访问过的节点集W中;
S27、将满足
Figure FDA0004056479580000023
的队头元素nTi加入木马起始挂载节点集合S1中,返回步骤S23;
S28、判断是否对于任意木马节点nT∈VT都满足nT∈W,若是则输出得到木马起始挂载节点集合S1,否则返回步骤S22;
所述步骤S3包括以下分步骤:
S31、获取木马逻辑单元集CT和木马起始挂载节点集合S1,并设置木马起始挂载节点的下一层节点集合
Figure FDA0004056479580000024
/>
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中,并将满足
Figure FDA0004056479580000025
的节点nk加入木马起始挂载节点的下一层节点集合Snext中;
S37、判断木马起始挂载节点集合
Figure FDA0004056479580000026
是否成立,若是则输出得到木马逻辑单元集CT和木马起始挂载节点的下一层节点集合Snext,否则返回步骤S32;
所述步骤S4包括以下分步骤:
S41、获取木马逻辑单元集CT和木马起始挂载节点的下一层节点集合Snext,并设置临时集合
Figure FDA0004056479580000031
S42、令临时集合Sstart=Snext,木马起始挂载节点的下一层节点集合
Figure FDA0004056479580000032
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中,并将满足
Figure FDA0004056479580000033
的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410;
S48、遍历输出节点集Oi0,对于节点nk0∈Oi0,从木马逻辑单元集CT中取出对应的逻辑单元ck0,并将逻辑单元ck0中出现节点ni0的地方使用非固态值输入节点进行替换,将替换更新后的逻辑单元ck0加入木马逻辑单元集CT中,并将满足
Figure FDA0004056479580000034
的节点nk0加入木马起始挂载节点的下一层节点集合Snext中,进入步骤S410;
S49、根据真值表消除冗余项方法去除逻辑单元ci0中的固态值输入节点,更新逻辑单元ci0的类型,并将更新后的逻辑单元ci0加入木马逻辑单元集CT中,进入步骤S410;
S410、判断临时集合
Figure FDA0004056479580000035
是否成立,若是则返回步骤S43,否则进入步骤S411;
S411、判断木马起始挂载节点的下一层节点集合
Figure FDA0004056479580000041
是否成立,若是则输出得到木马逻辑单元集CT,进入步骤S412,否则返回步骤S42;
S412、令IP固核网表中的逻辑单元集合C=CN∪CT,得到移除硬件后门后的修正电路。
2.根据权利要求1所述的硬件后门移除方法,其特征在于,所述步骤S46中若逻辑单元ci0输入节点中的固态节点导致输出节点为固态值,则节点ni0为“remove”状态;若逻辑单元ci0输入节点中唯一的非固态节点决定输出节点信号,且二者状态变化一样,则节点ni0为“cut”状态,若逻辑单元ci0移除了固态节点,并根据真值表替换为另一个逻辑器件,则节点ni0为“change”状态。
CN202010222119.9A 2020-03-26 2020-03-26 针对ip固核网表的硬件后门移除方法 Active CN111414622B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114692227B (zh) * 2022-03-29 2023-05-09 电子科技大学 一种规模化芯片网表级硬件木马检测方法

Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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