【技术实现步骤摘要】
一种规模化芯片网表级硬件木马检测方法
[0001]本专利技术涉及领域为硬件安全领域,具体涉及一种规模化芯片网表级硬件木马检测方法。
技术介绍
[0002]随着集成芯片的设计和制造逐渐全球化,芯片的安全性遭到了巨大的挑战。芯片在制造过程中一旦被植入硬件木马,就有可能改变芯片的固有功能,泄露芯片内部私密信息或者降低芯片的性能,引发的安全问题极有可能会在民生、金融甚至航空领域造成不可估量的危害。因此,硬件安全性研究刻不容缓,硬件木马检测策略研究更是重中之重。
[0003]根据已有的研究,硬件木马检测技术大体上可分为两大类,破坏式检测技术和非破坏式检测技术。其中,破坏式检测技术主要指的是逆向工程技术。而非破坏式检测技术包括旁路分析技术、逻辑测试技术和主动监控技术。
[0004]逆向工程技术是一种不可逆的物理检测方法。该方法先对集成芯片进行逐层拆解,用化学技术去除每一层的晶粒,再利用电子扫描仪器对每一层的电路进行扫描,拼接出芯片的电路结构图,最后将逆向得到的电路版图与无硬件木马的“黄金电路”对比,从而得出有无硬件木马。2014年,Bao等人利用逆向工程技术得到芯片的单层成像图,并将其与可信任的成像图进行比对,从而检测芯片中的硬件木马(参见“On application of one
‑
class SVM to rev erse engineering
‑
based hardware Trojan detection”,C.Bao,and D.Forte,A.Srivastav ...
【技术保护点】
【技术特征摘要】
1.一种规模化芯片网表级硬件木马检测方法,其特征在于,该方法包括以下步骤:步骤1)输入一个芯片网表;步骤2)提取网表节点信息首先,读取输入的芯片网表的文件,提取该芯片网表中每一个逻辑单元的输出节点信息,构成节点集N,根据该芯片网表中每一个门器件的输入输出节点,搭建边集E,若n
i
为某一门器件的输入节点,n
j
为该门器件的输出节点,则得到一条有向边e
ij
:e
ij
=<n
i
,n
j
>
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)根据节点集N和边集E,构成一个相当于芯片内部电路的有向图,该有向图中的顶点对应着芯片节点集N={n1,n2,n3,
…
,n
Z
}中的节点,其中Z为芯片网表中节点的总数;有向图中的边对应着芯片的边集E={e1,e2,e3,
…
,e
K
}中的有向边,其中K为芯片电路中所有门器件输入节点与该门器件输出节点的连接线的总数;通过该有向图,能够找到节点n
z
,z∈[1,Z]的输出节点集O和输入节点集I;步骤3)划分模块以芯片底层电路中的触发器为边界,将整个芯片网表划分多个组合电路模块,方便后续计算各个节点的特征值,其中,芯片网表划分组合电路模块的过程如下:步骤31)提取输入输出节点从节点集N中提取芯片的输出节点集O、芯片的输入节点集I以及芯片中所有触发器的输出节点集D;若要对整个芯片网表划分组合电路模块,那么芯片的输出节点一定是该芯片最后一个组合电路模块的输出节点,而芯片输入节点一定是该芯片第一个组合电路模块的输入节点,所以从芯片输出节点集向芯片的输入端追溯,划分芯片底层电路;步骤32)记录已遍历的触发器为了解决触发器之间存在反馈,从而导致组合电路模块循环重复问题,需定义一个用来记录已经遍历过的触发器的输出节点集M,划分组合电路模块时,若是遇到属于M的节点,则不将该节点的输入节点集添加到下一组合电路模块的输出节点集中;步骤33)寻找组合电路模块从当前组合电路模块的输出节点集curO开始,向芯片输入端搜索,在芯片节点集N中查找所有满足下式(2)的节点n,将节点n存入当前组合电路模块的中间节点集curP:若是遇到触发器的输出节点集D或芯片输入节点集I中的节点i
′
,则停止搜索,并将该节点i
′
添加到当前组合电路模块的输入节点集curI中;i
′
∈D and i
′
∈I
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)将符合下述式(4)条件的节点m的所有输入节点,添加到下一个组合电路模块的输出节点集nextO:综上所述,当前组合电路模块的输出节点集curO、中间节点集curP以及输入节点集curI构成了当前组合电路模块的节点集curM:curO∪curP∪curI=curM
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)由于起初只知道当前组合电路模块的输出节点集curO,所以采用了按层遍历算法,以
输出节点集curO作为遍历的起始节点,搜索当前组合电路模块的所有节点;其中,寻找组合电路模块的所有节点的具体步骤为:a)将当前组合电路模块的所有输出节点全部加入队列queue中;b)判断queue是否为空,若为空,返回步骤a),划分下一个组合电路模块;若不为空,进行步骤c);c)记录队列queue当前的容量size;d)若size不为0,从队列首部取出节点P,并将size减1,执行步骤e);若是size为0,返回步骤b);e)若节点P不属于芯片触发器输出节点集D且不属于芯片输入节点集I,执行步骤f);若是该节点不属于已遍历的触发器输出节点集M且不属于芯片输入节点集I,执行步骤g);若该节点属于M或I,执行步骤h);f)将节点P加入当前组合电路模块的中间节点集curP,并将该节点的输入节点集加入队列queue末端,返回步骤d);g)将节点P的所有输入节点加入下一组合电路模块的输出节点集nextO,并将节点P加入M;h)将节点P加入当前组合电路模块的输入节点集curI,返回步骤d);步骤4)计算节点电路深度基于划分的组合电路模块,通过深度遍历算法,以芯片输入节点集I为起始节点,向芯片输出端搜索,计算每一个节点的电路深度,其中,输入节点集I的电路深度为0;步骤5)计算节点特征值首先需计算每一个节点的可控性CC和可观测性CO,用于量化地表示设置、观察电路内部信号的难度,其中,可控性CC被定义为将一个特定的逻辑信号设置为0或1的难度,包括0
‑
可控制性CC0、1
‑
可控制性CC1;而可观测性CO被定义为观测一个逻辑信号状态的难度;采用现有SCOAP算法计算可控性和可观测性,但在计算每一个组合电路模块的节点特征值之前,根据节点本身的电路深度,对每一个组合电路模块的输入节点的CC0和CC1赋初值,赋初值这一步是对现有SCOAP算法做出的改进;然后,根据有向图,从芯片输入节点开始,向芯片输出端遍历,依次计算每一...
【专利技术属性】
技术研发人员:王坚,熊江涛,李桓,郭世泽,李玉柏,陈哲,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。