一种规模化芯片网表级硬件木马检测方法技术

技术编号:34013064 阅读:14 留言:0更新日期:2022-07-02 15:04
本发明专利技术公开了一种规模化芯片网表级硬件木马检测方法,该方法首先提取芯片网表的节点信息,并将网表根据寄存器划分为多个组合电路模块,然后根据芯片电路结构计算每一个节点的电路深度,并根据电路深度初始化每一个模块输入节点的特征值,接着利用多线程提取这些模块中每个节点的可控性和可观察性特征值,最后将每个节点对应的特征值输入到k

【技术实现步骤摘要】
一种规模化芯片网表级硬件木马检测方法


[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.Srivastava,Int ernational Symposium on Quality Electronic Design,Santa Clara,2014,47

54)。虽然该方法的检测效果很好,但需要耗费大量的时间、人力和财力,而且对芯片的破坏也是不可逆转的,所以该方法不具有推广性,只适用于抽样检查,从而判断同一批次的芯片是否被硬件木马感染。两年后,Bao等人针对逆向工程耗时耗力的问题,提出了一种K

means聚类算法与逆向工程相结合的新型硬件木马检测方法(参见“On Reverse Engineering

Based Hardware Troja n Detection[J]”,Bao C,D Forte,Srivastava A,IEEE Transactions on Computer

Aided Desi gn of Integrated Circuits and Systems,2018,35(1):49

57)。2016年,Abdurrahman等人提出了一种对芯片底层电路的自动化识别技术,该方法利用了方向梯度直方图来自动提取和描述电路布局特征,然后通过由决策树表示的机器学习分类器,区分硬件木马和正常电路(参见“An Efficient Reverse Engineering Hardware Trojan Detector Using Histogram of Oriented Gradients[J]”,Abdurrahman A,Nasr,et al.,Journal of Electronic Testing,2016,33(1):1

13)。2020年,Bernhard等人在芯片物理布局上使用了逆向工程,根据分割的电路块做出电路图表并执行椭圆曲线加密模块识别(参见“Verification of physical designs using an integrated re verse engineering flow for nanoscale technologies[J]”,Lippmann B,N Unverricht,Singla A,et al.,Integration the VLSI Journal,2019,71),首次将生成的布局和GDS(一般设计规范,General Design Specification)设计布局之间的误差作为优良指数进行定量比较。
[0005]旁路分析技术是一种非破坏式的检测方法。芯片一旦被插入硬件木马后,往往会导致功耗、电压、电流、路径延时、温度热量、电磁辐射等旁路信息的改变,所以可以通过分析并比较芯片的旁路信息来判断是否含有硬件木马。Narasimhan等人提出了一种多特征值旁路分析检测技术(参见“Self

referencing:a scalable side

channel approach for hardware Trojan detection[C]”,D.Du,S.Narasimhan,R.S.Chakraborty,et al.,International Workshop on Cryptographic Hardware and Embedded Systems,Santa Barbara,2010:173

187),该技术将静态电流也作为一种分析指标。李雄伟等人通过分析CMOS固有特性对芯片电路的影响,提出了一种分析芯片平均动态电流与最大工作频率来检测硬件木马的新型检测技术,然而实验中发现该方法在时间效率上极其低下(参见“基于多旁路综合分析的硬件木马检测方法[J]”,李雄伟、王晓晗、张阳等,计算机仿真,2015,32(3):216

219)。实际上,硬件木马与正常电路相比十分微小,所以木马所导致的旁路信息变化也非常微弱,再加上芯片工作时会产生各种噪声,所以如何在这种复杂情形下分辨各种异常的旁路信号仍然是一个严峻的难题。
[0006]逻辑测试技术也是一种非破坏式的硬件木马检测方法。硬件木马在特定的条件下会被激活,改变芯片功能,干扰正常的输出信号。所以,可以在芯片的输入端口提供随机测试向量,检测芯片功能是否被改变,从而判断芯片中是否存在硬件木马。美国凯斯西储大学的Chakra borty等人提出了一种启发式测试向量生成算法MERO(参见“MERO:A statistical approachfor hardware Trojan detection[C]”,R.S.Chakraborty,F.Wolff,S.Paul,et al.,Internation al Workshop on Cryptographic Hardware and Embedded Systems,Lausanne,2009:396

410),该算法通过分析芯片内部节点的翻转率,生成一系列的测试向量,可在最少的测试向量数量下,实现最大化硬件木马检测覆盖率。广东工业大学的冯秋丽等人提出了一种基于节点活性的硬件木马检测技术,该检测技术通过对芯片输入随机测试向量,并统计芯片内部节点的翻转率,筛选出能够使翻转率低的节点翻转的测试向量,作为硬件木马测试向量组(参见“基于节点活性的硬件木马检测方法研究[D]”,冯秋丽,广州:广东工业大学.2016)。但目前,市场上任意本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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算法做出的改进;然后,根据有向图,从芯片输入节点开始,向芯片输出端遍历,依次计算每一...

【专利技术属性】
技术研发人员:王坚熊江涛李桓郭世泽李玉柏陈哲
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1